Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
cryptology_konspekt.doc
Скачиваний:
0
Добавлен:
01.03.2025
Размер:
3.09 Mб
Скачать

Раздел третий

1. Первичная классификация шифров.

По типу преобразования, которое совершает криптографический алгоритм над открытым текстом, шифры делят на два больших класса: шифры подстановки (замены) и шифры перестановки. Иногда, правда, применяется композиция двух видов шифров, что выводит полученный алгоритм из указанных классов. Такие шифры называют композиционными. Если отдельные фрагменты открытого текста (буквы или сочетания букв) заменяются их эквивалентами в шифртексте, то такой шифр называют шифром замены. А если криптографический алгоритм не меняет символы открытого текста, а лишь переставляет их местами, то такой шифр называют шифром перестановки.

Среди шифров замены выделяют шифры простой замены. Шифрующий алгоритм в этом случае представляет собой инъективное отображение алфавита открытых текстов в алфавит закрытых. Это отображение легко задать подстановкой соответствующей степени. Отсюда другое название этого класса шифров. К шифрам простой замены, как легко видеть, относятся шифры Цезаря-Августа, квадрат Полибия, аффинные шифры первого порядка, первая составляющая шифра ADFGVX. Но шифрами замены являются и некоторые полиграммные шифра (четырех квадратов, аффинные шифры порядка > 2 и др.). В данном случае полиграмма открытого текста заменяется полиграммой закрытого. В общем случае замена полиграммы может быть выглядеть более общо.

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

Более сложные замены производятся при применении полиалфавитных шифров, примером которых является шифр Виженера. Дело в том, что в этом шифре используется более одного алфавита (в простом русскоязычном варианте шифра Виженера их 33). При этом замещающий символ зависит от места на котором стоит в открытом тексте заменяемый символ. И хотя таблица Виженера представляет из себя по сути таблицу возможных сдвигов символов открытого текста, т.е. дает возможность кратного применения шифра Цезаря-Августа, простой частотный метод, который хорошо работает при однократном применении этого шифра, не срабатывает. К полиалфавитным шифрам относятся и шифры гаммирования, в основе которых лежит идея наложения т.н. гаммы на строку открытого текста. Например, пусть открытый текст представляет собой строку нулей и единиц. В качестве ключа используют случайную (псевдослучайную) строку битов соответствующей длины. Выписывают строки одну под другой и производят сложение по модулю 2. Так появляется шифртекст. Ясно, что для выявления открытого текста следует ключевую последовательность прибавить к строке шифртекста. Такие шифры ввиду их простой технической реализации и высоких криптографических качеств достаточно широко распространены.

К шифрам перестановки относятся шифр Сцитала, шифр частокола, шифр Кардано, матричный шифр обхода (вторая составляющая шифра ADFGVX) и др. Алгоритмы перемешивания могут быть самыми различными. При этом если длина открытого текста равна n, то существует, таким образом, n! вариантов расположения символов текста, т.е. ключей.

2. Симметричные криптосистемы.

К симметричным (или одноключевым) криптосистемам относят такие, в которых вся ключевая информация сохраняется в тайне. По принципу Керкгоффса этого должно быть достаточно для надежности всей системы. Ключ зашифрования может служить и ключом расшифрования, откуда второе название криптосистем этого типа. Но бывает, что ключи зашифрования и расшифрования различны, но тогда каждый из них должен получаться из другого «простым» вычислением (можно сказать, полиномиальным алгоритмом). Это последнее условие и не позволяет обнародовать, скажем, ключ зашифрования. Все исторические шифры являются одноключевыми. В качестве удобного примера приведем аффинный шифр. В этом шифре ключи для зашифрования и расшифрования, вообще говоря, различны (исключим из рассмотрения инволютивные матрицы, т.е. обратные к самим себе). Но знание любого из них немедленно приводит к вычислению другого простым алгоритмом обращения матриц. Симметричными являются известные современные криптосистемы DES, IDEA, ГОСТ 28147-89 и др.

3. Блочные шифры.

Блочными называются шифры, в которых алгоритм криптографического преобразования «работает» с последовательностью символов открытого текста фиксированной длины, например n. Такие последовательности называют блоками открытого текста. Блок есть обобщение понятия полиграммы. Для реализации процедуры шифрования блочным шифром открытый текст разбивается на блоки указанной длины, и алгоритм шифрования последовательно обрабатывает эти блоки. Например, многие современные симметричные системы работают с блоками длиной в 64 бита. После окончания шифрования блоки шифртекста собираются в единый текст. Современные же системы, построенные как блочные, часто применяют операции итерирования, при которых блок последовательно обрабатывается одним и тем же алгоритмом, но с разными входными ключами. Отдельные итерации называют при этом раундами, а используемые ключи – раундовыми подключами. Эти ключи снимаются с выхода специального генератора раундовых ключей, которые вырабатываются по определенной схеме из ключа зашифрования. Общая схема работы такого алгоритма выглядит так:

, .

где Е – алгоритм криптографического преобразования, – блок, получаемый на i-м раунде зашифрования, – подключ i -го раунда, N – число раундов зашифрования.

Процедура обратного действия – расшифрования – тогда выглядит так:

, .

Здесь D – алгоритм расшифрования, а подключи используются в обратном порядке. Такие схемы требуют, чтобы шифрующая функция Е была бы обратимой.

4. Схема Фейстеля.

Под схемой Х. Фейстеля понимают процедуру обработки блока итеративного блочного шифра, которая не требует обратимости функции зашифрования. В общем виде схема выглядит следующим образом. Блок текста в битах (четной длины) разбивают на две равные части: левую и правую . Если предстоит совершить N раундов зашифрования, то i-й раунд выглядит так:

.

Здесь и соответственно левый и правый подблоки на i-ом шаге шифрования блока, – подключ i -го раунда, F – функция зашифрования, – операция сложения по модулю 2. Итогом работы является блок . Процедура расшифрования данного блока в общем виде выглядит так:

.

В качестве функции F могут быть использованы произвольные детерминированные процедуры.

5. Общее описание DES.

Американский стандарт шифрования данных (Data Encryption Standard – DES) был принят в 1977 году. Он представляет из себя блочный симметричный алгоритм, работающий со строками длиной в 64 бита, построенный с использованием схемы шифровании Фейстеля и обрабатывающий блоки за 16 раундов. При этом используется ключ длиной в 64 бита, где 8 битов отводится для контроля четности и, таким образом, реально применяемый ключ имеет длину в 56 бит. Общая схема работы алгоритма DES выглядит так. Сначала блок текста подвергается перестановке, осуществляющей начальное перемешивание. Затем работа проходит по схеме Фейстеля. После выполнения последнего 16 раунда над блоком производится перестановка, обратная начальной.

Раундовый подключ имеет длину, равную 48 битам, который вырабатывается из 56 битного исходного ключа, записанного в два 28 битных регистра сдвига. В этих регистрах перемещается содержимое в каждом такте на количество битов, зависящее от номера раунда. Например,

номер раунда: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16

сдвиг: 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1.

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

Работа преобразования F происходит следующим образом. Сначала происходит расширение исходной 32 битной последовательности до 48 битной путем дописывания отдельных битов в соответствии с некоторой подстановкой. Результат расширения суммируется по модулю 2 с 48 битной ключевой последовательностью. Полученный 48 битный вектор поступает на вход S-боксов, основная задача которых заключается в том, чтобы заменить 48 битный вектор на 32 битный. В DES используется 8 S-боксов, имеющих 6 битные входы и 4 битные выходы. Подстановка в S-боксах осуществляется, например, так:

14 4 13 1 2 15 11 8 3 10 6 12 5 9 0 7

0 15 7 4 14 2 13 1 10 6 12 11 9 5 3 8

4 1 14 8 13 6 2 11 15 12 9 7 3 10 5 0

15 12 8 2 4 9 1 7 5 11 3 14 10 0 6 13

Строки пронумерованы сверху вниз от 0 до 3, а столбцы слева направо от 0 до 15. Номер строки задается первым и последним битом входа S-бокса, а номер столбца – средними четырьмя битами входа. Битовое представление содержимого ячейки S-бокса и подается на выход. В итоге с выходов 8 S-боксов снимается 32 битный вектор. Аналитическая сложность дешифрования DES зависит от математических свойств S-боксов, поскольку в них реализуются нелинейные преобразования.

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

К недостаткам DES относят:

1) наличие слабых ключей;

2) небольшая длина ключа (56 бит);

3) избыточность ключа (наличие дополнительных 8 бит);

4) использование статических подстановок в S-боксах.

6. Краткие сведения о ГОСТ 28147-89.

ГОСТ – симметричная блочная криптосистема, работающая с блоками в 64 бита по схеме Фейстеля с ключом в 256 бит. Процедура зашифрования и расшифрования производится за 32 раунда. Как и DES, в алгоритме ГОСТ имеются S-блоки, но они засекречены, поэтому общий объем засекреченной информации (вместе с ключом) составляет примерно 610 бит.

7. Потоковые шифры.

В разделе 2 п.8 рассматривался абсолютно стойкий (по Шеннону) шифр, где операция шифрования задавалась равенством

. (*)

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

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

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

,

где а, b, q – некоторые целые константы, а – очередное псевдослучайное число, вычисляемое по предыдущему . Попробуйте выписать получающуюся последовательность для а = 5, b = 12, q = 23.

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

1) период последовательности должен быть очень большим;

2) порождаемая последовательность должна быть «почти» неотличима от действительно случайной последовательности, в частности, вычисление числа по известным предыдущим элементам последовательности без знания ключа должно быть трудной вычислительной задачей (практически нерешаемой).

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]