Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - HMAC - HMAC параметры и обозначения16 июня 2011Оглавление: 1. HMAC 2. Описание 3. Принцип работы 4. HMAC параметры и обозначения 5. Примеры 6. Вопросы использования HMAC алгоритм использует следующие параметры:
Криптографический ключРазмер ключа, К, должен быть больше или равен L / 2. Стоит обратить внимание, что ключи с размером больше чем L байт уже не существенно увеличивают криптографическую стойкость функции. ПсевдокодСледующий псевдокод показывает как HMAC может быть реализован:
FUNCTION hmac:
IF len > blocksize THEN: // Если ключ БОЛЬШЕ чем размер блока...
key = hash // Укорачиваем ключ до размера результата хеш-функции
// чем размер блока хеш-функции)
END_IF
IF len < blocksize THEN: // Если ключ МЕНЬШЕ чем размер блока хеш-функции...
key = key ∥ zeroes) // Дополняем ключ нулевой последовательностью
END_IF
ipad = // Где оператор "*" - указывает сколько раз повторять элемент последовательности,
opad = // а blocksize - это размер блока хэш-функции,
ikeypad = ipad ⊕ key // Где оператор "⊕" - осуществляет побитовое ИСКЛЮЧАЮЩЕЕ-ИЛИ
okeypad = opad ⊕ key
RETURN hash) // Где оператор "∥" - осуществляет операцию конкатенации
END_FUNCTION
Возможные реализацииПредставленные ниже языки программирования были выбраны из-за наличия стандартных библиотек поддерживающий данный алгоритм. Пример использования реализации алгоритма на языке Python:
import hmac, hashlib
print hmac.new(
key='secret_shared_key',
msg=open.read,
digestmod=hashlib.md5
).hexdigest
Одна из возможных реализаций алгоритма на языке PHP:
function hmac {
$bit = 1024; // byte length for md5
if > $bit) {
$key = pack);
}
$key = str_pad);
$ipad = str_pad);
$opad = str_pad);
$k_ipad = $key ^ $ipad ;
$k_opad = $key ^ $opad;
return md5));
}
Просмотров: 5774
|