Artifact 49b657ebda4db6d5456ebdaf1a6cd784e80b4759:
- File wiki/wurstkessel.wiki — part of check-in [23cbc682f0] at 2015-05-01 22:42:37 on branch trunk — More conversion to in-source wiki (user: bernd size: 4551)
0000: 3c 68 31 3e 57 75 72 73 74 6b 65 73 73 65 6c 3c <h1>Wurstkessel< 0010: 2f 68 31 3e 0a 0a 3c 70 3e 49 6e 20 74 68 65 20 /h1>..<p>In the 0020: 65 61 72 6c 69 65 72 20 70 72 6f 74 6f 74 79 70 earlier prototyp 0030: 65 20 6f 66 20 6e 65 74 32 6f 2c 20 49 20 75 73 e of net2o, I us 0040: 65 64 20 6d 79 20 6f 77 6e 20 73 79 6d 6d 65 74 ed my own symmet 0050: 72 69 63 20 63 72 79 70 74 6f 67 72 61 70 68 79 ric cryptography 0060: 0a 73 79 73 74 65 6d 2c 20 77 68 69 63 68 20 49 .system, which I 0070: 20 63 61 6c 6c 65 64 20 22 57 75 72 73 74 6b 65 called "Wurstke 0080: 73 73 65 6c 22 2e 20 49 20 64 65 73 69 67 6e 65 ssel". I designe 0090: 64 20 57 75 72 73 74 6b 65 73 73 65 6c 2c 20 62 d Wurstkessel, b 00a0: 65 63 61 75 73 65 20 49 27 6d 20 6e 6f 74 0a 63 ecause I'm not.c 00b0: 6f 6e 76 69 6e 63 65 64 20 77 69 74 68 20 74 68 onvinced with th 00c0: 65 20 73 74 61 6e 64 61 72 64 20 73 79 6d 6d 65 e standard symme 00d0: 74 72 69 63 20 63 72 79 70 74 6f 67 72 61 70 68 tric cryptograph 00e0: 79 20 74 6f 6f 6c 73 2c 20 65 73 70 65 63 69 61 y tools, especia 00f0: 6c 6c 79 20 6e 6f 74 20 77 69 74 68 0a 41 45 53 lly not with.AES 0100: 20 61 6e 64 20 53 48 41 2d 31 2e 20 49 20 77 61 and SHA-1. I wa 0110: 73 20 61 6c 73 6f 20 6e 6f 74 20 68 61 70 70 79 s also not happy 0120: 20 77 69 74 68 20 74 68 65 20 53 48 41 2d 33 20 with the SHA-3 0130: 63 6f 6e 74 65 73 74 2c 20 61 73 20 6d 6f 73 74 contest, as most 0140: 20 65 6e 74 72 69 65 73 0a 75 73 65 64 20 61 20 entries.used a 0150: 73 6c 69 67 68 74 6c 79 20 6d 6f 64 69 66 69 65 slightly modifie 0160: 64 20 4d 65 72 6b 6c 65 e2 80 93 44 61 6d 67 c3 d Merkle–Damgà 0170: a5 72 64 20 63 6f 6e 73 74 72 75 63 74 69 6f 6e ¥rd construction 0180: 2c 20 74 68 6f 75 67 68 20 4d 44 20 68 61 73 20 , though MD has 0190: 6b 6e 6f 77 6e 0a 70 72 6f 62 6c 65 6d 73 2e 3c known.problems.< 01a0: 2f 70 3e 0a 0a 3c 70 3e 54 68 65 20 74 6f 6f 6c /p>..<p>The tool 01b0: 73 20 69 6e 20 71 75 65 73 74 69 6f 6e 20 73 68 s in question sh 01c0: 6f 75 6c 64 20 62 65 20 61 62 6c 65 20 74 6f 20 ould be able to 01d0: 70 65 72 66 6f 72 6d 20 74 68 65 20 66 6f 6c 6c perform the foll 01e0: 6f 77 69 6e 67 20 74 61 73 6b 73 3a 3c 2f 70 3e owing tasks:</p> 01f0: 0a 3c 75 6c 3e 0a 3c 6c 69 3e 70 72 6f 76 69 64 .<ul>.<li>provid 0200: 65 20 61 20 73 65 63 75 72 65 20 72 61 6e 64 6f e a secure rando 0210: 6d 20 6e 75 6d 62 65 72 20 67 65 6e 65 72 61 74 m number generat 0220: 6f 72 3c 2f 6c 69 3e 0a 3c 6c 69 3e 65 6e 2d 20 or</li>.<li>en- 0230: 61 6e 64 20 64 65 63 72 79 70 74 20 6d 65 73 73 and decrypt mess 0240: 61 67 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 3e 63 72 ages</li>.<li>cr 0250: 65 61 74 65 20 61 20 73 65 63 75 72 65 20 68 61 eate a secure ha 0260: 73 68 20 6f 66 20 74 68 65 20 6d 65 73 73 61 67 sh of the messag 0270: 65 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e 0a 0a 3c 70 e</li>.</ul>..<p 0280: 3e 57 75 72 73 74 6b 65 73 73 65 6c 20 75 73 65 >Wurstkessel use 0290: 73 20 6f 6e 65 20 61 6c 67 6f 72 69 74 68 6d 20 s one algorithm 02a0: 74 6f 20 70 72 6f 76 69 64 65 20 61 6c 6c 20 74 to provide all t 02b0: 68 65 73 65 20 66 75 6e 63 74 69 6f 6e 73 2c 20 hese functions, 02c0: 65 73 70 65 63 69 61 6c 6c 79 20 69 74 0a 61 6c especially it.al 02d0: 6c 6f 77 73 20 74 6f 20 63 6f 6c 6c 61 70 73 65 lows to collapse 02e0: 20 74 68 65 20 65 6e 2f 64 65 63 72 79 70 74 20 the en/decrypt 02f0: 66 75 6e 63 74 69 6f 6e 20 61 6e 64 20 74 68 65 function and the 0300: 20 68 61 73 68 20 63 6f 6d 70 75 74 61 74 69 6f hash computatio 0310: 6e 20 69 6e 74 6f 20 6f 6e 65 0a 73 74 65 70 2e n into one.step. 0320: 3c 2f 70 3e 0a 0a 3c 70 3e 54 68 65 20 62 61 73 </p>..<p>The bas 0330: 65 20 6f 66 20 61 6c 6c 20 74 68 69 73 20 69 73 e of all this is 0340: 20 61 20 73 65 63 75 72 65 20 72 61 6e 64 6f 6d a secure random 0350: 20 6e 75 6d 62 65 72 20 67 65 6e 65 72 61 74 6f number generato 0360: 72 20 74 68 61 74 20 61 6c 6c 6f 77 73 20 74 6f r that allows to 0370: 20 61 64 64 0a 65 6e 74 72 6f 70 79 2e 20 54 68 add.entropy. Th 0380: 69 73 20 64 65 66 69 6e 65 73 20 68 6f 77 20 74 is defines how t 0390: 68 65 20 65 6e 63 72 79 70 74 69 6f 6e 20 61 6e he encryption an 03a0: 64 20 64 65 63 72 79 70 74 69 6f 6e 20 6d 75 73 d decryption mus 03b0: 74 20 77 6f 72 6b 3a 20 61 73 20 73 74 72 65 61 t work: as strea 03c0: 6d 0a 63 69 70 68 65 72 2e 20 53 74 72 65 61 6d m.cipher. Stream 03d0: 20 63 69 70 68 65 72 73 20 78 6f 72 20 72 61 6e ciphers xor ran 03e0: 64 6f 6d 20 6e 75 6d 62 65 72 73 20 77 69 74 68 dom numbers with 03f0: 20 74 68 65 20 70 6c 61 69 6e 20 74 65 78 74 2c the plain text, 0400: 20 74 68 65 20 72 61 6e 64 6f 6d 0a 6e 75 6d 62 the random.numb 0410: 65 72 20 67 65 6e 65 72 61 74 6f 72 20 73 74 61 er generator sta 0420: 72 74 73 20 77 69 74 68 20 74 68 65 20 73 68 61 rts with the sha 0430: 72 65 64 20 73 65 63 72 65 74 20 28 74 68 65 20 red secret (the 0440: 6b 65 79 29 20 61 6e 64 20 61 20 67 6f 6f 64 20 key) and a good 0450: 64 65 61 6c 20 6f 66 0a 73 61 6c 74 20 28 61 20 deal of.salt (a 0460: 72 61 6e 64 6f 6d 20 6e 75 6d 62 65 72 20 61 74 random number at 0470: 20 74 68 65 20 73 74 61 72 74 20 6f 66 20 74 68 the start of th 0480: 65 20 65 6e 63 72 79 70 74 65 64 20 64 61 74 61 e encrypted data 0490: 29 20 61 73 20 69 6e 74 65 72 6e 61 6c 20 73 74 ) as internal st 04a0: 61 74 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 68 69 ate.</p>..<p>Thi 04b0: 73 20 73 61 6c 74 20 69 73 20 76 65 72 79 20 63 s salt is very c 04c0: 72 75 63 69 61 6c 20 66 6f 72 20 74 68 65 20 73 rucial for the s 04d0: 65 63 75 72 65 20 6f 70 65 72 61 74 69 6f 6e 20 ecure operation 04e0: 6f 66 20 61 20 74 72 61 64 69 74 69 6f 6e 61 6c of a traditional 04f0: 20 73 74 72 65 61 6d 0a 63 69 70 68 65 72 2c 20 stream.cipher, 0500: 61 73 20 69 74 73 20 72 61 6e 64 6f 6d 20 6e 75 as its random nu 0510: 6d 62 65 72 20 67 65 6e 65 72 61 74 6f 72 20 69 mber generator i 0520: 73 20 70 75 72 65 6c 79 20 64 65 74 65 72 6d 69 s purely determi 0530: 6e 69 73 74 69 63 2c 20 61 6e 64 20 74 68 65 72 nistic, and ther 0540: 65 66 6f 72 65 2c 0a 61 20 6b 65 79 20 63 6f 75 efore,.a key cou 0550: 6c 64 20 6f 6e 6c 79 20 62 65 20 75 73 65 64 20 ld only be used 0560: 6f 6e 63 65 2e 20 54 68 65 20 63 6f 6d 62 69 6e once. The combin 0570: 61 74 69 6f 6e 20 6f 66 20 6b 65 79 20 61 6e 64 ation of key and 0580: 20 73 61 6c 74 20 6d 75 73 74 20 62 65 20 75 6e salt must be un 0590: 69 71 75 65 2c 0a 69 2e 65 2e 20 74 68 65 20 73 ique,.i.e. the s 05a0: 61 6c 74 20 6d 75 73 74 20 68 61 76 65 20 74 68 alt must have th 05b0: 65 20 66 6f 72 6d 20 6f 66 20 61 20 6e 6f 6e 63 e form of a nonc 05c0: 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e 57 75 72 73 74 e.</p>..<p>Wurst 05d0: 6b 65 73 73 65 6c 20 69 73 20 6d 6f 72 65 20 72 kessel is more r 05e0: 65 6c 61 78 65 64 20 68 65 72 65 2e 20 49 74 73 elaxed here. Its 05f0: 20 72 6f 75 6e 64 73 20 6f 70 65 72 61 74 69 6f rounds operatio 0600: 6e 20 69 73 3c 2f 70 3e 0a 0a 3c 70 3e 3c 69 3e n is</p>..<p><i> 0610: cf 95 28 61 2c 73 2c 65 29 20 e2 87 92 20 61 27 Ï•(a,s,e) ⇒ a' 0620: 2c 73 27 2c 65 27 3c 2f 69 3e 3c 2f 70 3e 0a 0a ,s',e'</i></p>.. 0630: 3c 70 3e 77 68 65 72 65 20 cf 95 20 69 73 20 74 <p>where Ï• is t 0640: 68 65 20 74 72 61 6e 73 66 6f 72 6d 61 74 69 6f he transformatio 0650: 6e 20 66 75 6e 63 74 69 6f 6e 2c 20 61 6e 64 3c n function, and< 0660: 2f 70 3e 0a 3c 75 6c 3e 0a 3c 6c 69 3e 3c 69 3e /p>.<ul>.<li><i> 0670: 61 3c 2f 69 3e 20 69 73 20 74 68 65 20 61 63 63 a</i> is the acc 0680: 75 6d 75 6c 61 74 6f 72 2c 20 77 68 69 63 68 20 umulator, which 0690: 61 63 63 75 6d 75 6c 61 74 65 73 20 65 6e 74 72 accumulates entr 06a0: 6f 70 79 20 61 6e 64 20 69 6e 74 65 72 6e 61 6c opy and internal 06b0: 20 73 74 61 74 65 73 3c 2f 6c 69 3e 0a 3c 6c 69 states</li>.<li 06c0: 3e 3c 69 3e 73 3c 2f 69 3e 20 69 73 20 74 68 65 ><i>s</i> is the 06d0: 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 65 2c internal state, 06e0: 20 77 68 69 63 68 20 69 73 20 75 73 65 64 20 74 which is used t 06f0: 6f 20 65 6e 63 72 79 70 74 20 61 6e 64 20 61 73 o encrypt and as 0700: 20 68 61 73 68 20 72 65 73 75 6c 74 3c 2f 6c 69 hash result</li 0710: 3e 0a 3c 6c 69 3e 3c 69 3e 65 3c 2f 69 3e 20 69 >.<li><i>e</i> i 0720: 73 20 61 6e 20 65 6e 74 72 6f 70 79 20 73 6f 75 s an entropy sou 0730: 72 63 65 2c 20 69 2e 65 2e 20 74 68 65 20 6d 65 rce, i.e. the me 0740: 73 73 61 67 65 3c 2f 6c 69 3e 0a 3c 2f 75 6c 3e ssage</li>.</ul> 0750: 0a 0a 3c 70 3e 42 79 20 75 73 69 6e 67 20 74 68 ..<p>By using th 0760: 65 20 6d 65 73 73 61 67 65 20 61 73 20 65 6e 74 e message as ent 0770: 72 6f 70 79 20 73 6f 75 72 63 65 2c 20 74 68 65 ropy source, the 0780: 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 65 72 20 67 random number g 0790: 65 6e 65 72 61 74 6f 72 20 69 73 20 6e 6f 0a 6c enerator is no.l 07a0: 6f 6e 67 65 72 20 64 65 74 65 72 6d 69 6e 65 64 onger determined 07b0: 20 62 79 20 69 74 73 20 69 6e 69 74 69 61 6c 20 by its initial 07c0: 73 74 61 74 65 2c 20 74 68 75 73 20 64 69 66 66 state, thus diff 07d0: 65 72 65 6e 74 20 6d 65 73 73 61 67 65 73 20 61 erent messages a 07e0: 6c 73 6f 20 69 6e 66 6c 75 65 6e 63 65 0a 74 68 lso influence.th 07f0: 65 20 63 69 70 68 65 72 2e 20 54 68 65 20 62 6c e cipher. The bl 0800: 6f 63 6b 20 73 69 7a 65 20 6f 66 20 6f 6e 65 20 ock size of one 0810: 70 72 69 6d 69 74 69 76 65 20 6f 70 65 72 61 74 primitive operat 0820: 69 6f 6e 20 68 6f 77 65 76 65 72 20 69 73 20 36 ion however is 6 0830: 34 20 62 79 74 65 73 2c 20 61 6e 64 0a 77 69 74 4 bytes, and.wit 0840: 68 69 6e 20 74 68 65 73 65 20 36 34 20 62 79 74 hin these 64 byt 0850: 65 73 2c 20 74 68 65 20 70 72 6f 70 65 72 74 79 es, the property 0860: 20 6f 66 20 61 20 6e 6f 72 6d 61 6c 20 73 74 72 of a normal str 0870: 65 61 6d 20 63 69 70 68 65 72 20 73 74 69 6c 6c eam cipher still 0880: 20 68 6f 6c 64 73 2c 20 73 6f 0a 70 6c 65 61 73 holds, so.pleas 0890: 65 20 75 73 65 20 65 61 63 68 20 6b 65 79 2b 73 e use each key+s 08a0: 61 6c 74 20 70 61 69 72 20 6f 6e 6c 79 20 6f 6e alt pair only on 08b0: 63 65 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 68 65 20 ce.</p>..<p>The 08c0: 69 6e 64 69 76 69 64 75 61 6c 20 72 6f 75 6e 64 individual round 08d0: 73 20 6d 69 78 20 73 74 61 74 65 20 61 6e 64 20 s mix state and 08e0: 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 79 74 65 accumulator byte 08f0: 2d 77 69 73 65 20 77 69 74 68 20 64 69 66 66 65 -wise with diffe 0900: 72 65 6e 74 0a 73 74 72 69 64 65 73 20 74 6f 20 rent.strides to 0910: 77 61 6c 6b 20 74 68 72 6f 75 67 68 20 73 74 61 walk through sta 0920: 74 65 20 61 6e 64 20 61 63 63 75 6d 75 6c 61 74 te and accumulat 0930: 6f 72 2c 20 61 6e 64 20 62 79 20 78 6f 72 69 6e or, and by xorin 0940: 67 20 74 68 65 73 65 20 76 61 6c 75 65 73 0a 63 g these values.c 0950: 72 65 61 74 69 6e 67 20 74 68 65 20 69 6e 64 65 reating the inde 0960: 78 20 69 6e 74 6f 20 61 20 32 35 36 20 65 6e 74 x into a 256 ent 0970: 72 79 20 74 61 62 6c 65 20 6f 66 20 36 34 20 62 ry table of 64 b 0980: 69 74 20 6e 75 6d 62 65 72 73 20 6f 62 74 61 69 it numbers obtai 0990: 6e 65 64 20 6f 6e 63 65 20 66 72 6f 6d 0a 61 20 ned once from.a 09a0: 72 61 6e 64 6f 6d 20 6e 75 6d 62 65 72 20 73 6f random number so 09b0: 75 72 63 65 2e 20 38 20 64 69 66 66 65 72 65 6e urce. 8 differen 09c0: 74 6c 79 20 72 6f 74 61 74 65 64 20 6e 75 6d 62 tly rotated numb 09d0: 65 72 73 20 61 72 65 20 63 6f 6d 62 69 6e 65 64 ers are combined 09e0: 20 74 6f 67 65 74 68 65 72 20 74 6f 0a 66 6f 72 together to.for 09f0: 6d 20 6f 6e 65 20 36 34 20 62 69 74 20 70 6f 72 m one 64 bit por 0a00: 74 69 6f 6e 20 6f 66 20 74 68 65 20 6e 65 78 74 tion of the next 0a10: 20 73 74 61 74 65 2e 20 54 68 65 20 74 61 62 6c state. The tabl 0a20: 65 20 69 6e 64 65 78 20 64 6f 65 73 20 6e 6f 74 e index does not 0a30: 20 61 63 74 75 61 6c 6c 79 0a 72 65 76 65 61 6c actually.reveal 0a40: 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 65 2c internal state, 0a50: 20 61 73 20 69 74 20 69 73 20 74 68 65 20 78 6f as it is the xo 0a60: 72 20 6f 66 20 74 77 6f 20 62 79 74 65 73 2c 20 r of two bytes, 0a70: 61 6e 64 20 65 61 63 68 20 63 6f 6d 62 69 6e 61 and each combina 0a80: 74 69 6f 6e 20 6f 66 0a 73 74 61 74 65 20 61 6e tion of.state an 0a90: 64 20 61 63 63 75 6d 75 6c 61 74 6f 72 20 62 79 d accumulator by 0aa0: 74 65 20 69 73 20 75 73 65 64 20 6f 6e 6c 79 20 te is used only 0ab0: 6f 6e 63 65 20 2d 20 74 68 75 73 20 61 6e 79 20 once - thus any 0ac0: 6b 6e 6f 77 6c 65 64 67 65 20 6f 66 20 74 68 65 knowledge of the 0ad0: 20 69 6e 64 65 78 0a 69 73 20 75 73 65 6c 65 73 index.is useles 0ae0: 73 20 66 6f 72 20 74 68 65 20 6e 65 78 74 20 72 s for the next r 0af0: 6f 75 6e 64 2e 20 54 68 65 72 65 20 73 68 6f 75 ound. There shou 0b00: 6c 64 20 62 65 20 61 74 20 6c 65 61 73 74 20 74 ld be at least t 0b10: 77 6f 20 72 6f 75 6e 64 73 20 66 6f 72 0a 65 6e wo rounds for.en 0b20: 63 72 79 70 74 69 6f 6e 20 74 6f 20 73 70 72 65 cryption to spre 0b30: 61 64 20 61 6c 6c 20 69 6e 66 6f 72 6d 61 74 69 ad all informati 0b40: 6f 6e 20 6f 76 65 72 20 74 68 65 20 65 6e 74 69 on over the enti 0b50: 72 65 20 35 31 32 20 62 69 74 73 2c 20 61 6e 64 re 512 bits, and 0b60: 20 74 6f 20 6d 61 6b 65 20 73 75 72 65 0a 74 68 to make sure.th 0b70: 61 74 20 6e 6f 20 74 77 6f 20 63 6f 6e 73 65 63 at no two consec 0b80: 75 74 69 76 65 20 73 74 61 74 65 73 20 61 72 65 utive states are 0b90: 20 65 78 70 6f 73 65 64 20 74 6f 20 61 20 6b 6e exposed to a kn 0ba0: 6f 77 6e 20 70 6c 61 69 6e 74 65 78 74 20 61 74 own plaintext at 0bb0: 74 61 63 6b 20 28 74 68 65 0a 61 63 63 75 6d 75 tack (the.accumu 0bc0: 6c 61 74 6f 72 20 69 73 20 6e 65 76 65 72 20 65 lator is never e 0bd0: 78 70 6f 73 65 64 29 2e 3c 2f 70 3e 0a 0a 3c 70 xposed).</p>..<p 0be0: 3e 54 68 65 20 66 69 6e 61 6c 20 73 74 61 74 65 >The final state 0bf0: 20 69 73 20 74 68 65 20 68 61 73 68 20 6f 66 20 is the hash of 0c00: 74 68 65 20 6d 65 73 73 61 67 65 2e 20 54 68 65 the message. The 0c10: 20 68 61 73 68 20 69 73 20 75 6e 69 71 75 65 20 hash is unique 0c20: 28 77 69 74 68 20 61 0a 63 6f 6c 6c 69 73 69 6f (with a.collisio 0c30: 6e 20 70 72 6f 62 61 62 69 6c 69 74 79 20 6f 66 n probability of 0c40: 20 32 3c 73 75 70 3e 2d 32 35 36 3c 2f 73 75 70 2<sup>-256</sup 0c50: 3e 29 20 6e 6f 74 20 6f 6e 6c 79 20 66 6f 72 20 >) not only for 0c60: 74 68 65 20 6d 65 73 73 61 67 65 20 69 74 73 65 the message itse 0c70: 6c 66 2c 20 62 75 74 0a 61 6c 73 6f 20 66 6f 72 lf, but.also for 0c80: 20 6b 65 79 20 61 6e 64 20 73 61 6c 74 2c 20 74 key and salt, t 0c90: 68 75 73 20 61 70 70 65 6e 64 69 6e 67 20 74 68 hus appending th 0ca0: 69 73 20 68 61 73 68 20 74 6f 20 74 68 65 20 6d is hash to the m 0cb0: 65 73 73 61 67 65 20 67 69 76 65 73 20 75 73 0a essage gives us. 0cc0: 69 6e 74 65 67 72 69 74 79 2e 3c 2f 70 3e 0a 0a integrity.</p>.. 0cd0: 3c 70 3e 57 75 72 73 74 6b 65 73 73 65 6c 20 68 <p>Wurstkessel h 0ce0: 61 73 20 74 6f 20 62 65 20 74 61 6b 65 6e 20 77 as to be taken w 0cf0: 69 74 68 20 61 20 67 72 61 69 6e 20 6f 66 20 73 ith a grain of s 0d00: 61 6c 74 2c 20 61 73 20 69 74 20 73 74 69 6c 6c alt, as it still 0d10: 20 6c 61 63 6b 73 20 70 65 65 72 0a 72 65 76 69 lacks peer.revi 0d20: 65 77 20 61 6e 64 20 61 6e 61 6c 79 73 69 73 2e ew and analysis. 0d30: 20 49 74 73 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 Its random numb 0d40: 65 72 20 71 75 61 6c 69 74 79 20 68 61 73 20 62 er quality has b 0d50: 65 65 6e 20 76 65 72 69 66 69 65 64 20 77 69 74 een verified wit 0d60: 68 20 74 68 65 0a 64 69 65 68 61 72 64 65 72 20 h the.dieharder 0d70: 74 65 73 74 20 73 75 69 74 65 2e 3c 2f 70 3e 0a test suite.</p>. 0d80: 0a 3c 70 3e 4e 6f 74 65 3a 20 54 68 65 20 53 48 .<p>Note: The SH 0d90: 41 2d 33 20 77 69 6e 6e 65 72 2c 20 4b 65 63 63 A-3 winner, Kecc 0da0: 61 6b 2c 20 75 73 65 73 20 61 20 73 69 6d 69 6c ak, uses a simil 0db0: 61 72 20 63 6f 6d 62 69 6e 61 74 69 6f 6e 20 6f ar combination o 0dc0: 66 20 65 78 74 65 72 6e 61 6c 20 61 6e 64 0a 69 f external and.i 0dd0: 6e 74 65 72 6e 61 6c 20 73 74 61 74 65 2c 20 61 nternal state, a 0de0: 6e 64 20 6d 69 78 69 6e 67 20 69 6e 20 74 68 65 nd mixing in the 0df0: 20 6d 65 73 73 61 67 65 3b 20 74 68 65 79 20 63 message; they c 0e00: 61 6c 6c 20 74 68 69 73 20 22 73 70 6f 6e 67 65 all this "sponge 0e10: 22 3b 20 6f 74 68 65 72 0a 70 65 6f 70 6c 65 20 "; other.people 0e20: 63 61 6c 6c 20 73 69 6d 69 6c 61 72 20 61 70 70 call similar app 0e30: 72 6f 61 63 68 65 73 20 22 77 69 64 65 2d 70 69 roaches "wide-pi 0e40: 70 65 22 2e 20 54 68 61 6e 6b 73 20 74 6f 20 74 pe". Thanks to t 0e50: 68 65 69 72 20 6c 65 6e 67 74 68 79 0a 63 72 79 heir lengthy.cry 0e60: 70 74 61 6e 61 6c 79 73 69 73 2c 20 69 74 20 63 ptanalysis, it c 0e70: 61 6e 20 6e 6f 77 20 62 65 20 73 61 69 64 20 74 an now be said t 0e80: 68 61 74 20 74 68 65 20 73 70 6f 6e 67 65 2f 77 hat the sponge/w 0e90: 69 64 65 2d 70 69 70 65 20 70 61 72 74 20 6f 66 ide-pipe part of 0ea0: 20 57 75 72 73 74 6b 65 73 73 65 6c 0a 68 61 73 Wurstkessel.has 0eb0: 20 72 65 63 65 69 76 65 64 20 73 75 66 66 69 63 received suffic 0ec0: 69 65 6e 74 20 70 65 65 72 20 72 65 76 69 65 77 ient peer review 0ed0: 20 61 6e 64 20 61 6e 61 6c 79 73 69 73 2c 20 61 and analysis, a 0ee0: 6e 64 20 69 73 20 61 20 73 6f 75 6e 64 20 63 6f nd is a sound co 0ef0: 6e 63 65 70 74 2e 3c 2f 70 3e 0a 0a 3c 70 3e 54 ncept.</p>..<p>T 0f00: 68 65 20 72 65 6d 61 69 6e 69 6e 67 20 75 6e 72 he remaining unr 0f10: 65 76 69 65 77 65 64 20 70 61 72 74 20 69 73 20 eviewed part is 0f20: 74 68 65 20 53 2d 62 6f 78 2c 20 74 68 65 20 cf the S-box, the Ï 0f30: 95 20 66 75 6e 63 74 69 6f 6e 20 69 6e 20 57 75 • function in Wu 0f40: 72 73 74 6b 65 73 73 65 6c 2e 0a 46 6f 72 74 75 rstkessel..Fortu 0f50: 6e 61 74 65 6c 79 2c 20 74 68 69 73 20 69 73 20 nately, this is 0f60: 61 20 76 65 72 79 20 74 72 61 64 69 74 69 6f 6e a very tradition 0f70: 61 6c 20 53 2d 62 6f 78 2c 20 77 68 69 63 68 20 al S-box, which 0f80: 69 73 20 6f 6e 6c 79 20 6d 6f 64 69 66 69 65 64 is only modified 0f90: 20 69 6e 20 73 6f 20 66 61 72 0a 74 68 61 74 20 in so far.that 0fa0: 75 73 69 6e 67 20 78 6f 72 20 6f 66 20 74 77 6f using xor of two 0fb0: 20 62 79 74 65 20 6f 66 20 74 68 65 20 73 74 61 byte of the sta 0fc0: 74 65 20 61 73 20 69 6e 64 65 78 20 69 6e 74 6f te as index into 0fd0: 20 74 68 65 20 72 61 6e 64 6f 6d 20 6e 75 6d 62 the random numb 0fe0: 65 72 20 74 61 62 6c 65 0a 64 6f 65 73 6e 27 74 er table.doesn't 0ff0: 20 72 65 76 65 61 6c 20 74 68 65 20 61 63 74 75 reveal the actu 1000: 61 6c 20 69 6e 74 65 72 6e 61 6c 20 73 74 61 74 al internal stat 1010: 65 20 69 6e 20 61 20 73 69 64 65 2d 63 68 61 6e e in a side-chan 1020: 6e 65 6c 20 61 74 74 61 63 6b 2e 3c 2f 70 3e 0a nel attack.</p>. 1030: 0a 3c 70 3e 49 20 77 6f 75 6c 64 20 72 61 74 68 .<p>I would rath 1040: 65 72 20 63 72 69 74 69 63 69 7a 65 20 4b 65 63 er criticize Kec 1050: 63 61 6b 27 73 20 70 65 72 6d 75 74 61 74 69 6f cak's permutatio 1060: 6e 20 66 75 6e 63 74 69 6f 6e 20 66 2c 20 62 65 n function f, be 1070: 63 61 75 73 65 20 69 74 20 69 73 0a 72 65 76 65 cause it is.reve 1080: 72 73 69 62 6c 65 2e 20 57 75 72 73 74 6b 65 73 rsible. Wurstkes 1090: 73 65 6c 20 64 65 6c 69 62 65 72 61 74 65 6c 79 sel deliberately 10a0: 20 63 68 6f 73 65 20 61 20 6e 6f 74 20 66 75 6c chose a not ful 10b0: 6c 79 20 72 65 76 65 72 73 69 62 6c 65 20 6f 6e ly reversible on 10c0: 65 2d 77 61 79 0a 66 75 6e 63 74 69 6f 6e 2e 20 e-way.function. 10d0: 54 68 65 20 72 65 76 65 72 73 69 62 69 6c 69 74 The reversibilit 10e0: 79 20 6f 66 20 4b 65 63 63 61 6b 27 73 20 66 20 y of Keccak's f 10f0: 73 68 6f 75 6c 64 20 6e 6f 74 20 62 65 20 61 20 should not be a 1100: 70 72 6f 62 6c 65 6d 20 74 6f 20 61 6e 0a 61 74 problem to an.at 1110: 74 61 63 6b 65 72 20 66 6f 72 20 65 6e 63 72 79 tacker for encry 1120: 70 74 69 6f 6e 20 61 6e 64 20 64 65 63 72 79 70 ption and decryp 1130: 74 69 6f 6e 2c 20 62 65 63 61 75 73 65 20 69 74 tion, because it 1140: 20 69 73 20 73 65 63 72 65 74 2c 20 62 75 74 20 is secret, but 1150: 49 20 63 61 6e 20 69 6d 61 67 69 6e 65 0a 69 74 I can imagine.it 1160: 20 62 65 63 6f 6d 69 6e 67 20 61 20 70 6f 74 65 becoming a pote 1170: 6e 74 69 61 6c 20 61 74 74 61 63 6b 20 76 65 63 ntial attack vec 1180: 74 6f 72 20 77 69 74 68 20 68 61 73 68 65 73 2e tor with hashes. 1190: 20 41 6e 64 20 74 68 61 74 27 73 20 77 68 61 74 And that's what 11a0: 20 74 68 65 0a 63 6f 6d 70 65 74 69 74 69 6f 6e the.competition 11b0: 20 77 61 73 20 61 62 6f 75 74 3a 20 68 61 73 68 was about: hash 11c0: 65 73 2e 3c 2f 70 3e es.</p>