A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Criptografia e Segurança de Redes Capítulo 8

Apresentações semelhantes


Apresentação em tema: "Criptografia e Segurança de Redes Capítulo 8"— Transcrição da apresentação:

1 Criptografia e Segurança de Redes Capítulo 8
Quarta Edição por William Stallings Tradução: Cesar e Luis Augusto Palestra s de Lawrie Brown para "Criptografia e Segurança em Redes", 4 / e, de William Stallings, capítulo 8 - "Introdução a teoria dos números". 1

2 Capítulo 8 – Introdução à Teoria dos 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 Citação de. Uma série de conceitos da teoria número são essenciais na concepção de algoritmos criptográficos de chaves públicas, que este capítulo mostrar. 2

3 Números Primos Números primos são divisíveis por 1 e ele mesmo
Eles não podem ser escritos como produto de outros números Observe: 1 é primo, mas geralmente não é de interesse Ex.: 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úmeros A lista das primos menores que 200 é: Uma preocupação central na teoria dos números é o estudo de números primos. Na realidade , livros inteiros foram escritos sobre o assunto. Um inteiro p > 1 é um número primo se e somente se os seus unicos divisores são +/- 1 e +/- p. Números primos desempenham um papel importante na Teoria dos Número e nas técnicas discutidas neste capítulo. A tabela 8.1 (trecho acima) mostra os primos menores que Observe a forma como os primos são distribuídos. Em particular, observe, a quantidade de primos em cada intervalo de 100 números. 3

4 Fatoração em Primo Fatorar um número n é escrevê-lo como produto de outros números: n=a x b x c Observe que fatorar é relativamente difícil comparado com multiplicar os fatores juntos para gerar o número A fatoração de um primo n é quando ele é um produto de primos Ex.: 91=7x13 ; 3600=24x32x52 A idéia de “fatoração" de um número é importante - encontrar números que dividem ele mesmo. Tendo presente na medida em que pode ir, por fatorar todos os fatores, podemos finalmente escrever o número como um produto de primos - o sua principal Fatoração. Observe também que o fatoração de um número é relativamente difícil em comparação com multiplicações de fatores em conjunto para gerar o número. 4

5 Relatividade de Números Primos & MDC
Dois números a, b são relativamente primos se não tem nenhum divisor comum a não ser o 1 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 comum Inversa pode determinar o máximo divisor comum comparando suas fatorações de primos e usando a menor potência Ex.: 300=21x31x52 18=21x32 por isso MDC(18,300)=21x31x50=6 Já o conceito de “primos relativos" se dois número não compartilham de fatores comuns a não ser 1. Outro problema comum é determinar o "maior divisor comum“ mdc (a, b), que é o maior número que divide tanto a quanto b. 5

6 Teorema de Fermat ap-1 = 1 (mod p)
onde p é primo e mdc(a,p)=1 Também conhecido como Pequeno Teorema de Fermat também ap = a (mod p) Aplicável em chaves públicas e testes de primalidade Dois teoremas que desempenham papéis importantes na criptografia de chaves públicas são os Teorema de Fermat e Teorema de Euler. Teorema de Fermat (também conhecido como Pequeno Teorema de Fermat), como listado acima, indica uma propriedade importante dos números primos. Veja o capitulo 6

7 Função Totiente de Euler ø(n)
Quando usamos aritmética módulo n Conjunto completo de resíduos é: 0..n-1 Conjunto reduzido de resíduos são aqueles números (resíduos) que são relativamente primos de n Ex.: para n=10, Conjunto completo de resíduos é: {0,1,2,3,4,5,6,7,8,9} Conjunto reduzido é: {1,3,7,9} O número de elementos no conjunto reduzido de resíduos é chamado Função Totiente de Euler ø(n) Agora uma introdução da função totiente de Euler ø (n), definida como o número de inteiros positivos menores que n e relativamente primos de n. Observação: o termo "resíduo" se refere a números menores que módulo (n), e do "conjunto reduzido de resíduos" para os números (resíduos) que são relativamente primos para o módulo (n). Observe que por convenção ø (1) = 1. 7

8 Função Totiente de Euler ø(n)
Para computar ø(n) é preciso contar o número de resíduos à ser excluído Geralmente faz-se a fatoração do primo, mas Para p (p primo) ø(p) = p-1 para p.q (p,q primo) ø(pq) =(p-1)x(q-1) Ex.: ø(37) = 36 ø(21) = (3–1)x(7–1) = 2x6 = 12 Para computar ø (n) é necessario contar o número de resíduos que devem ser excluídos. Em geral, você precisará usar uma fórmula complexa sobre o fatorização do primo de n, mas tem um par de casos especiais, conforme mostrado. 8

9 Teorema de Euler Uma generalização do Teorema de Fermat
aø(n) = 1 (mod n) para cada a,n onde mdc(a,n)=1 Ex.: a=3;n=10; ø(10)=4; por isso 34 = 81 = 1 mod 10 a=2;n=11; ø(11)=10; por isso 210 = 1024 = 1 mod 11 O Teorema de Euler é uma generalização do teorema de Fermat para qualquer número n. Veja no capitulo 8.2. 9

10 Teste de primalidade Freqüentemente precisa-se encontrar o maior número primo Tradicionalmente seleciona utilizando divisão básica Ex.: divide por todos números (primos) menores do que a raiz quadrada do número Só funciona para números pequenos Uma alternativa é usar o teste de primalidade estatística baseado na propriedade dos primos Para que todos os números primos satisfaçam a propriedade Mas alguns números compostos, chamados pseudo-primos, também satisfazem a propriedade Pode usar um teste de primalidade determinística mais devagar Para muitas funções criptográficas, é necessário selecionar um ou mais números primos muito grandes de forma aleatória. Assim, somos confrontados com a tarefa de determinar se um número grande é primo. Tradicionalmente seleciona para primos usando um julgamento de divisão de todos os possíveis fatores primos de um número, mas isto só funciona para pequenas quantidades. Outra alternativa é poder utilizar repetidos testes estatísticos de primalidade com base em propriedades dos primos para ter certeza de uma utilização mais lenta de um teste de primalidade determinísticos, tais como o teste AKS. 10

11 Algoritmo de Miller Rabin
Um teste baseado no teorema de Fermat O algoritmo é: TEST (n) é: 1. Encontre inteiros k, q, com k > 0, q impar, de modo que (n – 1 = 2kq); 2. Selecione um inteiro aleatório a, 1 < a < n – 1; 3.Se aq mod n = 1 então return (“talvez primo”); 4. Para j = 0 até k – 1 faça 5. se (a2jq mod n = n - 1) então return(" talvez primo "); 6. return (“composto"); O algoritmo apresentado é devido à Miller e Rabin é normalmente usado para testar se um número grande é primo. Veja capitulo 8.3, que se baseia no Teorema de Fermat. 11

12 Considerações Probabilísticas
Se Miller-Rabin retornar “composto” o número é definitivamente não-primo De outro modo, é primo ou pseudo-primo As chances de detectar um pseudo-primo é de menos de ¼ Por isso se repetir o teste com diferentes aleatoriedades a chance de n primos depois de t testes são: Pr(n primos depois de t testes) = 1-4-t Ex.: para t=10 esta probabilidade é >  Se Miller-Rabin retorna "composto" o número não é primo, caso contrário, ou é um primo ou um pseudo-primo. A chance de detectar uma pseudo-primo é de menos de 1 / 4 Portanto, se aplica o teste várias vezes com valores diferentes de um, a probabilidade de que o número é um pseudo-primo pode ser feito tão pequeno quanto se desejar, por exemplo, depois de 10 testes se têm chance de erro de menos de 0, Se realmente precisa ter certeza, então deve empenhar esforços para executar um determinista, como o AKS. 12

13 Distribuição dos Primos
Teoria dos números primos afirma que primos ocorrem aproximadamente a toda (ln n) Mas pode ignorar os eventos imediatamente Então, na prática precisa testar somente 0.5 ln(n) números de tamanho n para encontrar um primo Observe, isto é somente a “média” Algumas vezes os primos estão próximos Outras estão muito distantes Um resultado da teoria do número, conhecida como o teorema do número primo, afirma que primos perto n são espaçados em média a cada um (ln n) inteiros. Uma vez que você possa ignorar esses mesmos números, em média, apenas precisa testar 0,5 ln (n) números de tamanho n para localizar um primo. Por exemplo: de números redondos 2 ^ 200 saísse 0.5ln (2 ^ 200) = 69 números, em média. Esta é apenas uma média, pode-se ver sucessivos ímpares primos, ou longos processos de compósitos. 13

14 Teorema Resto Chinês Usado par acelerar a computação de módulo
Se rodando o módulo de um produto de números Ex.:. mod M = m1m2..mk Teorema Resto Chinês nos deixa trabalhar em cada módulo mi separadamente Desde o custo computacional é proporcional ao tamanho, ele é mais rápido do que trabalhar no tamanho total M Um dos mais uteis resultados da teoria dos números é o Teorema chinês (CRT), assim chamado porque acredita-se ter sido descoberto pelo matemático chinês Sun-Tsé em torno de 100 dC. É muito útil para acelerar algumas operações no esquema RSA de chaves públicas, já que permite-lhe executar cálculos de fatores de modulo do seu módulo, e então combinar as respostas para obter o resultado real. Uma vez que o custo computacional é proporcional ao tamanho, este é mais rápido para trabalho em todo o modulo de tamanho modulo. 14

15 Teorema Resto Chinês Pode-se implementar o CRT de várias formas
Para calcular A(mod M) Primeiro calcule todos ai = A mod mi separadamente Determine constantes ci abaixo, onde Mi = M/mi Então combine os resultados para obter a resposta usando: Uma das características úteis do restante Teorema chinês é que ele fornece uma forma de manipular (potencialmente muito grande) números mod M, em termos de tuplas de números pequenos. Pode ser útil quando M é de 150 dígitos ou mais. No entanto note que é necessário conhecer de antemão a fatorização de M. Veja exemplos trabalhou em Stallings seção 8.4. 15

16 Raiz Primitiva Do Teorema de Euler temos aø(n)mod n=1
considere am=1 (mod n), MDC(a,n)=1 Deve existir para m = ø(n) mas deve ser menor Quando potência atingir m, repete o ciclo Se o menor for m = ø(n) então a é chamado um raiz primitiva Se p é primo, potências sucessivas de a “geram" o grupo mod p São úteis, mas difícil de se encontrar Considere as potencias de um modulo inteiro n. Pelo Teorema de Euler, para toda relativa privilegiada a, existe, pelo menos, uma potência igual a 1 (sendo ø (n)), mas pode haver um valor menor. Se o menor valor é m = O (n), então é chamado de uma raiz primitiva. Se n é primordial e, em seguida, os poderes de uma raiz primitiva "gerar" todos os resíduos mod n. Esses geradores são muito úteis, e são utilizados em uma série de algoritmos de chaves públicas, mas eles são relativamente difíceis de encontrar. 16

17 Logaritimos Discretos
O problema inverso à exponenciação é encontar o logaritmo discreto de um número módulo p Isto é encontrar x desde que y = gx (mod p) É escrito como x = logg y (mod p) Se g for um raiz primitiva então isto sempre existe, senão pode não existir Ex.: x = log3 4 mod 13 não tem resposta x = log2 3 mod 13 = 4 mas tentando sucessivas potências Enquanto exponenciação é relativamente fácil, encontrar logaritmo discreto é um grande problema Logaritmos discretos são fundamentais para um número de algoritmos de chaves públicas, incluindo a troca de chaves Diffie-Hellman e do algoritmo de assinatura digital (DSA). Registros discretos (ou índices) partilham as propriedades dos logaritmos normais, e são bastante úteis. O logaritmo de um número é definido como sendo o poder de algumas bases positivas (exceto 1) deve ser aumentado, a fim de que a igual número. Se trabalhar com o modulo aritmético, e a base é uma raiz primitiva, então existe o logaritmo discreto integral para qualquer resíduo. No entanto, enquanto a exponenciação é relativamente fácil, encontrar registros discretos não é, na verdade tão duro como a fatoração de um número. Este é um exemplo de um problema que é "fácil" uma vez (elevando um número a uma potência), mas “difícil" do outro (encontrar o que é a potência de um número, é elevar para dar a resposta desejada). Problemas com este tipo de assimetria são muito raros, mas são de utilidade crítica na moderna criptografia. 17

18 Sumário Considerações: Números primos Teorema de Fermat e Euler & ø(n)
Teste de primalidade Teorema do Resto Chinês Logaritmos Discretos Sumário do capítulo 8. 18

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

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


Carregar ppt "Criptografia e Segurança de Redes Capítulo 8"

Apresentações semelhantes


Anúncios Google