Асимметричные криптосистемы
Схема шифрования Эль Гамаля
Алгоритм шифрования Эль Гамаля основан на применении больших чисел для генерации открытого и закрытого ключа, криптостойкость же обусловлена сложностью вычисления дискретных логарифмов.
Последовательность действий пользователя:
1. Получатель сообщения выбирает два больших числа Р и G, причем P>G.
2. Получатель выбирает секретный ключ - случайное целое число Х< Р.
3. Вычисляется открытый ключ Y= G mod P.
4. Получатель выбирает целое число К , 1< К< Р-1.
5. Шифрование сообщения (М): a= GK mod Р, b=Y М mod Р, где пара чисел (а,b)
является шифротекстом.
Задание:
Разработать и реализовать программу криптографического преобразования текстового файла. Для разработки использовать любую из перечисленных сред программирования: Turbo Pascal, Delphi, С++ Builder, Visual C++.
Требование к программе:
1. Программа должна обеспечивать работу в двух режимах:
· Криптографическое преобразование текста методом Цезаря;
· Криптографическое преобразование текста методом Виженера.
2. В режиме криптографического преобразования текста методом Цезаря должны быть реализованы следующие функции:
· исходный текст, из пользовательского файла "<имя файла>.txt", длинной не менее 2000 символов зашифровать методом Цезаря, с ключом N определяемым пользователем;
· Сохранить шифротекст в файл "encС_<имя файла>.txt"
· расшифровать текст и сохранить в файл "decС_<имя файла>.txt"
· вывести первые строки файлов "<имя файла>.txt", "encС_<имя файла>.txt" и "decС_<имя файла>.txt" в текстовое окно.
3. В режиме криптографического преобразования текста методом Виженера должны быть реализованы следующие функции:
· Случайным образом сгенерировать алфавит замены
· Построить и вывести на экран квадрат Виженера
· исходный текст, из пользовательского файла "<имя файла>.txt", длинной не менее 2000 символов зашифровать методом Виженера, с ключом определяемым пользователем;
· Сохранить шифротекст в файл "encV_<имя файла>.txt"
· расшифровать текст и сохранить в файл "decV_<имя файла>.txt"
· вывести первые строки файлов "<имя файла>.txt", "encV_<имя файла>.txt" и "decV_<имя файла>.txt" в текстовое окно.
Программа сдается в виде исходных текстов и необходимых служебных файлов (*.dll, формы Delphi или C++, если они используются), необходимых для запуска программы на компьютере преподавателя.