
- •Часть 1. Основы криптографии
- •Глава 1.
- •1.2. Примеры моделей шифров
- •Ту же подстановку относительно своих контактов
- •1.3. Свойства шифров
- •1.4. Вероятностная модель шифра
- •1.5. Совершенные шифры
- •1.6. Способы представления реализаций шифров
- •1.7. Основные понятия теории автоматов
- •Глава 2.
- •2.1. Блочный шифр des
- •Матрица начальной перестановки p
- •Матрица обратной перестановки p–1
- •Связь элементов матриц
- •Функция расширения e
- •Функции преобразования s1, s2, ..., s8
- •Функция h завершающей обработки ключа.
- •2.2. Основные режимы работы алгоритма des
- •2.3. Области применения алгоритма des
- •2.4. Алгоритм шифрования данных idea
- •Подключи шифрования и расшифрования алгоритма idea
- •2.5. Отечественный стандарт шифрования данных
- •Режим простой замены. Для реализации алгоритма шифрования данных в режиме простой замены используется только часть блоков общей криптосистемы (рис.3.11). Обозначения на схеме:
- •32, 31, ... 2, 1 Номер разряда n1
- •32, 31, ... 2, 1 Номер разряда n2
- •32, 31, ..., 2, 1 Номер разряда n1
- •32, 31, ..., 2, 1 Номер разряда n2
- •32, 31, ..., 2, 1 Номер разряда n1
- •32, 31, ..., 2, 1 Номер разряда n2
- •32, 31, ..., 2, 1 Номер разряда n1
- •64, 63, ..., 34, 33 Номер разряда n2
- •32, 31, ..., 2, 1 Номер разряда n1
- •32, 31, ..., 2, 1 Номер разряда n2
- •Глава 3.
- •Узел выработки Канал
- •3.1. Шифры гаммирования
- •3.2. Поточный шифр гаммирования rc4
- •Глава 4.
- •Классическая модель криптографической системы (модель Шеннона)
- •4.1. Модель системы связи с открытым ключом
- •Модель системы с открытым ключом
- •4.2. Принципы построения криптосистем с открытым ключом
- •4.3. Схема цифровой подписи с использованием однонаправленной функции
- •4.4. Открытое распределение ключей Диффи-Хеллмана
- •Глава 5.
- •Классическая модель криптографической системы.
- •Глава 6.
- •6.1. Дешифрование шифра перестановки
- •6.2. Дешифрование шифра гаммирования при некачественной гамме
- •6.3. О дешифровании фототелеграфных изображений
- •6.4. Дешифрование шифра гаммирования при перекрытиях
- •Глава 7.
- •7.1. Задача определения периода гаммы в шифре гаммирования по заданному шифртексту
- •7.2. Возможности переноса изложенных результатов на шифры поточной замены (пз)
- •Где принадлежит множеству к подстановок на I (p-1(j) – вероятность j-той буквы, для ее расчета исходя из набора (p1,p2,…,p|I|) необходимо найти --1(j) – образ буквы j при подстановке --1).
- •Глава 8.
- •Глава 9.
- •9.1. Вероятностные источники сообщений.
- •9.2. О числе осмысленных текстов получаемых в стационарном источнике независимых символов алфавита
- •9.3. Критерии на осмысленные сообщения Важнейшей задачей криптографии является задача распознавания открытых текстов. Имеется некоторая последовательность знаков, записанная в алфавите I:
- •9.4. Частотные характеристики осмысленных сообщений Ниже используется следующий алфавит русского текста
- •Глава 10.
- •1) Для любой al(al)
- •Глава 11.
- •Глава 12.
- •Глава 13.
- •13.1. Расстояния единственности для открытого текста и ключа
- •13.2. Расстояние единственности шифра гаммирования с неравновероятной гаммой
- •Глава 14.
- •Глава 15.
3.1. Шифры гаммирования
Напомним, что в шифре гаммирования шифрование проводится следующим способом. Пусть алфавит открытого текста состоит из n символов. Ключом системы является последовательность из некоторого числа L символов. Под открытый текст подписывается ключ
i0 i1 i2 i3 i5 i6...
0 1 2 …L-1 0 1...
Если длина ключа меньше длины открытого текста, то ключ периодически повторяется. Каждому знаку открытого текста и ключа ставится в соответствие некоторый вычет по модулю n, например, А=1, Б=2,.... Способ сопоставления не является секретным. Шифрованный текст получается по правилу
y(t)=it+t (mod n)
Суммирование по модулю часто называют гаммированием, а саму ключевую последовательность – гаммой. Шифры, в которых узел наложения шифра представляет собой узел суммирования называются шифраторами гаммирования. Это очень распространенный класс поточных шифров
Гаммирование чаще всего осуществляется:
по модулю 2, если открытый текст представляется в виде бинарной последовательности;
по модулю 256, если открытый текст представляется в виде последовательности байтов;
с помощью покоординатного суммирования двоичных векторов (операция ^ в обозначениях языка программирования С или xor в обозначениях ассемблера);
по модулю 10, если открытый текст представлен в виде последовательности цифр, что иногда делается в ручных системах шифрования.
Блочные шифры как узлы усложнения поточных шифров. В типичном шифре гаммирования вместо случайной гаммы наложения используется псевдослучайная последовательность, зависящая от ключа. В этом случае шифр часто называют программным шифром гаммирования. Псевдослучайная последовательность отличается от случайной тем, что она разворачивается по некоторому регулярному закону, зависящему от ключа: сначала вырабатывается исходная последовательность, потом она преобразуется узлом усложнения. На выходе узла усложнения получается гамма, которая накладывается на открытый текст.
Способов конкретной реализации данной схемы существует очень много. В качестве блока усложнения могут использоваться и блочные шифры. Так шифраторы DES и ГОСТ могут использоваться и в режиме гаммирования. Для подобной схемы исходный блок реализует некоторую рекуррентную последовательность. Это может быть обычный двоичный счетчик (в каждый такт к начальному разряду прибавляется единица). Снимаемый в данный такт вектор поступает на DES, далее заменяется по преобразованию DES, а результат используется в качестве гаммы наложения. Часто узел усложнения разбивается на ряд более простых последовательных блоков (это в чём-то напоминает схему итераций в блочном шифре). Сам блочный шифр можно представить в виде последовательности блоков усложнения, в котором каждая итерация реализуется с помощью своего оборудования. Такая реализация увеличивает оборудование, но при этом увеличивает и скорость работы схемы.
3.2. Поточный шифр гаммирования rc4
Выбор схемы шифратора как правило ориентирован на элементную базу, на которой предполагается осуществить ее реализацию. В качестве примера современного шифра гаммирования, ориентированного на программную реализацию приведем Алгоритм RC-4 (разработка RSА Security Incorporated). Данный шифр применен, в частности для защиты в распределенной базе данных Lotus Notus и в некоторых других программных продуктах.
Описание
функционирования
поточного
шифра
RC4 дается
по
работе
Йована
Голича
[ГОЛ.
J. D. Golić,
«Linear Statistical Weakness of Alleged RC4 Keystream generator»,
in Lecture
Notes in Computer Science
1233;
Advances
in Cryptology: : Proc. Eurocrypt '97,
W. Fumy, Ed., May
1997,
pp. 226-238, Berlin: Springer-Verlag,
1997].
Фактически,
RC4
представляет собой семейство алгоритмов,
задаваемых параметром n,
который является положительным целым
с рекомендованным типичным значением
n
= 8. Внутреннее состояние генератора RC4
в момент времени t
состоит из таблицы
,
содержащей 2n
n-битных
слов и из двух n-битных
слов-указателей it
и jt.
Таким образом, размер внутренней памяти
составляет M
= n2n
+ 2n
бит. Пусть выходное n-битное
слово генератора в момент t
обозначается как Zt.
Пусть начальные значения i0
= j0
= 0. Тогда функция следующего состояния
и функция выхода RC4
для каждого t
1 задается следующими соотношениями:
it = it – 1 + 1
jt = jt – 1 + S t – 1(it)
S t (it) = S t – 1(jt), S t (jt) = S t – 1(it)
Z t = S t (S t (it) + S t (jt)),
где
все сложения выполняются по модулю 2n.
Подразумевается, что все слова, кроме
подвергаемых изменению по формулам,
остаются теми же самыми. Выходная
последовательность n-битных
слов обозначается как
.
Начальная
таблица S0
задается в терминах ключевой
последовательности
с
использованием той же самой функции
следующего состояния, начиная оттаблицы
единичной подстановки
.
Более строго, пустьj0
= 0 и для каждого 1
t
2n
вычисляется jt
= (jt
– 1
+
S
t
– 1(t
– 1)
+ K
t
– 1)
mod
2n,
а затем переставляются местами S
t
– 1(t
– 1)
и S
t
– 1(jt).
На последнем шаге порождается таблица,
представляющая S0.
Ключевая последовательность
K
составляется из секретного ключа,
возможно повторяющегося, и рандомизирующего
ключа, передаваемого в открытом виде в
целях ресинхронизации. Шифрованный
текст получается сложением по модулю
2 двоичных векторов Оt
длины n
(байтов при n=8)
открытого текста с двоичными векторами
Zt
длины n.
Основой построения большинства поточных шифров являются генераторы псевдослучайных чисел, в частности, различные комбинации регистров сдвига. Примеры таких генераторов можно найти в Интернете. Авторские результаты по построению таких генераторов трактуются в автоматных терминах и содержатся в томе 2.