SPHINCS+ Example -------------------------------------------- Reference -------------------------------------------- NIST-PQ-Submission-SPHINCS-20201001\KAT\sphincs-sha256-128f-simple\PQCsignKAT_64.rsp Parameters -------------------------------------------- n = 16 # security parameter in bytes w = 16 # Winternitz parameter lg(w) = 4 h = 66 # hypertree height d = 22 # number of layers in hypertree k = 33 # number of trees in FORS t = 64 = 2^6 # number of leaves in FORS a = 6 # height of FORS trees = lg(t) h/d = 66/22 = 3 # HT subtree size len = len1 + len2 = 32 + 3 = 35 -------------------------------------------- Test Case -------------------------------------------- count = 0 -------------------------------------------- SPHINCS+ public key [2n bytes] B505D7CFAD1B497499323C8686325E47 # PK.seed 4FDFA42840C84B1DDD0EA5CE46482020 # PK.root -------------------------------------------- SPHINCS+ private key [4n bytes] 7C9935A0B07694AA0C6D10E4DB6B1ADD # SK.seed 2FD81A25CCB148032DCD739936737F2D # SK.prf B505D7CFAD1B497499323C8686325E47 # PK.seed 4FDFA42840C84B1DDD0EA5CE46482020 # PK.root -------------------------------------------- Message [33 bytes] D81C4D8D734FCBFBEADE3D3F8A039FAA 2A2C9957E835AD55B22E75BF57BB556A C8 -------------------------------------------- SPX signature [17088 bytes] # R [16] + SIG_FORS [3696] + SIG_HT [13376] -------------------------------------------- R [16 bytes] b77b5397031e67eb585dba86b10b710b -------------------------------------------- SIG_FORS [3696 bytes] # k * (|fors_sig_sk| + |fors_auth_path|) * n = # k * (1 + a) * n = 33 * (1 + 6) * 16 bytes 8c9f8091d1a1edbb6a8a041343c6e5c0 # fors_sig_sk[0] 90d9d26cf0068d14f2125ffa16dce594 # fors_auth_path[0] 3af75452a07b7bc67344a77fba2bc51f 1ee71cab80e5d588a4f3e181cfca703b e987519c0578e6edc2cac80c3d0f5781 0d7dabe142fb0976638fe21d503dabde 606c9bbca50ee8112dcc0cea78e81501 229f6db83fc861d6fc5877405f5b9466 # fors_sig_sk[1] f89299c474d12428ef8b71caaf1d0da0 # fors_auth_path[1] c09b4ccd09b4e8094548a855ff8a1d5c 51bdf290db167d12bee212e246b1c9c3 09e01d922e09e0cbc6ace161266433d3 163bed69c47db1a4777877033433cb2d 903938edcd9718d81330ed6645316ce7 # ...[CUT]... 446d9fc66808fcc5e0d47c0c381c7f9e # fors_sig_sk[32] 0d92eb3bc4a5220a39e5c834d1cced86 # fors_auth_path[32] 601a1ae606a87cc6919d4f1aca5744b6 341a0a87b9cf960cbb1cd800f5cb1738 683492ec5e1379ffb4f6117de296d7d0 d8f3158b367ccfdab8def4b2786f60d8 302f791fccc4ded35f988a70205be088 -------------------------------------------- SIG_HT [13376 bytes] # d * (|ht_sig| + |ht_auth_path|) * n = # d * (len + (h/d)) * n = 22 * (35 + 3) * 16 cb56a9488bb970ce78a2623db324b873 # ht_sig[0] 33b9c30d9c6f9400868677c2dac9ee60 f416cf4bd6e0849b105320297aecc762 b38483050d9763a99bae3f0a22302a4d dfad85bb9487a102c7fa49ab2028067b 5ee4c4498cc8e792a4b528b87b28affa 06c73e7724f5d61e2e035d39a336a472 966486f110a89db2ef835e0a51c7166d e8b5f6fbca916d066550f450772ab354 9745b0fb7ff0bd5091f93a41c4e34ae7 285ff50e29c18b778b4d40b60a404366 762bd38c27f31336078e0c20d79bc4ff 74ef0d8eba283d34bc5476d0fcc671e8 0a841a3f5eafebf240caa69cee5bef58 d7db5b156d75c5744d4c8cb947810289 c8458a105b197bbd180a78a02dc78438 a5f7638da1205f15aacec46492c7cb26 a429f6f9af38b8edae576dd9cd96a39b fdcdac0e807bf687fa506dd13eed3b52 2d21c5ea6cdc5b6e81d65ac29a4c3d85 661b858f3ebf5c3e8d81c33668a60657 45b041ea26689046fd588e3ce7b25d32 5a23ccf51bcdc5040cf41c956346b295 4b9e998df2ed0ba77a3548bce5eabd8d 22d3c51f91c76c9e31321547569d7353 6604772cca70071f017cca6f6ef61ce3 e2075f1f7946832e2ce5315e62ff86ca cede2a6ce32730ef4ff7df912d96bef5 6a149c641f7b8fb6ee94c01f2376176e ab500b6592ef6c248090312c2908f507 aba6d0aae1f615d9dab086fbf960173c 002cb750ea2bce3f7a2056af524847a2 813c4051c81f89106a64b44dccf8ca62 1377cfa250e29aec2dac2ada65ae3d98 a0154e91a720b96b0d738d05405e6f48 b1f67e538bb9d4c2ef860f50085bcb72 # ht_auth_path[0] c10fb38ab696949b9417ddbefe8e4cad 77a2617d410d8f1acd1fbc29830e1a51 13a4d0d6844aa68b6cf03467374be19a # ht_sig[1] 3ed2d9e45dc9cee2353b80b9bdeda69b 182603f34d84b15ed3759b318b5a2457 17cbc1ca5759171cbd008163e4e39634 3786ff5b501c8e72290b83b3f71d9013 35324b11c732b12de8f29dce8671a8c1 41852b7656616d2602456bf8fe9965ee 436ff61c6b14b787bb2a73c1380da2b7 916a331e5f29e6082183665c46c49165 1f0650a0779c8a437d8aa6851dea3e16 222eea385787195e895fcdc28936f04b fe736d3bf9fc0ec0deb75b73e76496b7 a48681de8909ba538485b77cb4dcbb13 8be81dcb33136f3b719694bbd875bbe4 3d4c0416ffdbe9368a69dc605bf89ba0 606209ea69e303fb477e4cbe8863a915 219dcc3c82a90e46ff93aeff43fda2f8 e1fb5f1e0e9d1f43fdbe9d8fdd171ef8 3bff5da488f02876f301d6d7a008082c 173bd1157f75faa6a8f03577846abe42 a700f8ff92a1bf623e6c4129020a88cc bd4a04929834a9e1e9c013c413617b6b 1779f1f8a740acaff5077cd61ad2ef12 638625acb4e3f10965153a528d744fee 05d917753c4d4de50ec9d2c4bd67c2ea 6056a250bd6e14cdb0eab7b87518c7f8 410969326f86d7e4da5317fe2c3b55c6 14c735803fc43bb1e34a15c8aa470335 8767568bba018f779fc09495d74986e5 ed5cfd1dfe5d230b51243a65c127f562 053f0fa1386dcd1981f7b6960beb0f7d 6a2e76201bf264383fd8ee399f8dc23c 19c9f13d188817029c114e32a6e2c7b6 35ebeb392119c65df5f423e63c546495 72baa36f9bebef31bd03c1fa9f8fd891 150d6ff09ca91ddf2411d40d6cdb428b # ht_auth_path[1] 026a5503246178066c93cc0092dfb834 d31eba4a04674ee4689fb4e3ed25bff1 # ...[CUT]... 422d9bc577f69260607d7d4a8c56d85f # ht_sig[21] ab5bcb9675f1f0dd7904e1d07e95fef3 54684442f49bae0889b9913f51983359 e107bf9e493421cb2c6727c202138e30 2217edf69593bb246ed50a8dda81a81b 2b6f6e56b5ffc18d2615991dfc3c920c f4b560f12d46d3859fc20627f33ff8e1 263f9fcfc6d6af6cd5ce97a070f707b2 c710bef313658ee2d46e2124eb71dc70 fb914115792df9b0a3b0f8824e2ba275 6770954abdbe8f55a7d70176550a828b 0bdefc77575e69c31322eff6d87926e4 4199544893a2a53e63cac0feab6f570a 553f8eb7364441d6a87e2f0084cd3d82 5cff4e2ad54b1013442c80ec2e1e05e8 1f64cf7a388303292ae393f743c1c881 56a10fdd116a012eaa8559718d761e95 4984254cb0dddb1dbb9f1a1d9de9e247 524b9929e3dbb8be7da023c5c61dc66c c7a1b4d73255779888b17d8899dd316f 6df67003c29f4eec8aefd2d4e4685f61 377ee143cc2090b265b37d24e9ee0365 6373b1d1a2f5de1822ce580a054a369c b96d829e0063470a0a0fc45c94b80061 c829c15bec8e2812641892a503de431c 80441935e0aed6d37139f299a47135ee 78030c2f36e44c3cadcfb50b5afe9cf8 ee8d850e560babd66ddfb12138e9f356 4ecae8b85a6955bc7c507bc39e88227d 03aeabbe17d17ef578ccc5b1a0c19336 7f9b98adcae93ac8ace71b9b1b8690be 5a95fc3db2f44c9710a8dfba05a507d3 985ecc775bf9afe91e69706c20341b0b 2cc747f76ef7f9899b0c671fcc40603c ba402da2746963d2d8b12f8abf5d86ad fa1ef7c928518b1afdebddd1b83a3b66 # ht_auth_path[21] 5fae6d71863b4207d39e61823b59c6a9 220f10bd9e03c371b229a79489601278 --------------------------------------------