Grain (cipher)

редактировать

Grain - это потоковый шифр, отправленный в eSTREAM в 2004 году, и. Он был выбран для окончательного портфолио eSTREAM для профиля 2 проектом eSTREAM. Grain разработан в первую очередь для аппаратных сред с ограниченным доступом. Он принимает 80- бит ключ и 64-битный IV. Спецификации не рекомендуют максимальную длину вывода на пару (ключ, iv). Ряд потенциальных слабых мест в шифре был идентифицирован и исправлен в Grain 128a, который в настоящее время рекомендуется использовать для аппаратных сред, обеспечивающих как 128-битную безопасность, так и аутентификацию.

Содержание
  • 1 Описание
  • 2 Производительность
  • 3 Безопасность
  • 4 Ссылки
  • 5 Внешние ссылки
Описание

160-битное внутреннее состояние Grain состоит из 80 -битный регистр сдвига с линейной обратной связью (LFSR) и 80-битный регистр сдвига с нелинейной обратной связью (NLFSR). Grain обновляет один бит LFSR и один бит состояния NLFSR для каждого бита зашифрованного текста, выпущенного функцией нелинейного фильтра. 80-битный NLFSR обновляется с помощью нелинейной логической функции 5 к 1 и 1-битного линейного входа, выбранного из LFSR. Нелинейная функция 5-к-1 принимает на вход 5 битов состояния NLFSR. 80-битный LFSR обновляется линейной функцией 6: 1. Во время операций с ключом выход шифра дополнительно возвращается как линейные входы в функции обновления NLFSR и LFSR.

В исходной версии Grain Version 0.0 Grain, один бит 80-битного NLFSR и четыре бита 80-битного LFSR подаются в нелинейную логическую функцию 5-к-1 (которая выбирается для быть сбалансированным, устойчивым к корреляции первого порядка и иметь алгебраическую степень 3), а выход линейно комбинируется с 1 битом 80-битного NLFSR и выпускается как выход.

В обновленной версии Grain версии 1.0 Grain один бит 80-битного NLFSR и четыре бита 80-битного LFSR передаются (слегка измененной) нелинейной логической функции 5 к 1 и выходной сигнал линейно комбинируется с 7 битами 80-битного NLFSR и выпускается как выход.

Для инициализации шифра 80-битный ключ загружается непосредственно в 80-битный NLFSR, а 64-битный IV загружается в младшие 64-битные LFSR и оставшиеся 16 старших битов LFSR заполнены единицами. Шифр запечатан на 160 раундов, при этом 160 битов сгенерированного ключевого потока передаются линейно обратно в функции обновления LFSR и NLFSR. Во время процесса инициализации шифр не выпускает выходной поток ключей.

Авторы Grain обсуждают полные скорости распространения процесса инициализации Grain в спецификациях Grain Version 1.0: «Для инициализации с двумя разными IV, различающимися только одним битом, вероятность того, что бит регистра сдвига одинаков для обоих инициализации должны быть близки к 0,5. Моделирование показывает, что это достигается после 160 тактов ".

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

Шифр ​​предназначен для параллельного выполнения до 16 циклов, что позволяет ускорить реализацию за счет более широкого использования оборудования.

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

Размер ключа составляет 80 бит, а размер IV определен как 64 бита. Авторы утверждают, что шифр спроектирован таким образом, что невозможна атака быстрее, чем исчерпывающий поиск ключа, следовательно, лучшая атака должна требовать вычислительной сложности не значительно ниже 2.

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

Авторы цитируют атаку против E0, требующую сложности в 2 и 2 кадра (длина кадра составляет 2745 бит). Первоначальный шифр Grain Version 0.0 был взломан атакой восстановления ключа, которая потребовала выполнения двух вычислений и двух битов потока ключей для определения 80-битного ключа.

В пересмотренных спецификациях Grain Version 1.0 шифр имеет слегка измененную функцию вывода, а функция обратной связи NLFSR получила незначительные изменения. В спецификациях утверждается: «Функция фильтрации довольно мала, всего 5 переменных и нелинейность 12. Однако это частично компенсируется тем фактом, что один из входов берется из NLFSR. Входной бит из NLFSR будет зависеть нелинейно [sic ] на других битах в состоянии, как из LFSR, так и из NLFSR. Функция малого фильтра также компенсируется линейным добавлением 7 битов [sic ] из NLFSR в подходящих позициях. для формирования выходной функции ».

По состоянию на октябрь 2006 г. не известно ни одной атаки восстановления ключа лучше, чем атака грубой силы против Grain Version 1.0.

Однако атака с использованием связанных ключей была опубликована в сентябре 2006 года Озгулом Кучуком в статье «Атака с повторной синхронизацией слайдов при инициализации Grain 1.0». В документе утверждается: «мы находим связанные ключи и начальные значения потокового шифра Grain 1.0. Для любой пары (K, IV) существует связанная пара (K ', IV') с вероятностью 1/22, которая генерирует сдвинутый на 1 бит ключевой поток.. Хотя это пока не приводит к эффективной атаке восстановления ключа, это указывает на слабость в инициализации, которую можно было бы преодолеть [sic ] с небольшими усилиями ".

Ссылки
  1. ^, Вилли Мейер (2005-04-29). "Grain - A Stream Cipher for Constrained Environment" (PDF ). eSTREAM. Цитировать журнал требует | journal =() CS1 maint: несколько имен: список авторов (ссылка )
  2. ^, http: //lasecwww.epfl. ch / ~ vaudenay / (2004). "Криптоанализ двухуровневого E0 генератора потока ключей Bluetooth" (PDF ). Достижения в криптологии - Asiacrypt 2004, LNCS vol. 3329, pp.483-499, Springer, 2004. Cite journal требует | journal =()
  3. ^, Александр Максимов (02.01.2006). «Криптоанализ of Grain " (PDF ). eSTREAM. Для цитирования журнала требуется | journal =() CS1 maint: множественные имена: список авторов (ссылка )
  4. ^, Вилли Мейер (2006). «Grain - A Stream Cipher for Constrained Environments» (PDF ). ESTREAM. Cite journal требуется | journal =() CS1 maint: несколько имен: список авторов (ссылка )
  5. ^(2006-07-16). "Атака повторной синхронизации слайдов при инициализации Grain 1.0 " (PS ). eSTREAM. Cite journal требует | journal =()
Внешние ссылки
Последняя правка сделана 2021-05-22 04:18:35
Содержание доступно по лицензии CC BY-SA 3.0 (если не указано иное).
Обратная связь: support@alphapedia.ru
Соглашение
О проекте