[英]Decrypting a string using RSA
方案如下:我被要求在Javascript中实现解密算法,以使用以下算法解密使用RSA编码的字符串:
e[i] = RSA((u[i]-e[i-1]) mod n), e[-1] = 0
步骤2的文本描述:我们加密第一个元素,从第二个元素中减去加密的第一个元素。 然后我们做(模数n)然后加密结果。 其余的数字继续进行。
现在问题是解密部分。 我被困在这个部分好几个小时!
我使用了等式,目标是让你成为主题:
e[i] = RSA((u[i]-e[i-1]) mod n) -- (1)
我们知道:
RSA(x) = x^e mod n -- (2)
RSA'(x) = x^d mod n -- (3)
那么,从(1)和(3)
RSA'(e[i]) = (u[i]-e[i-1]) mod n
RSA'(e[i]) + k*i + e[i-1] = u[i]
然后我有点卡住,因为我们不知道k。
所以,我再试一次:
RSA'(e[i]) = (u[i]-e[i-1]) mod n
(e[i])^d mod n = (u[i]-e[i-1]) mod n
这似乎也没有...
第二步没有多大意义,不应该是:
e[i] = RSA((u[i]-e[i-1]) mod n), e[-1] = 0
也就是说,模量与指数无关。 这没有多大意义,因为要获得e[0]
你必须计算0模的东西(同样无意义地除以零),而对于e[1]
你必须计算模1的东西,结果是总是0。
此外,如果n
是RSA模数,则对于纯文本,您有0 <= u[i] < n
。 这意味着反向的第二步就是
u[i] = (RSA'(e[i]) + e[i-1]) mod n
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.