Aritmética modular, Euler e RSA
Carlos Florentino1,2
1Departmento de Mathemática, FCUL, 2CMAFcIO e GFM Univ. de Lisboa
Notas de Matemática Discreta / Finita - Parte I
Outline
1 Conjuntos, Funções e Relações de Equivalência
Conjuntos e Cardinalidade
Funções e Relações de Equivalência
2 Teorema Fundamental da Aritmética
Algoritmos, Euclides e Bézout
O Teorema Fundamental da Aritmética
3 Números racionais e representações
Números racionais
Representação em diferentes bases
4 Números modulares
Aritmética modular Anéis e corpos
A Equação Linear Modular O Teorema Chinês dos Restos
5 Criptograa RSA
Função totiente (ϕ) de Euler
Teoremas de Fermat, Euler e Daniel da Silva O algoritmo RSA
Conjuntos - Linguagem/Terminologia
A = {a, b, c, · · · }, conjunto denido por extensão, a ∈ A B = {n ∈ Z : n2> 24}, subconjunto denido por propriedade. Temos 4 /∈ B, B ⊂ Z .
Se C é subconjunto de D, escreve-se C ⊂ D (podem ser iguais) Conjuntos fundamentais:
Naturais N = {1, 2, 3, · · · }, N0= {0, 1, 2, 3, · · · } = N ∪ {0}
Inteiros Z = {· · · , −2, −1, 0, 1, 2, 3, · · · } Racionais Q = {a
b : a ∈ Z, b ∈ N}
Reais R, Complexos C, etc. Operações com conjuntos:
União A ∪ B = {x : x ∈ A ou x ∈ B} Intersecção A ∩ B = {x : x ∈ A e x ∈ B} Diferença A \ B = {x ∈ A : x /∈ B};
Complemento como subconjunto de U (universo), Ac= U \ A
Diferença simétrica A4B := (A \ B) ∪ (B \ A)
União disjunta A t B := A ∪ B, sempre que A ∩ B = ∅ (vazio) Produto (cartesiano) A × B = {(a, b) : a ∈ A, b ∈ B}
Cardinal
O cardinal |X| de um conjunto nito X é o número de elementos.
Exemplo:
[n] := {1, 2, 3, · · · , n} ⊂ N tem n elementos: |[n]| = n. [n]0 := {0, 1, 2, 3, · · · , n} ⊂ N0 tem n + 1 elementos.
|A ∪ B| = |A| + |B| − |A ∩ B| |A × B| = |A| · |B|
Numa união disjunta:
|A1t A2t · · · t Ak| =X
j
|Aj|
Conjunto potência de X (ou conjunto das partes de X): P(X) = {A : A ⊂ X}
tem |P(X)| = 2|X|.
Exemplo: se X = {0, 4, α} então:
Funções
Uma função f : X → Y é uma associação: a cada x ∈ X, f associa um único y = f(x) ∈ Y .
X =conjunto de partida (domínio), Y = conjunto de chegada Imagem de f é f(X) = {f(x) ∈ Y : x ∈ X} ⊂ Y
Imagemde A ⊂ X: f (A) = {f (x) ∈ Y : x ∈ A} ⊂ f (X)
Imagem inversade B ⊂ Y :
f−1(B) = {x ∈ X : f (x) ∈ B} ⊂ X
Denição
f é injectiva se f(x) 6= f(y) para x 6= y f é sobrejectiva se f(X) = Y
f é bijectiva se é injectiva e sobrejectiva
Teorema
Se |X| > |Y | então f não pode ser injectiva. Se |X| < |Y | então f não pode ser sobrejectiva.
Relações de equivalência
Relação de equivalência em X - uma partição de X em subconjuntos disjuntos - cada subconjunto ca com os objectos equivalentes. Exemplos: (1) Com X = {x, y, ξ, φ, g, h}, podemos tornar equivalentes as letras do mesmo alfabeto - obtém-se a relação {{x, y}, {ξ, φ}, {g, h}}. (2) Seja Y um conjunto de bolas. Dizemos que duas bolas são
equivalentes se se usam no mesmo desporto.
Usualmente, a relação é descrita por um símbolo de operação binária, por ex. ∼. Escrevemos x ∼ y, ξ ∼ φ e g ∼ h, ou b1≡ b2.
Proposição: A relação ∼ é uma relação de equivalência em X, se e só se, para todos x, y, z ∈ X:
Reexiva: x ∼ x
Simétrica: se x ∼ y, então y ∼ x
Algoritmo da Divisão com Resto
Dados 2 naturais a, b ∈ N (a > b > 1), podemos fazer uma divisão com resto:
a = qb + r com r ∈ {0, 1, · · · , b − 1}. Nesta igualdade: a=dividendo, b=divisor, q=quociente∈ N e r=resto Além disso, q e r são únicos !
Exemplo: Dividir 711 por 132: 711 = 5 · 132 + 51.
Divisibilidade: Para a, b ∈ Z, dizemos que b divide a, ou b é divisor de a, e escreve-se b | a (caso contrário b - a) se:
aé múltiplo de b, ou
a b ∈ Z
o resto da divisão de a por b é zero (no caso a, b > 0) Div(a) := {divisores positivos de a} = {n ∈ N : n | a} p ∈ N é número primo se Div(p) = {1, p}.
MDC e o Algoritmo de Euclides
Propriedades: • 0 - a , 1 | a para todo a ∈ N •Se a|b e b|c então a|c.•Se b|a e a|b então |a| = |b|. •Se a, b ∈ N e a|b, então a ≤ b.
Máximo divisor comum entre a, b ∈ N é o maior elemento (a, b) :=mdc(a, b), do conjunto:
Div(a) ∩ Div(b).
Diz-se que a, b ∈ N são primos entre si se (a, b) = 1.
Para determinar (a, b) fazemos uma sucessão de divisões inteiras, começando com a = d0, b = d1 (supondo a > b):
d0 = q1d1+ d2 d1 = q2d2+ d3 ... ... dk−2 = qk−1dk−1+ dk dk−1 = qkdk+ 0 No m obtemos (a, b) = dk.
Equação de Bézout
Sejam a, b naturais (ou inteiros) e seja d = (a, b) o seu máximo divisor comum. A equação de Bézout é:
ax + by = d,
sendo x, y as incógnitas (em Z). Uma solução particular obtém-se do algoritmo de Euclides estendido.
Mais geralmente, temos a equação (Diofantina):
ax + by = c, (1)
sendo a, b, c dados (em N ou Z) e x, y as incógnitas (em Z). A equação (1) tem solução (x0, y0)se e só se (a, b) | c
(quando existem, há innitas soluções). A solução geral de (1) é: x = x0+ k b d, y = y0− k a d, k ∈ Z, sendo (x0, y0) solução de ax + by = c.
Equação de Bézout - Exemplo
Exemplo: determinar todas as soluções (x, y) ∈ Z2 de
711x + 132y = 6. (2) i di −qi xi yi 0 711 1 0 1 132 -5 0 1 2 51 -2 1 -5 3 30 -1 -2 11 4 21 -1 3 -16 5 9 -2 -5 27 6 3 13 -70 Relacionamos as linhas i + 1, i e i − 1 da seguinte forma: di+1 = di−1− qidi xi+1 = xi−1− qixi yi+1 = yi−1− qiyi Logo 6 = 711 × 26 + 132 × (−140), e, usando 132 3 = 44e 711 3 = 237, a solução geral de (2) é: x = x0+ 44k, y = y0− 237k, k ∈ Z.
Lema de Euclides
Recorde que p ∈ N é primo se e só se |Div(p)| = 2 e que: Se (a, b) = 1 dizemos que a e b são primos entre si. Sejam a, b, c inteiros não nulos.
Se a é primo com b e com c, então é primo com bc. Ou seja:
Lema: Se (a, b) = (a, c) = 1, então (a, bc) = 1.
Lema de Euclides
Seja a, b ∈ Z. Se p é primo:
Enunciado do T. Fund. Aritmética
Teorema Fundamental da AritméticaVersão 1: Seja n ∈ N. Existe factorização:
n = p1· · · pm, p1, · · · , pm são primos.
Versão 2: Seja n ∈ N. Existe factorização: n = pe1
1 · · · p ek
k , p1, · · · , pk são primos distintos, ej ∈ N.
Estas factorizações são únicas a menos de reordenação dos factores.
Corolário: Seja n = pe1
1 · · · p ek
k ∈ N. O conjunto dos divisores
positivos de n é:
Div(n) = {pc1
1 · · · p ck
k : ci ∈ {0, · · · , ei}}
Corolário: Seja Pn o conjunto de primos que aparece na
factorização de n, e seja p primo.
Problemas Famosos com primos
Números primos formam um conjunto innito: P = {2, 3, 5, 7, 11, 13, 17, · · · ]
Crivo de Erastotenes- método de eliminação de múltiplos. Para vericar se n é primo basta dividir por p <√n (Exercício)
Conjectura de Goldbach
Qualquer número par maior que 2 é a soma de 2 primos.
Exemplo: 24 = 19 + 5 = 11 + 13; 98765432 =?
Primos Gémeos: Se p e p + 2 são primos (p, p + 2) é um par de primos gémeos.
Princípio de Indução
Princípio de InduçãoSeja P (n) uma proposição/armação que depende de n ∈ N. Assuma que:
(1) P (1) é verdadeira
(2) P (n) implica P (n + 1) para todo n ≥ 1.
Então P (n) é uma armação verdadeira para todo n ∈ N.
Princípio de Indução Forte
Seja P (n) uma proposição/armação que depende de n ∈ Z, e seja n0 ∈ Z. Assuma que:
(1) P (n0) é verdadeira
(2) A validade de P (n0), P (n0+ 1), · · · , P (n) implica a de
P (n + 1) ∀n ≥ n0.
Exemplo
Princípio de Indução
Seja P (n) uma proposição/armação que depende de n ∈ N. Assuma que:
(1) P (1) é verdadeira
(2) P (n) implica P (n + 1) para todo n ≥ 1.
Então P (n) é uma armação verdadeira para todo n ∈ N. Exemplo: Mostrar que:n
X j=1 (2j − 1) = n2, ∀n ∈ N. P (1): P1j=1(2j − 1) = 1 = 12 é verdadeira Assumir P (n), e vericar P (n + 1): Pn+1 j=1(2j − 1) = (2(n + 1) − 1) + Pn j=1(2j − 1) = 2n + 1 + n 2= (n + 1)2
é verdadeira (usou-se a validade de P (n) na passagem do meio). Logo, o PI aplica-se.
Números racionais
Números racionais são da forma: a
b, a ∈ Z, b ∈ N. Se (a, b) = 1 diz-se fracção irredutível. Ex: 90
56 = 45 28 =
5·32
22·7.
Os números racionais formam um corpo, denotado Q: temos +, ×, elementos neutros 0 e 1, distributividade, e podemos dividir dois racionais, desde que o denominador não se anule.
Dado qualquer x ∈ Q, existem n, a, b ∈ Z, com (a, b) = 1, tais que:
x = n + a
b,
além disso esta representação é única, se impomos b > a ≥ 0. (Seja x > 0) n=parte inteira de x;
a
b chama-se a parte própria(ou fraccionária) de x.
Escrevemos n = bxc e a b = /x\ ∈ [0, 1[. Exemplos: 45 28 = 1 + 17 28, − 5 2 = −3 + 1 2.
Representação na base m
Seja m um natural ≥ 2.
Teorema
Qualquer natural n ∈ N se pode escreverna base m: n = akmk+ ak−1mk−1+ · · · + a1m + a0
onde ak∈ {0, 1, · · · , m − 1}. Abreviadamente: n = [ak· · · a1a0]m.
25 = [25]10 = 16 + 8 + 1 = 1 · 24+ 1 · 23+ 1 = [11001]2
25 = 2 · 32+ 2 · 3 + 1 = [221]3
25 = 3 · 7 + 4 = [34]7
Os números racionaistambém se representam em bases: 12, 34 = 12 + 3 10+ 4 100 = 10 + 2 · 10 0+ 3 · 10−1+ 4 · 10−2, na base 10 1, 76 = 44 25 = 1 + 3 5+ 4 25 = 1 · 5 0+ 3 · 5−1+ 4 · 5−2= [1, 34] 5
Congruências
Seja m natural ≥ 2, a, b ∈ Z. Dizemos que a é congruente com b módulo m
a ≡ b mod m
se m | (b − a) (ie, b − a é múltiplo de m).
Exemplos
módulo 2: a par ⇔ a ≡ 0 mod 2; aimpar ⇔ a ≡ 1 mod 2 módulo 4: anos bissextos ≡ 0 mod 4; mundial de futebol ≡ 2 mod 4 módulo 7: Segunda-feira é dia 2 ⇔ próximas segundas-feiras são ≡ 2mod 7
módulo 24: 55 ≡ 7 mod 24: 55 horas = 2 dias e 7 horas a ≡ rmod m, sempre que a = mq + r é uma divisão inteira de a por m.
Números modulares: ≡ mod m é relação de equivalência em Z
Regras da Aritmética Modular
Módulo xo m: a ≡ bmod m, c ≡ d mod m ⇒ a + c ≡ b + dmod m ac ≡ bdmod m ak≡ bk mod m, ∀k ∈ N Módulos múltiplos: n | m a ≡ bmod m ⇒ a ≡ bmod n (a, b, m) = d a ≡ bmod m ⇒ a d≡ b dmod m d 5 + 23 ≡ 0mod 7 (−2) · 19 ≡ −8 ≡ 2mod 10 423≡ (−1)23≡ −1 ≡ 4mod 5Não se verica a lei do corte: ab ≡ ac mod m ; b ≡ c mod m
a ∈ Z é invertível módulo m (ie ∃b ∈ Z com ab ≡ 1 mod m) se e só se (a, m) = 1.
Invertibilidade em Zm
Dado um módulo m, recorde-se:
Zm := [0m, 1m, · · · , m − 1m} ←→ {0, 1, · · · , m−1} = [m−1]0
Temos 5x ≡ 2 mod 7 implica 3 · 5x ≡ 3 · 2 mod 7 ou seja
x ≡ 6 mod 7
Mas 5x ≡ 2 mod 10 é impossível de resolver ! INVERTIBILIDADE mod m:
DADO a ∈ Z, EXISTE b ∈ Z com ab ≡ 1 mod m? a ∈ Z é invertível módulo m se e só se (a, m) = 1. Porque temos: ab + km = 1 (eq. Bézout)
No caso (a, m) = 1, já temos ab ≡ ac mod m ⇒ b ≡ c mod m. Para cada módulo m, quantos números são invertíveis mod m? φ(m) = |{x ∈ [m − 1]0 : (x, m) = 1}| = |{x ∈ [m] : (x, m) = 1}|
Anéis
Um anel é um conjunto A com elementos especiais 0, 1 e operações +, × que satisfazem (para todo a, b, c, · · · ):
(a + b) + c = a + (b + c) (+ é associativa)
a + b = b + a (+ é comutativa)
a + 0 = a (0 é neutro para +)
Dado a existe −a tal que a + (−a) = 0
(a × b) × c = a × (b × c) (× é associativa)
[se a × b = b × a, caso em que × écomutativa, A diz-secomutativo] a × 1 = 1 × a = a (1 é neutro para ×) a × (b + c) = (a × b) + (a × c)e (b + c) × a = (b × a) + (c × a) (distributividade)
Exemplos
Z, Q, R e C são anéis, com as operações usuais. Polinómios: R[x] é um anel
Matrizes (quadradas): Matn×n é um anel (não comutativo).
Corpos
Um corpo F é um anel comutativo: os elementos especiais 0, 1 e as operações +, × satisfazem (para todo a, b, c, · · · ) todas as propriedades de anel comutativo, e mais uma propriedade:
Para todo a 6= 0, existe 1/a ∈ F (também escrito a−1) tal que
a ×1 a =
1
a× a = 1 Exemplos
Q, R e C são corpos, com as operações usuais. Z não é corpo
R[x] não é corpo
M atn×n não é corpo (se n > 1)
Zm é corpo se e só se m é primo!
A equação Linear
A Equação Linear modular, de módulo m ≥ 2, é
ax ≡ b mod m
com a, b ∈ Z. Seja d = (a, m). (1) Não há soluções se d - b !
(2) Se d = 1 há solução única: x0 ≡ a−1b mod m.
(3) Se d 6= 1 (e d | b), resolve-se a equação reduzida (dividir por d): a0x ≡ b0 mod m0 (a0 = a d, b 0= b d, m 0= m d). A solução geral é: x = x0+ km0 mod m, com k ∈ [d]0:= {0, · · · , d − 1}.
Resolver: 15x ≡ 21 mod 72. Como d = (a, m) = (15, 72) = 3, a equação reduzida é 5x ≡ 7 mod 24, com solução:
x0 = 5−17 ≡ 11 mod 24. Logo, a solução geral é:
x ≡ 11 + 24k mod 72, k = 0, 1, 2, ie
Teorema Chinês dos Restos (I)
O Teorema Chinês dos Restos permite resolver Sistemas Lineares
Modulares da forma: x ≡ b1 mod m1 x ≡ b2 mod m2 · · · · x ≡ br mod mr
quando os módulos m1, · · · , mr são primos dois a dois.
Exemplo: Resolver sucessivamente, em Z, cada equação do sistema:
x ≡ 1 mod 3 x ≡ 2 mod 4 x ≡ 3 mod 5
x ≡ 1 mod 3tem solução x = 1 + 3y, y ∈ Z. Substituindo na 2ª:
1+3y ≡ 2 mod 4 ⇔ 3y ≡ 1 mod 4 ⇔ y ≡ 3−1 ≡ 3 mod 4.
Logo y = 3 + 4z, e x = 1 + 3(3 + 4z) = 10 + 12z; substituindo na 3ª:
10+12z ≡ 3 mod 5 ⇔ 12z ≡ 3 mod 5 ⇔ z ≡ 12−1·3 ≡ 4 mod 5,
Teorema Chinês dos Restos (II)
Teorema (TCR):Se (mi, mj) = 1, ∀i 6= j, então o sistema acima
tem uma única solução, módulo M = m1m2· · · mr:
x ≡ b1 M m1 y1+ · · · + br M mr yr mod M, sendo yk:= (mMk)−1 mod mk, k = 1, · · · , r.
Exemplo: Para x ≡ 1 mod 3, x ≡ 2 mod 4, x ≡ 3 mod 5, temos M = 60. Fazemos então:
y1= 2 ≡ (603) −1mod 3, y 2= 3 ≡ (604) −1mod 4, y 3= 3 ≡ (605) −1mod 5 e vem: x = 2 · 20 + 2 · 15 · 3 + 3 · 12 · 3 = 238 ≡ 58 mod 60. mi 3 4 5 bi 1 2 3 M mi 20 15 12 yi ( mod mi) 2−1 ≡3 2 3−1 ≡43 2−1≡5 3 x ( mod M = 60) 40 90 ≡ 30 108 ≡ 48
Função totiente - ϕ de Euler
A função totiente é denida por
ϕ(n) = |{x ∈ [n]0 : (x, n) = 1}| ,
ou seja, ϕ(n) é a cardinalidade do conjunto dos números entre 0 e n − 1que são primos com n.
Se p é primo, então ϕ(p) = p − 1. Mais geralmente: ϕ(pr) = pr− pr−1, r ≥ 1.
ϕé multiplicativa: quando (n, m) = 1 temos
ϕ(nm) = ϕ(n)ϕ(m). Corolário: Sendo n = pk1 1 · · · pkrr, temos: ϕ(n) = n 1 − 1 p1 · · · 1 − 1 pr .
Pequeno Teorema de Fermat
Z×m é o conjunto dos elementos invertíveis em Zm:
a ∈ Z×m sse (a, m) = 1
Facto
Z×m é um grupo: se a e b ∈ Z×m, então ab ∈ Z×m.
Proposição: Multiplicação por a ∈ Z, invertível módulo m, induz uma bijecção:
ma : Z×m → Z×m
b 7→ a b
Teorema: (Pequeno Teorema de Fermat) Se p é primo, e a não é múltiplo de p, então:
ap−1≡ 1 mod p.
Teorema de Euler
Euler generalizou o pequeno teorema de Fermat para qualquer módulo.
Teorema: Se (a, n) = 1, então:
aϕ(n)≡ 1 mod n.
Este teorema permite simplicar muitos cálculos de potências: Exemplo: Se n = 52· 23 = 200, então
ϕ(n) = ϕ(52)ϕ(23) = (52− 5)(23− 22) = 20 · 4 = 80, e temos:
a80≡ 1, mod 200, ∀a /∈ 2Z ∪ 5Z. a = 1, 3, 7, 9, 11, 13, 17, 19, 21, · · ·.
Teorema de Daniel Augusto da Silva
Daniel Augusto da Silva (1814 - 1876): O mais notável matemático português do século XIX. Pioneiro em:
Teoria dos Conjuntos:
Descobriu o famoso Princípio de Inclusão/Exclusão
Teoria dos Números (congruências binómias):
Generalizou o Teorema de Euler Teorema: Se n1, · · · , nr são primos entre si, e n = n1· · · nr,
então: r
X
i=1
nϕ(n)/ϕ(ni)
Criptograa clássica
Mensagem a enviar um número/lista de números: M. Mensagem codicada: outro número/lista de números : C.
Cifra de César: usam-se números de 0 a 25 (mod 26) para as
letras C := M + k mod 26
Exemplo: ROMA 7−→ M = (17, 14, 12, 0). Seja k = 20 M + k = (37, 34, 32, 20)Logo C := (11, 8, 6, 20) mod 26
Descodicar é muito fácil: C − k = (−9, −12, −14, 0) mod 26 dá M.
Emissor e Receptor precisam de combinar a chave de encriptação/decriptação: k.
O algoritmo RSA
Publicado em 1977 por Rivest, Shamir, Aldeman (MIT). Mensagem a enviar: M, Mensagem codicada: C.
Ambas são números naturais enormes (centenas de algairsmos).
Módulo base: N = pq (onde p e q são primos)
Módulo expoente: ϕ(N ) = (p − 1)(q − 1).
Passo 1: O receptor escolhe um número invertível módulo ϕ(N), chama-lhe e.
Passo 2: Calcula d = e−1 mod ϕ(N )usando por ex. o algoritmo
de Euclides estendido.
Passo 3: Publica (N, e) (mas d, ϕ(N), p e q são mantidos em segredo).
Passo 4: O emissor calcula C := Me mod N,
e envia C (a mensagem codicada)
Passo 5: O receptor calcula Cd= (Me)d
Teorema e exemplo de criptograa RSA
Teorema (RSA)Sejam p, q primos, N = pq, e e, d inversos um do outro módulo ϕ(N ). Então
xed ≡ x mod N ∀x < min{p, q}
Demonstração: Temos ed = 1 + kϕ(N), logo
xed = x1+kϕ(N )≡ x · (xϕ(N ))k≡ x · 1k≡ x mod N,
pelo Teor. de Euler, dado que (x, p) = (x, q) = 1 implica (x, N ) = 1.
Exemplo: Sejam p = 61, q = 53. Então N = pq = 3233 e ϕ(N ) = 60 · 52 = 3120. Vamos escolher e = 661, e determinamos d = e−1≡ 1501 mod 3120. Vamos dar ao João a chave de encriptação (N, e) = (3233, 661). O João quer enviar a mensagem M = x = 2762, que codicada dá C = y = 2762661≡ 78 mod 3233. Então calculamos