- •Классификация криптоалгоритмов.
- •Блочные шифры. Сеть Фейcтеля.
- •10 Шифр des. Основные сведения
- •Шифрование
- •11 Режимы шифра des.
- •12 Алгоритм Диффи-Хелмана Алгоритм Диффи-Хеллмана Основные сведения
- •Формирование общего ключа
- •13 Симметричные шифры. Классификация симметричных шифров
- •Требования
- •Общая схема
- •Классификация
- •14 Симметричные шифры. Принцип Кирхгофа
- •Требования
- •Общая схема
- •Общие сведения
- •Шесть требований Керкгоффса
Классификация
Симметричные алгоритмы шифрования преобразуют входные данные с использованием секретного ключа. В результате работы алгоритмов получаются зашифрованные тексты или криптограммы. Для расшифрования криптограмм, зашифрованных с помощью симметричного алгоритма, необходимо знать ключ использовавшийся в процессе зашифрования. На рисунке (NN) приведена классификация симметричных алгоритмов шифрования.
Все множество алгоритмов делится на две большие группы: блочные и поточные. Разница между ними состоит в том, что алгоритмы первой группы принимают исходный текст блоками по несколько символов, а алгоритмы второй группы последовательно посимвольно или даже побитовое преобразуют поток исходного текста. Использование блочного шифра означает, что исходный текст делится на блоки определенной длины и все преобразования выполняются отдельно над каждый блоком. Иногда преобразования над одним блоком могут зависеть от результатов преобразования над предыдущими блоками.
При поточном шифровании каждый символ исходного текста может представляться в битовой форме, то есть в двоичном виде. Далее каждый бит полученной последовательности можно преобразовать по определенному правилу. В качестве такого правила преобразования часто используют побитовое сложение исходного текста с некоторой секретной последовательностью битов. Секретная последовательность битов играет роль ключа зашифрования в симметричных потоковых шифрах. Сама по себе операция побитового сложения, называемая также операцией сложения по модулю двойки, операцией “исключающего ИЛИ” или просто XOR, является очень простой. При сложении каждый бит заменятся по правилу:
0 + 0 = 0
0 + 1 = 1
1 + 0 = 1
1 + 1 = 0
Для расшифрования надо выполнить обратную процедуру. Перевести криптограмму в двоичный вид и сложить побитово с той же самой секретной последовательностью, которая использовалась для зашифрования.
Основу большинства потоковых шифров составляет некоторый генератор псевдослучайных последовательностей. Задача такого генератора состоит в побитовом производстве битовой последовательности, которую также иногда называют ключевой гаммой шифра. Такая гамма используется в операции побитового сложения с исходным текстом. Собственно ключом шифрования в таком случае является начальное состояние (и, возможно, структура генератора). Очевидно, что тот кто знает алгоритм генерации последовательностей и начальные входные данные для работы алгоритма, сможет произвести всю гамму. Основной характеристикой таких потоковых шифров является криптографическая стойкость генератора псевдослучайных последовательностей. Генератор должен обеспечивать следующие важные свойства:
- производить последовательности битов, по своим статистическим характеристикам близкие к случайным последовательностям;
- обеспечивать производство достаточно длинных неповторяющихся последовательностей;
- обладать достаточной скоростью для работы в реальном времени.
Первое из этих свойств необходимо для того, чтобы злоумышленник не мог угадать ключевую гамму шифра. Второе свойство обеспечивает устойчивость метода шифрования к различным атакам. Последнее свойство позволяет на практике использовать потоковые шифры в реальном режиме времени.
Операция замены(transmutation), которую еще иногда называют операцией подстановки, состоит в замене одних символов исходного текста на другие символы. Символы исходного текста и символы на которые они заменяются, могут принадлежать одному и тому же алфавиту (например русскому языку), а могут – разным.
Операция перестановкисостоит в перестановки символов исходного текста по определенному правилу.
Шифры замены и перестановки относятся к самым древним из известных методов шифрования. Подобные методы известны еще с античных времен. С течением времени усложнялись правила перестановки и замены. Теоретическая база для построения стойких шифров была разработана в середине прошлого века известным американским ученым Клодом Элвудом Шенонном (Claude Elwood Shannon) (1916-2001), знаменитого также своими основополагающими трудами в области теории информации. С появлением его работы “Теория связи в секретных системах” [Shen49] криптография превращается в строгую научную дисциплину. Был предложен математический аппарат для построения стойких шифров, а также сформулированы основные принципы рассеивания и перемешивания.
Рассеивание – нивелирование влияния статистических свойств открытого текста на криптограмму. Рассеивание распространяет влияние одного символа открытого текста на большое число символов криптограммы. Рассеивание обычно достигается использованием методов перестановки.
Перемешивание – усложнение восстановления взаимосвязи статистических свойств открытого текста и криптограммы, а также между ключом и криптограммой. Перемешивание соответствует использованию методов замены [Алф2001].
С использованием этих принципов во второй половине прошлого века была предложена архитектура для построения симметричных блочных шифров. Архитектура получила название сети Фейсталя (Feistal network), по имени Хорста Фейсталя, сотрудника компании IBM. Эта архитектура на долгое время определила основное направление развития стандартов в области шифрования данных.
