Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Shpori_TP / 11-20.doc
Скачиваний:
50
Добавлен:
12.12.2013
Размер:
149.5 Кб
Скачать

12. Криптография. Методы шифрования с открытым ключом. Метод rsa (алгоритм). Пример.

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

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

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

Наконец, под результатом операции i mod jбудем считать остаток от целочисленного деления iна j.Чтобы использовать алгоритм RSA,надо сначала сгенериро­вать открытый и секретный ключи выполнив следую­щие шаги.

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

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

  3. Выберем большое случайное число, которое назовем d. Это число должно быть взаимно простым с резуль­татом умножения (р - 1) *(q - 1).

  4. Определим такое число e, для которого является ис­тинным следующее соотношение (e *d)mod((p - 1) *(q – 1)) =1.

  5. Назовем открытым ключом числа eиn, а секретным ключом -числаdиn.

Теперь, чтобы зашифровать данные по известному ключу {e,n}, необходимо сделать следующее:

• разбить шифруемый текст на блоки, каждый из кото­рых может быть представлен в виде числа М(i) =0,1, …,n-1;

• зашифровать текст, рассматриваемый как последова­тельность чисел М(i) по формуле С(i) =(М(i)e)modn.

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

Приведем простой пример использования метода RSA для шифрования сообщения «САВ». Для простоты будем использовать очень маленькие числа (на практике ис­пользуются намного большие числа).

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

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

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

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

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

C1 = (37) mod 33 = 2178 mod 33 = 9,

C2 = (17) mod 33 = 1 mod 33 = 1,

C3 = (27) mod 33 = 128 mod 33 = 29.

  1. Попытаемся расшифровать сообщение {9, 1, 29}, полученное в результате зашифрования по известие ключу, на основе секретного ключа {3, 33}:

М1 = (93) mod 33 = 729 mod 33 = 3,

М2 = (13) mod 33 = 1 mod 33 = 1,

МЗ = (293)mod 33 = 24389mod 33 = 2.

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

Криптостойкость алгоритма RSAосновывается предположении, что исключительно трудно определить секретный ключ по известному, поскольку для этого необходимо решить задачу о существовании делителей целогочисла. Данная задача является NР - полной [8]и, как следствие этого факта, не допускает в настоящее время эффективного (полиномиального) решения. Более того, сам вопрос существования эффективных алгоритмов решения NР-полныхзадач является до настоящего времени открытым. В связи с этим для чисел, состоящих из 200 цифр (а именно такие числа рекомендуется использовать),традиционные методы требуют выполнения огромного числа операций (около 1023 ).

Соседние файлы в папке Shpori_TP