Цель работы: изучение особенностей шифрования в симметричных криптосистемах с открытым ключом и ассиметричных алгоритмов.
Задание и порядок проведении работы:
1) Изучить понятия «Асимметричные алгоритмы и криптосистемы с открытым ключом»
2) Разработать приложение (программу), которое позволит выполнить шифрование и дешифрование некоего выбранного пользователем файла с использованием одного из асимметричных алгоритмов (см. вариант)
3) Реализовать процедуру генерации пары открытый-закрытый ключ;
4) Зашифровать исходное сообщение.
5) Дешифровать полученное в п.4 сообщение. Сравнить с исходным.
6) Результаты шифрования н дешифрования сохранить в файлах. Параметры, требуемые для шифрования должны считываться файла.
Введение (о системах с открытым ключом)
Суть шифрования с открытым ключом заключается в том, что для шифрования данных используется один ключ, а для расшифрования другой (поэтому такие системы часто называют асимметричными).
Основная предпосылка, которая привела к появлению шифрования с открытым ключом, заключалось в том, что отправитель сообщения (тот, кто зашифровывает сообщение), не обязательно должен быть способен его расшифровывать. Т.е. даже имея исходное сообщение, ключ, с помощью которого оно шифровалось, и зная алгоритм шифрования, он не может расшифровать закрытое сообщение без знания ключа расшифрования.
Первый ключ, которым шифруется исходное сообщение, называется открытым и может быть опубликован для использования всеми пользователями системы. Расшифрование с помощью этого ключа невозможно. Второй ключ, с помощью которого дешифруется сообщение, называется секретным (закрытым) и должен быть известен только законному получателю закрытого сообщения.
Алгоритмы шифрования с открытым ключом используют так называемые необратимые или односторонние функции. Эти функции обладают следующим свойством: при заданном значении аргумента х относительно просто вычислить значение функции f(x), однако, если известно значение функции y = f(x), то нет простого пути для вычисления значения аргумента x.
Алгоритм Эль Гамаля