Grain

Grain

Grain - симметричный алгоритм синхронного потокового шифрования, ориентированный, в первую очередь на аппаратную реализацию. Шифр представлен на конкурсе eSTREAM в 2004 году Мартином Хеллом, Томасом Юханссоном и Вилли Мейером. Алгоритм стал одним из финалистов конкурса во втором профиле (аппаратно ориентированные шифры).

Содержание

Описание

Структура шифра Grain

Шифр состоит из трёх основных блоков: двух 80-битных регистров сдвига с обратной связью и выходной функции. Один из регистров обладает линейной функцией обратной связи (LFSR), второй регистр имеет нелинейную функцию обратной связи (NFSR). Внутреннее состояние шифра полностью определяется регистрами сдвига.

Регистрах сдвига с линейной обратной связью

Функция обратной связи данного регистра задается задается примитивным полиномом ~f(x) = 1 + x^{18} + x^{29} + x^{42} + x^{57} + x^{67} + x^{80}

Если представить состояние регистра в виде ~s_{i}, s_{i+1}, .. , s_{i+79}, то следующий младший (правый) бит будет задаваться соотношением

 ~s_{i+80} = s_{i+62} + s_{i+51} + s_{i+38} + s_{i+23} + s_{i+13} + s_{i}

Регистрах сдвига с нелинейной обратной связью

Функция обратной связи регистра с нелинейной обратной связью задается соотношением

  ~g(x) = 1 + x^{18} + x^{20} + x^{28} + x^{35} + x^{43} + x^{47} + x^{52} + x^{59} + x^{66} + x^{71} + x^{80} + x^{17}x^{20} + x^{43}x^{47} + x^{65}x^{71} + x^{20}x^{28}x^{35} + x^{47}x^{52}x^{59} + x^{17}x^{35}x^{52}x^{71} + x^{20}x^{28}x^{43}x^{47} + x^{17}x^{20}x^{59}x^{65} + x^{17}x^{20}x^{28}x^{35}x^{43} + x^{47}x^{52}x^{59}x^{65}x^{71} + x^{28}x^{35}x^{43}x^{47}x^{52}x^{59}

Для битов b_{i} регистра NLSR получается выражение

  ~b_{i+80} = s_{i} + b_{i+62} + b_{i+60} + b_{i+52} + b_{i+45} + b_{i+37} + b_{i+33} + b_{i+28} + b_{i+21} + b_{i+14} + b_{i+9} + b_{i} + b_{i+63}b_{i+60} + b_{i+37}b_{i+33} + b_{i+15}b_{i+9} + b_{i+60}b_{i+52}b_{i+45} + b_{i+33}b_{i+28}b_{i+21} + b_{i+63}b_{i+45}b_{i+28}b_{i+9} + b_{i+60}b_{i+52}b_{i+37}b_{i+33} + b_{i+63}b_{i+60}b_{i+21}b_{i+15} + b_{i+63}b_{i+60}b_{i+52}b_{i+45}b_{i+37} + b_{i+33}b_{i+28}b_{i+21}b_{i+15}b_{i+9} + b_{i+52}b_{i+45}b_{i+37}b_{i+33}b_{i+28}b_{i+21}

Выходная функция

В качестве аргументов функция ~h(x) принимает значения битов из LFSR и NFSR:

 ~h(x) = x_{1}+x_{4}+x_{0}x_{3}+x_{2}x_{3}+x_{3}x_{4}+x_{0}x_{1}x_{2}+x_{0}x_{2}x_{3}+x_{0}x_{2}x_{4}+x_{1}x_{2}x_{4}+x_{2}x_{3}x_{4}

где ~x_{0}, x_{1}, x_{2}, x_{3}, x_{4} равны соответственно ~s_{i+3}, s_{i+25}, s_{i+46}, s_{i+64}, b_{i+63}

В результате на выход поступает

 ~z_{i} = \sum_{k \in A}b_{i+k} + h(s_{i+3}, s_{i+25}, s_{i+46}, s_{i+64}, b_{i+63}), A = \{1, 2, 4, 10, 31, 43, 56 \} 

Инициализация состояния

Инициализация состояния


Шифр принимает на вход 80-битный ключ (secret key) и 64-битный вектор инициализации (initialization vector).

Перед тем как начать генерировать ключевой поток (keystream), шифр должен инициализировать своё состояние.
Пусть ~K = K_{0}, .., K_{79} и ~IV = IV_{0}, .., IV_{63} . Можно выделить следующие этапы инициализации состояния:

1. Загрузка битов ключа ~K в NFSR, ~b_{i} = K_{i}, 0 \le i \le 79
2. Загрузка ~IV в LFSR, ~s_{i} = IV_{i}, 0 \le i \le 63
3. Заполнение оставшихся битов LFSR единицами, s_{i} = 1, 64 \le i \le 79

После этого шифр 160 тактов работает без выдачи ключевого потока, но результат работы шифра подается на вход NFSR и LFSR.

Производительность

Ускорение шифрования

В случае когда аппаратная платформа не ограничена в ресурсах, то шифр позволяет достаточно просто увеличить скорость шифрования. Т.к. оба регистра каждый такт сдвигаются на 1 бит, то если просто реализовать несколько раз (~N) функции обратной связи ~f(x) и ~g(x) и выходную функцию ~h(x), то скорость шифрования можно увеличить в ~N раз, при этом регистры сдвига за каждый такт также должны сдвигаться на ~N бит. Младшие 15 бит регистров сдвига не используются в функциях обратной связи и поэтому ~N может принимать значения от 1 до 16.
Т.к. при инициализации состояния шифр должен отработать 160 тактов, то это накладывает некоторые ограничения на значение ~N, ~i = 160/N должно быть целым числом.

Безопасность

Еще в версии 0.0 авторы заявляли, что шифр разработан таким образом, что невозможна атака быстрее, чем полный перебор ключей. Таким образом, лучшая атака должна иметь сложность порядка 280.

В спецификации версии 0.0 Grain [1] авторы утверждали: "Grain предоставляет большую надежность, чем некоторые другие известные аппаратно ориентированные шифры. Хорошо известными примерами таких шифров является E0, используемый в Bluetooth, и A5/1, используемый в GSM. Хотя эти шифры просты в реализации, доказано, что они очень ненадежны. По сравнению с E0 и A5/1, Grain предоставляет большую надежность, сохраняя простоту реализации".

В версии 0.0 был обнаружен ряд серьёзных уязвимостей, поэтому в обновленной версии 1.0 [2], у шифра немного изменилась выходная функция и функция обратной связи у регистра с нелинейтой обратной функцией (NFSR). После этого, с октября 2006 года не известно ни об одной атаке против Grain версии 1.0 быстрее, чем полный перебор. Однако, в сентябре 2006 года была опубликована попытка атаки на ключ[3]. В статье утверждается: "мы нашли связанные ключи и начальные значения в Grain, для любой пары(K,IV) с вероятностью 1/22 существует связанная пара (K’,IV’) которая генерирует ключевой поток сдвинутый на 1 бит. Хотя это и не является успешной атакой на ключ, данный факт показывает возможною слабость шифра при инициализации состояния."

См. также

Примечания

  1. Martin Hell, Thomas Johansson, Willi Meier (2005-04-29). «Grain - A Stream Cipher for Constrained Environments» (PDF) (eSTREAM).
  2. Martin Hell, Thomas Johansson, Willi Meier (2006). «Grain - A Stream Cipher for Constrained Environments» (PDF) (eSTREAM).
  3. Ozgul Kucuk (2006-07-16). «Slide Resynchronization Attack on the Initialization of Grain 1.0» (PS) (eSTREAM).

Ссылки


Wikimedia Foundation. 2010.

Игры ⚽ Поможем написать курсовую

Полезное


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

  • grain — [ grɛ̃ ] n. m. • v. 1160; lat. granum → graine I ♦ 1 ♦ Fruit comestible des graminées. Le grain des céréales est un caryopse. Grain de blé, de maïs, de mil, de riz, d orge. Ôter les grains d un épi. ⇒ égrener. Menuis. GRAIN D ORGE. Assemblage à… …   Encyclopédie Universelle

  • Grain — (gr[=a]n), n. [F. grain, L. granum, grain, seed, small kernel, small particle. See {Corn}, and cf. {Garner}, n., {Garnet}, {Gram} the chick pea, {Granule}, {Kernel.}] [1913 Webster] 1. A single small hard seed; a kernel, especially of those… …   The Collaborative International Dictionary of English

  • grain — Grain, m. monosyllab. Est ce qui vient en l espi, contenant farine. Granum fromenti, hordei, siliginis, auenae, et semblables. Ainsi en bail à moison de grain on dit, Moyennant dix muyds de grain, les deux parts bled, le tiers avoine. Et selon ce …   Thresor de la langue françoyse

  • grain — [greın] n ▬▬▬▬▬▬▬ 1¦(food)¦ 2¦(lines in wood etc)¦ 3¦(small piece)¦ 4 a grain of something 5 against the grain 6¦(measure)¦ ▬▬▬▬▬▬▬ [Date: 1200 1300; : Old French; Origin: Latin granum seed ] 1.) …   Dictionary of contemporary English

  • grain — [ greın ] noun ** 1. ) uncount the seeds from crops such as wheat, rice, or CORN that are used for food: bags of mixed grain a ) uncount food crops such as wheat, rice, or CORN: golden fields of grain b ) count an individual seed from one of… …   Usage of the words and phrases in modern English

  • grain — [grān] n. [ME greyne < OFr grein, a seed, grain (< L granum, a seed, kernel) & grainne, seed or grain collectively (< LL grana, fem., orig. pl. of L granum) < IE base * ĝer , to become ripe > CORN1, KERNEL] 1. a small, hard seed or …   English World dictionary

  • GRAIN — is an international non governmental organization based in Barcelona, Spain, which works toward sustainable agriculture. It was formed upon the realization that the genetic diversity of the world s food crops has been drastically eliminated. Very …   Wikipedia

  • Grain — 〈[ grɛın] m. 6; bei Zahlenangaben Pl.: 〉 1. älteres kleines Juwelengewicht, 1/4 Karat 2. Gewichts u. Maßeinheit in Großbrit. u. den USA, 0,0648 g [frz. u. engl., „Korn“ <lat. granum „Korn“] * * * I Grain   [greɪn; englisch »Korn«] der, s/ ( …   Universal-Lexikon

  • grain — ► NOUN 1) wheat or other cultivated cereal used as food. 2) a single seed or fruit of a cereal. 3) a small, hard particle of a substance such as sand. 4) the smallest unit of weight in the troy and avoirdupois systems, equal to 1 / 5760 of a… …   English terms dictionary

  • grain|y — «GRAY nee», adjective, grain|i|er, grain|i|est. 1. like the grain of wood or marble. 2. grainlike; granular: »a grainy surface …   Useful english dictionary


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

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