MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Conceitos e algoritmos da Teoria dos Numeros
Parte I
IC-UNICAMP/2006-1s 1
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Divisibilidade
• N e Z: conjunto dos numeros naturais e inteiros.
• d ∈ Z e divisor de a: d|a⇒ a = kd para algum k ∈ Z.
– Se d|a, entao a e multiplo de d.
– Todo inteiro divide 0 (zero).
– d|a⇔ (−d)|a (aqui usaremos divisores ≥ 0).
– Todo inteiro a e divisıvel por 1 e por a (divisores triviais osdemais sao os fatores de a).
• Numeros primos: a inteiro maior que 1 e so contendodivisores triviais.
• Numeros compostos: a > 0 inteiro e tem um fator.
IC-UNICAMP/2006-1s 2
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Modulos e classes de equivalencia de ZPrincıpio: particao dos inteiros em multiplos e nao-multiplos deum dado inteiro n.
Teorema 1 (da Divisao) : Para todo a inteiro e n inteiropositivo, existe um unico par de inteiros (q, r), onde 0 ≤ r < n, talque a = qn + r.
• q = b anc e o quociente e r = a mod n e o resto da divisao.
• a ≡ b (mod n)⇒ (a mod n) = (b mod n). (equivalenciamodulo n).
−18 ≡ 47 ≡ 2( mod 5).
IC-UNICAMP/2006-1s 3
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Modulos e classes de equivalencia de ZDefinicao 1 Classes de Equivalencia modulo n:
[a]n = {a + kn : k ∈ Z}.
Exemplo 1
• [5]7 = {. . . ,−9,−2, 5, 12, 19, 26, . . .} = [−2]7 = [33]7,[−1]n = [n− 1]n, . . .
• Zn = {[a]n : 0 ≤ a ≤ n− 1}, ou simplesmente
Zn = {0, 1, . . . , n− 1}.
IC-UNICAMP/2006-1s 4
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Maximo divisor comum
Definicao 2
• Se d|a e d|b, entao d e divisor comum de a e b.
• Se nao existe d′ > d tal que d′ e divisor comum de a e b, entaod e o maximo divisor comum (MDC) de a e b.
Fatos:
• d|a e d|b entao d|(a + b) e d|(a− b);
• (mais geral) d|a e d|b entao d|(ax + by) ∀ x, y ∈ Z;
• se a|b entao |a| ≤ |b| ou b = 0, logo:
a|b, b|a⇒ a = b ou a = −b.
• Convencionaremos que MDC(0, 0) = 0.
IC-UNICAMP/2006-1s 5
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Maximo divisor comum
Propriedades:
• MDC(a, b) = MDC(b, a).
• MDC(a, b) = MDC(−a, b).
• MDC(a, b) = MDC(|a|, |b|).
• MDC(a, 0) = |a|.
• MDC(a, ka) = |a| para todo k ∈ Z.
IC-UNICAMP/2006-1s 6
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Maximo divisor comum
Teorema 2 Sejam a e b dois inteiros nao ambos nulos. Entao,
d = MDC(a, b) = min{ax + by : ax + by > 0 e x, y ∈ Z}.
Consequencias:
• a e b inteiros, d|a e d|b ⇒ d|MDC(a, b).
• a e b inteiros, n ≥ 0 inteiro ⇒ MDC(an, bn) = n×MDC(a, b).
• n, a e b inteiros positivos ⇒ se n|ab e MDC(a, n) = 1 entaon|b.
IC-UNICAMP/2006-1s 7
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Maximo divisor comum
Definicao 3 a e b sao primos relativos, ou coprimos, seMDC(a, b) = 1.
Teorema 3 Sejam a, b e p inteiros. Se MDC(a, p) = 1 eMDC(b, p) = 1 entao MDC(ab, p) = 1.
IC-UNICAMP/2006-1s 8
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Fatoracao de inteiros
Teorema 4 Para p primo e inteiros a e b quaisquer, se p|ab entaop|a ou p|b.
Teorema 5 (Unicidade da Fatoracao)) Um inteiro a pode serescrito de maneira unica como um produto da forma
a = pe11 pe2
2 pe33 . . . per
r ,
onde todo pi e primo e satisfaz pi < pi+1.
Exemplo 2
2940 = 22.31.51.72
IC-UNICAMP/2006-1s 9
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Calculo do MDC(a, b)
Suponha a, b ≥ 0. Uma primeira tentativa, muito ingenua:
• Determine os conjuntos D(a) e D(b) de divisores de a e b
testando a divisibilidade de 1, 2, . . . min(b√
ac, b√
bc) (por que?).
• Determine d = maxD(a) ∩D(b), o MDC de a e b.
Dificuldade: Se a for muito grande, com centenas de dıgitosdecimais,
√a tambem e e esse processo torna-se inviavel.
IC-UNICAMP/2006-1s 10
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Calculo do MDC(a, b)
Segunda tentativa, um disfarce da primeira:
• a = pe11 pe2
2 pe33 . . . per
r ;
• b = pf11 pf2
2 pf33 . . . pfr
r ;
• MDC(a, b) = pmin{e1,f1}1 p
min{e2,f2}2 . . . p
min{er,fr}r .
O numero de fatores distintos e da ordem de log2 a no pior caso(por que?). Mesmo assim, nao se conhecem algoritmos eficientes(polinomiais) para a fatoracao.
IC-UNICAMP/2006-1s 11
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Calculo do MDC(a, b)
Terceira alternativa, finalmente um teorema para ajudar-nos:
Teorema 6 Sejam a inteiro nao negativo e b inteiro positivo.Entao
MDC(a, b) = MDC(b, a mod b)
Exemplo 3 MDC(2940, 126) = MDC(126, 42) = MDC(42, 0) = 42.
IC-UNICAMP/2006-1s 12
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
O Algoritmo de Euclides
EUCLIDES(a, b)
Entrada: inteiros nao negativos a e b.
Saıda: MDC(a, b).
1. Se b = 0 entao retorne a.
2. EUCLIDES(b, a mod b).
IC-UNICAMP/2006-1s 13
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
O Algoritmo de Euclides
Analise de Complexidade
• A complexidade do pior caso de EUCLIDES(a, b) e, como seespera, calculada em funcao dos tamanhos |a|, |b| de a e b, istoe, o numero de bits de a e b.
k = |a| = dlog2 ae ⇒ a = Θ(2k).
• Vamos supor que a > b ≥ 0. (O que acontece se b > a ≥ 0? Ese b = a ?).
• E claro que o numero de operacoes executadas porEUCLIDES(a, b) e proporcional ao numero de chamadasrecursivas feitas pelo algoritmo.
• Como veremos, esse numero esta intimamente relacionado comos numeros de Fibonacci.
IC-UNICAMP/2006-1s 14
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
O Algoritmo de Euclides
Analise de Complexidade
• F0 = 0, F1 = 1, Fi = Fi−1 + Fi−2 para i ≥ 2.
0, 1, 1, 2, 3, 5, 8, 13, . . .
• A razao aurea e φ = (1 +√
5)/2 = 1.618 . . . e sua conjugada eφ = (1−
√5)/2 = −0.618 . . .).
• Sabe-se que Fi = (φi − φi)/√
5.
IC-UNICAMP/2006-1s 15
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
O Algoritmo de Euclides
Analise de Complexidade
Teorema 7 Se a > b ≥ 0 e EUCLIDES(a, b) executa k ≥ 1chamadas recursivas, entao a ≥ Fk+2 e b ≥ Fk+1.
Teorema 8 (Teorema de Lame)) Para todo k ≥ 1, se a > b ≥ 0e b < Fk+1, entao EUCLIDES(a, b) faz menos que k chamadasrecursivas.
IC-UNICAMP/2006-1s 16
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
O Algoritmo de Euclides
Analise de Complexidade
• O limite superior dado no Teorema de Lame e o melhorpossıvel.
• Pior caso: a e b sao numeros de Fibonacci consecutivos.EUCLIDES(Fk+1, Fk) faz k − 1 recursoes (lembre-se que, peladefinicao de Fk e pelo Teorema da Divisao,Fk+1 mod Fk = Fk−1).
• Assim, o numero de chamadas recursivas do EUCLIDES eO(log b).
• Se a e b sao inteiros de β bits, EUCLIDES faz O(β) operacoesaritmeticas (mod) e O(β3) operacoes em bits.
IC-UNICAMP/2006-1s 17
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
O Algoritmo Estendido de Euclides
Dado que d = MDC(a, b) = ax + by, perguntamos: quem sao x e y?
X-EUCLIDES(a, b)
Entrada: inteiros nao negativos a e b.
Saıda: MDC(a, b) e (x, y).
1. Se b = 0 entao retorne(a, 1, 0).
2. (d′, x′, y′)← X-EUCLIDES(b, a mod b).
3. (d, x, y)← (d′, y′, x′ − bab cy
′).
4. Retorne(d, x, y).
Corretude pode ser demonstrada por inducao.
IC-UNICAMP/2006-1s 18
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Um pouco de Algebra
Vamos formalizar as ideias vistas ate agora.
Definicao 4 Sejam S um conjunto e ⊕ uma operacao binariasobre S. Entao, (S,⊕) e um grupo se valem as propriedades:
1. Fechamento: a e b ∈ S entao a⊕ b ∈ S.
2. Identidade: ∃e ∈ S tal que ∀a ∈ S, a⊕ e = e⊕ a = a.
3. Associatividade: ∀a, b e c ∈ S, (a⊕ b)⊕ c = a⊕ (b⊕ c).
4. Existencia de inversos: ∀a ∈ S, existe um unico elementob ∈ S tal que a⊕ b = b⊕ a = e.
Exemplo 4 (Z,+) tendo 0 como identidade e (−a) como inversode a,∀a ∈ Z.
IC-UNICAMP/2006-1s 19
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Mais grupos
Definicao 5
• Um grupo (S,⊕) e abeliano se a operacao ⊕ for comutativa(a⊕ b = b⊕ a para todo a e b em S).
• Um grupo (S,⊕) e finito se |S| <∞.
IC-UNICAMP/2006-1s 20
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Grupos com Zn e aritmetica modular
Sejam a ≡ a′(mod n) e b ≡ b′(mod n). Entao
• a + b ≡ a′ + b′(mod n).
• ab ≡ a′b′(mod n).
Definicao 6
• [a]n +n [b]n = [a + b]n.
• [a]n .n [b]n = [ab]n.
Definicao 7 O grupo aditivo modulo n e dado por (Zn, +n ) (0 ea identidade para este grupo).
IC-UNICAMP/2006-1s 21
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Grupos com Zn e aritmetica modular
Definicao 8 O grupo multiplicativo modulo n e dado por(Z∗
n, .n ), onde Z∗n e o conjunto de elementos de Zn que sao primos
relativos de n, i.e. ,
Z∗n = {[a]n ∈ Zn : MDC(a, n) = 1}.
Exemplo 5 Z∗22 = {1, 3, 5, 7, 9, 13, 15, 17, 19, 21}.
Observacoes:
1. 1 e a identidade para este grupo.
2. Z∗n esta bem definido (MDC(a, n) = MDC(a + kn, n)).
IC-UNICAMP/2006-1s 22
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Grupos com Zn e aritmetica modular
Teorema 9 (Zn, +n ) e um grupo abeliano finito.
Teorema 10 (Z∗n, .n ) e um grupo abeliano finito.
IC-UNICAMP/2006-1s 23
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
O grupo multiplicativo (Z∗n, .n )
Definicao 9 O elemento inverso (multiplicativo) de umelemento a e denotado por (a−1 mod n). A divisao em Z∗
n edefinida pela equacao:
a/b ≡ ab−1(mod n).
Exemplo 6 Em Z∗15, 7−1 ≡ 13(mod 15) pois
7.13 = 91 ≡ 1(mod 15) e, portanto, 4/7 ≡ 4.13 ≡ 7(mod 15).
IC-UNICAMP/2006-1s 24
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
O grupo multiplicativo (Z∗n, .n )
Definicao 10 O tamanho de Z∗n e dado pela funcao φ de Euler,
definida por:
φ(n) = n∏p | n
(1− 1p),
onde p e um primo que divide n (incluindo n se for o caso).
Exemplo 7
• φ(22) = 22(1− 1/2)(1− 1/11) = 22(1/2)(10/11) = 10.
• Quando n e primo, φ(n) = n− 1.
IC-UNICAMP/2006-1s 25
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Subgrupos
Definicao 11 Se (S,⊕) e um grupo e, para S′ ⊆ S, (S′,⊕)tambem e um grupo, entao (S′,⊕) e um subgrupo de (S,⊕).
Exemplo 8 Os numeros pares formam um subgrupo de (Z,+).
Teorema 11 Um subconjunto fechado de um grupo finito e umsubgrupo.
Exemplo 9 {0, 2, 4, 6} e um subgrupo de (Z8,+8).
IC-UNICAMP/2006-1s 26
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Subgrupos
Teorema 12 (Lagrange) Se (S′,⊕) e um subgrupo de um grupofinito (S,⊕), entao |S′| e um divisor de |S|.
Corolario 1 Se S′ e um subgrupo proprio de um grupo finito S,entao |S′| ≤ |S|/2.
IC-UNICAMP/2006-1s 27
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Geradores
Escolha um elemento a ∈ S e calcule
a(k) =k⊕
i=1
a = a⊕ a⊕ . . .⊕ a︸ ︷︷ ︸k
,
para k ≥ 1.
Exemplo 10
• Tome Z6 e a = 2, Entao
a(1), a(2), . . . = 2, 4, 0, 2, 4, 0, 2 . . . .
• Para (Zn, +n ), a(k) = ka mod n.
• Para (Z∗n, .n ),a(k) = ak mod n.
IC-UNICAMP/2006-1s 28
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Geradores
Definicao 12 O subgrupo gerado por a, denotado por 〈a〉 (ou(〈a〉,⊕)), e definido por
〈a〉 = {a(k) : k ≥ 1}.
Propriedades:
• 〈a〉 e finito.
• 〈a〉 e fechado pois, pela associatividade, a(i) ⊕ a(j) = a(i+j).
• 〈a〉 e um subgrupo de S.
Exemplo 11 Para Z∗7, temos
〈1〉 = {1}, 〈2〉 = {1, 2, 4}, 〈3〉 = {1, 2, 3, 4, 5, 6}.
IC-UNICAMP/2006-1s 29
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Geradores
Definicao 13 A ordem de a (em um grupo S), denotada porord(a) e definida como sendo o menor inteiro t > 0 tal que a(t) = e.
Teorema 13 Para todo grupo finito (S,⊕) e todo a ∈ S,ord(a) = |〈a〉|.
Corolario 2 A sequencia a(1), a(2), . . . e periodica com perıodot = ord(a), i.e., a(i) = a(j) ⇔ i ≡ j(mod t). (Nota: a(0) = e)
Corolario 3 Se (S,⊕) e um grupo finito com identidade e, entao,para todo a ∈ S vale
a(|S|) = e.
IC-UNICAMP/2006-1s 30
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Equacoes lineares modulares
Problema 1 Dados inteiros a, b e n > 0, encontrarx ∈ {0, 1, ..., n− 1}, tal que
ax ≡ b(mod n).
Lembrando:
• 〈a〉 e o subgrupo de (Zn, +n ) gerado por a.
• A equacao tem solucao se e somente se b ∈ 〈a〉.
• |〈a〉| e divisor de n pelo Teorema de Lagrange.
IC-UNICAMP/2006-1s 31
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Equacoes lineares modulares
Teorema 14 Para todo inteiro a e n, se d = MDC(a, n), entao
〈a〉 = 〈d〉 = {0, d, 2d, 3d, . . . , ((n/d)− 1)d},
e, portanto, |〈a〉| = n/d.
Corolario 4 A equacao ax ≡ b(mod n) tem solucao se e somentese MDC(a, n) | b (= d | b).
Corolario 5 A equacao ax ≡ b(mod n) ou nao tem solucao outem d = MDC(a, n) solucoes distintas modulo n.
IC-UNICAMP/2006-1s 32
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Equacoes lineares modulares
Teorema 15 Seja d = MDC(a, n) = ax′ + ny′ (x′ e y′ sao inteirosobtidos, p.ex., por X-EUCLIDES(a, n)). Se d | b, entao, a equacaoax ≡ b(mod n) tem uma solucao cujo valor e:
x0 = x′(b/d) mod n.
Teorema 16 Suponha que ax ≡ b(mod n) tem solucao e que x0
seja uma solucao para esta equacao. Entao a equacao temexatamente d = MDC(a, n) solucoes distintas, modulo n, dadas por:
xi = x0 + i(n/d), para i = 1, 2, . . . , d− 1.
IC-UNICAMP/2006-1s 33
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Equacoes lineares modulares
Algoritmo para resolver equacoes modulares lineares
ELM-RESOLVE(a, b, n)
Entrada: inteiros nao negativos n > 0 e a, b ∈ Zn.
Saıda: x ∈ Zn tal que ax ≡ b(mod n)
1. (d, x′, y′)← X-EUCLIDES(a, n).
2. Se d | b entao
2.1 x0 ← x′(b/d) mod n.
2.2 Para i = 0 ate d− 1 faca
2.2.1 imprima x0 + i(n/d) mod n.
3. senao imprima “nao ha solucao”.
IC-UNICAMP/2006-1s 34
MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab
Equacoes lineares modulares
Corolario 6 Seja n > 1. Se MDC(a, n) = 1 entao ax ≡ b(mod n)tem uma unica solucao modulo n.
Corolario 7 Seja n > 1. Se MDC(a, n) = 1 entao ax ≡ 1(mod n)tem uma unica solucao modulo n. Caso contrario, nao existesolucao. Alem disso, o calculo de a−1 mod n e o valor de x
retornado por X-EUCLIDES(a, n).
IC-UNICAMP/2006-1s 35