DH算法C语言实现.docx
《DH算法C语言实现.docx》由会员分享,可在线阅读,更多相关《DH算法C语言实现.docx(7页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、#include#include#include#includeint Random_Odd();int SPrime(int odd);int MoChongFu(int m, int e,int n);int MoChongFua(int m, int e,int n);int milejiance(int odd);int yuangen(int yy);int S_PrimeTable7 = 3,5,7, 11, 13, 17, 19 );int main(void)(int yy=O;int gg;int A,B,Key,Key 1 ,Key2;int SA,SB;int i,fla
2、gl,flag2; doq-printf(n *) while(yy = Random_Odd();yy = Random_Odd();printf(产生的随机数是:dnn,yy);flagl=!SPrime(yy);for(i=0;i5;i+)flag2=! milej iance(yy);if(flag2)(printf(第d次米勒检测未通过。nn”,i+l);printf(因为第d次米勒检测没有通过,所以随机数d不是素数,n产 生下一个随机数,先用小素数试除,再进行5次米勒检测,如果小素数试除通过并且5次都 通过,则说明该随机数是大素数。”,i+l,yy);printf(HnM);got
3、o q;elseprintf(第d次米勒检测通过。nnH,i+l);while(flagl|flag2);gg=yuangen(yy);srand(time(NULL);A 二 rand()%(96)+32;B = rand()%(96)+32;printf(Alice 选择的随机数 A 是:%dnn,A); printf(uBob 选择的随机数 B 是:%dnnH,B);printf(计算 SA=(ggAA) mod yy:nH);SA=MoChongFua(gg,A,yy); printf(nnn);printf(计算 SB=(ggAB) mod yy:nn);SB=MoChongFua(
4、gg,B,yy);printf(所以 SA 和 SB 分别是:d,%dnnSA,SB); printf(”计算 Keyl=(SBAA) mod yy:nH);Key 1 =MoChongFua(SB,A,yy);printf(nnn);printf(计算 Key2=(SAAB) mod yy:nH);Key2=MoChongFua(SA,B,yy);printf(所以:Key 1 =%d,Key2=%dnnn,Key l,Key2);if(Key 1 =Key2)Key=Keyl;printf(所以共同密钥 Key 是:%dnnn,Key);return 0;产生一个随机数int Random
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DH 算法 语言 实现
限制150内