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

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

Criptografia de chave única Algoritmo DES Data Encryption Standard.

Apresentações semelhantes


Apresentação em tema: "Criptografia de chave única Algoritmo DES Data Encryption Standard."— Transcrição da apresentação:

1 Criptografia de chave única Algoritmo DES Data Encryption Standard

2 DES DES: (Data Encryption Standard) Desenvolvido pela IBM (Lúcifer) Processo de seleção iniciou em 1973 Adotado como padrão nos Estados Unidos em 1977 Revisado a cada 5 anos (última vez em 1999) Divide a mensagem em blocos de 64 bits (8 caracteres) Cifra cada um destes blocos com uma chave de 56 bits (8 caracteres ASCII de 7 bits)

3 DES Transposição inicial 16 passos de cifragem Transposição final Transposições independentes da chave Para os 16 passos de cifragem utilizam-se 16 sub-chaves, todas derivadas da chave original

4 DES Transposições simplesmente trocam bits de posição

5 Transposições

6 Passo de cifragem

7 Sub-chaves Seleção inicial (64 para 56 bits) via tabela fixa Deslocamento (1 ou 2 bits) em duas metades Seleção (escolhe 48 bits) via tabela fixa São geradas 16 sub-chaves distintas K1, K2, K3, …. K15, K16

8 Sub-chaves

9 Passo de cifragem

10 Metade direita Bloco de 32 bits Expansão (gera 48 bits) Operação de ou-exclusivo (Xor) com sub- chave

11 Transposição - Metade direita

12 Passo de cifragem

13 Substituição - Caixas S Bloco de 48 bits dividido em 8 grupos de 6 Cada grupo vai para uma caixa distinta Dois bits (externos) selecionam a linha Quatro bits (internos) selecionam a coluna Resultado: 4 bits 8 grupos de 4 bits = 32 bits

14 Caixas S Exemplo: Caixa S1 8 Caixas distintas (S1 a S8)

15 Passo de cifragem

16 Transposição

17 R i = L i-1 xor f(R i-1, K i )

18 Cifragem e Decifragem Cifragem: entrada: L i-1 e R i-1 do passo anterior calcular: R i = L i-1 xor f(R i-1, K i ) L i = R i-1 Ordem de geração das chaves: Chaves de cifragem: K 1, K 2, K 3, …. K 16

19 Cifragem e Decifragem Decifragem: entrada: L i e R i do texto cifrado calcular: R d = R i xor f(L i, K i ) L d = L i mas L i = R i-1, ou seja: R d = R i xor f(R i-1, K i ) = L i-1 L d = R i-1 Ordem de geração das chaves: Chaves de decifragem: K 16, K 15, K 14, …. K 1

20 Cifragem e Decifragem DES é sua própria função inversa Basta inverter a ordem das chaves Ordem de geração das chaves: Chaves de cifragem: K 1, K 2, K 3, …. K 16 Chaves de decifragem: K 16, K 15, K 14, …. K 1 Isto é obtido deslocando a chave principal K para esquerda (cifragem) ou direita (decifragem)

21 Criptografia de chave única Características desejadas: –Difusão dos bits da entrada e da chave –Confusão: inexistência de relação entre entrada e saída Alteração de um bit na entrada altera 50% dos bits de saída Alteração de um bit na chave altera 50% dos bits de saída

22 Alteração de um bit na entrada

23 Alteração de um bit na chave

24 Número de Rodadas

25 DES - Propriedades Complementação se C = E(M,K) então not(C)=E(not(M),not(K)) DES não é um grupo se C = E(M,K1) e C1 = E(C,K2) não existe K3 tal que C1=E(M,K3) Cifrar duas (ou três vezes) é eficiente - 3DES

26 DES - Chaves fracas Chave fraca todas as 16 sub-chaves são iguais Seqüência K1.. K16 é igual a K16.. K1 Somente 48 bits da chave são efetivos Chaves: FFFFFFFF FFFFFFFF FFFFFFFF

27 DES - Chaves semi-fracas Pares de chaves semi-fracas A seqüência K1.. K16 de uma chave é o inverso da seqüência gerada pela outra chave (K16.. K1) Problema: Cifragem de uma chave seguida da cifragem com a outra chave na realidade decifra !

28 DES - Ciclos Hamiltonianos

29 Relação entre as saídas das caixas S e as entradas (ABCDEF)

30 DES - Ciclos Hamiltonianos

31

32

33 DES - Critérios das Caixas S Não deve existir uma função linear das entradas para as saídas Se duas entradas diferem em exatamente um bit, suas saídas devem diferir ao menos em dois bits Se duas entradas diferem em dois bits intermediários (que selecionam a coluna), suas saídas devem diferir ao menos em dois bits Se duas entradas diferem nos dois primeiros bits e são iguais nos dois últimos bits, suas saídas não devem ser iguais Os 4 bits de saída de uma caixa S devem ser distribuídos de forma que dois afetem bits intermediários e dois afetem bits das extremidades da caixa seguinte Os 4 bits de saída devem afetar seis caixas diferentes; não pode haver uma caixa repetida

34 Criptoanálise Diferencial Duas entradas distintas : M1, M2 Duas saídas distintas : C1, C2 Diferença : M = M1 xor M2 Diferença na saída : C= C1 xor C2 Diferença na chave : K = K xor K = 0

35 Passo de cifragem

36 Para um B, nem todos os valores de C tem igual probabilidade

37 Exemplo para a caixa S1 Saída C Possíveis entradas (B) para ( B)= nenhuma 00018: ,001111,011110,011111,101010,101011, , : ,000010,010101,100001,110101, : , ,0110nenhuma : ,001100,011001,101101,111000, a 1100nenhuma 11018: ,010000,010110,011100,100010,100100, , nenhuma 11116: ,001010,001011,110011,111110,111111

38 Criptoanálise Diferencial Conhecida a saída C Conhecidos os valores A1, A2 e A Pode-se por exaustão determinar os B possíveis A seguir, determinam-se os B1 e B2 possíveis Como B = A xor K, tem-se um conjunto de chaves possíveis Repetir até restringir o conjunto de chaves a uma só

39 Criptoanálise diferencial Objetivo: quebrar a última rodada do DES (K16, ou 48 bits da chave) Usar suficiente diferenças para fazer as anomalias aparecerem Descoberta K16, os restantes 8 bits podem ser obtidos por força bruta (256 tentativas)

40 Passo de cifragem A = Exp(R) B = A xor KL = Per(C)C = S(B)

41 Funções para criptoanálise B=K xor AB*=K xor A* B=B xor B* C = Sj( B ) C* = Sj( B* ) C =C xor C* INj( B, C) = valores de B que produzem as diferenças B que resultam na diferença C, para a caixa Sj testj( A,A*, C) = valores de K que produzem B=K xor A tal que B pertence a INj( A, C ), para a caixa Sj obs: A = B xor K xor B* xor K = B

42 Criptoanálise Diferencial para 3 rodadas Sejam duas entradas (L0R0 e L0*R0*) e suas respectivas saídas (L3R3 e L3*R3*) R3 = L2 xor f(R2, K3) L2 = R1 R3 = R1 xor f(R2, K3) R1 = L0 xor f(R0, K1) R3 = L0 xor f(R0, K1) xor f(R2, K3) R3* = L0* xor f(R0*, K1) xor f(R2*, K3) R3 = L0 xor f(R0,K1) xor f(R0*,K1) xor f(R2, K3) xor f(R2*, K3)

43 Criptoanálise Diferencial para 3 rodadas R3 = L0 xor f(R0,K1) xor f(R0*,K1) xor f(R2, K3) xor f(R2*, K3) Escolhe-se R0=R0* Então f(R0,K1) = f(R0*,K1) R3 = L0 xor f(R2, K3) xor f(R2*, K3) ou R3 xor L0 = f(R2, K3) xor f(R2*, K3) Essa quantidade ( R3 xor L0) é conhecida

44 Criptoanálise Diferencial para 3 rodadas R3 xor L0 = f(R2, K3) xor f(R2*, K3) ( R3 xor L0) é conhecido f(R2, K3) = Per(C), a saída das Caixas S após a permutação da terceira rodada f(R2*, K3) = Per(C*) R3 xor L0 = Per(C) xor Per(C*) C xor C* = Per -1 ( R3 xor L0) C = Per -1 ( R3 xor L0) ou seja, C pode ser calculado a partir de R3, R3*, L0, L0* e do conhecimento da função Per

45 Criptoanálise Diferencial para 3 rodadas Os valores de A e A* podem ser obtidos por A = Exp (L3), a função Expansão A* = Exp (L3*) Com isto, pode-se calcular testj(A,A*, C) para as 8 caixas S Com isto determina-se K3, a terceira sub-chave Oito bits restantes de K determinados por força bruta

46 Criptoanálise diferencial Exemplo (valores em hexa) CD C70306D8A09F A0960E6D4CB ACDFF3145FA285BE5ADC B31F6AACDFF31134F7915AC DA013FEC86D8A31B2F28BBC5CF FEC860F317AC2B23CB944

47 Criptoanálise diferencial Exemplo (valores em hexa) CD C70306D8A09F A0960E6D4CB A= A*= C= Analogamente para os outros pares

48 Criptoanálise diferencial Exemplo de test1(A1,A1*, C1) A= A*= C= A1=000000A1*= C1=1001 test1(A1,A1*, C1)={000000,000111,101000, }

49 Criptoanálise diferencial Repetindo-se para os demais pares, tem-se a seguinte distribuição das 64 possibilidades(para a caixa S1): Assim K3 1 =

50 Criptoanálise diferencial Repete-se para as demais caixas Exemplo para S5: Assim K3 5 =

51 Criptoanálise diferencial Com isto, obtem-se para a chave K o valor ?01?01? ??0111?11?? O método deve ser desenvolvido para cada número de rodadas Veja-se Cryptography, Theory and Practice, de Douglas R. Stinson (primeira edição!)

52 Criptoanálise diferencial Problema: quantidade de texto necessária Para DES com 8 rodadas: 2 14 Para DES com 9 ou 10 rodadas: 2 24 Para DES com 11 ou 12 rodadas: 2 31 Para DES com 13 ou 14 rodadas: 2 39 Para DES com 15 ou 16 rodadas: 2 47 Para DES com 17 ou 18 rodadas: 2 56 Para DES com 19 ou 20 rodadas: 2 66

53 Criptoanálise linear Estimativa de um bit da chave Exemplo (para uma rodada): Seja a entrada X17 Seguindo a expansão, verifica-se que é operada com K26 Seguindo-se os quatros bits da caixa S5 (c17, c18, c19 e c20), chegam-se aos bits Y3, Y8, Y14 e Y25 na saída Então X17 xor Y3 xor Y8 xor Y14 xor Y25 = K26 Verificar se a probabilidade se afasta de 50%

54 Criptoanálise linear Texto necessário – 2 43 pares (texto normal, texto cifrado) Tempos necessários (1994) –geração dos 2 43 pares de texto normal e cifrado: 40 dias –tempo de descoberta da chave: 10 dias Melhor que força bruta, mas impraticável (por via das dúvidas, não use a mesma chave 2 43 vezes)

55 DES - Situação atual Crítica: Chave de 56 bits é pequena DES-Cracker –Desenvolvido e construído pela EFF - Electronic Frontier Fundation –Computador c/hardware específico para testar chaves –Velocidade: 88 bilhões de chaves por segundo –Custo: USD –Tempo de busca por uma chave: 56 horas (1998) Internet –DES-Cracker computadores –Velocidade: 245 bilhões de chaves por segundo –Tempo de busca: 22 horas, 15 minutos (1999)

56 DES Triplo Utilizar 3 vezes o DES original Cifragem –Cifrar com chave K1 –Decifrar com chave K2 –Cifrar com K3 C=E(D(E(M,K1),K2),K3 Decifragem –Decifrar com chave K3 –Cifrar com chave K2 –Decifrar com K1 M=D(E(D(C,K3),K2),K1)


Carregar ppt "Criptografia de chave única Algoritmo DES Data Encryption Standard."

Apresentações semelhantes


Anúncios Google