1.2 Sistema de cifragem RSA
1.2.1 Um pouco de Teoria de N´ umeros
1.2.1.3 Ra´ızes primitivas
Consideremos m um inteiro maior do que 1 e a um inteiro primo com m. Definimos r = ordm(a), a ordem de a m´odulo m, como o menor inteiro r tal que ar ≡ 1 (mod m).
Pelo Teorema de Euler, temos que aϕ(m) ≡ 1 (mod m). Daqui resulta que a ordem de
a ´e menor ou igual a ϕ(m), para todo a primo com m.
Defini¸c˜ao 1.2.2 Diz-se que g ´e uma raiz primitiva de m se ordm(a) = ϕ(m).
Notemos que existe uma raiz primitiva m´odulo m se, e s´o se, Z∗m ´e um grupo c´ıclico. Exemplo 1.2.6 Os n´umeros 2 e 7 s˜ao ra´ızes primitivas de 11, porque ord11(2) = ord11(7) =
ϕ(11) = 10. O n´umero 12 n˜ao tem ra´ızes primitivas. Algumas propriedades de ordm(a):
(i) Se ordm(a) = r, ent˜ao r | ϕ(m).
Pelo algoritmo da divis˜ao, temos ϕ(m) = rq + s, com 0 ≤ s < r. Se s > 0, ent˜ao 1 ≡ aϕ(m) ≡ arq+s ≡ (ar)q· as ≡ as (mod m), com s < r. Isto contradiz a hip´otese
de ordm(a) = r.
(ii) Se ordm(a) | k se, e s´o se, ak≡ 1 (mod m).
Suponhamos que k = ordm(a)·q+r, com 0 ≤ r < ordm(a). Como ak = aordm(a)·q+r ≡
ar (mod m), com r < ord
m(a), vem que ak ≡ 1 (mod m) equivale a r = 0, ou seja,
ordm(a) | r.
(iii) Se ordm(a) = r e i, j s˜ao inteiros n˜ao negativos, ent˜ao tem-se ai ≡ aj (mod m) se,
e s´o se, i ≡ j (mod r).
Se ai ≡ aj (mod m) e i > j, ent˜ao tem-se ai−j ≡ 1 (mod m), logo r | i − j, ou seja,
i ≡ j (mod r). Inversamente, se i ≡ j (mod r), ent˜ao ai−j ≡ 1 (mod m), portanto, ai ≡ aj (mod m).
(iv) ordm(a) = ϕ(m), ou seja, a ´e um raiz primitiva de m se, e s´o se, {a, a2, . . . , aϕ(m)}
´
(v) Se ordm(a) = r e k ´e um inteiro positivo, ent˜ao ordm(ak) = (k,r)r .
Seja d = (r, k), k = dq1 e r = dq2, com (q1, q2) = 1. Queremos mostrar que
ordm(ak) = q2. Seja ordm(ak) = s.
Por um lado, aks ≡ (ak)s ≡ 1 (mod m), logo r | ks ou dq
2 | dq1s, ou seja, q2 | q1s.
Como (q1, q2) = 1 vem que q2 | s.
Por outro lado, (ak)q2 ≡ akq2 ≡ adq1q2 ≡ (ar)q1 ≡ 1 (mod m). Daqui resulta que
s | q2. Ficou provado que s = q2.
Nota: ak tem a mesma ordem m´odulo m que a se, e s´o se, (k, r) = 1.
Os pr´oximos resultados s˜ao essenciais para enunciar Teorema das ra´ızes primitivas que nos d´a informa¸c˜oes acerca da existˆencia de ra´ızes primitivas para um inteiro m.
Inteiros que tˆem raiz primitiva Dizer que g ´e uma raiz primitiva de m, ´e dizer que ordm(g) = ϕ(m), ou, por outras palavras, que o conjunto
g, g2
, g3, . . . , gϕ(m) ´
e um sistema reduzido de res´ıduos m´odulo m.
Para os inteiros que n˜ao tˆem raiz primitiva n˜ao ´e poss´ıvel escrever os elementos de um sistema reduzido de res´ıduos como potˆencia de um elemento.
Lema 1.2.8 Se k ≥ 3, ent˜ao n˜ao existe nenhuma raiz primitiva m´odulo 2k.
Demonstra¸c˜ao. Basta mostrar, por indu¸c˜ao sobre n, que para todo o inteiro ´ımpar a, a2n−2 ≡ 1 (mod 2n), porque ϕ(n) = 2n−1.
Claro que ´e verdade para n = 3. Suponhamos que ´e verdade para n = k, ou seja, para todo o inteiro ´ımpar a, a2k−2 = 2kb + 1 para algum inteiro b. Elevando ambos membros da equa¸c˜ao ao quadrado, obtemos a2k−1
= 2k+1 2k−1b2+ b + 1 ≡ 1 (mod 2k+1), o que
completa a prova.
Lema 1.2.9 Se m ≥ 3 e n ≥ 3 s˜ao inteiros primos entre si, (m, n) = 1, ent˜ao n˜ao existem ra´ızes primitivas m´odulo mn.
Demonstra¸c˜ao. Seja d = (ϕ(m), ϕ(m)) e k = [ϕ(m), ϕ(m)]. Por um lado, para todo o inteiro a primo com mn, (a, mn) = 1, pelo Teorema de Euler temos,
ak ≡ 1 (mod m) e ak ≡ 1 (mod n).
Por outro lado, como (m, n) = 1, o Teorema Chinˆes dos Restos implica que
ak ≡ 1 (mod mn). (1.3)
Notando que ϕ(m) e que ϕ(n) s˜ao inteiros pares, temos k = ϕ(m)ϕ(n)d = ϕ(mn)d ≤ ϕ(mn)2 . Logo, a congruˆencia 1.3 implica que n˜ao existem ra´ızes primitivas m´odulo mn. Dos dois Lemas anteriores resulta que, se m > 1 ´e um inteiro que tem alguma raiz primitiva, ent˜ao m n˜ao ´e o produto de dois factores, primos entre si e maiores que 2, e nem ´e uma potˆencia de 2 maior que 4.
Os inteiros que podem ter alguma raiz primitiva s˜ao precisamente 2, 4, pα e 2pα, com p primo e ´ımpar e α inteiro positivo.
´
E imediato que 2 tem 1 como raiz primitiva e que 4 tem 3 como raiz primitiva. Resta ver os casos pα e 2pα.
Primeiro, vamos provar o resultado auxiliar seguinte.
Teorema 1.2.10 (Teorema de Gauss) Se n ´e um inteiro positivo, ent˜ao X
d|n
ϕ(d) = n
Demonstra¸c˜ao. Vejamos primeiro que se d | n, ent˜ao h´a ϕ(nd) elementos do conjunto S = {1, 2, . . . , n} cujo m´aximo divisor comum com n ´e d.
O subconjunto de S cujos elementos s˜ao divis´ıveis por d ´e S0 = {d, 2d, . . . ,ndd}. Seja kd ∈ S0. Ent˜ao (kd, n) = (kd,ndd) = d · (k,nd). Logo, (kd, n) = d se, e s´o se, (k,nd) = 1. Ou seja, o n´umero de inteiros existentes em S cujo m´aximo divisor comum com n ´e igual a d, ´e igual ao n´umero de inteiros k que n˜ao excedem nd e s˜ao primos com nd. Tal n´umero ´
e ϕ(nd).
Como cada um dos inteiros de S tem, para m´aximo divisor comum com n, um divisor d de n, ent˜ao n =X d|n ϕn d .
Mas, temos d | n se, e s´o se, n
d | n, isto ´e, se os divisores positivos de n s˜ao d1, . . . , dt,
ent˜ao os divisores positivos de n s˜ao dn
t, . . . , n d1. Logo, n = X d|n ϕ(d). Vejamos que, se p ´e primo, ent˜ao existem ra´ızes primitivas m´odulo p.
Lema 1.2.11 Seja p um n´umero primo ´ımpar e d | p − 1. Ent˜ao h´a ϕ(d) inteiros incon- gruentes m´odulo p, cuja ordem ´e d.
Demonstra¸c˜ao. Seja a ´e um n´umero inteiro. Se ordp(a) = d, ent˜ao pela propriedade
(i) d | p − 1. Consideremos o conjunto S = {a, a2, . . . , ad}, os seus elementos tˆem ordem ordp(ak) = (k,d)d , para 1 ≤ k ≤ d, pela propriedade (vi). Como ordp(ak) = d se, e s´o se,
(k, d) = 1, se existir um elemento com ordem d, ent˜ao o n´umero de elementos de S cuja ordem ´e igual a d ´e ϕ(d).
Falta provar que se d | p − 1, ent˜ao h´a pelo menos um inteiro a tal que ordp(a) = d.
Sejam d1, d2, . . . , dt todos os divisores de p − 1 e, para cada di, seja ψ(di) o n´umero de
elementos do conjunto R = {1, 2, . . . , p − 1} cuja ordem m´odulo p ´e di. (Todo o elemento
de R ´e primo com p e tem ordem m´odulo p que divide p − 1). Portanto,
t
X
i=1
ψ(di) = p − 1.
Mas pelo Teorema de Gauss 1.2.10, temos
t X i=1 ϕ(di) = p − 1, isto ´e, t X i=1 ψ(di) = t X i=1 ϕ(di). (1.4)
Por outro lado, sabemos que para cada di se tem ψ(di) = 0 ou ψ(di) = ϕ(di). Pela
equa¸c˜ao 1.4, resulta que se tem necessariamente ψ(di) = ϕ(di), para cada di. Caso
contr´ario, ter´ıamos
t X i=1 ψ(di) < t X i=1 ϕ(di).
Logo, h´a ϕ(d) elementos cuja ordem ´e d. Em particular, se p ´e primo, o Lema anterior diz que h´a ϕ(p − 1) ra´ızes primitivas de p.
Lema 1.2.12 Seja p ´e um n´umero primo ´ımpar. Ent˜ao existem ra´ızes primitivas g m´odulo p tais que
gp−16≡ 1 (mod p2). (1.5) Demonstra¸c˜ao. Seja g uma raiz primitiva de p tal que gp−1≡ 1 (mod p2) e considere-
mos o inteiro g + p. ´
E claro que o inteiro g + p ´e raiz primitiva de p. Temos
(g + p)p−1 = gp−1+ pgp−2+ p−12 p2gp−3+ · · · + pp−1 ≡ 1 − pgp−2 (mod p2).
Como (g, p) = 1, tem-se que pgp−2 6≡ 0 (mod p2) e, consequentemente, (g + p)p−1 6≡ 1
(mod p2).
Lema 1.2.13 Se g ´e uma raiz primitiva m´odulo pk e
gϕ(pk)6≡ 1 (mod pk+1), (1.6) ent˜ao g ´e uma raiz primitiva m´odulo pk+1, e
gϕ(pk+1)6≡ 1 (mod pk+2).
Demonstra¸c˜ao. Seja n a ordem de g m´odulo pk+1. Visto que gϕ(pk+1)
≡ 1 (mod pk+1),
vem que n | ϕ(pk+1) = pk(p − 1). Por outro lado, gn≡ 1 (mod pk+1) implica que gn ≡ 1
(mod pk). Como g ´e uma raiz primitiva m´odulo pk, vemos que ϕ(pk) = pk−1(p − 1) | n.
Portanto, n ´e igual a ϕ(pk) ou ϕ(pk+1).
Mas, pela equa¸c˜ao 1.6 segue que a ordem de g ´e ϕ(pk+1), ou seja, g ´e uma raiz primitiva
m´odulo pk+1.
Corol´ario 1.2.14 Se p ´e um n´umero primo ´ımpar, ent˜ao para todo k ≥ 1 existem ra´ızes primitivas m´odulo pk.
Corol´ario 1.2.15 Se p ´e um primo ´ımpar, ent˜ao para todo k ≥ 1 existem ra´ızes primi- tivas m´odulo 2pk.
Demonstra¸c˜ao. Seja g uma raiz primitiva m´odulo pk. Consideremos que g ´e ´ımpar. Seja n = ord2pk(g). Ent˜ao n | ϕ(2pk) = ϕ(pk).
Por outro lado, gn≡ 1 (mod 2pk), o que implica que gn≡ 1 (mod pk). Como g ´e uma
raiz primitiva m´odulo pk, ϕ(pk) | n. Isto implica que n = ϕ(2pk), ou seja, que g ´e uma
raiz primitiva m´odulo 2pk.
Finalmente, os resultados anteriores permitem enunciar o Teorema das ra´ızes primiti- vas.
Teorema 1.2.16 (Teorema das raizes primitivas) Seja m um inteiro positivo. Ent˜ao uma raiz primitiva m´odulo m existe se, e s´o se, m ´e igual a 2, 4, pk ou 2pk, em que p ´e
um n´umero primo maior que 2 e k ´e um inteiro positivo.
Seja m um inteiro que tem alguma raiz primitiva g. Pela propriedade (iv), {g, g2, . . . , gϕ(m)}
´
e um sistema reduzido de res´ıduos m´odulo m. Se a ´e um inteiro primo com m, ent˜ao existe um, e um s´o, inteiro i tal que
a ≡ gi (mod m), 0 ≤ i ≤ ϕ(m) − 1.
Defini¸c˜ao 1.2.3 Definimos o ´ındice de a com respeito `a raiz primitiva g, denotado indga,
ao menor inteiro n˜ao negativo i tal que a ≡ gi (mod m).
1.2.1.4 Lei da reciprocidade quadr´atica