ТЕМА 3. ПРИНЦИПЫ И МЕТОДЫ ПОСТРОЕНИЯ СИММЕТРИЧНЫХ КРИПТОСИСТЕМ

advertisement
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
ТЕМА 3. ПРИНЦИПЫ И МЕТОДЫ ПОСТРОЕНИЯ
СИММЕТРИЧНЫХ КРИПТОСИСТЕМ
Цели и задачи изучения темы:
 сформировать представление об основных принципах построения
современных шифров с симметричным ключом;
 ознакомить с шифрами замены и шифрами перестановки;
 познакомить с вариантами
перестановки и их свойствами;
построения
шифров
замены,
 приобрести практические навыки построения и использования
шифров с симметричным ключом;
Оглавление:
3.1. Построение шифров подстановки ..............................................................................................1
3.2. Шифры одноалфавитной замены ...............................................................................................8
3.3. Шифры многоалфавитной замены ...........................................................................................10
3.4 Построение шифров перестановки ............................................................................................10
3.1. Построение шифров подстановки
Важнейшей задачей криптографии является защита передаваемых
по каналам связи или хранящихся в системах обработки информации
данных от несанкционированного ознакомления с ними и от
преднамеренного их искажения. Криптография решает указанную задачу
посредством шифрования защищаемых данных, что предполагает
использование двух следующих взаимно обратных преобразований:


перед отправлением данных по линии связи или перед помещением
на хранение они подвергаются зашифрованию;
для восстановления исходных данных из зашифрованных к ним
применяется процедура расшифрования.
Для построения современных криптостойких шифров используются
два основных криптографических принципа: принцип рассеивания и
принцип перемешивания.
Рассеиванием называется распространение влияния одного
символа открытого сообщения на возможно большее количество символов
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
шифртекста, что обусловливает маскировку статистических свойств
исходного сообщения символами шифртекста.
Перемешиванием называется шифрующее преобразование, при
котором символы открытого сообщения переставляются по правилу,
определяемому ключом шифрования (никакими другими не заменяются).
В результате этого разрушаются взаимосвязи и статистические
характеристики открытого сообщения.
На рис. 1 приведена общая схема преобразования данных при
шифровании с симметричным ключом:
Рис. 1. Схема преобразования данных при шифровании с симметричным ключом
Каким же условиям должен удовлетворять шифр? Прежде всего,
процедура расшифрования должна всегда восстанавливать открытое
сообщение в его исходном виде. Иными словами, для каждого
допустимого сообщения T преобразования за- и расшифрования должны
удовлетворять следующему свойству:
T = D(E(T)).
Второе условие, которому должен удовлетворять шифр: он должен
преобразовывать данные таким образом, чтобы сделать их непонятными
для непосвященных. Другими словами, не должно существовать легко
прослеживаемых связей между исходными и зашифрованными данными.
Кроме того, шифр должен быть криптостойким, то есть устойчивым к
попыткам вскрытия зашифрованного сообщения без знания ключа к
шифру. Понятно, что вопрос стойкости шифров является главным в
криптографии. Его рассмотрение мы начнем с выяснения того, что же
может служить мерой стойкости.
Отправленное сообщение до поступления к получателю является
для него и, естественно, для злоумышленника неопределенным (если это
не так, тогда нет никакого смысла его и посылать). Пусть возможна
отправка сообщений T1,T2,...,Tn с вероятностью p1,p2,...,pn соответственно.
Тогда, мерой неопределенности сообщения для всех, кто обладает этой
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
априорной информацией, может служить величина математического
ожидания логарифма вероятности одного сообщения, взятая со знаком
"минус". При передаче двоичной информации основание логарифма равно
двум:
.
Данная величина имеет вполне понятный физический смысл. Это количество битов информации, которое необходимо передать (в
среднем) для того, чтобы полностью устранить неопределенность
сообщения. Если никакой априорной информации о сообщении нет (кроме
его размера в N бит), то все возможные из 2N вариантов считаются
равновероятными., и тогда неопределенность сообщения равна его
размеру N:
H (T )  2 N  2  N log 2 (2  N )  N | T |,
где через |T | обозначен размер блока данных T в битах.
После перехвата шифротекста характеристика неопределенности
открытого текста изменится – она станет апостериорной («послеопытной»); с условной неопределенностью. Условием здесь является
перехваченное шифрованное сообщение T'. Теперь характеристика
неопределенности определяется следующей формулой:
n
H (T | T `)   p (Ti | T `) log 2 pi (Ti | T `) ,
i 1
где через |T | обозначен размер блока данных T в битах.
После перехвата шифротекста характеристика неопределенности
открытого текста изменится - она станет апостериорной ("после-опытной");
с условной неопределенностью. Условием здесь является перехваченное
шифрованное сообщение T'. Теперь характеристика неопределенности
определяется следующей формулой:
,
где через p(Ti|T') обозначена вероятность того, что исходное сообщение
есть Ti при условии, что результат его зашифрования есть T'. Одной из
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
важнейших характеристик качества шифра служит количество
информации об исходном тексте, которое злоумышленник может извлечь
из перехваченного шифротекста - оно находится как разность между
априорной и апостериорной неопределенностью исходного сообщения:
I = H(T) - H(T|T').
Эта величина всегда неотрицательна. Показателем здесь является
уменьшение неопределенности исходного текста при получении
соответствующего
шифротекста
по
сравнению
с
априорной
неопределенностью (понятно, что увеличиться она не может).
В наилучшем для разработчиков шифра случае обе эти
неопределенности равны: H(T | T') = H(T), то есть злоумышленник не
может извлечь никакой полезной для себя информации об открытом
тексте из перехваченного шифротекста: I = 0.
Иными словами, знание шифротекста не позволяет уменьшить
неопределенность соответствующего открытого текста, улучшить его
оценку и увеличить вероятность его правильного определения. Шифры,
удовлетворяющие данному условию, называются абсолютно стойкими
или совершенными шифрами, так как зашифрованные с их
применением сообщения не только не могут быть дешифрованы в
принципе, но злоумышленник даже не сможет приблизиться к
успешному определению исходного текста, то есть увеличить вероятность
его правильного дешифрования.
Естественно, основной вопрос, который интересовал криптографов,
это существуют ли на практике абсолютно стойкие шифры. Специалистам
было интуитивно понятно, что они существуют. Пример подобного шифра
привел Вернам более чем за два десятилетия до того, как один из
основоположников теории информации К.Шеннон формально доказал их
существование.
Перечислим несколько качеств, которым должен удовлетворять
шифр, претендующий на то, чтобы считаться «хорошим».
1. В шифротексте не должно прослеживаться никаких статистических
закономерностей - например, статистические тесты не должны
выявлять в зашифрованных данных никаких зависимостей и
отклонений от равновероятного распределения битов (символов)
шифротекста.
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
2. Алгоритм должен быть перенастраиваемым. В распоряжении
злоумышленника рано или поздно может оказаться описание
алгоритма, его программная или аппаратная реализация. Для того,
чтобы в этом случае не пришлось заменять алгоритм полностью на
всех узлах шифрования, где он используется, он должен содержать
легко сменяемую часть.
Второе условие приводит нас к принципу Киркхоффса,
используемому сейчас для построения надежных шифров. Этот принцип
заключается в следующем: шифр определяется как параметризованный
алгоритм, состоящий из процедурной части, то есть описания того, какие
именно операции и в какой последовательности выполняются над
шифруемыми данными, и параметров - различных элементов данных,
используемых в преобразованиях. Раскрытие только процедурной части
не
должно
приводить
к
увеличению
вероятности
успешного
дешифрования сообщения злоумышленником выше допустимого предела.
По этой причине, а также в силу того, что рассекречивание этой части
достаточно вероятно само по себе, особого смысла хранить ее в секрете
нет. В секрете держится только некоторая часть параметров алгоритма,
которая называется ключом к шифру.
Использование этого принципа позволяет получить следующие
преимущества в построении шифров:



разглашение конкретного шифра (алгоритма и ключа) не приводит к
необходимости полной замены реализации всего алгоритма,
достаточно заменить только скомпрометированный ключ;
ключи можно отчуждать от остальных компонентов системы
шифрования - хранить отдельно от реализации алгоритма в более
надежном месте и загружать их в шифрователь только по мере
необходимости и только на время выполнения шифрования - это
значительно повышает надежность системы в целом;
появляется
возможность
для
точной
оценки
"степени
неопределенности" алгоритма шифрования - она просто равна
неопределенности используемого ключа:H(EK) = H(K).
Соответственно, становится возможным оценить вероятность и
трудоемкость
успешного
дешифрования,
то
есть
количество
вычислительной работы, которую необходимо выполнить злоумышленнику
для этого.
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Вернемся к необходимому условию абсолютной стойкости шифра
для шифров, построенных в соответствии с принципом Киркхоффса. В
предположении, что никаких априорных данных о шифруемом тексте
(кроме его длины) нет, получаем, что неопределенность исходного текста
равна его длине, выраженной в битах:
H(T) = |T|.
Максимально
возможная
неопределенность
блока
данных
фиксированного размера достигается, когда все возможные значения
этого блока равновероятны - в этом случае она равна размеру блока в
битах. Таким образом, неопределенность ключа K не превышает его
длины:
H(K ) |K|.
С учетом сказанного выше, получаем необходимое условие
абсолютной стойкости для шифров, удовлетворяющих принципу
Киркхоффса:
|K| H(K) = H(EK) = H(E) H(T) = |T|.
Для того, чтобы шифр, построенный по принципу Киркхоффса,
был абсолютно стойким, необходимо, чтобы размер использованного
для шифрования ключа был не меньше размера шифруемых данных:
|K| |T|.
Точное равенство возможно только в том случае, если все
возможные значения ключа равновероятны, что эквивалентно условию,
что биты ключа равновероятны и статистически независимы друг от друга.
Примером абсолютно стойкого шифра может служить одноразовая
гамма Вернама - наложение на открытые данные (T) ключа (K) такого же
размера,
составленного
из
статистически
независимых
битов,
принимающих возможные значения с одинаковой вероятностью, с
помощью некоторой бинарной операции " ":
T' = T K.
Используемая для наложения гаммы операция должна
удовлетворять некоторым условиям, которые можно суммировать
следующим образом: уравнение зашифрования должно быть однозначно
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
разрешимо относительно открытых данных при известных
зашифрованных и ключе, и однозначно разрешимо относительно ключа
при известны открытых и зашифрованных данных. Если операция
удовлетворяет этому свойству, то она подходит. Среди подходящих
операций нет подходящих лучше и подходящих хуже, с точки зрения
стойкости шифра они все одинаковы - "совершенство" не знает
сравнительных степеней, оно либо есть, либо его нет. По указанной
причине для практического использования обычно выбирают наиболее
удобную в реализации операцию - побитовое суммирование по модулю 2
или побитовое исключающее ИЛИ, так как она обладает следующими
свойствами:

требует для своей реализации минимальной по сложности
логики;

обратна самой себе, поэтому для за- и расшифрования
применяется одна и та же процедура.
Вернемся к вопросу об абсолютной стойкости шифров: как было
отмечено ранее, абсолютно стойкие шифры требуют использования
ключа, по размеру не меньшего шифруемых данных. Этот ключ должен
быть и у отправителя, и у получателя, то есть его необходимо
предварительно доставить им, а для этого необходим защищенный канал.
Таким образом, наряду с потенциально незащищенным каналом для
передачи
зашифрованных
данных
необходимо
существование
защищенного канала для передачи такого же по размеру ключа. Это не
всегда приемлемо по экономическим соображениям, поэтому подобные
системы применяются лишь в исключительных случаях для защиты
сведений, представляющих особую ценность. В подавляющем
большинстве реальных систем шифрованной связи используются
алгоритмы, не обладающие абсолютной стойкостью (называемые
условно стойкими или вычислительно стойкими шифрами).
Шифром замены называется алгоритм шифрования, который
производит замену каждой буквы открытого текста на какой-то символ
шифрованного текста. Получатель сообщения расшифровывает его
путем обратной замены.
В классической криптографии различают 4 разновидности шифров
замены:
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Простая замена, или одноалфавитный шифр. Каждая
буква открытого текста заменяется на один и тот же символ
шифртекста.

Омофонная замена. Аналогична простой замене с
единственным отличием: каждой букве открытого текста ставятся в
соответствие несколько символов шифртекста. Например, буква "А"
заменяется на цифру 5, 13, 25 или 57 , а буква "Б" — на 7, 19, 31 или
43 и так далее.

Блочная
замена.
Шифрование
открытого
текста
производится
блоками.
Например,
блоку
"АБА"
может
соответствовать "РТК", а блоку "АББ" — "СЛЛ".

Многоалфавитная замена. Состоит из нескольких шифров
простои замены. Например, могут использоваться пять шифров
простой замены, а какой из них конкретно применяется для
шифрования данной буквы открытого текста, - зависит от ее
положения в тексте.

Все упомянутые шифры замены легко взламываются с
использованием
современных
компьютеров,
поскольку
замена
недостаточно хорошо маскирует стандартные частоты встречаемости
букв в открытом тексте.
Разновидностью шифра замены можно считать код, который вместо
букв осуществляет замену слов, фраз и даже целых предложений.
Например, кодовый текст "ЛЕДЕНЕЦ" может соответствовать фразе
открытого текста "ПОВЕРНУТЬ ВПРАВО НА 90°". Однако коды
применимы только при определенных условиях: если, например, в коде
отсутствует соответствующее значение для слова "МУРАВЬЕД", то вы не
можете использовать это слово в открытом тексте своего сообщения,
предназначенном для кодирования.
3.2. Шифры одноалфавитной замены
Подстановка Цезаpя является самым пpостым ваpиантом подстановки.
Она относится к гpуппе одноалфавитных подстановок.
В шифре Цезаря каждая буква замещается на букву, находящуюся k
символами правее по модулю равному количеству букв в алфавите:
Ck ( j )  ( j  k )(mod n) , где n – количество букв в алфавите.
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Очевидно, что обратной подстановкой является подстановка
1
Ck ( j )  Cnk  ( j  n  k )(mod n)
Пpи своей несложности система легко уязвима. Если злоумышленник
имеет шифpованный и соответствующий исходный текст или
шифpованный текст выбpанного злоумышленником исходного текста, то
опpеделение ключа и дешифpование исходного текста тpивиальны.
Шифр Цезаря с ключевым словом. В данной разновидности шифра
Цезаря ключ задается числом k (0<=k<=n–1) и коротким ключевым словом
или предложением. Выписывается алфавит, а под ним, начиная с k-й
позиции, ключевое слово. Оставшиеся буквы записываются в алфавитном
порядке после ключевого слова. В итоге мы получаем подстановку для
каждой буквы. Требование, чтобы все буквы ключевого слова были
различными не обязательно – можно записывать ключевое слово без
повторения одинаковых букв. Количество ключей в системе Цезаря с
ключевым словом равно n!.
Более эффективны обобщения подстановки Цезаpя – шифp Хилла и
шифp Плэйфеpа. Они основаны на подстановке не отдельных символов,
а би-гpамм (шифp Плэйфеpа) или n-гpамм (шифp Хилла). Пpи более
высокой кpиптостойкости они значительно сложнее в pеализации и
тpебуют достаточно большого объема ключевой инфоpмации.
В Древней Греции (II в. до н. э.) был известен шифр подстановки,
называемый "квадрат Полибия". Этот шифр относится к шифрам
одноалфавитной замены. Шифровальная таблица представляла собой
квадрат с пятью столбцами и пятью строками, которые нумеровались
цифрами от 1 до 5. В каждую клетку такого квадрата записывалась одна
буква. В результате каждой букве соответствовала пара чисел, и
шифрование сводилось к замене буквы парой чисел.
Идею квадрата Полибия проиллюстрируем таблицей с русскими
буквами. Число букв в русском алфавите отличается от числа букв в
греческом алфавите, поэтому и размер таблицы выбран иным (не
квадрат 5x5, а прямоугольник 8x4).
1
2
3
1
А
И
Р
2
Б
Й
С
3
В
К
Т
4
Г
Л
У
5
Д
М
Ф
6
Е
Н
Х
7
Ж
Щ
Ц
8
З
П
Ч
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
Ш
4
Щ
Ъ
Ы
Ь
Э
Ю
Я
Зашифруем фразу: КРИПТОГРАФИЯ:
23 31 21 28 33 27 14 31 11 35 21 48.
Из примера видно, что в шифрограмме первым указывается номер
строки, а вторым – номер столбца.
3.3. Шифры многоалфавитной замены
Слабая кpиптостойкость моноалфавитных подстановок пpеодолевается с
пpименением подстановок многоалфавитных.
Многоалфавитная подстановка опpеделяется ключом, содеpжащим не
менее
двух
pазличных
подстановок.
В
начале
pассмотpим
многоалфавитные системы подстановок с нулевым начальным
смещением.
Шифр Вижинеpа. Начнем с конечной последовательности ключа k
= (k0 ,k1 ,...,kn), котоpая называется ключом пользователя, и пpодлим
ее до бесконечной последовательности, повтоpяя цепочку. Таким
обpазом, получим pабочий ключ
k = (k0 ,k1 ,...,kn), kj = k(j mod r, 0 j < .
Напpимеp, пpи r = и ключе пользователя 15 8 2 10 11 4 18 pабочий
ключ будет пеpиодической последовательностью:
15 8 2 10 11 4 18 15 8 2 10 11 4 18 15 8 2 10 11 4 18 ...
Опpеделение. Подстановка Вижинеpа VIGk опpеделяется как
VIGk : (x0, x1, ..., xn-1) (y0, y1, ..., yn-1) = (x0+k, x1+k,. .., xn-1+k).
Таким обpазом:
1. исходный текст x делится на r фpагментов
xi = (xi , xi+r , ..., xi+r(n-1)), 0 i < r;
2. i-й фpагмент исходного текста xi шифpуется пpи помощи
подстановки Цезаpя Ck :
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
(xi , xi+r , ..., xi+r(n-1)) (yi , yi+r , ..., yi+r(n-1)),
Многоалфавитную замену можно выполнить с помощью операции
сложения по модулю 2, прибавляя к битам ключа соответствующие биты
открытого текста. Этот алгоритм шифрования является симметричным.
Поскольку двойное прибавление одной и той же величины по модулю 2
восстанавливает исходное значение, то шифрование и расшифрование
выполняются одной и той же программой.
Следует помнить о том, что с помощью данного алгоритма можно
надежно спрятать (от человека, не сведущего в криптоанализе)
содержание своей переписки, однако опытному криптоаналитику
понадобится всего несколько минут, чтобы его взломать. Делается это
очень просто, если предположить. например, что открытый текст
сообщения написан на английском языке.
Сначала
следует
определить
длину
ключа.
Шифртекст
последовательно складывается по модулю 2 со своей копией, сдвинутой
на различное число байт, и в полученном векторе подсчитывается число
совпадающих компонентов. Когда величина сдвига кратна длине ключа,
это число превысит 6% от общей длины исследуемого шифртекста. Если
не кратна, то совпадений будет меньше 0,4%. Проанализировав
полученные данные, можно сделать обоснованный вывод о длине ключа.
После этого надо сложить шифртекст по модулю 2 со своей копией,
сдвинутой на величину длины ключа. Эта операция аннулирует ключ и
оставит в наличии открытый текст сообщения, сложенный по модулю 2 со
своей копией, сдвинутой на величину длины ключа.
3.4. Построение шифров перестановки
Шифры перестановки основаны на использовании принципа
перемешивания. В шифре перестановки символы открытого сообщения
не заменяются какими-либо другими, а изменяется порядок их
следования в криптограмме. Порядок следования (перемешивания)
определяется ключом к шифру. Например, в шифре простой колонной
перестановки исходный открытый текст записывается построчно (число
букв в строке фиксировано), а шифртекст получается считыванием букв
по колонкам. Расшифрование производится аналогично: шифртекст
записывается поколонно, а открытый текст читается по горизонтали.
Буквы открытого текста записываются в клетки прямоугольной
таблицы по ее строчкам. Буквы ключевого слова пишутся над столбцами
МЕЖДУНАРОДНЫЙ БАНКОВСКИЙ ИНСТИТУТ
INTERNATIONAL BANKING INSTITUTE
и указывают порядок этих столбцов (по возрастанию номеров букв в
алфавите). Чтобы получить зашифрованный текст, надо выписывать
буквы по столбцам с учетом их нумерации:
Открытый текст: Прикладная математика Ключ: Шифр
Ш
4
П
л
а
т
т
и
1
р
а
я
е
и
ф
3
и
д
м
м
к
р
2
к
н
а
а
а
Криптограмма: Платтраяеиидммккнааа.
Ключевое слово (последовательность столбцов) – известно адресату,
что позволяет ему расшифровать сообщение.
Так как символы криптотекста те же, что и в открытом тексте, то
частотный криптоанализ покажет, что каждая буква встречается
приблизительно с той же частотой, что и открытом тексте. Это дает
криптоаналитику информацию о том, что он имеет дело с
перестановочным шифром. Применение к криптотексту второго
перестановочного
шифра
значительно
повысит
безопасность.
Существуют и еще более сложные перестановочные шифры, но с
применением современных компьютеров их можно раскрыть.
Download