SHA-512

Алгоритм SHA-512, Хеширование, Криптостойкость SHA512

SHA-512 – алгоритм хеширования, который является функцией криптографического алгоритма .

Обзор алгоритма SHA-512

SHA-512 очень близок к SHA-256, за исключением того, что он использует 1024 битные «блоки» и принимает в качестве входных данных длину строки длиной 2 ^ 128 бит. SHA-512 также имеет другие алгоритмические модификации по сравнению с SHA-256.

SHA-512 имеет структуру:

  • слова имеют длину 64 бита,
  • используется 80 раундов вместо 64,
  • сообщение разбито на чанки по 1024 бит,
  • начальные значения переменных и константы расширены до 64 бит,
  • постоянные для каждого из 80 раундов — 80 первых простых чисел,
  • сдвиг в операциях rotr и shr производится на другое число позиций.

Начальные значения переменных h0-h7 в SHA-512:

  • h0 := 0x6a09e667f3bcc908
  • h1 := 0xbb67ae8584caa73b
  • h2 := 0x3c6ef372fe94f82b
  • h3 := 0xa54ff53a5f1d36f1
  • h4 := 0x510e527fade682d1
  • h5 := 0x9b05688c2b3e6c1f
  • h6 := 0x1f83d9abfb41bd6b
  • h7 := 0x5be0cd19137e2179

SHA-512/t

SHA-512/t идентичен SHA-512, за исключением того, что:

  • начальные значения хеширования от h0 до h7 задаются функцией генерации SHA-512 / t IV;
  • выход сконструирован путем усечения конкатенации h0 через h7 в t бит;
  • t, равное 384, не допускается, вместо этого SHA-384 следует использовать как указано;
  • t значения 224 и 256 особо упоминаются как утвержденные.

Модифицированный SHA-512/t является таким же, как SHA-512, за исключением того, что его начальные значения от h0 до h7 имеют XORed с шестнадцатеричной константой 0xa5a5a5a5a5a5a5a5.

См. также на BitcoinWiki