Математика криптографии и теория шифрования

Традиционные шифры с симметричным ключом

Разбить на страницы
Показывать лекцию целиком

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

4.1. Введение

Рисунок 4.1 иллюстрирует общую идею шифра с симметричным ключом.

(рис 4.1) Общая идея шифрования с симметричным ключом

На рисунке 4.1 объект, Алиса, может передать сообщение другому объекту, Бобу, по несекретному каналу, учитывая, что противник (назовем его Ева), не может понять содержание сообщения, просто подслушивая его по каналу.

Первоначальное сообщение от Алисы Бобу названо исходным текстом; сообщение, передаваемое через канал, названо зашифрованным текстом. Чтобы создать зашифрованный текст из исходного текста, Алиса использует алгоритм шифрования и совместный ключ засекречивания. Для того чтобы создать обычный текст из зашифрованного текста, Боб использует алгоритм дешифрования и тот же секретный ключ. Мы будем называть совместное действие алгоритмов шифрования и дешифрования шифровкой. Ключ — набор значений (чисел), которыми оперирует алгоритм шифровки.

Обратите внимание, что шифрование симметричными ключами использует единственный ключ (ключ, содержащий непосредственно набор кодируемых значений) и для кодирования и для дешифрования. Кроме того, алгоритмы шифрования и дешифрования — инверсии друг друга. Если P — обычный текст, C — зашифрованный текст, а K — ключ, алгоритм кодирования Ek (x) создает зашифрованный текст из исходного текста.

Алгоритм же дешифрования Dk (x) создает исходный текст из зашифрованного текста. Мы предполагаем, что Ek (x) и Dk (x) инверсны по отношению друг к другу. Они применяются, последовательно преобразуя информацию из одного вида в другой и обратно. Мы имеем

Шифрование: C = Ek(P),                      
Расшифровка: P = Dk (C),
где , Dk(Ek(x)) = Ek(Dk(x)) = x

Мы можем доказать, что исходный текст, созданный Бобом, тот же самый, что и исходный, переданный Алисой. Мы предполагаем, что Боб создает P1 ; мы докажем, что P1 = P:

Алиса: C = Ek(P)       Боб: P1 = Dk (C)  = Dk (Ek(P)) = P

Мы должны подчеркнуть, что согласно принципу Керкгоффса (приведенному далее) лучше делать алгоритм шифрования и дешифрования открытым, но сохранять в тайне совместный ключ. Это означает, что Алиса и Боб нуждаются в другом защищенном канале для обмена ключом засекречивания. Алиса и Боб могут однажды встретиться и обменяться ключом лично. Защищенный канал аналогично представляет собой "встречу лицом к лицу" для обмена ключом. Они могут также довериться третьему лицу, чтобы он дал им одинаковые ключи. Они могут создать временный ключ засекречивания, используя другой вид асимметрично-ключевых шифров, который будет рассмотрен в более поздних лекциях. В этой лекции мы просто принимаем, что существует утвержденный ключ засекречивания между Алисой и Бобом.

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

Другой элемент в шифровании симметричными ключами — число ключей. Алиса нуждается в другом ключе засекречивания, чтобы связаться с другим человеком, скажем, Дэвидом. Если есть m группа людей, в которой каждый должен иметь связь друг с другом, сколько ключей необходимо? Ответ — $$(m \times (m-1))/2$$, потому что каждому человеку надо m – 1 ключ, чтобы связаться с остальной частью группы, но ключ между A и B может использоваться в обоих направлениях. В более поздних лекциях мы увидим, как решается эта проблема.

Шифрование можно представлять себе как замок, который запирает ящик, содержащий сообщение; дешифрование можно представлять себе как открытие замка такого ящика. В шифровании симметричными ключами один и тот же ключ замыкает и размыкает замок, как это показано на рис. 4.2. В более поздних лекциях будет рассказано, что шифрование асимметричными ключами нуждается в двух ключах: одном для замыкания, а втором — для размыкания замка.

(рис 4.2) Шифрования симметричными ключами, как замыкание и размыкание замка с тем же самым ключом

Принципы Керкгоффса

Хотя можно предположить, что шифр был бы более безопасен, если мы скрываем и алгоритм шифрования/дешифрования, и ключ засекречивания, это не рекомендуется. Согласно принципу Керкгоффса, нужно всегда предполагать, что противник — Ева — знает алгоритм кодирования/дешифрования. Противодействие шифра атаке должно базироваться только на тайне ключа. Другими словами, предполагается, что ключ должен быть настолько труден, что не надо скрывать алгоритм кодирования/дешифрования. Эти принципиальные положения станут более ясны, когда мы будем изучать современные шифры. Для современных шифров сегодня существует немного алгоритмов. Множество ключей (Ключевой домен) для каждого алгоритма, однако, настолько большое число, что мешает противнику найти ключ.

Криптоанализ

Криптография — наука и искусство создания секретных кодов, криптоанализ — наука и искусство взламывания этих кодов. В дополнение к изучению методов криптографии мы также должны изучить методы криптоанализа.

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

(рис 4.3) Атаки криптоанализа

Атака только на зашифрованный текст

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

(рис 4.4) Атака только на зашифрованный текст

В атаке только на зашифрованный текст могут использоваться различные методы. Мы рассмотрим здесь только некоторые из них.

Атака грубой силы

При методе грубой силы, или методе исчерпывающего ключевого поиска, Ева пробует использовать все возможные ключи. Мы предполагаем, что Ева знает алгоритм и знает множество ключей (список возможных ключей). При использовании этого метода перехватывается исходный текст и задействуются все возможные ключи, пока не получится исходный текст. Создание атаки грубой силы было в прошлом трудной задачей; сегодня с помощью компьютера это стало проще. Чтобы предотвратить этот тип атаки, число возможных ключей должно быть очень большим.

Статистическая атака

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

Атака по образцу

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

Атака знания исходного текста

При атаке знания исходного текста Ева имеет доступ к некоторым парам "исходный/зашифрованный текст" в дополнение к перехваченному зашифрованному тексту, который она хочет взломать, как показано на рис. 4.5.

(рис 4.5) Атака знания исходного текста

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

Атака с выборкой исходного текста

Атака с выборкой исходного текста подобна атаке знания исходного текста, но пары "исходный/зашифрованный текст" были выбраны и изготовлены самим нападавшим. Рисунок 4.6 иллюстрирует этот процесс.

(рис 4.6) Атака с выборкой исходного текста

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

Атака с выбором зашифрованного текста

Атака с выбором зашифрованного текста подобна атаке с выборкой исходного текста, за исключением того, что выбирает некоторый зашифрованный текст и расшифровывает его, чтобы сформировать пару "зашифрованный/исходный текст" (это случается, когда Ева имеет доступ к компьютеру Боба). Рисунок 4.7 показывает этот процесс.

(рис 4.7) Атака с выбором зашифрованного текста

Категории традиционных шифров

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

4.2. Шифры подстановки

Шифр подстановки заменяет один символ другим. Если символы в исходном тексте — символы алфавита, мы заменяем одну букву другой. Например, мы можем заменить букву A буквой D, а букву T — буквой Z. Если символы — цифры (от 0 до 9 ), мы можем заменить 3 на 7 и 2 на 6. Шифры подстановки могут быть разбиты на две категории: моноалфавитные или многоалфавитные шифры.

Шифр подстановки заменяет один символ другим.

Моноалфавитные шифры

Сначала обсудим шифры подстановки, называемые моноалфавитными шифрами. В такой подстановке буква (или символ) в исходном тексте всегда изменяется на одну и ту же самую букву (или символ) в зашифрованном тексте независимо от его позиции в тексте. Например, если алгоритм определяет, что буква A в исходном тексте меняется на букву D, то при этом каждая буква A изменяется на букву D. Другими словами, буквы в исходном тексте и зашифрованном тексте находятся в отношении один к одному.

В моноалфавитной подстановке отношения между буквой в исходном тексте и буквой в зашифрованном тексте — один к одному.

Пример 4.1

Приведенный ниже пример показывает исходный текст и соответствующий ему зашифрованный текст. Мы используем строчные символы, чтобы показать исходный текст, и заглавные буквы (символы верхнего регистра), чтобы получить зашифрованный текст. Шифр моноалфавитный, потому что оба l зашифрованы как O.

Исходный текст: hello   	Зашифрованный  текст: KHOOR

Пример 4.2

Приведенный ниже пример показывает исходный текст и соответствующий ему зашифрованный текст. Шифр не является моноалфавитным, потому что каждая буква l (эль) зашифрована различными символами. Первая буква l (эль) зашифрована как N ; вторая — как Z.

Исходный текст: hello	        Зашифрованный текст: ABNZF

Аддитивный шифр

Самый простой моноалфавитный шифр — аддитивный шифр, его иногда называют шифром сдвига, а иногда — шифром Цезаря, но термин аддитивный шифр лучше показывает его математический смысл. Предположим, что исходный текст состоит из маленьких букв (от a до z ) и зашифрованный текст состоит из заглавных букв (от A до Z ). Чтобы обеспечить применение математических операций к исходному и зашифрованному текстам, мы присвоим каждой букве числовое значение (для нижнего и верхнего регистра), как это показано на рис. 4.8.

(рис 4.8) Представление букв исходного текста и зашифрованного текста в Z26

На рисунке 4.8 каждому символу (нижний регистр или верхний регистр) сопоставлено целое число из Z26. Ключ засекречивания между Алисой и Бобом — также целое число в Zn. Алгоритм кодирования прибавляет ключ к символу исходного текста; алгоритм дешифрования вычитает ключ из символа зашифрованного текста. Все операции проводятся в Zn. Рисунок 4.9 показывает процесс шифрования и дешифрования.

(рис 4.9) Аддитивный шифр

Мы можем легко показать, что шифрование и дешифрование являются инверсными друг другу, потому что исходный текст, созданный Бобом ( P1 ), тот же самый, что и тот, который передан Алисой ( P ).

P1= (C – k) mod 26 = (P + k – k) mod 26 = P

.

Пример 4.3

Используйте аддитивный шифр с ключом = 15, чтобы зашифровать сообщение "hello".

Решение

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

Исходный текст  h  ->     07	Шифрование (07 + 15) mod 26	Шифр. Текст 22 ->      W
Исходный текст  e  ->     04	Шифрование (04+ 15)  mod 26	Шифр. Текст 19 ->      T
Исходный текст  l  ->     11	Шифрование (11 + 15) mod 26	Шифр. Текст 00 ->      A
Исходный текст  l  ->     11	Шифрование (11 + 15) mod 26	Шифр. Текст 00 ->      A
Исходный текст  o  ->     14	Шифрование (14 + 15) mod 26	Шифр. Текст 03 ->      D

Результат — "WTAAD". Обратите внимание, что шифр моноалфавитный, потому что два отображения одной и той же буквы исходного текста ( l ) зашифрованы как один и тот же символ ( A ).

Пример 4.4

Используйте шифр сложения с ключом = 15, чтобы расшифровать сообщение "WTAAD".

Решение

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

Шифр. Текст    W  ->   22	Шифрование (22 - 15) mod 26	Исходный текст  07  ->    h 
Шифр. Текст    T  ->   19	Шифрование (19 - 15) mod 26	Исходный текст  04  ->    e  
Шифр. Текст    A  ->   00	Шифрование (00 - 15) mod 26	Исходный текст  11  ->    l
Шифр. Текст    A  ->   00	Шифрование (00 - 15) mod 26	Исходный текст  11  ->    l
Шифр. Текст    D  ->   03	Шифрование (03 - 15) mod 26	Исходный текст  14  ->    0

Результат — "hello". Обратите внимание, что операции проводятся по модулю 26 (см. лекции 2-3), отрицательный результат должен быть отображен в Z26 (например, –15 становится 11 ).

Шифр сдвига

Исторически аддитивные шифры назывались шифрами сдвига — по той причине, что алгоритм шифрования может интерпретироваться как "клавиша сдвига буквы вниз", а алгоритм дешифрования может интерпретироваться как "клавиши сдвига буквы вверх". Например, если ключ = 15, алгоритм кодирования сдвигает букву на 15 букв вниз (к концу алфавита). Алгоритм дешифрования сдвигает букву на 15 букв вверх (к началу алфавита). Конечно, когда мы достигаем конца или начала алфавита, мы двигаемся по кольцу к началу (объявленные свойства операции по модулю 26 ).

Шифр Цезаря

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

Аддитивные шифры упоминаются иногда как шифры сдвига или шифры Цезаря.

Криптоанализ

Аддитивные шифры уязвимы к атакам только зашифрованного текста, когда используется исчерпывающий перебор ключей (атака грубой силы). Множество ключей аддитивного шифра очень мало — их только 26. Один из ключей, нулевой, является бесполезным (зашифрованный текст будет просто соответствовать исходному тексту). Следовательно, остается только 25 возможных ключей. Ева может легко начать атаку грубой силы зашифрованного текста.

Пример 4.5

Ева перехватила зашифрованный текст "UVACLYFZLJBYL". Покажите, как она может взломать шифр, используя атаку грубой силы.

Решение

Ева пробует раскрыть текст и последовательно перебирает ключи начиная с первого. С помощью ключа номер 7 она получает осмысленный текст "not very secure" (не очень безопасный).

Зашифрованный текст: UVACLYFZLJBYL	
K = 1	        Исходный текст: tubkxeykiaxk
K = 2	        Исходный текст: styajwdxjhzwj
K = 3	        Исходный текст: rsxzivewigyvi
K = 4	        Исходный текст: qrwyhubvhfhuh
K = 5	        Исходный текст: pqvxgtaugewtg
K = 6	        Исходный текст: opuwfsztfdvst
K = 7	        Исходный текст: notverysecure

Статистические атаки

Аддитивные шифры также могут быть объектами статистических атак. Это особенно реально, если противник перехватил длинный зашифрованный текст. Противник может воспользоваться знаниями о частоте употребления символов в конкретном языке. Таблица 4.1 показывает частоту появления определенных букв для английского текста длиной в 100 символов.

Частота появления букв в английском тексте
Буква Частота Буква Частота Буква Частота Буква Частота
E 12,7 H 6,1 W 2,3 K 0,08
T 9,1 R 6,0 F 2,2 J 0,02
A 8,2 D 4,3 G 2,0 Q 0,01
O 7,5 L 4,0 Y 1,9 X 0,01
I 7,0 C 2,8 P 1,5 Z 0,01
N 6,7 U 2,8 B 1,0
S 6,3 M 2,4 V

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

Наиболее употребляемые группы с двумя символами (диаграмма (diagrams)) и группы с тремя символами (триграмма (trigrams)) для английского текста показаны в таблице 4.2.

Группы диаграмм и триграмм , основанные на их частоте появления в английском языке
Диаграмма TH,HE,IN,ER,AN,RE,ED,ON,ES,ST,EN,AT,TO,NT,HA,ND,OU,EA,NG,AS,OR,TI,IS,ET,IT,AR,TE,SE,HI,OF
Триграмма THE,ING,AND,HER,ERE,ENT,THA,NTH,WAS,ETH,FOR,DTH

Пример 4.6

Ева перехватила следующий зашифрованный текст. Используя статистическую атаку, найдите исходный текст.

XLILSYWIMWRSAJSVWEPIJSVJSYVQMPPMSRHSPPEVWMXMWASVX-LQSVILY-VVCFIJSVIXLIWIPPIVVIGIMZIWQSVISJJIVW

Решение

Когда Ева составит таблицу частоты букв в этом зашифрованном тексте, она получит: I = 14, V = 13, S = 12, и так далее. Самый частый символ – I — имеет 14 появлений. Это показывает, что символ I в зашифрованном тексте, вероятно, соответствует символу e в исходном тексте. Тем самым, ключ = 4. Ева расшифровывает текст и получает

the house is now for sale for four million dollars it is worth more hurry before the seller receives more offers
дом теперь продается за четыре миллиона долларов,  стоит поспешить, пока продавец  не получил больше предложений

Мультипликативные шифры

В мультипликативном шифре алгоритм шифрования применяет умножение исходного текста ключом, а алгоритм дешифрования применяет деление зашифрованного текста ключом, как показано на рис. 4.10. Однако поскольку операции проводятся в Z26, дешифрование здесь означает умножение на мультипликативную инверсию ключа. Обратите внимание, что ключ должен принадлежать набору Zn* — это гарантирует, что шифрование и дешифрование инверсны друг другу.

(рис 4.10) Мультипликативный шифр .

Пример 4.7

Каково множество ключей для любого мультипликативного шифра?

Решение

Ключ должен быть в Z26*. Это множество имеет только 12 элементов: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25.

Пример 4.8

Мы используем мультипликативный шифр, чтобы зашифровать сообщение "hello" с ключом 7. Зашифрованный текст "XCZZU".

Исходный текст  h           07	Шифрование (07 x 07) mod 26    Шифр. Текст 23            X
Исходный текст  e           04	Шифрование (04 x 07) mod 26    Шифр. Текст 02            C
Исходный текст  l           11	Шифрование (11 x 07) mod 26    Шифр. Текст 25            Z
Исходный текст  l           11	Шифрование (11 x 07) mod 26    Шифр. Текст 25            Z
Исходный текст  o           14	Шифрование (14 x 07) mod 26    Шифр. Текст 20            U

Мы можем комбинировать аддитивные и мультипликативные шифры, чтобы получить то, что названо аффинным шифром — комбинацией обоих шифров с парой ключей. Первый ключ используется мультипликативным шифром, второй — аддитивным шифром. Рисунок 4.11 доказывает, что афинный шифр — фактически два шифра, применяемые один за другим. Мы могли бы показать только одну комплексную операцию для шифрования или дешифрования, такую, как $$C = (P \times {k_1} + {k_2})\bmod 26$$ и $$P = ((C-{k_2}) \times {k_1}^{ - 1})\bmod 26$$. Однако мы использовали временный результат ( T ) и указали две отдельных операции, показав тем самым, что всякий раз, когда мы используем комбинацию шифров, нужно убедиться, что каждый из них имеет инверсию на другой стороне линии и что они используются в обратном порядке в шифровании и дешифровании. Если сложение — последняя работа в шифровании, то вычитание должно быть первым в дешифровании.

(рис 4.11) Аффинный шифр

При аффинном шифре отношение между исходным текстом P и шифрованным текстом C определяется, как это показано ниже.

C = (P x k1 + k2 ) mod 26   P = ((C – k2) x k1-1) mod 26
где k1-1 мультипликативная инверсия k1, а(– k2)–аддитивная инверсия k2

Пример 4.9

Аффинный шифр использует пару ключей, в которой первый ключ из Z26*, а второй — из Z26. Область существования ключей равна $$26 \times 12 = 312 $$.

Пример 4.10

Используйте аффинный шифр, чтобы зашифровать сообщение "hello" с ключевой парой (7, 2).

Решение

Мы используем 7 для мультипликативного ключа и 2 для аддитивного ключа. Получаем "ZEBBW".

P:  h           07	Шифрование (07 x 07+2) mod 26   C: 25            Z
P:  e           04	Шифрование (04 x 07+2) mod 26   C: 04            E
P:  l           11	Шифрование (11 x 07+2) mod 26   C: 01            B
P:  l           11	Шифрование (11 x 07+2) mod 26   C: 01            B
P:  o           14	Шифрование (14 x 07+2) mod 26   C: 22            W

Пример 4.11

Используйте аффинный шифр, чтобы расшифровать сообщение "ZEBBW" с ключевой парой (7, 2) в модуле 26.

Решение

Чтобы найти символы исходного текста, прибавим аддитивную инверсию от $$(-2) \equiv 24\left( {\bmod 26} \right)$$ к полученному зашифрованному тексту. Потом умножим результат на мультипликативную инверсию от $${7^{ - 1}} \equiv 15\left( {\bmod 26} \right) $$. Поскольку 2 имеет аддитивную инверсию в Z26 и 7 имеет мультипликативную инверсию в Z26*, исходный текст — точно тот, что мы использовали в примере 4.10.

C: 25  ->    Z	Дешифрование (07 x 07 - 2) mod 26     P: 07  ->    h         
C: 04  ->    E	Дешифрование (04 x 07 - 2) mod 26     P: 04  ->    e          
C: 01  ->    B	Дешифрование (11 x 07 - 2) mod 26     P: 11  ->    l
C: 01  ->    B	Дешифрование (11 x 07 - 2) mod 26     P: 11  ->    l           
C: 22  ->    W	Дешифрование (14 x 07 - 2) mod 26     P: 14  ->    o

Пример 4.12

Аддитивный шифр — частный случай аффинного шифра, при котором k1 = 1. Мультипликативный шифр — частный случай аффинного шифра, в котором k2 = 0.

Криптоанализ аффинного шифра

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

PWUFFOGWCHFDWIWEJOUUNJORSMDWRHVCMWJUPVCCG

Ева также очень ненадолго получает доступ к компьютеру Алисы и время, достаточное лишь для того, чтобы напечатать исходный текст с двумя символами: "et". Тогда она пробует зашифровать короткий исходный текст, используя два различных алгоритма, потому что не уверена, какой из них является аффинным шифром.

Для того чтобы найти ключ, Ева использует следующую стратегию:

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

e -> W	04 -> 22	(04 x k1+k2) = 22 (mod 26)
t- -> C     19 -> 02	(19 x k1+k2) = 02 (mod 26)

Как мы узнали в лекции 4, эти два уравнения сравнения могут быть решены (могут быть найдены значения k1, и k2 ). Однако этот ответ неприемлем, потому что k1 = 16 не может быть первой частью ключа. Его значение, 16, не имеет мультипликативной инверсии в Z26*.

$$\left( \begin{array}{c} k_{1} \\ k_{2} \end{array} \right) = {\left( \begin{array}{cc} 4 1 \\ 19 1 \end{array} \right)^{ - 1}} \cdot \left( \begin{array}{c} 22 \\ 2 \end{array} \right) = \left( \begin{array}{cc} 19 7 \\ 3 24 \end{array} \right) \cdot \left( \begin{array}{c} 22 \\ 2 \end{array} \right) = \left( \begin{array}{c} 161 \\ 10 \end{array} \right) \to {k_1} = 16{\text{ }}{k_2} = 10$$

b. Ева теперь пробует использовать результат второго набора данных:

e -> W	04 -> 22	(04 x k1+k2) = 22 (mod 26)
t- -> C     19 -> 05	(19 x k1+k2) = 05 (mod 26)

Квадратная матрица и ее инверсия — те же самые, что и в предыдущем примере. Теперь Ева получает k1 = 11 и k2 = 4, эта пара является приемлемой, потому что k1 имеет мультипликативную инверсию в Z26*. Она пробует пару ключей (19, 22), которые являются инверсией пары (11, 4), и расшифровывает сообщение. Исходный текст

Best time of the year is spring when flower bloom
Самое лучшее время года — весна, когда цветут цветы

Моноалфавитный шифр подстановки

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

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

(рис 4.12) Пример ключа для моноалфавитного шифра подстановки

Пример 4.13

Мы можем использовать ключ, показанный на рисунке 4.12, чтобы зашифровать сообщение

This message is easy to encrypt but hard to find the key
(это сообщение просто зашифровать, но трудно найти ключ, которым зашифрован текст)

Зашифрованное сообщение имеет вид

ICFVQRVVNEFVRNVSIYRGAHSLIOJICNHTIYBFGTICRXRS

Криптоанализ

Размер ключевого пространства для моноалфавитного шифра подстановки — число перестановок из 26, т.е. 26! (почти $$4 \times {10^{26}}$$ ). Это делает атаку грубой силы чрезвычайно трудной для Евы, даже если она использует мощный компьютер. Однако она может применить статистическую атаку, основанную на частоте символов. Шифр не изменяет частоту употребления символов.

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

Многоалфавитные шифры

В многоалфавитной подстановке каждое появление символа может иметь различную замену. Отношения между символом в исходном тексте и символом в зашифрованном тексте — "один ко многим". Например, "a" может быть зашифровано как "D" в начале текста, но как "N" — в середине. Многоалфавитные шифры имеют преимущество: они скрывают частоту появления символа основного языка. Ева не может использовать статистическую частоту отдельного символа, чтобы взломать зашифрованный текст.

Чтобы создать многоалфавитный шифр, мы должны сделать каждый символ зашифрованного текста зависящим от соответствующего символа исходного текста и позиции символа исходного текста в сообщении. Это подразумевает, что наш ключ должен быть потоком подключей, в которых каждый подключ так или иначе зависит от позиции символа исходного текста, который используется для выбора подключа шифрования. Другими словами, мы должны иметь ключевой поток k = (k1, k2, k3.….), в котором ki применяется, чтобы зашифровать i -тый символ в исходном тексте и создать i -тый символ в зашифрованном тексте.

Автоключевой шифр

Чтобы понять зависимость ключа от позиции, обсудим простой многоалфавитный шифр, названный "автоключевым". В этом шифре ключ — поток подключей, в котором каждый подключ используется, чтобы зашифровать соответствующий символ в исходном тексте. Первый подключ — определенное заранее значение, тайно согласованное Алисой и Бобом. Второй подключ — значение первого символа исходного текста (между 0 и 25 ). Третий — i -тое значение второго исходного текста. И так далее.

P = P1 P2 P3…..	
C = C1 C2 C3…..	
K = (k1,P1, P2, P3,…..)
Шифрование Ci = (Pi + ki) mod 26          
Дешифрование Pi = (Ci – ki) mod 26

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

Пример 4.14

Предположим, что Алиса и Боб согласились использовать автоключевой шифр с начальным ключевым значением k1 = 12. Теперь Алиса хочет передать Бобу сообщение "Attack is today" ("Атака — сегодня"). Шифрование проводится символ за символом. Каждый символ в исходном тексте сначала заменяется его значением целого числа, как показано на рис. 4.8, первый подключ прибавляется, чтобы создать первый символ зашифрованного текста. Остальная часть ключа создается по мере чтения символов исходного текста. Обратите внимание, что шифр является многоалфавитным, потому что эти три появления "a" в исходном тексте зашифрованы различно. Три возникновения "t" также зашифрованы различно.

Исходный текстa t t a c k i s t o d a y
Значения P00 19 19 00 02 10 08 18 19 14 03 00 24
Поток ключей12 00 19 19 00 02 10 08 18 19 14 03 00
Значения C12 19 12 19 02 12 18 00 11 07 17 03 24
Зашифрованный текстM T M T C M S A L H R D Y

Криптоанализ

Автоключевой шифр действительно скрывает статистику частоты отдельного символа. Однако он так же уязвим при атаке с помощью грубой силы, как и аддитивный шифр. Первый подключ может быть только одним из 25 значений (1 - 25). Мы нуждаемся в многоалфавитных шифрах, которые не только скрывают характеристики языка, но и имеют большие множества ключей.

Шифр Плейфера

Другой пример многоалфавитного шифра — Шифр Плейфера, использовавшийся британской армией в течение Первой мировой войны. Ключ засекречивания в этом шифре сделан из 25 букв алфавита, размещенных в матрице $$5 \times 5$$ (буквы I и J рассматриваются при шифровании как одинаковые). С помощью различных соглашений о размещении букв в матрице можно создать много различных ключей засекречивания. Одно из возможных соглашений показано на рисунке 4.13.

(рис 4.13) Пример секретного ключа Плейфера

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

Шифр использует три правила для шифрования:

a. если эти две буквы-пары расположены в одной и той же строке таблицы ключа засекречивания, соответствующий зашифрованный символ для каждой буквы — следующий символ справа в той же самой строке (с возвращением к началу строки; если символ исходного текста — последний символ в строке);

b. если эти две буквы-пары расположены в одном и том же столбце таблицы ключа засекречивания, соответствующий зашифрованный символ для каждой буквы — символ ниже этого в том же самом столбце (с возвращением к началу столбца; если символ исходного текста — последний символ в столбце);

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

Шифр Плейфера соответствует нашим критериям для многоалфавитного шифра. Ключ — поток подключей, в котором они создаются по два одновременно. В шифре Плейфера поток ключей и поток шифра — те же самые. Это означает, что вышеупомянутые правила можно представить как правила для создания потока ключей. Алгоритм кодирования берет пару символов из исходного текста и создает пару подключей, следуя указанным правилам. Мы можем сказать, что поток ключей зависит от позиции символа в исходном тексте. Зависимость от позиции имеет здесь различную интерпретацию: подключ для каждого символа исходного текста зависит от следующего или предыдущего "соседа". Рассматривая шифр Плейфера, таким образом, можно сказать, что зашифрованный текст — это фактически поток ключей.

P = P1P2P3…..	
C = C1C2C3…..	
k = [(k1,k2), (k3,k4),…..]
Шифрование Ci =  ki                
Дешифрование Pi = ki

Пример 4.15

Пусть нам надо зашифровать исходный текст "hello", использующий ключи на рис. 4.13. Когда мы группируем буквы по парам, мы получаем "he, ll,o". Мы должны вставить x между двумя l (эль), после чего получим "he, lx, lo". Мы имеем

he -> EC	   lx -> QZ	    lo -> BX
Исходный текст: hello        Зашифрованный текст:  ECQZBX

Мы можем видеть из этого примера, что наш шифр — фактически многоалфавитный шифр: два появления l (эль) зашифрованы как "Q" и "B".

Криптоанализ шифра Плейфера

Очевидно, атака грубой силы шифра Плейфера очень трудна. Размер домена — 25! (факториал 25 ). Кроме того, шифровка скрывает частоту отдельных букв.

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

Шифр Виженера

Один интересный вид многоалфавитного шифра был создан Блезом де Виженером, французским математиком шестнадцатого столетия. Шифр Виженера использует различную стратегию создания потока ключей. Поток ключей — повторение начального потока ключа засекречивания длины m, где мы имеем 1 < m < 26. Шифр может быть описан следующим образом: (k1, k2, …., km) — первоначальный ключ засекречивания, согласованный Алисой и Бобом.

P = P1P2P3…..	
C = C1C2C3…..	
k = [(k1,k2), (k3,k4),…..]
Шифрование Ci =  ki                
Дешифрование Pi = ki

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

Пример 4.16

Посмотрим, как мы можем зашифровать сообщение "She is listening (Она слушает) ", используя ключевое слово на 6 символов "PASCAL". Начальный поток ключей — это (15, 0, 18, 2, 0, 11). Поток ключей — повторение этого начального потока ключей (столько раз, сколько необходимо).

Исходный текстs h e i s l i s t e n i n g
Значения P18 07 04 08 18 11 08 18 19 04 13 08 13 06
Поток ключей15 00 18 02 00 11 15 00 18 02 00 11 15 00
Значения C07 07 22 10 18 22 23 18 11 6 13 19 02 06
Шифрованный текстH H W K S W X S L G N T C G

Пример 4.17

Шифр Виженера может рассматриваться как комбинации аддитивных шифров. Рисунок 4.14 показывает, что исходный текст предыдущего примера можно рассматривать как состоящий из нескольких частей по шесть элементов в каждом (хотя в одном не хватило букв исходного текста), где каждый из элементов зашифрован отдельно. Рисунок поможет нам позже понять криптоанализ шифров Виженера. Имеется m частей исходного текста, каждый зашифрован различным ключом, чтобы разделить зашифрованный текст на m. частей.

Пример 4.18

Разобрав пример 4.18, мы убедимся, что аддитивный шифр — частный случай шифра Виженера, в котором m = 1.

Список Виженера

Другой способ рассмотрения шифров Виженера — с помощью того, что названо списком Виженера (Vigenere tableau) и показано в таблице 4.3.

(рис 4.14) Шифр Виженера как комбинация аддитивных шифров
Список Виженера
a b c d e f g h i j k l m n o p q r s t u v w x y z
AA B C D E F G H I J K L M N O P Q R S T U V W X Y Z
BB C D E F G H I J K L M N O P Q R S T U V W X Y Z A
CC D E F G H I J K L M N O P Q R S T U V W X Y Z A B
DD E F G H I J K L M N O P Q R S T U V W X Y Z A B C
EE F G H I J K L M N O P Q R S T U V W X Y Z A B C D
FF G H I J K L M N O P Q R S T U V W X Y Z A B C D E
GG H I J K L M N O P Q R S T U V W X Y Z A B C D E F
HH I J K L M N O P Q R S T U V W X Y Z A B C D E F G
II J K L M N O P Q R S T U V W X Y Z A B C D E F G H
JJ K L M N O P Q R S T U V W X Y Z A B C D E F G H I
KK L M N O P Q R S T U V W X Y Z A B C D E F G H I J
LL M N O P Q R S T U V W X Y Z A B C D E F G H I J K
MM N O P Q R S T U V W X Y Z A B C D E F G H I J K L
NN O P Q R S T U V W X Y Z A B C D E F G H I J K L M
OO P Q R S T U V W X Y Z A B C D E F G H I J K L M N
PP Q R S T U V W X Y Z A B C D E F G H I J K L M N O
QQ R S T U V W X Y Z A B C D E F G H I J K L M N O P
RR S T U V W X Y Z A B C D E F G H I J K L M N O P Q
SS T U V W X Y Z A B C D E F G H I J K L M N O P Q R
TT U V W X Y Z A B C D E F G H I J K L M N O P Q R S
UU V W X Y Z A B C D E F G H I J K L M N O P Q R S T
VV W X Y Z A B C D E F G H I J K L M N O P Q R S T U
WW X Y Z A B C D E F G H I J K L M N O P Q R S T U V
XX Y Z A B C D E F G H I J K L M N O P Q R S T U V W
YY Z A B C D E F G H I J K L M N O P Q R S T U V W X
ZZ A B C D E F G H I J K L M N O P Q R S T U V W X Y

Первая строка показывает символы исходного текста, который будет зашифрован. Первая колонка содержит столбец символов, которые используются ключом. Остальная часть таблицы показывает символы зашифрованного текста. Чтобы найти зашифрованный текст для исходного текста "she listening", используя слово "PASCAL" как ключ, мы можем найти "s" в первой строке, "P" в первом столбце, на пересечении строки и столбца — символ из зашифрованного текста "H". Находим "h" в первой строке и "A" во втором столбце, на пересечении строки и столбца — символ "H" из зашифрованного текста. И повторяем те же действия, пока все символы зашифрованного текста не будут найдены.

Криптоанализ шифра Виженера

Шифры Виженера, подобно всем многоалфавитным шифрам, не сохраняют частоту символов. Однако Ева может использовать некоторые методы для того, чтобы расшифровать перехваченный зашифрованный текст. Криптоанализ в данном случае состоит из двух частей: находят длину ключа и потом непосредственно находят ключ.

  • Были изобретены несколько методов, чтобы найти длину ключа. Один метод рассмотрим ниже. В так называемом тесте Казиского (Kasiski) криптоаналитик в зашифрованном тексте ищет повторные сегменты по крайней мере из трех символов. Предположим, что найдены два сегмента, и расстояние между ними d. Криптоаналитик предполагает, что m делит d, где m — длина ключа. Если можно найти больше повторных сегментов с расстоянием d1, d2, …., dn, тогда НОД(d1, d2, …., dn....)/ m. Это предположение логично, потому что если два символа одинаковы и $$-k \times m$$ (k = 1, 2...) — символы, выделенные в исходном тексте, то одинаковы и $$k \times m$$ символы, выделенные в зашифрованном тексте. Криптоаналитик использует сегменты по крайней мере из трех символов, чтобы избежать случаев, где символы имеют один и тот же ключ. Пример 4.20 может помочь нам п онять эти рассуждения.
  • После того как длина ключа была найдена, криптоаналитик использует идею, показанную в примере 4.18. Здесь зашифрованный текст делится на m различных частей и применяется метод, используемый в криптоанализе аддитивного шифра, включая атаку частоты. Каждая часть зашифрованного текста может быть расшифрована и соединена с другими, чтобы создать целый исходный текст, другие слова. Весь зашифрованный текст не сохраняет частоту отдельной буквы исходного текста, но каждая часть делает это.
  • Пример 4.19

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

    LIOMWGFEGGDVWGHHCQUCRHRWAGWIOWQLKGZETKKMEVLWPCZVG'TH VTSGXQOVGCSVETQLTJSUMVWVEUVLXEWSLGFZMVVWLGYHCUSWXQH - KVGSHEEVFLCFDGVSUMPHKIRZDMPHHBVWVWJWIXGFWLTSHGJOUEEHH- VUCFVGOWICQLIJSUXGLW

    Тест Казиского на повторение сегментов на три символа приводит к результатам, показанным в таблице 4.4.

    Тест Казиского для примера 4.19
    Комбинация Первое расстояние Второе расстояние Разность
    JSU 68 168 100
    SUM 69 117 48
    VWV 72 132 60
    MPH 119 127 8

    Наибольший делитель - 4, что означает длину ключа, пропорциональную 4. Сначала пробуем m = 4. Делим зашифрованный текст на четыре части. Часть C1 состоит из символов 1, 5, 9...; часть C2 состоит из символов 2, 6, 10..., и так далее. Используем статистическую атаку каждой части отдельно. Перебираем расшифровывающиеся части по одному символу одновременно, чтобы получить целый исходный текст.

    С1 LWGW CRAO KTEP GTQC TJVU EGVG UQGE CVPR PVJG TJEU GCJG
    P1 jueu apym ircn eroa rhts thin ytra hcie ixst hcar rehe
    C2 IGGG QHGW GKVC TSOS QSWV WFVY SHSV FSHZ HWWF SOHC OQSL
    P2 usss ctsl swho feae ceih cete soec atnp nkhe rhck esex
    C3 OFDN URWQ ZKLZ HGVV LUVL SZWH WKHF DUKD HVIW HUHF WLUW
    P3 lcae rotn whiw edss irsi irh eteh retl tiid eatr airt
    C4 MEVN CWIL EMWV VXGE TMEX LMLC XVEL GMIM BWHL GEVV ITX
    P4 iard yseh aisr rtca piaf pwte thec arha esft erec tpt

    Если исходный текст не имеет смысла, попробуем с другим m.

    В рассматриваемом случае исходный текст имеет смысл (читаем по столбцам).

    Julius Caesar used a cryptosystem in his wars, which is now referred to as Caesar chipper. It is an additive chipper with the key set to three. Each character in the plaintext is shift three characters to create ciphertext.

    Перевод этого текста приведен ниже.

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

    Шифр Хилла

    Другой интересный пример многоалфавитного шифра — шифр Хилла, изобретенный Лестером С. Хиллом. В отличие от других многоалфавитных шифров, которые мы уже рассмотрели, здесь исходный текст разделен на блоки равного размера. Блоки зашифрованы по одному таким способом, что каждый символ в блоке вносит вклад в шифрование других символов в блоке. По этой причине шифр Хилла принадлежит к категории шифров, названных блочными шифрами. Другие шифры, которые мы изучали до сих пор, принадлежат к категории, называемой шифры потока. Отличие между шифрами блока и шифрами потока обсуждаются в конце этой лекции.

    В шифре Хилла ключ — квадратная матрица размера $$m \times m$$., в котором m. является размером блока. Если мы вызываем ключевую матрицу K, то каждый элемент ki,j определяется матрицей, как показано на рис. 4.15.

    (рис 4.15) Ключ в шифре Хилла

    Покажем, как получается один блок зашифрованного текста. Если мы обозначим m символов блоков исходного текста P1, P2 ..., Pm, соответствующие символы в блоках зашифрованного текста будут C1, C2 , ..., Cm. Тогда мы имеем

    C1 = P1k11+P2k21+……+Pmkm1
    C2 = P1k12+P2k22+……+Pmkm2
    ………………………………………………………
    Cm = P1k1m+ P2k2m +……+ Pmkmm

    Уравнения показывают, что каждый символ зашифрованного текста, такой, как C1, зависит от символов всего исходного текста в блоке (P1, P2,..., Pm). Однако мы должны знать, что не все квадратные матрицы имеют мультипликативные инверсии в Z26, так что Алиса и Боб должны быть осторожны в выборе ключа. Боб не сможет расшифровать зашифрованный текст, передаваемый Алисой, если матрица не имеет мультипликативной инверсии.

    Ключевая матрица в шифре Хилла должна иметь мультипликативную инверсию.

    Пример 4.20

    Использование матриц позволяет Алисе зашифровать весь исходный текст. В этом случае исходный текст $$-l \times m$$ — матрица, в которой l является номером блоков. Например, исходный текст "code is ready" ("код готов"), может быть представлен как матрица $$3 \times 4$$ при добавлении дополнительного фиктивного символа "z" к последнему блоку и удалении пробелов; зашифрованный текст выглядит как "OHKNIHGKLISS". Боб может расшифровать сообщение, используя инверсную матрицу-ключ. Шифрование и дешифрование показано на рис. 4.16.

    (рис 4.16) Пример 4.20

    Криптоанализ шифров Хилла

    Криптоанализ только для зашифрованного шифрами Хилла текста труден. Во-первых, атака грубой силы при шифре Хилла чрезвычайно сложна, потому что матрица-ключ — $$m \times m$$. Каждый вход может иметь одно из 26 значений. Во-первых, это означает размер ключа $${26^{m \times m}}$$. Однако, не все матрицы имеют мультипликативную инверсию. Поэтому область существования ключей все же не такая огромная.

    Во-вторых, шифры Хилла не сохраняют статистику обычного текста. Ева не может провести анализ частоты отдельных букв из двух или трех букв. Анализ частоты слов размера m мог бы cработать, но очень редко исходный текст имеет много одинаковых строк размера m. Ева, однако, может провести атаку на шифр, используя метод знания исходного текста, если она знает значение m и знает пары "исходный текст/зашифрованный текст", по крайней мере m блоков. Блоки могут принадлежать тому же самому сообщению или различным сообщениям, но должны быть различны. Ева может создать две $$m \times m$$. матрицы, P (обычный текст) и C (зашифрованный текст), в котором соответствующие строки представляют известные пары обычного/зашифрованного текста. Поскольку C = PK, Ева может использовать отношения K = CP-1, чтобы найти ключ, если P является обратимым. Если P не является обратимым, то Ева должна задействовать различные наборы m пар обычного/зашифрованного текста.

    Если Ева не знает значение m, она может попробовать различные значения при условии, что m не является очень большим.

    Пример 4.21

    Предположим, что Ева знает, что m = 3. Она перехватила три пары блока исходного/зашифрованного текста (не обязательно из того же самого сообщения), как показано на рис. 4.17.

    (рис 4.17) Пример 4.22, формирования шифра зашифрованного текста

    Она составляет матрицы P и C из этих пар. Поскольку в данном случае матрица P обратима, она инвертирует эту матрицу и умножает ее на C, что дает матрицу ключей K, как это показано на рис. 4.18.

    (рис 4.18) Пример 4.22, поиска ключа

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

    Одноразовый блокнот

    Одна из целей криптографии — идеальная секретность. Исследования Шеннона показали, что идеальная секретность может быть достигнута, если символы исходного текста зашифрованы с помощью ключа, выбранного случайно из некоторой области ключей. Например, аддитивный шифр может быть легко взломан, потому что используется один и тот же ключ. Но даже и этот шифр может быть идеальным, если ключ, который применяется для шифрования каждого символа, выбран случайно из множества ключей (00, 01, 02.... 25): если первый символ зашифрован с помощью ключа 04, второй символ — с помощью ключа 02, третий — с помощью ключа 21, и так далее. Атака "только для зашифрованного текста" становится невозможна. Если передатчик изменяет ключ, используя каждый раз иную случайную последовательность целых чисел, другие типы атак также будут невозможны.

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

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

    Роторный шифр

    Хотя шифры одноразового блокнота не применяются на практике, один шаг от него к более защищенному шифру — роторный шифр. Он возвращается к идее моноалфавитной подстановки, но меняет принцип отображения исходного текста в символы зашифрованного текста для каждого символа исходного текста. Рисунок 4.19 показывает упрощенный пример роторного шифра.

    (рис 4.19) Роторный шифр

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

    Начальная установка (позиция) ротора — ключ засекречивания между Алисой и Бобом — это зашифрованный первый символ исходного текста. Используя начальную установку, второй символ зашифрован после того, как проведено первое вращение (на рис. 4.19 — это поворот на 1/6 круга, на реальной установке — поворот на 1/26 ), и так далее.

    Слово с тремя буквами, такими как "bee", зашифровано как "BAA", если ротор неподвижен (моноалфавитный шифр подстановки), но оно будет зашифровано как "BCA", если он вращается (роторный шифр). Это показывает, что роторный шифр — многоалфавитный шифр, потому что два появления того же самого символа исходного текста зашифрованы как различные символы.

    Роторный шифр является стойким к атаке грубой силы, как моноалфавитный шифр подстановки, потому что Ева должна найти первое множество отображений среди возможных 26! (факториал). Роторный шифр является намного более стойким к статистической атаке, чем моноалфавитный шифр подстановки, потому что в нем не сохраняется частота употребления буквы.

    Машина "Энигма"

    Машина "Энигма" была первоначально изобретена в Сербии, но была изменена специалистами немецкой армии и интенсивно использовалась в течение Второй Мировой Войны. Машина базировалась на принципе шифров ротора. Рисунок 4.20 показывает упрощенную схему построения машины.

    (рис 4.20) Примерное построение Машины Энгима

    Ниже перечислены главные компоненты машины.

  • Клавиатура с 26 -ю ключами, используемыми для того, чтобы вводить исходный текст при шифровании, и для того, чтобы вводить зашифрованный текст при расшифровке.
  • Ламповая панель с 26 -ю лампами, которая показывает символы зашифрованного текста при шифровании и символы исходного текста при дешифровании.
  • Коммутационная панель с 26 -ю штепселями, вручную подключенными 13 -ю проводами. Конфигурация изменяется каждый день, чтобы обеспечить различное скрэмблирование.
  • Три замонтированных ротора, такие же как рассмотренные в предыдущей секции. Эти три ротора выбираются ежедневно из пяти доступных роторов. Быстрый ротор вращается на 1/26 поворота при каждом символе, введенном с помощью клавиатуры. Средний ротор делает 1/26 поворота при каждом полном повороте быстрого ротора. Медленный ротор делает 1/26 поворота для каждого законченного поворота среднего ротора.
  • Отражатель, который является постоянным и предварительно замонтированным.
  • Кодовая книга — справочник шифров

    Чтобы использовать "Энигму", была издана кодовая книга, которая в течение каждого дня дает несколько параметров настройки, включая:

    a. три ротора, которые должны быть выбраны из пяти доступных;

    b. порядок, в котором эти роторы должны быть установлены;

    c. параметры установок для коммутационной панели;

    d. код с тремя буквами дня.

    Процедура шифровавшая Сообщения

    Чтобы зашифровать сообщение, оператор должен последовательно сделать шаги, перечисленные ниже:

  • установить стартовую позицию роторов согласно коду дня. Например, если код был "HUA", роторы должны быть инициализированы на "H", "U" и "A" соответственно;
  • выбрать случайный код с тремя буквами, например ACF. Зашифровать текст "ACFACF" (повторный код), используя начальную установку роторов шага 1. Например, предположим, что зашифрованный код — "OPNABT" ;
  • установить стартовые позиции роторов к OPN (половина зашифрованного кода);
  • добавить зашифрованные шесть букв, полученных на шаге 2 ( "OPNABT" ), в конец к начальному сообщению;
  • зашифровать сообщение, включая код с 6 -ю буквами. Передать зашифрованное сообщение.
  • Процедура для расшифровки сообщения

    Чтобы расшифровывать сообщение, оператор должен сделать следующие шаги:

  • получить сообщение и отделить первые шесть букв;
  • установить стартовую позицию роторов согласно коду дня;
  • расшифровать первые шесть букв писем, используя начальную установку шага 2 ;
  • установить позиции роторов на первую половину расшифрованного кода;
  • расшифровать сообщение (без первых шести букв).
  • Криптоанализ

    Мы знаем, что "Энигма" во время войны была взломана, хотя германская армия и остальная часть мира не знала об этом факте еще несколько десятилетий после того. Вопрос: как такой сложный шифр был атакован? Хотя немецкий язык весьма сложен, союзники, так или иначе, получили некоторые копии машин. Следующим шагом был поиск параметров установки в течение каждого дня и кода, передаваемого для инициализации роторов для каждого сообщения. Изобретение первого компьютера помогло союзникам преодолеть эти трудности. Подробное изображение машины "Энигма" и ее криптоанализ может быть найден на сайтах, посвященных этой машине.

    4.3. Шифры перестановки

    Шифр перестановки не заменяет одним символом другой, вместо этого он изменяет местоположение символов. Символ в первой позиции исходного текста может появиться в десятой позиции зашифрованного текста. Символ, который находится в восьмой позиции исходного текста, может появиться в первой позиции зашифрованного текста. Другими словами, шифр перестановки ставит в другом порядке (перемещает) символы.

    Шифр перестановки меняет порядок следования символов.

    Шифры перестановки без использования ключа

    Простые шифры перестановки, которые применялись в прошлом, не использовали ключ. Есть два метода для перестановки символов. В первом методе текст записывается в таблице столбец за столбцом и затем передаётся строка за строкой. Во втором методе текст написан в таблицы строка за строкой и затем передаётся столбец за столбцом.

    Пример 4.22

    Хороший пример шифра без использования ключа — шифр изгороди (rail fence cipher). В этом шифре исходный текст размещен на двух линиях как зигзагообразный шаблон (что может рассматриваться как столбец за столбцом таблицы, которая имеет две строки); зашифрованный текст составляется при чтении шаблона строка за строкой. Например, чтобы передать сообщение "Meet me at the park" ( "Встречай меня в парке" ), Алиса пишет Бобу:

    Алиса создает зашифрованный текст "MEMATEAKETETHPR", посылая первую строку, сопровождаемую второй строкой. Боб получает зашифрованный текст и разделяет его пополам (в этом случае вторая половина имеет на один символ меньше). Первая половина формы — первая строка; вторая половина — вторая строка. Боб читает результат по зигзагу. Поскольку нет никакого ключа и номер строк установлен ( 2 ), криптоанализ зашифрованного текста был бы очень прост для Евы. Все, что она должна знать, — это то, что используется шифр изгороди.

    Пример 4.23

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

    Алиса создает зашифрованный текст "MMTAEEHREAEK TTP", передавая символы столбец за столбцом. Боб получает зашифрованный текст и применяет обратный процесс. Он пишет полученное сообщение столбец за столбцом и читает его строка за строкой как исходный текст. Ева может легко расшифровать сообщение, если она знает число столбцов.

    Пример 4.24

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

    Второй символ в исходном тексте передвинулся на пятую позицию в зашифрованном тексте; третий символ передвинулся на девятую позицию; и так далее. Хотя символы переставлены, они сами являются шаблонами: (01, 05, 09, 13), (02, 06, 10, 14), (03, 07, 11, 15) и (04, 08, 12). В каждой секции разность между двумя смежными номерами — 4.

    Ключевые шифры перестановки

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

    Пример 4.25

    Алиса должна передать Бобу сообщение "Enemy attacks tonight" ( "Вражеские атаки сегодня вечером" ). Алиса и Боб согласились разделить текст на группы по пять символов и затем переставить символы в каждой группе. Ниже показана группировка после добавления фиктивного символа в конце, чтобы сделать последнюю группу одинаковой по размеру с другими.

    Enemy atttac kston ightz

    Ключ, используемый для шифрования и дешифрования, — ключ перестановки, который показывает, как переставлять символы. Для этого сообщения примем, что Алиса и Боб использовали следующий ключ:

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

    EEMYN TAACT TKONS HITZG

    Алиса передает зашифрованный текст "EEMYNTAACTTKONSHITZG" Бобу. Боб делит зашифрованный текст на группы по 5 символов и, используя ключ в обратном порядке, находит исходный текст.

    Объединение двух подходов

    Современные шифры перестановки, чтобы достигнуть лучшего скремблирования, объединяют два подхода. Шифрование и дешифрование делается в три шага. Первый: текст пишется таблицей строка за строкой. Второй: делается перестановка, изменяя порядок следования столбцов. Третий: столбец за столбцом читается новая таблица. Первые и третьи шаги обеспечивают бесключевое глобальное изменение порядка следования; второй шаг обеспечивает блочную ключевую перестановку. Эти типы шифров упоминаются часто как ключевые шифры перестановки столбцов.

    Пример 4.26

    Предположим, что Алиса снова зашифровывает сообщение в примере 4.25, на сей раз используя объединенный подход. Шифрование и дешифрование показано на рис. 4.21.

    (рис 4.21) Пример 4.27

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

    Ключи

    В примере 4.27 единственный ключ использовался в двух направлениях для изменения порядка следования столбцов — вниз для шифрования, вверх для дешифрования. Обычно принято создавать два ключа для этого графического представления: один для шифрования и один для дешифрования. Ключи накапливаются в таблицах, имеющих один адрес (вход) для каждого столбца. Вход содержит исходный номер столбца — номер столбца пункта назначения, указывающий его положение от номера входа. Рисунок 4.22 показывает, как эти две таблицы могут быть созданы с помощью графического представления ключа.

    (рис 4.22) Шифрование / дешифрование в шифре перестановки

    Ключ шифрования — (3 1 4 5 2). Первый вход показывает, что столбец 3 (содержание) в источнике становится столбцом 1 (положение или индекс входа) в пункте назначения. Ключ дешифрования — (2 5 1 3 4). Первый вход показывает, что столбец 2 в источнике становится столбцом 1 в пункте назначения.

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

    (рис 4.23) Инверсия ключа в шифре перестановки

    Использование матриц

    Мы можем использовать матрицы, чтобы показать процесс шифрования/дешифрования для шифра перестановки. Исходный текст и зашифрованный текст — матрица $$l \times m$$., представляющая числовые значения символов; ключи — квадратные матрицы размера $$m \times m$$. В матрице перестановки каждая строка или столбец имеют строго одну единицу (1), и остальная часть значений — нули (0). Шифрование выполняется умножением матрицы исходного текста на ключевую матрицу, чтобы получить матрицу зашифрованного текста; дешифрование выполняется умножением зашифрованного текста на инверсию ключевой матрицы, после чего получаем исходный текст.

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

    Пример 4.27

    Рисунок 4.24 показывает процесс шифрования. Умножение матрицы $$4 \times 5$$ исходного текста на ключевую матрицу шифрования $$5 \times 5$$ дает матрицу зашифрованного текста $$4 \times 5$$. Матричная манипуляция требует изменения символов в примере 4.27 к их числовым значениям (от 00 до 25 ). Обратите внимание, что матричное умножение обеспечивает только перестановку столбцов; чтение и запись в матрицу должны быть обеспечены остальной частью алгоритма.

    (рис 4.24) Представление ключа в виде матрицы в шифре перестановок

    Криптоанализ шифров перестановки

    Шифры перестановки уязвимы к нескольким видам атак только для зашифрованного текста.

    Статистическая атака

    Шифр перестановки не изменяет частоту букв в зашифрованном тексте; он только переставляет буквы. Так что первая атака, которая может быть применена, - анализ частоты отдельной буквы. Этот метод может быть полезен, если длина зашифрованного текста достаточно большая. Мы такую атаку рассматривали раньше. Однако шифры перестановки не сохраняют частоту пар и триграмм. Это означает, что Ева не может использовать такие инструментальные средства. Фактически, если шифр не сохраняет частоту пар и триграмм, но сохраняет частоту отдельных букв, то вероятнее всего, что это шифр перестановки.

    Атака грубой силы

    Ева, чтобы расшифровать сообщение, может попробовать все возможные ключи. Однако число ключей может быть огромно 1! + 2! + 3! + … + L!, где L — длина зашифрованного текста. Лучший подход состоит в том, чтобы попробовать отгадать число столбцов. Ева знает, что число столбцов делится на L. Например, если длина шифра — 20 символов, то $$20 = 1 \times 2 \times 2 \times 5$$. Это означает, что номером столбцов может быть комбинация этих коэффициентов (1, 2, 4, 5, 10, 20). Однако только один столбец и только одна строка — маловероятные варианты.

    Пример 4.28

    Предположим, что Ева перехватила сообщение зашифрованного текста "EEMYNTAACTTKONSHITZG". Длина сообщения L = 20, число столбцов может быть 1, 2, 4, 5, 10 или 20. Ева игнорирует первое значение, потому что это означает только один столбец и оно маловероятно.

    a. Если число столбцов — 2, единственные две перестановки — (1,2) и (2, 1). Первое означает, что перестановки не было. Ева пробует вторую комбинацию. Она делит зашифрованный текст на модули по два символа "EE MY NT AA CT TK ON SH IT ZG". Затем она пробует переставлять каждый модуль из них, получая текст "ee ym nt aa tc kt no hs ti gz", который не имеет смысла.

    b. Если номер столбцов — 4, тогда имеется 4! = 24 перестановки. Первая перестановка (1 2 3 4) означает, что не было никакой перестановки. Ева должна попробовать остальные. После испытания всех 23 возможностей Ева находит, что никакой исходный текст при таких перестановках не имеет смысла.

    c. Если число столбцов — 5, тогда есть 5! = 120 перестановок. Первая (1 2 3 4 5) означает отсутствие перестановки. Ева должна попробовать остальные. Перестановка (2 5 13 4) приносит плоды — исходный текст "enemyattackstonightz", который имеет смысл после удаления фиктивной буквы z и добавления пробелов.

    Атака по образцу

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

    1 -й символ в зашифрованном тексте получается из 3 -го символа исходного текста. 2 -й символ в зашифрованном тексте получается из 8 -го символа исходного текста. 20 -й символ в зашифрованном тексте получается из 17 -го символа исходного текста, и так далее. У нас имеются образцы в вышеупомянутом списке. Мы имеем пять групп: (3, 8, 13, 18), (1, 6, 11, 16), (4, 9, 14, 19), (5, 10, 15, 20) и (2, 7, 12, 17). Во всех группах разность между двумя смежными номерами — 5. Эта регулярность может использоваться криптоаналитиком, чтобы взломать шифр. Если Ева знает или может предположить число столбцов (в этом случае оно равняется 5 ), она может преобразовать зашифрованный текст в группы по четыре символа. Перестановка групп может обеспечить ключ к нахождению исходного текста.

    Шифры c двойной перестановкой

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

    Пример 4.29

    Повторим пример 4.26, где использована двойная перестановка. Рисунок 4.25 показывает процесс.

    (рис 4.25) Двойной шифр перестановки

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

    13  16	05  07	03  06	10  20	18  04	10  12	01  09	15  17	08  11	19  02

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

    4.4. Шифры потока и блочные шифры

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

    Шифры потока

    В шифрах потока шифрование делается в один момент времени над одним символом (таким, как буква или бит). Мы имеем поток исходного текста, поток зашифрованного текста и поток ключей. Обозначим исходный поток P, поток зашифрованного текста — C и поток ключей — K.

    P = P1P2P3,…             
    C = C1C2C3,…           
    K = (k1k2k3,…)
    C1 = Ek1(P1)    
    C2 = Ek2(P2) 
    C3 = Ek3(P3)…

    Рисунок 4.26 показывает идею указанного ранее шифра потока. Символы обычного текста принимаются алгоритмом шифрования по одному. Символы зашифрованного текста также создаются по одному в один и тот же момент времени. Ключевой поток может быть создан многими способами. Это может быть поток с заранее определенными значениями; это может быть только одно значение, используемое алгоритмом. Значения могут зависеть от исходного текста или символов зашифрованного текста. Значения могут также зависеть от предыдущих ключевых значений.

    (рис 4.26) Шифр потока

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

    Пример 4.30

    Аддитивные шифры могут быть отнесены к категории шифров потока, в которых ключевой поток является повторным значением ключа. Другими словами, ключевой поток рассматривают как заранее определенный поток ключей или K = (k,k,…k). В этом шифре, однако, каждый символ в зашифрованном тексте зависит только от соответствующего символа в исходном тексте, потому что ключевой поток генерировался независимо.

    Пример 4.31

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

    Пример 4.32

    Шифры Виженера — также шифры потока согласно определению. В этом случае ключ потока — повторение m значений, где m. — размер ключевого слова. Другими словами,

    K = (k1,k2,….km,k1,k2,……km….)

    Пример 4.33

    Мы можем установить критерий для разделения шифров потока, основанных на ключевых потоках. Мы можем сказать, что шифр потока — моноалфавитный шифр, если значение ki не зависит от исходного символа исходного текста в потоке исходного текста; в противном случае шифр является многоалфавитным.

  • Аддитивные шифры являются моноалфавитными, потому что ki в ключевом потоке — зафиксированный (постоянный), он не зависит от позиции символа в исходном тексте.
  • Моноалфавитные шифры подстановки являются явно моноалфавитными шифрами потока, потому что ki не зависит от позиции соответствующего символа в потоке исходного текста, а зависит лишь от значения символа в исходном тексте.
  • Шифры Виженера — многоалфавитные шифры, потому что ki явно зависит от позиции символа исходного текста. Однако зависимость является циклической. Одинаковый ключ для двух символов разделен m позициями.
  • Блочные шифры

    В блочном шифре группа символов исходного текста размера m (m>1) зашифровывается, создавая вместе группу зашифрованного текста одного и того же размера. Основанный на этом определении блочный шифр использует единственный ключ, чтобы зашифровать целый блок, даже если ключ делает перемножение значений. Рисунок 4.27 показывает принципы блочного шифра.

    (рис 4.27) Блочный шифр

    В блочном шифре блок зашифрованного текста зависит от целого блока исходного текста.

    Пример 4.34

    Шифры Плейфера — блочные шифры. Размер блока — m = 2. Два символа зашифрованы вместе.

    Пример 4.35

    Шифры Хилла — блочные шифры. Блок исходного текста размера 2 или больше зашифрован, совместно используя единственный ключ (матрицу). В этих шифрах значение каждого символа в зашифрованном тексте зависит от всех значений символов в исходном тексте. Хотя ключ может быть получен из $$m \times m$$. значений, он рассматривается как единственный ключ.

    Пример. 4.36

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

    Комбинация

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

    4.5. Рекомендованная литература

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

    Книги

    Несколько книг рассматривают классические шифры с симметричным ключом. [Kah96] и [Sin99] дают полную историю этих шифров. [Sti06], [Bar02], [Cou99], [Sta06], [Mao04] и [Garol] приводят хороший анализ технических деталей.

    Сайты

    Нижеследующие сайты дают больше информации о темах, рассмотренных в этой лекции.

  • http://www.cryptogram.org
  • http://www.cdt.org/crypto/
  • http://www.cacr.math.uwaterloo.ca/
  • http://www.acc.stevens.edu/crypto.php
  • http://www.crypto .com/
  • http: // theory.lcs.mit.edu / ~ rivest/crypto-security.html
  • http://www.trincoll.edu/depts/cpsc/cryptography/substitution.html
  • http://hem.passagen.se/tan01/transpo.html
  • http://www.strangehorizons.comy2001/20011008/steganography.shtml
  • 4.6. Итоги

  • Шифрование симметричными ключами использует единственный ключ для шифрования и для дешифрования. Алгоритмы шифрования и дешифрования являются обратными друг друга.
  • Первоначальное сообщение называется исходным текстом. Сообщение, которое передаётся через канал, называется зашифрованным текстом. Чтобы создавать зашифрованный текст из исходного текста, алгоритм шифрования пользуется общедоступным ключом засекречивания. Чтобы создавать исходный текст из зашифрованного текста, используется алгоритм дешифрования тот же самый ключ засекречивания.
  • На основании принципа Керкгоффса, нужно всегда принимать, что противник знает алгоритм шифрования/дешифрования. Устойчивость шифра к атаке должна быть основана только на тайне ключа.
  • Криптоанализ — наука и искусство "взлома" шифров. Есть четыре общих типа атак криптоанализа: атака только на зашифрованный текст, атака по образцу, атака с выборкой исходного текста, атака с выборкой зашифрованного текста.
  • Традиционные шифры с симметричным ключом могут быть разделены на две обширных категории: шифры подстановки и шифры перестановки. Шифр подстановки заменяет один символ другим символом. Шифр перестановки переупорядочивает символы.
  • Шифры подстановки могут быть разделены на две обширных категории: моноалфавитные шифры и многоалфавитные шифры. В моноалфавитной подстановке отношения между символом в исходном тексте и символом в зашифрованном тексте являются непосредственными. В многоалфавитной подстановке отношения между символами в исходном тексте и символами в зашифрованном тексте — "один ко многим".
  • Моноалфавитные шифры включают в себя аддитивные, мультипликативные, аффинные и моноалфавитные шифры подстановки.
  • Многоалфавитные шифры включают в себя шифры: автоключевой, Плейфера, Виженера, Хилла, одноразового блокнота, ротора, и шифры "Энигмы".
  • Шифры перестановки включают в себя: бесключевой, ключевой шифры и шифры с двойной перестановкой.
  • Симметричные шифры могут также быть разделены на две обширных категории: шифры потока и блочные шифры. В шифре потока шифрование и дешифрование одного символа производятся в один момент времени. В блочном шифре символы в блоке зашифрованы вместе. Практически, блоки исходного текста зашифрованы индивидуально, но они используют поток ключей, чтобы зашифровать все сообщение блок за блоком.
  • 4.7. Набор для практики

    Обзорные вопросы

  • Определите шифр с симметричным ключом.
  • Поясните отличия между шифром подстановки и шифром перестановки.
  • Поясните отличия между моноалфавитным и многоалфавитным шифрами.
  • Поясните отличия между шифром потока и блочным шифром.
  • Все ли шифры потока являются моноалфавитными? Поясните.
  • Все ли блочные шифры являются многоалфавитными? Поясните.
  • Перечислите три моноалфавитных шифра.
  • Перечислите три многоалфавитных шифра.
  • Перечислите два шифра перестановки.
  • Перечислите четыре вида атак криптоанализа.
  • Упражнения

  • Маленький частный клуб имеет только 100 членов. Ответьте на следующие вопросы:
  • Сколько ключей засекречивания необходимо иметь, если все члены клуба хотят передавать секретные сообщения друг другу?
  • Сколько ключей засекречивания необходимо, если каждый доверяет президенту клуба? Если один член клуба должен передать сообщение другому, он сначала передает это президенту; президент тогда передает сообщение другому члену клуба.
  • Сколько ключей засекречивания необходимо, если президент решает, что два члена клуба, которые должны связаться друг с другом, должны сначала войти в контакт с ним? Президент тогда создает временный ключ, который используется между этими двумя членами клуба. Временный ключ зашифровывается и посылается обоим членам клуба.
  • Археологи нашли новый манускрипт, написанный на неизвестном языке. Позже они нашли маленькую табличку, которая содержит предложение, написанное на том же самом языке с переводом на греческий язык. Используя табличку, они смогли прочитать первоначальную рукопись. Какую атаку использовали археологи?
  • Алиса может использовать только аддитивный шифр на ее компьютере, чтобы передать сообщение другу. Она думает, что сообщение будет более безопасно, если она зашифрует его два раза, каждый раз с различным ключом. Действительно ли она права? Обоснуйте ваш ответ.
  • Алиса хочет передать длинное сообщение. Она использует моноалфавитный шифр подстановки. Она думает, что если она сожмет сообщение, это может защитить текст от атаки Евы по частоте отдельных букв. Помогает ли сжатие? Должна ли она сжать сообщение, прежде чем зашифрует его или после этого? Обоснуйте ваш ответ.
  • Алиса часто должна зашифровывать исходный текст, использующий вместе буквы (от a до z ) и цифры (от 0 до 9 ).
  • Если она применяет аддитивный шифр, что является множеством ключей? Какие будут модули?
  • Если она применяет мультипликативный шифр, что является множеством ключей? Какие будут модули?
  • Если она применяет аффинный шифр, что является множеством ключей? Какие будут модули?
  • Предположим, что к исходному тексту добавляются пробелы, точки и знаки вопроса, чтобы увеличить множество ключей элементарных шифров.
  • Каково множество ключей, если используется аддитивный шифр?
  • Каково множество ключей, если используется мультипликативный шифр?
  • Каково множество ключей, если используется аффинный шифр?
  • Алиса и Боб решили игнорировать принципы Керкгоффса и скрывают тип шифра, который они используют.
  • Как может Ева понять, использовались ли шифр подстановки или шифр перестановки?
  • Если Ева знает, что использованный шифр — шифр подстановки, как может она определить, был ли он аддитивным, мультипликативным или аффинным шифром?
  • Если Ева знает, что использованный шифр — шифр перестановки, как она может определить размер секции ( m )?
  • В каждом из следующих шифров — какое максимальное число символов может быть изменено в зашифрованном тексте, если в исходном тексте изменен только единственный символ?
  • Аддитивный
  • Мультипликативный
  • Аффинный
  • Виженера
  • Автоключевой
  • Одноразовый блокнот
  • Роторный
  • "Энигма"
  • В каждом из следующих шифров — какое максимальное число символов будет изменено в зашифрованном тексте, если в исходном тексте изменен только один символ?
  • Одиночная перестановка
  • Двойная перестановка
  • Плейфеер
  • Для каждого из следующих шифров определите, является ли он шифром потока или блочным шифром. Обоснуйте ваши ответы.
  • Плейфеер
  • Автоключ
  • Одноразовый блокнот
  • Ротор
  • "Энигма"
  • Зашифруйте сообщение "this is exercise" ( "это — упражнение" ), используя один из следующих шифров. Игнорируйте пробелы между словами. Расшифруйте сообщение, чтобы получить первоначальный исходный текст.
  • Аддитивный шифр с ключом = 20
  • Мультипликативный шифр с ключом = 15
  • Аффинный шифр с ключом = (15, 20)
  • Зашифруйте сообщение "the house is being sold tonight" ( "дом продан сегодня вечером" ), используя один из следующих шифров. Игнорируйте пространство между словами. Расшифруйте сообщение, чтобы получить исходный текст.
  • Шифр Виженера с ключом: "dollars"
  • Шифр с автоматическим ключом = 7
  • Шифр Плейфера с ключом, созданным в тексте (см. рис. 4.13)
  • Используйте шифр Виженера с ключевым словом "HEALTH", чтобы зашифровать сообщение "Life is full surprises" ( "Жизнь полна сюрпризов" ).
  • Используйте шифр Плейфера, чтобы зашифровать сообщение "The key hidden under the door pad" ( "ключ спрятан под ковриком у двери" ). Ключ засекречивания можно составить, заполняя первую и вторую часть строки со словом "GUIDANCE" и заполняя остальную часть матрицы с остальной частью алфавита.
  • Используйте шифр Хилла, чтобы зашифровать сообщение "We live in an insecure world" ( "Мы живем в опасном мире" ). Применить следующий ключ:$$\mathbf{K} = \left( \begin{array}{cc} 03 02 \\ 05 07 \end{array} \right)$$
  • Джон читает тайную книгу введения в криптографию. В одной части книги автор дает зашифрованный текст "CIW" и двумя параграфами позже говорит читателю, что это — ключ сдвига, и исходный текст — "YES" ( "да" ). В следующей лекции герой нашел табличку с выгравированным на ней текстом "XV1EWYW1". Джон немедленно разгадал фактическое значение зашифрованного текста. Какой тип атаки предпринял Джон? Каков исходный текст?
  • Ева тайно получает доступ к компьютеру Алисы и, используя ее шифр, печатает "abcdefghij" ; на экране появилось "CABDEHEGIJ". Предположим, Ева знает, что Алиса использует ключевой шифр перестановки. Ответьте на следующие вопросы:
  • Какую атаку предпринимает Ева?
  • Каков размер ключа перестановки?
  • Используйте атаку грубой силы, чтобы расшифровать следующее сообщение, зашифрованное Алисой, применяя аддитивный шифр. Предположим, что Алиса всегда использует ключ, связанный с ее днем рождения, который приходится на 13 -е число месяца.
    NCJAEZRCLASJLYODEPRLYZRCLASJLCPEHZDTOPD
  • Используйте атаку грубой силы, чтобы расшифровать следующее сообщение. Предположите, что Вы знаете: шифр — аффинный и исходный текст "ab" зашифрован "GL".
    XPALASXYFGFUKPXUSOGEUTKCDGFXANMGNVS
  • Используйте атаку частоты отдельных букв, чтобы расшифровать следующее сообщение. Предположите, что Вы знаете, что оно зашифровано с применением моноалфавитного шифра подстановки.
    ONHOVEJHWOBEVGWOCBWHNUGBLHGBGR
  • Предположим, что знаки препинания (точки, вопросительные знаки и пробелы) складываются с алфавитом шифрования шифра Хилла, потом для шифрования и дешифрования используются ключевые матрицы $$2 \times 2$$ в Z29.
  • Найдите общее количество возможных матриц.
  • Доказано, что общее количество обратимых матриц — (N2 – 1) (N2 – N), где N — число размера алфавита. Найдите множество ключей шифра Хилла, используя этот алфавит.
  • Используйте атаку частоты отдельных букв, чтобы взломать следующий зашифрованный текст. Предположите, что вы знаете, что он был создан с использованием аддитивного шифра.
    OTWEWNGWCBPQABIZVQAPMLJGZWTTQVOBQUMAPMIDGZCAB 
    EQVBMZLZIXMLAXZQVOQVLMMXAVWEIVLLIZSNZWAB 
    JQZLWNLMTQOPBVIUMLGWCBPAEQNBTGTMNBBPMVMAB
  • Используйте тест Казиского и атаку частоты отдельных букв, чтобы нарушить следующий зашифрованный текст. Предположите, что вы знаете, что он был создан шифром Виженера.
    OTWEWNGWCBPQABIZVQAPMLJGZWTTQVOBQUMAPMIDGZCAB 
    EQVBMZLZIXMLAXZQVOQVLMMXAVWEIVLLIZSNZWAB 
    JQZLWNLMTQOPBVIUMLGWCBPAEQNBTGTMNBBPMVMAB
  • Ключ шифрования в шифре перестановки — (3, 2, 6, 1, 5, 4). Найдите ключ дешифрования.
  • Покажите матричное представление ключа шифрования перестановки с ключом (3, 2, 6, 1, 5, 4). Найдите матричное представление ключа дешифрования.
  • Даны исходный текст "letusmeetnow" и соответствующий зашифрованный текст "HBCDFNOPIKLB". Известно, что алгоритм — шифр Хилла, но вы не знаете размер ключа. Найдите ключевую матрицу.
  • Шифры Хилла и мультипликативные шифры очень похожи. Шифры Хилла — блочные шифры, использующие умножение матриц; мультипликативные шифры — шифры потока, использующие скалярное умножение.
  • Определите блочный шифр, который, подобно аддитивному шифру, использует сложение матриц.
  • Определите блочный шифр, который, подобно аффинному шифру, использует умножение и сложение матриц.
  • Определите новый шифр потока. Шифр является аффинным, но ключи зависят от позиции символа в исходном тексте. Если символ исходного текста будет зашифрован в позиции i, мы можем найти ключи:
  • Мультипликативный ключ — (i mod 12) элемент в Z26*.
  • Аддитивный ключ — (i mod 26) элемент в Z26.
  • Зашифруйте сообщение "cryptography is fun" ( "криптография — забавно" ), используя этот новый шифр.

  • Предположим, что для шифра Хилла исходный текст является мультипликативной единичной матрицей ( I ). Найдите отношения между ключом и зашифрованным текстом. Используйте результат вашего исследования и попытайтесь атаковать выборку исходного текста, использующего шифр Хилла.
  • Atbash был популярным шифром среди Библейских авторов (VI век до нашей эры). В Atbash "A" — шифровалось буквой "Z", "B" был зашифрован буквой "Y", и так далее. Аналогично "Z" был зашифрован как "A", "Y" зашифрован как "B", и так далее. Предположим, что алфавит разделен на две половины и буквы в первой половине зашифрованы как буквы во второй и наоборот. Найдите тип шифра и ключа. Зашифруйте сообщение "упражнение", используя Atbash-шифр.
  • В шифре Полибиуса (Polybius — римский историк, живший в IV веке до нашей эры) каждая буква зашифрована как два целых числа. Ключ — матрица символов $$5 \times 5$$, как в шифре Плейфера. Исходный текст — матрица символов, зашифрованный текст — эти два целых числа (каждое между 1 2 3 4 5 1z q p f e 2y r o g d 3x s n h c 4w t m i/j b 5v u l k a
  • Страницы:

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

    4.1. Введение

    Рисунок 4.1 иллюстрирует общую идею шифра с симметричным ключом.

    (рис 4.1) Общая идея шифрования с симметричным ключом

    На рисунке 4.1 объект, Алиса, может передать сообщение другому объекту, Бобу, по несекретному каналу, учитывая, что противник (назовем его Ева), не может понять содержание сообщения, просто подслушивая его по каналу.

    Первоначальное сообщение от Алисы Бобу названо исходным текстом; сообщение, передаваемое через канал, названо зашифрованным текстом. Чтобы создать зашифрованный текст из исходного текста, Алиса использует алгоритм шифрования и совместный ключ засекречивания. Для того чтобы создать обычный текст из зашифрованного текста, Боб использует алгоритм дешифрования и тот же секретный ключ. Мы будем называть совместное действие алгоритмов шифрования и дешифрования шифровкой. Ключ — набор значений (чисел), которыми оперирует алгоритм шифровки.

    Обратите внимание, что шифрование симметричными ключами использует единственный ключ (ключ, содержащий непосредственно набор кодируемых значений) и для кодирования и для дешифрования. Кроме того, алгоритмы шифрования и дешифрования — инверсии друг друга. Если P — обычный текст, C — зашифрованный текст, а K — ключ, алгоритм кодирования Ek (x) создает зашифрованный текст из исходного текста.

    Алгоритм же дешифрования Dk (x) создает исходный текст из зашифрованного текста. Мы предполагаем, что Ek (x) и Dk (x) инверсны по отношению друг к другу. Они применяются, последовательно преобразуя информацию из одного вида в другой и обратно. Мы имеем

    Шифрование: C = Ek(P),                      
    Расшифровка: P = Dk (C),
    где , Dk(Ek(x)) = Ek(Dk(x)) = x

    Мы можем доказать, что исходный текст, созданный Бобом, тот же самый, что и исходный, переданный Алисой. Мы предполагаем, что Боб создает P1 ; мы докажем, что P1 = P:

    Алиса: C = Ek(P)       Боб: P1 = Dk (C)  = Dk (Ek(P)) = P

    Мы должны подчеркнуть, что согласно принципу Керкгоффса (приведенному далее) лучше делать алгоритм шифрования и дешифрования открытым, но сохранять в тайне совместный ключ. Это означает, что Алиса и Боб нуждаются в другом защищенном канале для обмена ключом засекречивания. Алиса и Боб могут однажды встретиться и обменяться ключом лично. Защищенный канал аналогично представляет собой "встречу лицом к лицу" для обмена ключом. Они могут также довериться третьему лицу, чтобы он дал им одинаковые ключи. Они могут создать временный ключ засекречивания, используя другой вид асимметрично-ключевых шифров, который будет рассмотрен в более поздних лекциях. В этой лекции мы просто принимаем, что существует утвержденный ключ засекречивания между Алисой и Бобом.

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

    Другой элемент в шифровании симметричными ключами — число ключей. Алиса нуждается в другом ключе засекречивания, чтобы связаться с другим человеком, скажем, Дэвидом. Если есть m группа людей, в которой каждый должен иметь связь друг с другом, сколько ключей необходимо? Ответ — $$(m \times (m-1))/2$$, потому что каждому человеку надо m – 1 ключ, чтобы связаться с остальной частью группы, но ключ между A и B может использоваться в обоих направлениях. В более поздних лекциях мы увидим, как решается эта проблема.

    Шифрование можно представлять себе как замок, который запирает ящик, содержащий сообщение; дешифрование можно представлять себе как открытие замка такого ящика. В шифровании симметричными ключами один и тот же ключ замыкает и размыкает замок, как это показано на рис. 4.2. В более поздних лекциях будет рассказано, что шифрование асимметричными ключами нуждается в двух ключах: одном для замыкания, а втором — для размыкания замка.

    (рис 4.2) Шифрования симметричными ключами, как замыкание и размыкание замка с тем же самым ключом

    Принципы Керкгоффса

    Хотя можно предположить, что шифр был бы более безопасен, если мы скрываем и алгоритм шифрования/дешифрования, и ключ засекречивания, это не рекомендуется. Согласно принципу Керкгоффса, нужно всегда предполагать, что противник — Ева — знает алгоритм кодирования/дешифрования. Противодействие шифра атаке должно базироваться только на тайне ключа. Другими словами, предполагается, что ключ должен быть настолько труден, что не надо скрывать алгоритм кодирования/дешифрования. Эти принципиальные положения станут более ясны, когда мы будем изучать современные шифры. Для современных шифров сегодня существует немного алгоритмов. Множество ключей (Ключевой домен) для каждого алгоритма, однако, настолько большое число, что мешает противнику найти ключ.

    Криптоанализ

    Криптография — наука и искусство создания секретных кодов, криптоанализ — наука и искусство взламывания этих кодов. В дополнение к изучению методов криптографии мы также должны изучить методы криптоанализа.

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

    (рис 4.3) Атаки криптоанализа

    Атака только на зашифрованный текст

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

    (рис 4.4) Атака только на зашифрованный текст

    В атаке только на зашифрованный текст могут использоваться различные методы. Мы рассмотрим здесь только некоторые из них.

    Атака грубой силы

    При методе грубой силы, или методе исчерпывающего ключевого поиска, Ева пробует использовать все возможные ключи. Мы предполагаем, что Ева знает алгоритм и знает множество ключей (список возможных ключей). При использовании этого метода перехватывается исходный текст и задействуются все возможные ключи, пока не получится исходный текст. Создание атаки грубой силы было в прошлом трудной задачей; сегодня с помощью компьютера это стало проще. Чтобы предотвратить этот тип атаки, число возможных ключей должно быть очень большим.

    Статистическая атака

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

    Атака по образцу

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

    Атака знания исходного текста

    При атаке знания исходного текста Ева имеет доступ к некоторым парам "исходный/зашифрованный текст" в дополнение к перехваченному зашифрованному тексту, который она хочет взломать, как показано на рис. 4.5.

    (рис 4.5) Атака знания исходного текста

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

    Атака с выборкой исходного текста

    Атака с выборкой исходного текста подобна атаке знания исходного текста, но пары "исходный/зашифрованный текст" были выбраны и изготовлены самим нападавшим. Рисунок 4.6 иллюстрирует этот процесс.

    (рис 4.6) Атака с выборкой исходного текста

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

    Атака с выбором зашифрованного текста

    Атака с выбором зашифрованного текста подобна атаке с выборкой исходного текста, за исключением того, что выбирает некоторый зашифрованный текст и расшифровывает его, чтобы сформировать пару "зашифрованный/исходный текст" (это случается, когда Ева имеет доступ к компьютеру Боба). Рисунок 4.7 показывает этот процесс.

    (рис 4.7) Атака с выбором зашифрованного текста

    Категории традиционных шифров

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

    4.2. Шифры подстановки

    Шифр подстановки заменяет один символ другим. Если символы в исходном тексте — символы алфавита, мы заменяем одну букву другой. Например, мы можем заменить букву A буквой D, а букву T — буквой Z. Если символы — цифры (от 0 до 9 ), мы можем заменить 3 на 7 и 2 на 6. Шифры подстановки могут быть разбиты на две категории: моноалфавитные или многоалфавитные шифры.

    Шифр подстановки заменяет один символ другим.

    Моноалфавитные шифры

    Сначала обсудим шифры подстановки, называемые моноалфавитными шифрами. В такой подстановке буква (или символ) в исходном тексте всегда изменяется на одну и ту же самую букву (или символ) в зашифрованном тексте независимо от его позиции в тексте. Например, если алгоритм определяет, что буква A в исходном тексте меняется на букву D, то при этом каждая буква A изменяется на букву D. Другими словами, буквы в исходном тексте и зашифрованном тексте находятся в отношении один к одному.

    В моноалфавитной подстановке отношения между буквой в исходном тексте и буквой в зашифрованном тексте — один к одному.

    Пример 4.1

    Приведенный ниже пример показывает исходный текст и соответствующий ему зашифрованный текст. Мы используем строчные символы, чтобы показать исходный текст, и заглавные буквы (символы верхнего регистра), чтобы получить зашифрованный текст. Шифр моноалфавитный, потому что оба l зашифрованы как O.

    Исходный текст: hello   	Зашифрованный  текст: KHOOR

    Пример 4.2

    Приведенный ниже пример показывает исходный текст и соответствующий ему зашифрованный текст. Шифр не является моноалфавитным, потому что каждая буква l (эль) зашифрована различными символами. Первая буква l (эль) зашифрована как N ; вторая — как Z.

    Исходный текст: hello	        Зашифрованный текст: ABNZF

    Аддитивный шифр

    Самый простой моноалфавитный шифр — аддитивный шифр, его иногда называют шифром сдвига, а иногда — шифром Цезаря, но термин аддитивный шифр лучше показывает его математический смысл. Предположим, что исходный текст состоит из маленьких букв (от a до z ) и зашифрованный текст состоит из заглавных букв (от A до Z ). Чтобы обеспечить применение математических операций к исходному и зашифрованному текстам, мы присвоим каждой букве числовое значение (для нижнего и верхнего регистра), как это показано на рис. 4.8.

    (рис 4.8) Представление букв исходного текста и зашифрованного текста в Z26

    На рисунке 4.8 каждому символу (нижний регистр или верхний регистр) сопоставлено целое число из Z26. Ключ засекречивания между Алисой и Бобом — также целое число в Zn. Алгоритм кодирования прибавляет ключ к символу исходного текста; алгоритм дешифрования вычитает ключ из символа зашифрованного текста. Все операции проводятся в Zn. Рисунок 4.9 показывает процесс шифрования и дешифрования.

    (рис 4.9) Аддитивный шифр

    Мы можем легко показать, что шифрование и дешифрование являются инверсными друг другу, потому что исходный текст, созданный Бобом ( P1 ), тот же самый, что и тот, который передан Алисой ( P ).

    P1= (C – k) mod 26 = (P + k – k) mod 26 = P

    .

    Пример 4.3

    Используйте аддитивный шифр с ключом = 15, чтобы зашифровать сообщение "hello".

    Решение

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

    Исходный текст  h  ->     07	Шифрование (07 + 15) mod 26	Шифр. Текст 22 ->      W
    Исходный текст  e  ->     04	Шифрование (04+ 15)  mod 26	Шифр. Текст 19 ->      T
    Исходный текст  l  ->     11	Шифрование (11 + 15) mod 26	Шифр. Текст 00 ->      A
    Исходный текст  l  ->     11	Шифрование (11 + 15) mod 26	Шифр. Текст 00 ->      A
    Исходный текст  o  ->     14	Шифрование (14 + 15) mod 26	Шифр. Текст 03 ->      D

    Результат — "WTAAD". Обратите внимание, что шифр моноалфавитный, потому что два отображения одной и той же буквы исходного текста ( l ) зашифрованы как один и тот же символ ( A ).

    Пример 4.4

    Используйте шифр сложения с ключом = 15, чтобы расшифровать сообщение "WTAAD".

    Решение

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

    Шифр. Текст    W  ->   22	Шифрование (22 - 15) mod 26	Исходный текст  07  ->    h 
    Шифр. Текст    T  ->   19	Шифрование (19 - 15) mod 26	Исходный текст  04  ->    e  
    Шифр. Текст    A  ->   00	Шифрование (00 - 15) mod 26	Исходный текст  11  ->    l
    Шифр. Текст    A  ->   00	Шифрование (00 - 15) mod 26	Исходный текст  11  ->    l
    Шифр. Текст    D  ->   03	Шифрование (03 - 15) mod 26	Исходный текст  14  ->    0

    Результат — "hello". Обратите внимание, что операции проводятся по модулю 26 (см. лекции 2-3), отрицательный результат должен быть отображен в Z26 (например, –15 становится 11 ).

    Шифр сдвига

    Исторически аддитивные шифры назывались шифрами сдвига — по той причине, что алгоритм шифрования может интерпретироваться как "клавиша сдвига буквы вниз", а алгоритм дешифрования может интерпретироваться как "клавиши сдвига буквы вверх". Например, если ключ = 15, алгоритм кодирования сдвигает букву на 15 букв вниз (к концу алфавита). Алгоритм дешифрования сдвигает букву на 15 букв вверх (к началу алфавита). Конечно, когда мы достигаем конца или начала алфавита, мы двигаемся по кольцу к началу (объявленные свойства операции по модулю 26 ).

    Шифр Цезаря

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

    Аддитивные шифры упоминаются иногда как шифры сдвига или шифры Цезаря.

    Криптоанализ

    Аддитивные шифры уязвимы к атакам только зашифрованного текста, когда используется исчерпывающий перебор ключей (атака грубой силы). Множество ключей аддитивного шифра очень мало — их только 26. Один из ключей, нулевой, является бесполезным (зашифрованный текст будет просто соответствовать исходному тексту). Следовательно, остается только 25 возможных ключей. Ева может легко начать атаку грубой силы зашифрованного текста.

    Пример 4.5

    Ева перехватила зашифрованный текст "UVACLYFZLJBYL". Покажите, как она может взломать шифр, используя атаку грубой силы.

    Решение

    Ева пробует раскрыть текст и последовательно перебирает ключи начиная с первого. С помощью ключа номер 7 она получает осмысленный текст "not very secure" (не очень безопасный).

    Зашифрованный текст: UVACLYFZLJBYL	
    K = 1	        Исходный текст: tubkxeykiaxk
    K = 2	        Исходный текст: styajwdxjhzwj
    K = 3	        Исходный текст: rsxzivewigyvi
    K = 4	        Исходный текст: qrwyhubvhfhuh
    K = 5	        Исходный текст: pqvxgtaugewtg
    K = 6	        Исходный текст: opuwfsztfdvst
    K = 7	        Исходный текст: notverysecure

    Статистические атаки

    Аддитивные шифры также могут быть объектами статистических атак. Это особенно реально, если противник перехватил длинный зашифрованный текст. Противник может воспользоваться знаниями о частоте употребления символов в конкретном языке. Таблица 4.1 показывает частоту появления определенных букв для английского текста длиной в 100 символов.

    Частота появления букв в английском тексте
    Буква Частота Буква Частота Буква Частота Буква Частота
    E 12,7 H 6,1 W 2,3 K 0,08
    T 9,1 R 6,0 F 2,2 J 0,02
    A 8,2 D 4,3 G 2,0 Q 0,01
    O 7,5 L 4,0 Y 1,9 X 0,01
    I 7,0 C 2,8 P 1,5 Z 0,01
    N 6,7 U 2,8 B 1,0
    S 6,3 M 2,4 V

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

    Наиболее употребляемые группы с двумя символами (диаграмма (diagrams)) и группы с тремя символами (триграмма (trigrams)) для английского текста показаны в таблице 4.2.

    Группы диаграмм и триграмм , основанные на их частоте появления в английском языке
    Диаграмма TH,HE,IN,ER,AN,RE,ED,ON,ES,ST,EN,AT,TO,NT,HA,ND,OU,EA,NG,AS,OR,TI,IS,ET,IT,AR,TE,SE,HI,OF
    Триграмма THE,ING,AND,HER,ERE,ENT,THA,NTH,WAS,ETH,FOR,DTH

    Пример 4.6

    Ева перехватила следующий зашифрованный текст. Используя статистическую атаку, найдите исходный текст.

    XLILSYWIMWRSAJSVWEPIJSVJSYVQMPPMSRHSPPEVWMXMWASVX-LQSVILY-VVCFIJSVIXLIWIPPIVVIGIMZIWQSVISJJIVW

    Решение

    Когда Ева составит таблицу частоты букв в этом зашифрованном тексте, она получит: I = 14, V = 13, S = 12, и так далее. Самый частый символ – I — имеет 14 появлений. Это показывает, что символ I в зашифрованном тексте, вероятно, соответствует символу e в исходном тексте. Тем самым, ключ = 4. Ева расшифровывает текст и получает

    the house is now for sale for four million dollars it is worth more hurry before the seller receives more offers
    дом теперь продается за четыре миллиона долларов,  стоит поспешить, пока продавец  не получил больше предложений

    Мультипликативные шифры

    В мультипликативном шифре алгоритм шифрования применяет умножение исходного текста ключом, а алгоритм дешифрования применяет деление зашифрованного текста ключом, как показано на рис. 4.10. Однако поскольку операции проводятся в Z26, дешифрование здесь означает умножение на мультипликативную инверсию ключа. Обратите внимание, что ключ должен принадлежать набору Zn* — это гарантирует, что шифрование и дешифрование инверсны друг другу.

    (рис 4.10) Мультипликативный шифр .

    Пример 4.7

    Каково множество ключей для любого мультипликативного шифра?

    Решение

    Ключ должен быть в Z26*. Это множество имеет только 12 элементов: 1, 3, 5, 7, 9, 11, 15, 17, 19, 21, 23, 25.

    Пример 4.8

    Мы используем мультипликативный шифр, чтобы зашифровать сообщение "hello" с ключом 7. Зашифрованный текст "XCZZU".

    Исходный текст  h           07	Шифрование (07 x 07) mod 26    Шифр. Текст 23            X
    Исходный текст  e           04	Шифрование (04 x 07) mod 26    Шифр. Текст 02            C
    Исходный текст  l           11	Шифрование (11 x 07) mod 26    Шифр. Текст 25            Z
    Исходный текст  l           11	Шифрование (11 x 07) mod 26    Шифр. Текст 25            Z
    Исходный текст  o           14	Шифрование (14 x 07) mod 26    Шифр. Текст 20            U

    Мы можем комбинировать аддитивные и мультипликативные шифры, чтобы получить то, что названо аффинным шифром — комбинацией обоих шифров с парой ключей. Первый ключ используется мультипликативным шифром, второй — аддитивным шифром. Рисунок 4.11 доказывает, что афинный шифр — фактически два шифра, применяемые один за другим. Мы могли бы показать только одну комплексную операцию для шифрования или дешифрования, такую, как $$C = (P \times {k_1} + {k_2})\bmod 26$$ и $$P = ((C-{k_2}) \times {k_1}^{ - 1})\bmod 26$$. Однако мы использовали временный результат ( T ) и указали две отдельных операции, показав тем самым, что всякий раз, когда мы используем комбинацию шифров, нужно убедиться, что каждый из них имеет инверсию на другой стороне линии и что они используются в обратном порядке в шифровании и дешифровании. Если сложение — последняя работа в шифровании, то вычитание должно быть первым в дешифровании.

    (рис 4.11) Аффинный шифр

    При аффинном шифре отношение между исходным текстом P и шифрованным текстом C определяется, как это показано ниже.

    C = (P x k1 + k2 ) mod 26   P = ((C – k2) x k1-1) mod 26
    где k1-1 мультипликативная инверсия k1, а(– k2)–аддитивная инверсия k2

    Пример 4.9

    Аффинный шифр использует пару ключей, в которой первый ключ из Z26*, а второй — из Z26. Область существования ключей равна $$26 \times 12 = 312 $$.

    Пример 4.10

    Используйте аффинный шифр, чтобы зашифровать сообщение "hello" с ключевой парой (7, 2).

    Решение

    Мы используем 7 для мультипликативного ключа и 2 для аддитивного ключа. Получаем "ZEBBW".

    P:  h           07	Шифрование (07 x 07+2) mod 26   C: 25            Z
    P:  e           04	Шифрование (04 x 07+2) mod 26   C: 04            E
    P:  l           11	Шифрование (11 x 07+2) mod 26   C: 01            B
    P:  l           11	Шифрование (11 x 07+2) mod 26   C: 01            B
    P:  o           14	Шифрование (14 x 07+2) mod 26   C: 22            W

    Пример 4.11

    Используйте аффинный шифр, чтобы расшифровать сообщение "ZEBBW" с ключевой парой (7, 2) в модуле 26.

    Решение

    Чтобы найти символы исходного текста, прибавим аддитивную инверсию от $$(-2) \equiv 24\left( {\bmod 26} \right)$$ к полученному зашифрованному тексту. Потом умножим результат на мультипликативную инверсию от $${7^{ - 1}} \equiv 15\left( {\bmod 26} \right) $$. Поскольку 2 имеет аддитивную инверсию в Z26 и 7 имеет мультипликативную инверсию в Z26*, исходный текст — точно тот, что мы использовали в примере 4.10.

    C: 25  ->    Z	Дешифрование (07 x 07 - 2) mod 26     P: 07  ->    h         
    C: 04  ->    E	Дешифрование (04 x 07 - 2) mod 26     P: 04  ->    e          
    C: 01  ->    B	Дешифрование (11 x 07 - 2) mod 26     P: 11  ->    l
    C: 01  ->    B	Дешифрование (11 x 07 - 2) mod 26     P: 11  ->    l           
    C: 22  ->    W	Дешифрование (14 x 07 - 2) mod 26     P: 14  ->    o

    Пример 4.12

    Аддитивный шифр — частный случай аффинного шифра, при котором k1 = 1. Мультипликативный шифр — частный случай аффинного шифра, в котором k2 = 0.

    Криптоанализ аффинного шифра

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

    PWUFFOGWCHFDWIWEJOUUNJORSMDWRHVCMWJUPVCCG

    Ева также очень ненадолго получает доступ к компьютеру Алисы и время, достаточное лишь для того, чтобы напечатать исходный текст с двумя символами: "et". Тогда она пробует зашифровать короткий исходный текст, используя два различных алгоритма, потому что не уверена, какой из них является аффинным шифром.

    Для того чтобы найти ключ, Ева использует следующую стратегию:

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

    e -> W	04 -> 22	(04 x k1+k2) = 22 (mod 26)
    t- -> C     19 -> 02	(19 x k1+k2) = 02 (mod 26)

    Как мы узнали в лекции 4, эти два уравнения сравнения могут быть решены (могут быть найдены значения k1, и k2 ). Однако этот ответ неприемлем, потому что k1 = 16 не может быть первой частью ключа. Его значение, 16, не имеет мультипликативной инверсии в Z26*.

    $$\left( \begin{array}{c} k_{1} \\ k_{2} \end{array} \right) = {\left( \begin{array}{cc} 4 1 \\ 19 1 \end{array} \right)^{ - 1}} \cdot \left( \begin{array}{c} 22 \\ 2 \end{array} \right) = \left( \begin{array}{cc} 19 7 \\ 3 24 \end{array} \right) \cdot \left( \begin{array}{c} 22 \\ 2 \end{array} \right) = \left( \begin{array}{c} 161 \\ 10 \end{array} \right) \to {k_1} = 16{\text{ }}{k_2} = 10$$

    b. Ева теперь пробует использовать результат второго набора данных:

    e -> W	04 -> 22	(04 x k1+k2) = 22 (mod 26)
    t- -> C     19 -> 05	(19 x k1+k2) = 05 (mod 26)

    Квадратная матрица и ее инверсия — те же самые, что и в предыдущем примере. Теперь Ева получает k1 = 11 и k2 = 4, эта пара является приемлемой, потому что k1 имеет мультипликативную инверсию в Z26*. Она пробует пару ключей (19, 22), которые являются инверсией пары (11, 4), и расшифровывает сообщение. Исходный текст

    Best time of the year is spring when flower bloom
    Самое лучшее время года — весна, когда цветут цветы

    Моноалфавитный шифр подстановки

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

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

    (рис 4.12) Пример ключа для моноалфавитного шифра подстановки

    Пример 4.13

    Мы можем использовать ключ, показанный на рисунке 4.12, чтобы зашифровать сообщение

    This message is easy to encrypt but hard to find the key
    (это сообщение просто зашифровать, но трудно найти ключ, которым зашифрован текст)

    Зашифрованное сообщение имеет вид

    ICFVQRVVNEFVRNVSIYRGAHSLIOJICNHTIYBFGTICRXRS

    Криптоанализ

    Размер ключевого пространства для моноалфавитного шифра подстановки — число перестановок из 26, т.е. 26! (почти $$4 \times {10^{26}}$$ ). Это делает атаку грубой силы чрезвычайно трудной для Евы, даже если она использует мощный компьютер. Однако она может применить статистическую атаку, основанную на частоте символов. Шифр не изменяет частоту употребления символов.

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

    Многоалфавитные шифры

    В многоалфавитной подстановке каждое появление символа может иметь различную замену. Отношения между символом в исходном тексте и символом в зашифрованном тексте — "один ко многим". Например, "a" может быть зашифровано как "D" в начале текста, но как "N" — в середине. Многоалфавитные шифры имеют преимущество: они скрывают частоту появления символа основного языка. Ева не может использовать статистическую частоту отдельного символа, чтобы взломать зашифрованный текст.

    Чтобы создать многоалфавитный шифр, мы должны сделать каждый символ зашифрованного текста зависящим от соответствующего символа исходного текста и позиции символа исходного текста в сообщении. Это подразумевает, что наш ключ должен быть потоком подключей, в которых каждый подключ так или иначе зависит от позиции символа исходного текста, который используется для выбора подключа шифрования. Другими словами, мы должны иметь ключевой поток k = (k1, k2, k3.….), в котором ki применяется, чтобы зашифровать i -тый символ в исходном тексте и создать i -тый символ в зашифрованном тексте.

    Автоключевой шифр

    Чтобы понять зависимость ключа от позиции, обсудим простой многоалфавитный шифр, названный "автоключевым". В этом шифре ключ — поток подключей, в котором каждый подключ используется, чтобы зашифровать соответствующий символ в исходном тексте. Первый подключ — определенное заранее значение, тайно согласованное Алисой и Бобом. Второй подключ — значение первого символа исходного текста (между 0 и 25 ). Третий — i -тое значение второго исходного текста. И так далее.

    P = P1 P2 P3…..	
    C = C1 C2 C3…..	
    K = (k1,P1, P2, P3,…..)
    Шифрование Ci = (Pi + ki) mod 26          
    Дешифрование Pi = (Ci – ki) mod 26

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

    Пример 4.14

    Предположим, что Алиса и Боб согласились использовать автоключевой шифр с начальным ключевым значением k1 = 12. Теперь Алиса хочет передать Бобу сообщение "Attack is today" ("Атака — сегодня"). Шифрование проводится символ за символом. Каждый символ в исходном тексте сначала заменяется его значением целого числа, как показано на рис. 4.8, первый подключ прибавляется, чтобы создать первый символ зашифрованного текста. Остальная часть ключа создается по мере чтения символов исходного текста. Обратите внимание, что шифр является многоалфавитным, потому что эти три появления "a" в исходном тексте зашифрованы различно. Три возникновения "t" также зашифрованы различно.

    Исходный текстa t t a c k i s t o d a y
    Значения P00 19 19 00 02 10 08 18 19 14 03 00 24
    Поток ключей12 00 19 19 00 02 10 08 18 19 14 03 00
    Значения C12 19 12 19 02 12 18 00 11 07 17 03 24
    Зашифрованный текстM T M T C M S A L H R D Y

    Криптоанализ

    Автоключевой шифр действительно скрывает статистику частоты отдельного символа. Однако он так же уязвим при атаке с помощью грубой силы, как и аддитивный шифр. Первый подключ может быть только одним из 25 значений (1 - 25). Мы нуждаемся в многоалфавитных шифрах, которые не только скрывают характеристики языка, но и имеют большие множества ключей.

    Шифр Плейфера

    Другой пример многоалфавитного шифра — Шифр Плейфера, использовавшийся британской армией в течение Первой мировой войны. Ключ засекречивания в этом шифре сделан из 25 букв алфавита, размещенных в матрице $$5 \times 5$$ (буквы I и J рассматриваются при шифровании как одинаковые). С помощью различных соглашений о размещении букв в матрице можно создать много различных ключей засекречивания. Одно из возможных соглашений показано на рисунке 4.13.

    (рис 4.13) Пример секретного ключа Плейфера

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

    Шифр использует три правила для шифрования:

    a. если эти две буквы-пары расположены в одной и той же строке таблицы ключа засекречивания, соответствующий зашифрованный символ для каждой буквы — следующий символ справа в той же самой строке (с возвращением к началу строки; если символ исходного текста — последний символ в строке);

    b. если эти две буквы-пары расположены в одном и том же столбце таблицы ключа засекречивания, соответствующий зашифрованный символ для каждой буквы — символ ниже этого в том же самом столбце (с возвращением к началу столбца; если символ исходного текста — последний символ в столбце);

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

    Шифр Плейфера соответствует нашим критериям для многоалфавитного шифра. Ключ — поток подключей, в котором они создаются по два одновременно. В шифре Плейфера поток ключей и поток шифра — те же самые. Это означает, что вышеупомянутые правила можно представить как правила для создания потока ключей. Алгоритм кодирования берет пару символов из исходного текста и создает пару подключей, следуя указанным правилам. Мы можем сказать, что поток ключей зависит от позиции символа в исходном тексте. Зависимость от позиции имеет здесь различную интерпретацию: подключ для каждого символа исходного текста зависит от следующего или предыдущего "соседа". Рассматривая шифр Плейфера, таким образом, можно сказать, что зашифрованный текст — это фактически поток ключей.

    P = P1P2P3…..	
    C = C1C2C3…..	
    k = [(k1,k2), (k3,k4),…..]
    Шифрование Ci =  ki                
    Дешифрование Pi = ki

    Пример 4.15

    Пусть нам надо зашифровать исходный текст "hello", использующий ключи на рис. 4.13. Когда мы группируем буквы по парам, мы получаем "he, ll,o". Мы должны вставить x между двумя l (эль), после чего получим "he, lx, lo". Мы имеем

    he -> EC	   lx -> QZ	    lo -> BX
    Исходный текст: hello        Зашифрованный текст:  ECQZBX

    Мы можем видеть из этого примера, что наш шифр — фактически многоалфавитный шифр: два появления l (эль) зашифрованы как "Q" и "B".

    Криптоанализ шифра Плейфера

    Очевидно, атака грубой силы шифра Плейфера очень трудна. Размер домена — 25! (факториал 25 ). Кроме того, шифровка скрывает частоту отдельных букв.

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

    Шифр Виженера

    Один интересный вид многоалфавитного шифра был создан Блезом де Виженером, французским математиком шестнадцатого столетия. Шифр Виженера использует различную стратегию создания потока ключей. Поток ключей — повторение начального потока ключа засекречивания длины m, где мы имеем 1 < m < 26. Шифр может быть описан следующим образом: (k1, k2, …., km) — первоначальный ключ засекречивания, согласованный Алисой и Бобом.

    P = P1P2P3…..	
    C = C1C2C3…..	
    k = [(k1,k2), (k3,k4),…..]
    Шифрование Ci =  ki                
    Дешифрование Pi = ki

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

    Пример 4.16

    Посмотрим, как мы можем зашифровать сообщение "She is listening (Она слушает) ", используя ключевое слово на 6 символов "PASCAL". Начальный поток ключей — это (15, 0, 18, 2, 0, 11). Поток ключей — повторение этого начального потока ключей (столько раз, сколько необходимо).

    Исходный текстs h e i s l i s t e n i n g
    Значения P18 07 04 08 18 11 08 18 19 04 13 08 13 06
    Поток ключей15 00 18 02 00 11 15 00 18 02 00 11 15 00
    Значения C07 07 22 10 18 22 23 18 11 6 13 19 02 06
    Шифрованный текстH H W K S W X S L G N T C G

    Пример 4.17

    Шифр Виженера может рассматриваться как комбинации аддитивных шифров. Рисунок 4.14 показывает, что исходный текст предыдущего примера можно рассматривать как состоящий из нескольких частей по шесть элементов в каждом (хотя в одном не хватило букв исходного текста), где каждый из элементов зашифрован отдельно. Рисунок поможет нам позже понять криптоанализ шифров Виженера. Имеется m частей исходного текста, каждый зашифрован различным ключом, чтобы разделить зашифрованный текст на m. частей.

    Пример 4.18

    Разобрав пример 4.18, мы убедимся, что аддитивный шифр — частный случай шифра Виженера, в котором m = 1.

    Список Виженера

    Другой способ рассмотрения шифров Виженера — с помощью того, что названо списком Виженера (Vigenere tableau) и показано в таблице 4.3.

    (рис 4.14) Шифр Виженера как комбинация аддитивных шифров
    Список Виженера
    a b c d e f g h i j k l m n o p q r s t u v w x y z
    AA B C D E F G H I J K L M N O P Q R S T U V W X Y Z
    BB C D E F G H I J K L M N O P Q R S T U V W X Y Z A
    CC D E F G H I J K L M N O P Q R S T U V W X Y Z A B
    DD E F G H I J K L M N O P Q R S T U V W X Y Z A B C
    EE F G H I J K L M N O P Q R S T U V W X Y Z A B C D
    FF G H I J K L M N O P Q R S T U V W X Y Z A B C D E
    GG H I J K L M N O P Q R S T U V W X Y Z A B C D E F
    HH I J K L M N O P Q R S T U V W X Y Z A B C D E F G
    II J K L M N O P Q R S T U V W X Y Z A B C D E F G H
    JJ K L M N O P Q R S T U V W X Y Z A B C D E F G H I
    KK L M N O P Q R S T U V W X Y Z A B C D E F G H I J
    LL M N O P Q R S T U V W X Y Z A B C D E F G H I J K
    MM N O P Q R S T U V W X Y Z A B C D E F G H I J K L
    NN O P Q R S T U V W X Y Z A B C D E F G H I J K L M
    OO P Q R S T U V W X Y Z A B C D E F G H I J K L M N
    PP Q R S T U V W X Y Z A B C D E F G H I J K L M N O
    QQ R S T U V W X Y Z A B C D E F G H I J K L M N O P
    RR S T U V W X Y Z A B C D E F G H I J K L M N O P Q
    SS T U V W X Y Z A B C D E F G H I J K L M N O P Q R
    TT U V W X Y Z A B C D E F G H I J K L M N O P Q R S
    UU V W X Y Z A B C D E F G H I J K L M N O P Q R S T
    VV W X Y Z A B C D E F G H I J K L M N O P Q R S T U
    WW X Y Z A B C D E F G H I J K L M N O P Q R S T U V
    XX Y Z A B C D E F G H I J K L M N O P Q R S T U V W
    YY Z A B C D E F G H I J K L M N O P Q R S T U V W X
    ZZ A B C D E F G H I J K L M N O P Q R S T U V W X Y

    Первая строка показывает символы исходного текста, который будет зашифрован. Первая колонка содержит столбец символов, которые используются ключом. Остальная часть таблицы показывает символы зашифрованного текста. Чтобы найти зашифрованный текст для исходного текста "she listening", используя слово "PASCAL" как ключ, мы можем найти "s" в первой строке, "P" в первом столбце, на пересечении строки и столбца — символ из зашифрованного текста "H". Находим "h" в первой строке и "A" во втором столбце, на пересечении строки и столбца — символ "H" из зашифрованного текста. И повторяем те же действия, пока все символы зашифрованного текста не будут найдены.

    Криптоанализ шифра Виженера

    Шифры Виженера, подобно всем многоалфавитным шифрам, не сохраняют частоту символов. Однако Ева может использовать некоторые методы для того, чтобы расшифровать перехваченный зашифрованный текст. Криптоанализ в данном случае состоит из двух частей: находят длину ключа и потом непосредственно находят ключ.

  • Были изобретены несколько методов, чтобы найти длину ключа. Один метод рассмотрим ниже. В так называемом тесте Казиского (Kasiski) криптоаналитик в зашифрованном тексте ищет повторные сегменты по крайней мере из трех символов. Предположим, что найдены два сегмента, и расстояние между ними d. Криптоаналитик предполагает, что m делит d, где m — длина ключа. Если можно найти больше повторных сегментов с расстоянием d1, d2, …., dn, тогда НОД(d1, d2, …., dn....)/ m. Это предположение логично, потому что если два символа одинаковы и $$-k \times m$$ (k = 1, 2...) — символы, выделенные в исходном тексте, то одинаковы и $$k \times m$$ символы, выделенные в зашифрованном тексте. Криптоаналитик использует сегменты по крайней мере из трех символов, чтобы избежать случаев, где символы имеют один и тот же ключ. Пример 4.20 может помочь нам п онять эти рассуждения.
  • После того как длина ключа была найдена, криптоаналитик использует идею, показанную в примере 4.18. Здесь зашифрованный текст делится на m различных частей и применяется метод, используемый в криптоанализе аддитивного шифра, включая атаку частоты. Каждая часть зашифрованного текста может быть расшифрована и соединена с другими, чтобы создать целый исходный текст, другие слова. Весь зашифрованный текст не сохраняет частоту отдельной буквы исходного текста, но каждая часть делает это.
  • Пример 4.19

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

    LIOMWGFEGGDVWGHHCQUCRHRWAGWIOWQLKGZETKKMEVLWPCZVG'TH VTSGXQOVGCSVETQLTJSUMVWVEUVLXEWSLGFZMVVWLGYHCUSWXQH - KVGSHEEVFLCFDGVSUMPHKIRZDMPHHBVWVWJWIXGFWLTSHGJOUEEHH- VUCFVGOWICQLIJSUXGLW

    Тест Казиского на повторение сегментов на три символа приводит к результатам, показанным в таблице 4.4.

    Тест Казиского для примера 4.19
    Комбинация Первое расстояние Второе расстояние Разность
    JSU 68 168 100
    SUM 69 117 48
    VWV 72 132 60
    MPH 119 127 8

    Наибольший делитель - 4, что означает длину ключа, пропорциональную 4. Сначала пробуем m = 4. Делим зашифрованный текст на четыре части. Часть C1 состоит из символов 1, 5, 9...; часть C2 состоит из символов 2, 6, 10..., и так далее. Используем статистическую атаку каждой части отдельно. Перебираем расшифровывающиеся части по одному символу одновременно, чтобы получить целый исходный текст.

    С1 LWGW CRAO KTEP GTQC TJVU EGVG UQGE CVPR PVJG TJEU GCJG
    P1 jueu apym ircn eroa rhts thin ytra hcie ixst hcar rehe
    C2 IGGG QHGW GKVC TSOS QSWV WFVY SHSV FSHZ HWWF SOHC OQSL
    P2 usss ctsl swho feae ceih cete soec atnp nkhe rhck esex
    C3 OFDN URWQ ZKLZ HGVV LUVL SZWH WKHF DUKD HVIW HUHF WLUW
    P3 lcae rotn whiw edss irsi irh eteh retl tiid eatr airt
    C4 MEVN CWIL EMWV VXGE TMEX LMLC XVEL GMIM BWHL GEVV ITX
    P4 iard yseh aisr rtca piaf pwte thec arha esft erec tpt

    Если исходный текст не имеет смысла, попробуем с другим m.

    В рассматриваемом случае исходный текст имеет смысл (читаем по столбцам).

    Julius Caesar used a cryptosystem in his wars, which is now referred to as Caesar chipper. It is an additive chipper with the key set to three. Each character in the plaintext is shift three characters to create ciphertext.

    Перевод этого текста приведен ниже.

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

    Шифр Хилла

    Другой интересный пример многоалфавитного шифра — шифр Хилла, изобретенный Лестером С. Хиллом. В отличие от других многоалфавитных шифров, которые мы уже рассмотрели, здесь исходный текст разделен на блоки равного размера. Блоки зашифрованы по одному таким способом, что каждый символ в блоке вносит вклад в шифрование других символов в блоке. По этой причине шифр Хилла принадлежит к категории шифров, названных блочными шифрами. Другие шифры, которые мы изучали до сих пор, принадлежат к категории, называемой шифры потока. Отличие между шифрами блока и шифрами потока обсуждаются в конце этой лекции.

    В шифре Хилла ключ — квадратная матрица размера $$m \times m$$., в котором m. является размером блока. Если мы вызываем ключевую матрицу K, то каждый элемент ki,j определяется матрицей, как показано на рис. 4.15.

    (рис 4.15) Ключ в шифре Хилла

    Покажем, как получается один блок зашифрованного текста. Если мы обозначим m символов блоков исходного текста P1, P2 ..., Pm, соответствующие символы в блоках зашифрованного текста будут C1, C2 , ..., Cm. Тогда мы имеем

    C1 = P1k11+P2k21+……+Pmkm1
    C2 = P1k12+P2k22+……+Pmkm2
    ………………………………………………………
    Cm = P1k1m+ P2k2m +……+ Pmkmm

    Уравнения показывают, что каждый символ зашифрованного текста, такой, как C1, зависит от символов всего исходного текста в блоке (P1, P2,..., Pm). Однако мы должны знать, что не все квадратные матрицы имеют мультипликативные инверсии в Z26, так что Алиса и Боб должны быть осторожны в выборе ключа. Боб не сможет расшифровать зашифрованный текст, передаваемый Алисой, если матрица не имеет мультипликативной инверсии.

    Ключевая матрица в шифре Хилла должна иметь мультипликативную инверсию.

    Пример 4.20

    Использование матриц позволяет Алисе зашифровать весь исходный текст. В этом случае исходный текст $$-l \times m$$ — матрица, в которой l является номером блоков. Например, исходный текст "code is ready" ("код готов"), может быть представлен как матрица $$3 \times 4$$ при добавлении дополнительного фиктивного символа "z" к последнему блоку и удалении пробелов; зашифрованный текст выглядит как "OHKNIHGKLISS". Боб может расшифровать сообщение, используя инверсную матрицу-ключ. Шифрование и дешифрование показано на рис. 4.16.

    (рис 4.16) Пример 4.20

    Криптоанализ шифров Хилла

    Криптоанализ только для зашифрованного шифрами Хилла текста труден. Во-первых, атака грубой силы при шифре Хилла чрезвычайно сложна, потому что матрица-ключ — $$m \times m$$. Каждый вход может иметь одно из 26 значений. Во-первых, это означает размер ключа $${26^{m \times m}}$$. Однако, не все матрицы имеют мультипликативную инверсию. Поэтому область существования ключей все же не такая огромная.

    Во-вторых, шифры Хилла не сохраняют статистику обычного текста. Ева не может провести анализ частоты отдельных букв из двух или трех букв. Анализ частоты слов размера m мог бы cработать, но очень редко исходный текст имеет много одинаковых строк размера m. Ева, однако, может провести атаку на шифр, используя метод знания исходного текста, если она знает значение m и знает пары "исходный текст/зашифрованный текст", по крайней мере m блоков. Блоки могут принадлежать тому же самому сообщению или различным сообщениям, но должны быть различны. Ева может создать две $$m \times m$$. матрицы, P (обычный текст) и C (зашифрованный текст), в котором соответствующие строки представляют известные пары обычного/зашифрованного текста. Поскольку C = PK, Ева может использовать отношения K = CP-1, чтобы найти ключ, если P является обратимым. Если P не является обратимым, то Ева должна задействовать различные наборы m пар обычного/зашифрованного текста.

    Если Ева не знает значение m, она может попробовать различные значения при условии, что m не является очень большим.

    Пример 4.21

    Предположим, что Ева знает, что m = 3. Она перехватила три пары блока исходного/зашифрованного текста (не обязательно из того же самого сообщения), как показано на рис. 4.17.

    (рис 4.17) Пример 4.22, формирования шифра зашифрованного текста

    Она составляет матрицы P и C из этих пар. Поскольку в данном случае матрица P обратима, она инвертирует эту матрицу и умножает ее на C, что дает матрицу ключей K, как это показано на рис. 4.18.

    (рис 4.18) Пример 4.22, поиска ключа

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

    Одноразовый блокнот

    Одна из целей криптографии — идеальная секретность. Исследования Шеннона показали, что идеальная секретность может быть достигнута, если символы исходного текста зашифрованы с помощью ключа, выбранного случайно из некоторой области ключей. Например, аддитивный шифр может быть легко взломан, потому что используется один и тот же ключ. Но даже и этот шифр может быть идеальным, если ключ, который применяется для шифрования каждого символа, выбран случайно из множества ключей (00, 01, 02.... 25): если первый символ зашифрован с помощью ключа 04, второй символ — с помощью ключа 02, третий — с помощью ключа 21, и так далее. Атака "только для зашифрованного текста" становится невозможна. Если передатчик изменяет ключ, используя каждый раз иную случайную последовательность целых чисел, другие типы атак также будут невозможны.

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

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

    Роторный шифр

    Хотя шифры одноразового блокнота не применяются на практике, один шаг от него к более защищенному шифру — роторный шифр. Он возвращается к идее моноалфавитной подстановки, но меняет принцип отображения исходного текста в символы зашифрованного текста для каждого символа исходного текста. Рисунок 4.19 показывает упрощенный пример роторного шифра.

    (рис 4.19) Роторный шифр

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

    Начальная установка (позиция) ротора — ключ засекречивания между Алисой и Бобом — это зашифрованный первый символ исходного текста. Используя начальную установку, второй символ зашифрован после того, как проведено первое вращение (на рис. 4.19 — это поворот на 1/6 круга, на реальной установке — поворот на 1/26 ), и так далее.

    Слово с тремя буквами, такими как "bee", зашифровано как "BAA", если ротор неподвижен (моноалфавитный шифр подстановки), но оно будет зашифровано как "BCA", если он вращается (роторный шифр). Это показывает, что роторный шифр — многоалфавитный шифр, потому что два появления того же самого символа исходного текста зашифрованы как различные символы.

    Роторный шифр является стойким к атаке грубой силы, как моноалфавитный шифр подстановки, потому что Ева должна найти первое множество отображений среди возможных 26! (факториал). Роторный шифр является намного более стойким к статистической атаке, чем моноалфавитный шифр подстановки, потому что в нем не сохраняется частота употребления буквы.

    Машина "Энигма"

    Машина "Энигма" была первоначально изобретена в Сербии, но была изменена специалистами немецкой армии и интенсивно использовалась в течение Второй Мировой Войны. Машина базировалась на принципе шифров ротора. Рисунок 4.20 показывает упрощенную схему построения машины.

    (рис 4.20) Примерное построение Машины Энгима

    Ниже перечислены главные компоненты машины.

  • Клавиатура с 26 -ю ключами, используемыми для того, чтобы вводить исходный текст при шифровании, и для того, чтобы вводить зашифрованный текст при расшифровке.
  • Ламповая панель с 26 -ю лампами, которая показывает символы зашифрованного текста при шифровании и символы исходного текста при дешифровании.
  • Коммутационная панель с 26 -ю штепселями, вручную подключенными 13 -ю проводами. Конфигурация изменяется каждый день, чтобы обеспечить различное скрэмблирование.
  • Три замонтированных ротора, такие же как рассмотренные в предыдущей секции. Эти три ротора выбираются ежедневно из пяти доступных роторов. Быстрый ротор вращается на 1/26 поворота при каждом символе, введенном с помощью клавиатуры. Средний ротор делает 1/26 поворота при каждом полном повороте быстрого ротора. Медленный ротор делает 1/26 поворота для каждого законченного поворота среднего ротора.
  • Отражатель, который является постоянным и предварительно замонтированным.
  • Кодовая книга — справочник шифров

    Чтобы использовать "Энигму", была издана кодовая книга, которая в течение каждого дня дает несколько параметров настройки, включая:

    a. три ротора, которые должны быть выбраны из пяти доступных;

    b. порядок, в котором эти роторы должны быть установлены;

    c. параметры установок для коммутационной панели;

    d. код с тремя буквами дня.

    Процедура шифровавшая Сообщения

    Чтобы зашифровать сообщение, оператор должен последовательно сделать шаги, перечисленные ниже:

  • установить стартовую позицию роторов согласно коду дня. Например, если код был "HUA", роторы должны быть инициализированы на "H", "U" и "A" соответственно;
  • выбрать случайный код с тремя буквами, например ACF. Зашифровать текст "ACFACF" (повторный код), используя начальную установку роторов шага 1. Например, предположим, что зашифрованный код — "OPNABT" ;
  • установить стартовые позиции роторов к OPN (половина зашифрованного кода);
  • добавить зашифрованные шесть букв, полученных на шаге 2 ( "OPNABT" ), в конец к начальному сообщению;
  • зашифровать сообщение, включая код с 6 -ю буквами. Передать зашифрованное сообщение.
  • Процедура для расшифровки сообщения

    Чтобы расшифровывать сообщение, оператор должен сделать следующие шаги:

  • получить сообщение и отделить первые шесть букв;
  • установить стартовую позицию роторов согласно коду дня;
  • расшифровать первые шесть букв писем, используя начальную установку шага 2 ;
  • установить позиции роторов на первую половину расшифрованного кода;
  • расшифровать сообщение (без первых шести букв).
  • Криптоанализ

    Мы знаем, что "Энигма" во время войны была взломана, хотя германская армия и остальная часть мира не знала об этом факте еще несколько десятилетий после того. Вопрос: как такой сложный шифр был атакован? Хотя немецкий язык весьма сложен, союзники, так или иначе, получили некоторые копии машин. Следующим шагом был поиск параметров установки в течение каждого дня и кода, передаваемого для инициализации роторов для каждого сообщения. Изобретение первого компьютера помогло союзникам преодолеть эти трудности. Подробное изображение машины "Энигма" и ее криптоанализ может быть найден на сайтах, посвященных этой машине.

    4.3. Шифры перестановки

    Шифр перестановки не заменяет одним символом другой, вместо этого он изменяет местоположение символов. Символ в первой позиции исходного текста может появиться в десятой позиции зашифрованного текста. Символ, который находится в восьмой позиции исходного текста, может появиться в первой позиции зашифрованного текста. Другими словами, шифр перестановки ставит в другом порядке (перемещает) символы.

    Шифр перестановки меняет порядок следования символов.

    Шифры перестановки без использования ключа

    Простые шифры перестановки, которые применялись в прошлом, не использовали ключ. Есть два метода для перестановки символов. В первом методе текст записывается в таблице столбец за столбцом и затем передаётся строка за строкой. Во втором методе текст написан в таблицы строка за строкой и затем передаётся столбец за столбцом.

    Пример 4.22

    Хороший пример шифра без использования ключа — шифр изгороди (rail fence cipher). В этом шифре исходный текст размещен на двух линиях как зигзагообразный шаблон (что может рассматриваться как столбец за столбцом таблицы, которая имеет две строки); зашифрованный текст составляется при чтении шаблона строка за строкой. Например, чтобы передать сообщение "Meet me at the park" ( "Встречай меня в парке" ), Алиса пишет Бобу:

    Алиса создает зашифрованный текст "MEMATEAKETETHPR", посылая первую строку, сопровождаемую второй строкой. Боб получает зашифрованный текст и разделяет его пополам (в этом случае вторая половина имеет на один символ меньше). Первая половина формы — первая строка; вторая половина — вторая строка. Боб читает результат по зигзагу. Поскольку нет никакого ключа и номер строк установлен ( 2 ), криптоанализ зашифрованного текста был бы очень прост для Евы. Все, что она должна знать, — это то, что используется шифр изгороди.

    Пример 4.23

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

    Алиса создает зашифрованный текст "MMTAEEHREAEK TTP", передавая символы столбец за столбцом. Боб получает зашифрованный текст и применяет обратный процесс. Он пишет полученное сообщение столбец за столбцом и читает его строка за строкой как исходный текст. Ева может легко расшифровать сообщение, если она знает число столбцов.

    Пример 4.24

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

    Второй символ в исходном тексте передвинулся на пятую позицию в зашифрованном тексте; третий символ передвинулся на девятую позицию; и так далее. Хотя символы переставлены, они сами являются шаблонами: (01, 05, 09, 13), (02, 06, 10, 14), (03, 07, 11, 15) и (04, 08, 12). В каждой секции разность между двумя смежными номерами — 4.

    Ключевые шифры перестановки

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

    Пример 4.25

    Алиса должна передать Бобу сообщение "Enemy attacks tonight" ( "Вражеские атаки сегодня вечером" ). Алиса и Боб согласились разделить текст на группы по пять символов и затем переставить символы в каждой группе. Ниже показана группировка после добавления фиктивного символа в конце, чтобы сделать последнюю группу одинаковой по размеру с другими.

    Enemy atttac kston ightz

    Ключ, используемый для шифрования и дешифрования, — ключ перестановки, который показывает, как переставлять символы. Для этого сообщения примем, что Алиса и Боб использовали следующий ключ:

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

    EEMYN TAACT TKONS HITZG

    Алиса передает зашифрованный текст "EEMYNTAACTTKONSHITZG" Бобу. Боб делит зашифрованный текст на группы по 5 символов и, используя ключ в обратном порядке, находит исходный текст.

    Объединение двух подходов

    Современные шифры перестановки, чтобы достигнуть лучшего скремблирования, объединяют два подхода. Шифрование и дешифрование делается в три шага. Первый: текст пишется таблицей строка за строкой. Второй: делается перестановка, изменяя порядок следования столбцов. Третий: столбец за столбцом читается новая таблица. Первые и третьи шаги обеспечивают бесключевое глобальное изменение порядка следования; второй шаг обеспечивает блочную ключевую перестановку. Эти типы шифров упоминаются часто как ключевые шифры перестановки столбцов.

    Пример 4.26

    Предположим, что Алиса снова зашифровывает сообщение в примере 4.25, на сей раз используя объединенный подход. Шифрование и дешифрование показано на рис. 4.21.

    (рис 4.21) Пример 4.27

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

    Ключи

    В примере 4.27 единственный ключ использовался в двух направлениях для изменения порядка следования столбцов — вниз для шифрования, вверх для дешифрования. Обычно принято создавать два ключа для этого графического представления: один для шифрования и один для дешифрования. Ключи накапливаются в таблицах, имеющих один адрес (вход) для каждого столбца. Вход содержит исходный номер столбца — номер столбца пункта назначения, указывающий его положение от номера входа. Рисунок 4.22 показывает, как эти две таблицы могут быть созданы с помощью графического представления ключа.

    (рис 4.22) Шифрование / дешифрование в шифре перестановки

    Ключ шифрования — (3 1 4 5 2). Первый вход показывает, что столбец 3 (содержание) в источнике становится столбцом 1 (положение или индекс входа) в пункте назначения. Ключ дешифрования — (2 5 1 3 4). Первый вход показывает, что столбец 2 в источнике становится столбцом 1 в пункте назначения.

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

    (рис 4.23) Инверсия ключа в шифре перестановки

    Использование матриц

    Мы можем использовать матрицы, чтобы показать процесс шифрования/дешифрования для шифра перестановки. Исходный текст и зашифрованный текст — матрица $$l \times m$$., представляющая числовые значения символов; ключи — квадратные матрицы размера $$m \times m$$. В матрице перестановки каждая строка или столбец имеют строго одну единицу (1), и остальная часть значений — нули (0). Шифрование выполняется умножением матрицы исходного текста на ключевую матрицу, чтобы получить матрицу зашифрованного текста; дешифрование выполняется умножением зашифрованного текста на инверсию ключевой матрицы, после чего получаем исходный текст.

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

    Пример 4.27

    Рисунок 4.24 показывает процесс шифрования. Умножение матрицы $$4 \times 5$$ исходного текста на ключевую матрицу шифрования $$5 \times 5$$ дает матрицу зашифрованного текста $$4 \times 5$$. Матричная манипуляция требует изменения символов в примере 4.27 к их числовым значениям (от 00 до 25 ). Обратите внимание, что матричное умножение обеспечивает только перестановку столбцов; чтение и запись в матрицу должны быть обеспечены остальной частью алгоритма.

    (рис 4.24) Представление ключа в виде матрицы в шифре перестановок

    Криптоанализ шифров перестановки

    Шифры перестановки уязвимы к нескольким видам атак только для зашифрованного текста.

    Статистическая атака

    Шифр перестановки не изменяет частоту букв в зашифрованном тексте; он только переставляет буквы. Так что первая атака, которая может быть применена, - анализ частоты отдельной буквы. Этот метод может быть полезен, если длина зашифрованного текста достаточно большая. Мы такую атаку рассматривали раньше. Однако шифры перестановки не сохраняют частоту пар и триграмм. Это означает, что Ева не может использовать такие инструментальные средства. Фактически, если шифр не сохраняет частоту пар и триграмм, но сохраняет частоту отдельных букв, то вероятнее всего, что это шифр перестановки.

    Атака грубой силы

    Ева, чтобы расшифровать сообщение, может попробовать все возможные ключи. Однако число ключей может быть огромно 1! + 2! + 3! + … + L!, где L — длина зашифрованного текста. Лучший подход состоит в том, чтобы попробовать отгадать число столбцов. Ева знает, что число столбцов делится на L. Например, если длина шифра — 20 символов, то $$20 = 1 \times 2 \times 2 \times 5$$. Это означает, что номером столбцов может быть комбинация этих коэффициентов (1, 2, 4, 5, 10, 20). Однако только один столбец и только одна строка — маловероятные варианты.

    Пример 4.28

    Предположим, что Ева перехватила сообщение зашифрованного текста "EEMYNTAACTTKONSHITZG". Длина сообщения L = 20, число столбцов может быть 1, 2, 4, 5, 10 или 20. Ева игнорирует первое значение, потому что это означает только один столбец и оно маловероятно.

    a. Если число столбцов — 2, единственные две перестановки — (1,2) и (2, 1). Первое означает, что перестановки не было. Ева пробует вторую комбинацию. Она делит зашифрованный текст на модули по два символа "EE MY NT AA CT TK ON SH IT ZG". Затем она пробует переставлять каждый модуль из них, получая текст "ee ym nt aa tc kt no hs ti gz", который не имеет смысла.

    b. Если номер столбцов — 4, тогда имеется 4! = 24 перестановки. Первая перестановка (1 2 3 4) означает, что не было никакой перестановки. Ева должна попробовать остальные. После испытания всех 23 возможностей Ева находит, что никакой исходный текст при таких перестановках не имеет смысла.

    c. Если число столбцов — 5, тогда есть 5! = 120 перестановок. Первая (1 2 3 4 5) означает отсутствие перестановки. Ева должна попробовать остальные. Перестановка (2 5 13 4) приносит плоды — исходный текст "enemyattackstonightz", который имеет смысл после удаления фиктивной буквы z и добавления пробелов.

    Атака по образцу

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

    1 -й символ в зашифрованном тексте получается из 3 -го символа исходного текста. 2 -й символ в зашифрованном тексте получается из 8 -го символа исходного текста. 20 -й символ в зашифрованном тексте получается из 17 -го символа исходного текста, и так далее. У нас имеются образцы в вышеупомянутом списке. Мы имеем пять групп: (3, 8, 13, 18), (1, 6, 11, 16), (4, 9, 14, 19), (5, 10, 15, 20) и (2, 7, 12, 17). Во всех группах разность между двумя смежными номерами — 5. Эта регулярность может использоваться криптоаналитиком, чтобы взломать шифр. Если Ева знает или может предположить число столбцов (в этом случае оно равняется 5 ), она может преобразовать зашифрованный текст в группы по четыре символа. Перестановка групп может обеспечить ключ к нахождению исходного текста.

    Шифры c двойной перестановкой

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

    Пример 4.29

    Повторим пример 4.26, где использована двойная перестановка. Рисунок 4.25 показывает процесс.

    (рис 4.25) Двойной шифр перестановки

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

    13  16	05  07	03  06	10  20	18  04	10  12	01  09	15  17	08  11	19  02

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

    4.4. Шифры потока и блочные шифры

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

    Шифры потока

    В шифрах потока шифрование делается в один момент времени над одним символом (таким, как буква или бит). Мы имеем поток исходного текста, поток зашифрованного текста и поток ключей. Обозначим исходный поток P, поток зашифрованного текста — C и поток ключей — K.

    P = P1P2P3,…             
    C = C1C2C3,…           
    K = (k1k2k3,…)
    C1 = Ek1(P1)    
    C2 = Ek2(P2) 
    C3 = Ek3(P3)…

    Рисунок 4.26 показывает идею указанного ранее шифра потока. Символы обычного текста принимаются алгоритмом шифрования по одному. Символы зашифрованного текста также создаются по одному в один и тот же момент времени. Ключевой поток может быть создан многими способами. Это может быть поток с заранее определенными значениями; это может быть только одно значение, используемое алгоритмом. Значения могут зависеть от исходного текста или символов зашифрованного текста. Значения могут также зависеть от предыдущих ключевых значений.

    (рис 4.26) Шифр потока

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

    Пример 4.30

    Аддитивные шифры могут быть отнесены к категории шифров потока, в которых ключевой поток является повторным значением ключа. Другими словами, ключевой поток рассматривают как заранее определенный поток ключей или K = (k,k,…k). В этом шифре, однако, каждый символ в зашифрованном тексте зависит только от соответствующего символа в исходном тексте, потому что ключевой поток генерировался независимо.

    Пример 4.31

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

    Пример 4.32

    Шифры Виженера — также шифры потока согласно определению. В этом случае ключ потока — повторение m значений, где m. — размер ключевого слова. Другими словами,

    K = (k1,k2,….km,k1,k2,……km….)

    Пример 4.33

    Мы можем установить критерий для разделения шифров потока, основанных на ключевых потоках. Мы можем сказать, что шифр потока — моноалфавитный шифр, если значение ki не зависит от исходного символа исходного текста в потоке исходного текста; в противном случае шифр является многоалфавитным.

  • Аддитивные шифры являются моноалфавитными, потому что ki в ключевом потоке — зафиксированный (постоянный), он не зависит от позиции символа в исходном тексте.
  • Моноалфавитные шифры подстановки являются явно моноалфавитными шифрами потока, потому что ki не зависит от позиции соответствующего символа в потоке исходного текста, а зависит лишь от значения символа в исходном тексте.
  • Шифры Виженера — многоалфавитные шифры, потому что ki явно зависит от позиции символа исходного текста. Однако зависимость является циклической. Одинаковый ключ для двух символов разделен m позициями.
  • Блочные шифры

    В блочном шифре группа символов исходного текста размера m (m>1) зашифровывается, создавая вместе группу зашифрованного текста одного и того же размера. Основанный на этом определении блочный шифр использует единственный ключ, чтобы зашифровать целый блок, даже если ключ делает перемножение значений. Рисунок 4.27 показывает принципы блочного шифра.

    (рис 4.27) Блочный шифр

    В блочном шифре блок зашифрованного текста зависит от целого блока исходного текста.

    Пример 4.34

    Шифры Плейфера — блочные шифры. Размер блока — m = 2. Два символа зашифрованы вместе.

    Пример 4.35

    Шифры Хилла — блочные шифры. Блок исходного текста размера 2 или больше зашифрован, совместно используя единственный ключ (матрицу). В этих шифрах значение каждого символа в зашифрованном тексте зависит от всех значений символов в исходном тексте. Хотя ключ может быть получен из $$m \times m$$. значений, он рассматривается как единственный ключ.

    Пример. 4.36

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

    Комбинация

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

    4.5. Рекомендованная литература

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

    Книги

    Несколько книг рассматривают классические шифры с симметричным ключом. [Kah96] и [Sin99] дают полную историю этих шифров. [Sti06], [Bar02], [Cou99], [Sta06], [Mao04] и [Garol] приводят хороший анализ технических деталей.

    Сайты

    Нижеследующие сайты дают больше информации о темах, рассмотренных в этой лекции.

  • http://www.cryptogram.org
  • http://www.cdt.org/crypto/
  • http://www.cacr.math.uwaterloo.ca/
  • http://www.acc.stevens.edu/crypto.php
  • http://www.crypto .com/
  • http: // theory.lcs.mit.edu / ~ rivest/crypto-security.html
  • http://www.trincoll.edu/depts/cpsc/cryptography/substitution.html
  • http://hem.passagen.se/tan01/transpo.html
  • http://www.strangehorizons.comy2001/20011008/steganography.shtml
  • 4.6. Итоги

  • Шифрование симметричными ключами использует единственный ключ для шифрования и для дешифрования. Алгоритмы шифрования и дешифрования являются обратными друг друга.
  • Первоначальное сообщение называется исходным текстом. Сообщение, которое передаётся через канал, называется зашифрованным текстом. Чтобы создавать зашифрованный текст из исходного текста, алгоритм шифрования пользуется общедоступным ключом засекречивания. Чтобы создавать исходный текст из зашифрованного текста, используется алгоритм дешифрования тот же самый ключ засекречивания.
  • На основании принципа Керкгоффса, нужно всегда принимать, что противник знает алгоритм шифрования/дешифрования. Устойчивость шифра к атаке должна быть основана только на тайне ключа.
  • Криптоанализ — наука и искусство "взлома" шифров. Есть четыре общих типа атак криптоанализа: атака только на зашифрованный текст, атака по образцу, атака с выборкой исходного текста, атака с выборкой зашифрованного текста.
  • Традиционные шифры с симметричным ключом могут быть разделены на две обширных категории: шифры подстановки и шифры перестановки. Шифр подстановки заменяет один символ другим символом. Шифр перестановки переупорядочивает символы.
  • Шифры подстановки могут быть разделены на две обширных категории: моноалфавитные шифры и многоалфавитные шифры. В моноалфавитной подстановке отношения между символом в исходном тексте и символом в зашифрованном тексте являются непосредственными. В многоалфавитной подстановке отношения между символами в исходном тексте и символами в зашифрованном тексте — "один ко многим".
  • Моноалфавитные шифры включают в себя аддитивные, мультипликативные, аффинные и моноалфавитные шифры подстановки.
  • Многоалфавитные шифры включают в себя шифры: автоключевой, Плейфера, Виженера, Хилла, одноразового блокнота, ротора, и шифры "Энигмы".
  • Шифры перестановки включают в себя: бесключевой, ключевой шифры и шифры с двойной перестановкой.
  • Симметричные шифры могут также быть разделены на две обширных категории: шифры потока и блочные шифры. В шифре потока шифрование и дешифрование одного символа производятся в один момент времени. В блочном шифре символы в блоке зашифрованы вместе. Практически, блоки исходного текста зашифрованы индивидуально, но они используют поток ключей, чтобы зашифровать все сообщение блок за блоком.
  • 4.7. Набор для практики

    Обзорные вопросы

  • Определите шифр с симметричным ключом.
  • Поясните отличия между шифром подстановки и шифром перестановки.
  • Поясните отличия между моноалфавитным и многоалфавитным шифрами.
  • Поясните отличия между шифром потока и блочным шифром.
  • Все ли шифры потока являются моноалфавитными? Поясните.
  • Все ли блочные шифры являются многоалфавитными? Поясните.
  • Перечислите три моноалфавитных шифра.
  • Перечислите три многоалфавитных шифра.
  • Перечислите два шифра перестановки.
  • Перечислите четыре вида атак криптоанализа.
  • Упражнения

  • Маленький частный клуб имеет только 100 членов. Ответьте на следующие вопросы:
  • Сколько ключей засекречивания необходимо иметь, если все члены клуба хотят передавать секретные сообщения друг другу?
  • Сколько ключей засекречивания необходимо, если каждый доверяет президенту клуба? Если один член клуба должен передать сообщение другому, он сначала передает это президенту; президент тогда передает сообщение другому члену клуба.
  • Сколько ключей засекречивания необходимо, если президент решает, что два члена клуба, которые должны связаться друг с другом, должны сначала войти в контакт с ним? Президент тогда создает временный ключ, который используется между этими двумя членами клуба. Временный ключ зашифровывается и посылается обоим членам клуба.
  • Археологи нашли новый манускрипт, написанный на неизвестном языке. Позже они нашли маленькую табличку, которая содержит предложение, написанное на том же самом языке с переводом на греческий язык. Используя табличку, они смогли прочитать первоначальную рукопись. Какую атаку использовали археологи?
  • Алиса может использовать только аддитивный шифр на ее компьютере, чтобы передать сообщение другу. Она думает, что сообщение будет более безопасно, если она зашифрует его два раза, каждый раз с различным ключом. Действительно ли она права? Обоснуйте ваш ответ.
  • Алиса хочет передать длинное сообщение. Она использует моноалфавитный шифр подстановки. Она думает, что если она сожмет сообщение, это может защитить текст от атаки Евы по частоте отдельных букв. Помогает ли сжатие? Должна ли она сжать сообщение, прежде чем зашифрует его или после этого? Обоснуйте ваш ответ.
  • Алиса часто должна зашифровывать исходный текст, использующий вместе буквы (от a до z ) и цифры (от 0 до 9 ).
  • Если она применяет аддитивный шифр, что является множеством ключей? Какие будут модули?
  • Если она применяет мультипликативный шифр, что является множеством ключей? Какие будут модули?
  • Если она применяет аффинный шифр, что является множеством ключей? Какие будут модули?
  • Предположим, что к исходному тексту добавляются пробелы, точки и знаки вопроса, чтобы увеличить множество ключей элементарных шифров.
  • Каково множество ключей, если используется аддитивный шифр?
  • Каково множество ключей, если используется мультипликативный шифр?
  • Каково множество ключей, если используется аффинный шифр?
  • Алиса и Боб решили игнорировать принципы Керкгоффса и скрывают тип шифра, который они используют.
  • Как может Ева понять, использовались ли шифр подстановки или шифр перестановки?
  • Если Ева знает, что использованный шифр — шифр подстановки, как может она определить, был ли он аддитивным, мультипликативным или аффинным шифром?
  • Если Ева знает, что использованный шифр — шифр перестановки, как она может определить размер секции ( m )?
  • В каждом из следующих шифров — какое максимальное число символов может быть изменено в зашифрованном тексте, если в исходном тексте изменен только единственный символ?
  • Аддитивный
  • Мультипликативный
  • Аффинный
  • Виженера
  • Автоключевой
  • Одноразовый блокнот
  • Роторный
  • "Энигма"
  • В каждом из следующих шифров — какое максимальное число символов будет изменено в зашифрованном тексте, если в исходном тексте изменен только один символ?
  • Одиночная перестановка
  • Двойная перестановка
  • Плейфеер
  • Для каждого из следующих шифров определите, является ли он шифром потока или блочным шифром. Обоснуйте ваши ответы.
  • Плейфеер
  • Автоключ
  • Одноразовый блокнот
  • Ротор
  • "Энигма"
  • Зашифруйте сообщение "this is exercise" ( "это — упражнение" ), используя один из следующих шифров. Игнорируйте пробелы между словами. Расшифруйте сообщение, чтобы получить первоначальный исходный текст.
  • Аддитивный шифр с ключом = 20
  • Мультипликативный шифр с ключом = 15
  • Аффинный шифр с ключом = (15, 20)
  • Зашифруйте сообщение "the house is being sold tonight" ( "дом продан сегодня вечером" ), используя один из следующих шифров. Игнорируйте пространство между словами. Расшифруйте сообщение, чтобы получить исходный текст.
  • Шифр Виженера с ключом: "dollars"
  • Шифр с автоматическим ключом = 7
  • Шифр Плейфера с ключом, созданным в тексте (см. рис. 4.13)
  • Используйте шифр Виженера с ключевым словом "HEALTH", чтобы зашифровать сообщение "Life is full surprises" ( "Жизнь полна сюрпризов" ).
  • Используйте шифр Плейфера, чтобы зашифровать сообщение "The key hidden under the door pad" ( "ключ спрятан под ковриком у двери" ). Ключ засекречивания можно составить, заполняя первую и вторую часть строки со словом "GUIDANCE" и заполняя остальную часть матрицы с остальной частью алфавита.
  • Используйте шифр Хилла, чтобы зашифровать сообщение "We live in an insecure world" ( "Мы живем в опасном мире" ). Применить следующий ключ:$$\mathbf{K} = \left( \begin{array}{cc} 03 02 \\ 05 07 \end{array} \right)$$
  • Джон читает тайную книгу введения в криптографию. В одной части книги автор дает зашифрованный текст "CIW" и двумя параграфами позже говорит читателю, что это — ключ сдвига, и исходный текст — "YES" ( "да" ). В следующей лекции герой нашел табличку с выгравированным на ней текстом "XV1EWYW1". Джон немедленно разгадал фактическое значение зашифрованного текста. Какой тип атаки предпринял Джон? Каков исходный текст?
  • Ева тайно получает доступ к компьютеру Алисы и, используя ее шифр, печатает "abcdefghij" ; на экране появилось "CABDEHEGIJ". Предположим, Ева знает, что Алиса использует ключевой шифр перестановки. Ответьте на следующие вопросы:
  • Какую атаку предпринимает Ева?
  • Каков размер ключа перестановки?
  • Используйте атаку грубой силы, чтобы расшифровать следующее сообщение, зашифрованное Алисой, применяя аддитивный шифр. Предположим, что Алиса всегда использует ключ, связанный с ее днем рождения, который приходится на 13 -е число месяца.
    NCJAEZRCLASJLYODEPRLYZRCLASJLCPEHZDTOPD
  • Используйте атаку грубой силы, чтобы расшифровать следующее сообщение. Предположите, что Вы знаете: шифр — аффинный и исходный текст "ab" зашифрован "GL".
    XPALASXYFGFUKPXUSOGEUTKCDGFXANMGNVS
  • Используйте атаку частоты отдельных букв, чтобы расшифровать следующее сообщение. Предположите, что Вы знаете, что оно зашифровано с применением моноалфавитного шифра подстановки.
    ONHOVEJHWOBEVGWOCBWHNUGBLHGBGR
  • Предположим, что знаки препинания (точки, вопросительные знаки и пробелы) складываются с алфавитом шифрования шифра Хилла, потом для шифрования и дешифрования используются ключевые матрицы $$2 \times 2$$ в Z29.
  • Найдите общее количество возможных матриц.
  • Доказано, что общее количество обратимых матриц — (N2 – 1) (N2 – N), где N — число размера алфавита. Найдите множество ключей шифра Хилла, используя этот алфавит.
  • Используйте атаку частоты отдельных букв, чтобы взломать следующий зашифрованный текст. Предположите, что вы знаете, что он был создан с использованием аддитивного шифра.
    OTWEWNGWCBPQABIZVQAPMLJGZWTTQVOBQUMAPMIDGZCAB 
    EQVBMZLZIXMLAXZQVOQVLMMXAVWEIVLLIZSNZWAB 
    JQZLWNLMTQOPBVIUMLGWCBPAEQNBTGTMNBBPMVMAB
  • Используйте тест Казиского и атаку частоты отдельных букв, чтобы нарушить следующий зашифрованный текст. Предположите, что вы знаете, что он был создан шифром Виженера.
    OTWEWNGWCBPQABIZVQAPMLJGZWTTQVOBQUMAPMIDGZCAB 
    EQVBMZLZIXMLAXZQVOQVLMMXAVWEIVLLIZSNZWAB 
    JQZLWNLMTQOPBVIUMLGWCBPAEQNBTGTMNBBPMVMAB
  • Ключ шифрования в шифре перестановки — (3, 2, 6, 1, 5, 4). Найдите ключ дешифрования.
  • Покажите матричное представление ключа шифрования перестановки с ключом (3, 2, 6, 1, 5, 4). Найдите матричное представление ключа дешифрования.
  • Даны исходный текст "letusmeetnow" и соответствующий зашифрованный текст "HBCDFNOPIKLB". Известно, что алгоритм — шифр Хилла, но вы не знаете размер ключа. Найдите ключевую матрицу.
  • Шифры Хилла и мультипликативные шифры очень похожи. Шифры Хилла — блочные шифры, использующие умножение матриц; мультипликативные шифры — шифры потока, использующие скалярное умножение.
  • Определите блочный шифр, который, подобно аддитивному шифру, использует сложение матриц.
  • Определите блочный шифр, который, подобно аффинному шифру, использует умножение и сложение матриц.
  • Определите новый шифр потока. Шифр является аффинным, но ключи зависят от позиции символа в исходном тексте. Если символ исходного текста будет зашифрован в позиции i, мы можем найти ключи:
  • Мультипликативный ключ — (i mod 12) элемент в Z26*.
  • Аддитивный ключ — (i mod 26) элемент в Z26.
  • Зашифруйте сообщение "cryptography is fun" ( "криптография — забавно" ), используя этот новый шифр.

  • Предположим, что для шифра Хилла исходный текст является мультипликативной единичной матрицей ( I ). Найдите отношения между ключом и зашифрованным текстом. Используйте результат вашего исследования и попытайтесь атаковать выборку исходного текста, использующего шифр Хилла.
  • Atbash был популярным шифром среди Библейских авторов (VI век до нашей эры). В Atbash "A" — шифровалось буквой "Z", "B" был зашифрован буквой "Y", и так далее. Аналогично "Z" был зашифрован как "A", "Y" зашифрован как "B", и так далее. Предположим, что алфавит разделен на две половины и буквы в первой половине зашифрованы как буквы во второй и наоборот. Найдите тип шифра и ключа. Зашифруйте сообщение "упражнение", используя Atbash-шифр.
  • В шифре Полибиуса (Polybius — римский историк, живший в IV веке до нашей эры) каждая буква зашифрована как два целых числа. Ключ — матрица символов $$5 \times 5$$, как в шифре Плейфера. Исходный текст — матрица символов, зашифрованный текст — эти два целых числа (каждое между 1 2 3 4 5 1z q p f e 2y r o g d 3x s n h c 4w t m i/j b 5v u l k a
  • Вернуться к учебному плану