Композиции шифров
Комбинированные методы шифрования
Достаточно эффективным средством повышения стойкости шифрования является комбинированное использование нескольких различных способов шифрования, т.е. последовательное шифрование исходного текста с помощью двух или более методов.
Стойкость комбинированного шифрования S не ниже произведения стойкостей используемых способов
S >= S1*S2*...*Sk
Если какой-либо способ шифрования при независимом применении может обеспечить стойкость не ниже S, то комбинировать его с другими способами целесообразно лишь при выполнении условия
R > R1+R2+ ... +Rk,
где Rk - трудоемкость i-го способа, используемого при комбинированном шифровании, R - трудоемкость того способа, который обеспечивает стойкость не ниже S.
Виды комбинированных методов шифрования
· Подстановка+перестановка;
· Подстановка+гаммирование;
· Перестановка+гаммирование;
· Гаммирование+гаммирование.
Гаммирование –наложение гаммы (символы некоторой специальной последовательности) на исходный текст.
Блочный шифр — разновидность симметричного шифра, оперирующего группами бит фиксированной длины — блоками, характерный размер которых меняется в пределах 64 — 256 бит. Если исходный текст (или его остаток) меньше размера блока, перед шифрованием его дополняют. Фактически, блочный шифр представляет собой подстановку на алфавите блоков, которая, как следствие, может быть моно- или полиалфавитной. Блочный шифр является важной компонентой многих криптографических протоколов и широко используется для защиты данных, передаваемых по сети.
Рис. 5 - Общая схема работы блочного шифра
Проектирование блочного шифра
Спроектировать блочный шифр нетрудно. Если рассматривать 64-битовый блочный шифр как перестановку 64-битовых чисел, ясно, что почти все эти перестановки безопасны. Трудно спроектировать такой блочный шифр, который не только стоек, но также может быть легко описан и реализован.
Нетрудно спроектировать блочный шифр, если объем памяти достаточен для размещения 48*32-битовых S-блоков. Трудно спроектировать нестойкий вариант алгоритма DES, если нужно использовать в нем 128 раундов. При длине ключа 512 битов нет нужды беспокоиться о какой-либо зависящей от ключа комплементарности.
Настоящий фокус - и причина, почему на самом деле очень трудно спроектировать блочный шифр - это разработать алгоритм с возможно
наименьшим ключом, требованиям к памяти и максимальной скоростью работы.
Сеть Фейстеля
Сеть Фейстеля— один из методов построения блочных шифров. Сеть представляет собой определённую многократно повторяющуюся (итерированную) структуру, называющуюся ячейкой Фейстеля. При переходе от одной ячейки к другой меняется ключ, причём выбор ключа зависит от конкретного алгоритма. Операции шифрования и расшифрования на каждом этапе очень просты, и при определённой доработке совпадают, требуя только обратного порядка используемых ключей. Шифрование при помощи данной конструкции легко реализуется как на программном уровне, так и на аппаратном, что обеспечивает широкие возможности применения. Большинство современных блочных шифров используют сеть Фейстеля в качестве основы. Альтернативой сети Фейстеля является подстановочно-перестановочная сеть.
Конструкция блочного шифра на основе сетей Фейстеля
Шифрование
Рассмотрим случай, когда мы хотим зашифровать некоторую информацию, представленную в двоичном виде в компьютерной памяти (например, файл) или электронике, как последовательность нулей и единиц.
· Вся информация разбивается на блоки фиксированной длины. В случае, если длина входного блока меньше, чем размер, который шифруется заданным алгоритмом, то блок удлиняется каким-либо способом. Как правило длина блока является степенью двойки, например: 64 бита, 128 бит. Далее будем рассматривать операции происходящие только с одним блоком, так как с другими в процессе шифрования выполняются те же самые операции.
· Выбранный блок делится на два равных подблока — «левый» (L0) и «правый» (R0).
· «Левый подблок» L0 видоизменяется функцией f(L0, K0) в зависимости от раундового ключа K0, после чего он складывается по модулю 2 с «правым подблоком» R0.
· Результат сложения присваивается новому левому подблоку L1, который будет половиной входных данных для следующего раунда, а «левый подблок» L0 присваивается без изменений новому правому подблоку R01 (см. схему), который будет другой половиной.
· После чего операция повторяется N-1 раз, при этом при переходе от одного этапа к другому меняются раундовые ключи (K0 на K1 и т. д.) по какому-либо математическому правилу, где N — количество раундов в заданном алгоритме.
Рис. 6 – Шифрование
Расшифровка информации происходит так же, как и шифрование, с тем лишь исключением, что ключи идут в обратном порядке, то есть не от первого к N-ному, а от N-го к первому.
Рис. 7 –Расшифрование
Устойчивость к криптоанализу
Криптографическая стойкость (или криптостойкость) — способность криптографического алгоритма противостоять криптоанализу. Стойким считается алгоритм, который для успешной атаки требует от противника недостижимых вычислительных ресурсов, недостижимого объёма перехваченных открытых и зашифрованных сообщений или же такого времени раскрытия, что по его истечению защищенная информация будет уже не актуальна, и т. д. В большинстве случаев криптостойкость нельзя математически доказать, можно только доказать уязвимости криптографического алгоритма.
Типы криптостойких систем шифрования:
· Абсолютно стойкие системы (Стойкость этих систем не зависит от того, какими вычислительными возможностями обладает криптоаналитик. Практическое применение систем, удовлетворяющих требованиям абсолютной стойкости, ограничено соображениями стоимости и удобства пользования)
· Достаточно стойкие системы (Стойкость этих систем зависит от того, какими вычислительными возможностями обладает криптоаналитик. Практическая стойкость таких систем базируется на теории сложности и оценивается исключительно на какой-то определенный момент времени)
Дата добавления: 2014-12-06; просмотров: 3173;