实验一密码学相关实验之RSA加解密算法的实现一、实验目的
在本实验中,用VC/ C/C++/Java实现RSA的加解密算法。完成实验后将能够深入理解RSA 加解密算法及其在VC/ C/C++/Java中的实现过程。
二、实验条件
熟悉VC/ C/C++/Java开发环境和有关RSA算法的有关知识;一台安装有VC/ C/C++/Java的计算机。
三、实验内容
RSA算法实验
1、生成密钥参数
①选取两互异大素数:p和q
②计算 N=p×q 和φ(N)=(p-1) ·(q-1)
③选一整数 e:满足1< e
④在模φ(N)下,计算e的乘法逆元d:
e · d = 1 mod φ(N)
⑤E、公钥pk=(N, e),私钥sk=d (p, q不再需要,可以销毁)
2、加密算法
给定一个整数 M < N,计算
C = M e mod N
3、解密算法
M = C d mod N
四、实验要求提示
1. 从键盘输入两个素数 p,q,并输出参数 N, φ(N), e, d
2.从键盘输入明文数据 m,计算出密文数据 c
3. 从键盘输入密文数据 c,计算出明文数据 m.
4.如何判断一个数是素数
5.如何判断两个数互素
6.乘法逆元怎么实现
7.当p=7,q=17,e=5,d=77 ,加密m=19. 实验得出结果。
8.如果加密的消息为char类型,如何实现加解密?(不强制要求做,但能实现的同学有加分!!)
9.认真填写实验报告,电子版,下次课上交。