Составители:
Прежде всего, дополняется исходное сообщение, так чтобы его
длина стала кратной 512 бит. В сущности, используется та же
процедура дополнения сообщения, как и в MD5: сначала добавляется
единица, затем столько нулей, сколько необходимо для получения
сообщения, длина которого на 64 бит меньше числа, кратного 512 бит, и
затем добавляется 64-битовое представление длины исходного
сообщения.
Далее инициализируются пять 32-битовых переменных (в MD5
используется четыре переменных):
А = 0x67452301;
В = 0xefcdab89;
С = 0x98badcfe;
D = 0x10325476;
Е = 0xc3d2elf0.
Затем начинается основной цикл алгоритма. Он обрабатывает блоки
сообщения по 512 бит и осуществляет этот процесс поочередно для
всех 512-битовых блоков сообщения. Сначала пять переменных А, В,
С, D, E копируются во вспомогательные переменные а, b, с, d, e:
А →a, В →b, C→c, D →d и E →е.
Основной цикл состоит из четырех этапов по 20 операций, каждая
операция из которых реализует нелинейную функцию над тремя из пяти
переменными а, b, с, d, e, а затем производит сдвиг и сложение.
В алгоритме SHA используется следующий набор нелинейных
функций:
f
i
(X, Y, Z) = (X ∧ Y) ∨ (⎯X ∧ Z ) для i = 0 ÷ 19,
f
i
(X, Y, Z) = X ⊕ Y ⊕ Z для i = 20 ÷ 39,
f
t
(X, Y, Z) = (X ∧ Y) ∨ (X ∧ Z) ∨ (Y ∧ Z) для i = 40 ÷ 59,
f
i
(X, Y, Z) = X ⊕ Y ⊕ Z для i = 60 ÷ 79,
где i- номер операции (i = 0 ÷ 79).
В алгоритме используются следующие четыре
шестнадцатеричные константы:
96
Страницы
- « первая
- ‹ предыдущая
- …
- 92
- 93
- 94
- 95
- 96
- …
- следующая ›
- последняя »