实施 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