logo search
Алексеев информатика

9.8.2. Криптографическая система с открытым ключом

Рассматриваемый метод закрытия информации разработали в 1976 г. американцы Уитфилд Диффи и Мартин Хеллман.

Опишем пример использования такой системы.

Пусть абонент А (например, банкир) и абонент В (например, вкладчик) решили установить между собой секретную передачу шифрованной информации с открытым ключом.

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

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

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

Использованная в таблице запись означает, что при целочисленном делении числа  на число  остаток равен 

Функция Эйлера – арифметическая функция (r), значение которой равно количеству положительных чисел, не превосходящих r и взаимно простых с r.

Предположим, что абонент А решил послать сообщение абоненту В. Вначале методом замены каждый символ сообщения заменяется (шифруется) числом. Допустим, что требуется переслать первую букву сообщения, которая зашифрована методом замены числом 2.

Абонент А шифрует число 2 открытым (опубликованным) ключом абонента В. Для шифрования число 2 возводится в степень 5 = 31, т. е.

Затем находят остаток от деления числа т на величину r = 253, в результате которого получается число 167. Напомним, что числа s и r являются открытым ключом абонента В.

В линию передается число 167, которое является шифром исходного числа 2.

Получив шифрограмму, абонент В использует свой секретный ключ t = 71. Для дешифрации он возводит полученное число 167 в степень 71 и находит остаток от деления на число 253. Математически это записывается так:

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

Предположим, что абонент В решил ответить абоненту А и направить ему букву, зашифрованную числом 3.

Абонент В использует открытый (опубликованный) ключ абонента А (s = 5, r = 91) и выполняет шифрующее преобразование числа 3. Математически это записывается так:

В линию отправляется число 61. Получив это число, абонент А восстанавливает исходный текст с помощью своего секретного ключа t = 29:

В результате дешифрации на приемной стороне получено число 3, которое отправил абонент В.

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

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

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

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

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

Рассмотрим пример.

Предположим, что абонент В (вкладчик) решил послать сообщение, состоящее из числа 41, абоненту А (банкиру). Вначале вкладчик шифрует сообщение открытым ключом банкира:

В результате шифрования получено число 6.

Дальше вкладчик повторно шифрует это сообщение своим секретным ключом 71:

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

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

Затем банкир использует свой секретный ключ:

В результате абонент А (банкир) получает сообщение, состоящее из числа 41.

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