ММХ-Барсук MAC
Badger — это код аутентификации сообщения (MAC), основанный на идее универсального хеширования и разработанный Боесгором, Скавениусом, Педерсеном, Кристенсеном и Ценнером. [1] Он построен путем усиления ∆-универсального хэш-семейства MMH с использованием семейства ϵ-почти сильно универсальных (ASU) хеш-функций после применения ENH (см. ниже), где значение ϵ равно . [2] Поскольку Badger — это функция MAC, основанная на подходе универсальной хеш- функции, условия, необходимые для безопасности Badger, такие же, как и для других универсальных хэш-функций, таких как UMAC .
Введение
[ редактировать ]MAC Badger обрабатывает сообщение длиной до бит и возвращает тег аутентификации длиной биты, где . В соответствии с потребностями безопасности пользователь может выбрать значение , это количество параллельных хеш-деревьев в Badger. Можно выбрать большие значения u , но эти значения не влияют на безопасность MAC. Алгоритм составляет использует 128-битный ключ, и ограниченная длина сообщения, обрабатываемого под этим ключом, . [3]
Настройку ключа необходимо выполнить только один раз для каждого ключа, чтобы запустить алгоритм Badger под данным ключом, поскольку полученное внутреннее состояние MAC можно сохранить для использования с любым другим сообщением, которое будет обработано позже.
ЭНХ
[ редактировать ]Хэш-семейства можно комбинировать для получения новых хеш-семейств. Для семейств ϵ-AU, ϵ-A∆U и ϵ-ASU последние содержатся в первых. Например, семейство A∆U также является семейством AU, ASU также является семейством A∆U и т.д. С другой стороны, более сильное семейство может быть уменьшено до более слабого, если будет достигнут прирост производительности. метод сведения ∆-универсальной хэш-функции к универсальным хеш- Ниже будет описан функциям.
Теорема 2 [1]
Позволять из множества A в множество B. быть хеш-семейством ϵ- AΔU Рассмотрите сообщение . Тогда семейство H, состоящее из функций является ϵ-AU.
Если , то вероятность того, что не более ϵ, с является семейством ϵ-A∆U. Если но , то вероятность тривиально равна 0. Доказательство теоремы 2 описано в [1]
Семейство ENH построено на основе универсального семейства хэшей NH (которое также используется в UMAC ):
Где ' ' означает 'сложение по модулю ', и . Это -A∆U хеш-семейство.
Лемма 1 [1]
Следующая версия NH -A∆U:
Выбрав w=32 и применив теорему 1, можно получить -AU семейство функций ENH, которое будет основным строительным блоком MAC-адреса барсука:
где все аргументы имеют длину 32 бита, а выходные данные имеют длину 64 бита.
Строительство
[ редактировать ]Badger построен с использованием семейства хэшей строгой универсальности и может быть описан как
где Семейство универсальных функций -AU H* используется для хеширования сообщений любого размера в фиксированный размер и -Семейство функций ASU F используется для обеспечения высокой универсальности всей конструкции. NH и ENH используются для построения H* . Максимальный входной размер семейства функций H* равен а выходной размер составляет 128 бит, разделенных на 64 бита для сообщения и хэша. Вероятность столкновения для H* -функции находится в пределах от к . Для построения сильно универсального семейства функций F ∆-универсальное хеш-семейство MMH* преобразуется в сильно универсальное хеш-семейство путем добавления еще одного ключа.
Два шага к Барсуку
[ редактировать ]Для каждого сообщения необходимо выполнить два шага: этап обработки и этап финализации. [3]
Этап обработки
[ редактировать ]На этом этапе данные хешируются в 64-битную строку. Основная функция h : используется на этом этапе обработки, который хэширует 128-битную строку в 64-битную строку следующее:
для любого n , означает сложение по модулю . Учитывая -битовая строка x , означает младшие n битов, а старших означает n битов.
Сообщение может быть обработано с помощью этой функции. Обозначим level_key[j][i]
к .
Псевдокод этапа обработки выглядит следующим образом.
L = |M| if L = 0 Go to finalization r = L mod 64 if r ≠ 0: for i = 1 to u: for j = 1 to v′: divide into 64-bit blocks, if t is even: else
Завершающий этап
[ редактировать ]На этом этапе 64-строка, полученная в результате этапа обработки, преобразуется в желаемый тег MAC. На этом этапе финализации используется Rabbit потоковый шифр и используется как настройка ключа, так и настройка IV путем получения ключа финализации. final_key[j][i]
как .
Псевдокод этапа финализации
RabbitKeySetup(K) RabbitIVSetup(N) for i = 1 to u: divide into 27-bit blocks, S = S ⨁ RabbitNextbit(u∙32) return S
Обозначения
[ редактировать ]В приведенном выше псевдокоде k обозначает ключ в Rabbit Key Setup(K), который инициализирует Rabbit 128-битным ключом k . M обозначает сообщение, которое необходимо хешировать, а | М | обозначает длину сообщения в битах. обозначает сообщение M , разделенное на i блоков. Для данного -битовая строка x , то L ( x ) и U ( x ) соответственно обозначают ее младшие n бит и наиболее важные n бит.
Производительность
[ редактировать ]Босгард, Кристенсен и Ценнер сообщают о производительности Badger, измеренной на процессоре Pentium III с тактовой частотой 1,0 ГГц и процессоре Pentium 4 с тактовой частотой 1,7 ГГц . [1] Версии с оптимизированной скоростью были запрограммированы на языке ассемблера, встроенном в C, и скомпилированы с использованием компилятора Intel C++ 7.1.
В следующей таблице представлены свойства Badger для сообщений различной ограниченной длины. «Требуется память». обозначает объем памяти, необходимый для хранения внутреннего состояния, включая ключевой материал и внутреннее состояние Rabbit поточного шифра . «Настройка» обозначает настройку ключа, а «Фин». обозначает завершение с помощью IV-настройки.
Макс. Размер сообщения | Подделка связана | Рег.памяти. | Настройка Пентиума III | Плавник. Пентиум III | Настройка Пентиума III | Плавник. Пентиум III |
---|---|---|---|---|---|---|
байты (например, IPsec) | 400 байт | 1133 цикла | 409 циклов | 1774 цикла | 776 циклов | |
байты (например, TLS) | 528 байт | 1370 циклов | 421 цикл | 2100 циклов | 778 циклов | |
байты | 1072 байта | 2376 циклов | 421 цикл | 3488 циклов | 778 циклов | |
байты | 2000 байт | 4093 цикла | 433 цикла | 5854 цикла | 800 циклов |
MMH (многолинейное модульное хеширование)
[ редактировать ]Название MMH расшифровывается как Multilinear-Modular-Hashing. Приложения в области мультимедиа предназначены, например, для проверки целостности мультимедийного онлайн-заголовка. Производительность MMH основана на улучшенной поддержке целочисленных скалярных произведений в современных микропроцессорах.
В качестве основной операции MMH использует скалярные произведения одинарной точности. Он состоит из (модифицированного) внутреннего продукта между сообщением и ключом модулю . по простому . Конструкция ММХ работает в конечном поле. для некоторого простого целого числа .
ММХ*
[ редактировать ]MMH* предполагает построение семейства хэш-функций , состоящего из полилинейных функций на для некоторого положительного целого числа k . Семейство MMH* функций из к определяется следующим образом.
где x, m — векторы, а функции определяются следующим образом.
В случае MAC m — это сообщение, а x — ключ, где и .
MMH* должен удовлетворять требованиям безопасности MAC, позволяя, скажем, Ане и Бобу общаться с аутентификацией. У них есть секретный ключ x . Допустим, Чарльз слушает разговор между Аной и Бобом и хочет изменить сообщение на свое собственное сообщение Бобу, которое должно пройти как сообщение от Аны. Таким образом, его сообщение m' и сообщение Аны m будут отличаться хотя бы на один бит (например, ).
Предположим, что Чарльз знает, что функция имеет вид и он знает сообщение Аны m, но не знает ключа x , то вероятность того, что Чарльз сможет изменить сообщение или отправить свое собственное сообщение, можно объяснить следующей теоремой.
Теорема 1 [4] :Семейство MMH* ∆-универсально.
Доказательство:
Брать , и пусть быть двумя разными сообщениями. Предположим без ограничения общности, что . Тогда при любом выборе , есть
Для объяснения приведенной выше теоремы возьмем для Prime представляет поле как . Если взять элемент в скажем так тогда вероятность того, что является
Итак, что на самом деле нужно вычислить, так это
Но,
Из доказательства выше, — столкновения вероятность злоумышленника за 1 раунд, поэтому в среднем p проверочных запросов будет достаточно, чтобы принять одно сообщение. Чтобы уменьшить вероятность коллизии, необходимо выбрать большое p или объединить n таких MAC с помощью n независимых ключей, чтобы вероятность коллизии] стала . В этом случае количество ключей увеличивается в n раз , а выход также увеличивается в n раз .
ММХ*32
[ редактировать ]Халеви и Кравчик [4] построить вариант под названием . Конструкция работает с 32-битными целыми числами и с простым целым числом. . На самом деле простое число p можно выбрать в качестве любого простого числа, удовлетворяющего условию . Эта идея заимствована из предложения Картера и Вегмана использовать простые числа или .
- определяется следующим образом:
где означает (т.е. двоичное представление)
Функции определяются следующим образом.
где
По теореме 1 столкновения вероятность составляет около и семья можно определить как ϵ -почти ∆ универсальный с .
Значение к
[ редактировать ]Значение k , которое описывает длину сообщения и ключевые векторы, имеет несколько эффектов:
- Поскольку дорогостоящее модульное сокращение по k представляет собой операции умножения и сложения, увеличение k должно снизить скорость.
- Поскольку ключ x состоит из k 32-битных целых чисел, увеличение k приведет к увеличению длины ключа.
- Вероятность разрушения системы равна и поэтому увеличение k затрудняет взлом системы.
Производительность
[ редактировать ]Ниже приведены результаты синхронизации для различных реализаций MMH. [4] в 1997 году по проекту Халеви и Кравчика.
- частотой 150 МГц под управлением AIX. Машина PowerPC 604 RISC с
150 МГц PowerPC 604, | Сообщение в памяти | Сообщение в кэше |
---|---|---|
64-битная | 390 Мбит/сек. | 417 Мбит/сек. |
32-битный вывод | 597 Мбит/сек. | 820 Мбит/сек. |
- Машина Pentium-Pro с тактовой частотой 150 МГц под управлением Windows NT.
PowerPC 604, 150 МГц | Сообщение в памяти | Сообщение в кэше |
---|---|---|
64-битная | 296 Мбит/сек. | 356 Мбит/сек. |
32-битный вывод | 556 Мбит/сек. | 813 Мбит/сек. |
- Машина Pentium-Pro с тактовой частотой 200 МГц под управлением Linux.
PowerPC 604, 150 МГц | Сообщение в памяти | Сообщение в кэше |
---|---|---|
64-битная | 380 Мбит/сек. | 500 Мбит/сек. |
32-битный вывод | 645 Мбит/сек. | 1080 Мбит/сек. |
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Jump up to: а б с д и ж Боесгор, Мартин ; Скавениус, Уве ; Педерсен, Томас ; Кристенсен, Томас ; Зеннер, Эрик (2005). «Badger — быстрый и доказуемо безопасный MAC» (PDF) .
- ^ Удачи, Стефан ; Реймен, Винсент (2005). «Оценка Барсука» (PDF) .
- ^ Jump up to: а б «Код аутентификации сообщения барсука, спецификация алгоритма» (PDF) . 2005.
- ^ Jump up to: а б с Халеви, Шай ; Кравчик, Хьюго (1997). «MMH: Программная аутентификация сообщений со скоростью Гбит/секунда». MMH:Программная аутентификация сообщений со скоростью Гбит/с . Конспекты лекций по информатике. Том. 1267. стр. 172–189. дои : 10.1007/BFb0052345 . ISBN 978-3-540-63247-4 .