北信科信安凌宇公钥密码算法实验.docVIP

  • 1
  • 0
  • 约1.65千字
  • 约 9页
  • 2019-08-01 发布于山西
  • 举报
PAGE PAGE 1 北京信息科技大学 信息管理学院 (课程上机)实验报告 实验课程名称: 密码学 专业: 班级: 学号: 姓名: 成绩: 实验名称 公钥密码算法实验 实验地点 1- 实验时间 2016.05.26 实验目的: 使学生通过对各种公钥密码算法主要参数和其部分模块功能的验证,理解对公钥密码算法中主要参数的基本要求,从而深入理解公钥密码算法的设计原理。 实验内容: 1) 在信息安全实验系统中完成RSA算法和ElGamal算法的系列实验。 2) 复习教材上的Miller-Rabin素性检验算法和扩展的欧几里德算法,并编写程序将其实现,并分析实验结果。 实验要求: 1)通过完成信息安全实验系统中的RSA算法实验和ElGamal算法实验来验证算法中主要参数的选择和产生。 2)用C语言编写程序实现RSA算法中使用的Miller-Rabin素性检验算法和扩展的欧几里德算法,整理程序代码文档,记录程序运行结果。 实验准备: 5实验过程: ; #include stdio.h #define false 0 #define true 1 int 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,b[10],i,d,x,t; printf(请?输o?入¨?一°?个?整?数oy\n); scanf(%d,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=1x!=1x!=n-1) return false; if(b[i-t]=1) d=(d*a)%n; } if(d!=1) {return false; } printf(true); return true; } 2. #includestdio.h 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,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=%ld\n,a*x+b*y); printf(迭代次数:%ld\n,n); return 0; } 6.实验总结: 说明: 实验名称、实验目的、实验内容、实验要求由教师确定,实验前由教师事先填好,然后作为实验报告模版供学生使用; 实验准备由学生在实验或上机之前填写,教师应该在实验前检查; 实验过程由学生记录实验的过程,包括操作过程、遇到哪些问题以及如何解决等; 实验总结由学生在实验后填写,总结本次实验的收获、未解决的问题以及体会和建议等; 源程序、代码、具体语句等,若表格空间不足时可作为附录另外附页。

文档评论(0)

1亿VIP精品文档

相关文档