在Python中实现完整的RSA

10 投票
3 回答
7191 浏览
提问于 2025-04-17 12:06

我现在正在做一个项目,使用Python实现两台(或多台)计算机之间的点对点通信。虽然我对Python还算熟练,但绝对不是专家;编程和加密并不是我的职业,只是我的爱好。不过,在这个项目中,我一直在努力学习更多关于加密和网络编程的知识。

目前,我已经写了一个相当强大的类,可以在网络上良好地进行通信。我正在尝试通过实现RSA加密来改善它,以加密网络中各个节点之间的连接;这就是我遇到一些困难的地方。

我之前使用过pycrypto来进行一些基本的加密和解密,因此对所有相关工具都比较熟悉,包括必要的公钥密码。不过,我也知道pycrypto有一些不足之处,因为它只实现了实现RSA所需的基本低级加密和解密算法,并没有实现完整的公钥加密协议。我还知道pycrypto包含一些其他有用的工具,比如可以用于填充通信的AllOrNothing变换等等。不过,我的问题是:有没有人能推荐一些在线文章、书籍、博客帖子、项目等,帮助我实现一个有效的RSA协议?

最后,我明白这个话题对于密码学家来说比较敏感,因为业余实现的协议通常意味着程序的安全性较低。正如我上面提到的,这个项目只是一个学习经验;如果我是在专业环境下完成这个项目,我肯定会使用M2Crypto或其他专业实现的安全协议,比如SSL/TLS。可惜的是,我只是想通过实现一个经过验证的协议模型来学习更多关于加密的知识,以便在两个节点之间创建一个安全的连接。

谢谢,
凯文

3 个回答

0

pycrypto这个库有一些不足之处,它只实现了基本的、低级的加密和解密算法,这些算法是用来实现RSA的,但它并没有提供完整的公钥加密协议。

目前的版本PyCrypto(2.6)确实支持所有主要的RSA协议,用于签名和加密,具体来说就是PKCS#1中规定的那些协议(包括v1.5、PSS和OAEP)。

4

为什么不看看我这个纯Python写的RSA库呢?它可能正是你需要的东西:http://stuvel.eu/rsa

7

看看Raymond Hettinger的一个教程:公钥加密(RSA)

撰写回答