在Python中实现完整的RSA

时间:2012-02-01 08:50:34

标签: python encryption rsa pycrypto

我目前正在使用python实现一个项目,以实现两台(或更多台)计算机之间的p2p通信。虽然我对python非常熟练,但我绝不是专家;编程和加密绝不是我的专业,只是一种爱好。但是,在开展此项目时,我一直在尝试了解有关加密和网络编程的更多信息。

截至目前,我已经编写了一个非常强大的类,可以通过网络进行良好的通信,我正在尝试通过实施RSA来加密网络中对等体之间的连接来改进它。这是我遇到一些困难的地方。

我以前使用pycrypto在python中进行一些基本的加密/解密,因此对所涉及的所有工具都很满意 - 包括必要的公钥密码。此外,我也知道pycrypto有一些缺点,因为它只实现了实现RSA所需的简单,低级加密/解密算法,并且没有实现公钥加密的完整协议。我也知道pycrypto包含一些其他有用的工具,如AllOrNothing转换,可用于填充通信等。但是,我的问题是:任何人都可以推荐任何在线文章,书籍,博客文章,项目等等帮助我实现有效的RSA协议?

最后,我理解这对于密码学家来说是一个敏感话题,因为业余实现的协议通常意味着程序中的安全性较低。如上所述,这个项目仅仅是一次学习经历;如果我专业地完成这个项目,我肯定会使用M2Crypto或其他一些专业实施的安全协议 - 即SSL / TLS。唉,我只是想通过实现我自己的经过验证的协议模型来更多地了解加密,以便在两个对等体之间建立安全连接。

谢谢, 凯文

3 个答案:

答案 0 :(得分:8)

看一下Raymond Hettinger食谱:Public Key Encryption (RSA)

答案 1 :(得分:4)

为什么不看看我的纯Python RSA库?它可能正是您所需要的:http://stuvel.eu/rsa

答案 2 :(得分:0)

  pycrypto有一些缺点,因为它只实现了实现RSA所需的简单,低级加密/解密算法,并且没有实现公钥加密的完整协议。

当前版本PyCrypto(2.6)支持支持签名和加密的所有主要RSA协议,即PKCS#1(v1.5,PSS,OAEP)中指定的协议。