RSA算法的纯Python实现,压缩包内共4个文件,分别是1、大整数的运算库(当然不是算加减乘除的,这个python本身就有)。
这个库是计算乘模运算,幂模运算(蒙哥马利算法),最大公约数算法及扩展最大公约数算法(扩展欧几里得算法)等。
2、质数库。
Miller_Rabin素数判断法,大整数快速因式分解算法(pollard_rho算法),生成指定位数的大质数或大整数算法等。
3、RSA算法库。
使用上面两个库,实现RSA算法。
实现了生成指定数位的密钥对,加密,解密,签名和验证,这5个核心功能。
4、RSAtest.py一个使用RSA算法库的例子。
例子从生成密钥对开始,对数据进行加解密,签名和验证签名,最后用修改后的消息再次验证签名。
这个RSA算法最低支持32位密钥长度,最长没限制。
但是现实上,在我的电脑上测试,1024位大概1.3秒左右,1536大约5~6秒,2048位密钥生成就需要约27秒。
这次发布的是源码,里面有详细的中文注释,十分适合希望学习RSA算法原理的人。
RSA算法原理基于两个大质数的乘积很难因式分解,几种算法的优劣主要体现在质数判断、快速乘模运算、快速幂模运算等。
如需实际应用建议使用大能们的实现:https://pypi.python.org/pypi/rsa/
1