blockchains-security-toolkit/basic_knowledge/cryptography/keccak.md
osiris account 98e5bd2cce 💾
2023-03-15 11:02:04 -07:00

1.4 KiB

🥐 keccak


hashing


  • hashing is a mathematical op converting an input message into a digest
  • the transformation of a str of characters into a (usually shorter) fixed-length value or key that represents the original string.
  • used to determine the integrity of a message, fast data retrieval and to encrypt/decrypt digital signatures
  • collisions found: MD5 (128, 1992), SHA-1 (160, 1995)
  • no collisions found: SHA-2 (224/256/384/512, 2001)

secure hash algorithm (SHA)


  • family of cryptographic hash functions by NIST
  • preprocessing: padding the data for blocking (fixed size message blocks)

SHA-3/keccak


  • 2012 as the winner of the NIST hash function competition
  • based on the sponge function: variable input and output length
  • parameters (decides the strength):
    • r bits: rate, defines speed
    • c bits: capacity, defines the security level
  • no key schedule, instead round constants
  • state us 5x5x64 bits block
  • the rho module rotates each 64-bit element by a triangular number: 0, 1, 3, 6, 10, 15...
  • the pi module permutes the 64-bit elements
  • the chi module adds a non-linear aspect to the permutation round
  • the iota module breaks up any symmetry caused by the other modules, through XORing one of the array elements to a round constant

application & strength

  • high level of parallelism
  • flexibility, bit interleaving
  • suited for protection against side-channel attack