SIKE March 2021 bug fix (#981)

* SIKE March 2021 bug fix

* Reverted typo.
This commit is contained in:
Christian Paquin 2021-04-29 14:35:57 -04:00 committed by GitHub
parent 5f28a2af5d
commit b1d07278d1
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 18 additions and 17 deletions

View File

@ -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)

View File

@ -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);

View File

@ -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;