RSA算法优化
- 大数乘法
- 模乗优化
- 剩余定理(孙子定理)
- RSA加解密
- python的RSA计算优化
#-*- coding: utf-8 -*-
'''
/*********************************************************************************
*Copyright(C),2000-2013,KK Studio
*FileName: rsa
*Author: KingKong
*Version: 1.0
*Date: 20130709
*Description: //用于主要说明此程序文件完成的主要功能
//与其他模块或函数的接口、输出值、取值范围、
//含义及参数间的控制、顺序、独立及依赖关系
*Others: //其他内容说明
*Function List: //主要函数列表,每条记录应包含函数名及功能简要说明
1.RSA
2.RSA CRT
3.RSA MulMod
*History: //修改历史记录列表,每条修改记录应包含修改日期、修改者及修改内容简介
1.20130702:
**********************************************************************************/
'''
# sudo apt-get install python-setuptools
# sudo easy_install rsa-3.1.1-py2.7.egg
# import binascii
#print repr(binascii.unhexlify('0123456789abcdef'))
EASYKEY = True
def CRT_SRC(c, n, p, q, d=None, exp1=None, exp2=None):
'''
剩余定理的基础实现
c是密文
exp1 = d % (p-1)
exp2 = d % (q-1)
(1)计算d1←d(mod(p-1))与d2←d(mod(q-1));
(2)计算C1←c(modp)与C2←c(modq);
(3)计算M1←C1^d1 (modp)与M2←C2^d2(modq);
(4)计算B1←q-1(modp)与B2←p-1(modq);
(5)计算m←(M1*B1*q+M2*B2*p)(modN)
'''
c1 = c % p
c2 = c % q
if d != None:
d1 = d % (p-1)
d2 = d % (q-1)
elif exp1 != None:
d1 = exp1
d2 = exp2
else: