Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции по теории информации.doc
Скачиваний:
25
Добавлен:
15.04.2019
Размер:
7.2 Mб
Скачать

9. Криптографическая защита данных.

9.1. Криптографические системы с открытым ключом. Метод rsa.

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

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

В настоящее время наиболее развитым методом криптографической защиты с известным ключом является RSA (назван так по начальным буквам фамилий его разработчиков Rvest, Shamir, Adleman).

9.1.1. Алгоритм метода.

Для применения метода RSA необходимо сначала сгенерировать открытый и секретный ключи. Это делается по следующему алгоритму:

  1. Выбрать два очень больших числа р и q.

  2. Определить п как результат умножения р на q (n=pq).

  3. Выбрать большое случайное число d. Оно должно быть взаимно простым с результатом умножения (p-l)(q-l).

  4. Определить такое число е, для которого является истинным следующее соотношение: (ed)mod((p-1)(q-!))=1.

  5. Назвать открытым ключом числа е и n, а секретным ключом числа d и п. Далее, чтобы зашифровать данные по известному ключу {е,n}, необходимо

разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа M(i)=0,l,2...,n-l; зашифровать текст, рассматриваемый как последовательность чисел M(i) по формуле C(i)=M(i)cmod(n).

Чтобы расшифровать данные, используя секретный ключ {d,n}, необходимо выполнить следующие вычисления: М(i)=С(i)dmod(n). В результате будет получено множество чисел M(i), которое представляет собой исходный текст.

9.1.2. Пример работы метода.

Рассмотрим простой пример использования метода RSA для шифрования информации. Закодируем, к примеру, слово ЕДА. Для простоты будем использовать очень маленькие числа (на практике используются намного больше числа).

  1. Выберем р=3 и q= 11.

  2. Определим n=33.

  3. Найдём (p-l)(q-l)=20. Следовательно, в качестве d выберем любое число, которое является взаимно простым с 20, например d=3.

  4. Выберем число е. В качестве такого числа может быть любое число, удовлетворяющее соотношению (3e)mod(20)=l,например е=7.

  5. Представим шифруемое сообщение как последовательность целых чисел в диапазоне 0..32. Пусть буква Е изображается числом 6, буква Д - числом 5, а буква А - числом 1. Тогда сообщение можно представить в виде последовательности чисел 651. Зашифруем сообщение, используя ключ {7,33}:

C,=67mod(33)=279936mod(33)=30, C2=57mod(33)=78125mod(33)=14,

C3=l7mod(33)=lmod(33)=l.

Расшифруем сообщение {30,14,1}, полученное в результате шифрования по известному ключу, на основе секретного ключа {3,33}:

M,=303mod(33)=27000mod(33), M2=143mod(33)=2744mod(33)=5, M3=l3mod(33)=lmod(33)=l.

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