лаб 15. Лаб раб 15. Лабораторные работы
Скачать 0.6 Mb.
|
ЗаданиеВзять задание из таблицы, соответствующее последней цифре номера зачетной книжки. Написать программу, осуществляющую шифрование-дешифрование файлов любого типа с использованием шифра RSA. Программа может быть реализована в любой среде программирования и должна предоставлять возможность: Выбирать любой файл для шифрования. Шифровать выбранный файл и записывать в каталог, указанный пользователем, под любым именем. Дешифровать файл и результат записывать в указанный пользователем файл.
Опишите шифрование и дешифрование с помощью алгоритма RSA подобно тому, как показано на рисунке 1, для следующих значений параметров. – р = 3; q = 11, d = 7; М = 5. – р = 5; q = 11, е = 3; М = 9. – р= 7; q = 11, е= 17; М = 8. – р = 11; q= 13, е = 11; М = 7. – р = 17, q = 31, е= 7; М = 2. Указание. Дешифрование здесь является не столь сложным, как вы думаете. Используйте некоторую хитрость. В криптосистеме с открытым ключом, использующей RSA, вы перехватили шифрованный текст С = 10, посылаемый пользователю, открытым ключом которого является е = 5, n = 35. Что в данном случае является открытым текстом М? В использующей RSA системе открытым ключом некоторого пользователя является е = 31, n = 3599. Что будет личным ключом этого пользователя? Если при использовании алгоритма RSA после выполнения небольшого числа операций повторного шифрования снова получается исходный открытый текст, что может быть наиболее вероятный причиной этого? Предположим, имеется набор блоков, зашифрованных с помощью алгоритма RSA, но нет соответствующего им личного ключа. Пусть n = pq, е является открытым ключом. Предположим также, что кто-то утверждает, что ему известно, что один из блоков открытого текста и n имеют общий делитель. Дает ли это какую-либо реальную помощь в данном случае? В использующей RSA схеме шифрования с открытым ключом каждый пользователь имеет открытый ключ е и личный ключ d. Предположим, что некоторый пользователь узнает, что тайна его личного ключа каким-то образом раскрыта. Но вместо генерирования нового модуля сравнения, он решает сгенерировать новые открытый и личный ключи. Насколько это безопасно? Рассмотрите следующую схему. Выбирается нечетное число Е. Выбирается два простых числа Р и Q так, чтобы (Р - l)(Q - 1) - 1 делилось на Е. Значение Р умножается на Q, чтобы в результате получить N. Вычисляется D = (P1)(Q1)(E 1) 1 . E Является ли эта схема эквивалентной RSA? Обоснуйте свой ответ. Рассмотрите следующую схему, с помощью которой В шифрует свое сообщение для А. Сторона А выбирает два больших простых числа Р и Q, которые должны быть также взаимно простыми с (Р - 1) и (Q - 1). Сторона А объявляет N = PQ своим открытым ключом. Сторона А вычисляет такие Р' и Q', что РР' = 1 (mod Q -1) и QQ' = 1 (mod Р -1). Сторона В шифрует сообщение М как С = MN (mod N). Сторона А находит М с помощью решения М = Cp’(mod Q) и М = СQ’ (mod Р). Объясните, как работает эта схема. Чем она отличается от RSA? Есть ли реальные преимущества у RSA по сравнению с этой схемой? |