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

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

Criptografia de chave única

Apresentações semelhantes


Apresentação em tema: "Criptografia de chave única"— 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 Ri = Li-1 xor f(Ri-1, Ki)

18 Cifragem e Decifragem Cifragem: entrada: Li-1 e Ri-1 do passo anterior
calcular: Ri = Li-1 xor f(Ri-1, Ki) Li = Ri-1 Ordem de geração das chaves: Chaves de cifragem: K1, K2, K3, …. K16

19 Cifragem e Decifragem Decifragem: entrada: Li e Ri do texto cifrado
calcular: Rd = Ri xor f(Li, Ki) Ld = Li mas Li = Ri-1, ou seja: Rd = Ri xor f(Ri-1, Ki) = Li-1 Ld = Ri-1 Ordem de geração das chaves: Chaves de decifragem: K16, K15, K14, …. K1

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: K1, K2, K3, …. K16 Chaves de decifragem: K16, K15, K14, …. K1 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 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 DES - Ciclos Hamiltonianos
Relação entre as saídas das caixas S e as entradas (ABCDEF)

30 DES - Ciclos Hamiltonianos

31 DES - Ciclos Hamiltonianos

32 DES - Ciclos Hamiltonianos

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 Passo de cifragem 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)=110100 0000 nenhuma 0001 8: ,001111,011110,011111,101010,101011, 110111,111011 0011 6: ,000010,010101,100001,110101,110110 0100 2: ,100111 0101,0110 nenhuma 1000 6: ,001100,011001,101101,111000,111101 1001 a 1100 nenhuma 1101 8: ,010000,010110,011100,100010,100100, 101000,110010 1110 nenhuma 1111 6: ,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 K C = S(B) L = Per(C)

41 Funções para criptoanálise
B=K xor A B*=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) 748502CD C70306D8A09F10 A0960E6D4CB ACDFF31 45FA285BE5ADC830 375B31F6AACDFF31 134F7915AC253457 357418DA013FEC86 D8A31B2F28BBC5CF FEC86 0F317AC2B23CB944

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

48 Criptoanálise diferencial
Exemplo de test1(A1,A1*, C1) A= A*= C= A1= A1*= 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 K31 =

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

51 Criptoanálise diferencial
Com isto, obtem-se para a chave K o valor ?01?01?00100 ??0111?11??100011 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: 214 Para DES com 9 ou 10 rodadas: 224 Para DES com 11 ou 12 rodadas: 231 Para DES com 13 ou 14 rodadas: 239 Para DES com 15 ou 16 rodadas: 247 Para DES com 17 ou 18 rodadas: 256 Para DES com 19 ou 20 rodadas: 266

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 Tempos necessários (1994)
243 pares (texto normal, texto cifrado) Tempos necessários (1994) geração dos 243 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 243 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"

Apresentações semelhantes


Anúncios Google