(1 . 1)(1 . 22)
36 To contain a Keccak implementation.
37 Q: What is this?
38 A: This is an implementation of the Keccak hash function.
39
40 Q: What is a hash function?
41 A: A deterministic procedure which seems difficult to invert.
42
43 Q: What do you mean "seems difficult"?
44 A: Broadly speaking, there is no proof that common hash functions *are*
45 difficult to invert. Rather, we don't know efficient ways to invert them.
46
47 Q: What is Keccak?
48 A: https://keccak.team/keccak.html
49
50 Q: What are the advantages of Keccak over other hash functions?
51 A: Keccak has a few nice features (list not exhaustive):
52 - Keccak can take in arbitrarily large input, and return arbitrarily
53 large output.
54 - It's possible to trade security for speed, and vice versa.
55
56 Q: How does Keccak work?
57 A: Basically, Keccak loads bits into a large Rubik's cube, permutes those bits
58 in convoluted ways, and reads back bits from the Rubik's cube.