Buscar

Teoria dos Números para Computação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 5 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
Prof. Luis Gonzaga de Paulo
Matemática Computacional
Aula 6
Conversa Inicial
A solução de problemas computacionais 
requer o conhecimento de diversos tipos de 
operações, fórmulas, teoremas e métodos de 
cálculos desenvolvidos ao longo da história
Temas da teoria dos números são cruciais 
para o desenvolvimento de soluções 
computacionais
Criptografia, criptologia, robótica, 
automação, inteligência artificial
Aritmética modular
Algoritmo de Euclides
Logaritmos discretos
Teoremas de Euler e de Fermat
Testes de Fermat e de Miller-Rabin
Aritmética modular
Dois inteiros do conjunto �n (x e y) são iguais 
se x e y diferem por um múltiplo de n
x = y (mod n)
Exemplos:
38 = 3 (mod 5), pois 38 = 7 x 5 + 3
-3 = 11 (mod 14), pois -3 = (-1) x 14 + 11
2
x e y são congruentes módulo n
Inteiros regulares são vistos como se 
estivessem em uma linha numérica
Inteiros módulo n são vistos como se 
estivessem em um círculo
Algoritmo de Euclides
Forma mais simples e eficiente de encontrar 
o MDC (máximo divisor comum) entre dois 
inteiros diferentes de zero
É um dos algoritmos mais antigos: surgiu por 
volta de 300 a.C. (Euclides – Elementos, 
Livros VII e X)
Elemento-chave do método de criptografia de 
chave pública usado no comércio eletrônico, 
o algoritmo RSA
O MDC pode ser calculado de forma recursiva
O resto da divisão na primeira entrada é 
usado no passo seguinte, até que o resto 
seja zero
mdc (x, y) = mdc (y, r)
Em que r é o resto da divisão de x por y
x = r (mod y) 
Se mdc (x, y) = 1, x e y são coprimos ou 
relativamente primos
Se d divide x e d divide y, então d divide 
também a soma de x e y
De modo semelhante, divide também a 
diferença entre eles: (x – y)
Calcular mdc (x, x – y) e repetir até zerar o 
resto para o resultado
Calcular o mdc (27, 33)
Primeiro dividimos o maior número pelo 
menor: 33 = 1 x 27 + 6
Então, temos que mdc (27, 33) = mdc (27, 6)
Repetimos o processo: 27 = 4 x 6 + 3
Então, temos que mdc (27, 6) = mdc (6, 3)
E, finalmente, 6 = 2 x 3 + 0
Como 6 é um múltiplo de 3, então temos que 
mdc (6, 3) = 3 e, por conseguinte 
mdc (27, 6) = 3, mdc (27, 33) = 3
3
Logaritmos discretos
Calcular 35 módulo 7
35 = 243 ���� 243 mod 7 = 5
34 = (32)2 ���� 32 = 9, e 9 mod 7 = 2
���� 34 mod 7 = 4 = 22
Finalmente
35 mod 7 = (34 x 3) mod 7 = (4 x 3) mod 
7 = 5
O problema do logaritmo discreto
Seja p um número primo, e g, h dois 
elementos de ��∗
Se gx = h (mod p), qual é o valor de x?
Não conhecemos nenhum algoritmo rápido 
para encontrar os logaritmos discretos
Teoremas de Fermat e de Euler
Pequeno teorema de Fermat
Dado um número primo p, então ap = a
(mod p) para qualquer a ∈∈∈∈ ��	
(x + y)p = xp + yp (mod p)
ap ≡≡≡≡ a (mod p)
ap-1 ≡≡≡≡ 1 (mod p)
Modo genérico do pequeno teorema de 
Fermat
Se a ∈∈∈∈ ��∗ , então aϕ(n) = 1 (mod n)
Para todo a ∈∈∈∈ ��∗ , o valor de a-1 pode ser 
calculado como aϕ(n)-1
4
Testes de Fermat e Miller-Rabin
O uso de grandes números primos é 
essencial para algoritmos de criptografia
O problema: identificar um grande número 
primo
Teste de teorema de Fermat
Se o número n é primo, então para 
qualquer a temos que an-1 = 1 (mod n)
E os números Carmichael ou pseudoprimos?
Podemos obter um fator de n calculando 
o mdc (a, n)
Teste de Miller-Rabin
n é primo se e somente se as soluções 
de x2 = 1 (mod n) são somente x = ± 1
Se an-1 = 1, então a(n - 1)/2 = ± 1, pois 
a(n - 1)/2���� raiz quadrada de 1
(...)
(...)
Dado n, encontramos s de modo que n - 1 = 2sq
para algum q ímpar
Escolhemos um valor aleatório para a de tal 
modo que a ∈∈∈∈ {1, ..., n − 1}
Se aq = 1, então n passa no teste, e finalizamos 
o teste
Para toda iteração i = 0, ..., s - 1 verificamos se 
�	
� = 1. Caso seja, n passa no teste, e 
finalizamos o teste
Caso contrário, n é um número composto, 
portanto não é primo
Referências
5
BONAFINI, F. C. Matemática e estatística. São 
Paulo: Pearson Education do Brasil, 2014. 
GERSTING, J. L. Fundamentos matemáticos 
para a ciência da computação: um tratamento 
moderno de matemática discreta. Rio de 
Janeiro: LTC, 2015.
HUNTER, D. J. Fundamentos da matemática 
discreta. Rio de Janeiro: LTC, 2011.
LEITE, A. E.; CASTANHEIRA, N. P. Teoria dos 
números e teoria dos conjuntos. Curitiba: 
InterSaberes, 2014.
LYNN, B. Number theory. Disponível em: 
<https://crypto.stanford.edu/pbc/notes/numbe
rtheory/>. Acesso em: 22 jun. 2019.
MACEDO, L. R. D.; CASTANHEIRA, N. P.; ROCHA, 
A. Tópicos de matemática aplicada. Curitiba: 
InterSaberes, 2013.
SHOUP, V. A primer on algebra and number 
theory for computer scientists. Disponível em: 
<https://cs.nyu.edu/courses/fall02/G22.3033-
010/notes.pdf>. Acesso em: 22 jun. 2019.
STEIN, C.; DRYSDALE, R. L.; BOGART, K. 
Matemática discreta para ciência da 
computação. São Paulo: Pearson Education 
do Brasil, 2013.
VIEIRA, N. J. Introdução aos fundamentos da 
computação: linguagens e máquinas. São 
Paulo: Pioneira Thomson Learning, 2005.
WALPOLE, R. E.; MYERS, R. H.; MYERS, S. L.; 
YE, K. Probabilidade e estatística para 
engenharia e ciências. 8. ed. São Paulo: 
Pearson Prentice Hall, 2009.

Outros materiais