Задание
Написать криптографическую библиотеку с четырмя основными функциями
Функционал программы
- Функция быстрого возведения числа в степень по модулю.
- Функция, реализующая обобщённый алгоритм Евклида. Функция должна позволять находить наибольший общий делитель и обе неизвестных из уравнения
- Функция построения общего ключа для двух абонентов по схеме Диффи-Хеллмана
- Функция, которая решает задачу нахождения дискретного логарифма при помощи алгоритма «Шаг младенца, шаг великана»
Фрагмент программного кода
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
Телеграм
-