Что такое findslide.org?

FindSlide.org - это сайт презентаций, докладов, шаблонов в формате PowerPoint.


Для правообладателей

Обратная связь

Email: Нажмите что бы посмотреть 

Яндекс.Метрика

Презентация на тему Алгоритмы симметричного шифрования. Часть 2

Содержание

Алгоритм BlowfishАлгоритм BlowfishBlowfish является сетью Фейштеля, у которой количество итераций равно 16. Длина блока равна 64 битам, ключ может иметь любую длину в пределах 448 бит. Хотя перед началом любого шифрования выполняется сложная фаза инициализации, само
[ИНФОРМАЦИОННАЯ БЕЗОПАСТНОСТЬ][Институт ИИБС, Кафедра ИСКТ][Шумейко Е.В.]АЛГОРИТМЫ СИММЕТРИЧНОГО ШИФРОВАНИЯЧасть 2 Алгоритм BlowfishАлгоритм BlowfishBlowfish является сетью Фейштеля, у которой количество итераций равно 16. Алгоритм BlowfishВ основе алгоритма лежит сеть Фейштеля с 16 итерациями. Каждая итерация Алгоритм BlowfishШифрованиеВходом является 64-битный элемент данных X, который делится на две 32-битные Генерация подключейПодключи вычисляются с использованием самого алгоритма Blowfish.Инициализировать первый Р-массив и четыре Алгоритм IDEAIDEA (International Data Encryption Algorithm) является блочным симметричным алгоритмом шифрования, разработанным Алгоритм IDEAПринципы разработкиIDEA является блочным алгоритмом, который использует 128-битовый ключ для шифрования Криптографическая стойкостьСледующие характеристики IDEA характеризуют его криптографическую стойкость:Алгоритм IDEAДлина блока: длина блока Алгоритм IDEAКонфузия: зашифрованный текст должен зависеть от ключа сложным и запутанным способом. Алгоритм IDEAКаждая операция выполняется над двумя 16-битными входами и создает один 16-битный Алгоритм IDEAЭти три операции являются несовместимыми в том смысле, что:Не существует пары Алгоритм IDEAШифрованиеРассмотрим общую схему шифрования IDEA. Как и в любом алгоритме шифрования, Алгоритм IDEAРис. 3.1.  Алгоритм IDEA Алгоритм IDEAПоследовательность преобразований отдельного раундаРассмотрим последовательность преобразований отдельного раунда.Одним из основных элементов Алгоритм IDEAРаунд начинается с преобразования, которое комбинирует четыре входных подблока с четырьмя В заключении четыре выходных подблока первого преобразования комбинируются с двумя выходными подблоками Алгоритм IDEAРис. 3.4.  Заключительное преобразование Алгоритм IDEAСоздание подключейПятьдесят два 16-битных подключа создаются из 128-битного ключа шифрования следующим Алгоритм IDEAДешифрованиеПроцесс дешифрования аналогичен процессу шифрования. Дешифрование состоит в использовании зашифрованного текста Алгоритм IDEAДля первых восьми раундов последние два подключа i раунда дешифрования эквивалентны Алгоритм IDEAРис. 3.5.  Шифрование IDEA Алгоритм IDEAРис. 3.6.  Дешифрование IDEA Рассмотрим преобразования, выполняемые в прямоугольниках на обоих рисунках. При шифровании поддерживаются следующие Алгоритм IDEAТаким образом, выход первой стадии процесса дешифрования эквивалентен входу последней стадии Алгоритм IDEAГде MAR(X, Y) есть правый выход МА структуры с входами Х Алгоритм IDEAАналогично мы имеемТаким образом, выход второй стадии процесса дешифрования эквивалентен входу Алгоритм ГОСТ 28147Алгоритм ГОСТ 28147 является отечественным стандартом для алгоритмов симметричного шифрования. Алгоритм ГОСТ 28147Рис. 3.7.  I-ый раунд ГОСТ 28147 Алгоритм ГОСТ 28147Генерация ключей проста. 256-битный ключ разбивается на восемь 32-битных подключей. Алгоритм ГОСТ 28147Считается, что стойкость алгоритма ГОСТ 28147 во многом определяется структурой Алгоритм ГОСТ 28147Основные различия между DES и ГОСТ 28147 следующие:DES использует гораздо Режимы выполнения алгоритмов симметричного шифрованияДля любого симметричного блочного алгоритма шифрования определено четыре Алгоритм ГОСТ 28147CFB - Chipher Feedback - при каждом вызове алгоритма обрабатывается Алгоритм ГОСТ 28147Режим ECBДанный режим является самым простым режимом, при котором незашифрованный Алгоритм ГОСТ 28147Режим CBCДля преодоления недостатков ECB используют способ, при котором одинаковые Алгоритм ГОСТ 28147Рис. 3.9.  Дешифрование в режиме СВСДля получения первого блока зашифрованного Алгоритм ГОСТ 28147Режим CFBБлочный алгоритм предназначен для шифрования блоков определенной длины. Однако Алгоритм ГОСТ 28147Рассмотрим шифрование. Входом функции шифрования является регистр сдвига, который первоначально Рис. 3.10.  Шифрование в режиме СFВАлгоритм ГОСТ 28147 Алгоритм ГОСТ 28147Рис. 3.11.  Дешифрование в режиме СFВ Режим OFBДанный режим подобен режиму CFB. Разница заключается в том, что выход Алгоритм ГОСТ 28147Рис. 3.12.  Шифрование в режиме OFB Алгоритм ГОСТ 28147Рис. 3.13.  Дешифрование в режиме OFB Создание случайных чиселСоздание случайных чиселСлучайные числа играют важную роль при использовании криптографии Создание случайных чиселСлучайностьОбычно при создании последовательности псевдослучайных чисел предполагается, что данная последовательность НепредсказуемостьВ приложениях, таких как взаимная аутентификация и генерация ключа сессии, нет жесткого Источники случайных чиселИсточники действительно случайных чисел найти трудно. Физические генераторы шумов, такие Создание случайных чиселГенераторы псевдослучайных чиселПервой широко используемой технологией создания случайного числа был Выбор значений для а, с и m является критичным для разработки хорошего Значения а, с и m должны быть выбраны таким образом, чтобы эти Создание случайных чиселСила алгоритма линейного конгруента в том, что если сомножитель и Создание случайных чиселХ1 = (а Х0 + с ) mod mХ2 = Криптографически созданные случайные числаВ криптографических приложениях целесообразно шифровать получающиеся случайные числа. Чаще Создание случайных чиселВ данном случае применяется способ создания ключа сессии из мастер-ключа. Режим Output Feedback DESРежим OFB DES может применяться для генерации ключа, аналогично Создание случайных чиселАлгоритмом шифрования является тройной DES. Генератор ANSI X9.17 состоит из Рис. 3.15.  Генератор псевдослучайных чисел ANSI X9.17 Создание случайных чисел Создание случайных чиселТогда:Схема включает использование 112-битного ключа и трех EDE-шифрований. На вход
Слайды презентации

Слайд 2 Алгоритм Blowfish

Алгоритм Blowfish
Blowfish является сетью Фейштеля, у которой

Алгоритм BlowfishАлгоритм BlowfishBlowfish является сетью Фейштеля, у которой количество итераций равно

количество итераций равно 16. Длина блока равна 64 битам,

ключ может иметь любую длину в пределах 448 бит. Хотя перед началом любого шифрования выполняется сложная фаза инициализации, само шифрование данных выполняется достаточно быстро.
Алгоритм предназначен в основном для приложений, в которых ключ меняется нечасто, к тому же существует фаза начального рукопожатия, во время которой происходит аутентификация сторон и согласование общих параметров и секретов. Классическим примером подобных приложений является сетевое взаимодействие. При реализации на 32-битных микропроцессорах с большим кэшем данных Blowfish значительно быстрее DES.
Алгоритм состоит из двух частей: расширение ключа и шифрование данных. Расширение ключа преобразует ключ длиной, по крайней мере, 448 бит в несколько массивов подключей общей длиной 4168 байт.

Слайд 3 Алгоритм Blowfish
В основе алгоритма лежит сеть Фейштеля с

Алгоритм BlowfishВ основе алгоритма лежит сеть Фейштеля с 16 итерациями. Каждая

16 итерациями. Каждая итерация состоит из перестановки, зависящей от

ключа, и подстановки, зависящей от ключа и данных. Операциями являются XOR и сложение 32-битных слов.
Blowfish использует большое количество подключей. Эти ключи должны быть вычислены заранее, до начала любого шифрование или дешифрования данных. Элементы алгоритма:


1. Р - массив, состоящий из восемнадцати 32-битных подключей:
Р1, Р2, ..., Р18.


2. Четыре 32-битных S-boxes c 256 входами каждый. Первый индекс означает номер S-box, второй индекс - номер входа.
3. S1,0, S1,1, … S1,255;
4. S2,0, S2,1, … S2,255;
5. S3,0, S3,1, … S3,255;
6. S4,0, S4,1, … S4,255;

Метод, используемый для вычисления этих подключей, будет описан ниже.


Слайд 4 Алгоритм Blowfish
Шифрование
Входом является 64-битный элемент данных X, который

Алгоритм BlowfishШифрованиеВходом является 64-битный элемент данных X, который делится на две

делится на две 32-битные половины, X1 и Xr.
X1 =

X1 XOR Pi
Xr = F (X1) XOR Xr
Swap X1 and Xr

Функция F
Разделить X1 на четыре 8-битных элемента A, B, C, D.
F (X1) = ((S1,А + S2,B mod 232) XOR S3,C) + S4,D mod 232
Дешифрование отличается от шифрования тем, что Pi используются в обратном порядке.


Слайд 5 Генерация подключей
Подключи вычисляются с использованием самого алгоритма Blowfish.
Инициализировать

Генерация подключейПодключи вычисляются с использованием самого алгоритма Blowfish.Инициализировать первый Р-массив и

первый Р-массив и четыре S-boxes фиксированной строкой.
Выполнить операцию

XOR P1 с первыми 32 битами ключа, операцию XOR P2 со вторыми 32 битами ключа и т.д. Повторять цикл до тех пор, пока весь Р-массив не будет побитово сложен со всеми битами ключа. Для коротких ключей выполняется конкатенация ключа с самим собой.
Зашифровать нулевую строку алгоритмом Blowfish, используя подключи, описанные в пунктах (1) и (2).
Заменить Р1 и Р2 выходом, полученным на шаге (3).
Зашифровать выход шага (3), используя алгоритм Blowfish с модифицированными подключами.
Заменить Р3 и Р4 выходом, полученным на шаге (5).
Продолжить процесс, заменяя все элементы Р-массива, а затем все четыре S-boxes, выходами соответствующим образом модифицированного алгоритма Blowfish.
Для создания всех подключей требуется 521 итерация.

Алгоритм Blowfish


Слайд 6 Алгоритм IDEA
IDEA (International Data Encryption Algorithm) является блочным

Алгоритм IDEAIDEA (International Data Encryption Algorithm) является блочным симметричным алгоритмом шифрования,

симметричным алгоритмом шифрования, разработанным Сюдзя Лай (Xuejia Lai) и

Джеймсом Массей (James Massey) из швейцарского федерального института технологий. Первоначальная версия была опубликована в 1990 году. Пересмотренная версия алгоритма, усиленная средствами защиты от дифференциальных криптографических атак, была представлена в 1991 году и подробно описана в 1992 году.

IDEA является одним из нескольких симметричных криптографических алгоритмов, которыми первоначально предполагалось заменить DES.

Слайд 7 Алгоритм IDEA
Принципы разработки

IDEA является блочным алгоритмом, который использует

Алгоритм IDEAПринципы разработкиIDEA является блочным алгоритмом, который использует 128-битовый ключ для

128-битовый ключ для шифрования данных блоками по 64 бита.
Целью

разработки IDEA было создание относительно стойкого криптографического алгоритма с достаточно простой реализацией.

Слайд 8 Криптографическая стойкость

Следующие характеристики IDEA характеризуют его криптографическую стойкость:
Алгоритм

Криптографическая стойкостьСледующие характеристики IDEA характеризуют его криптографическую стойкость:Алгоритм IDEAДлина блока: длина

IDEA

Длина блока: длина блока должна быть достаточной, чтобы скрыть

все статистические характеристики исходного сообщения. С другой стороны, сложность реализации криптографической функции возрастает экспоненциально в соответствии с размером блока. Использование блока размером в 64 бита в 90-е годы означало достаточную силу. Более того, использование режима шифрования СВС говорит о дальнейшем усилении этого аспекта алгоритма.
Длина ключа: длина ключа должна быть достаточно большой для того, чтобы предотвратить возможность простого перебора ключа. При длине ключа 128 бит IDEA считается достаточно безопасным.


Слайд 9 Алгоритм IDEA

Конфузия: зашифрованный текст должен зависеть от ключа

Алгоритм IDEAКонфузия: зашифрованный текст должен зависеть от ключа сложным и запутанным

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

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

В IDEA два последних пункта выполняются с помощью трех операций. Это отличает его от DES, где все постороено на использовании операции XOR и маленьких нелинейных S-boxes.


Слайд 10 Алгоритм IDEA
Каждая операция выполняется над двумя 16-битными входами

Алгоритм IDEAКаждая операция выполняется над двумя 16-битными входами и создает один

и создает один 16-битный выход. Этими операциями являются:
1.Побитовое исключающее


OR

обозначаемое как


2.Сумма целых по модулю 216 (по модулю 65536), при этом входы и выходы трактуются как беззнаковые 16-битные целые. Эту операцию обозначим как +.

3.Умножение целых по модулю 216 + 1 (по модулю 65537), при этом входы и выходы трактуются как беззнаковые 16-битные целые, за исключением того, что блок из одних нулей трактуется как 216. Эту операцию обозначим как



Слайд 11 Алгоритм IDEA
Эти три операции являются несовместимыми в том

Алгоритм IDEAЭти три операции являются несовместимыми в том смысле, что:Не существует

смысле, что:
Не существует пары из трех операций, удовлетворяющих дистрибутивному

закону. Например
a • (b + c) <> (a • b) + (a • c)
Не существует пары из трех операций, удовлетворяющих ассоциативному закону. Например

a + (b

c)

<> (a + b) c

Использование комбинации из этих трех операций обеспечивает комплексную трансформацию входа, делая криптоанализ более трудным, чем в таком алгоритме как DES, основанном исключительно на функции

XOR.


Слайд 12 Алгоритм IDEA
Шифрование
Рассмотрим общую схему шифрования IDEA. Как и

Алгоритм IDEAШифрованиеРассмотрим общую схему шифрования IDEA. Как и в любом алгоритме

в любом алгоритме шифрования, здесь существует два входа: незашифрованный

блок и ключ. В данном случае незашифрованный блок имеет длину 64 бита, ключ имеет длину 128 бит.
Алгоритм IDEA состоит из восьми раундов, за которыми следует заключительное преобразование. Алгоритм разделяет блок на четыре 16-битных подблока. Каждый раунд получает на входе четыре 16-битных подблока и создает четыре 16-битных выходных подблока. Заключительное преобразование также получает на входе четыре 16-битных подблока и создает четыре 16-битных подблока. Каждый раунд использует шесть 16-битных ключей, заключительное преобразование использует четыре подключа, т.е. всего в алгоритме используется 52 подключа.

Слайд 13 Алгоритм IDEA
Рис. 3.1.  Алгоритм IDEA

Алгоритм IDEAРис. 3.1.  Алгоритм IDEA

Слайд 14 Алгоритм IDEA
Последовательность преобразований отдельного раунда
Рассмотрим последовательность преобразований отдельного

Алгоритм IDEAПоследовательность преобразований отдельного раундаРассмотрим последовательность преобразований отдельного раунда.Одним из основных

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

называемая МА (умножение/сложение):

Рис. 3.2.  Структура МА (умножение/сложение)

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


Слайд 15 Алгоритм IDEA
Раунд начинается с преобразования, которое комбинирует четыре

Алгоритм IDEAРаунд начинается с преобразования, которое комбинирует четыре входных подблока с

входных подблока с четырьмя подключами, используя операции сложения и

умножения. Четыре выходных блока этого преобразования комбинируются, используя операцию XOR для формирования двух 16-битных блоков, которые являются входами МА структуры. Кроме того, МА структура имеет на входе еще два подключа и создает два 16-битных выхода.

Рис. 3.3.  I-ый раунд IDEA


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

В заключении четыре выходных подблока первого преобразования комбинируются с двумя выходными

с двумя выходными подблоками МА структуры, используя XOR для

создания четырех выходных подблоков данной итерации. Заметим, что два выхода, которые частично создаются вторым и третьим входами (Х2 и Х3), меняются местами для создания второго и третьего выходов (W12 и W13). Это увеличивает перемешивание битов и делает алгоритм более стойким для дифференциального криптоанализа.
Рассмотрим девятый раунд алгоритма, обозначенный как заключительное преобразование. Это та же структура, что была описана выше. Единственная разница состоит в том, что второй и третий входы меняются местами. Это сделано для того, чтобы дешифрование имело ту же структуру, что и шифрование. Заметим, что девятая стадия требует только четыре входных подключа, в то время как для первых восьми стадий для каждой из них необходимо шесть входных подключей.

Алгоритм IDEA


Слайд 17 Алгоритм IDEA
Рис. 3.4.  Заключительное преобразование

Алгоритм IDEAРис. 3.4.  Заключительное преобразование

Слайд 18 Алгоритм IDEA
Создание подключей
Пятьдесят два 16-битных подключа создаются из

Алгоритм IDEAСоздание подключейПятьдесят два 16-битных подключа создаются из 128-битного ключа шифрования

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

обозначим как Z1, Z2, ..., Z8, получаются непосредственно из ключа, при этом Z1 равен первым 16 битам, Z2 равен следующим 16 битам и т.д. Затем происходит циклический сдвиг ключа влево на 25 битов, и создаются следующие восемь подключей. Эта поцедура повторяется до тех пор, пока не будут созданы все 52 подключа.

Хотя на каждом раунде за исключением первого и восьмого используются только 96 битов подключа, множество битов ключа на каждой итерации не пересекаются, и не существует отношения простого сдвига между подключами разных раундов. Это происходит потому, что на каждом раунде используется только шесть подключей, в то время как при каждой ротации ключа получается восемь подключей.


Слайд 19 Алгоритм IDEA
Дешифрование
Процесс дешифрования аналогичен процессу шифрования. Дешифрование состоит

Алгоритм IDEAДешифрованиеПроцесс дешифрования аналогичен процессу шифрования. Дешифрование состоит в использовании зашифрованного

в использовании зашифрованного текста в качестве входа в ту

же самую структуру IDEA, но с другим набором ключей. Дешифрующие ключи U1, . . . , U52 получаются из шифрующих ключей следующим образом:

Первые четыре подключа i-ого раунда дешифрования получаются из первых четырех подключей (10 - i) -гораунда шифрования, где стадия заключительного преобразования считается 9-м раундом. Первый и четвертый ключи дешифрования эквивалентны мультипликативной инверсии по модулю (216 + 1) соответствующих первого и четвертого подключей шифрования. Для раундов со 2 по 8 второй и третий подключи дешифрования эквивалентны аддитивной инверсии по модулю (216) соответствующих третьего и второго подключей шифрования. Для раундов 1 и 9 второй и третий подключи дешифрования эквивалентны аддитивной инверсии по модулю (216) соответствующих второго и третьего подключей шифрования.


Слайд 20 Алгоритм IDEA
Для первых восьми раундов последние два подключа

Алгоритм IDEAДля первых восьми раундов последние два подключа i раунда дешифрования

i раунда дешифрования эквивалентны последним двум подключам (9 -

i) раунда шифрования.

Для мультипликативной инверсии используется нотация Zj-1, т.е.:

Так как 216 + 1 является простым числом, каждое ненулевое целое Zi

216

имеет уникальную мультипликативную инверсию по модулю (216 + 1). Для аддитивной инверсии используется нотация (-Zj), таким образом, мы имеем: -Zj + Zj = 0 mod (216)

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


Слайд 21 Алгоритм IDEA
Рис. 3.5.  Шифрование IDEA

Алгоритм IDEAРис. 3.5.  Шифрование IDEA

Слайд 22 Алгоритм IDEA
Рис. 3.6.  Дешифрование IDEA

Алгоритм IDEAРис. 3.6.  Дешифрование IDEA

Слайд 23 Рассмотрим преобразования, выполняемые в прямоугольниках на обоих рисунках.

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

При шифровании поддерживаются следующие соотношения на выходе трансформации:
Алгоритм IDEA
Подставляя

соответствующие значения, получаем:

Слайд 24 Алгоритм IDEA
Таким образом, выход первой стадии процесса дешифрования

Алгоритм IDEAТаким образом, выход первой стадии процесса дешифрования эквивалентен входу последней

эквивалентен входу последней стадии процесса шифрования за исключением чередования

второго и третьего блоков. Теперь рассмотрим следующие отношения:

Слайд 25 Алгоритм IDEA
Где MAR(X, Y) есть правый выход МА

Алгоритм IDEAГде MAR(X, Y) есть правый выход МА структуры с входами

структуры с входами Х и Y , и MAL(X,

Y) есть левый выход МА структуры с входами Х и Y. Теперь получаем

Слайд 26 Алгоритм IDEA
Аналогично мы имеем
Таким образом, выход второй стадии

Алгоритм IDEAАналогично мы имеемТаким образом, выход второй стадии процесса дешифрования эквивалентен

процесса дешифрования эквивалентен входу предпоследней стадии процесса шифрования за

исключением чередования второго и третьего подблоков. Аналогично можно показать, что

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


Слайд 27 Алгоритм ГОСТ 28147
Алгоритм ГОСТ 28147 является отечественным стандартом

Алгоритм ГОСТ 28147Алгоритм ГОСТ 28147 является отечественным стандартом для алгоритмов симметричного

для алгоритмов симметричного шифрования. ГОСТ 28147 разработан в 1989

году, является блочным алгоритмом шифрования, длина блока равна 64 битам, длина ключа равна 256 битам, количество раундов равно 32. Алгоритм представляет собой классическую сеть Фейштеля.

Функция F проста. Сначала правая половина и i-ый подключ складываются по модулю 232. Затем результат разбивается на восемь 4-битовых значений, каждое из которых подается на вход S-box. ГОСТ 28147 использует восемь различных S-boxes, каждый из которых имеет 4-битовый вход и 4-битовый выход. Выходы всех S-boxes объединяются в 32-битное слово, которое затем циклически сдвигается на 11 битов влево. Наконец, с помощью XOR результат объединяется с левой половиной, в результате чего получается новая правая половина.


Слайд 28 Алгоритм ГОСТ 28147
Рис. 3.7.  I-ый раунд ГОСТ 28147

Алгоритм ГОСТ 28147Рис. 3.7.  I-ый раунд ГОСТ 28147

Слайд 29 Алгоритм ГОСТ 28147
Генерация ключей проста. 256-битный ключ разбивается

Алгоритм ГОСТ 28147Генерация ключей проста. 256-битный ключ разбивается на восемь 32-битных

на восемь 32-битных подключей. Алгоритм имеет 32 раунда, поэтому

каждый подключ используется в четырех раундах по следующей схеме:

Слайд 30 Алгоритм ГОСТ 28147
Считается, что стойкость алгоритма ГОСТ 28147

Алгоритм ГОСТ 28147Считается, что стойкость алгоритма ГОСТ 28147 во многом определяется

во многом определяется структурой S-boxes. Долгое время структура S-boxes

в открытой печати не публиковалась. В настоящее время известны S-boxes, которые используются в приложениях Центрального Банка РФ и считаются достаточно сильными. Напомню, что входом и выходом S-box являются 4-битные числа, поэтому каждый S-box может быть представлен в виде строки цифр от 0 до 15, расположенных в некотором порядке. Тогда порядковый номер цифры будет являться входным значением S-box, а сама цифра - выходным значением S-box.

Слайд 31 Алгоритм ГОСТ 28147
Основные различия между DES и ГОСТ

Алгоритм ГОСТ 28147Основные различия между DES и ГОСТ 28147 следующие:DES использует

28147 следующие:
DES использует гораздо более сложную процедуру создания подключей,

чем ГОСТ 28147. В ГОСТ эта процедура очень проста.
В DES применяется 56-битный ключ, а в ГОСТ 28147 - 256-битный. При выборе сильных S-boxes ГОСТ 28147 считается очень стойким.
У S-boxes DES 6-битовые входы и 4-битовые выходы, а у S-boxes ГОСТ 28147 4-битовые входы и выходы. В обоих алгоритмах используется по восемь S-boxes, но размер S-box ГОСТ 28147 существенно меньше размера S-box DES.
В DES применяются нерегулярные перестановки Р, в ГОСТ 28147 используется 11-битный циклический сдвиг влево. Перестановка DES увеличивает лавинный эффект. В ГОСТ 28147 изменение одного входного бита влияет на один S-box одного раунда, который затем влияет на два S-boxes следующего раунда, три S-boxes следующего и т.д. В ГОСТ 28147 требуется 8 раундов прежде, чем изменение одного входного бита повлияет на каждый бит результата; DES для этого нужно только 5 раундов.
В DES 16 раундов, в ГОСТ 28147 - 32 раунда, что делает его более стойким к дифференциальному и линейному криптоанализу.


Слайд 32 Режимы выполнения алгоритмов симметричного шифрования
Для любого симметричного блочного

Режимы выполнения алгоритмов симметричного шифрованияДля любого симметричного блочного алгоритма шифрования определено

алгоритма шифрования определено четыре режима выполнения.
ECB - Electronic Codebook

- каждый блок из 64 битов незашифрованного текста шифруется независимо от остальных блоков, с применением одного и того же ключа шифрования. Типичные приложения - безопасная передача одиночных значений (например, криптографического ключа).
CBC - Chipher Block Chaining - вход криптографического алгоритма является результатом применения операции XOR к следующему блоку незашифрованного текста и предыдущему блоку зашифрованного текста. Типичные приложения - общая блокоориентированная передача, аутентификация.

Алгоритм ГОСТ 28147


Слайд 33 Алгоритм ГОСТ 28147
CFB - Chipher Feedback - при

Алгоритм ГОСТ 28147CFB - Chipher Feedback - при каждом вызове алгоритма

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

зашифрованный блок используется в качестве входа в алгоритм; к J битам выхода алгоритма и следующему незашифрованному блоку из J битов применяется операция XOR, результатом которой является следующий зашифрованный блок из J битов. Типичные приложения - потокоориентированная передача, аутентификация.
OFB - Output Feedback - аналогичен CFB, за исключением того, что на вход алгоритма при шифровании следующего блока подается результат шифрования предыдущего блока; только после этого выполняется операция XOR с очередными J битами незашифрованного текста. Типичные приложения - потокоориентированная передача по зашумленному каналу (например, спутниковая связь).

Слайд 34 Алгоритм ГОСТ 28147
Режим ECB
Данный режим является самым простым

Алгоритм ГОСТ 28147Режим ECBДанный режим является самым простым режимом, при котором

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

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

Слайд 35 Алгоритм ГОСТ 28147
Режим CBC
Для преодоления недостатков ECB используют

Алгоритм ГОСТ 28147Режим CBCДля преодоления недостатков ECB используют способ, при котором

способ, при котором одинаковые незашифрованные блоки преобразуются в различные

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

Рис. 3.8.  Шифрование в режиме СВС


Слайд 36 Алгоритм ГОСТ 28147
Рис. 3.9.  Дешифрование в режиме СВС
Для

Алгоритм ГОСТ 28147Рис. 3.9.  Дешифрование в режиме СВСДля получения первого блока

получения первого блока зашифрованного сообщения используется инициализационный вектор (IV),

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

Слайд 37 Алгоритм ГОСТ 28147
Режим CFB
Блочный алгоритм предназначен для шифрования

Алгоритм ГОСТ 28147Режим CFBБлочный алгоритм предназначен для шифрования блоков определенной длины.

блоков определенной длины. Однако можно преобразовать блочный алгоритм в

поточный алгоритм шифрования, используя последние два режима. Поточный алгоритм шифрования устраняет необходимость разбивать сообщение на целое число блоков достаточно большой длины, следовательно, он может работать в реальном времени. Таким образом, если передается поток символов, каждый символ может шифроваться и передаваться сразу, с использованием символьно ориентированного режима блочного алгоритма шифрования.
Одним из преимуществ такого режима блочного алгоритма шифрования является то, что зашифрованный текст будет той же длины, что и исходный.
Будем считать, что блок данных, используемый для передачи, состоит из J бит; обычным значением является J=8. Как и в режиме CBC, здесь используется операция XOR для предыдущего блока зашифрованного текста и следующего блока незашифрованного текста. Таким образом, любой блок зашифрованного текста является функцией от всего предыдущего незашифрованного текста.

Слайд 38 Алгоритм ГОСТ 28147
Рассмотрим шифрование. Входом функции шифрования является

Алгоритм ГОСТ 28147Рассмотрим шифрование. Входом функции шифрования является регистр сдвига, который

регистр сдвига, который первоначально устанавливается в инициализационный вектор IV.

Для левых J битов выхода алгоритма выполняется операция XOR с первыми J битами незашифрованного текста Р1 для получения первого блока зашифрованного текста С1. Кроме того, содержимое регистра сдвигается влево на J битов, и С1 помещается в правые J битов этого регистра. Этот процесс продолжается до тех пор, пока не будет зашифровано все сообщение.
При дешифровании используется аналогичная схема, за исключением того, что для блока получаемого зашифрованного текста выполняется операция XOR с выходом алгоритма для получения незашифрованного блока.

Слайд 39 Рис. 3.10.  Шифрование в режиме СFВ
Алгоритм ГОСТ 28147

Рис. 3.10.  Шифрование в режиме СFВАлгоритм ГОСТ 28147

Слайд 40 Алгоритм ГОСТ 28147
Рис. 3.11.  Дешифрование в режиме СFВ

Алгоритм ГОСТ 28147Рис. 3.11.  Дешифрование в режиме СFВ

Слайд 41 Режим OFB
Данный режим подобен режиму CFB. Разница заключается

Режим OFBДанный режим подобен режиму CFB. Разница заключается в том, что

в том, что выход алгоритма в режиме OFB подается

обратно в регистр, тогда как в режиме CFB в регистр подается результат применения операции XOR к незашифрованному блоку и результату алгоритма.
Основное преимущество режима OFB состоит в том, что если при передаче произошла ошибка, то она не распространяется на следующие зашифрованные блоки, и тем самым сохраняется возможность дешифрования последующих блоков. Например, если появляется ошибочный бит в Сi, то это приведет только к невозможности дешифрования этого блока и получения Рi. Дальнейшая последовательность блоков будет расшифрована корректно. При использовании режима CFB Сi подается в качестве входа в регистр и, следовательно, является причиной последующего искажения потока.
Недостаток OFB в том, что он более уязвим к атакам модификации потока сообщений, чем CFB.

Алгоритм ГОСТ 28147


Слайд 42 Алгоритм ГОСТ 28147
Рис. 3.12.  Шифрование в режиме OFB

Алгоритм ГОСТ 28147Рис. 3.12.  Шифрование в режиме OFB

Слайд 43 Алгоритм ГОСТ 28147
Рис. 3.13.  Дешифрование в режиме OFB

Алгоритм ГОСТ 28147Рис. 3.13.  Дешифрование в режиме OFB

Слайд 44 Создание случайных чисел
Создание случайных чисел
Случайные числа играют важную

Создание случайных чиселСоздание случайных чиселСлучайные числа играют важную роль при использовании

роль при использовании криптографии в различных сетевых приложениях, относящихся

к безопасности. Сделаем краткий обзор требований, предъявляемых к случайным числам в приложениях сетевой безопасности, а затем рассмотрим несколько способов создания случайных чисел.
Требования к случайным числам
Большинство алгоритмов сетевой безопасности, основанных на криптографии, использует случайные числа. Например:
Схемы взаимной аутентификации. В большинстве сценариев аутентификации и распределения ключа используются nonсes для предотвращения атак повтора (replay-атак). Применение действительно случайных чисел в качестве nonces не дает противнику возможности вычислить или угадать nonce.
Ключ сессии, созданный KDC или кем-либо из участников.

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

Слайд 45 Создание случайных чисел
Случайность
Обычно при создании последовательности псевдослучайных чисел

Создание случайных чиселСлучайностьОбычно при создании последовательности псевдослучайных чисел предполагается, что данная

предполагается, что данная последовательность чисел должна быть случайной в

некотором определенном статистическом смысле. Следующие два критерия используются для доказательства того, что последовательность чисел является случайной:
Однородное распределение: распределение чисел в последовательности должно быть однородным; это означает, что частота появления каждого числа должна быть приблизительно одинаковой.
Независимость: ни одно значение в последовательности не должно зависеть от других.
Хотя существуют тесты, показывающие, что последовательность чисел соответствует некоторому распределению, такому как однородное распределение, теста для "доказательства" независимости нет. Тем не менее, можно подобрать набор тестов для доказательства того, что последовательность является зависимой. Общая стратегия предполагает применение набора таких тестов до тех пор, пока не будет уверенности, что независимость существует

Слайд 46 Непредсказуемость

В приложениях, таких как взаимная аутентификация и генерация

НепредсказуемостьВ приложениях, таких как взаимная аутентификация и генерация ключа сессии, нет

ключа сессии, нет жесткого требования, чтобы последовательность чисел была

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

Создание случайных чисел


Слайд 47 Источники случайных чисел
Источники действительно случайных чисел найти трудно.

Источники случайных чиселИсточники действительно случайных чисел найти трудно. Физические генераторы шумов,

Физические генераторы шумов, такие как детекторы событий ионизирующей радиации,

газовые разрядные трубки и имеющий течь конденсатор могут быть такими источниками. Однако эти устройства в приложениях сетевой безопасности применяются ограниченно. Проблемы также вызывают грубые атаки на такие устройства. Альтернативным решением является создание набора из большого числа случайных чисел и опубликование его в некоторой книге. Тем не менее, и такие наборы обеспечивают очень ограниченный источник чисел по сравнению с тем количеством, которое требуется приложениям сетевой безопасности. Более того, хотя наборы из этих книг действительно обеспечивает статистическую случайность, они предсказуемы, так как противник может получить их копию.
Таким образом, шифрующие приложения используют для создания случайных чисел специальные алгоритмы. Эти алгоритмы детерминированы и, следовательно, создают последовательность чисел, которая не является статистически случайной. Тем не менее, если алгоритм хороший, полученная последовательность будет проходить много тестов на случайность. Такие числа часто называют псевдослучайными числами.
Рассмотрим несколько алгоритмов генерации случайных чисел.

Создание случайных чисел


Слайд 48 Создание случайных чисел
Генераторы псевдослучайных чисел
Первой широко используемой технологией

Создание случайных чиселГенераторы псевдослучайных чиселПервой широко используемой технологией создания случайного числа

создания случайного числа был алгоритм, предложенный Лехмером, который известен

как метод линейного конгруента. Этот алгоритм параметризуется четырьмя числами следующим образом:

Последовательность случайных чисел {Xn} получается с помощью следующего итерационного равенства:

Если m, а и с являются целыми, то создается последовательность целых чисел в диапазоне


Слайд 49 Выбор значений для а, с и m является

Выбор значений для а, с и m является критичным для разработки

критичным для разработки хорошего генератора случайных чисел.
Очевидно, что m

должно быть очень большим, чтобы была возможность создать много случайных чисел. Считается, что m должно быть приблизительно равно максимальному положительному целому числу для данного компьютера. Таким образом, обычно m близко или равно 231.
Существует три критерия, используемые при выборе генератора случайных чисел:


Функция должна создавать полный период, т.е. все числа между 0 и m до того, как создаваемые числа начнут повторяться.
Создаваемая последовательность должна появляться случайно. Последовательность не является случайной, так как она создается детерминированно, но различные статистические тесты, которые могут применяться, должны показывать, что последовательность случайна.
Функция должна эффективно реализовываться на 32-битных процессорах.

Создание случайных чисел


Слайд 50 Значения а, с и m должны быть выбраны

Значения а, с и m должны быть выбраны таким образом, чтобы

таким образом, чтобы эти три критерия выполнялись. В соответствии

с первым критерием можно показать, что если m является простым и с = 0, то при определенном значении а период, создаваемый функцией, будет равен m-1. Для 32-битной арифметики соответствующее простое значение m = 231 - 1. Таким образом, функция создания псевдослучайных чисел имеет вид:

Создание случайных чисел

Xn+1 = (a Xn) mod (231 - 1)

Только небольшое число значений а удовлетворяет всем трем критериям. Одно из таких значений есть а = 75 = 16807, которое использовалось в семействе компьютеров IBM 360. Этот генератор широко применяется и прошел более тысячи тестов, больше, чем все другие генераторы псевдослучайных чисел.


Слайд 51 Создание случайных чисел
Сила алгоритма линейного конгруента в том,

Создание случайных чиселСила алгоритма линейного конгруента в том, что если сомножитель

что если сомножитель и модуль (основание) соответствующим образом подобраны,

то результирующая последовательность чисел будет статистически неотличима от последовательности, являющейся случайной из набора 1, 2, ..., m-1. Но не может быть случайности в последовательности, полученной с использованием алгоритма, независимо от выбора начального значения Х0. Если значение выбрано, то оставшиеся числа в последовательности будут предопределены. Это всегда учитывается при криптоанализе.

Если противник знает, что используется алгоритм линейного конгруента, и если известны его параметры (а = 75, с = 0, m = 231 - 1), то, если раскрыто одно число, вся последовательность чисел становится известна. Даже если противник знает только, что используется алгоритм линейного конгруента, знания небольшой части последовательности достаточно для определения параметров алгоритма и всех последующих чисел. Предположим, что противник может определить значения Х0, Х1, Х2, Х3. Тогда :


Слайд 52 Создание случайных чисел
Х1 = (а Х0 + с

Создание случайных чиселХ1 = (а Х0 + с ) mod mХ2

) mod m
Х2 = (а Х1 + с )

mod m
Х3 = (а Х2 + с ) mod m

Эти равенства позволяют найти а, с и m.
Таким образом, хотя алгоритм и является хорошим генератором псевдослучайной последовательности чисел, желательно, чтобы реально используемая последовательность была непредсказуемой, поскольку в этом случае знание части последовательности не позволит определить будущие ее элементы. Эта цель может быть достигнута несколькими способами. Например, использование внутренних системных часов для модификации потока случайных чисел. Один из способов применения часов состоит в перезапуске последовательности после N чисел, используя текущее значение часов по модулю m в качестве нового начального значения. Другой способ состоит в простом добавлении значения текущего времени к каждому случайному числу по модулю m.


Слайд 53 Криптографически созданные случайные числа
В криптографических приложениях целесообразно шифровать

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

получающиеся случайные числа. Чаще всего используется три способа.
Создание случайных

чисел

Циклическое шифрование

Рис. 3.14.  Циклическое шифрование


Слайд 54 Создание случайных чисел
В данном случае применяется способ создания

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

ключа сессии из мастер-ключа. Счетчик с периодом N используется

в качестве входа в шифрующее устройство. Например, в случае использования 56-битного ключа DES может применяться счетчик с периодом 256. После каждого созданного ключа значение счетчика увеличивается на 1. Таким образом, псевдослучайная последовательность, полученная по данной схеме, имеет полный период: каждое выходное значение Х0, Х1,...ХN-1 основано на различных значениях счетчика и, следовательно, Х0

X1

XN-1

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

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


Слайд 55 Режим Output Feedback DES
Режим OFB DES может применяться

Режим Output Feedback DESРежим OFB DES может применяться для генерации ключа,

для генерации ключа, аналогично тому, как он используется для

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

Создание случайных чисел

Генератор псевдослучайных чисел ANSI X9.17
Один из наиболее сильных генераторов псевдослучайных чисел описан в ANSI X9.17. В число приложений, использующих эту технологию, входят приложения финансовой безопасности и PGP.


Слайд 56 Создание случайных чисел
Алгоритмом шифрования является тройной DES. Генератор

Создание случайных чиселАлгоритмом шифрования является тройной DES. Генератор ANSI X9.17 состоит

ANSI X9.17 состоит из следующих частей:
Вход: генератором управляют два

псевдослучайных входа. Один является 64-битным представлением текущих даты и времени, которые изменяются каждый раз при создании числа. Другой является 64-битным начальным значением; оно инициализируется некоторым произвольным значением и изменяется в ходе генерации последовательности псевдослучайных чисел.
Ключи: генератор использует три модуля тройного DES. Все три используют одну и ту же пару 56-битных ключей, которая должна держаться в секрете и применяться только для генерации псевдослучайного числа.
Выход: выход состоит из 64-битного псевдослучайного числа и 64-битного значения, которое будет использоваться в качестве начального значения при создании следующего числа.


Слайд 57 Рис. 3.15.  Генератор псевдослучайных чисел ANSI X9.17
Создание

Рис. 3.15.  Генератор псевдослучайных чисел ANSI X9.17 Создание случайных чисел

случайных чисел


  • Имя файла: algoritmy-simmetrichnogo-shifrovaniya-chast-2.pptx
  • Количество просмотров: 151
  • Количество скачиваний: 0