《大素数的验证》课程设计

《大素数的验证》课程设计

ID:32661514

大小:92.17 KB

页数:6页

时间:2019-02-14

《大素数的验证》课程设计_第1页
《大素数的验证》课程设计_第2页
《大素数的验证》课程设计_第3页
《大素数的验证》课程设计_第4页
《大素数的验证》课程设计_第5页
资源描述:

《《大素数的验证》课程设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库

1、《信息安全原理及应用》课程设计报告大素数的验证班级:学号:指导教师成绩:完成时间:2010・12・20软三实验室完成地点:设计题目描述和要求通过课程设计,加深对信息安全技术及其应用的理论知识的理解,掌握一些大素数验证的算法,能够单独或合作完成一个大素数骑证算法的过程并用软件展示出来,完成课程设计报告。这次课程设计是以小组为单位进行的,组长为胡艳敏,成员分别为杜国骏、贺瑞杰、马赛、于丛丽、全菲、王新洁、袁红、肖丹丹、乔良。我们组做的是大素数验证的算法,素数乂称质数,指在一个大于1的自然数中,除了1和此整数自身外,没法被

2、其他自然数整除的数。换句话说,只有两个正因数(1和自己)的自然数即为素数。RSA公钥密码算法是冃前网络上进行保密通信和数字签名的最有效的安全算法Z-oRSA算法的安全性基于数论屮大素数分解的困难性。二、详细设计1、大素数验证原理:(1)•费马小定里如果n是一个素数,而且a不是n倍数,则有aA(n-1)=1(modn)虽然费马小定里通常称为“素性判定”,它们实际上是“合数判定”,因为此方法只给出了对合数完全肯定的回答。费马小定里判定对大的n相当准确。如果它判定一个数是合数,那么一定是正确的。如果宣布可能是素数,那么很可

3、能是素数。因此,费马小定理只是个必要条件,符合费马小定理而非素数的数叫做Carmichaelo前3个Carmichael数是561,1105,1729©Carmichael数是非常少的。在1〜100000000范围内的整数中,只有255个Carmichael数。为此又有二次探测定理,以确保该数为素数。(2).二次探测定理二次探测定理:如果p是一个素数,0

4、中m是正奇数,j是非负整数;2、随机取一个b,2<=b;2、v=bAmmodn;4、如果v=l,通过测试,返回;5、令i=l;6、如果v=n-1,通过测试,返回;7、如果i==j,非素数,结束;8、v=vA2modn,i=i+1;9、循环到5。Miller-Rabin是随机算法得到的结果的止确率为75%,所以应该多次调用该函数,使正确概率提高为1・(1/4)邙。2>Java实例:1)编程:新建工程,向窗口中田间一个静态控件、一个编辑控件和两个按钮控件。界面如图1所示:2)主要代码如下:packagebigprimen

5、um;importorg.jdesktop.application.Action;publicclassBigPrimeNumAboutBoxextendsjavax.swing.JDialog{publicBigPrimeNumAboutBox(java.awt.Frameparent){super(parent);initComponents();getRootPane().setDefaultButton(closeButton);packagebigprimenum;importorg.jdesktop.ap

6、plication.Application;importorg.jdesktop.application.SingleFrameApplication;publicclassBigPrimeNumAppextendsSingleFrameApplication{@OverrideprotectedvoidstartupO{show(newBigPrimeNumView(this));@OverrideprotectedvoidconfigureWindow(java.awt.Windowroot){publicsta

7、ticBigPrimeNumAppgetApplication(){returnApplication.getInstance(BigPrimeNumApp.class);publicstaticvoidmain(String[]args){launch(BigPrimeNumApp.class,args);/Bigintegernum=null;Bigintegeri=null;Bigintegerl=null;try{num=newBigInteger(jTextField1.getTextQ);booleana

8、=true;l=newBigInteger(^^O'^);i=newBiginteger(n2M);Bigintegert=newBigInteger(Hln);Bigintegerz=newBigInteger(HOf,);doubles=Math.sqrt(num.doubleValue());Bigintegerb=newBigInteg

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。