怎样活得简单,人活在世,希望自己活得简单些,可是事实上,人不求事,事却找人,所以,人难免在世上,活得很艰难,那么,到底要怎样活,才更简单呢?......
2023-03-20 357 数学
现在许多的安全加密算法都要涉及到大素数的运算,比如RSA算法的实现需要两个随机的大素数作为秘钥的“种子”。在我们实际程序编写时,也常常需要用大素数对数据进行处理。但是,如今并没有可以产生任意大素数的有效技术。然而概率性检验素性方面的许多方法已经比较成熟。下面介绍Miller—Rabin算法进行素性检测。
使用伪随机数产生器产生一个奇数p
用概率性算法Miller-Rabin算法对p做一次素性检验。
算法如下:Miller-Rabin(p)/*p大于3且为奇数,算法输出p进行素性检验的结果*/{ 把p-1写成m*2^k的形式,其中m是一个奇数; 随机选取集合{2,…,p-1}中的一个整数n;a=n^m mod p;if(a=1) return TRUE; for(i=0;ik;i ){ if(a=p-1) return TRUE; else a=a*a mod p; } return FALSE;}。这里的格式不好读算法,可以参照下图。
如果p算法返回值为FALSE,表明p没有通过检验,p一定不是素数,返回步骤1;如果返回值为TRUE,表明p通过本次检验,p不是素数的概率不会多于1/4
重复步骤2足够多次(例如S次),如果p全都通过了检测,可判定p是素数的概率至少有(1-1/4^S)。当此概率高于可接受的阈值,则可认为p是一个素数
这个检验只是概率性的,并不能完全确定p是素数,因此可能会产生错误的结果。但是通过提高阈值,也就是增加检验的次数,可使p不是素数的概率接近于0
以上方法由办公区教程网编辑摘抄自百度经验可供大家参考!
相关文章
怎样活得简单,人活在世,希望自己活得简单些,可是事实上,人不求事,事却找人,所以,人难免在世上,活得很艰难,那么,到底要怎样活,才更简单呢?......
2023-03-20 357 数学
数学成绩太差了怎么办,怎么样提高数学成绩,数学一直是大部分学生的苦恼,怎么样攻克这门课程,那一直烦恼到许多学子,今天,小编斗胆班门弄斧,用我的一点小智慧,帮助我们的学子们渡过难关!......
2023-03-20 112 数学
origin9.0操作教程:[9]通过数学公式生成数据,在我们使用origi9.0处理数据的时候,有的时候需要我们使用一些特定的数学公式进行运算。这个时候,我们应该如何操作呢。小编来为你解惑。......
2023-03-20 439 数学