-
Notifications
You must be signed in to change notification settings - Fork 505
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Known non-constant time behaviour in HQC #995
Comments
Have you raised this with PQClean and/or the HQC team? |
I have not. Philippe Gaborit (of the HQC team) posted to pqc-forum on Nov. 3 2020:
So I assume they are aware of the issues. In the same email, Philippe says that the team will fix a number of other problems that were identified by PQClean. We're still waiting on an updated code package. |
Quick "sanity" question: We are holding the release of 0.7.2 on constant-time issues in Picnic -- but not on this, apparently same, issue in HQC: Intentional or omission? |
Our constant time test raises three issues with the "clean" implementation of the HQC code. I've reviewed these and I am of the opinion that they are true instances of non-constant time behaviour.
I've copied a description of each issue and a link to the issue file below.
hqc_gf_mul
Secret-dependent indexing into the "gf_exp" array in line 20 of gf.c:
liboqs/src/kem/hqc/pqclean_hqc-rmrs-128_clean/gf.c
Lines 16 to 21 in 8981b7f
hqc_vect_set_random_fixed_weight
Line 90 of vector.c reveals partial information about the location of non-zero bits in a secret fixed weight vector
liboqs/src/kem/hqc/pqclean_hqc-rmrs-128_clean/vector.c
Lines 82 to 92 in 8981b7f
hqc_fast_convolution_mult
The "fast_convolution_mult" routine makes secret dependent accesses to an array. It obfuscates the pattern of memory accesses by applying some permutations, but I'm not convinced that this is an adequate countermeasure.
liboqs/src/kem/hqc/pqclean_hqc-rmrs-128_clean/gf2x.c
Line 70 in 8981b7f
The text was updated successfully, but these errors were encountered: