Fermat 원시성 테스트 대신 Miller–Rabin이 필요한 이유는 무엇입니까?


10

Miller-Rabin 증명 에서 숫자가 Fermat 원시성 테스트 를 통과하면 동일한 기준 (증거의 변수)로 Miller-Rabin 테스트를 통과해야합니다 . 그리고 계산의 복잡성은 동일합니다.a

Fermat 원시성 테스트 는 다음과 같습니다 .

카 마이클 수는 소수보다 실질적으로 드물지만 1 은 Fermat의 원시성 테스트가 종종 위의 형식으로 사용되지 않을 정도로 충분합니다. 대신, Baillie-PSW, Miller-Rabin 및 Solovay-Strassen과 같은 다른 강력한 Fermat 테스트 확장 프로그램 이 더 일반적으로 사용됩니다.

Miller-Rabin의 이점은 무엇이며 왜 Fermat 원시성 테스트보다 강력하다고 말합니까?

답변:


7

Rabin-Miller 알고리즘은 또한 숫자 주어지면 에 사소한 Unity 루트가 있는지 테스트 합니다 .Z nnZn

카 마이클 숫자는 Fermat 테스트를 통과 하지만 (모든 기초 ), 모든 카 마이클 숫자 에 대해 단일 근에 대한 테스트가 (즉, 시퀀스 실패하는 숫자가 많이 있습니다 결국 사소한 단결의 근본을 표시합니다).N , 2 , . . . , 2 r aanaaa,2a,...,2ra

따라서 다음과 같은 것이 있습니다.

Fermat의 검정에서, 복합 수 이 Carmichael이 아닌 경우 , 검정이 복합성을 검출 할 확률은 이상 입니다. 그러나 테스트는 모든 Carmichael 번호에 실패합니다.1 / 2n1/2

Rabin-Miller 테스트의 경우 모든 합성 수는 이상 확률로 탐지됩니다 . 이것은 정확성 확률이 입력과 무관하다는 것을 의미합니다 ( "하드"입력은 없습니다). 이것이이 알고리즘을 더 강하게 만드는 것입니다.1/2


Carmichael 번호 n은 Fermat의 테스트에서 성공할 수 있지만 동일한 기반을 사용하여 Rabin-Miller에서 실패 a했습니까?
ZijingWu

Carmichael 숫자는 모든 대해 Fermat의 테스트를 통과 하지만 일부 경우 Rabin-Miller 테스트 (특히 Unity 테스트의 근본)에 실패합니다. aa
Shaull

그러나 카 마이클은 모든위한 페르마의 테스트를 통과하지 않습니다 올바른? 예를 들어 첫 번째 Carmichael 번호 561 = 3 * 11 * 17은 Fermat의 테스트에 = 3 또는 11 또는 17 을 전달하지 않습니다 .aa
ZijingWu

"통과"라고 말하면 복합 숫자로 인식 되지 않습니다 . 따라서, 카 마이클 번호는 각에 대한 테스트 통과 할 . 우리도 같은 의미라고 생각합니다. 이 예에서 561은 모든 숫자 대해 Fermat의 테스트를 통과 . aa
Shaull

1
"더 복잡한"시험의 요점은 놓여진 염기의 분율이 (1이 아닌 소수 일 수 있음) 보증 된 한계가 1보다 작다는 것입니다. 즉, Miller-Rabin에서는 최대 1/4 거짓말 (IIRC, 그리고 경계는 상당히 비관적입니다).
vonbrand

0

나는 당신의 진술이 일어나는 것과 반대라고 생각합니다. 주어진베이스에 대해 Miller-Rabin 테스트를 통과하면 동일한베이스에 대해 Fermat 테스트를 통과하게됩니다. 대조적으로, 주어진베이스에 대해 Fermat 테스트를 통과하지만 동일한베이스에 대한 Miller-Rabin 테스트에는 실패하는 복합 재료가 많이 있습니다.

예를 들어 Wikipedia Miller-Rabin 페이지의 Pomerance / Selfridge / Wagstaff의 논문을 참조하십시오.

https://math.dartmouth.edu/~carlp/PDF/paper25.pdf

여기서 2 페이지의 다이어그램에서 오일러 유사 프라임은 Fermat 유사 프라임의 하위 집합이고 강한 유사 프라임은 이들의 하위 집합입니다. 따라서 Solovay-Strassen 시험은 Fermat 시험보다 더 안목이 있고 Miller-Rabin 시험은 둘 이상입니다. 그들은 둘 다 카 마이클 수의 중요한 문제를 피합니다. 그들은 본질적으로 동일한 성능을 가지므로 Miller-Rabin 테스트를 선호합니다.


0

Miller-Rabin이 Fermat보다 낫다는 것은 분명합니다.

Fermat 테스트를 통해 = 1 (모듈로 p) 인지 확인합니다 .ap1

Miller-Rabin 테스트에서 을 계산 위해 와 같은 k와 odds를 찾습니다 . 그런 다음 우리는 모듈로 p를 계산하고 k를 제곱 모듈로 p에 곱합니다. 그것은 을 계산하는 아주 확실한 방법 입니다. p - 1 = s · 2 k a s a p 1ap1p1=s·2kasap1

다시, 결과가 1이 아닌 경우 (모듈로 p) p는 합성입니다. 그러나 결과 1 modulo p이면 +1 또는 -1이 아닌 중간 결과를 제곱하여 1을 얻었는지 확인합니다.이 경우 x는 복합으로 입증됩니다.

따라서 우리는 정확히 같은 양의 작업을 수행하지만 x가 합성임을 증명하는 더 많은 방법이 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.