这与我的previous post有关,我的唯一选择是拥有一个RSA算法,它似乎相对较弱。让我们假设我想用一个36位模(34359738368到68719476735)编码一个35位数(从0到34359738367)。破解N位RSA模数
参照http://en.wikipedia.org/wiki/RSA我可以看到,我的n在34359738368之间,最高达到68719476735个随机总数(形式为p-1 * q-1)。我随机选择一个d和e。我编码一个数字并在UI上显示。
出于参数的目的,让我们假设用户可以看到多达1000个这样的输出。他可以使用像Polla's或类似的任何算法来破解我的d,e或n,从而开始预测新的数字吗?如果是这样会有多难? (通过仅仅知道说1000组输入/输出)
作为一个例子(考虑6个输出作为输入/输出格式样品),
- 10001621865,31116156015
- 10001621866,33031668326
- 10001621867,37351399313
- 10001621868,06071714212
- 10001621869,01188523761
- 10001621870,18341011998
有人能告诉我我的n,d,e是什么吗? (N之间34359738368高达68719476735)
我只是想知道它是多么可破解,所以如果你可以给我任何信息有多长时间,有多快,有多少人看到输出,可以使用什么算法等等。它会很棒。
PS:用户看不到像标准RSA算法那样的“e”。他只能看到输入输出集。
信息添加 我试图从数据库到用户呈现连续的用户ID。因为它是顺序的,我不希望用户通过执行一些注册来猜测另一个用户的ID。为了避免这种情况,我必须将其编码为< = 12位数字。这个问题有很多限制,在this question中有解释。
另外n,d和e的值对用户是未知的。用户可以看到的最大数量是几个输入输出样本(通过重复注册)
接受由Accipitridae发布的答案,因为“Jacobi”算法可用于在几秒钟内解决此问题。不知道n,e或p。
你想做什么?闻起来像混淆。 – 2009-05-18 14:30:35
?!我不会得出这个结论。听起来像OP有一些不幸的系统限制最大比特大小。 – 2009-05-18 14:40:43
RSA绝对不适合这份工作。我会使用HMAC。 – 2009-05-18 16:21:17