MMH-Барсук MAC - MMH-Badger MAC

Барсук это Код аутентификации сообщения (MAC) на основе идеи универсальное хеширование и был разработан Boesgaard, Scavenius, Pedersen, Christensen и Zenner.[1] Он построен путем усиления ∆-универсального семейства хеш-функций MMH с использованием семейства ϵ-почти полностью универсальных (ASU) хэш-функций после применения ENH (см. Ниже), где значение ϵ равно .[2] Поскольку Badger - это функция MAC, основанная на универсальный хеш функциональный подход, условия, необходимые для безопасности Badger, такие же, как и для других универсальных хэш-функций, таких как UMAC.

Вступление

Badger MAC обрабатывает сообщение длиной до бит и возвращает аутентификация тег длины биты, где . Согласно безопасность потребности, пользователь может выбрать значение , то есть количество параллельных хэш-деревья в Барсуке. Можно выбрать большие значения ты, но эти значения не влияют на безопасность MAC. В алгоритм использует 128-битный ключ, и ограниченная длина сообщения, обрабатываемого под этим ключом, составляет .[3]

Настройка ключа должна выполняться только один раз для каждого ключа, чтобы запустить Badger. алгоритм под заданным ключом, поскольку результирующее внутреннее состояние MAC может быть сохранено для использования с любым другим сообщением, которое будет обработано позже.

ENH

Семейства хешей могут быть объединены для получения новых семейств хешей. Для семейств ϵ-AU, ϵ-A∆U и ϵ-ASU последние содержатся в первых. Например, семейство A∆U также является семейством AU, ASU также является семейством A∆U и т. Д. С другой стороны, более сильное семейство может быть сокращено до более слабого, если достигается прирост производительности. Метод сведения ∆-универсальной хеш-функции к универсальный хеш функции будут описаны ниже.

Теорема 2.[1]

Позволять -AΔU хеш-семейство из множества А к набору B. Рассмотрим сообщение . Тогда семья ЧАС состоящий из функций это ϵ-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 построен с использованием семейства хэшей строгой универсальности и может быть описан как

[1]

где -AU универсальное семейство функций ЧАС* используется для хеширования сообщений любого размера в фиксированный размер и Семейство функций ASU F используется для обеспечения универсальности конструкции в целом. NH и ENH используются для построения ЧАС*. Максимальный входной размер семейства функций ЧАС* является а размер вывода составляет 128 бит, каждый из которых разделен на 64 бита для сообщения и хэша. Вероятность столкновения для ЧАС*-функция варьируется от к . Для построения сильно универсального семейства функций F, ∆-универсальное семейство хешей MMH * преобразуется в строго универсальное семейство хешей путем добавления еще одного ключа.

Два шага на барсуке

Для каждого сообщения необходимо выполнить два этапа: этап обработки и этап завершения.

Фаза обработки[3]На этом этапе данные хешируются в 64-битную строку. Основная функция  : используется на этом этапе обработки, который хеширует 128-битную строку в 64-битную строку следующее:

для любого п, означает сложение по модулю . Учитывая 2n-битовая строка Икс, L (х) означает наименее значимый п биты и U (х) означает наиболее значительный п биты.

Сообщение может быть обработано с помощью этой функции. Обозначим level_key [j] [i] как .

Псевдокод этапа обработки следующий.

L = | M |, если L = 0M ^ 1 = ⋯ = M ^ u = 0 Перейти к финализации r = L mod 64, если r ≠ 0: M = 0 ^ (64-r) ∥Mfor i = 1 to u: M ^ i = Mv ^ '= max {1, ⌈log_2 L⌉-6} для j = 1 до v ^': разделите M ^ i на 64-битные блоки, M ^ i = m_t ^ i∥ ⋯ ∥m_1 ^ i, если t четное : M ^ i = h (k_j ^ i, m_t ^ i, m_ (t-1) ^ i) ∥ ⋯ ∥ h (k_j ^ i, m_2 ^ i, m_1 ^ i) elseM ^ i = m_t ^ i∥h (k_j ^ i, m_ (t-1) ^ i, m_ (t-2) ^ i) ∥ ⋯ ∥ h (k_j ^ i, m_2 ^ i, m_1 ^ i)

Завершить фаза[3]На этом этапе 64 строки, полученные в результате этапа обработки, преобразуются в желаемый тег MAC. На этом этапе завершения используется Кролик потоковый шифр и использует как настройку ключа, так и настройку IV, принимая ключ финализации final_key [j] [i] как .

Псевдокод этапа финализации

RabbitKeySetup (K) RabbitIVSetup (N) для i = от 1 до u: Q ^ i = 0 ^ 7L∥M ^ разделить Q ^ i на 27-битные блоки, Q ^ i = q_5 ^ i∥ ⋯ ∥q_1 ^ iS ^ i = (∑_ (j = 1) ^ 5 (q_j ^ i K_j ^ i)) + K_6 ^ i mod pS = S ^ u∥ ⋯ ∥S ^ 1S = S ⨁ RabbitNextbit (u ∙ 32) return S

Обозначение:

Из псевдокода выше, k обозначает ключ в настройке Rabbit Key (K), который инициализирует Rabbit 128-битным ключом k. M обозначает сообщение, которое нужно хешировать, а |M| обозначает длину сообщения в битах. q_i обозначает сообщение M который разделен на я блоки. Для данного 2n-битовая строка Икс тогда L (Икс) и ты(Икс) соответственно обозначали его младшие n битов и старшие п биты.

Спектакль

Босгард, Кристенсен и Зеннер сообщают о производительности Badger, измеренной на частоте 1,0 ГГц. Pentium III и на 1,7 ГГц Pentium 4 процессор.[1] Оптимизированные по скорости версии были запрограммированы на ассемблере, встроенном в C, и скомпилированы с использованием Intel C ++ Компилятор 7.1.

В следующей таблице представлены свойства Badger для различных сообщений ограниченной длины. «Требуется память» обозначает объем памяти, необходимый для хранения внутреннего состояния, включая ключевой материал и внутреннее состояние Кролик потоковый шифр . «Настройка» обозначает настройку клавиш, а «Fin». обозначает завершение с IV-установкой.

Максимум. Размер сообщенияПодделка связанаРег. ПамятиНастройка Pentium IIIПлавник. Pentium IIIНастройка Pentium IIIПлавник. Pentium 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 работает в конечное поле для некоторого простого целого числа .

MMH *

MMH * предполагает построение семейства хэш-функции состоящий из полилинейный функции на для некоторого положительного целого числа . Семейство MMH * функций из к определяется следующим образом.

куда х, м - векторы, а функции определяются следующим образом.

= =

В случае MAC, это сообщение и это ключ, где и .

MMH * должен удовлетворять требованиям безопасности MAC, позволяя, скажем, Ане и Бобу обмениваться данными аутентифицированным способом. У них есть секретный ключ . Скажем, Чарльз слушает разговор между Аной и Бобом и хочет преобразовать сообщение в свое собственное сообщение для Боба, которое должно пройти как сообщение от Аны. Итак, его сообщение и сообщение Аны будет отличаться хотя бы одним битом (например, ).

Предположим, что Чарльз знает, что функция имеет вид и он знает сообщение Аны но он не знает ключа Икс тогда вероятность того, что Чарльз сможет изменить сообщение или отправить собственное сообщение, можно объяснить следующей теоремой.

Теорема 1.[4]: Семейство MMH * ∆-универсально.

Доказательство:

Брать , и разреши быть двумя разными сообщениями. Предполагать не теряя общий смысл который . Тогда при любом выборе , есть

Чтобы объяснить приведенную выше теорему, возьмем за штрих представляет поле как . Если взять элемент в , скажем так тогда вероятность того, что является

Итак, что действительно нужно вычислить, так это

Но,

Из приведенного выше доказательства это столкновение вероятность нападающего за 1 раунд, поэтому в среднем запросов на подтверждение будет достаточно, чтобы одно сообщение было принято. Чтобы уменьшить столкновение вероятность, необходимо выбрать большие п или объединить такие MAC с использованием независимые ключи, так что столкновение вероятность становится . В этом случае количество ключей увеличивается в раз и выход также увеличивается на .

MMH * 32

Галеви и Кравчик[4] создать вариант под названием . Конструкция работает с 32-битной целые числа и с основной целое число . Собственно основной п можно выбрать любое простое число, удовлетворяющее

. Эта идея заимствована из предложения Картера и Вегмана использовать простые числа или же .

определяется следующим образом:

куда средства (т.е. двоичное представление)

Функции определяются следующим образом.

куда

,

По теореме 1 столкновение вероятность примерно ϵ = , и семья можно определить как ϵ-почти ∆ Universal с ϵ = .

Значение k

Значение k который описывает длину сообщения и ключ векторов имеет несколько эффектов:

  • Поскольку дорогостоящее модульное сокращение превышает k увеличивает операции умножения и сложения k должен уменьшить скорость.
  • Поскольку ключ Икс состоит из k 32-битные целые возрастающие k приведет к более длинному ключу.
  • Вероятность взлома системы равна и так увеличивается k затрудняет взлом системы.

Спектакль

Ниже приведены временные результаты для различных реализаций MMH.[4] в 1997 году разработан Галеви и Кравчик.

  • 150 МГц PowerPC 604 RISC-машина под управлением AIX
150 МГц PowerPC 604Сообщение в памятиСообщение в кэше
64-битный390 Мбит / сек417 Мбит / сек
32-битный вывод597 Мбит / сек820 Мбит / сек
  • Машина Pentium-Pro 150 МГц работает Windows NT
150 МГц PowerPC 604Сообщение в памятиСообщение в кэше
64-битный296 Мбит / сек356 Мбит / сек
32-битный вывод556 Мбит / сек813 Мбит / сек
  • Машина Pentium-Pro 200 МГц работает Linux
150 МГц PowerPC 604Сообщение в памятиСообщение в кэше
64-битный380 Мбит / сек500 Мбит / сек
32-битный вывод645 Мбит / сек1080 Мбит / сек


Смотрите также

Рекомендации

  1. ^ а б c d е ж Босгаард, Мартин; Скавениус, Уве; Педерсен, Томас; Кристенсен, Томас; Зеннер, Эрик (2005). "Badger - быстрый и надежно защищенный MAC" (PDF).
  2. ^ Удачи, Стефан; Раймен, Винсент (2005). «Оценка барсука» (PDF).
  3. ^ а б c «Код аутентификации сообщения барсука, спецификация алгоритма» (PDF). 2005.
  4. ^ а б c Халеви, Шай; Кравчик, Хьюго (1997). «MMH: Программная аутентификация сообщений со скоростью Гбит / с». MMH: программная проверка подлинности сообщений со скоростью Гбит / с. Конспект лекций по информатике. 1267. С. 172–189. Дои:10.1007 / BFb0052345. ISBN  978-3-540-63247-4.