- •Часть 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.
4.2. Принципы построения криптосистем с открытым ключом
Опишем сначала принцип построения криптосистемы с открытым ключом, предложенный Диффи и Хеллманом [W. Diffie, M.E. Hellman, 1976]. Пользователь A, который хочет получать шифрованные сообщения, выбирает однонаправленную функцию F: XY с лазейкой, алгоритм вычисления значений F публикует, а оставляет в секрете. Любой пользователь B, желающий послать A сообщение xX, вычисляет y = F(x) и посылает y по незащищенному каналу связи. Из второго и третьего пункта определения 2 следует, что только пользователь A может по y вычислить x, так как только A знает секрет .
ОПРЕДЕЛЕНИЕ 3. Шифром с открытым ключом называется пятерка А=X,K,Y,E,D, где X, Y – конечные непустые множества, названные соответственно, множеством открытых и множеством шифрованных текстов, K – конечное непустое множество названое множеством ключей. Каждый ключ K представляет собой пару: открытый ключ и соответствующий ему секретный ключ. E = {E}K , D = {D}K – семейства алгоритмов зашифрования и расшифрования соответственно, определяющих отображения:
E: XY,
D: YX,
такие что
для каждого K D обратно к E, то есть для любых K, xX D(E(x)) = x;
для каждого K функции E и D легко вычислимы;
для почти каждого K вычислительно трудно по данному E найти какой-либо легко вычислимый алгоритм, эквивалентный D;
по каждому заданному K можно легко получить соответствующую пару (E, D);
существует легко вычислимый алгоритм генерации ключей.
Поясним данное определение. В нем третье свойство можно сформулировать по-другому: почти для каждого K вычислительно невозможно по данному случайному yY определить xX, такой, что E(x)=y, то есть не существует полиномиального алгоритма (алгоритма со сложностью поределяемой некоторым полиномом от размера входных данных), находящего какое-либо решение x уравнения E(x)=y. Это свойство означает, что можно не засекречивать алгоритм зашифрования E. При этом алгоритм расшифрования D скомпрометирован не будет. Ясно, что алгоритм D имеет в качестве параметров элементы ключа , не являющиеся параметрами алгоритма E (иначе по E можно было бы восстановить D). Эти элементы ключа являются секретными и образуют секретный ключ 2 криптосистемы А. Остальные элементы ключа являются параметрами алгоритма E и образуют открытый ключ 1 криптосистемы А.Таким образом, =(1,2).
Четвертое свойство гарантирует наличие практически реализуемого пути вычисления пар алгоритмов зашифрования и расшифрования. На практике кроме эффективных реализаций этих алгоритмов криптографическое оборудование должно включать и эффективную реализацию алгоритма генерации ключей. Алгоритм генерации ключей общедоступен. Всякий желающий может подать ему на вход случайную строку r (например, двоичную строку достаточной длины) и получить ключ и соответствующую этому ключу пару (E, D). Строка r может также вырабатываться генератором случайных чисел.
Замечание. Выше было определено, какие элементы ключа асимметричной криптографической системы называются открытыми, а какие секретными. Согласно этому определению далеко не во всякой криптосистеме с открытыми ключами алгоритм расшифрования определяется только секретным ключом 2. То есть не всегда, зная лишь секретную часть ключа , можно восстановить алгоритм D (например, этого нельзя сделать в криптосистеме Эль-Гамаля). Существуют также и такие асимметричные криптосистемы, в которых знание 2 позволяет восстановить весь ключ (например, RSA), а значит, и алгоритм D. Будем в дальнейшем для удобства алгоритм зашифрования обозначать через Е1, а алгоритм расшифрования через D2, где 1 и 2 – соответственно открытый и секретный ключи. При этом необходимо помнить, что алгоритм D2 может иметь в качестве параметров элементы ключа 1. В отличие от него алгоритм зашифрования E1 всегда можно восстановить, зная лишь 1.
Опишем теперь, каким образом два пользователя A и B могут с помощью криптосистемы с открытым ключом организовать передачу секретных сообщений (см. рис. Модель системы с открытым ключом). Пусть пользователь A хочет послать секретное сообщение пользователю B. Для этого B строит ключ = (1, 2) и посылает 1 пользователю A. Получив 1, пользователь A шифрует сообщение x с помощью алгоритма E1. Полученный шифртекст y=E1(x) он посылает B. Используя алгоритм расшифрования D2, пользователь B из полученного значения y вычисляет открытое сообщение x=D2(y). Заметим, что только B может по y найти x, так как только он знает секретный ключ. Криптоаналитику, в распоряжение которого попадают 1 и y, для определения открытого сообщения необходимо решить уравнение E1(x)=y. Но по третьему пункту определения 1 эта задача практически неразрешима.
На первый взгляд может показаться, что описанный способ организации секретной связи идеально решает проблему распространения ключей. Но на самом деле это не так. Отсутствие защищенного канала связи бесспорно является значительным преимуществом этого способа над классическим. Однако у него есть и существенный недостаток. Если криптоаналитик имеет возможность осуществлять имитацию или подмену сообщений, то он может получить открытое сообщение, даже когда используемая криптосистема обеспечивает стойкость. Криптоаналитик может построить свою пару ключей `=(`1,`2) и послать A ключ `1 от имени пользователя B. Ничего не подозревающий пользователь A зашифрует сообщение x, предназначенное для B, на ключе криптоаналитика и затем, послав его, даст возможность последнему без труда восстановить x.
Чтобы данная угроза не могла быть реализована, описанная схема организации секретной связи должна быть усовершенствована. Пользователь A, получив ключ пользователя B, должен иметь возможность убедиться в том, что этот ключ прислал именно B, то есть необходимо обеспечить аутентификацию открытых ключей. Задача аутентификации открытых ключей может быть решена методами криптографии с открытым ключом. Для ее решения в сеть пользователей включают так называемый центр доверия, осуществляющий сертификацию открытых ключей. При этом используются такие криптографические механизмы как идентификация и цифровая подпись.
Напомним несколько понятий, играющих важнейшую роль при обеспечении безопасности связи.
ОПРЕДЕЛЕНИЕ 4. Аутентификация пользователя или идентификация – это способ взаимодействия двух сторон, из которых одна сторона является пользователем, позволяющий пользователю доказать другой стороне свою тождественность с лицом, за которое он себя выдает.
ОПРЕДЕЛЕНИЕ 5. Аутентификация сообщения это подтверждение подлинности источника сообщения.
ОПРЕДЕЛЕНИЕ 6. Цифровая подпись это криптографическое средство, дающее возможность получателю электронного сообщения не только убедиться в подлинности источника сообщения, но и уметь доказывать его подлинность.