Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
2. Часть 1.doc
Скачиваний:
103
Добавлен:
02.06.2015
Размер:
5.54 Mб
Скачать

4.2. Принципы построения криптосистем с открытым ключом

Опишем сначала принцип построения криптосистемы с открытым ключом, предложенный Диффи и Хеллманом [W. Diffie, M.E. Hellman, 1976]. Пользователь A, который хочет получать шифрованные сообщения, выбирает однонаправленную функцию F: XY с лазейкой, алгоритм вычисления значений F публикует, а  оставляет в секрете. Любой пользователь B, желающий послать A сообщение xX, вычисляет 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: XY,

D: YX,

такие что

  1. для каждого K D обратно к E, то есть для любых K, xX D(E(x)) = x;

  2. для каждого K функции E и D легко вычислимы;

  3. для почти каждого K вычислительно трудно по данному E найти какой-либо легко вычислимый алгоритм, эквивалентный D;

  4. по каждому заданному K можно легко получить соответствующую пару (E, D);

  5. существует легко вычислимый алгоритм генерации ключей.

Поясним данное определение. В нем третье свойство можно сформулировать по-другому: почти для каждого K вычислительно невозможно по данному случайному yY определить xX, такой, что 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. Цифровая подпись это криптографическое средство, дающее возможность получателю электронного сообщения не только убедиться в подлинности источника сообщения, но и уметь доказывать его подлинность.

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