Асимметричные криптосистемы

Схема шифрования Эль Гамаля

Алгоритм шифрования Эль Гамаля основан на применении больших чисел для генерации открытого и закрытого ключа, криптостойкость же обусловлена сложностью вычисления дискретных логарифмов.

Последовательность действий пользователя:

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++, если они используются), необходимых для запуска программы на компьютере преподавателя.