SHA-512
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.