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

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

Criptografia de Dados Recursos Computacionais

Apresentações semelhantes


Apresentação em tema: "Criptografia de Dados Recursos Computacionais"— Transcrição da apresentação:

1 Criptografia de Dados Recursos Computacionais
Álvaro Degas

2 Roteiro Introdução Problemas Conceitos Criptografia Conclusões
chave privadas Chave pública Conclusões

3 Introdução O que é Criptografia
Kriptos (Grego): Esconder Grapho (Grego): Escrita Kripto Grapho: Esconder Escrita A criptografia viabiliza a troca de informações sem que haja o comprometimento do sigilo

4 Introdução “Arte de tornar incompreensível, com observância de normas especiais designadas numa cifra de código, o texto de uma mensagem escrita com clareza” - Aurélio Talvez seja tão antiga quanto a própria escrita

5 Introdução “A mensagem é sua. Particular, privativa. Ninguém tem o direito de bisbilhotar” – Guia de Referência rápida do PGP PGP – Prety Good Privacy: Software de criptografia multi-plataforma – Networks Associates inc.

6 Introdução Criptografia usada por Júlio César (Imperador de Roma - 60 a.C.): A chave utilizada era muito simples: desloca-se o alfabeto 3 letras e troca-as entre si. A B C D E F G H I J K L M N O P Q R S T U V W X Y Z D E F G H I J K L M N O P Q R S T U V W X Y Z A B C Por exemplo, se ele quisesse enviar "Veni, vidi, vici", qual seria a mensagem criptografada?

7 Conceitos Definições Mensagem: A informação que se deseja enviar
Participantes: O Emissor e o Receptor da mensagem Chaves: Os métodos de se criptografar e decriptografar mensagens

8 Chaves de Criptografia
Registros Irrecuperáveis (não descriptografáveis) Chaves Privadas Chaves Públicas Criptografar: Aplicar sobre a mensagem M uma função F resultando num objeto C “incompreensível” C = F(M)

9 Registros Irrecuperáveis
Pode-se criptografar mas não se pode des-criptografar Etimologicamente não se trata de “criptografia” Conceito: Uma Mensagem M e uma função F(M) |  F-1(M)

10 Registros Irrecuperáveis
Exemplo: Converte M em um número grande (128 bits no mínimo) “Enxergar” mensagens como números não é difícil: Uma tira de bits, várias tiras (menores) de bits, concatenação de códigos ASCII, etc. Cada aplicação pode ter a sua.

11 Registros Irrecuperáveis
Armazena X(M) mod K – X e K secretos K muito grande (128 bits por exemplo) X(M) “gera” algo com o aproximadamente o dobro do tamanho de M Uma mensagem N só pode ser igual a M se X(N) mod K = X(M) mod K Pode acontecer de X(M) mod K = X(N) mod K com M  N?

12 Registros Irrecuperáveis
Claro. O importante é: Qual a chance? K com 128 Bits  1038 1/1038 = 0, Pequena o suficiente?

13 Chaves Privadas Mecanismo para “embaralhar” a mensagem
De conhecimento apenas dos proprietários Aplicar uma função F sobre a mensagem F aqui é inversível! Somente quem sabe que função foi aplicada consegue recompor a mensagem original

14 Chaves Privadas Seja M uma mensagem e D o conjunto de todas as mensagens possíveis, ou seja Dados os |M| bits que comporão mensagens, D é o conjunto de todas as combinações possíveis destes bits P(M) e S(M) são permutações de D (mais combinações de bits)

15 Exemplo Escolher K um número muito grande (por exemplo 128 bits)
Armazenar K em local secreto e seguro. K é a chave! Multiplicar M em blocos de tamanho |K| por K “Enxergar” mensagens como números não é difícil: Uma tira de bits, várias tiras (menores) de bits, concatenação de códigos ASCII, etc. Cada aplicação pode ter a sua.

16 Exemplo C = M*K C terá o dobro do tamanho de K
C pode ser enviada pela Internet sem problemas O receptor, que conhece K faz M = C/K

17 Exemplo M C M C = K*M M = C/K Emissor Receptor “Xereta”

18 Se o “xereta” ler? C terá 256 bits “por bloco”
Cada bloco em M de tamanho |K| multiplicado pelo próprio K K tendo 128 bits Encontrar M é possível? Sim. “Basta” Fatorar C. Um dos fatores será K, donde se pode encontrar M

19 Fatorando C C tem 256 bits  1.15x1077
Para se fatorar: testar até a raiz quadrada de C  3.40x1038 testes Não testa os pares  1.70x1038 testes Supercomputador: 1025 testes por segundo Tempo estimado: 5470,07 séculos

20 Fatorando C Com |K| = 136 (1 byte a mais)... 272 bits  7.59x1081
8.71x1040 testes Menos os pares: 4.35x1040 testes Mais de 100 vezes maior! A máquina teria que ser mais de 100 vezes mais rápida para igualar os 5470,07 séculos!

21 Chave Pública Algoritmos de Criptografia usando Chaves Públicas
Problema: Nem sempre é possível “enviar” a chave! Criptografar: Aplicar sobre a mensagem M uma função F resultando num objeto C “incompreensível” C = F(M)

22 Chave Pública Decriptografar: Aplicar sobre C a função F-1 resgatando novamente M F-1(C)=M Se F-1 for secreta e impossível de ser encontrada, a criptografia é perfeita F e F-1 são ditas Chaves de Criptografia (e Descriptografia obviamente!)

23 Chave Pública O problema da distribuição de Chaves:
F pode ser conhecida, mas F-1 não pode. Para enviar uma mensagem, criptografar com F. Só quem tem F-1 pode abrir! Obviamente F e F-1 tem que ser distintas!

24 Problemas resolvidos com chave pública:
Basicamente dois problemas: Exclusão do acesso de terceiros a mensagens de outrem Estabelecer autenticidade de mensagens (assinatura digital)

25 Chave Pública Cada participante tem uma chave pública e uma secreta
Exemplo: Ana e Beto. Ana tem as chaves PA e SA Beto tem as chaves PB e SB As chaves públicas e privadas são estabelecidas por cada participante

26 Chave Pública As chaves são Funções, conforme já visto, aplicadas sobre mensagens Relembrando: “Enxergar” mensagens como números não é difícil: Uma tira de bits, várias tiras (menores) de bits, concatenação de códigos ASCII, etc. Cada aplicação pode ter a sua.

27 Chave Pública Seja M uma mensagem e D o conjunto de todas as mensagens possíveis, ou seja Dados os |M| bits que comporão mensagens, D é o conjunto de todas as combinações possíveis destes bits P(M) e S(M) são permutações de D (mais combinações de bits)

28 Chave Pública As chaves são funções inversas: Suposições sine qua non:
M=PA(SA(M))=SB(PB(M))  M  D Suposições sine qua non: Somente Ana computa SA Somente Beto computa SB Todo mundo computa PA e PB

29 Exemplo Beto manda uma mensagem para Ana:
C=PA(M) M PA SA Beto Ana “Xereta” Beto usa PA para criptografar Ana usa SA para descriptografar

30 Se o “xereta” ver? C não tem sentido para ele! PA não o ajuda em nada!
SA não é conhecida dele! O “xereta” conseguiu uma tira enorme de Bits Inútil!

31 Outro Exemplo Assinaturas Digitais Ana quer assinar um documento M SA
 = SA(M) (M,) PA PA() = ? Ok

32 Outro Exemplo Ana gera a assinatura da mensagem M com =SA(M)
Ana envia M e  para Beto Beto computa PA() e verifica se é igual a M

33 Outro Exemplo Se for igual, aceita M como mensagem de Ana.
Caso contrário Ou a mensagem não é de Ana Ou foi corrompida (maliciosamente ou não) (M,) pode ser passado de Beto para qualquer pessoa, que verifica tudo novamente

34 Algoritmo RSA Criptossistema RSA (Rivest, Shamir, Adleman)
Como selecionar as chaves Dois números primos muito grandes (de 100 dígitos ou mais cada) p e q Calcula n = p*q

35 Algoritmo RSA Calcula (n) = (p-1) * (q-1)
Selecionar um pequeno número ímpar, (e) relativamente primo a (n) = (p-1) * (q-1) Calcula d = inverso multiplicativo e, mod (n) Publica o par P=(e,n) como chave pública Guarda S=(d,n) como chave secreta (basta d pois n é público)

36 Algoritmo RSA Como Criptografar e Decriptografar?
D = {0,1,2,...,n-1} (mensagens possíveis) P(M) = Me mod n S(C) = Cd mod n

37 Um exemplo Caso prático: p=11 q=13
n=143 (universo de mensagens possíveis) (n) = 10*12 = 120 e=7 (primo em relação a 120)

38 Um exemplo Como se calcula d? Isso significa que e*d mod (n) = 1
d é o inverso multiplicativo de e mod (n) (de 7 mod 120) Isso significa que e*d mod (n) = 1 Extended_euclid(e, (n)) d é o valor x que retorna de extended_euclid(7, 120)

39 Um exemplo Extended_euclid(a,b) If b=0 return(a,1,0) Else
(d’,x’,y’) := extended_euclid(b, a mod b) (d,x,y) := (d’, y’, x’ – (a div b)*y’) while d < 0 d = d + b - 1 return d, y, y)

40 Um exemplo d = 103 Supor uma mensagem M = 40
Publica e=7 e n=143. Guarda d=103 C = P(M) = Me mod n = 407 mod 143 = 105 S(C) = Cd mod n = mod 143 = 40 Que é a mensagem original perfeitamente recuperada.

41 Um exemplo Considerações de complexidade:
Fazer a exponenciação de números grandes: Seja o algoritmo computacionalmente simples Exp_Modular(a,b,n) /* calcula ab mod n*/ d  1 Seja <bk, ..., b0> b em binário Para i= k downto 1 d  d2 mod n Se bi = 1 d  (d*a) mod n Return d

42 Um exemplo 105103 mod 143 10310 = 11001112 (k=6) i 6 5 4 3 2 1 bi d(4)
bi d(4) 14 27 53 d(6) 105 40 131

43 Um exemplo Quebrar a criptografia
Para quebrar o sistema basta encontrar os valores p e q que geraram n. Escolhe-se dois primos grandes e com uma grande diferença numérica entre si Para encontrar os fatores primos de n Testar candidatos entre 1 e a raiz quadrada de n

44 Um exemplo Encontrar os fatores de 667 Raiz de 667 = 25,8...
Entre 2 e 25 há algum fator, se 667 não for primo. Com efeito, 23 (e por conseguinte 29) é fator

45 Um exemplo Encontrar os fatores de (45 dígitos) Raiz de = algo entre 1022 e 1023 Desprezando-se os números pares (que não podem ser primos grandes) restam algo entre 1021 e 1022 candidatos, no mínimo!

46 Um exemplo Suponha uma máquina que faça 1010 divisões por segundo (cada candidato é testado com uma divisão) 1 ano tem segundos *1010 testes por ano

47 Um exemplo Isso é menor que 1018
Com 1018 testes levar-se-ia 5000 anos! Caso a máquina fique 5000 vezes mais rápida, um aumento de 4 algarismos levaria os 5000 anos originais para de anos! Eis outro exemplo de problema NP!

48 Eficiência M {0,1,...,n-1} Mesmo n = 200 trata apenas mensagens pequenas (660 bits aproximadamente) O processo é lento, as mensagens são pequenas

49 Eficiência Como resolver?
Algoritmos de Criptografia (mais rápidos) com uma chave K aleatória (Huffman pode ser uma solução) Criptografa a mensagem longa com K Criptografa K com P Envia K(M) e P(K)

50 Conclusões Os algoritmos se baseiam em problemas não polinomiais
Métodos exponenciais são extremamente inviáveis de serem tratados com a máquina de Turing Praticamente TODA a informação sensível do planeta está guardada por métodos como estes

51 Conclusões As alternativas para resolver tais problemas esbarram na complexidade e nos métodos numéricos Computação Quântica: A possibilidade é de operar-se N QuBits ao mesmo tempo, em todos os seus possíveis valores “Derruba” a complexidade dos métodos Acaba com Criptografia.

52 Criptografia. FIM! Degas
“Dize-e com quem andas e dir-te-ei se vou contigo” Barão de Itararé Degas


Carregar ppt "Criptografia de Dados Recursos Computacionais"

Apresentações semelhantes


Anúncios Google