Задание
Написать криптографическую библиотеку с четырмя основными функциями
Функционал программы
- Функция быстрого возведения числа в степень по модулю.
- Функция, реализующая обобщённый алгоритм Евклида. Функция должна позволять находить наибольший общий делитель и обе неизвестных из уравнения
- Функция построения общего ключа для двух абонентов по схеме Диффи-Хеллмана
- Функция, которая решает задачу нахождения дискретного логарифма при помощи алгоритма «Шаг младенца, шаг великана»
Фрагмент программного кода
status = False while status == False: q = create_prime_number() p = 2 * q + 1 status = is_prime(p) g = random.randint(1, p - 1) while my_fast_pow(g, q, p) == 1: g = random.randint(1, p - 1) X = [0, 0] Y = [0, 0] Z = [0, 0] X[0] = 0 X[1] = 0 while X[0] == X[1] : X[0] = random.randint(1, p - 1) X[1] = random.randint(1, p - 1)
Скриншот архива с проектом
Пояснения по запуску программы
Запустить файл lab1.py
Mihail