Por que Miller – Rabin em vez do teste de primalidade de Fermat?


10

A partir da prova de Miller-Rabin , se um número passa no teste de primalidade de Fermat , ele também deve passar no teste de Miller-Rabin com a mesma base (uma variável na prova). E a complexidade da computação é a mesma.a

O seguinte é do teste de primalidade de Fermat :

Embora os números de Carmichael sejam substancialmente mais raros que os números primos, 1 existem o suficiente para que o teste de primalidade de Fermat geralmente não seja usado na forma acima. Em vez disso, outras extensões mais poderosas do teste de Fermat, como Baillie-PSW, Miller-Rabin e Solovay-Strassen, são mais comumente usadas.

Qual é o benefício de Miller-Rabin e por que se diz ser mais poderoso que o teste de primalidade de Fermat?

Respostas:


7

O algoritmo de Rabin-Miller também testa, dado um número , se Z n tem uma raiz não trivial do Unity.nZn

Números Carmichael passar no teste Fermat (para cada base ), mas para cada número Carmichael n , existem muitos números de uma tal forma que o teste para raízes unidade falha em um (isto é, a sequência de um , dois um , . . . , 2 r a eventualmente exibe uma raiz não trivial da unidade).umanumaumauma,2uma,...,2ruma

Assim nós temos o seguinte:

Para o teste de Fermat, se um número composto não é Carmichael, então a probabilidade de que o teste irá detectar compositeness é de pelo menos 1 / 2 . No entanto, o teste falhará em todos os números de Carmichael.n1 1/2

Para o teste de Rabin-Miller, cada número composto será detectado com probabilidade de pelo menos . Isso significa que a probabilidade de correção é independente da entrada (não há entradas "rígidas"). É isso que torna esse algoritmo mais forte.1 1/2


Você quer dizer que o número Carmichael pode ter sucesso no teste de Fermat, mas falhou em Rabin-Miller usando a mesma base a?
ZijingWu

Número de Carmichael passar o teste de Fermat para cada , mas para alguns um é ele irá falhar o teste de Rabin-Miller (especificamente, a raiz de teste de unidade). umauma
Shaull

Mas Carmichael não passará no teste de Fermat para todos os , correto? Por exemplo, o primeiro número de Carmichael 561 = 3 * 11 * 17 não passará no teste de Fermat para a = 3 ou 11 ou 17. #umauma
1025 ZijingWu

umauma

11
O ponto dos testes "mais complexos" é que a fração de bases que se encontra (digamos que o número seja talvez primo, quando não é) tem um limite garantido menor que 1. Ou seja, em Miller-Rabin, pode ser demonstrado que no máximo 1/4 de mentira (IIRC, e o limite é bastante pessimista).
vonbrand

0

Acredito que sua afirmação é o oposto do que acontece. Passar no teste de Miller-Rabin para uma determinada base significa que passará no teste de Fermat para a mesma base. Por outro lado, existem muitos compostos que passarão no teste de Fermat para uma determinada base, mas serão reprovados no teste de Miller-Rabin para a mesma base.

Veja, por exemplo, o artigo de Pomerance / Selfridge / Wagstaff na página da Wikipedia Miller-Rabin:

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

onde vemos um diagrama na página 2, mostrando os pseudoprimes de Euler sendo um subconjunto dos pseudoprimes de Fermat e os pseudoprimes fortes sendo um subconjunto desses. O teste de Solovay-Strassen é, portanto, mais exigente que o teste de Fermat, e o teste de Miller-Rabin, mais do que qualquer um. Ambos evitam o problema crítico dos números de Carmichael. Eles têm essencialmente o mesmo desempenho, portanto, preferimos usar o teste de Miller-Rabin.


0

Deveria ser óbvio que Miller-Rabin é melhor que Fermat.

umap-1 1

Com o teste de Miller-Rabin, para calcular , encontramos k e s ímpares tais que pumap-1 1p-1 1=s·2kumasumap-1 1

Novamente, se o resultado não for 1 (módulo p), então p é composto. Mas se o resultado for 1 módulo p, verificamos se obtivemos 1 ao quadrado de um resultado intermediário que não era +1 ou -1 e, nesse caso, x também é comprovadamente composto.

Portanto, fazemos exatamente a mesma quantidade de trabalho, mas há mais maneiras de provar que x é composto.

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.