Criptografia de chave nica Algoritmo DES Data Encryption
- Slides: 56
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)
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
DES Transposições simplesmente trocam bits de posição
Transposições
Passo de cifragem
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 K 1, K 2, K 3, …. K 15, K 16
Sub-chaves
Passo de cifragem
Metade direita • Bloco de 32 bits • Expansão (gera 48 bits) • Operação de ou-exclusivo (Xor) com subchave
Transposição - Metade direita
Passo de cifragem
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
Caixas S • Exemplo: Caixa S 1 • 8 Caixas distintas (S 1 a S 8)
Passo de cifragem
Transposição
Ri = Li-1 xor f(Ri-1, Ki)
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: K 1, K 2, K 3, …. K 16
Cifragem e Decifragem • Decifragem: entrada: Li e Ri do texto cifrado calcular: Rd = Ri xor f(Li, Ki) Ld = L i 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: K 16, K 15, K 14, …. K 1
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)
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
Alteração de um bit na entrada
Alteração de um bit na chave
Número de Rodadas
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, K 1) e C 1 = E(C, K 2) não existe K 3 tal que C 1=E(M, K 3) Cifrar duas (ou três vezes) é eficiente - 3 DES
DES - Chaves fracas • Chave fraca todas as 16 sub-chaves são iguais • Seqüência K 1. . K 16 é igual a K 16. . K 1 • Somente 48 bits da chave são efetivos • Chaves: 00000000 FFFFFFFF 00000000
DES - Chaves semi-fracas • Pares de chaves semi-fracas • A seqüência K 1. . K 16 de uma chave é o inverso da seqüência gerada pela outra chave (K 16. . K 1) • Problema: Cifragem de uma chave seguida da cifragem com a outra chave na realidade decifra !
DES - Ciclos Hamiltonianos
DES - Ciclos Hamiltonianos Relação entre as saídas caixas S e as entradas (ABCDEF)
DES - Ciclos Hamiltonianos
DES - Ciclos Hamiltonianos
DES - Ciclos Hamiltonianos
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
Criptoanálise Diferencial • Duas entradas distintas: M 1, M 2 • Duas saídas distintas: C 1, C 2 • Diferença: M = M 1 xor M 2 • Diferença na saída: C= C 1 xor C 2 • Diferença na chave: K = K xor K = 0
Passo de cifragem
Passo de cifragem Para um B, nem todos os valores de C tem igual probabilidade
Exemplo para a caixa S 1 Saída C 0000 0001 Possíveis entradas (B) para ( B)=110100 nenhuma 8: 000011, 001111, 011110, 011111, 101010, 101011, 110111, 111011 0010 16 0011 6: 000001, 000010, 010101, 100001, 110110 0100 2: 010011, 100111 0101, 0110 nenhuma 0111 12 1000 6: 001001, 001100, 011001, 101101, 111000, 111101 1001 a 1100 nenhuma 1101 8: 000110, 010000, 010110, 011100, 100010, 100100, 101000, 110010 1110 nenhuma 1111 6: 000111, 001010, 001011, 110011, 111110, 111111
Criptoanálise Diferencial • Conhecida a saída C • Conhecidos os valores A 1, A 2 e A • Pode-se por exaustão determinar os B possíveis • A seguir, determinam-se os B 1 e B 2 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ó
Criptoanálise diferencial • Objetivo: “quebrar” a última rodada do DES (K 16, ou 48 bits da chave) • Usar suficiente diferenças para fazer as anomalias aparecerem • Descoberta K 16, os restantes 8 bits podem ser obtidos por força bruta (256 tentativas)
Passo de cifragem A = Exp(R) B = A xor K C = S(B) L = Per(C)
Funções para criptoanálise B=K xor A B=B xor B* B*=K xor A* 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
Criptoanálise Diferencial para 3 rodadas • Sejam duas entradas (L 0 R 0 e L 0*R 0*) e suas respectivas saídas (L 3 R 3 e L 3*R 3*) • R 3 = L 2 xor f(R 2, K 3) • L 2 = R 1 • R 3 = R 1 xor f(R 2, K 3) • R 1 = L 0 xor f(R 0, K 1) • R 3 = L 0 xor f(R 0, K 1) xor f(R 2, K 3) • R 3* = L 0* xor f(R 0*, K 1) xor f(R 2*, K 3) • R 3 = L 0 xor f(R 0, K 1) xor f(R 0*, K 1) xor f(R 2, K 3) xor f(R 2*, K 3)
Criptoanálise Diferencial para 3 rodadas • R 3 = L 0 xor f(R 0, K 1) xor f(R 0*, K 1) xor f(R 2, K 3) xor f(R 2*, K 3) • Escolhe-se R 0=R 0* • Então f(R 0, K 1) = f(R 0*, K 1) • R 3 = L 0 xor f(R 2, K 3) xor f(R 2*, K 3) ou • R 3 xor L 0 = f(R 2, K 3) xor f(R 2*, K 3) • Essa quantidade ( R 3 xor L 0) é conhecida
Criptoanálise Diferencial para 3 rodadas • R 3 xor L 0 = f(R 2, K 3) xor f(R 2*, K 3) • ( R 3 xor L 0) é conhecido • f(R 2, K 3) = Per(C), a saída das Caixas S após a permutação da terceira rodada • f(R 2*, K 3) = Per(C*) • R 3 xor L 0 = Per(C) xor Per(C*) • C xor C* = Per-1( R 3 xor L 0) • C = Per-1( R 3 xor L 0) • ou seja, C pode ser calculado a partir de R 3, R 3*, L 0* e do conhecimento da função Per
Criptoanálise Diferencial para 3 rodadas • • Os valores de A e A* podem ser obtidos por A = Exp (L 3), a função Expansão A* = Exp (L 3*) Com isto, pode-se calcular testj(A, A*, C) para as 8 caixas S • Com isto determina-se K 3, a terceira sub-chave • Oito bits restantes de K determinados por força bruta
Criptoanálise diferencial • Exemplo (valores em hexa) • 748502 CD 38451097 03 C 70306 D 8 A 09 F 10 • 3874756438451097 78560 A 0960 E 6 D 4 CB • 486911026 ACDFF 31 45 FA 285 BE 5 ADC 830 • 375 B 31 F 6 AACDFF 31 134 F 7915 AC 253457 • 357418 DA 013 FEC 86 D 8 A 31 B 2 F 28 BBC 5 CF • 12549847013 FEC 86 0 F 317 AC 2 B 23 CB 944
Criptoanálise diferencial • Exemplo (valores em hexa) • 748502 CD 38451097 03 C 70306 D 8 A 09 F 10 • 3874756438451097 78560 A 0960 E 6 D 4 CB • A=0000011111100000111010000110 • A*=10111111000000101100000001010010 • C=10010111010101101101100111 • Analogamente para os outros pares
Criptoanálise diferencial • Exemplo de test 1(A 1, A 1*, C 1) • A=0000011111100000111010000110 • A*=10111111000000101100000001010010 • C=10010111010101101101100111 • A 1=000000 A 1*=101111 C 1=1001 • test 1(A 1, A 1*, C 1)={000000, 000111, 101000, 101111}
Criptoanálise diferencial • Repetindo-se para os demais pares, tem-se a seguinte distribuição das 64 possibilidades(para a caixa S 1): 1 0 0 0 0 0 0 0 1 1 0 0 0 0 1 0 0 0 3 0 0 0 0 1 • Assim K 31 = 101111
Criptoanálise diferencial • Repete-se para as demais caixas • Exemplo para S 5: 0 0 0 1 0 0 0 2 0 0 0 3 0 0 0 0 0 2 0 0 0 1 0 0 0 • Assim K 35 = 011000 0 0 0 2 0 0
Criptoanálise diferencial • Com isto, obtem-se para a chave K o valor 0001101011000101? 01? 00100 01010010000? ? 0111? ? 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!)
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
Criptoanálise linear • • Estimativa de um bit da chave Exemplo (para uma rodada): Seja a entrada X 17 Seguindo a expansão, verifica-se que é operada com K 26 • Seguindo-se os quatros bits da caixa S 5 (c 17, c 18, c 19 e c 20), chegam-se aos bits Y 3, Y 8, Y 14 e Y 25 na saída • Então X 17 xor Y 3 xor Y 8 xor Y 14 xor Y 25 = K 26 • Verificar se a probabilidade se afasta de 50%
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)
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)
DES Triplo • Utilizar 3 vezes o DES original • Cifragem – Cifrar com chave K 1 – Decifrar com chave K 2 – Cifrar com K 3 • C=E(D(E(M, K 1), K 2), K 3 • Decifragem – Decifrar com chave K 3 – Cifrar com chave K 2 – Decifrar com K 1 • M=D(E(D(C, K 3), K 2), K 1)
- Criptografia
- Criptografia
- Criptografia
- Criptografia rae
- Caracteristicas de la criptografia
- Criptografia simétrica
- Criptografia etimologia
- Simtrica
- Des des des
- Triple des advantages and disadvantages
- Des encryption example
- Nica ny race results
- Biomec nica
- Nica a
- Biomec nica
- Arco supranasal
- Peta konsep upaya mempertahankan kemerdekaan indonesia
- Adolf x nica
- Nica
- Mecanismo chave fechadura
- Chave primaria
- Chave primaria
- Adjetivo nombre
- Auto relacionamento
- Tronco chave
- Enzimas
- Cifrado por bloques
- Block ciphers and the data encryption standard
- International data encryption algorithm
- Data encryption standard exercice corrigé
- Data encryption standard
- Data encryption standard
- Nist data encryption standard
- Data encryption standard history
- Rfc 5116
- La diffusion des idées des lumières
- Il existe des personnes qui sont des lumières pour tous
- 6 modes verbaux
- Affiche propagande guerre froide
- Diversification des espaces et des acteurs de la production
- Volume d un corps
- Volume des liquides et des solides
- Cartographie des risques gestion des stocks
- Je t'offrirai des fleurs et des nappes en couleurs
- Robin des bois des alpes
- Des in network security
- Budget des ventes méthode des moindres carrés
- Verra crypt
- Homomorphic encryption standard
- Asymmetric key cryptography
- How do you decide the placement of the encryption function?
- Outlook 365
- Making good encryption algorithms
- Lest we remember: cold boot attacks on encryption keys
- Elgamal example
- Public key encryption
- Rsa algorithm in java