实施 RSA encryption/decryption
Implementing RSA encryption/decryption
我正在尝试实现 RSA encryption/decryption(当然是一个简单的实现,所以没有必要吹毛求疵),看起来数字(即密钥)没问题,但最终结果是错了。
这是有问题的函数:
def square_and_mult(base, k, mod):
b = 1
for ki in reversed(k):
if ki == '0':
b = (b**2) % mod
else:
b = ((b**2) * base) % mod
return b
我怀疑你的模幂算法有问题。当您使用 python 时,您可以使用内置 pow(base, exp, mod)
来执行此操作,无需自己实现。
In [1]: n = 48961353722289327881
In [2]: e = 7
In [3]: d = 6994479101184233143
In [4]: x = 12345678
In [5]: c = pow(x, e, n)
In [6]: c
Out[6]: 32225547235202030473
In [7]: m = pow(c, d, n)
In [8]: m
Out[8]: 12345678
我正在尝试实现 RSA encryption/decryption(当然是一个简单的实现,所以没有必要吹毛求疵),看起来数字(即密钥)没问题,但最终结果是错了。
这是有问题的函数:
def square_and_mult(base, k, mod):
b = 1
for ki in reversed(k):
if ki == '0':
b = (b**2) % mod
else:
b = ((b**2) * base) % mod
return b
我怀疑你的模幂算法有问题。当您使用 python 时,您可以使用内置 pow(base, exp, mod)
来执行此操作,无需自己实现。
In [1]: n = 48961353722289327881
In [2]: e = 7
In [3]: d = 6994479101184233143
In [4]: x = 12345678
In [5]: c = pow(x, e, n)
In [6]: c
Out[6]: 32225547235202030473
In [7]: m = pow(c, d, n)
In [8]: m
Out[8]: 12345678