Graphe des révisions

30 Révisions

Auteur SHA1 Message Date
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).
2020-04-30 12:43:36 -04:00
Joost Rijneveld
b9c65792e5
More explicitly label pk parts in verification 2017-12-06 15:14:50 +01:00
Joost Rijneveld
758a6349fc
Do not expose l_tree function
It's not used outside xmss_commons
2017-12-06 15:13:07 +01:00
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.
2017-11-01 15:16:17 +01:00
Joost Rijneveld
fe252b8093
Move ull-byte-conversions to separate utils file 2017-11-01 14:59:33 +01:00
Joost Rijneveld
2e96b03106
Clean up and simplify hash function definitions 2017-10-31 17:21:29 +01:00
Joost Rijneveld
384b228c58
Support messages that exceed the stack size
Previous code allocated an array on the stack of mlen bytes, but
it should be possible to also sign heap-space messages. By relying
on the fact that sm and m fit the message + signature, we move
the message so that 4*n bytes of prefix can be added.
2017-10-31 17:21:27 +01:00
Joost Rijneveld
f5d53b252e
Fix failing verification test formatting 2017-10-30 16:36:08 +01:00
Joost Rijneveld
94a92ed2b1
Make XMSS sign/open functions instances of XMSSMT
This removes a lot of code duplication.
2017-10-26 12:07:57 +02:00
Joost Rijneveld
7c6354f762
Rename parameters for readability and consistency 2017-10-24 17:51:56 +02:00
Joost Rijneveld
4111393912
Abstract address types into macro constants 2017-10-24 16:23:57 +02:00
Joost Rijneveld
ae49c04807
Clean up signing functions
As a result, performs various refactors that also impact the verification
function, since cleaner signing functions exposed more overlap.
2017-10-24 16:23:51 +02:00
Joost Rijneveld
270e6cd753
Reorder ull_to_bytes parameters to group output 2017-10-23 16:19:16 +02:00
Joost Rijneveld
305bd614bb
Perform various reformatting / renaming 2017-10-23 14:10:39 +02:00
Joost Rijneveld
f3bad4a272
Simplify licensing using LICENSE file 2017-10-19 17:38:34 +02:00
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.
2017-10-16 12:09:07 +02:00
Joost Rijneveld
9d5884e120
Refactor for more consistent style and readability 2017-08-03 17:39:37 +02:00
Joost Rijneveld
65ee8202d8
Refactor to prepare for runtime parameters 2017-08-01 16:18:09 +02:00
Joost Rijneveld
8befb0d550
Add SHAKE128 and SHAKE256
This also performs numerous consistency fixes
2017-06-02 17:29:14 +02:00
Joost Rijneveld
5122ac6f73
Reduce code duplication
A large number of functions was repeated in xmss_fast; these are now
shared between the two implementations via the xmss_commons file.
Notably, we ensure compatability by sharing the verification functions.
2017-06-02 14:46:30 +02:00
Andreas
9f512fa8dc v06 2016-09-22 16:31:41 +02:00
Andreas
2c290d39be upgraded to draft-06 2016-07-11 11:15:16 +02:00
Andreas
2b73688b7c fixed endianess for toByte and base_w 2016-02-16 19:24:12 +01:00
Andreas
c37b9dcfca SWITCH from v01 to v03
Versions are incompatible due to different address formats and differing message compression!
2016-02-16 16:31:18 +01:00
Andreas
59a4846fbd changed version date
Merge branch 'master' of bitbucket.org:ahuelsing/xmss_ref
2016-02-10 16:00:07 +01:00
Andreas
622a9513b1 local changes 2016-02-10 15:57:16 +01:00
Joost Rijneveld
1e503b665e Make codestyle more consistent, fix -Wextra warns 2016-02-02 14:11:23 +01:00
Joost Rijneveld
71da95c8b4 Change 'uint' to standard 'unsigned int' 2015-08-12 15:30:01 +02:00
Andreas
d80a463e53 added copyright notes for publishing. Removed unused file. 2015-08-11 12:23:30 +02:00
Andreas
1826fb26ff Initial commit 2015-08-11 12:08:27 +02:00