Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Razbor_kriptov_-_chast_2

.pdf
Скачиваний:
147
Добавлен:
04.02.2017
Размер:
2.44 Mб
Скачать

Обозначим через φq бq, πq подстановку при фиксированном значении q Q q Q’ .Тогда подстановкаEk определена следующим образом алгоритм зашифрования :

Ek x πq_ r 1 φq_r … φq_1 бq_0 x , где х– блок открытого текста.

Другими словами: на вход поступил блок не символ! х.. Сначала применяется функциябq_0 x – входноеотображение на ключе q0. Затем r раз применяется отображение φq_r, …,φq_1 –раундовая функция на ключах q1…qr. И в конце – выходная функция πq_ r 1 наключе qr 1.

Алгоритм расшифрования состоитв реализации подстановкиEk 1:

Ek 1 y б 1q_0 φ 1q_1 … φ 1q_r π 1q_ r 1 y ,где у– блокзашифрованного текста.

!!! РАЗОБРАТЬСЯ, ГДЕ МИНУС 1 СТЕПЕНЬ А ГДЕ НЕТ !!! НИЧЕГО НЕ ПОНЯТНО В СТЕПЕНЯХ !!!

Другими словами: на вход поступил блок шифротекста у. Применяем сначалаπ 1q_ r 1 на ключе qr 1, затем φ 1q_r и т.ддоφ 1q_1, в конце б 1q_0. Обратите внимание на порядок преобразований: мы как бы«распутываем» то, что сделали на этапе зашифрования.

Опр. Часть итеративного алгоритма шифрования, ограниченная применением подстановкиφq_i, называется i тым раундом шифрования. При этом i 1..r– число раундов шифрования СБШ

Опр. Часть итеративного алгоритма шифрования, ограниченная применением подстановки

φ 1q_i, называется r i 1 тым раундомрасшифрования. При этом i 1..r– число раундов расшифрования СБШ.

Обратитевнимание: на каждом раунде работаетодна и таже функция φ,но на разных раундовых ключах.

Теперь дадим названия введенным нами функциям.

Если φ x’,q y’ или тосамое в другой форме: φq_i x’ y’ – навход i го раунда поступил блок x’ то векторыx’ и y’ –входной и выходной блокиi го раунда шифрования, а qi – раундовый ключ.

Накартинке изображено: былблокх,что то к нему применили, получили x’,применили φq_i, получили y’ и послали дальше.

Продолжаем. Отображения φ x,q , б x,q π x,q называются раундовой,входной и выходной функциями СБШ.

Стойкость обеспечивается раундовой функцией.

Величины q0 и qr 1 – ключи входнойи выходнойфункции.

Опр. Системафункций θ0,…,θr 1 с использованием которой по ключу k вычисляются ключи q0, …, qr 1 , называется ключевым расписанием СБШ.

То есть ключевой расписание определяет алгоритм, по которому находим нужные нам раундовые ключи из ключа k.

Опытным криптоаналитикам всегда хотелось инволютивности шифра это когда одну и ту же функциюEk применяют для шифрования и расшифрования . И это достижимо путем подбора функций φ, б,π. Рассмотрим теорему на эту тему.

Перед началом, если забыли посмотрите чуть выше, что такое Q иQ’.

Теорема.

Если длялюбого ключа q Q’ подстановки бq x и πq x взаимно обратные, и длялюбого ключа qQ’ подстановкаφq x – инволюция, то алгоритм шифрования итеративного СБШ обратим, и расшифрование отличается от зашифрования использованием ключейв обратном порядке.

Доказательство.

Одно из самых простых доказательств. Достаточно записать все, что намизвестно, и получим то, что и требовалось доказать.

Во первых, нам известны функции зашифрования и расшифрования чуть выше :

Ek x πq_ r 1 φq_r … φq_1 бq_0 x ,

Ek 1 y б 1q_0 φ 1q_1 … φ 1q_r π 1q_ r 1 y

Во вторых, мы знаем изусловия, что для любого ключа q Q’подстановки бq x иπq x взаимно обратные. Это означает, что:

1.

бq0 π 1q0 иπq0 б 1q0

2.

бq_ r 1 π 1q_ r 1 и πq_ r 1 б 1q_ r 1

В третьих, мы знаем, что φq x – инволюция, то есть: φq_i φq_i 1 для любогоi 1..n

Почти все. Теперь еще раз взгляните нафункцию расшифрования пункт«во первых» :

Ek 1 y б 1q_0 φ 1q_1 … φ 1q_r π 1q_ r 1 y

Смотрим пункт «во вторых» и заменяем б 1q_0 наπq0

Смотрим пункт «в третьих», понимаем, что «фи» вминус первой это то же самое, что и просто

«фи», и заменяем φ1q_1 … φ 1q_r на φq_1 … φq_r

Еще раз смотрим напункт«во вторых» и заменяем π 1q_ r 1 на бq_ r 1 .

Видим, что получилось то, что требовалось доказать:

Ek 1 y πq0 φq_1 … φq_r бq_ r 1 y

Теорема доказана.

ШифрФейстеля.

Предисловие.

Это один из подходов к построению раундовой функции.

Опр. Шифр Фейстеля – итеративный СБШ, раундовая функция которогопостроенаследующим образом:

1.Входнойблок разбивается на 2 половинки: х1 их2

2.На местопервогоблока перемещается блок х2

3.

Наместо второго записывается x1 ψ x2,q , гдеψ: Vn x Q Vn –функция усложнения

 

шифраФейстеля

А раундовая функция выглядит так: φ x1,x2 ,q и действует вот так:

φ :V2n x Q

V2n

СхемашифраФейстеля.

φ

x1,x2 ,q

x2, x1 ψ x2,q

Даже добавить нечего – все очевидносоответствует трем шагам из последнего определения.

Это же можно изобразить ввиде схемы:

Обратитевнимание: это 1 раунд из шифра Фейстеля. Подробно нарисованный.

Замечание.

Варианты алгоритмашифраФейстеля могут отличаться:

1.Функцией усложнения ψ

2.Количеством раундов

3.Длиной блока

4.Ключевым расписанием

5.Входным и выходным отображениями

Вам тоже кажется, что это похожена регистр сдвига? Правильно. См.следующее замечание.

Замечание.

При раундовом ключе q преобразование φq есть преобразование регистра левого сдвига длины 2 т.к. в нем 2 ячейки: х1 их2 над множеством Vn с функцией обратной связи x1 ψ x2,q .

Другими словами: этот шифр можнореализовать как регистрлевого сдвига с указанной функцией обратной связи. Просто посмотрите еще раз на картинку и это станет очевидно.

Замечание.

Биективность преобразования φq равносильна биективности функции обратной связи по переменной х1,которая достигается независимо от конструкции функции усложнения ψ она можетбыть любой .

Сейчас Вы узнаете нечто новое из совсем базовой части. Обычно мырисовали плюс в кружочке и называли получившийся символоперацией XOR. Благодаря достижениям лучших криптографов, теперь плюс можно не только обвести вкружочек. Но и в квадратик! И это будет называться «сложение по модулю2n». Зачем это нужно? Смотрите.

Функция обратной связи записана как x1 ψ x2,q . Аможноли вместо XOR поставить сложение по модулю 2n?Можно: так как всего имеется 2n значений это количество мы определили в самом начале раздела , и функцияобратной связи биективна по «х», топри сложении его с различными числами будем гарантированно получать различные выходные значения. Вот и все. А теперь – в научном виде.

Замечание. Биективность раундовой функции сохраняется при использовании и других биективных по «х» операций, например, сложения по модулю 2n.

А теперь поговорим о преимуществах шифраФейстеля. Об этом написана одна лемма и целая теорема.

Лемма.

При любой функции усложнения выполнено φ 1q Tn φq Tn, где Тn – операция циклического сдвига вектора на n элементов влево.

Доказательство.

Заметим, что Tn 1 Tn – инволюция почему???

Тогда перефразируем то, что нужно доказать. Покажем, что подстановки φq и φ 1q – сопряженные в группе циклических сдвигов T1 порождается сдвигом на 1 элемент . Вспомним, что такое сопряженность из прошлого семестра.

g,f – сопряженные отображения в группе H, если найдется такой h из H,что g h*f*h 1

Так как в нашем случае Tn 1 Tn, то это и докажетусловие леммы.

При любомq из Q и любых x1,x2из V2 умножимусловие φ 1q Tn φq Tn на φq: φq Tn φq Tn e

Это и будем доказывать. Что несложно:

Лемма доказана.

Теорема.

Если длялюбого q из Q’выполненоπq x бq 1 *Tn x ,то шифр Фейстеля обратим и расшифрование отличается от зашифрования лишь использованием раундовых ключей в обратном порядке.

Доказательство.

Снова вспомним функции зашифрования и расшифрования:

Ek x πq_ r 1 φq_r … φq_1 бq_0 x ,

Ek 1 y б 1q_0 φ 1q_1 … φ 1q_r π 1q_ r 1 y

Из условия теоремы: πq x бq 1 * Tn x . Заменяем в функции зашифрования:

Ek x бq_ r 1 1 *Tn x φq_r … φq_1 бq_0 x ,

Тогда функция расшифрования примет вид:

Ek 1 y б 1q_0 φ 1q_1 … φ 1q_r Tn 1 x *бq_ r 1 1 y

Вспоминаем из начала доказательствапредыдущей леммы , что Tn 1 Tn. Тогда:

Ek 1 y б 1q_0 φ 1q_1 … φ 1q_r Tn x *бq_ r 1 1 y

Вспомним, очем была лемма φ 1q Tn φq Tn . Перепишем все «фи» в таком виде:

Из последнего выражения получаем:

Ek 1 y бq_0 1 *Tn x φq_1 … φq_r бq_ r 1 y

Сравнив с третьей формулой доказательства, убеждаемся, что функции зашифрования и расшифровния отличаются только порядкомключей.

Теорема доказана.

Построениераундовойфункции.

СпособыусложненияшифраФейстеля.

Пусть раундовые ключиблочного шифра являются двоичными векторами, при этом Q Vn, а раундовая функция СБШ есть отображение V2n m V2n.

//Другими словами: то же, что V2n x Vm V2n.Навходе блок длины 2n и раундовыйключ длины m, на выходе – блок длины 2n.

Кроме того, функция усложнения шифраФейстеляестьотображение: Vn m Vn.

Замечание.

Эти функции раундовая и усложнения реализуются в виде определенного количества «элементарных» отображений, называемых слоями раундовой функции, при этом каждый слой имеет свое целевое назначение, а их композиция обеспечивает всенеобходимые криптографические свойства.

Конструктивные слои раундовых функций имеют следующее функциональное назначение:

1.Перемешивание входных блоков

2.Подмешивание раундового ключа

3.Реализация сложной нелинейной зависимости между знаками ключа входного и выходного блоков.

Дополнительно. Как реализуется нелинейность? Есть блок, он разбивается на куски, например, по 6 бит. Затем каждыйпроходит через S блок перестановок переменных . И полученные биты зависят с высокойстепенью нелинейности от входных.Потом результат перемешивается, и уже на следующем раунде будет зависеть не толькоот 1 , нои от 2 .А если не перемешивать – то будет зависеть всегда только от входных данных так как в таком случае эти данные просто пройдутчерез несколько S блоков .

Лекция последняя.

Наней рассмотрим правила построения раундовой функции, узнаем подробнее про S – блоки, увидим несколько новыхсхем поточных шифров.

Построениераундовойфункции.

Что мы ужезнаем про блочные шифры? На входпоступает блок открытого текста, выполняется входноеотображение, затем r раз выполняется раундовая функция на различных раундовых ключах , затем –выходное отображение. При этом входная ивыходнаяфункции обеспечивают инволютивность, а криптографическая стойкость основанана стойкости раундовой функции. Как же ее построить?

Требования к раундовойфункции:

1.Подмешивание раундового ключа

2.Перемешивание.

3.Нелинейная зависимость иначе можно былобырешить систему линейных уравнений и по шифротексту найти открытый текст

Перемешивание действительно важно. Как оно происходит? Вспомним, что в идеальном случае каждый выходной бит должен зависеть откаждого входногос высокойстепенью нелинейности. Тогда, если размер блока равен 64, то нужно реализовать 64 булевы функции, которые зависят от всех 64 переменных с высокой степенью нелинейности. Это крайне сложная задача даже для самого опытного криптографа. Поэтому поступают иначе: блок разбивают на несколько небольшихблоков например, по 4бит , реализуют4 б.ф., свысокой степенью нелинейности зависящие от всех 4 переменных, иприменяютко всему блоку. Как именно – узнаем чуть позже.

Условия, которым должна удовлетворять раундовая функция.

1. Для любого раундового ключа q подфункция φq раундовой функции φq x,q – биективна дляобратимости шифра . Как правило, используется операция XOR илисложение по модулю с ключом.

2.Раундовая функция должна быть нелинейной и не допускать «хороших» аффинных приближений аффинных отображений, которые очень близки, то есть почти совпадают с раундовой функцией , т.к. в противном случае ключ можноопределить по открытому тексту и шифротексту с помощью решения системы линейных уравнений.

Замечание.

 

преобразование s x1, …,x 2n реализуют с помощью

При больших n нелинейную замену

набора нелинейных преобразований.

S x 1 , ..,x 2n

s1 x 1 , …,x u ,…, sd

x 2n u 1 ,x 2n ,n 2n/d

где s1 … sd – s боксы раундовой функции нелинейного преобразования множества V2n/d.

Но ведь еслиодин и тотже наборпоследовательно пропустить через несколько таких блоков, то получим то же самое, какбудто пропустили через 1 блок? Переставили одним образом, затем результатпереставили другим и еще раз переставили – ничем не отличается от того, что сразу бы изменили порядок за1 раз. И результат зависит от входногоблока.

Для решения этой проблемы используетсяперемешивание.

Алгоритм такой: исходная последовательность делится на блоки длинойd и они проходят через s блоки. Затем получаем выходную последовательность и перемешиваем ее. Результатсноваделим на блоки длины d, пропускаем через s блоки. Итак далее. Таким образом, результатs блоков будет зависеть не толькоот 8 входных бит, нои от чего то еще.

Замечание. Число d, используемой внелинейном слое s боксов,выбирается как компромисс между сложностью реализации s блока и криптографическими качествами s боксов.

Замечание об СЛК . Необходимо,чтобы при изменении одного битавходного блока изменилось не менее половины битвыходного блока. Это правило называется СЛК – строгийлавинный критерий.

Другими словами: при изменении 1 бита во входном блоке на выходебудет совершенно другой блок.

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

1.Каждый s бокс удовлетворяет СЛК

2.Наследующем раунде совокупностьвходных биткаждого s блокадолжназависеть от выходов несколькихs блоков на предыдущих раундах.

СлабыеитеративныеСБШ.

Опр. Ключ k итеративного r раундового СБШ называется μ слабым, если набор раундовых ключей q1…qr содержит ровно μ различных элементов. Понятно, что 1 μ r μ r означает, что все ключи разные, и о слабости речи не идет .

Слабым ключом называется 1 н слабый ключ все раундовые ключи совпали

Из 16 раундовых ключей оказалось только 5 уникальных? Это 5 слабый ключ.

Теорема.

Пусть k – слабый ключ итеративного r раундового СБШ. Порядок постановкиφq равенd то есть ord φq d , а tay –остаток отделения r на d. Тогда СБШ при ключеk является tay раундовым.

Напомним, что ord φq d на самом деле означает: φq d e

Фактически этатеорема о том, что при указанных условиях СБШ является на самом деле не r раундовой, а всего лишь tay раундовой.

Доказательство.

Так как k– слабый ключ,то все раундовыеключи совпадают: q1 q2 … qr q обозначили как просто q .

Вспоминаем функцию зашифрования и начинаем над ней извращаться.

Ek x

πq_ r

1

φq

r бq_0 x

dp tay

Вспоминаем из условия: r

Ek x

πq_ r

1

φq

dp tay бq_0

x

Вспоминаем из условия,что ord φq d то есть φq d e

Ek x πq_ r 1 φq dp φq tay бq_0 x

Получили:

Ek x πq_ r 1

φq tay бq_0 x

Теорема доказана.

Следствие.

то есть tay 0 в предыдущей теореме , а подстановки бq_0 и πq_ r 1

Если d делитr

взаимно обратные, то подстановка Ek является тождественной.

Теорема.

Пусть k – этослабый ключ итеративного 2r раундового шифраФестеля, входной и выходной ключи совпадают q0 q2r 1 , и πq_0 б 1q0 Tn. ТогдаEk –инволюция, имеющая 2n неподвижных элементов.

Напомним 2 термина. Инволюция: Ek Ek 1. Неподвижный относительно преобразования элемент: Ek x x

Доказательство.

б 1q0 Tn примечателен

Вспоминаем,что шифр Фейстеля при заданном условии πq_0

тем, что зашифрование отличается то расшифрования только использованием

раундовых ключей в обратном порядке:

 

 

Теорема.

 

 

Если длялюбого q из Q’выполненоπq x бq 1 *Tn x ,то шифр Фейстеля обратим

 

ирасшифрование отличается отзашифрования лишь использованием раундовых

 

ключей в обратном порядке.

 

Запишем это ввиде формул. А точнее – скопируем:

 

Ek x πq_ 2r 1 φq_2r … φq_1 бq_0 x ,

 

Ek 1 y πq0 φq_1 … φq_2r бq_ 2r 1 y

q2r 1. Тогда:

Так как ключ k– слабый,то q1 … q2r. Такжепо условию q0

πq_ 2r

1 πq0

 

φq_2r … φq_1

φq_1 … φq_r

 

бq_0

бq_ 2r

1

 

То есть: Ek

x E 1k x –инволютивность доказали.

 

Пусть на входе –блок открытого текста a1a2 , где a1 и a2 – векторадлины n.

 

Пусть после входного отображения этот блок перешел в блокx1x2,то есть:

a1,a2 , т.е:

бq0

a1,a2

x1,x2 . Тогда если

a1,a2 – неподвижный элемент, то Ek a1,a2

Ek

a1,a2

πq_ 2r 1

φd 2r бq_0 a1,a2

a1,a2

 

Чуть раньше мы поняли,что πq_ 2r 1

πq0. А из условия: πq_0 б 1q0 Tn. Подставляем:

Ek

a1,a2

б1q0 Tn

φd 2r бq_0 a1,a2

a1,a2 .

 

Домножим на бq_0:

2r бq_0

a1,a2

бq0

a1,a2

 

Ek

a1,a2

Tn φd

 

Вспомним, что бq0

a1,a2

x1,x2 :

 

 

Ek a1,a2

Tn φd 2r x1,x2

x1,x2

 

Домножим на φq r:

 

φq r x1,x2

 

Ek a1,a2

Tn φd r x1,x2

Tn φq Tn

Вспомним лемму шифра Фейстеля: φ 1q

Ek a1,a2

Tn φd r x1,x2

Tn

φq r Tn

x1,x2

x1,x2

Tn x1,x2

x1

x2

почему??? .

Теорема доказана.

Соседние файлы в предмете Криптография