HMAC
HMAC (сокращение от англ. hash message authentication code, хеш-код идентификации сообщений) — алгоритм усиления криптостойкости других криптоалгоритмов (чаще всего MD5). Авторы — Хьюго Кравчик, Михир Беллар и Ран Каннетти.
Алгоритм
Хеш-функция разделяет сообщения на блоки фиксированного размера и применяет к ним функцию сжатия. (MD5 или SHA-1 используют блоки 512 бит). После применения HMAC размер результата не меняется (128 или 160 бит для MD5 и SHA-1).
Функция HMAC определяется следующим образом:
<math>\mathrm{HMAC}_K(m) = h\Bigg((K \oplus \mathrm{opad}) \| h\Big((K \oplus \mathrm{ipad}) \| m\Big)\Bigg)</math>, где:
- h — хеш-функция
- К — секретный ключ, дополненный нулями до размера блока
- m — сообщение для идентификации
- <math>\|</math> — конкатенация
- <math>\oplus</math> — xor
- opad — 0x5c5c..5c (длина равна размеру блока)
- ipad — 0x3636..36 (длина равна размеру блока)
Если длина секретного ключа превышает размер блока, то ключ необходимо укоротить, преобразовав его с помощью функции h, и дополнить нулями до размера блока.
Использование
HMAC используется в протоколах IPSec (для AH и ESP) и TLS.
Стандартизация
Конструкция HMAC стандартизирована организациями ANSI, IETF, ISO и NIST.
См. также
Источники
- У. Блэк — Интернет протоколы безопасности, Москва, издательство «Питер», 2001 ISBN 5-318-00002-9 (ISBN 0-13-014249-2 английский оригинал)
- RFC 2104
Компьютер | Это незавершённая статья о компьютерах. Вы можете помочь проекту, исправив и дополнив её. |
Формула | Это незавершённая статья по математике. Вы можете помочь проекту, исправив и дополнив её. |
cs:HMAC de:Keyed-Hash Message Authentication Code en:HMAC fr:Keyed-Hash Message Authentication Code it:HMAC ja:HMAC pl:HMAC sk:HMAC
Если вам нравится SbUP.com Сайт, вы можете поддержать его - BTC: bc1qppjcl3c2cyjazy6lepmrv3fh6ke9mxs7zpfky0 , TRC20 и ещё....