• Nenhum resultado encontrado

Teste de Miller-Rabin

No documento Teoria dos numeros e o RSA (páginas 38-45)

Discutiremos, agora, outro teste probabil´ıstico baseado no conceito de pseudoprimo forte. Inicialmente, veremos alguns resultados importantes relaciona- dos ao teste de Miller e Rabin

Defini¸c˜ao 3.3.1. O menor expoente e tal que ae ≡ 1(mod n) ´e chamado ordem de a m´odulo n e denotado por e = ordna.

Lema 3.3.1 (Pocklington). Seja n um inteiro positivo. Suponhamos que n − 1 = qkr, k ≥ 1, onde q ´e primo e q - r. Se existe a tal que an−1 ≡ 1(mod n) e

Prova. Suponhamos que a satisfa¸ca as hip´oteses do lema. Seja p um primo tal que p|n e seja t = ordpa. Como an−1 ≡ 1(mod n), sabemos que an−1 ≡ 1(mod p). Assim,

t|(n − 1) = qkr. Al´em disso, como mdc(an−1q −1, n) = 1, ent˜ao temos a n−1

q 6≡ 1(mod p)

e t n˜ao divide (n − 1)/q = qk−1· r. Da´ı, qk|t. J´a que t|(p − 1) segue que qk|p − 1.

Portanto, p ≡ 1(mod qk).

 Teorema 3.3.1. Seja n ´ımpar e n − 1 = 2kq com q ´ımpar e k ≥ 1. Se n ´e primo e a ∈ Z∗n, ent˜ao aq ≡ 1(mod n) ou existe um i ∈ {0, 1, . . . , k − 1} tal que

a2iq ≡ −1(mod n).

Prova. Consideremos a seguinte seq¨uˆencia de potˆencias m´odulo n: aq, a2q, . . . , a2k−1q, a2kq.

Se n for um n´umero primo, ent˜ao pelo menos uma destas potˆencias tem que ser congruente a 1 m´odulo n, pois, pelo Teorema de Euler, temos

a2kq = an−1 ≡ 1(mod n).

Seja i ≥ 1 o menor expoente tal que a2iq ≡ 1(mod n). Podemos escrever a2iq− 1 = (a2i−1q

− 1)(a2i−1q

+ 1). Como n ´e primo e n|(a2iq

− 1), ent˜ao ou n|(a2i−1q

− 1) ou n|(a2i−1q

+ 1). Sendo i o menor expoente tal que a2iq

− 1 ´e divis´ıvel por n, ent˜ao a2i−1q

− 1 n˜ao ´e divis´ıvel por n. Segue que n divide a2i−1q

+ 1, isto ´e, a2i−1q

Conclu´ımos que se n ´e primo, ent˜ao uma das potˆencias da seq¨uˆencia dada tem que ser congruente a −1 m´odulo n quando i ≥ 1. Agora, se i = 0 ent˜ao aq ≡ 1(mod n) e

a esta congruˆencia n˜ao podemos aplicar o produto not´avel, pois q ´e ´ımpar.

Portanto, se n ´e primo, ent˜ao uma das potˆencias da seq¨uˆencia ´e congruente a −1 m´odulo n ou aq≡ 1(mod n).

 A seguir apresentaremos dois lemas importantes na an´alise do teste de Miller- Rabin. Para isto, definimos o conjunto

S(n) = {a ∈ Z∗n; a

q ≡ 1(mod n) ou a2iq

≡ −1(mod n)}

para algum 0 ≤ i < t onde n − 1 = 2tq. Todo a 6∈ S(n) ´e dito testemunha forte da

composi¸c˜ao de n.

Um n´umero composto n tal que existe a ∈ S(n) ´e chamado de pseudoprimo forte. Lema 3.3.2. Seja n ≥ 3 um inteiro ´ımpar. S(n) = Z∗n se, e somente se, n ´e primo.

Prova. Suponhamos que ∃a ∈ Zntal que a n˜ao est´a em S(n), ent˜ao a ´e testemunha da composi¸c˜ao de n. Logo, n ´e composto.

Reciprocamente, seja n primo. Se a ∈ Z∗n arbitr´ario, temos que an−1≡ 1(mod n).

Como

(an−12 )2 = an−1≡ 1(mod n)

e a equa¸c˜ao x2 ≡ 1(mod n) tem somente duas solu¸c˜oes, a saber x = ±1, ent˜ao

an−12 = a2 t−1q

Se an−12 ≡ −1(mod n), ent˜ao a ∈ S(n). Agora, se a n−1 2 ≡ +1(mod n), novamente temos an−14 = a 2tq 4 = a2 t−2q ≡ ±1(mod n).

Prosseguindo desta maneira, para qualquer a ∈ Z∗n teremos ou aq ≡ 1(mod n) ou

a2jq

≡ −1(mod n) para algum j , 0 ≤ j < t.

 Lema 3.3.3. Se n > 3 ´e um composto ´ımpar, ent˜ao |S(n)| ≤ n−14 .

Prova. Suponhamos que n = 1 + 2tq, com q ´ımpar, seja um n´umero composto.

Podemos escrever n = pe1

1 · · · perr. Seja k o maior inteiro tal que exista pelo me-

nos um b ∈ Z∗n com b2 k

≡ −1(mod n). Notamos que k est´a bem definido, pois (−1)20 ≡ −1(mod n) e assim k ≥ 0. Tamb´em temos k ≤ v(u) − 1, onde u ´e o menor inteiro positivo tal que au = 1, ∀a ∈ Zn e v(u) ´e o maior inteiro tal que 2v(u)|u.

Temos pi ≡ 1 (mod 2k+1), 1 ≤ i ≤ r, pelo Lema 3.3.1, ent˜ao n ≡ 1(mod 2k+1).

Tomemos m = 2kq. Ent˜ao 2m | (n − 1). Consideremos os seguintes subgrupos de Z∗n: J = {a ∈ Z∗n; an−1 ≡ 1(mod n)} K = {a ∈ Z∗n; am ≡ ±1(mod p ei i ), ∀i} L = {a ∈ Z∗n ; am ≡ ±1(mod n)} M = {a ∈ Z∗n; am ≡ 1(mod n)} . Temos M ⊆ L ⊆ K ⊆ J ⊆ Z∗n.

Vemos que todo a ∈ S(n) tamb´em pertence a L, pois se aq ≡ 1(mod n), ent˜ao

´e ´obvio que am ≡ 1(mod n), enquanto que se a2sq

≡ −1(mod n) para algum s ent˜ao s ≤ k, pela defini¸c˜ao de k. Mostraremos que, desde que n 6= 9, L ´e um subgrupo de ´ındice pelo menos 4 em Z∗n e, a partir disto, temos que |S(n)| ≤

n−1 4 .

Todo elemento de G = {a ∈ Z∗n; a ≡ ±1(mod p ei

i ), ∀i} ´e uma 2k-´esima potˆencia; da´ı

uma m-´esima potˆencia, basta tomar x ≡ b ou x ≡ b2(mod pei

i ) que implica que x2 k

≡ ±1(mod pei

i ) para cada i. Dessa maneira, M tem ´ındice 2r em

K = {a ∈ Z∗n ; am ∈ G}. Analogamente, M tem ´ındice 2 em L. Assim,

(K : L) = 2r−1. Logo, (Z∗n : L) ≥ (Z ∗ n: J )(K : L) = 2 r−1 (Z∗n : J ). Se r ≥ 3, segue que (Z∗n : J ) ≥ 4.

No entanto, se r = 2 ent˜ao n n˜ao pode ser um n´umero de Carmichael que ´e divis´ıvel por pelo menos 3 primos distintos (Lema 3.2.1). Ent˜ao ∃a ∈ Zncom an−16≡ 1(mod n),

e assim J ´e um subgrupo pr´oprio de Zn e portanto (Zn : J ) ≥ 2. Logo, (Zn: L) ≥ 4. Finalmente, se r = 1 ent˜ao n = pe, e ≥ 2. Mas ent˜ao, |J | = p − 1, e (Z

n : J ) =

= pe−1 ≥ 4, exceto quando pe = 9. Quando n = 9 existem exatamente 2 elementos

de S(n), a saber 1 e −1. Ent˜ao, o n´umero de elementos ´e ≤ n−14 .

 Como resultado deste lema, descreveremos um algoritmo para testar a primali- dade de n [7, Cap.9].

Algoritmo 2 (MILLER-RABIN(n)). 1. escolha a ∈ {1, . . . , n − 1} aleat´orio 2. escreva n − 1 = 2tq, q ´ımpar

3. calcule sucessivamente a0 = aq(mod n), a1 = a20(mod n), . . . , ak = a2k−1(mod n)

at´e que k = t ou ak ≡ 1(mod n)

4. se k = t e ak6≡ 1(mod n) retorne “composto”

5. sen˜ao se k = 0 ent˜ao retorne “primo”

6. sen˜ao se ak−16≡ −1 (mod n) ent˜ao retorne “composto”

7. sen˜ao retorne “primo”

Teorema 3.3.2. Se n ´e primo, ent˜ao MILLER-RABIN sempre retornar´a “primo”. Prova. No passo (4) nunca retornar´a “composto”, j´a que sempre existe j tal que a2jq ≡ 1(mod n), 1 ≤ j ≤ t. Seja k o menor ´ındice tal que ak ≡ 1(mod n), isto

´e, ak = a2 kq

≡ 1(mod n). Se k = 0, o algoritmo retornar´a “primo” em (5). Caso contr´ario, devemos ter ak−1 ≡ −1(mod n), o algoritmo retorna “primo” nos passos

(6) e (7).

Teorema 3.3.3. Se n ´e um n´umero composto, ent˜ao o algoritmo MILLER-RABIN re- torna “composto” para pelo menos 34 de todos os a ∈ Zn.

Prova. Seja n um composto ´ımpar. Se a 6∈ Zn, ent˜ao nunca acontecer´a a situa¸c˜ao onde teremos a2tq

≡ 1(mod n). Teremos ent˜ao k = t e ak 6≡ 1(mod n). Logo, o passo

(4) declarar´a que n ´e composto.

Agora, se a ∈ Z∗n, pelo Lema 3.3.3 temos que pelo menos 3/4 de todos a ∈ Z ∗ n s˜ao

testemunhas fortes da composi¸c˜ao de n e para estes valores de a o algoritmo retornar´a “composto”.

 Observamos que a maior parte do tempo gasto pelo algoritmo ´e para calcular aq,

a2q, . . ., a2tq

(mod n). Podemos calcular aq(mod n) usando O(lg3n) bit opera¸c˜oes via

um algoritmo que calcula potˆencias m´odulo n (detalhes da complexidade do algoritmo em [7, Teorema 9.4.5]) , e para calcular o restante das potˆencias fazendo o quadrado m´odulo n que tamb´em usa O(lg3n) bit opera¸c˜oes.

Desta forma, se n ´e primo, o algoritmo responder´a corretamente que n ´e primo. Mas, se n ´e composto, as chances do algoritmo retornar “primo” ´e de no m´aximo

1

4. Assim, o algoritmo procurar´a encontrar uma testemunha de composi¸c˜ao para n.

Se nenhuma testemunha ´e encontrada, ent˜ao ´e declarado “primo” com probabilidade de acerto de pelo menos 1 − 14. E se n˜ao ´e detectada nenhuma testemunha ap´os k aplica¸c˜oes do teste de Miller-Rabin com diferentes bases aleat´orias, a taxa de erro diminui para 41k.

Entretanto, tal taxa de erro ´e frequentemente muito menor. Monier [26] d´a uma f´ormula exata para esta margem de erro, que nunca excede (φ(n)/2r−1 − 2)/(n − 3)

onde r ´e o n´umero de fatores primos distintos de n e φ(n) ´e a fun¸c˜ao de Euler. Miller [25] e Bach [8] observaram que se assumirmos que a Hip´otese Generalizada de Riemann ´e verdadeira, um n´umero ´e primo se, e somente se, passa pelo teste para todas as bases a com 1 < a ≤ 2(log(n))2. Isto faz com que o teste de Miller-Rabin

se torne determin´ıstico. Tamb´em podemos obter uma vers˜ao determin´ıstica para o teste de Solovay-Strassen considerando a Hip´otese Generalizada de Riemann.

No documento Teoria dos numeros e o RSA (páginas 38-45)

Documentos relacionados