《网络空间安全技术实践教程》课件7.2课件_第1页
《网络空间安全技术实践教程》课件7.2课件_第2页
《网络空间安全技术实践教程》课件7.2课件_第3页
《网络空间安全技术实践教程》课件7.2课件_第4页
《网络空间安全技术实践教程》课件7.2课件_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

7.2

大整数素性检测实验实验原理:实现了大整数的运算后,还需要生成大素数p。其具体过程如下:1、生成指定bit数的随机的奇数N2、利用Miller-Rabin素性检测算法判断N是否为素数,若通过,令p=N即可,否则返回1继续做,直到通过为止。网络空间安全实践教程17.2

大整数素性检测实验实验原理:单次Miller-Rabin素性检测算法要对N做素性检测,先将N-1分解成2sd,其中d是奇数,再随机选择,若对所有的,都有则N是合数,否则,有不小于3/4的概率N是素数。多次Miller-Rabin素性检测算法循环调用单次Miller-Rabin素性检测算法,若调用次数为loop,则合数通过素性检测(即该算法错误概率)将不超过(1/4)loop网络空间安全实践教程27.2

大整数素性检测实验实验原理:

生成指定bit数的随机奇数:使用rand()%256对每个字节生成随机数。可参考如下代码:

BigintBigRandOdd(intbytes)//生成bit数为8*bytes的随机奇数{

Bigintres={0}; for(inti=0;i<bytes-1;i++) res.num[i]=rand()%256;//对每个字节生成随机数 res.num[bytes-1]=128+rand()%128;//最高位取成1 if(!(res.num[0]&0x01))

res.num[0]=res.num[0]+1;//若为偶数,则加1成为奇数 returnres;}网络空间安全实践教程37.2

大整数素性检测实验实验原理:

生成指定bit数的素数:可参考如下代码:BigintGenPrime(intbytes)//生成bit数为8*bytes的素数{ Bigintres=BigRandOdd(bytes); intloop=20; while(!MillerRabin(res,loop)) { res=BigRandOdd(bytes); } returnres;}网络空间安全实践教程47.2

大整数素性检测实验实验要点说明:生成大素数时,因为2以上的偶数不是素数,所以直接随机生成奇数即可。实验中loop表示调用单次MIller-Rabin素性检测算法的次数,建议取成20即可。网络空间安全实践教程57.2

大整数素性检测实验实验准备:Windows操作系统VisualStudio2010以上开发环境网络空间安全实践教程67.2

大整数素性检测实验实验步骤:利用VisualC++开发环境,使用7.1中的大整数结构体,先实现生成指定bit的随机数、生成[0,n)随机数、单次Miller-Rabin素性检测算法。实现多次Miller-Rabin素性检测算法,再生成指定bit数的素数。

网络空间安全实践教程77.2

大整数素性检测实验实验结果要求:编程实现大整数的Miller-Rabin

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论