题目描述
RSA公钥加密算法是1977年由Ron Rivest、Adi Shamirh和Len Adleman在MIT开发的,取名来自三位作者的名字首字母。
RSA是目前最有影响力的公钥加密算法,在工业界有着广泛的应用。三位作者因为发明RSA算法而获得2002年计算机科学最高奖-图灵奖。
RSA算法基于一个十分简单的数论事实:
将两个大素数相乘十分容易,但那时想要对其乘积进行因式分解却极其困难,因此可以将乘积公开作为加密密钥。
1.实验目的
通过RSA加密算法的实现,掌握RSA算法的原理,为今后的工程应用打下坚实的基础。
2.实验原理
(1)找出三个数p,q,e.其中p,q是两个相异的素数,e是与(p-1)×(q-1)互素的数;
(2)找到d,使得e×d=1 mod (p-1)×(q-1),用扩展欧几里德算法可以得到;
(3)计算n=p×q;
(4)其中: (e,n)这两个数是公钥,(p,q,d)这三个数是私钥。
加密过程:(1)若待加密的明文信息定义为m
输入
第一行输入p,q,e,r,其中p,q,e为系统参数,r表示测试数据组数;
以下共r行测试数据,每行两个数字;
1、第一个数字如是1则表示加密操作,随后数字是明文;
2、第一个数字如是2则表示解密操作,随后数字密文。
32707 32173 13 4
1 1
1 2
2 8192
2 1
提示
1、由公钥e生成私钥d采用扩展欧几里德算法;
2、加/解密采用快速模指数算法。
否则可能超时。