Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Kriptografia_prezentatsii / ______ SHA-1 (Secure Hash Algorithm)

.ppt
Скачиваний:
33
Добавлен:
21.03.2016
Размер:
334.34 Кб
Скачать

Логика SHA-1 (Secure Hash Algorithm)

 

 

Дополнение

 

Длина

 

 

сообщения

 

 

(от 1 до 512 бит)

 

l x 512 б = N x 32 бит

(Kmod264)

 

 

 

 

 

 

 

 

 

 

 

К бит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Сообщение

 

100000…0

 

 

 

 

 

 

512 бит

 

 

 

 

 

512 бит

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Y0

 

 

 

 

 

Y1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

512 бит

 

512 бит

IV

 

 

 

160

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SHA-1

 

SHA-1

 

 

 

 

 

 

 

 

 

 

 

 

 

160

 

CV1

 

 

 

 

Добавление

значения

длины:

К сообщению добавляется 64-битовый блок – 64-битовое число без знака (наиболее значимый байт идет первым) и содержит значение длины исходного сообщения (перед добавлением заполнителя).

 

 

 

 

 

 

512 бит

 

 

 

 

 

512 бит

. . .

 

 

 

 

 

 

 

 

 

. . .

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Yq

 

 

 

 

 

YL-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

512 бит

 

 

 

 

 

 

 

512 бит

 

160

 

 

 

 

 

 

 

160

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

SHA-1

 

 

 

 

 

SHA-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

CVq

 

 

CVL-1

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Добавление битов заполнителя:

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

160 –

 

 

Длина сообщения =448mod512,

 

 

 

 

битовый

 

 

число бит от 1 до 512.

 

 

 

 

 

 

профиль

 

 

Пример: M=448,

 

 

 

 

 

 

 

 

 

 

 

 

 

M=448mod512=960mod512=448

 

 

 

 

 

 

 

 

 

 

 

-> 512 бит добавляется

 

 

 

 

 

 

 

 

 

 

 

 

Обработка одного 512-битового блока в SHA-1 (функция сжатия SHA-1)

Yq

 

 

 

 

 

 

 

 

 

 

CVq

 

 

 

 

 

512

32

 

 

160

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

B

 

 

C

 

D

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f1, K, W[0…19]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20 шагов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

B

 

C

 

D

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f2, K, W[20…39]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20 шагов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

B

 

C

 

D

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f3, K, W[40…59]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

20 шагов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A

 

 

B

 

C

 

D

 

E

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

f4, K, W[60…79]

 

 

 

 

 

 

 

 

 

 

 

20 шагов

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

0 t 19

 

 

+

+

+

+

+

Сложение (+)

 

160

 

 

 

 

 

 

выполняется по

 

CVq+1

 

 

модулю 232

 

 

 

 

Значения констант

 

 

 

 

 

 

Номер

Шестнадцатеричное

Целая часть числа

шага

представление

 

 

 

 

 

 

 

0 t 19

Кt=5A827999

 

30

 

 

 

 

 

20

3

 

 

 

 

Кt=6ED9EBA1

 

30

 

 

 

 

 

20 t 39

20

2

 

 

 

Кt=8F1BBCDC

2030

 

 

 

 

40 t 59

5

60 t 79

Кt=CA62C1D6

2030

 

 

 

10

Вывод: работу алгоритма SHA-1 можно представить формулами:

CV0=IV, CVq+1=SUM32(CVq, ABCDEq), MD=CVL, где,

IV – начальное значение буфера ABCDE;

ABCDEq – выход последнего раунда обработки q-го 512-

битового блока сообщения;

L – общее число блоков сообщения (с учетом битов заполнителя и полей длины сообщения );

SUM32 – сложение по модулю 23,выполняемое отдельно для каждого слова пары вводимых значений;

MD – выходное значение профиля сообщения;

Инициализация буфера IV

слово A: 01 23 45 67

слово B: 89 AB CD EF

слово C: FE DC BA 98

слово D: 76 54

32 10

слово E: C3 D2

E1 F0

Пять 32-битовых регистров

 

Элементарная операция SHA

 

 

Функция сжатия SHA-1

 

 

 

 

 

 

 

 

(один шаг раунда)

 

 

 

 

 

 

 

 

 

 

 

 

A

B

C

D

E

Каждый раунд имеет вид:

 

 

 

 

 

 

 

 

 

 

 

 

 

A, B, C, D, E <- (E+f(t, B,C,D)+S5(A)+Wt+Kt),A, S30(B),C,D,

 

 

 

 

 

 

 

где,

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

A, B, C, D, E – пять слов буфера,

 

 

 

 

 

 

 

 

 

 

ft

 

+

t

– номер шага, от 0 до 79;

 

 

 

 

 

 

 

 

 

 

 

f(t, B,C,D) – примитивная логическая функция для шага t;

 

 

 

 

 

 

 

 

 

Sk

– циклический сдвиг влево (вращение) 32-битового

 

 

 

 

 

 

 

 

аргумента на k битов;

 

 

 

 

 

 

 

 

 

S

5

 

 

+

Wt

– 32-битовое слово, извлеченное из текущего 512-битового

 

 

 

 

 

блока ввода;

 

 

 

 

 

 

 

 

 

 

 

 

Kt

Kt

 

 

 

 

 

 

 

 

 

 

 

 

– добавляемая константа, используется 4 различных

 

 

 

 

S30

 

 

+

значения;

 

 

 

 

 

 

 

 

 

 

 

 

 

+

– сложение по модулю 232;

Значение функции

 

 

 

 

 

 

 

Wt

 

Шаг

 

Функция

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

+

 

0 t 19

f1=f(t, B, C, D)

(B C) (B D)

 

 

 

 

 

 

 

 

 

 

20 t 39

f2=f(t, B, C, D

B C D

 

 

 

 

 

A

B

C

D

E

 

40 t 59

f3=f(t, B, C, D

(B C) (B D) (C D)

 

 

 

 

 

 

 

 

 

 

 

 

 

60 t 79

f4=f(t, B, C, D

B C D

 

 

 

 

 

 

 

512

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Yq

 

W0 W8 W2 W13

Wt-16 Wt-14 Wt-8 Wt-3

W63 W65 W71 W76

 

 

 

 

 

 

 

 

 

 

 

+

 

+

 

+

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

W =S1(W

t-16

+W

t-14

+W

+W

t-3

)

 

 

 

 

 

. . .

 

. . .

 

t

 

t-8

 

 

W0

W1

. . .

W15

W16

Wt

W79

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Создание последовательности ввода из 80 слов для обработки одного блока в SHA-1

 

 

 

 

 

 

 

 

Сравнение хэш-алгоритмов

 

MD5

ГОСТ 3411-97

SHA-1

RIPEMD-160

Длина

128

256

160

160

профиля

 

 

 

 

Базовая длина

512

256

512

512

обрабатываемог

 

 

 

 

о сообщения

 

 

 

 

Число шагов

64

80

80

160

 

(4 раунда по

 

(4 раунда по

(5 спаренных

 

16 шагов)

 

20 шагов)

раундов по 16

 

 

 

 

шагов)

Max длина

произвольная

произвольная

264-1 битов

264-1 битов

сообщения

 

 

 

 

Число

4

Базовое

4

5

примитивных

 

преобразование

 

 

функция

 

блочный

 

 

 

 

симметричный

 

 

 

 

шифр

 

 

Число

64

 

4

9

аддитивных

 

 

 

 

констант

 

 

 

 

Соседние файлы в папке Kriptografia_prezentatsii