Aritmética Modular
Matemá-ca Discreta 2Rosen (7th ed.) – (Cap. 4)
Rosen -‐ “Elementary Number Theory” (Cap. 3) Burton -‐ “Elementary Number Theory” (Cap. 4) André Câmara
Referencias adicionais
Teoria das congruências
• Outra aproximação a questões de divisibilidade
• Também conhecida como aritméCca dos restos
• Desenvolvida pelo gênio alemão Carl Frederic Gauss
• "MathemaCcs is the Queen of the Sciences,
and the theory of numbers is the Queen of MathemaCcs”
Exemplo
• As vezes estamos mais interessados no resto de uma divisão
• Um exemplo simples do uso da aritmé-ca modular é o seu uso no relógio de 12 horas
• mod 12
• 9:00+4h => 13 ≡ 1 (mod 12)
• 12:00+21 => 33 ≡ 9 (mod 12)
Teoria das congruências
Propriedades básicas
• Seja n um inteiro posi-vo. Dois inteiros a e b são ditos congruentes módulo n simbolizado por:
a ≡ b (mod n) Se n divide a diferença a-‐b ⇒ n|(a-‐b)
i.e., a-‐b = k·∙n, para algum inteiro inteiro k
• a ≡ b (mod n) se somente se a mod m = b mod m.
• 7 ≡ 2 (mod 5)
Exemplo:
• Considere n=7 3 ≡ 24 (mod 7) 3-‐24 = -‐21 ∴ 7|(-‐21) 24 ≡ 3 (mod 7) 24-‐3 = 21 ∴ 7|21 -‐31 ≡ 11 (mod 7) -‐31-‐11 = -‐42 ∴ 7|42 19 ≡ -‐2 (mod 7) 19-‐(-‐2)=21 ∴ 7|21• Se n∤(a-‐b) dizemos que a e b são incongruentes.
• Ex.:
Observações
• Devemos notar que dois inteiros quaisquer são congruentes módulo 1
• 1 divide qualquer inteiro
• Por esse mo-vo, é prá-ca comum assumir n > 1
• Dois inteiros são congruentes módulo 2 se ambos forem ímpares ou pares
• 42 ≡ 4 (mod 2) ⇒ 2|38 • 35 ≡ 19 (mod 2) ⇒ 2|16
Teorema
• Para inteiros arbitrários a e b, a ≡ b (mod n), se somente se a e b deixam o mesmo resto não nega-vo quando dividos por n.
• Prova:
• Por definição a-‐b = nk à a = b + nk
• A divisão de b por n deixa um certo resto r pode ser escrita como
b = qn + r
• Subs-tuindo, temos:
a = (qn + r) + nk = (q+k)n + r
Portanto, a possui o mesmo resto que b
Cont.
• Por outro lado, se considerarmos a = q1n + r e
b = q2n + r
• Com mesmo resto 0 ≤ r < n
• Temos que:
• a – b = (q1n + r) – (q2n + r) = (q1 – q2)n = kn
• Isso prova que n|(a-‐b)
• Ou, na linguagem das congruências,
a ≡ b (mod n)
Relacionando com Teorema da
divisibilidade dos inteiros
a = qn + r, 0 ≤ r ≤ n
Pela definição da teoria das congruências, temos: a ≡ r (mod n)
Temos então n escolhas dis-ntas de r: 0,1,2,... n-‐1 Menores resíduos não-‐nega-vos módulo n
Note que a ≡ 0 (mod n) , SSE n|a à resto = 0
Propriedades
• Seja n > 1 fixo e a,b,c,d inteiros arbitrários, então:
a) a ≡ a (mod n) (reflexiva)
b) Se a ≡ b (mod n) então b ≡ a (mod n) (simétrica) c) Se a ≡ b (mod n) e b ≡ c (mod n),
então a ≡ c (mod n) (transiCva)
d) Se a ≡ b (mod n) e c ≡ d (mod n) então a+c ≡ b+d (mod n) e ac ≡ bd (mod n)
e) Se a ≡ b (mod n), então a + c ≡ b + c (mod n) e ac ≡ bc (mod n).
f) Se a ≡ b (mod n), então ak ≡ bk (mod n) para
qualquer inteiro posi-vo k.
Provando (a), (b), (c)
a) Para um inteiro a, temos a-‐a = 0·∙n entãoa ≡ a (mod n)
b) Se a ≡ b (mod n), então a-‐b = kn
b-‐a = (-‐k)n e –k também é um inteiro, temos b ≡ a (mod n)
c) Se a ≡ b (mod n) e b ≡ c (mod n), então existem h e k sa-sfazendo:
a-‐b = h·∙n e b-‐c = k·∙n
Fazendo a – c = (h·∙n + b) – (b -‐ k·∙n) = (h + k)n Dessa forma: a ≡ c (mod n)
Provando (d)
• Se a ≡ b (mod n) e c ≡ d (mod n) então
a+c ≡ b+d (mod n) e ac ≡ bd (mod n)
• Se a ≡ b (mod n), então (a-‐b)=k1n e
se c ≡ d (mod n), então (c-‐d)=k2n • Somando-‐se as equações temos:
(a-‐b)+(c-‐d)=(a+c)-‐(b+d)=(k1+k2)n a+c ≡ b+d (mod n)
Provando (d) (cont.)
• Se a ≡ b (mod n) e c ≡ d (mod n) entãoa+c ≡ b+d (mod n) e ac ≡ bd (mod n) • Se a ≡ b (mod n), então (a-‐b)=k1n e
se c ≡ d (mod n), então (c-‐d)=k2n
ac = (k1n+b)(k2n+d)=bd+(bk2+dk1+k1k2n)n ac ≡ bd (mod n) Inteiro (k3)
Provando (e)
• Se a ≡ b (mod n), então a + c ≡ b + c (mod n) e
ac ≡ bc (mod n). • Já vimos que
• Se a ≡ b (mod n) e c ≡ d (mod n) então
a+c ≡ b+d (mod n) e ac ≡ bd (mod n)
E
• c ≡ c (mod n) • Portanto,
• Se a ≡ b (mod n), e c ≡ c (mod n), então a + c ≡ b + c (mod n) e ac ≡ bc (mod n)
(d) (a)
Provando (f)
• Se a ≡ b (mod n), então ak ≡ bk (mod n) para qualquer inteiro posi-vo k.
• Prova por indução • k=1 à a ≡ b (mod n)
• Para um k fixo à ak ≡ bk (mod n) • Usando (d), temos que
a ≡ b (mod n) e ak ≡ bk (mod n) à aak ≡ bbk (mod n)
ak+1 ≡ bk+1 (mod n)
Que é igual ao passo da indução k+1
Classes de congruência
• Observe que a relação de congruência é umarelação de equivalência
• De modo que o conjunto dos inteiros é dividido em m diferentes conjuntos, chamados de classes de congruência módulo m
• Exemplo: modulo 4
Exemplo
• Um exemplo de como as congruências podem ser úteis em certos -pos de computação:
Encontrar o resto da divisão de (1!+2!+3!+...+ 100!) por 12
Exemplo
• Encontrar o resto da divisão de (1!+2!+3!+...+ 100!) por 12
• Observe que 4! = 24 ≡ 0 (mod 12) • 24 é divisível por 12, i.e. o resto é zero
Com isso, podemos dizer que (k>4): k! = 4!·∙5·∙6·∙7·∙... ·∙k ≡ 0·∙5·∙6·∙7·∙... ·∙k ≡ 0 (mod 12) k! ≡ 0 (mod 12) para k ≥ 4 1!+2!+3!+4!+...+100! ≡ 1!+2!+3!+0+0+...+0 ≡9 (mod 12) c c
Múl-plos de 24, resto 0
Exemplo
• Provar que 41|(220-‐1)• Iniciar procurando a relação de 41 com alguma potência de 2. Exemplo:
• 32≡25≡-‐9 (mod 41)
• Então (25)4≡(-‐9)4 (mod 41) (Teorema (f))
• 220 ≡ 8181 (mod 41)
• Mas, 81≡-‐1 (mod 41), então 812≡(-‐1)2 (mod 41)
• Usando (c) do Teorema, temos:
• 220 ≡ 8181 (mod 41) e 812≡1 (mod 41) à 220 ≡ 1 (mod 41)
• Usando (e):
• 220 -‐1≡ 1-‐1 (mod 41) à 220 -‐1≡ 0 (mod 41) à é múl&plo!
Atenção
• Vimos que se a ≡ b (mod n), então
ac ≡ bc (mod n) para um inteiro c qualquer • No entanto, o inverso não é verdadeiro:
• Ex.: 2·∙4 ≡ 2·∙1 (mod 6) mas 4 ≢ 1 (mod 6)
• Algumas vezes o cancelamento é possível, como veremos a seguir
Teorema
• Se ca ≡ bc (mod n) ⇒ a ≡ b (mod n/d), onde
d = GCD (c,n)
• Lei de cancelamento
• Prova:
• ca ≡ bc (mod n)
• (ca-‐cb)=kn
• GCD(c,n)=d à c=dr e n=ds, r e s inteiros e
rela-vamente primos
• dra-‐drb=kds à r(a-‐b)=ks então s|r(a-‐b)
Cont.
•
Lembrando:
• Lemma de Euclides: Se a | bc, com gcd(a,b)=1,
então a | c.
• r e s são rela-vamente primos, então
GCD(r,s)=1
• Se s|r(a-‐b) e GCD(r,s)=1 => s|(a-‐b) (lemma de Euclides) • Então ⇒ a ≡ b (mod s) ou seja:
⇒ a ≡ b (mod n/d)
Lei de cancelamento
• Corolário 1:• Se ca ≡ cb (mod n) e GCD (c,n) = 1, então a ≡ b (mod n)
• Corolário 2:
• Se ca ≡ cb (mod p) onde p é primo e p∤c, então a ≡ b (mod p)
• Prova: a condição p é primo e p∤c implicam que GCD(c,p)=1
Exemplo 1
• Considere a congruência33 ≡ 15 (mod 9) Ou, se preferir 3·∙11 ≡ 3·∙5 (mod 9)
• Visto que GCD(3,9) = 3, então podemos dizer 11 ≡ 5 (mod 9/3) ⇒ 11 ≡ 5 (mod 3)
Exemplo 2
• Considere a congruência-‐35 ≡ 45 (mod 8) O mesmo que: 5·∙(-‐7) ≡ 5 ·∙9 (mod 8)
• Note que os inteiros 5 e 8 são rela-vamente primos, i.e., GCD(5,8) = 1
• Portanto, pelo corolário 1: -‐7 ≡ 9 (mod 8)
Exercício
• Prove:a. Se a ≡ b (mod n) e m|n, então a ≡ b (mod m) b. Se a ≡ b (mod n) e c>0, então ca ≡ cb (mod
cn)
c. Se a ≡ b (mod n) e os inteiros a, b e n são todos divisíveis por d>0, então a/d ≡ b/d (mod n/d)
Testes especiais de divisibilidade
• Dado um inteiro b > 1, qualquer inteiro posi-vo Npode ser escrito unicamente em termos de potências de b, ou seja:
Onde, 0 ≤ ak ≤ b-‐1 0 1 1 2 2 1 1b ... ab ab a a b a N m m m m + + + + + = − −
Testes especiais de divisibilidade
Pelo algoritmo da divisão:
N = q1b + a0, 0 ≤ a0 ≤ b (1)
Se q1 ≥ b, então podemos dividí-‐lo mais de uma vez:
q1= q2b + a1, 0 ≤ a1 ≤ b (2) Subs-tuindo (2) em (1): N = (q2b + a1)b + a0 = q2b2 + a1b + a0 = q3b3 + q2b2 + a1b + a0 = ... m m1 2 1 Enquanto q2≥b podemos con-nuar
Notação lugar-‐valor de N
na base b
• Note que N
Pode ser representado simplesmente pelo vetor de coeficientes:
Obs: Não é um produto, mas uma sequência de coeficientes
Valores de base b pequenos trazem representações mais longas dos números, com a vantagem de trazer menos opções para os
0 1 1 2 2 1 1b ... ab ab a a b a N m m m m + + + + + = − − b m ma aaa a N=( −1... 21 0)
Exemplo
• Caso mais simples: base b = 2
• Sistema de numeração binário
• Apenas 0 e 1 podem aparecer como coeficientes
• Todo inteiro posi-vo pode assim ser expresso como uma soma de potências de 2
• Ex.: 105 = 1·∙26+1·∙25+0·∙24+1·∙23+0·∙22+0·∙21+1 = 26+25+23+1
• Na forma abreviada: 105 = (1101001)2
Teorema
• Seja uma função polinomial de x com coeficientes ck. Se a ≡ b (mod n) então
P(a) ≡ P(b) (mod n)
• Dizemos que a é uma solução da congruência
P(x) ≡ 0 (mod n) se P(a) ≡ 0 (mod n) • Corolário:
• Se a é uma solução de P(x) ≡ 0 (mod n) e
a ≡ b (mod n) então b também é solução
∑
= = m k k kx c x P 0 ) (Exemplo
• Para calcular 5110 (mod 131)• Expoente 110 pode ser escrito em binário como
• 110=64+32+8+4+2=(110110)2
• 5110=564+32+8+4+2=564 * 532 * 58 * 54 * 52
• Calculamos as congruencias correspondentes aos 1’s na representação binária
• 564 * 532 * 58 * 54 * 52≡105*74*114*101*25≡60 (mod 131)
Exemplo de utilização
• A aritmé-ca modular é comumente u-lizada no cálculo de
dígitos verificadores (ex.: CPF, contas bancárias, cheques, passaportes, etc)
• O que se faz habitualmente é calcular a soma do produto entre os dígitos do número a ser verificado por
determinados “pesos” módulo 10
• Ex.:
• a9 ≡ 7a1+3a2+9a3+7a4+3a5+9a6+7a7+3a8 (mod 10)
• Para o número 81504216 teremos:
• a9 ≡ 7·∙8+3·∙1+9·∙5+7·∙0+3·∙4+9·∙2+7·∙1+3·∙6 (mod 10)
159 ≡ 9 (mod 10)
Teste de primalidade
• U-lizar teste de primalidade de Fermat• Dados:
• n: o número a ser testado
• k: o número de vezes que deve ser testado (grau de
certeza)
• O algoritmo:
repita k vezes:
Escolha um número a aleatoriamente no intervalo [1, n−1]
Se an−1 mod n ≠ 1 então retorne composto
Senão retorne provavelmente primo
36
Teste de primalidade
Exemplo
• O algoritmo:
repita k vezes:
Escolha um número a aleatoriamente no intervalo [1, n−1]
Se an−1 mod n ≠ 1 então retorne composto
Senão retorne provavelmente primo
• Seja n = 105
• Iteração 1: a = 92: 92104 mod 105 = 1 • Iteração 2: a = 84: 84104 mod 105 = 21
Exemplo
• O algoritmo:repita k vezes:
Escolha um número a aleatoriamente no intervalo [1, n−1]
Se an−1 mod n ≠ 1 então retorne composto
Senão retorne provavelmente primo • Seja n = 101
• Iteração 1: a = 55: 55100 mod 101 = 1
• Iteração 2: a = 60: 60100 mod 101 = 1
• Iteração 3: a = 14: 14100 mod 101 = 1
• Iteração 4: a = 73: 73100 mod 101 = 1
• Neste ponto, 101 tem (½)4 = 1/16 de chances ainda de
ser composto
Fermat
• A cada iteração a probabilidade de que o número seja composto cai pela metade
• Probabilidade = (½)k
• Se k = 100, a probabilidade de ser um composto é de (½)100 = 1 em 1.2
× 1030
• Portanto, k = 100 é uma boa escolha • Entretanto, ainda não é uma certeza!
• Existem números conhecidamente compostos mas que são apontados como primos neste teste
• Fonte: hwp://en.wikipedia.org/wiki/Fermat_primality_test