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