Crate rust_sike

Source
Expand description

This is documentation for the rust-sike crate.

§Introduction

rust-sike is an implementation of the supersingular isogeny primitives for SIKE, a post-quantum candidate submitted to NIST for standardization.

This crate provides public-key encryption (PKE) and key encapsulation (KEM).

§Examples

use rust_sike::{self, KEM};
let params = rust_sike::sike_p434_params(None, None);

let kem = KEM::setup(params);

// Alice runs keygen, publishes pk3. Values s and sk3 are secret
let (s, sk3, pk3) = kem.keygen();

// Bob uses pk3 to derive a key k and encapsulation c
let (c, k) = kem.encaps(&pk3);

// Bob sends c to Alice
// Alice uses s, c, sk3 and pk3 to recover k
let k_recovered = kem.decaps(&s, &sk3, &pk3, c);

assert_eq!(k, k_recovered);

Re-exports§

pub use kem::KEM;
pub use pke::PKE;

Modules§

kem
Key encapsulation mechanism
pke
Public-key cryptosystem:
strategy
Utils for tree traversal strategies

Constants§

P434_THREE_TORSION_STRATEGY
3-torsion reference strategy for SIKEp434 (ref C.1.2.)
P434_TWO_TORSION_STRATEGY
2-torsion reference strategy for SIKEp434 (ref C.1.1.)
P503_THREE_TORSION_STRATEGY
3-torsion reference strategy for SIKEp503 (ref C.2.2.)
P503_TWO_TORSION_STRATEGY
2-torsion reference strategy for SIKEp503 (ref C.2.1.)
P610_THREE_TORSION_STRATEGY
3-torsion reference strategy for SIKEp610 (ref C.3.2.)
P610_TWO_TORSION_STRATEGY
2-torsion reference strategy for SIKEp610 (ref C.3.1.)
P751_THREE_TORSION_STRATEGY
3-torsion reference strategy for SIKEp751 (ref C.4.2.)
P751_TWO_TORSION_STRATEGY
2-torsion reference strategy for SIKEp751 (ref C.4.1.)

Functions§

compute_strategy
Computing optimised strategy (ref compute_strategy, Algorithm 46 p. 75).
sike_p434_params
Load params for SIKE_p434
sike_p503_params
Load params for SIKE_p503
sike_p610_params
Load params for SIKE_p610
sike_p751_params
Load params for SIKE_p751