56
Criptografia de chave única Algoritmo DES Data Encryption Standard

Criptografia de chave única Algoritmo DES Data Encryption Standard

Embed Size (px)

Citation preview

Page 1: Criptografia de chave única Algoritmo DES Data Encryption Standard

Criptografia de chave única

Algoritmo DES

Data Encryption Standard

Page 2: Criptografia de chave única Algoritmo DES Data Encryption Standard

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)

Page 3: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 4: Criptografia de chave única Algoritmo DES Data Encryption Standard

DES

Mensagem original Transposição

inicialCifragem

16 vezes

Chave

Inversão da transposição inicial

Mensagem cifrada

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

Page 5: Criptografia de chave única Algoritmo DES Data Encryption Standard

Transposições

Permutação Inicial (IP)58 50 42 34 26 18 10 2 60 52 44 36 28 20 12 462 54 46 38 30 22 14 6 64 56 48 40 32 24 16 857 49 41 33 25 17 9 1 59 51 43 35 27 19 11 361 53 45 37 29 21 13 5 63 55 47 39 31 23 15 7

Permutação Final (IP-1)40 8 48 16 56 24 64 32 39 7 47 15 55 23 63 3138 6 46 14 54 22 62 30 37 5 45 13 53 21 61 2936 4 44 12 52 20 60 28 35 3 43 11 51 19 59 2734 2 42 10 50 18 58 26 33 1 41 9 49 17 57 25

Page 6: Criptografia de chave única Algoritmo DES Data Encryption Standard

Passo de cifragem

Ri-1 (32 bits)

Transposição e

Expansão

Substituição e

Seleção

Transposição e

Seleção

Chave (56 bits)

Transposição

Deslocamento Deslocamento

Li-1 (32 bits)

Li (32 bits) Ri (32 bits)

2828

28 2856

48

48 48

32

32

32

32

Page 7: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 8: Criptografia de chave única Algoritmo DES Data Encryption Standard

Sub-chaves

Compressão inicial (de 64 para 56 bits) da chave (realizada uma única vez)57 49 41 33 25 17 9 1 58 50 42 34 26 1810 2 59 51 43 35 27 19 11 3 60 52 44 3663 55 47 39 31 23 15 7 62 54 46 38 30 2214 6 61 53 45 37 29 21 13 5 28 20 12 4

Deslocamentos da chave por rodada (cifragem: para esquerda; decifagrem: para direita)Rodada 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16Desloc. 1 1 2 2 2 2 2 2 1 2 2 2 2 2 2 1

Transposição e seleção da sub-chave (reduz de 56 para 48 bits)14 17 11 24 1 5 3 28 15 6 21 l023 19 12 4 26 8 16 7 27 20 13 241 52 31 37 47 55 30 40 51 45 33 4844 49 39 56 34 53 46 42 50 36 29 32

Page 9: Criptografia de chave única Algoritmo DES Data Encryption Standard

Passo de cifragem

Ri-1 (32 bits)

Transposição e

Expansão

Substituição e

Seleção

Transposição e

Seleção

Chave (56 bits)

Transposição

Deslocamento Deslocamento

Li-1 (32 bits)

Li (32 bits) Ri (32 bits)

2828

28 2856

48

48 48

32

32

32

32

Page 10: Criptografia de chave única Algoritmo DES Data Encryption Standard

Metade direita

• Bloco de 32 bits

• Expansão (gera 48 bits)

• Operação de ou-exclusivo (Xor) com sub-chave

Page 11: Criptografia de chave única Algoritmo DES Data Encryption Standard

Transposição - Metade direita

Transposição e expansão (expande de 32 para 48 bits)

32 1 2 3 4 5 4 5 6 7 8 98 9 l0 11 12 13 12 13 14 15 16 1716 17 18 19 20 21 20 21 22 23 24 2524 25 26 27 28 29 28 29 30 31 32 1

Page 12: Criptografia de chave única Algoritmo DES Data Encryption Standard

Passo de cifragem

Ri-1 (32 bits)

Transposição e

Expansão

Substituição e

Seleção

Transposição e

Seleção

Chave (56 bits)

Transposição

Deslocamento Deslocamento

Li-1 (32 bits)

Li (32 bits) Ri (32 bits)

2828

28 2856

48

48 48

32

32

32

32

Page 13: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 14: Criptografia de chave única Algoritmo DES Data Encryption Standard

Caixas S

Caixa-S1 (reduz de 6 para 4 bits)

14 4 13 1 2 15 11 8 3 l0 6 12 5 9 0 70 15 7 4 14 2 13 1 l0 6 12 11 9 5 3 84 1 14 8 13 6 2 11 15 12 9 7 3 l0 5 015 12 8 2 4 9 1 7 5 11 3 14 l0 0 6 13

• Exemplo: Caixa S1

• 8 Caixas distintas (S1 a S8)

Page 15: Criptografia de chave única Algoritmo DES Data Encryption Standard

Ri-1 (32 bits)

Transposição e

Expansão

Substituição e

Seleção

Transposição e

Seleção

Chave (56 bits)

Transposição

Deslocamento Deslocamento

Li-1 (32 bits)

Li (32 bits) Ri (32 bits)

2828

28 2856

48

48 48

32

32

32

32

Passo de cifragem

Page 16: Criptografia de chave única Algoritmo DES Data Encryption Standard

Transposição

Transposição ( ou Permutação (P-Box)) (sobre 32 bits)

16 7 20 21 29 12 28 17 1 15 23 26 5 18 31 102 8 24 14 32 27 3 9 19 13 30 6 22 11 4 25

Page 17: Criptografia de chave única Algoritmo DES Data Encryption Standard

Ri = Li-1 xor f(Ri-1, Ki)

Ri-1 (32 bits)

Transposição e

Expansão

Substituição e

Seleção

Transposição e

Seleção

Chave (56 bits)

Transposição

Deslocamento Deslocamento

Li-1 (32 bits)

Li (32 bits) Ri (32 bits)

2828

28 2856

48

48 48

32

32

32

32

Page 18: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 19: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 20: Criptografia de chave única Algoritmo DES Data Encryption Standard

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)

Page 21: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 22: Criptografia de chave única Algoritmo DES Data Encryption Standard

Núm Texto Claro Texto cifrado Dif.1 A B C D E F A B C D E F A B C D C D E 8 7 2 D 4 A 4 7 1 3 4 6 F ---2 8 B C D E F A B C D E F A B C D C D 3 D 0 A A 4 C 4 0 2 4 B 4 A 293 A 9 C D E F A B C D E F A B C D 8 0 1 F 8 A 2 9 6 8 B C 4 4 7 3 384 A B D D E F A B C D E F A B C D 5 D 9 8 C 4 7 D D D B A 6 F 3 0 365 A B C F E F A B C D E F A B C D 9 9 8 9 5 6 2 A 8 4 F 4 0 1 C 9 266 A B C D 6 F A B C D E F A B C D 6 7 C 2 6 9 F 2 5 4 2 7 9 1 F 9 307 A B C D E B A B C D E F A B C D F 8 C 9 8 F 7 9 A D C 0 6 E A 4 338 A B C D E F D B C D E F A B C D 8 7 D 3 2 4 0 A B B F 4 4 0 7 4 349 A B C D E F A 9 C D E F A B C D D B 9 9 8 B 6 7 0 4 6 C D C E 7 3010 A B C D E F A B E D E F A B C D 2 F 6 E 5 4 7 0 E 4 E 3 5 1 A C 2511 A B C D E F A B C C E F A B C D B 5 3 E 4 2 D E 3 0 F 9 7 A D 0 2912 A B C D E F A B C D 6 F A B C D 4 F 4 0 6 7 7 2 6 B 3 5 B 0 1 4 2813 A B C D E F A B C D E 7 A B C D A B 1 5 5 2 8 9 6 6 0 C 6 0 B 2 3514 A B C D E F A B C D E F 2 B C D 5 B D A 9 3 F 7 D 4 2 7 B 8 D 2 3015 A B C D E F A B C D E F A F C D 9 8 5 3 C 5 1 1 E D 5 6 8 8 7 E 3416 A B C D E F A B C D E F A B D D 7 0 A A 2 4 0 7 9 5 9 F 0 4 B 1 3417 A B C D E F A B C D E F A B C 5 8 9 2 B E C 4 7 C 9 7 1 2 B E 3 26

Alteração de um bit na entrada

Page 23: Criptografia de chave única Algoritmo DES Data Encryption Standard

Núm Chave Texto cifrado Dif.1 0 1 2 3 4 5 6 7 8 9 A B C D E F C D E 8 7 2 D 4 A 4 7 1 3 4 6 F ---2 8 0 2 3 4 5 6 7 8 9 A B C D E F 1 B 7 3 F E 8 B C 0 B 8 8 6 0 6 353 0 2 2 3 4 5 6 7 8 9 A B C D E F 0 F 9 2 F 6 0 D 2 F D 4 D 8 B 7 324 0 1 6 2 4 5 6 7 8 9 A B C D E F 3 1 A F D 8 C 5 4 F B F 4 B C D 375 0 1 2 6 4 5 6 7 8 9 A B C D E F C 7 9 F 5 9 6 3 D 4 6 5 A 7 E E 296 0 1 2 3 0 4 6 7 8 9 A B C D E F 3 6 5 2 9 C C 1 0 7 1 7 A 3 8 9 397 0 1 2 3 4 6 6 7 8 9 A B C D E F 7 F 3 5 F 7 E 6 C E C 5 7 E E 3 308 0 1 2 3 4 5 4 6 8 9 A B C D E F C 9 F 3 F D 9 2 6 0 C 6 8 1 8 A 279 0 1 2 3 4 5 6 4 8 9 A B C D E F E 6 9 2 8 3 2 2 E E 8 B 9 A 6 9 3610 0 1 2 3 4 5 6 7 A 8 A B C D E F 0 9 9 7 A 5 A F 6 E 4 E 1 4 6 0 3711 0 1 2 3 4 5 6 7 8 A A B C D E F C 7 B 4 1 C 4 F 3 8 D 9 A F 7 A 3112 0 1 2 3 4 5 6 7 8 9 E A C D E F 4 B 4 A A 2 0 A B 2 1 4 4 D D D 3013 0 1 2 3 4 5 6 7 8 9 A 8 C D E F 1 2 9 9 7 E E 8 0 0 1 B D 2 7 C 3214 0 1 2 3 4 5 6 7 8 9 A B 4 C E F 4 2 D 1 7 B 7 D F 5 3 4 3 B 7 9 2815 0 1 2 3 4 5 6 7 8 9 A B C E E F 8 7 F 6 4 9 3 C 4 C 8 9 8 3 2 7 3316 0 1 2 3 4 5 6 7 8 9 A B C D 6 E F C 3 0 F 6 F 7 6 B D 4 2 5 9 2 3117 0 1 2 3 4 5 6 7 8 9 A B C D E C 1 C B D E C 4 B 7 9 B C A 7 A 1 39

Alteração de um bit na chave

Page 24: Criptografia de chave única Algoritmo DES Data Encryption Standard

Rodada Metade Esq. Metade Dir. Metade Esq. Metade Dir. Dif.1 00000000 00000000 00000080 00000000 12 00000000 AF0D68FD 00000000 AF0D687D 13 AF0D68FD CE0A36EA AF0D687D CE3A32E2 54 CE0A36EA 0BDCC5FE CE3A32E2 81BDED5F 155 0BDCC5FE 5D181CC3 81BDED5F F8CA39B2 266 5D181CC 1744B978 F8CA39B2 A994B918 267 1744B978 9B1CB0D8 A994B918 3E9D05D8 228 9B1CB0D8 7AE8C7E0 3E9D05D8 23F48DFF 269 7AE8C7E0 A2AC7B3F 23F48DFF 9D58DCFB 3410 A2AC7B3F 580E51EF 9D58DCFB 3F076303 3411 580E51EF 2865DBD4 3F076303 97AE4AE3 3512 2865DBD4 BF68F77C 97AE4AE3 68ABB612 3713 BF68F77C 8F57F629 68ABB612 09D9C398 3214 8F57F629 0827B240 09D9C398 44B0435C 3115 0827B240 F2DEBFAC 44B0435C 319FD3B8 2916 F2DEBFAC 16CD0EB8 319FD3B8 42684FF9 24

Número de Rodadas

Page 25: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 26: Criptografia de chave única Algoritmo DES Data Encryption Standard

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: 00000000 00000000

FFFFFFFF FFFFFFFF

00000000 FFFFFFFF

FFFFFFFF 00000000

Page 27: Criptografia de chave única Algoritmo DES Data Encryption Standard

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 !

Page 28: Criptografia de chave única Algoritmo DES Data Encryption Standard

DES - Ciclos Hamiltonianos

Ri-1 (32 bits)

Transposição e

Expansão

Substituição e

Seleção

Transposição e

Seleção

Chave (56 bits)

Transposição

Deslocamento Deslocamento

Li-1 (32 bits)

Li (32 bits) Ri (32 bits)

2828

28 2856

48

48 48

32

32

32

32

Page 29: Criptografia de chave única Algoritmo DES Data Encryption Standard

DES - Ciclos Hamiltonianos

Caixa Saída 0 Saída 1 Saída 2 Saída 3S1 F2, B3 F4, B5 D6 D8S2 F3, B4 E7, A8 C1 C5S3 E6, A7 E4, A5 C8 C2S4 C7 E5, A6 C3 F8, B1S5 E2, A3 C4 F6, B7 D1S6 E1, A2 F7, B8 D3 D5S7 E8, A2 F7, B8 D3 D5S8 F1, B2 D7 D4 F5, B6

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

Page 30: Criptografia de chave única Algoritmo DES Data Encryption Standard

DES - Ciclos Hamiltonianos

1

2

3

4

5

6

7

8

C C

C

C

DC

D

D

D

D

C

C

D

C

D

D

Page 31: Criptografia de chave única Algoritmo DES Data Encryption Standard

DES - Ciclos Hamiltonianos

8

1

2

3

4

5

6

7

F F

E

E

FF

E

F

E

E

F

F

E

E

F

E

Page 32: Criptografia de chave única Algoritmo DES Data Encryption Standard

DES - Ciclos Hamiltonianos

8

1

2

3

4

5

6

7

B

A

ABB

A

AA

B A

B

BA

B

B A

Page 33: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 34: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 35: Criptografia de chave única Algoritmo DES Data Encryption Standard

Passo de cifragem

Ri-1 (32 bits)

Transposição e

Expansão

Substituição e

Seleção

Transposição e

Seleção

Chave (56 bits)

Transposição

Deslocamento Deslocamento

Li-1 (32 bits)

Li (32 bits) Ri (32 bits)

2828

28 2856

48

48 48

32

32

32

32

Page 36: Criptografia de chave única Algoritmo DES Data Encryption Standard

Passo de cifragem

Transposiçãoe

Expansão

Substitu içãoe

Seleção

Transposiçãoe

Seleção

Transposição

K = 0

R

A B L

C

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

Page 37: Criptografia de chave única Algoritmo DES Data Encryption Standard

Exemplo para a caixa S1

Saída C Possíveis entradas (B) para (B)=1101000000 nenhuma0001 8: 000011,001111,011110,011111,101010,101011,

110111,1110110010 160011 6: 000001,000010,010101,100001,110101,1101100100 2: 010011,1001110101,0110 nenhuma0111 121000 6: 001001,001100,011001,101101,111000,1111011001 a 1100 nenhuma1101 8: 000110,010000,010110,011100,100010,100100,

101000,1100101110 nenhuma1111 6: 000111,001010,001011,110011,111110,111111

Page 38: Criptografia de chave única Algoritmo DES Data Encryption Standard

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ó

Page 39: Criptografia de chave única Algoritmo DES Data Encryption Standard

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)

Page 40: Criptografia de chave única Algoritmo DES Data Encryption Standard

Passo de cifragem

Transposiçãoe

Expansão

Substitu içãoe

Se leção

Transposiçãoe

Seleção

Transposição

K = 0

R

A B L

C

A = Exp(R) B = A xor K L = Per(C)C = S(B)

Page 41: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 42: Criptografia de chave única Algoritmo DES Data Encryption Standard

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)

Page 43: Criptografia de chave única Algoritmo DES Data Encryption Standard

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)

ouR3 xor L0 = f(R2, K3) xor f(R2*, K3)

• Essa quantidade (R3 xor L0) é conhecida

Page 44: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 45: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 46: Criptografia de chave única Algoritmo DES Data Encryption Standard

Criptoanálise diferencial

• Exemplo (valores em hexa)• 748502CD38451097 03C70306D8A09F10• 3874756438451097 78560A0960E6D4CB

• 486911026ACDFF31 45FA285BE5ADC830• 375B31F6AACDFF31 134F7915AC253457

• 357418DA013FEC86 D8A31B2F28BBC5CF• 12549847013FEC86 0F317AC2B23CB944

Page 47: Criptografia de chave única Algoritmo DES Data Encryption Standard

Criptoanálise diferencial

• Exemplo (valores em hexa)• 748502CD38451097 03C70306D8A09F10• 3874756438451097 78560A0960E6D4CB

• A=000000000111111000001110100000000110100000000110

• A*=101111110000001010101100000001010100000001010010

C=10010110010111010101101101100111• Analogamente para os outros pares

Page 48: Criptografia de chave única Algoritmo DES Data Encryption Standard

Criptoanálise diferencial

• Exemplo de test1(A1,A1*, C1)• A=000000000111111000001110100000000110100000000110

• A*=101111110000001010101100000001010100000001010010

C=10010110010111010101101101100111• A1=000000 A1*=101111 C1=1001

• test1(A1,A1*,C1)={000000,000111,101000,101111}

Page 49: Criptografia de chave única Algoritmo DES Data Encryption Standard

Criptoanálise diferencial

• Repetindo-se para os demais pares, tem-se a seguinte distribuição das 64 possibilidades(para a caixa S1):

1 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0

0 0 0 0 0 1 1 0 0 0 0 1 1 0 0 0

0 1 0 0 0 1 0 0 1 0 0 0 0 0 0 3

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1

• Assim K31 = 101111

Page 50: Criptografia de chave única Algoritmo DES Data Encryption Standard

Criptoanálise diferencial

• Repete-se para as demais caixas

• Exemplo para S5:

0 0 0 0 0 0 1 0 0 0 1 0 0 0 0 0

0 0 0 0 2 0 0 0 3 0 0 0 0 0 0 0

0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

0 0 2 0 0 0 0 0 0 1 0 0 0 0 2 0

• Assim K35 = 011000

Page 51: Criptografia de chave única Algoritmo DES Data Encryption Standard

Criptoanálise diferencial

• Com isto, obtem-se para a chave K o valor

0001101011000101?01?01?00100

01010010000??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!)

Page 52: Criptografia de chave única Algoritmo DES Data Encryption Standard

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

Page 53: Criptografia de chave única Algoritmo DES Data Encryption Standard

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%

Page 54: Criptografia de chave única Algoritmo DES Data Encryption Standard

Criptoanálise linear

• Texto necessário– 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)

Page 55: Criptografia de chave única Algoritmo DES Data Encryption Standard

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 250.000

– Tempo de busca por uma chave: 56 horas (1998)

• Internet– DES-Cracker + 100.000 computadores

– Velocidade: 245 bilhões de chaves por segundo

– Tempo de busca: 22 horas, 15 minutos (1999)

Page 56: Criptografia de chave única Algoritmo DES Data Encryption Standard

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)