版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
(网络安全方案设计基础)实验报告时间:2021年05月姓名班级学号指导教师实验成绩实验名称RSA公钥密码实验目的1、了解和掌握RSA加密算法原理及过程;2、了解生成大素数的方法;3、能够编写代码实现RSA算法。实验内容1、编写程序构造RSA密钥;2、编写程序生成大素数;3、实现RSA密码体制。实验过程#include<stdio.h>#include<stdlib.h>#include<time.h>#include<string.h>#defineACCURACY5#defineSINGLE_MAX100#defineEXPONENT_MAX1000#defineBUF_SIZE1024intmodpow(longa,longb,intc){intres=1;while(b>0){/*Needlongmultiplicationelsethiswilloverflow...*/if^b&1){res=(res*a)%c;}b=b>>1;a=(a*a)%c;/*Samedealhere*/}returnres;}intjacobi(inta,intn){inttwos,temp;intmult=1;while(a>1&&a!=n){a=a%n;if(a<=1||a==n)break;twos=0;while(a%2==0&&++twos)a/=2;/*Factoroutmultiplesof2*/if(twos>0&&twos%2==1)mult*=(n%8==111n%8==7)*2-1;if(a<=1||a==n)break;if(n%4!=1&&a%4!=1)mult*=-1;/*Coefficientforflipping*/temp=a;a=n;n=temp;}if(a==0)return0;elseif(a==1)returnmult;elsereturn0;/*a==n=>gcd(a,n)!=1*/}intsolovayPrime(inta,intn){intx=jacobi(a,n);if(x==-1)x=n-1;returnx!=0&&modpow(a,(n-1)/2,n)==x;}intprobablePrime(intn,intk){if(n==2)return1;elseif(n%2==0||n==1)return0;while(k-->0){if(!solovayPrime(rand()%(n-2)+2,n))return0;}return1;}intrandPrime(intn){intprime=rand()%n;n+=n%2;/*nneedstobeevensomodulowrappingpreservesoddness*/prime+=1-prime%2;while(1){if(probablePrime(prime,ACCURACY))returnprime;prime=(prime+2)%n;}intgcd(inta,intb){inttemp;while(b!=0){temp=b;b=a%b;a=temp;}returna;}intrandExponent(intphi,intn){inte=rand()%n;while(1){if(gcd(e,phi)==1)returne;e=(e+1)%n;if(e<=2)e=3;}}intinverse(intn,intmodulus){inta=n,b=modulus;intx=0,y=1,x0=1,y0=0,q,temp;while(b!=0){q=a/b;temp=a%b;a=b;b=temp;temp=x;x=x0-q*x;x0=temp;temp=y;y=y0-q*y;y0=temp;}if(x0<0)x0+=modulus;returnx0;}intreadFile(FILE*fd,char**buffer,intbytes){intlen=0,cap=BUF_SIZE,r;charbuf[BUF_SIZE];*buffer=(char*)malloc(BUF_SIZE*sizeof(char));while((r=fread(buf,sizeof(char),BUF_SIZE,fd))>0){if(len+r>=cap){cap*=2;*buffer=(char*)realloc(*buffer,cap);}memcpy(&(*buffer)[len],buf,r);len+=r;if(len+bytes-len%bytes>cap)*buffer=(char*)realloc(*buffer,len+bytes-len%bytes);do{(*buffer)[len]=''0';len++;}while(len%bytes!=0);returnlen;}intencode(intm,inte,intn){returnmodpow(m,e,n);}intdecode(intc,intd,intn){returnmodpow(c,d,n);}int*encodeMessage(intlen,intbytes,char*message,intexponent,intmodulus){int*encoded=(int*)malloc((len/bytes)*sizeof(int));intx,i,j;for(i=0;i<len;i+=bytes){x=0;for(j=0;j<bytes;j++)x+=message[i+j]*(1<<(7*j));encoded[i/bytes]=encode(x,exponent,modulus);#ifndefMEASUREprintf("%d",encoded[i/bytes]);#endif}returnencoded;}int*decodeMessage(intlen,intbytes,int*cryptogram,intexponent,intmodulus){int*decoded=(int*)malloc(len*bytes*sizeof(int));intx,i,j;for(i=0;i<len;i++){x=decode(cryptogram[i],exponent,modulus);for(j=0;j<bytes;j++){decoded[i*bytes+j]=(x>>(7*j))%128;#ifndefMEASUREif(decoded[i*bytes+j]!='\0')printf("%c",decoded[i*bytes+j]);#endifreturndecoded;…{intp,q,n,phi,e,d,bytes,len;int*encoded,*decoded;char*buffer;FILE*f;srand(time(NULL));while(1){p=randPrime(SINGLE_MAX);printf("p=%d\n",p);q=randPrime(SINGLE_MAX);printf("q=%d\n",q);n=p*q;printf("n=%d\n",n);if^n<128){}elsebreak;if(n>>21)bytes=3;elseif(n>>14)bytes=2;elsebytes=1;phi=(p-1)*(q-1);printf("phi=(p-1)*(q-1)=%d\n",phi);e=randExponent(phi,EXPONENT_MAX);printf("e=%d\n公钥:(%d,%d)\n",e,e,n);d=inverse(e,phi);prints”d=%d\n私钥:(%d,%d)\n”,d,d,n);f=fopen("text.txt","r");iff==NULL){
printf("Failedtoopenfile\"text.txt\".Doesitexist?\n");returnEXIT_FAILURE;}len=readFile(f,&buffer,bytes);/*lenwillbeamultipleofbytes,tosendwholechunks*/fclose(f);printf("\n密文是:");encoded=encodeMessage(len,bytes,buffer,e,n);printf("\n明文是:");decoded=decodeMessage(len/bytes,bytes,encoded,d,n);printf("\n");free(encoded);free(decoded);free(buffer);returnEXIT_SUCCESS;}主程序运行(图1):实验结果p=53实验结果q67n=3551phi=(p-1)*(q-1)=3432史=991公用:(991,3551)d=3103和助;(3103,S551)密文足:325217913066145714571791186618661S66353
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026云南玉溪市文化馆城镇公益性岗位招聘3人备考题库(各地真题)附答案详解
- 20206中国烟草南通醋酸纤维有限公司招聘备考题库(巩固)附答案详解
- 2026春季建信基金管理有限责任公司校园招聘2人备考题库附答案详解【综合题】
- 2026湖南省中南林业科技大学涉外学院人才招聘备考题库附答案详解(综合卷)
- 2026陕西西安市高新第一学校招聘备考题库带答案详解(轻巧夺冠)
- 2026浙江温州桐君堂药材有限公司招聘营业员1人备考题库带答案详解(轻巧夺冠)
- 2026广东清远市阳山县融媒体中心招聘新闻人员4人备考题库及完整答案详解【各地真题】
- 2026山东青岛海发国际贸易有限公司招聘10人备考题库完整参考答案详解
- 2026四川成都市龙泉驿区东山国际小学教师招聘12人备考题库附答案详解【夺分金卷】
- 2026内蒙古霍林河机场管理有限责任公司招聘工作人员3人备考题库ab卷附答案详解
- 化工风险辨识培训
- 学校水污染事故责任追究制度
- 新洲租房合同范本
- 肝硬化肝性脑病诊疗指南(2024年版)解读 课件
- 现代家政导论-课件 3.1.1认识家庭生命周期(上课)
- 标准设计招标文件(2017年版)
- 第52讲、立体几何中的轨迹问题(教师版)
- 大学实验室租赁合同范本
- 酒店数字化运营概论 课件 3.2 酒店网络分销渠道认知
- (高清版)TDT 1090-2023 国土空间历史文化遗产保护规划编制指南
- MOOC 中国近现代史纲要-武汉大学 中国大学慕课答案
评论
0/150
提交评论