我有一个带有(e,n)加密数据的公钥,并且必须通过RSA获取平面文本,并且所有这些都在C中!首先,我不知道如何找出我的p和q是什么?我知道他们必须是质数和p <> q!
请帮助!
侨
首先,因子n。这并不难。因为sqrt(3233)是56.8…,所以您只需要测试素数即可。那将给你p和q。用那些来计算(p-1)•(q-1)。
然后使用Extended Eudlidean Algorithm找到17模(p-1)•(q-1)的乘法逆。您不需要C代码;我是手工做的。 (该算法给出的结果是负数。您可以将其用于d或将(p-1)•(q-1)相加得到同样有效的正值。)]
[对于以后的问题的访问者,埃里克(Eric)解释了从n获取p和q的基本知识,但是如果n更长,我建议使用yafu之类的分解软件将n分解为p&q(两个素数,或者如果是多素RSA,则更多。]