米勒-拉宾素性检验

✍ dations ◷ 2025-11-17 19:19:44 #素性测试,密码学,有限域

米勒-拉宾素性检验是一种素数判定法则,利用随机化算法判断一个数是合数还是素数。卡内基梅隆大学的计算机系教授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语言编写的“米勒-拉宾”检验程序。

相关

  • 造影剂造影剂也称为对比剂、㫫影剤,是一种X光无法穿透的药剂,用于让体内器官在X光检查时能看得更清楚。例如消化道摄影时,医师会让患者喝下一杯造影剂溶液(大多含钡),然后用各种角度照相
  • 休达休达(西班牙语:Ceuta,柏柏尔语:Sebta,阿拉伯语:سبتة‎,转写:Sabtah,后两者音译为“塞卜泰”),是西班牙两个海外自治市之一 (另外一个是梅利利亚),位于非洲马格里布的最北部,直布罗陀海
  • 英伦航空|G1=地名英伦航空(英文:British Midland International,营业名称:bmi。中文亦有译名:英国中部航空、米德兰航空)是英国的一家航空公司,以伦敦希斯罗国际机场及曼彻斯特国际机场为枢
  • 车臣车臣,一译“彻辰”,原为蒙古族的贵族称号,后用作部落名与地名:
  • 微软Lumia 532BlueTooth 4.0微软Lumia 532是微软移动开发的一款入门级智能手机,运行Windows Phone 8.1操作系统。 连同Lumia 435,设计方面被认为是基于被取消的诺基亚X系列。微软Lumia 532
  • 楚德湖楚德湖(爱沙尼亚语:Peipsi-Pihkva järv,俄语:Чудско-Псковское озеро,德语:Peipussee),又称佩普西湖,是欧洲最大的跨国湖泊,位于俄罗斯和爱沙尼亚边境。楚德湖面
  • 毓嵒毓嵒(拼音:Yù-Yán;嵒通岩)(1918年-1999年),字岩瑞,小名小瑞子,中国书法家,是清朝宗室后裔。他是清朝末代皇帝溥仪的堂侄、端郡王载漪的侄孙,也是溥仪的嗣子。毓嵒是道光帝第五子奕誴(18
  • SETISETI可以指:
  • 撞击石撞击石是描述岩石被陨石撞击所创造或地形修改的非正式术语 。这个名词包括目标岩石的融化(例如:陨磺砾岩、陨击角砾岩或冲击凝灰角砾岩)和冲击变质作用,或是两者的混合,以及作为
  • 乔丹Jordan,常被译为佐敦或是乔丹等,可以指: