David Cooper
3e28db2362
Improved key generation
In the public comments to draft version of NIST Special Publication 800-208, ETSI TC CYBER WG QSC identified a multi-target attack against the method of pseudorandom key generation used in this referrence implementation. ETSI TC CYBER WG QSC suggested using the pseudorandom key generation method from SPHINCS+, however, there is still a multi-user attack against that key generation method.
This commit revises the pseudorandom key generation method by using the method from SPINCS+, but adding SEED as an input in order to protect against multi-user attacks. Since prf() only accepts 32-byte inputs, the new key generation method uses a new PRF. The resulting key generation method is sk[i] = prf_keygen(sk_seed, pub_seed || adrs).
4 年之前
Joost Rijneveld
daa4e2d6db
Rename hash functions to tweaked hashes
Since there's a tweak being introduced, this should be reflected
in the name of the functions.
7 年之前
Joost Rijneveld
fe252b8093
Move ull-byte-conversions to separate utils file
7 年之前
Joost Rijneveld
a95aaf0b37
Fix typo in WOTS comments: n-byte messages, not m
7 年之前
Joost Rijneveld
2e96b03106
Clean up and simplify hash function definitions
7 年之前
Joost Rijneveld
270e6cd753
Reorder ull_to_bytes parameters to group output
7 年之前
Joost Rijneveld
cd8e621dac
Refactor and deduplicate WOTS
7 年之前
Joost Rijneveld
305bd614bb
Perform various reformatting / renaming
7 年之前
Joost Rijneveld
f3bad4a272
Simplify licensing using LICENSE file
7 年之前
Joost Rijneveld
6a8571d880
Revert to using runtime-only parameter struct
Using global defines for parameters (as seems to be typical in
academic crypto code) does not play nice with multithreading at all.
7 年之前
Joost Rijneveld
9d5884e120
Refactor for more consistent style and readability
7 年之前
Joost Rijneveld
3c0f6668ef
Add parameter for hash alg family, support SHAKE
7 年之前
Andreas
dd067bd23e
some old changes
7 年之前
Joost Rijneveld
8befb0d550
Add SHAKE128 and SHAKE256
This also performs numerous consistency fixes
7 年之前
Joost Rijneveld
1e00c92c18
Refactor to use compile-time parameter sets
This starts a cleanup / refactor, but there is still some low-hanging fruit.
7 年之前
Andreas
9f512fa8dc
v06
8 年之前
Andreas
2c290d39be
upgraded to draft-06
8 年之前
Andreas
2b73688b7c
fixed endianess for toByte and base_w
8 年之前
Andreas
c37b9dcfca
SWITCH from v01 to v03
Versions are incompatible due to different address formats and differing message compression!
8 年之前
Andreas
622a9513b1
local changes
8 年之前
Joost Rijneveld
1e503b665e
Make codestyle more consistent, fix -Wextra warns
8 年之前
Joost Rijneveld
17c5b2842f
Make address masks more explicit and strict
8 年之前
Andreas
9d9b782ff9
added support for n = m = 64
9 年之前
Joost Rijneveld
71da95c8b4
Change 'uint' to standard 'unsigned int'
9 年之前
Andreas
481cc106b6
finished xmssmt
9 年之前
Andreas
d80a463e53
added copyright notes for publishing. Removed unused file.
9 年之前
Andreas
1826fb26ff
Initial commit
9 年之前