20
Criptografia e Criptografia e Segurança de Redes Segurança de Redes Capítulo 8 Capítulo 8 Quarta Edição Quarta Edição por William Stallings por William Stallings Tradução: Cesar e Luis Tradução: Cesar e Luis Augusto Augusto

Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Embed Size (px)

Citation preview

Page 1: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Criptografia e Criptografia e Segurança de RedesSegurança de Redes

Capítulo 8Capítulo 8

Quarta EdiçãoQuarta Edição

por William Stallingspor William Stallings

Tradução: Cesar e Luis AugustoTradução: Cesar e Luis Augusto

Page 2: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Capítulo 8 – Capítulo 8 – Introdução à Teoria Introdução à Teoria dos Númerosdos Números

O diabo disse a Daniel Webster: “De-me uma tarefa que eu não possa realizar, e eu vou lhe dar qualquer coisa no mundo que você pedir." Daniel Webster: "É justo. Prove que para n maior que 2, a equação a^n + b^n = c^n não possui solução trivial no conjunto dos inteiros." Eles concordaram com um período de três dias para o trabalho, e o diabo desapareceu. Ao final de três dias, o diabo apresentou-se, fatigado, mordendo o lábio. Daniel Webster lhe disse: "Bem, como você se saiu na minha tarefa? Conseguiu provar o teorema? "Eh? Não... Não,eu não consegui provar." "Então eu posso ter o que eu quiser? Dinheiro? A Presidência? "O quê? Ah, é claro. Mas escute! Se pudéssemos simplesmente provar os dois lemas a seguir...“

The mathematical Magpie, Clifton Fadiman

Page 3: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Números PrimosNúmeros Primos

Números primos são divisíveis por 1 e ele mesmoNúmeros primos são divisíveis por 1 e ele mesmoEles não podem ser escritos como produto de outros Eles não podem ser escritos como produto de outros

númerosnúmerosObserve: 1 é primo, mas geralmente não é de interesseObserve: 1 é primo, mas geralmente não é de interesse

Ex.: 2,3,5,7 são primos, 4,6,8,9,10 não sãoEx.: 2,3,5,7 são primos, 4,6,8,9,10 não são Números primos são o centro da teoria dos númerosNúmeros primos são o centro da teoria dos números A lista das primos menores que 200 é:A lista das primos menores que 200 é:

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 67 71 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149 73 79 83 89 97 101 103 107 109 113 127 131 137 139 149

151 157 163 167 173 179 181 191 193 197 199151 157 163 167 173 179 181 191 193 197 199

Page 4: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Fatoração em PrimoFatoração em Primo

Fatorar um número Fatorar um número nn é escrevê-lo como é escrevê-lo como produto de outros números: produto de outros números: n=a x b x cn=a x b x c

Observe que fatorar é relativamente difícil Observe que fatorar é relativamente difícil comparado com multiplicar os fatores juntos comparado com multiplicar os fatores juntos para gerar o númeropara gerar o número

A fatoração de um primo A fatoração de um primo nn é quando ele é um é quando ele é um produto de primosproduto de primosEx.: Ex.: 91=7x13 ; 3600=291=7x13 ; 3600=244x3x322x5x522

Page 5: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Relatividade de Números Primos Relatividade de Números Primos & MDC& MDC

Dois números Dois números a, ba, b são relativamente primos se não são relativamente primos se não tem nenhum divisor comum a não ser o 1 tem nenhum divisor comum a não ser o 1 Ex.: 8 & 15 são relativamente primos desde que os fatores Ex.: 8 & 15 são relativamente primos desde que os fatores

de 8 sejam 1,2,4,8 e do 15 sejam 1,3,5,15 e 1 é o único fator de 8 sejam 1,2,4,8 e do 15 sejam 1,3,5,15 e 1 é o único fator comum comum

Inversa pode determinar o máximo divisor comum Inversa pode determinar o máximo divisor comum comparando suas fatorações de primos e usando a comparando suas fatorações de primos e usando a menor potênciamenor potênciaEx.: Ex.: 300=2300=211x3x311x5x522 18=2 18=211x3x322 por issopor isso MDC(18,300)=2MDC(18,300)=211x3x311x5x500=6=6

Page 6: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Teorema de FermatTeorema de Fermat

aap-1p-1 = 1 (mod p) = 1 (mod p)onde onde pp é primo e é primo e mdc(a,p)=1mdc(a,p)=1

Também conhecido como Pequeno Também conhecido como Pequeno Teorema de FermatTeorema de Fermat

também também aapp = a (mod p) = a (mod p)Aplicável em chaves públicas e testes de Aplicável em chaves públicas e testes de

primalidadeprimalidade

Page 7: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Função Totiente de Euler Função Totiente de Euler ø(n)ø(n)

Quando usamos aritmética módulo nQuando usamos aritmética módulo n Conjunto completo de resíduos é: Conjunto completo de resíduos é: 0..n-10..n-1 Conjunto reduzido de resíduos são aqueles Conjunto reduzido de resíduos são aqueles

números (resíduos) que são relativamente primos números (resíduos) que são relativamente primos de nde nEx.: para n=10, Ex.: para n=10, Conjunto completo de resíduos é: {0,1,2,3,4,5,6,7,8,9} Conjunto completo de resíduos é: {0,1,2,3,4,5,6,7,8,9} Conjunto reduzido é: {1,3,7,9} Conjunto reduzido é: {1,3,7,9}

O número de elementos no conjunto reduzido de O número de elementos no conjunto reduzido de resíduos é chamado resíduos é chamado Função Totiente de Euler ø(n)Função Totiente de Euler ø(n)

Page 8: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Função Totiente de Euler Função Totiente de Euler ø(n)ø(n)

Para computar ø(n) é preciso contar o número Para computar ø(n) é preciso contar o número de resíduos à ser excluídode resíduos à ser excluído

Geralmente faz-se a fatoração do primo, masGeralmente faz-se a fatoração do primo, masPara p (p primo) Para p (p primo) ø(p) = p-1ø(p) = p-1 para p.q (p,q primo) para p.q (p,q primo) ø(pq) =(p-1)x(q-1)ø(pq) =(p-1)x(q-1)

Ex.:Ex.:ø(37) = 36ø(37) = 36ø(21) = (3–1)x(7–1) = 2x6 = 12ø(21) = (3–1)x(7–1) = 2x6 = 12

Page 9: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Teorema de EulerTeorema de Euler

Uma generalização do Teorema de FermatUma generalização do Teorema de Fermat aaø(n)ø(n) = 1 (mod n) = 1 (mod n)

para cada para cada a,na,n onde onde mdc(a,n)=1mdc(a,n)=1 Ex.:Ex.:aa=3;=3;nn=10; ø(10)=4; =10; ø(10)=4; por isso 3por isso 34 4 = 81 = 1 mod 10= 81 = 1 mod 10

aa=2;=2;nn=11; ø(11)=10;=11; ø(11)=10;por isso 2por isso 210 10 = 1024 = 1 mod 11= 1024 = 1 mod 11

Page 10: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Teste de primalidadeTeste de primalidade

Freqüentemente precisa-se encontrar o maior número Freqüentemente precisa-se encontrar o maior número primoprimo

Tradicionalmente Tradicionalmente selecionaseleciona utilizando divisão básica utilizando divisão básicaEx.: divide por todos números (primos) menores do que a Ex.: divide por todos números (primos) menores do que a

raiz quadrada do número raiz quadrada do número Só funciona para números pequenosSó funciona para números pequenos

Uma alternativa é usar o teste de primalidade Uma alternativa é usar o teste de primalidade estatística baseado na propriedade dos primosestatística baseado na propriedade dos primosPara que todos os números primos satisfaçam a Para que todos os números primos satisfaçam a

propriedadepropriedadeMas alguns números compostos, chamados pseudo-primos, Mas alguns números compostos, chamados pseudo-primos,

também satisfazem a propriedadetambém satisfazem a propriedadePode usar um teste de primalidade determinística mais Pode usar um teste de primalidade determinística mais

devagardevagar

Page 11: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Algoritmo de Miller RabinAlgoritmo de Miller Rabin

Um teste baseado no teorema de FermatUm teste baseado no teorema de Fermat O algoritmo é:O algoritmo é:TEST (TEST (nn) é:) é:1. Encontre inteiros 1. Encontre inteiros kk, , qq, com , com k k > 0, > 0, q q impar, de modo que impar, de modo que (n (n – 1 = 2– 1 = 2kkq);q);2. Selecione um inteiro aleatório 2. Selecione um inteiro aleatório aa, 1 < , 1 < a a < < n n – 1;– 1;3.Se 3.Se aaqq mod mod n n = 1= 1 então então return (“talvez primo”);return (“talvez primo”);4. 4. Para Para j j = 0 = 0 até até k k – 1 – 1 façafaça

5. 5. sese ( (aa22jjqq mod mod n n = = n n - 1- 1))

então então return(" talvez primo ");return(" talvez primo ");6. return (“composto");6. return (“composto");

Page 12: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Considerações ProbabilísticasConsiderações Probabilísticas

Se Miller-Rabin retornar “composto” o número é Se Miller-Rabin retornar “composto” o número é definitivamente não-primodefinitivamente não-primo

De outro modo, é primo ou pseudo-primoDe outro modo, é primo ou pseudo-primoAs chances de detectar um pseudo-primo é de As chances de detectar um pseudo-primo é de

menos de menos de ¼¼

Por isso se repetir o teste com diferentes Por isso se repetir o teste com diferentes aleatoriedades a chance de n primos depois de aleatoriedades a chance de n primos depois de t testes são:t testes são:Pr(n primos depois de t testes) = 1-4Pr(n primos depois de t testes) = 1-4 -t-t

Ex.: para t=10 esta probabilidade é > 0.99999Ex.: para t=10 esta probabilidade é > 0.99999

Page 13: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Distribuição dos PrimosDistribuição dos Primos

Teoria dos números primos afirma que primos Teoria dos números primos afirma que primos ocorrem aproximadamente a toda (ocorrem aproximadamente a toda (ln nln n))

Mas pode ignorar os eventos imediatamenteMas pode ignorar os eventos imediatamenteEntão, na prática precisa testar somente Então, na prática precisa testar somente 0.5 0.5 ln(n)ln(n) números de tamanho números de tamanho nn para encontrar para encontrar um primoum primoObserve, isto é somente a “média”Observe, isto é somente a “média”Algumas vezes os primos estão próximosAlgumas vezes os primos estão próximosOutras estão muito distantesOutras estão muito distantes

Page 14: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Teorema Resto ChinêsTeorema Resto Chinês

Usado par acelerar a computação de móduloUsado par acelerar a computação de móduloSe rodando o módulo de um produto de Se rodando o módulo de um produto de

númerosnúmerosEx.:. Ex.:. mod M = mmod M = m11mm22..m..mkk

Teorema Resto Chinês nos deixa trabalhar em Teorema Resto Chinês nos deixa trabalhar em cada módulo mcada módulo mi i separadamente separadamente

Desde o custo computacional é proporcional ao Desde o custo computacional é proporcional ao tamanho, ele é mais rápido do que trabalhar no tamanho, ele é mais rápido do que trabalhar no tamanho total Mtamanho total M

Page 15: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Teorema Resto ChinêsTeorema Resto Chinês

Pode-se implementar o CRT de várias formasPode-se implementar o CRT de várias formas Para calcular Para calcular A(mod M)A(mod M)

Primeiro calcule todos Primeiro calcule todos aaii = A mod m = A mod mii separadamente separadamenteDetermine constantes Determine constantes ccii abaixo, onde abaixo, onde MMii = M/m = M/mii

Então combine os resultados para obter a resposta usando:Então combine os resultados para obter a resposta usando:

Page 16: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Raiz PrimitivaRaiz Primitiva

Do Teorema de Euler temos Do Teorema de Euler temos aaø(n)ø(n)mod n=1 mod n=1 considere considere aamm=1 (mod n), MDC(a,n)=1=1 (mod n), MDC(a,n)=1

Deve existir para Deve existir para m = ø(n)m = ø(n) mas deve ser menor mas deve ser menorQuando potência atingir m, repete o cicloQuando potência atingir m, repete o ciclo

Se o menor for Se o menor for m = ø(n)m = ø(n) então então aa é chamado um é chamado um raiz primitivaraiz primitiva

Se Se pp é primo, potências sucessivas de é primo, potências sucessivas de aa “geram" o “geram" o grupo grupo mod pmod p

São úteis, mas difícil de se encontrarSão úteis, mas difícil de se encontrar

Page 17: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

Logaritimos DiscretosLogaritimos Discretos

O problema inverso à exponenciação é encontar o O problema inverso à exponenciação é encontar o logaritmo discretologaritmo discreto de um número módulo p de um número módulo p

Isto é encontrar Isto é encontrar xx desde que desde que y = gy = gxx (mod p) (mod p) É escrito como É escrito como x = logx = loggg y (mod p) y (mod p) Se g for um raiz primitiva então isto sempre existe, Se g for um raiz primitiva então isto sempre existe,

senão pode não existirsenão pode não existir Ex.:Ex.:x = logx = log33 4 mod 13 não tem resposta 4 mod 13 não tem resposta

x = logx = log22 3 mod 13 = 4 mas tentando sucessivas potências 3 mod 13 = 4 mas tentando sucessivas potências Enquanto exponenciação é relativamente fácil, Enquanto exponenciação é relativamente fácil,

encontrar logaritmo discreto é um grande problemaencontrar logaritmo discreto é um grande problema

Page 18: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

SumárioSumário

Considerações:Considerações:Números primosNúmeros primosTeorema de Fermat e Euler & ø(n) Teorema de Fermat e Euler & ø(n) Teste de primalidadeTeste de primalidadeTeorema do Resto ChinêsTeorema do Resto ChinêsLogaritmos DiscretosLogaritmos Discretos

Page 19: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

É um teste rápido, mas siga as etapas com atenção. É um teste rápido, mas siga as etapas com atenção. Não pule etapas. Não pule etapas. Responda as perguntas e leia atentamente até o final. Responda as perguntas e leia atentamente até o final. 1 - Olhe no relógio e marque as horas!!! 1 - Olhe no relógio e marque as horas!!! 2 - Pense em um número inteiro de 1 a 9 2 - Pense em um número inteiro de 1 a 9 3 - Multipique seu valor por 9 3 - Multipique seu valor por 9 4 - some os dois algarismos deste produto! (Ex.: 21, 2+1 3) 4 - some os dois algarismos deste produto! (Ex.: 21, 2+1 3) 5 - Nao pule as etapas!!!! 5 - Nao pule as etapas!!!! 6 - some 7 ao resultado 6 - some 7 ao resultado 7 - divida o resultado por 4 7 - divida o resultado por 4 8 - Faca a conversao do número por uma letra do alfabeto (Ex.: 1 a 2 8 - Faca a conversao do número por uma letra do alfabeto (Ex.: 1 a 2

b 3 c b 3 c 9 - Pense em um pais com a letra correspondente 9 - Pense em um pais com a letra correspondente 10 - Nao pule as etapas!!!! 10 - Nao pule as etapas!!!! 11 - Ache a 5ª Letra deste pais 11 - Ache a 5ª Letra deste pais 12 - Pense em um animal com esta letra. 12 - Pense em um animal com esta letra. 13 - Depois de Tudo isso, veja as horas.13 - Depois de Tudo isso, veja as horas.

Page 20: Criptografia e Segurança de Redes Capítulo 8 Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto

14 - Veja quanto tempo da sua vida você perdeu!!!! 14 - Veja quanto tempo da sua vida você perdeu!!!! E além do mais, na Dinamarca não se pode criar macaco!E além do mais, na Dinamarca não se pode criar macaco!