Это связано с моим предыдущим постом , где единственным вариантом было использование алгоритма RSA, который казался относительно слабым. Давайте предположим, что я хочу кодировать 35-битное число (от 0 до 34359738367) с 36-битным модулем (между 34359738368 и 68719476735).
Ссылаясь на http://en.wikipedia.org/wiki/RSA Я могу видеть, что мой n находится между 34359738368 и 68719476735 случайных (в форме p-1 * q-1). Я выбираю случайные d и e. Я кодирую число и показываю это на интерфейсе пользователя.
В целях аргументации предположим, что пользователь может увидеть до 1000 таких выходных данных. Может ли он использовать некоторые алгоритмы, такие как Полла или что-то подобное, чтобы взломать мои d, e или n и тем самым начать предсказывать новые числа? Если так, то как тяжело это будет? (Просто зная, скажем, 1000 наборов входов / выходов)
В качестве примера (рассмотрим 6 выходов в качестве образца в формате ввода / вывода),
- 10001621865,31116156015
- 10001621866,33031668326
- 10001621867,37351399313
- 10001621868,06071714212
- 10001621869,01188523761
- 10001621870,18341011998
Может кто-нибудь сказать мне, что мой n, d, e был? (N от 34359738368 до 68719476735)
Я просто хочу знать, насколько он хрупкий, поэтому, если бы вы могли дать мне какую-либо информацию о том, как долго, как быстро, сколько выходных данных нужно увидеть, какие алгоритмы можно использовать и т. Д. 1029 *
PS: пользователь не видит «е», как стандартный алгоритм RSA. Он может видеть только входные и выходные наборы.
ДЕТАЛИ ДОБАВЛЕНЫ
Я пытаюсь представить пользователю последовательный идентификатор из базы данных. Поскольку это последовательно, я не хочу, чтобы пользователь угадывал идентификатор другого пользователя, выполнив несколько регистраций. Чтобы избежать этого, я должен зашифровать его до цифры <= 12. Было много ограничений вокруг этого, которые были объяснены в <a href="https://stackoverflow.com/questions/858476/12-digit-number-java-encryption-question"> этом вопросе .
Также значения n, d и e не известны пользователю. Максимум, который может видеть пользователь, - это несколько входных выходных выборок (путем повторной регистрации)
Принятие ответа, опубликованного Accipitridae, поскольку алгоритм «Якоби» может быть использован для взлома этого в течение нескольких секунд. Не зная n, e или p.