Интернет магазин китайских планшетных компьютеров |
|
Компьютеры - 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)); } Просмотров: 5037
|