Я пытаюсь решить задачу шифрования CTF, которая включает в себя сборку блоков пары ключей RSA (два больших простых числа) и шифрованный номер шифра сообщения. Чтобы расшифровать это сообщение, мне нужно выполнить операции, которые, как я полагаю, не поддерживаются стандартными криптографическими библиотеками, поскольку используемый открытый показатель неизвестен, но у меня есть значения dp
и dq
, что означает I должны выполнить следующие операции:
Так что, по сути, я увеличиваю очень большие целые числа до степени очень больших целых чисел, и стандартная опция pow(x,y)
заставляет Python зависать на неопределенный срок. Тогда без использования крипто-библиотек, как я могу выполнять эти операции в Python?
Edit:
Вот определенный код и значения, вызывающие зависание Python
p = 7901324502264899236349230781143813838831920474669364339844939631481665770635584819958931021644265960578585153616742963330195946431321644921572803658406281
dp = 5540655028622021934429306287937775291955623308965208384582009857376053583575510784169616065113641391169613969813652523507421157045377898542386933198269451
c = 62078086677416686867183857957350338314446280912673392448065026850212685326551183962056495964579782325302082054393933682265772802750887293602432512967994805549965020916953644635965916607925335639027579187435180607475963322465417758959002385451863122106487834784688029167720175128082066670945625067803812970871
m1 = pow(c,dp)%p