У меня есть номер длиной 615 цифр. В нем 8 мест, где не хватает цифр. Я должен выяснить, какие цифры. Есть 10 ^ 8 возможностей.
Это для проблемы RSA. Указанный номер - это закрытый ключ, и я пытаюсь выяснить, что это такое. Чтобы помочь мне, у меня есть пара открытых ключей (n, e), каждая из которых также имеет длину 615 цифр, а также открытый текст и соответствующий зашифрованный текст.
Таким образом, единственный способ выяснить d - это перебить его. Я пытаюсь использовать gmpy2 в Python, чтобы понять это. Мне пришлось прыгать через много обручей, чтобы заставить его работать. Я даже не знаю, правильно ли я это сделал. Мне пришлось скачать Python2.7, чтобы я мог запустить установщик gmpy2, чтобы не получить сообщение об ошибке. Но я думаю, что теперь это работает, поскольку я могу набрать
>>>import gmpy2
в терминале, и это не дает мне ошибку.
Прежде чем я попытаюсь пройтись по 10 ^ 8 возможностям, я хочу знать, возможно ли это сделать за относительно короткий промежуток времени, учитывая мою ситуацию. Я не хочу жарить мой компьютер или замораживать его, пытаясь вычислить это. Я также хочу знать, использую ли я для этого правильные инструменты, или gmpy2 не является верной версией, или Python2.7 недостаточно хорош / достаточно быстр. Я использую gmpy2 на Python2.7 на ноутбуке.
В конце я предполагаю, что хочу взять все 10 ^ 8 ответов и поднять так, чтобы C ^ d = M mod n. Так что это (уже) большое число до степени числа 615 цифр, 10 ^ 8 раз. Это возможно? Если это так, как я могу сделать это с помощью gmpy2? Есть ли более эффективный способ вычислить это?
Я искренне извиняюсь, если это не то место, чтобы спрашивать об этом. Спасибо за любую помощь.