Criptografia de chave única

Slides:



Advertisements
Apresentações semelhantes
Circuitos Lógicos e Organização de Computadores Capítulo 6 – Blocos com Circuitos Combinacionais Ricardo Pannain
Advertisements

Lista 3!!!.
Lista 3!!!.
Algoritmos em Grafos Celso C. Ribeiro Caroline T. Rocha.
SISTEMA BINÁRIO Hardware de Computadores. SISTEMA BINÁRIO Hardware de Computadores.
PROGRESSÃO ARITMÉTICA P.A.
Modelo planetário: errado Elétrons são descritos por meio de funções de onda Mecânica Quântica : probabilidades.
PGF5001 – Mecânica Quântica 1 Prof. Emerson Passos.
Prof. Celso Gramática.
Introdução a Resolução Numérica de Equações Diferenciais Ordinárias
Método de diferenças finitas para problemas lineares
Estruturas de Dados para projeto de SGBD. Estruturas de dados analisadas Estruturas de nível Esparso Denso Combinadas Arvore B+ Tabela de hash.
Exemplos de 3 posições relativas de prédio fronteiro
Prof. Dr. Helder Anibal Hermini
Reconstrução filogenética: Inferência Bayesiana
Utilização do montador Daedalus
1. Equivalência entre portas 2. Derivação de expressões booleanas 3
Criptografia de chave única
Criptografia de chave pública
Criptografia de chave única
Criptografia Quântica : Um Estudo
Teste Funcional de Software
Criptografia Raul Fernando Weber Instituto de Informática
Multiplicador Booth para o FemtoJava
Gustavo Vieira Pereira
Twofish Leonardo H. Furlan.
Canal Sub-liminar. Algoritmo de assinatura digital modificado para que duas pessoas troquem segredos através do uso aparentemente normal deste algoritmo.
Criptoanálise Integral Criptoanálise diferencial: diferença (subtração) entre duas cifragens Criptoanálise integral: efeito cumulativo (soma) entre várias.
Protocolos Criptográficos. Múltiplas chaves em RSA Para RSA, escolhe-se dois números, e e d, tal que e. d = 1 mod (p-1).(q-1) Entretanto, também pode-se.
MARS The IBM Candidate Cipher for AES
Criptografia Criptografia & Segurança.
Serpent-1 O Serpent-0 refinado Paulo Estima Mello
Registro de Carta Topográfica
Publicidade e Propaganda – Conceitos e Categoria
Geração de Código Cap. 8. Introdução Fase final para um compilador Entrada é uma representação intermediária do código fonte e a saída é um programa para.
Geração de Código Algoritmo de Escalonamento de instruções – List Scheduling.
Banco de Dados I Profa. Jiani Cardoso 2/2005
Técnicas de Amostragem
Capitulo 3 Técnicas de Diagnóstico CT-282 Tutores Inteligentes Diego Ajukas.
PRÉ PROVA – BANCO DO BRASIL
CES-11 LAB 03 Bitmap Quadtree
1. Função: - Criar meios para que o processador possa comunicar-se com todos estes componentes com a maior velocidade e confiabilidade possíveis. - Na.
Capítulo I – Conceitos Primários 1.1 – Estrutura de um computador 1.2 – Informações manipuladas por um computador 1.3 – Evolução das linguagens de programação.
Função Gráficos. Domínio e imagem no gráfico.
TA 733 A – Operações Unitárias II
TA 733 A – Operações Unitárias II
Probabilidade Modelo matemático para incerteza Desenvolvimento relativamente recente –Cardano (século XVI) –Pascal (século XVII) Peter Bernstein, Against.
Probabilidade e Esperança Condicional
Já definimos o coeficiente angular de uma curva y = f(x) no ponto onde x = x 0. Derivadas Chamamos esse limite, quando ele existia, de derivada de f em.
EEL170 COMPUTAÇÃO I Antonio Cláudio Gómez de Sousa 5a série de slides Versão 26/04/2012.
TÉCNICAS DE CODIFICAÇÃO DE SINAIS COMPRESSÃO SEM PERDAS Evelio M. G. Fernández
Interpolação Introdução Conceito de Interpolação
8.EQUAÇÕES DIFERENCIAIS ORDINÁRIAS Parte 5
Resolução de Sistemas Não-Lineares- Parte 1
Sistemas Lineares Parte 2
Resolução de Sistemas Lineares- Parte 1
Desempenho A rápida taxa de melhoria na tecnologia de computadores veio em decorrência de dois fatores: avanços na tecnologia utilizada na construção.
Capítulo 1 Introdução 1.1 O que é um sistema operacional
Recursividade Estrutura de Dados.
Marco Antonio Montebello Júnior
Introdução à Probabilidade
The Data Warehouse Toolkit
Otimização Aplicada ao Dimensionamento e Operação de Reservatórios
Baseado no documento do Prof. Ronaldo Martins da Costa
Computação Gráfica Geometria de Transformações
Prof. André Laurindo Maitelli DCA-UFRN
INPE / CAP-334 Celso L. Mendes Aula 4-D(1) Reestruturação de Programas em Sistemas Vetoriais (II) Tópicos: Suporte à Paralelização Vetorização.
1 Seja o resultado de um experimento aleatório. Suponha que uma forma de onda é associada a cada resultado.A coleção de tais formas de ondas formam um.
8. Uma Função de duas Variáveis Aleatórias
Introdução à Criptografia Moderna – 2ª Lista de Exercícios
Transcrição da apresentação:

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 K1, K2, K3, …. K15, K16

Sub-chaves

Passo de cifragem

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

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 S1 8 Caixas distintas (S1 a S8)

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: K1, K2, K3, …. K16

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

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)

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,K1) e C1 = E(C,K2) não existe K3 tal que C1=E(M,K3) Cifrar duas (ou três vezes) é eficiente - 3DES

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

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 !

DES - Ciclos Hamiltonianos

DES - Ciclos Hamiltonianos Relação entre as saídas 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: 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

Passo de cifragem

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

Exemplo para a caixa S1 Saída C Possíveis entradas (B) para (B)=110100 0000 nenhuma 0001 8: 000011,001111,011110,011111,101010,101011, 110111,111011 0010 16 0011 6: 000001,000010,010101,100001,110101,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 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ó

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)

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*=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

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)

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

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

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

Criptoanálise diferencial Exemplo (valores em hexa) 748502CD38451097 03C70306D8A09F10 3874756438451097 78560A0960E6D4CB 486911026ACDFF31 45FA285BE5ADC830 375B31F6AACDFF31 134F7915AC253457 357418DA013FEC86 D8A31B2F28BBC5CF 12549847013FEC86 0F317AC2B23CB944

Criptoanálise diferencial Exemplo (valores em hexa) 748502CD38451097 03C70306D8A09F10 3874756438451097 78560A0960E6D4CB A=000000000111111000001110100000000110100000000110 A*=101111110000001010101100000001010100000001010010 C=10010110010111010101101101100111 Analogamente para os outros pares

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}

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

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

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

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 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%

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)

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 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)