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

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《大素数的验证》课程设计

《信息安全原理及应用》课程设计报告 大素数的验证 姓 名: 班 级: 学 号: 指导教师 成 绩: 完成时间: 2010-12-20 完成地点: 软三实验室 设计题目描述和要求 通过课程设计,加深对信息安全技术及其应用的理论知识的理解,掌握一些大素数验证的算法,能够单独或合作完成一个大素数验证算法的过程并用软件展示出来,完成课程设计报告。 这次课程设计是以小组为单位进行的,组长为胡艳敏,成员分别为杜国骏、贺瑞杰、马赛、于丛丽、全菲、王新洁、袁红、肖丹丹、乔良。我们组做的是大素数验证的算法,素数又称质数指在一个大于1,除了1和自身外,没法被其他的数。换句话说,只有(1和自己)的自然数即为素数。费马小定里 a^(n-1) ≡ 1 (mod n) 虽然费马小定里费马小定里费马小定理只是个必要条件,符合费马小定理而非素数的数叫做前3个Carmichael数是561,1105,1729。Carmichael数是非常少的。在1~100000000范围内的整数中,只有255个Carmichael数。为此又有二次探测定理,以确保该数为素数二次探测定理 二次探测定理如果p是一个素数,0xp,则方程x^2≡1(mod p)的解为x=1,p-1根据以上两个定理,如到Miller-Rabin算法的一般步骤: 、先计算出m、j,使得n-1=m*2^j,其中m是正奇数,j是非负整数、随机取一个b,2=b 2、计算v=b^m mod n、如果v==1,通过测试,返回、令i=1、如果v=n-1,通过测试,返回、如果i==j,非素数,结束、v=v^2 mod n,i=i+1、循环到5Miller-Rabin是随机算法得到的结果的正确率为 75%,所以应该多次调用该函数,使正确概率提高为1-(1/4)^ppackage bigprimenum; import org.jdesktop.application.Action; public class BigPrimeNumAboutBox extends javax.swing.JDialog { public BigPrimeNumAboutBox(java.awt.Frame parent) { super(parent); initComponents(); getRootPane().setDefaultButton(closeButton); } package bigprimenum; import org.jdesktop.application.Application; import org.jdesktop.application.SingleFrameApplication; public class BigPrimeNumApp extends SingleFrameApplication { @Override protected void startup() { show(new BigPrimeNumView(this)); } @Override protected void configureWindow(java.awt.Window root) { } public static BigPrimeNumApp getApplication() { return Application.getInstance(BigPrimeNumApp.class); } public static void main(String[] args) { launch(BigPrimeNumApp.class, args); } } BigInteger num=null; BigInteger i=null; BigInteger l=null; try{ num=new BigInteger(jTextField1.getText()); boolean a=true; l=new BigInteger(0); i=new BigInteger(2); BigInteger t=new BigInteger(1); Bi

文档评论(0)

yan698698 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档