MICKEY

MICKEY

В криптографии, MICKEY (англ. Mutual Irregular Clocking KEYstream generator) — алгоритм потокового шифрования. Существует два варианта этого алгоритма — с длиной ключа 80 бит (MICKEY) и 128 бит (MICKEY-128). Он был разработан Стивом Бэббиджем и Мэтью Доддом в 2005 году с целью использования в системах с ограниченными ресурсами. Этот алгоритм имеет простую аппаратную реализацию при высокой степени защищенности. В нём используется нерегулярное тактирование сдвиговых регистров, а также новые методы, обеспечивающие достаточно большой период и псевдослучайность ключевой последователь и учтойчивость к атакам.[1] Алгоритм MICKEY участвовал в конкурсном проекте eSTREAM, организованным сообществом eCRYPT. Текущая версия алгоритма — 2.0. Она вошла в портфолио eCRYPT, как потоковый шифр для аппаратной реализации.[2]

Взаимное управление тактированием регистров R и S

Содержание

Терминология

Входные параметры:

  • ключ K длиной 80 бит, его биты обозначаются k0, k1 …, k79;
  • инициализирующая переменная IV длиной от 0 до 80 бит, ее биты обозначаются iv0, …, ivдлина IV — 1.

Ключевая последовательность обозначается z0, z1, z2.

Ограничения использования

Максимальная длина ключевой последовательности, полученной с помощью одной пары (K, IV) составляет 240 бит. Однако допускается получение 240 таких последовательностей при использовании одного K при условии, что IV выбирается разными для каждой новой последовательности.

Устройство генератора ключевой полследовательности

Регистры

Генератор состоит из двух регистров R и S, каждый из которых имеет длину 100 бит.

Биты этих регистров обозначаются r0, r1, …, r99 и s0, s1, …, s99 соответственно.

Сдвиг регистра R

Набор входов обратной связи регистра R обозначается RTAPS.

RTAPS = { 0, 1, 3, 4, 5, 6, 9, 12, 13, 16, 19, 20, 21, 22, 25, 28, 37, 38, 41, 42, 45, 46, 50, 52, 54, 56,

58, 60, 61, 63, 64, 65, 66, 67, 71, 72, 79, 80, 81, 82, 87, 88, 89, 90, 91, 92, 94, 95, 96, 97 }


Операция сдвига CLOCK_R (R, INPUT_BIT_R, CONTROL_BIT_R) определяется следующей последовательностью действий:

  • пусть r0, r1, …, r99 — состояние регистра до сдвига, а r'0, r'1, …, r'99 — после сдвига;
  • FEEDBACK_BIT = r99 ⊕ INPUT_BIT_R;
  • для 1 ≤ i ≤ 99, r'i = ri-1; r'0 = 0;
  • для 0 ≤ i ≤ 99, если i ∈ RTAPS, r'i = r'i ⊕ FEEDBACK_BIT;
  • если CONTROL_BIT_R = 1, то
    • для 0 ≤ i ≤ 99, r'i = r'i ⊕ ri.

Сдвиг регистра S

Определим четыре последовательности COMP01 … COMP098, COMP11 … COMP198, FB00 … FB099, FB10 … FB99 в соответствии с таблицей:

i 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
COMP0i 0 0 0 1 1 0 0 0 1 0 1 1 1 1 0 1 0 0 1 0 1 0 1 0
COMP1i 1 0 1 1 0 0 1 0 1 1 1 1 0 0 1 0 1 0 0 0 1 1 0 1
FB0i 1 1 1 1 0 1 0 1 1 1 1 1 1 1 1 0 0 1 0 1 1 1 1 1 1
FB1i 1 1 1 0 1 1 1 0 0 0 0 1 1 1 0 1 0 0 1 1 0 0 0 1 0
i 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49
COMP0i 1 0 1 0 1 1 0 1 0 0 1 0 0 0 0 0 0 0 1 0 1 0 1 0 1
COMP1i 0 1 1 1 0 1 1 1 1 0 0 0 1 1 0 1 0 1 1 1 0 0 0 0 1
FB0i 1 1 1 1 0 0 1 1 0 0 0 0 0 0 1 1 1 0 0 1 0 0 1 0 1
FB1i 0 1 1 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0 1 1 0 1 1 0
i 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74
COMP0i 0 0 0 0 1 0 1 0 0 1 1 1 1 0 0 1 0 1 0 1 1 1 1 1 1
COMP1i 0 0 0 1 0 1 1 1 0 0 0 1 1 1 1 1 1 0 1 0 1 1 1 0 1
FB0i 0 1 0 0 1 0 1 1 1 1 0 1 0 1 0 1 0 0 0 0 0 0 0 0 0
FB1i 0 0 1 0 0 0 1 0 0 1 0 0 1 0 1 1 0 1 0 1 0 0 1 0 1
i 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99
COMP0i 1 1 1 0 1 0 1 1 1 1 1 1 0 1 0 1 0 0 0 0 0 0 1 1
COMP1i 1 1 1 0 0 0 1 0 0 0 0 1 1 1 0 0 0 1 0 0 1 1 0 0
FB0i 1 1 0 1 0 0 0 1 1 0 1 1 1 0 0 1 1 1 0 0 1 1 0 0 0
FB1i 0 0 0 1 1 1 1 0 1 1 1 1 1 0 0 0 0 0 0 1 0 0 0 0 1

Функция сдвига рагистра S CLOCK_S определяется как поледовательность действий:

  • пусть s0, s1, …, s99 — состояние регистра до сдвига, а s'0, s'1, …, s'99 — после сдвига. ŝ0, ŝ1, …, ŝ99 будем обозначать промежуточное состояние регистра;
  • FEEDBACK_BIT = s99 ⊕ INPUT_BIT_S;
  • для 1 ≤ i ≤ 98, ŝi = si-1 ⊕ ((si ⊕ COMP0i)•(si+1 ⊕ COMP1i)); ŝ0 = 0; ŝ99 = s98;
  • если CONTROL_BIT_S = 0, то
    • для 0 ≤ i ≤ 99, s'i = ŝi ⊕ (FB0i • FEEDBACK_BIT);
  • если CONTROL_BIT_S = 1, то
    • для 0 ≤ i ≤ 99, s'i = ŝi ⊕ (FB1i • FEEDBACK_BIT).

Управление тактированием всего генератора

Определим функцию CLOCK_KG (R, S, MIXING, INPUT_BIT) следующим образом:

  • СONTROL_BIT_R = s34 ⊕ r67;
  • CONTROL_BIT_S = s67 ⊕ r33;
  • если MIXING = TRUE, тогда INPUT_BIT_R = INPUT_BIT ⊕ s50, а если MIXING = FALSE , тогда INPUT_BIT_R = INPUT_BIT;
  • INPUT_BIT_S = INPUT_BIT;
  • CLOCK_R (R, INPUT_BIT_R , CONTROL_BIT_R);
  • CLOCK_S (S, INPUT_BIT_S , CONTROL_BIT_S).

Загрузка ключа и инициализация

Регистры инициализируются с использованием начальных параметров K и IV следующим образом:

  • в регистры R и S записываются нули;
  • загружается IV — для 0 ≤ i ≤ длина IV — 1,
    • CLOCK_KG (R, S, MIXING = TRUE, INPUT_BIT = ivi);
  • загружается K — для 0 ≤ i ≤ 79,
    • CLOCK_KG (R, S, MIXING = TRUE, INPUT_BIT = ki);
  • для 0 ≤ i ≤ 99,
    • CLOCK_KG (R, S, MIXING =TRUE, INPUT_BIT = 0).

Генерация ключевой последовательности

После загрузки и инициализации можно начинать генерировать ключевую последовательность z0, z1, , zL-1:

  • для 0 ≤ i ≤ L − 1,
    • zi = r0 ⊕ s0;
    • CLOCK_KG (R, S, MIXING = FALSE, INPUT_BIT = 0).

Особенности

Нерегулярное тактирование регистра R

  • Когда флаг CONTROL_BIT_R = 0, R представляет из себя обычный регистр сдвига с линейной обратной связью Галуа-типа, с примитивным характеристическим многочленом CR = x100 + Σxi, где i ∈ RTAPS и входным битом INPUT_BIT_R, примешиваемым к обратной связи операцией XOR. Если представить элементы поля GF(2100) многочленами Σrixi, где 0 ≤ i ≤ 99 по модулю CR(x), то сдвиг регистра — это умножение на x в этом поле.
  • Когда флаг CONTROL_BIT_R = 1, то помимо сдвига каждого бита происходит его сложение по модулю два с предыдущем значением бита, что соответствует умножению на x + 1 в том же поле. Характеристический многочлен CR(x) выбран таким образом, что он является делителем многочлена xJ + x + 1, где J = 250 — 157. Следовательно такт регистра R при CONTROL_BIT_R = 1 соответствует его сдвигу J раз.

Причины использования нерегулярного тактирования

Потоковые шифры, использующие нерегулярное тактирование, часто подвержены статистическим атакам. В них используется предположение о том, как много раз регистр был сдвинут. За возможность такой атаки отвечают определенные характеристики шифра:

  1. сдвиг регистра сначала m раз, а потом n раз дает тот же результат, что и сдвиг регистра сначала n раз, а потом m раз, то есть разные варианты тактирования коммутируют. Это дает преимущество криптоаналитику, так как нет необходимости определять порядок таких операций;
  2. также, если вариантов тактирования регистра много, то, например, пять сдвигов регистра дает одиночная и четырехкратная операция тактирования или двукратная и трехкратная, что еще больше уменьшает количество комбинаций для перебора, упрощая статистическую атаку;
  3. n-кратный сдвиг может произойти после любого сдвига.

При разработке в основу шифра MICKEY легли следующие идеи:

  • использовать нерегулярный сдвиг для защиты от многих типов атак;
  • обеспечить большой период и локальную случайность;
  • как можно больше уменьшить возможность статистических атак, которым подвержены шифры этого типа.

В отношении указанных свойств 1-3, ухудшающих криптостойкость, MICKEY ведет себя следующим образом:

  1. верно для регистра R, так как clockJ • clock1 = clock1 • clockJ, но не верно для регистра S, операции тактирования которого не коммутируют.
  2. не верно для обоих регистров. Для R для любых t ≤ 240 и u существует не более одной пары n1 и nJ таких, что 0 ≤ n1,nJ ≤ t, n1 + nJ = t и n1 + nJJ = u, где n1 и nJ сооветствуют однократному и J-кратному сдвигу.
  3. не верно для обоих регистров. Для R для любого заданного u существует не более одной тройки t, n1 и nJ таких, что t ≤ 240, 0 ≤ n1,nJ ≤ t, n1 + nJ = t и n1 + nJJ = u.

Регистр R обеспечивает неповторяемость состояния генератора и хорошие локальные статистические свойства. Влияние регистра R на S также предотвращаяет зацикливание S с маленьким периодом. Если J ≤ 260, то состояние регистра R не повторится при генерации ключевой последовательности длиной вплоть до 240 бит. А если J ≥ 240, то свойство (2) не верно.

Выбор битов управления тактированием

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

Количество энтропии

Так как нерегулярное тактирование управляется битами из самого генератора, это может уменьшить количество энтропии в генераторе. Использование операции XOR и битов из двух регистров для получения бита управления обеспечивает отсутвие корреляции между этим битом управления и конроллируемым регистром. Благодаря этому энтропия не уменьшается при работе генератора.

Примечания

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем решить контрольную работу

Полезное


Смотреть что такое "MICKEY" в других словарях:

  • Mickey 3d — Pays d’origine France Genre(s) Rock français Chanson française Années actives 1996 2006, 2009 Label(s) Premier Disque (1999) Virgin France (EMI) (depuis 2000) …   Wikipédia en Français

  • Mickey's — Manufacturer Miller Brewing Company Alcohol by volume 5.8% Style Malt Liquor …   Wikipedia

  • Mickey G. — Mickey G. Born November 9, 1959 (1959 11 09) (age 51)[1] Los Angeles, California, United States[1] Alias(es) N …   Wikipedia

  • Mickey 3D — Origin Montbrison, Loire Genres French rock, Chanson française Years active Since 1996 Labels Premier Disque (1999) …   Wikipedia

  • Mickey 3D — Жанр шансон, авторская песня Годы 1996  наст. вр. Страна …   Википедия

  • Mickey He — Chinese name 何晟銘 (Traditional) Chinese name 何晟铭 (Simplified) Pinyin Hé Shèngmíng (Mandarin) …   Wikipedia

  • mickey — [mik′ē] n. [after Mickey (nickname for MICHAEL, taken as typical Irish name), slang for Irishman] [Brit. Slang] spirit; pride; brag: chiefly in the fol. phrases take the mickey to make fun; mock take the mickey out of to deflate (a person) …   English World dictionary

  • mickey — short for MICKEY FINN (Cf. Mickey Finn), 1938 …   Etymology dictionary

  • mickey — ► NOUN (take the mickey) informal, chiefly Brit. ▪ tease or ridicule someone. DERIVATIVES mickey taking noun. ORIGIN of unknown origin …   English terms dictionary

  • Mickey 3D — Allgemeine Informationen Genre(s) Rock Gründung 1996 Website http://www.mickey3d.com …   Deutsch Wikipedia

  • Mickey He — Shengming (nombre verdadero He Min, n. 9 de julio de 1976), es un actor y cantante chino. Nacido en Xiantao, Hubei, se trasladó a Guangzhou, en la década de los años 1990 para seguir una carrera musical. Junto con Peng Liang y Yang Guang,… …   Wikipedia Español


Поделиться ссылкой на выделенное

Прямая ссылка:
Нажмите правой клавишей мыши и выберите «Копировать ссылку»