Составители:
K
i
= 2
1/2
/4 = 0х5а827999 для i= 0 ÷ 19,
К
i
= 3
1/2
/4 = 0x6ed9eba1 для i= 20 ÷ 39,
K
i
= 5
1/2
/4 = 0x8flbbcdc для i = 40 ÷ 59,
K
i
= 10
1/2
/4 =0xca62c1d6 для i = 60 ÷79.
Блок сообщения преобразуется из шестнадцати 32-битовых слов
(М
0
÷М
15
) в восемьдесят 32-битовых слов (W
0
÷W
79
) с помощью
следующего алгоритма:
W
t
=
M
t
для t = 0÷19,
W
t
=(
W
t
-3
⊕
W
t
-8
⊕
W
t
-14
⊕
W
t
-16
)<<< 1
для t = 16 ÷ 79,
где
t
- номер операции (для
t
= 1
÷
80),
W
-
t
-й подблок
расширенного сообщения, <<<
S
- циклический сдвиг влево на
S
бит.
С учетом введенных обозначений главный цикл из восьмидесяти
операций можно описать так:
FOR t = 0 to 79
TEMP = (а <<< 5) + f
t
(b, с, d) + e + W
t
+ K
t
e = d
d = c
с = (b <<<30)
b = a
a = TEMP
Схема выполнения одной операции SHA показана на рис. 5.5. Сдвиг
переменных осуществляет ту же функцию, которую в MD5
выполняет использование в различных местах разных переменных.
После этого значения а, b, с, d и е суммируются с А, В, С, D и Е
соответственно, и алгоритм переходит к обработке следующего
блока данных. Окончательный выход формируется в виде
конкатенации значений А, В, С, D и Е.
97
Страницы
- « первая
- ‹ предыдущая
- …
- 93
- 94
- 95
- 96
- 97
- …
- следующая ›
- последняя »