Интернет магазин китайских планшетных компьютеров



Компьютеры - HMAC - Примеры

16 июня 2011


Оглавление:
1. HMAC
2. Описание
3. Принцип работы
4. HMAC параметры и обозначения
5. Примеры
6. Вопросы использования



Продемонстрируем пример работы алгоритма для различных входных данных.
Первый параметр — 160-битный ключ. Второй параметр — передаваемое сообщение. На выходе мы получаем 160 битный код аутентификации.

HMAC = HMAC = 740ca4e7a701540b385df12fe57cff57
HMAC = HMAC = a0e026219366a56cf843bd2051831327
HMAC = HMAC = c6b1d8489a204918643086ce346b86bc

Рассмотрим более подробно алгоритм HMAC на примере хэш-функции SHA-1 с 20-байтовым ключом:
Имеем: текстовое сообщение
Text: Hello World

и 20-байтовый ключ в шестнадцатеричном виде
Key:
0x707172737475767778797a7b7c7d7e7f80818283

1 шаг:
Дополняем Key нулевыми байтами до размера блока SHA-1
K0:
70717273 74757677 78797a7b 7c7d7e7f
80818283 00000000 00000000 00000000
00000000 00000000 00000000 00000000
00000000 00000000 00000000 00000000

2 шаг:
Побитовое исключающее ИЛИ
K0 \oplus ipad:
46474445 42434041 4e4f4c4d 4a4b4849
b6b7b4b5 36363636 36363636 36363636
36363636 36363636 36363636 36363636
36363636 36363636 36363636 36363636

3 шаг:
Конкатенация исходного сообщения с результатом на шаге 2
||text:
46474445 42434041 4e4f4c4d 4a4b4849
b6b7b4b5 36363636 36363636 36363636
36363636 36363636 36363636 36363636
36363636 36363636 36363636 36363636
48656c6c 6f20576f 726c64

4 шаг:
Применим SНA-1 к результату, созданному на шаге 3
Hash||text):
0d42b899 d804e19e bfd86fc4 4f414045 dfc9e39a

5 шаг:
Побитовое исключающее ИЛИ
K0 \oplus opad:
2c2d2e2f 28292a2b 24252627 20212223
dcdddedf 5c5c5c5c 5c5c5c5c 5c5c5c5c
5c5c5c5c 5c5c5c5c 5c5c5c5c 5c5c5c5c
5c5c5c5c 5c5c5c5c 5c5c5c5c 5c5c5c5c

6 шаг:
Конкатенация результата хеширования на шаге 4 с результатом на шаге 5
|| Hash||text):
2c2d2e2f 28292a2b 24252627 20212223
dcdddedf 5c5c5c5c 5c5c5c5c 5c5c5c5c
5c5c5c5c 5c5c5c5c 5c5c5c5c 5c5c5c5c
5c5c5c5c 5c5c5c5c 5c5c5c5c 5c5c5c5c
0d42b899 d804e19e bfd86fc4 4f414045
dfc9e39a

7 шаг:
Применим SНA-1 к результату, созданному на шаге 6
HMAC = Hash || Hash||text)):
2e492768 aa339e32 a9280569 c5d02626 2b912431

получили 20 байтовый HMAC



Просмотров: 4842


<<< GSS-API