《北信科 信安14 凌宇 公钥密码算法实验.doc》由会员分享,可在线阅读,更多相关《北信科 信安14 凌宇 公钥密码算法实验.doc(9页珍藏版)》请在金锄头文库上搜索。
1、北京信息科技大学信息管理学院(课程上机)实验报告实验课程名称: 密码学 专业: 班级: 学号: 姓名: 成绩: 实验名称公钥密码算法实验实验地点1-3-702实验时间2016.05.261. 实验目的:使学生通过对各种公钥密码算法主要参数和其部分模块功能的验证,理解对公钥密码算法中主要参数的基本要求,从而深入理解公钥密码算法的设计原理。2. 实验内容:1) 在信息安全实验系统中完成RSA算法和ElGamal算法的系列实验。2) 复习教材上的Miller-Rabin素性检验算法和扩展的欧几里德算法,并编写程序将其实现,并分析实验结果。3. 实验要求:1)通过完成信息安全实验系统中的RSA算法实验
2、和ElGamal算法实验来验证算法中主要参数的选择和产生。 2)用C语言编写程序实现RSA算法中使用的Miller-Rabin素性检验算法和扩展的欧几里德算法,整理程序代码文档,记录程序运行结果。4. 实验准备:5实验过程:; #include #define false 0#define true 1int second(int m,int *k)int i;i=0;while(m/2)!=0)*k=m%2;m=m/2;k+;i+;*k=1;i+;return i;int main() int n,a,b10,i,d,x,t;printf(请?输?入?一?个?整?数yn);scanf(%d,
3、&n);i=second(n-1,b);printf(i);d=1; a=5;for(t=i;i0;t-)x=d;d=(d*d)%n;if(d=1&x!=1&x!=n-1)return false;if(bi-t=1)d=(d*a)%n;if(d!=1)return false;printf(true);return true;2.#include long exEucli(long a,long b,long & x,long & y,long & n) if(b = 0) x = 1; y = 0; return a; n+=1; long r = exEucli(b, a%b, x, y
4、,n); long t = y;y = x - (a/b)*y;x = t; return r; int main() long a,b,x,y,n=0,t; printf(enter the first number:n); scanf(%ld,&a); printf(enter the second number:n); scanf(%ld,&b); if(ab)t=a;a=b;b=t; exEucli(a,b,x,y,n); printf(gcd=%ldn,a*x+b*y); printf(迭代次数:%ldn,n); return 0; 6.实验总结: 说明:1. 实验名称、实验目的、实验内容、实验要求由教师确定,实验前由教师事先填好,然后作为实验报告模版供学生使用;2. 实验准备由学生在实验或上机之前填写,教师应该在实验前检查;3. 实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等;4. 实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等;5. 源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。9