(网络空间安全技术实践)7.2大整数素性检测实验

上传人:繁星 文档编号:88156588 上传时间:2019-04-20 格式:PPTX 页数:10 大小:198.48KB
返回 下载 相关 举报
(网络空间安全技术实践)7.2大整数素性检测实验_第1页
第1页 / 共10页
(网络空间安全技术实践)7.2大整数素性检测实验_第2页
第2页 / 共10页
(网络空间安全技术实践)7.2大整数素性检测实验_第3页
第3页 / 共10页
(网络空间安全技术实践)7.2大整数素性检测实验_第4页
第4页 / 共10页
(网络空间安全技术实践)7.2大整数素性检测实验_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《(网络空间安全技术实践)7.2大整数素性检测实验》由会员分享,可在线阅读,更多相关《(网络空间安全技术实践)7.2大整数素性检测实验(10页珍藏版)》请在金锄头文库上搜索。

1、7.2 大整数素性检测实验,实验目的: 掌握大整数素性检测原理,并利用Visual C+编程实现Miller-Rabin素 性检测算法,进而生成大素数。 实验内容: 实现大整数素性检测算法,用于有效生成大素数。,网络空间安全实践教程,1,7.2 大整数素性检测实验,实验原理: 实现了大整数的运算后,还需要生成大素数p。其具体过程如下: 1、生成指定bit数的随机的奇数N 2、利用Miller-Rabin素性检测算法判断N是否为素数,若通过,令p=N即可,否则返回1继续做,直到通过为止。,网络空间安全实践教程,2,7.2 大整数素性检测实验,实验原理: 单次Miller-Rabin素性检测算法

2、要对N做素性检测,先将N-1分解成2sd,其中d是奇数,再随机选择 ,若对所有的 ,都有 则N是合数,否则,有不小于3/4的概率N是素数。 多次Miller-Rabin素性检测算法 循环调用单次Miller-Rabin素性检测算法,若调用次数为loop,则合数通过素性检测(即该算法错误概率)将不超过(1/4)loop,网络空间安全实践教程,3,7.2 大整数素性检测实验,实验原理: 生成指定bit数的随机奇数:使用rand( ) % 256对每个字节生成随机 数。可参考如下代码: Bigint BigRandOdd(int bytes) /生成bit数为8*bytes的随机奇数 Bigint

3、res = 0; for(int i = 0; i bytes-1; i+) res.numi = rand() % 256; /对每个字节生成随机数 res.numbytes-1 = 128 + rand() % 128; /最高位取成1 if( !(res.num0 ,网络空间安全实践教程,4,7.2 大整数素性检测实验,实验原理: 生成指定bit数的素数:可参考如下代码: Bigint GenPrime(int bytes) /生成bit数为8*bytes的素数 Bigint res = BigRandOdd(bytes); int loop = 20; while(!MillerRab

4、in(res, loop) res = BigRandOdd(bytes); return res; ,网络空间安全实践教程,5,7.2 大整数素性检测实验,实验要点说明: 生成大素数时,因为2以上的偶数不是素数,所以直接随机生成奇数即可。 实验中loop表示调用单次MIller-Rabin素性检测算法的次数,建议取成20即可。,网络空间安全实践教程,6,7.2 大整数素性检测实验,实验准备: Windows 操作系统 Visual Studio 2010以上开发环境,网络空间安全实践教程,7,7.2 大整数素性检测实验,实验步骤: 利用Visual C+开发环境,使用7.1中的大整数结构体,先实现生成指定bit的随机数、生成0,n)随机数、单次Miller-Rabin素性检测算法。 实现多次Miller-Rabin素性检测算法,再生成指定bit数的素数。,网络空间安全实践教程,8,7.2 大整数素性检测实验,实验结果要求: 编程实现大整数的Miller-Rabin素性检测算法,给出关键编程思路。 总结实验过程中遇到的问题和经验。,网络空间安全实践教程,9,7.2 大整数素性检测实验,实验视频:,网络空间安全实践教程,10,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作范文

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号