Содержание
- Определение
- Алгоритм шифрования
- Код алгоритма
Определение
- Асимметричное шифрование - шифрование с помощью двух ключей, один из которых является открытым, а другой - закрытым.
Открытый ключ свободно передается 3-им лицам для установления соединения, а закрытый хранится у вас (закрытый ключ нельзя никому передавать).
Ярким примером асимметричного шифрования будет сетевой протокол прикладного уровня SSH, который устанавливает защищенное соединение и шифрует весь трафик передаваемой информации. Подробнее о протоколе я рассказываю тут: https://t.me/tehnoin.
Алгоритм
Алгоритм шифрования и дешифрования информации:
1) Генерация двух простых чисел p и q.
2) Вычисление значения n, где n = pq.
3) Вычисление функции Эйлера. F = (p-1)(q-1).
4) Генерация экспоненты e, являющийся взаимно простым с F.
5) Вычисление значения d, такое что (d*e) % F = 1.
Совокупность e и n является открытым ключом, а совокупность d и n – закрытым ключом.
Для шифрования информации необходимо преобразовать символы в числа удобным вам способом (в алгоритме использовался ASCII – код).
Для представления сообщения в численном виде есть 2 пути:
1) Вместо букв поставить соответствующие им числовые значения и использовать данное выражение для преобразование в зашифрованный вид и его декодирования.
2) Каждый символ представить в виде ASCII – кода и зашифровать его. После шифрования всех символов составляем общее выражение из них, которое будет являться шифром. Обозначим через m преобразованное сообщение.
Для шифрования сообщения:C = m**e%n
Для дешифрования сообщения:m = C**d%n
Код алгоритма
Код реализован на основе модуля random
Полную версию вы сможете найти тут: https://t.me/tehnoin