米勒-拉宾素性检验

✍ dations ◷ 2025-04-02 13:51:49 #素性测试,密码学,有限域

米勒-拉宾素性检验是一种素数判定法则,利用随机化算法判断一个数是合数还是素数。卡内基梅隆大学的计算机系教授Gary Lee Miller首先提出了基于广义黎曼猜想的确定性算法,由于广义黎曼猜想并没有被证明,其后由以色列耶路撒冷希伯来大学的Michael O. Rabin教授作出修改,提出了不依赖于该假设的随机化算法。

首先介绍一个相关的引理。我们发现 1 2 mod p {\displaystyle 1^{2}{\bmod {p}}} > 3, an odd integer to be tested for primality;Input #2: , a parameter that determines the accuracy of the testOutput: if is composite, otherwise

write  − 1 as 2· with  odd by factoring powers of 2 from  − 1WitnessLoop: repeat  times:   pick a random integer  in the range     ←  mod    if  = 1 or  =  − 1 then      continue WitnessLoop   repeat  − 1 times:       ← 2 mod       if  =  − 1 then         continue WitnessLoop   return return 

使用模幂运算,这个算法的时间复杂度是 O ( k log 3 n ) {\displaystyle O(k\log ^{3}n)}  log2 log log  log log log ) = Õ( log2).

如果我们加入最大公因数算法到上述算法中,我们有时候可以得到 n {\displaystyle n} 的因数,而不仅仅是证明 n {\displaystyle n} 是一个合数。例如,若 n {\displaystyle n} 是一个基于 a {\displaystyle a} 的可能的素数,但不是一个大概率素数,则 gcd ( ( a d mod n ) 1 , n ) {\displaystyle \gcd((a^{d}{\bmod {n}})-1,n)} gcd ( ( a 2 r d mod n ) 1 , n ) {\displaystyle \gcd((a^{2^{r}d}{\bmod {n}})-1,n)} 将得到 n {\displaystyle n} 的因数。如果因式分解是必要的,这一 G C D s {\displaystyle GCDs} 算法可以加入到上述的算法中,代价是增加了一些额外的运算时间。

例如,假设 n = 341 {\displaystyle n=341} ,则 n 1 = 340 = 85 4 {\displaystyle n-1=340=85*4} .于是 2 85 mod 3 41 = 32 {\displaystyle 2^{85}{\bmod {3}}41=32} ,这也告诉我们 n {\displaystyle n} 不是一个大概率素数,即 n {\displaystyle n} 是一个合数。如果这个时候我们求最大公因数,我们可以得到一个 n = 341 {\displaystyle n=341} 的因数: gcd ( ( 2 85 mod 3 41 ) 1 , 341 ) = 31 {\displaystyle \gcd((2^{85}{\bmod {3}}41)-1,341)=31} .这时可行的,因为 n = 341 {\displaystyle n=341} 是一个基于2的伪素数,但不是一个“强伪素数”。

下面是根据以上定义而使用Magma语言编写的“米勒-拉宾”检验程序。

相关

  • 利巴韦林利巴韦林(英语:Ribavirin,俗称病毒唑),是一种抗病毒药,属合成核苷类药,1970年由ICN制药公司Joseph T. Witkowski合成。对许多DNA和RNA病毒有抑制作用,其机理尚不清楚。美国食品药物
  • 单板纲原口动物 Protostomia见内文单板纲(学名:Monoplacophora),又名新碟贝纲,是软体动物门的一个多系群纲,在深海的底层生活。单板纲大多数是化石种类,主要产于早古生代海相地层中。现存
  • 卡胡卡胡是一位下埃及统治者,在巴勒莫石碑中被提及。由于考古学家没有发现其他证据,他可能是神话中的国王,甚至可能是完全虚构的统治者。
  • 2-乙基己醇2-乙基己-1-醇,分子式C8H18O。无色有特殊气味液体。可燃。粘度:9.8 mPa·s(20°C)。 溶于约720倍的水,与醇、醚和氯仿等多数有机溶剂互溶。与水形成共沸混合物,其中水占20%,共沸点99
  • 爱明内斯库米哈伊·爱明内斯库(罗马尼亚语:Mihai Eminescu,1850年1月15日-1889年6月15日),罗马尼亚浪漫主义男诗人,代表作:Luceafărul(晨星),Mai am un singur dor(我有一个未完成的心愿),以及5 Scr
  • 谍血柔肠谍血柔肠(英语:Dark Journey),1937年英国反谍影片,由维克托·萨维尔执导,康拉德·维德和费雯·丽主演,拉尤斯·比洛和阿瑟·威佩里斯编剧,讲述了第一次世界大战期间敌对双方的两个间
  • 梦的解析梦的解析(德语:Die Traumdeutung)(或译作释梦)是西格蒙德·弗洛伊德的一本著作,第一版出版于1899年11月。该书开创了弗洛伊德的“梦的解析”理论,被作者本人描述为“理解潜意识心理
  • 陶尔哈姆莱茨区陶尔哈姆莱茨区(英语:London Borough of Tower Hamlets, .mw-parser-output .IPA{font-family:"Charis SIL","Doulos SIL","Linux Libertine","Segoe UI","Lucida Sans Unicod
  • SBUSBU可以指:
  • 西班牙共产党节西班牙共产党节(西班牙语:Fiesta del PCE)是西班牙共产党每年在马德里举办的节庆活动,它于每年9月的第三个星期举行。该活动是马德里每年的重要的文化和政治事件之一。西班牙共