
- •11. Криптография. Метод псч и его модификации
- •12. Криптография. Методы шифрования с открытым ключом. Метод rsa (алгоритм). Пример.
- •13. Криптография. Основные понятия и определения
- •14. Криптография. Приемы раскрытия шифрованных данных
- •16. Обеспечение легкости применения программного средства.
- •Графический пользовательский интерфейс обобщает такие виды пользовательского интерфейса, как интерфейс типа меню и интерфейс прямого манипулирования.
- •17. Обеспечение сопровождаемости программного средства.
- •18. Обеспечение устойчивости программного средства.
- •19. Обеспечение эффективности программного средства.
- •20. Общая характеристика процесса обеспечения качества программного средства.
- •15. Криптография. Стандарты шифрования сша ( des ) и России ( гост28147-89). Основные принципы организации их алгоритмов. Сравнительные характеристики.
12. Криптография. Методы шифрования с открытым ключом. Метод rsa (алгоритм). Пример.
Наиболее перспективными системами криптографической защиты данных являются системы с открытым ключом. В таких системах для зашифрования данных используется один ключ, а для расшифрования другой. Первый ключ не является секретным и может быть опубликован для использования всеми пользователями системы, которые зашифровывают данные. Расшифрование данных с помощью известного ключа невозможно. Для расшифрования данных получатель зашифрованной информации использует второй ключ, который является секретным. Разумеется, ключ расшифрования не может быть определен из ключа зашифрования.
В настоящее время наиболее развитым методом криптографической защиты информации с известным ключом является RSA,названный так по начальным буквам фамилий ее изобретателей (Rivest,ShamirиAdleman). Перед тем как приступить к изложению концепции метода RSA,необходимо определить некоторые термины.
Под простым числомбудем понимать такое число, которое делится только на 1и на само себя. Взаимно простыми числами будем называть такие числа, которые не имеют ни одного общего делителя, кроме 1.
Наконец, под результатом операции i mod jбудем считать остаток от целочисленного деления iна j.Чтобы использовать алгоритм RSA,надо сначала сгенерировать открытый и секретный ключи выполнив следующие шаги.
Выберем два очень больших простых числа ряд,
Определим nкак результат умноженияpнаq(n = p*q).
Выберем большое случайное число, которое назовем d. Это число должно быть взаимно простым с результатом умножения (р - 1) *(q - 1).
Определим такое число e, для которого является истинным следующее соотношение (e *d)mod((p - 1) *(q – 1)) =1.
Назовем открытым ключом числа eиn, а секретным ключом -числаdиn.
Теперь, чтобы зашифровать данные по известному ключу {e,n}, необходимо сделать следующее:
• разбить шифруемый текст на блоки, каждый из которых может быть представлен в виде числа М(i) =0,1, …,n-1;
• зашифровать текст, рассматриваемый как последовательность чисел М(i) по формуле С(i) =(М(i)e)modn.
Чтобы расшифровать эти данные, используя секретный ключ {d,n}, необходимо выполнить следующие вычисления: М(i) =(С(i)d)modn. В результате будет получено множество чисел М(i), которые представляют собой исходный текст.
Приведем простой пример использования метода RSA для шифрования сообщения «САВ». Для простоты будем использовать очень маленькие числа (на практике используются намного большие числа).
Выберем p = 3иq = 11.
Определим n = 3 * 11 = 33.
Найдем (p - 1) *(q - 1) = 20.Следовательнс, в качествеdвыберем любое число, которое является взаимно простым с 20,напримерd= 3.
Выберем число е. В качестве такого числа может быть взято любое число, для которого удовлетворяется соотношение (e * 3)mod 20 = 1,например 7.
Представим шифруемое сообщение как последовательность целых чисел в диапазоне 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.
Попытаемся расшифровать сообщение {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 ).