实施RSA加密/解密

时间:2017-03-23 17:13:25

标签: python encryption rsa

我试图实施RSA加密/解密(当然是一个简单的实现,因此不需要挑剔)并且似乎数字(即密钥)很好,但最终结果是错误的。

这是一个有问题的功能:

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

1 个答案:

答案 0 :(得分:3)

我怀疑你的模幂运算算法有问题。当您使用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