diff --git a/docs/algorithms/kem/sike.md b/docs/algorithms/kem/sike.md index e06853368..d4ff9fd1d 100644 --- a/docs/algorithms/kem/sike.md +++ b/docs/algorithms/kem/sike.md @@ -12,7 +12,7 @@ Implementation -------------- - **Source of implementation**: https://github.com/Microsoft/PQCrypto-SIDH -- **Implementation version**: https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4 +- **Implementation version**: https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772 (bugfix on v3.4) - **License**: MIT License - **Constant-time**: Yes - **Optimizations**: Portable C, with assembly optimizations on AMD64 and selected parameter sets on ARM64 (selected at compile-time, enabled by default if available) diff --git a/src/kem/sike/external/compression/dlog.c b/src/kem/sike/external/compression/dlog.c index 7594e1b54..1a37943b5 100644 --- a/src/kem/sike/external/compression/dlog.c +++ b/src/kem/sike/external/compression/dlog.c @@ -171,6 +171,7 @@ static int ord2w_dloghyb(const felm_t *h, const int *logT, const felm_t *Texp, c ord = W_2_1 - t; tmp = ((d >> (W_2_1-ord))-1) >> 1; i_j = reverse_bits(tmp,ord-1); + fpcorrection(H[0][0]); if (is_felm_zero(H[0][0])) { // check if compressed Fp2 element H[0] is -1 fpneg(one); fpcorrection(one); diff --git a/src/kem/sike/kem_sike.c b/src/kem/sike/kem_sike.c index 1fabe852c..78ddacb00 100644 --- a/src/kem/sike/kem_sike.c +++ b/src/kem/sike/kem_sike.c @@ -15,7 +15,7 @@ OQS_KEM *OQS_KEM_sike_p434_new() { return NULL; } kem->method_name = OQS_KEM_alg_sike_p434; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 1; kem->ind_cca = true; @@ -45,7 +45,7 @@ OQS_KEM *OQS_KEM_sike_p434_compressed_new() { return NULL; } kem->method_name = OQS_KEM_alg_sike_p434_compressed; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 1; kem->ind_cca = true; @@ -75,7 +75,7 @@ OQS_KEM *OQS_KEM_sike_p503_new() { return NULL; } kem->method_name = OQS_KEM_alg_sike_p503; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 2; kem->ind_cca = true; @@ -105,7 +105,7 @@ OQS_KEM *OQS_KEM_sike_p503_compressed_new() { return NULL; } kem->method_name = OQS_KEM_alg_sike_p503_compressed; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 2; kem->ind_cca = true; @@ -135,7 +135,7 @@ OQS_KEM *OQS_KEM_sike_p610_new() { return NULL; } kem->method_name = OQS_KEM_alg_sike_p610; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 3; kem->ind_cca = true; @@ -165,7 +165,7 @@ OQS_KEM *OQS_KEM_sike_p610_compressed_new() { return NULL; } kem->method_name = OQS_KEM_alg_sike_p610_compressed; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 3; kem->ind_cca = true; @@ -195,7 +195,7 @@ OQS_KEM *OQS_KEM_sike_p751_new() { return NULL; } kem->method_name = OQS_KEM_alg_sike_p751; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 5; kem->ind_cca = true; @@ -225,7 +225,7 @@ OQS_KEM *OQS_KEM_sike_p751_compressed_new() { return NULL; } kem->method_name = OQS_KEM_alg_sike_p751_compressed; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 5; kem->ind_cca = true; @@ -255,7 +255,7 @@ OQS_KEM *OQS_KEM_sidh_p434_new() { return NULL; } kem->method_name = OQS_KEM_alg_sidh_p434; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 1; kem->ind_cca = false; @@ -325,7 +325,7 @@ OQS_KEM *OQS_KEM_sidh_p434_compressed_new() { return NULL; } kem->method_name = OQS_KEM_alg_sidh_p434_compressed; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 1; kem->ind_cca = false; @@ -395,7 +395,7 @@ OQS_KEM *OQS_KEM_sidh_p503_new() { return NULL; } kem->method_name = OQS_KEM_alg_sidh_p503; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 2; kem->ind_cca = false; @@ -465,7 +465,7 @@ OQS_KEM *OQS_KEM_sidh_p503_compressed_new() { return NULL; } kem->method_name = OQS_KEM_alg_sidh_p503_compressed; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 2; kem->ind_cca = false; @@ -535,7 +535,7 @@ OQS_KEM *OQS_KEM_sidh_p610_new() { return NULL; } kem->method_name = OQS_KEM_alg_sidh_p610; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 3; kem->ind_cca = false; @@ -605,7 +605,7 @@ OQS_KEM *OQS_KEM_sidh_p610_compressed_new() { return NULL; } kem->method_name = OQS_KEM_alg_sidh_p610_compressed; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 3; kem->ind_cca = false; @@ -675,7 +675,7 @@ OQS_KEM *OQS_KEM_sidh_p751_new() { return NULL; } kem->method_name = OQS_KEM_alg_sidh_p751; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 5; kem->ind_cca = false; @@ -745,7 +745,7 @@ OQS_KEM *OQS_KEM_sidh_p751_compressed_new() { return NULL; } kem->method_name = OQS_KEM_alg_sidh_p751_compressed; - kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/tree/v3.4"; + kem->alg_version = "https://github.com/microsoft/PQCrypto-SIDH/commit/67981447d36dfdcfc849d8d88963f727a31ba772"; kem->claimed_nist_level = 5; kem->ind_cca = false;