31 lines
1.3 KiB
Go
31 lines
1.3 KiB
Go
// Package sidh provides implementation of experimental post-quantum
|
|
// Supersingular Isogeny Diffie-Hellman (SIDH) as well as Supersingular
|
|
// Isogeny Key Encapsulation (SIKE).
|
|
//
|
|
// It comes with implementations of 2 different field arithmetic
|
|
// implementations sidh.Fp503 and sidh.Fp751.
|
|
//
|
|
// | Algoirthm | Public Key Size | Shared Secret Size | Ciphertext Size |
|
|
// |-----------|-----------------|--------------------|-----------------|
|
|
// | SIDH/p503 | 376 | 126 | N/A |
|
|
// | SIDH/p751 | 564 | 188 | N/A |
|
|
// | SIKE/p503 | 376 | 16 | 402 |
|
|
// | SIKE/p751 | 564 | 24 | 596 |
|
|
//
|
|
// In order to instantiate SIKE/p751 KEM one needs to create a KEM object
|
|
// and allocate internal structures. This can be done with NewSike751 helper.
|
|
// After that kem can be used multiple times.
|
|
//
|
|
// var kem = sike.NewSike751(rand.Reader)
|
|
// kem.Encapsulate(ciphertext, sharedSecret, publicBob)
|
|
// kem.Decapsulate(sharedSecret, privateBob, PublicBob, ciphertext)
|
|
//
|
|
// Code is optimized for AMD64 and aarch64. Generic implementation
|
|
// is provided for other architectures.
|
|
//
|
|
// References:
|
|
// - [SIDH] https://eprint.iacr.org/2011/506
|
|
// - [SIKE] http://www.sike.org/files/SIDH-spec.pdf
|
|
//
|
|
package sidh
|