Методы и средства защиты компьютерной информации. Хамидуллин Р.Р - 91 стр.

UptoLike

С
= 0
xfedcba
98;
D
= 0
x
76543210.
- копировать во вспомогательные переменные
a
,
b
,
c
, и
d
А
а
,
В
b
,
С
с
и
D
d
.
Основной цикл хэш-функции
MD
5 состоит из четырех
практически одинаковых этапов (рис. 5.3). На каждом из них 16 раз
используются различные операции. Каждая операция представляет
собой нелинейную функцию над тремя из четырех переменных
a
,
b
,
c
и
d
. Затем результат суммируется с четвертой переменной,
подблоком текста и константой. Далее этот результат циклически
сдвигается вправо на переменное число битов и суммируется с
одной из переменных
a
,
b
,
c
и
d
. Затем окончательный результат
заменяет одну из переменных
а
,
b
,
с
и
d
(см. рис.5.3 и 5.4).
На каждом из четырех этапов используется своя нелинейная
функция:
F
(
X
,
Y
,
Z
) = (
X
Y
)
(
X
Z
),
G
(
X
,
Y
,
Z
) = (
X
Y
)
(
Y
Z
),
H
(
X
,
Y
,
Z
) =
X
Y
Z
,
I
(
X
,
Y
,
Z
) =
Y
(
X
Z
),
где
XOR
;
AND
;
OR
;
NOT
.
Эти функции спроектированы так, что если соответствующие
биты
X
,
Y
и
Z
независимы, то каждый бит результата также будет
независим. Функция
F
это побитовое условие: если
X
то
Y
, иначе
Z
. Функция
H
-побитовая операция проверки чётности.
FF
(
a
,
b
,
c
,
d
,
M
j
,
s
,
t
j
) означает
a
=
b
+((
a
+
F
(
b
,
c
,
d
)+
M
j
+
t
j
<<<
s
,
GG(a,b,c,d,M
j
,s,t
j
) означает a=b+((a+G(b,c,d) +M
j
+t
j
<<<s,
HH
(
a
,
b
,c,
d
,
M
j
,
s
,
t
j
) означает
a
=
b
+((
a
+
H(b,c,d)
+
M
j
+
t
j
<<<
s
,
II
HH
(
a
,
b
,
c
,
d
,
M
j
,
s
,
t
j
) означает a=
b
+((
a
+
I(b,c,d)
+
M
j
+
t
j
<<<
s
,
где
M
j
j
-й подблок сообщения, <<<
s
циклический сдвиг влево на
s
бит.
93