Лекция 7 2011 Поточные шифры.ppt
- Количество слайдов: 39
Поточные шифры
Симметричные алгоритмы Поточные Блочные
x 1 x 2 x 3. . . y 1 y 2 y 3. . .
Шифры гаммирования
Поточный шифр
Повторное использование гаммы Атака «вставка символа» • O 1, O 2, O 3. . . - открытый текст • К 1, К 2, К 3. . . - гамма • С 1, С 2, С 3. . . - шифротекст К 2 =C'2 +O'; O 2=C 2 + К 2; К 3=C'3 + O 2; O 3=C 3+К 3
Перекрытия гаммы :
Повторное наложение гаммы шифра Уже классическим примером стала уязвимость в Windows 3. x и первых версиях Windows 95, связанная с шифрованием. В этом случае программисты фирмы Microsoft, хорошо известные своими знаниями в области безопасности, применяли алгоритм RC 4 (представляющем собой ни что иное, как шифрование гаммированием), не меняя гаммы, несколько раз к разным данным - сетевым ресурсам, хранящимся в файлах типа. pwl. Оказалось, что один из наборов данных файла . pwl представлял из себя более чем специфичный текст - 20 -символьное имя пользователя (в верхнем регистре) и набор указателей на ресурсы (см. рис. 2). Таким образом, угадав им пользователя (которое в большинстве случаев к тому же совпадает с именем файла) можно вычислить по крайней мере 20 байт гаммы. Т. к. гамма не меняется при шифровании других ресурсов (в этом состоит основная ошибка применения RC 4 в этом случае), могут быть вычислены первые 20 байт всех ресурсов, в которые входит длина каждого из них. Вычислив длину, можно найти значения указателей и тем самым прибавить еще несколько десятков байт к угаданной гамме. Этот алгоритм реализован в известной программе glide.
Поточные шифры Синхронные Самосинхронизирующиеся
Синхронные шифры. Генератор гаммы Шифрующий блок
Синхронные поточные шифры Определение: Синхронные поточные шифры (СПШ) — шифры, в которых поток ключей генерируется независимо от открытого текста и шифротекста. При шифровании генератор потока ключей выдаёт биты потока ключей, которые идентичны битам потока ключей при дешифровании. Потеря знака шифротекста приведёт к нарушению синхронизации между этими двумя генераторами и невозможности расшифрования оставшейся части сообщения. Очевидно, что в этой ситуации отправитель и получатель должны повторно синхронизоваться для продолжения работы. Обычно синхронизация производится вставкой в передаваемое сообщение специальных маркеров. В результате этого пропущенный при передаче знак приводит к неверному расшифрованию лишь до тех пор, пока не будет принят один из маркеров. Заметим, что выполняться синхронизация должна так, чтобы ни одна часть потока ключей не была повторена. Поэтому переводить генератор в более раннее состояние не имеет смысла. Плюсы СПШ: отсутствие эффекта распространения ошибок (только искажённый бит будет расшифрован неверно); предохраняют от любых вставок и удалений шифротекста, так как они приведут к потере синхронизации и будут обнаружены. Минусы СПШ: уязвимы к изменению отдельных бит шифрованного текста. Если злоумышленнику известен открытый текст, он может изменить эти биты так, чтобы они расшифровывались, как ему надо.
Самосинхронизирующиеся шифры : Внутреннее состояние генератора ключ Функция выхода Шифрующий блок
Самосинхронизирующиеся поточные шифры Основная идея построения была запатентована в 1946 г. в США. Определение: Самосинхронизирующиеся поточные шифры (асинхронные поточные шифры (АПШ)) – шифры, в которых поток ключей создаётся функцией ключа и фиксированного числа знаков шифротекста. Итак, внутреннее состояние генератора потока ключей является функцией предыдущих N битов шифротекста. Поэтому расшифрующий генератор потока ключей, приняв N битов, автоматически синхронизируется с шифрующим генератором. Реализация этого режима происходит следующим образом: каждое сообщение начинается случайным заголовком длиной N битов; заголовок шифруется, передаётся и расшифровывается; расшифровка является неправильной, зато после этих N бит оба генератора будут синхронизированы. Плюсы АПШ: Размешивание статистики открытого текста. Так каждый знак открытого текста влияет на следующий шифротекст, статистические свойства открытого текста распространяются на весь шифротекст. Следовательно, АПШ может быть более устойчивым к атакам на основе избыточности открытого текста, чем СПШ. Минусы АПШ: распространение ошибки (каждому неправильному биту шифротекста соответствуют N ошибок в открытом тексте);
Режим CFB s 1 Ek y 1 x 1 st Ek xt yt К какому типу поточных шифров относится блочный шифр в режиме CFB?
Режим OFB s 1 Ek(s 1) y 1 x 1 st Ek(st) xt yt К какому типу поточных шифров относится блочный шифр в режиме OFB?
Режим «счетчик» (CTR). Nonce 1 Ek y 1 x 1 Nonce 2 Ek x 2 yt К какому типу поточных шифров относится блочный шифр в режиме счетчика?
RC 4 — это поточный шифр с переменным размером ключа, разработанный в 1987 г. Ривестом (R. Rivest) для RSA Data Security, Inc. Алгоритм работает в режиме OFB: поток ключей не зависит от открытого текста. RC 4 — фактически класс алгоритмов, определяемых размером блока (в дальнейшем S-блока). Параметр n является размером слова для алгоритма и определяет длину S-блока. Обычно, n = 8. Внутреннее состояние RC 4 представляется в виде массива размером 2 n и двух счётчиков. Массив известен как S-блок, и далее будет обозначаться как S. Он всегда содержит перестановку 2 n возможных значений слова. Два счётчика обозначены через i и j. Инициализация RC 4 состоит из двух частей : 1 Инициализация S-блока 2 Генерация псевдо-случайного слова K.
Инициализация S-блока Алгоритм. использует ключ, который подается на вход пользователем , сохранённый в Key, и имеющий длину L байт. 1) Инициализация начинается с заполнения массива S S[i] : = i 2)Далее этот массив перемешивается путем перестановок, определяемых ключом. for i from 0 to 255 S[i] : = i endfor j : = 0 for i from 0 to 255 j : = (j + S[i] + Key[i mod L]) mod 256 // n = 8 ; 28 = 256 поменять местами S[i] и S[j] endfor
Генерация псевдо-случайного слова K: i : = 0 j : = 0 while Цикл генерации: i : = (i + 1) mod 256 j : = (j + S[i]) mod 256 поменять местами S[i] и S[j] t : = (S[i] + S[j]) mod 256 K : = S[t] сгенерирован псевдослучайное слово K (для n = 8 будет сгенерирован один байт) endwhile Зашифрование ci=mi⊕ki. Расшифрование mi=ci⊕ki=(mi⊕ki)⊕ki
Зачем нужны поточные шифры? Возможно несколько вариантов определения понятия "поточный шифр", поскольку поточная архитектура, вообще говоря, не имеет четких границ. Поточный шифр определяется как независимый от открытого текста шифр побитового гаммирования. Такой шифр гаммирования и блочный шифр в режиме простой замены являются своеобразными полюсами в мире архитектур. На практике же преобладают смешанные варианты дизайна алгоритмов. Например, блочный AES в режиме счетчика или обратной связи по шифртексту представляет собой синхронный или самосинхронизирующийся поточный шифры соответственно. Надежность такого шифра сейчас не вызывает сомнений. Что же нужно еще для приложений? Достаточно универсальный AES в некоторых специфических приложениях либо недостаточно производителен, либо требует слишком много ресурсов. При том же уровне надежности хочется либо более быстрой работы, как в случае программного шифрования и высокопроизводительных аппаратных шифраторов, либо меньшей ресурсоемкости, как в случае со встроенными системами (embedded systems). Поточная архитектура позволяет достичь и того и другого - вопрос в надежности поточных шифров и дополнительных свойствах, интересующих пользователей.
Основные отличия поточных шифров от блочных Большинство существующих шифров с секретным ключом однозначно могут быть отнесены либо к поточным, либо к блочным шифрам. Но теоретическая граница между ними является довольно размытой. Например, используются алгоритмы блочного шифрования в режиме поточного шифрования (пример: для алгоритма DES режимы CFB и OFB). Рассмотрим основные различия между поточными и блочными шифрами не только в аспектах их безопасности и удобства, но и с точки зрения их изучения в мире: Важнейшим достоинством поточных шифров перед блочными является высокая скорость шифрования, соизмеримая со скоростью поступления входной информации; поэтому, обеспечивается шифрование практически в реальном масштабе времени вне зависимости от объема и разрядности потока преобразуемых данных. В синхронных поточных шифрах (в отличие от блочных) отсутствует эффект размножения ошибок, то есть число искаженных элементов в расшифрованной последовательности равно числу искаженных элементов зашифрованной последовательности, пришедшей из канала связи. Структура поточного ключа может иметь уязвимые места, которые дают возможность криптоаналитику получить дополнительную информацию о ключе (например, при малом периоде ключа криптоаналитик может использовать найденные части поточного ключа для дешифрования последующего закрытого текста). ПШ в отличие от БШ часто могут быть атакованы при помощи линейной алгебры. Также для взлома поточных шифров весьма успешно применяется линейный и дифференциальный анализ. В большинстве работ по анализу и взлому блочных шифров рассматриваются алгоритмы шифрования, основанные на стандарте DES; для поточных же шифров нет выделенного направления изучения; методы взлома ПШ весьма разнообразны. Исследованием и разработкой поточных шифров в основном занимаются европейские криптографические центры, блочных - американские. Исследование поточных шифров происходит более динамично, чем блочных; в последнее время не было сделано никаких заметных открытий в сфере DES-алгоритмов, в то время как в области поточных шифров случилось множество успехов и неудач (некоторые схемы, казавшиеся стойкими, при дальнейшем исследовании не оправдали надежд изобретателей).
Теоретические критерии Райнера Рюппеля для проектирования поточных систем: длинные периоды выходных последовательностей; большая линейная сложность; диффузия - рассеивание избыточности в подструктурах, «размазывание» статистики по всему тексту; каждый бит потока ключей должен быть сложным преобразованием большинства битов ключа; критерий нелинейности для логических функций. До сих пор не доказано, что эти критерии необходимы или достаточны для безопасности поточной системы шифрования. Если криптоаналитик обладает неограниченными временем и вычислительной мощностью, то единственным реализуемым потоковым шифром, защищённым от такого противника является одноразовый блокнот.
Требования рынка к конечному продукту. 1) Стойкость (безопасность и надежность). Именно поэтому производители сейчас выбирают Triple. DES, AES, Blowfish и другие блочные шифры (в частности, ГОСТ 28147 -89), у которых относительно длительный и интенсивный криптоанализ не обнаружил слабостей. Здесь следует отметить, что криптоанализ поточных шифров отнюдь не сводится исключительно к анализу свойств генератора гаммы. Помимо собственно генератора анализу подлежат процедуры инициализации. При анализе программных и аппаратных реализаций поточных шифров в настоящее время все большее внимание уделяется побочным каналам: атаки по времени, простые и дифференциальные атаки по электропотреблению и электромагнитному излучению, атаки на основе аппаратных ошибок и т. д. 2) Производительность, складывающаяся из двух основных показателей. -непосредственно скорость шифрования, - -быстрота процедур установки ключа и синхропосылки. При этом алгоритм с высокой скоростью шифрования может оказаться недостаточно производительным в реальных приложениях, если процедура установки синхропосылки, выполняемая часто для каждого пакета данных (как, например, в IEEE 802. 11 или IPSEC), будет медленной. Самые производительные программно-ориентированные шифры по скорости шифрования потока байт на процессоре Intel Pentium 4 с тактовой частотой 3 ГГц приведены на рис. 1. Для программных шифров на производительность влияет размер исполняемого кода и данных. Если этот размер больше, чем кэш целевого процессора, то при исполнении кода возникнут неэффективные частые обращения процессора к памяти. Эти параметры в совокупности с возможностью эффективной реализации основных операций шифра определяют также применимость шифра во встроенных системах (смарт-карты, мобильные устройства, микросхемы FPGA и т. д. ).
Сдвиговые регистры с обратной связью
Пример 1 1 1 0 0 0 1 1 1 0 0 1 1 1 0 1 1
Пример 011 цикл 001 100 110 000 петля 1 1 1 0 0 0 1 1 0 0 0 1 1 1 0 0 0 1 101 111
Сдвиговые регистры с линейной обратной связью Характеристический многочлен. Примитивный многочлен – преобразование максимального периода (32, 7, 5, 3, 2, 1, 0) x 32 + x 7 +x 5 + x 3 + x 2 + x + 1 0
Проектирование потоковых шифров 1. Фильтрующий генератор 1, 0, 0, 1, 0…
2. Комбинирующий генератор 1 2 m
Пример. Генератор Геффа (Комбинирующий генератор) 1 2 3 F = (x 1 x 2) (( x 1) x 3)
Пример 2. Пороговый генератор(Комбинирующий генератор) 0 1 1 1 2 1 3 0 4 1 5
Генераторы с неравномерным движением гаммы Схемы с внешним управлением Схемы с внутренним управлением
Схемы с внешним управлением Генератор “Стоп-вперед” ЛРС 1 - управляющий. 0, 1 ЛРС 2 - генерирующий
Схемы с внешним управлением Генератор “ дельта-тау шагов” ЛРС 1 - управляющий. ЛРС 2 - генерирующий
Каскад Гольмана
Прореживаемый генератор 0 1 1 0 1 0 0 1 1 0 0 0 1 0 1 0 0 0 1 1 0 0 1 0 1
Схемы с внутренним управлением Самопрореживаемый генератор 0 1 1 1 0 0 0 1 1 1 1 0 0 0 1 0 0
A 5 10 11 12 ЛРС 1(19) (19, 5, 2, 1, 0) ЛРС 2(22) (22, 1, 0) ЛРС 3(23) (23, 15, 2, 1, 0) Знак гаммы .
Cтандарт ANSI X 9. 17 используется во многих приложениях финансовой безопасности и PGP.
Лекция 7 2011 Поточные шифры.ppt