português-revisado em 12/3/2013
TRANSCRIPT
Entendendo Criptografia – Um Livro Texto para Estudantes e Profissionais
por Christof Paar e Jan Pelzl
www.crypto-textbook.com
Capítulo 3 – O Data Encryption Standard (DES) ver. 26 de novembro de 2010
Estes slides foram preparados em inglês por Markus Kasper, Christof Paar e Jan Pelzl, e traduzidos para o Português por Luiz C. Navarro, Emmanuel F. L. Silva e Ricardo Dahab
Tradução para Português (Brasil) dos slides: Understanding Cryptography – A Textbook for Students and Practitioners
by Christof Paar and Jan Pelzl. Chapter 3 – The Data Encryption Standard (DES)
ver. Nov 26, 2010
Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Algumas questões legais (desculpem): Condições para uso deste material
• Os slides podem ser usados sem custos. Todos os direitos dos slides permanecem com os autores.
• O título do livro que dá origem aos slides “Understanding Cryptography by Springer” e o nome dos autores devem permanecer em todos os slides.
• Se os slides forem modificados, os créditos aos autores do livro e ao livro devem permanecer nos slides.
• Não é permitida a reprodução de parte ou do todo dos slides em forma impressa sem a permissão expressa por escrito dos autores.
2/27
Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Conteúdo deste Capítulo
• Introdução ao DES
• Visão Geral do Algoritmo do DES
• Estrutura Interna do DES
• Decriptação no DES
• Segurança do DES
3/27
Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Conteúdo deste Capítulo
• Introdução ao DES
• Visão Geral do Algoritmo do DES
• Estrutura Interna do DES
• Decriptação no DES
• Segurança do DES
4/27
A seguir
Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Classificação do DES no campo da Criptologia
Criptologia
Criptografia Criptoanalise
Cifras Simétricas Cifras Assimétricas Protocolos
Cifras de Bloco Cifras de Fluxo
5/27
6/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Fatos do DES
• Data Encryption Standard (DES) encripta blocos de tamanho 64 bits.
• Desenvolvido pela IBM baseado na cifra Lucifer sob influencia da National Security Agency (NSA): os critérios de projeto do DES não foram publicados.
• Padronizado em 1977 pelo National Bureau of Standards (NBS), hoje chamado National Institute of Standards and Technology (NIST).
• É a cifra de bloco mais popular dos últimos 30 anos.
• De longe o mais estudado algoritmo de criptografia simétrica.
• Considerado atualmente inseguro devido ao seu pequeno comprimento de chave de 56 bits.
• Porém: o 3DES é uma cifra muito segura, e ainda largamente utilizada nos dias de hoje.
• Substituída pelo Advanced Encryption Standard (AES) em 2000.
• Para mais detalhes históricos veja o capítulo 3.1 do livro Understanding Cryptography.
7/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Primitivas das Cifras de Bloco: Confusão e Difusão
• Claude Shannon: Há duas operações primitivas com as quais algoritmos de criptografia fortes podem ser construídos:
1. Confusão: Uma operação de encriptação onde a relação entre a chave e o texto criptografado é ocultada. Hoje, um elemento comum para alcançar confusão é a substituição, que é encontrada em ambos o AES e o DES.
2. Difusão: Uma operação de encriptação onde a influência de um bit do texto claro é espalhada para muitos bits do texto encriptado com o objetivo de esconder as propriedades estatísticas do texto em claro. Um elemento de difusão simples é a permutação de bits, que é frequentemente usada no DES.
• Ambas operações não produzem segurança por elas próprias. A ideia é concatenar elementos de confusão e difusão para construir as chamadas cifras de produto.
8/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Cifras de Produto
• A maioria das cifras de bloco dos dias de hoje são cifras de produto, pois consistem de rodadas que são aplicadas repetidamente sobre os dados.
• Podem alcançar excelente difusão: modificando um bit do texto em claro resulta em média na mudança de metade dos bits da saída. Exemplo:
Um bit alterado Muitos bits alterados
Difusão 1
Confusão 1
Difusão 2
Confusão 2
Difusão n
Confusão n Cifra de Bloco
Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Conteúdo deste Capítulo
• Introdução ao DES
• Visão Geral do Algoritmo do DES
• Estrutura Interna do DES
• Decriptação do DES
• Segurança do DES
9/27
A seguir
10/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Visão Geral do Algoritmo DES
• Encripta blocos de tamanho 64 bits.
• Usa uma chave de tamanho 56 bits.
• Cifra simétrica: usa a mesma chave para encriptar e decriptar.
• Usa 16 rodadas nas quais faz operações idênticas.
• Diferentes subchaves derivadas da chave principal são usadas em cada rodada.
Permutação Inicial
Rodada de Encriptação 1
Rodada de Encriptação 16
Permutação final
Texto em claro x
Permutação Inicial IP(x)
Transformação 1
Chave k
Rodada 1
11/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
• Uma permutação inicial bit a bit, e então 16 rodadas.
1. O bloco de texto em claro é dividido em duas metades de 32 bits Li e Ri
2. Ri torna-se uma entrada da função f, cuja saída sofre um XOR com Li
3. As metades esquerda e direita são, entao, trocadas.
• As rodadas podem ser expressas como:
• A estrutura do DES é uma Rede de Feistel.
• Vantagem: encriptação e decriptação diferem apenas na ordem de aplicação das subchaves.
A Rede de Feistel do DES (1)
Permutação final IP-1()
Transformação 16
Rodada 16
Texto Encriptado y = DESk(x)
12/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
A Rede de Feistel do DES (2)
• Ao final da rodada 16, L e R são trocados novamente, i.e., antes da permutação final
Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Conteúdo deste Capítulo
• Introdução ao DES
• Visão Geral do Algoritmo do DES
• Estrutura Interna do DES
• Decriptação do DES
• Segurança do DES
13/27
A seguir
14/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Permutação Inicial e Final
• Permutações bit a bit.
• Operações inversas.
• Descritas pelas tabelas IP e IP-1.
Permutação Inicial Permutação Final
Expansão
Permutação
15/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
A Função-f
• É a operação principal do DES
• Entradas da função f:
Ri-1 e subchave da rodada, ki
• 4 Passos:
1. Expansão E
2. XOR com a subchave da rodada
3. Substituição usando S-boxes
4. Permutação
! Expansão
Permutação
16/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
A função de expansão E
1. Expansão E
• Propósito principal: aumentar a difusão
Permutação
Expansão
17/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Soma da subchave da rodada
2. XOR com subchave da rodada
• XOR bit a bit da subchave da rodada e a saída da função de expansão E.
• Subchaves das rodadas derivam da chave principal no gerador de subchaves do DES (explicadao alguns slides a frente).
Expansão
Permutação
18/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
As caixas S (S-Boxes) do DES
3. Substituição das Caixas S (S-Boxes)
• Oito tabelas de substituição. • 6 bits de entrada, 4 bits de saída. • Não-linear e resistente à criptoanálise
diferencial. • Elemento crucial da segurança do DES! • Veja todas as tabelas das S-Boxes e os seus
critérios de projetos no capítulo 3 do livro Understanding Cryptography.
quarta linha (3)
Terceira coluna (2)
Permutação
Expansão
19/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
A Permutação P
4. Permutação P • Permutação bit a bit.
• Introduz difusão.
• Os bits de saída de uma caixa S (S-Box) afetam várias caixas S na próxima rodada
• A difusão feita por E, caixas S e P garantem que, depois da rodada 5, os bits de cada rodada sejam uma função de cada um dos bits da chave e do texto em claro.
20/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Gerador das Subchaves (1)
• Deriva da chave original de 56 bits, as 16 chaves ki de 48 bits, uma para cada rodada (também chamadas de subchaves).
• O tamanho da chave do DES é 64 bits, dos quais 56 são de chave e 8 bits são de paridade:
• Os bits de paridade são removidos na primeira permutação com seleção PC-1: (note que os bits 8, 16, 24, 32, 40, 48, 56 e 64 não são usados)
bit de paridade
21/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Gerador das Subchaves (2)
1. Divide a chave em metades de 28-bits C0 e D0.
2. Nas rodadas i = 1, 2, 9 ,16, as duas metades são rotacionadas à esquerda em um bit.
3. Em todas as outras rodadas as duas metades são rotacionadas à esquerda em dois bits.
4. Em cada rodada i a permutação-seleção PC-2 seleciona e permuta um subconjunto de 48 bits de Ci e Di como subchaves da rodada ki, i.e. cada ki é uma permutação de k!
Note que o número total de rotações é 4 x 1 + 12 x 2 = 28 ⇒ D0 = D16 e C0 = C16 !
Transformação 1
Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Conteúdo deste Capítulo
• Introdução ao DES
• Visão Geral do Algoritmo do DES
• Estrutura Interna do DES
• Decriptação no DES
• Segurança do DES
22/27
A seguir
Transformação 1
23/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Decriptação Nas cifras de Feistel somente o gerador de subchaves precisa ser modificado para a decriptação: • Gera as 16 subchaves de rodada na ordem
inversa (para uma discussão detalhada de porque isso funciona veja o capítulo 3 do livro Understanding Cryptography).
• Geração reversa de subchaves: Como D0=D16 e C0=C16, a primeira subchave pode ser gerada aplicando PC-2 logo depois de PC-1 (aqui sem rotações!). Todas as outras rotações de C e D podem ser revertidas para (re)produzir as subchaves de cada rodada:
• Sem rotação na rodada 1. • Rotação de 1 bit para a direita nas rodadas
2, 9 and 16. • Rotação de 2 bits para a direita em todas as
outras rodadas.
Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Conteúdo deste Capítulo
• Introdução ao DES
• Visão Geral do Algoritmo do DES
• Estrutura Interna do DES
• Decriptação no DES
• Segurança do DES
24/27
A seguir
25/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Segurança do DES
• Após a proposta do DES, duas críticas principais surgiram :
1. O espaço de chaves (256 chaves) é muito pequeno.
2. Os critérios de projeto das caixas S-box foram mantidos em segredo. Haveria fraquezas escondidas (backdoors) para ataques analíticos, conhecidas somente pela NSA?
• Ataques Analíticos: O DES é altamente resistente a ambas criptoanálises, diferencial e linear, as quais foram publicadas posteriormente ao surgimento do DES. Isto significa que a IBM e a NSA tinham conhecimento destes ataques há 15 anos!? Até agora não há ataques analíticos conhecidos que quebrem o DES em cenários realistas.
• Busca exaustiva de chave: Para um dado par de texto em claro e texto encriptado (x, y), teste todas as 256 chaves até que a condição DESk
-1(x)=y seja satisfeita. ⇒ Relativamente fácil com a tecnologia dos computadores de hoje!
26/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
História dos Ataques ao DES
Ano Ataque ao DES Proposto/Implementado
1977 Diffie & Hellman, (sub-)estimaram os custos de uma máquina de pesquisa de chave
1990 Biham & Shamir propuseram a cripto-analise diferencial (247 textos encriptados escolhidos)
1993 Mike Wiener propos o projeto de uma máquina de pesquisa de chave muito eficiente: Em média uma pesquisa requeria 36h. Custo: $1.000.000
1993 Matsui propos a cripto-analise linear (243 textos encriptados escolhidos)
Jun. 1997 Desafio ao DES I quebrado, 4.5 meses de pesquisa distribuida
Fev. 1998 Desafio ao DES II--1 quebrado, 39 dias (pesquisa distribuida)
Jul. 1998 Desafio ao DES II--2 quebrado, pesquisa distribuida de chave pela máquina Deep Crack construida pela Electronic Frontier Foundation (EFF): 1800 ASICs com 24 motores de pesquisa cada, Custo: $250 000, 15 dias de tempo médio de pesquisa de chave (56h foram gastas na quebra do Desafio)
Jan. 1999 Desafio ao DES III quebrado em 22h 15min (pesquisa distribuida assistida pelo Deep Crack)
2006-2008 Máquina reconfigurável de pesquisa de chave COPACOBANA desenvolvida pelas Universidades de Bochum e Kiel (Alemanha), usa 120 FPGAs para quebrar o DES em 6.4 dias (médio) com um custo de $10.000.
27/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
• A encriptação tripla usando DES é frequentemente usada na pratica para estender a efetividade do tamanho da chave para 112. Para mais informações sobre encriptação múltipla e efetividade dos tamanhos de chave veja o capítulo 5 do livro Understanding Cryptography.
• Versão alternativa do 3DES:
Vantagem: escolhendo k1=k2=k3 obtém-se uma encriptação DES simples.
• Nenhum ataque prático até hoje conhecido.
• Usada em muitas aplicações legado, i.e., nos sistemas bancários.
Triple DES – 3DES
28/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Alternativas ao DES
Algoritmo Bits E/S Tamanhos de chave Observações
AES / Rijndael 128 128/192/256 “substituição” ao DES, padrão de uso mundial
Triple DES 64 112 (efetiva) escolha conservadora
Mars 128 128/192/256 finalista do AES
RC6 128 128/192/256 finalista do AES
Serpent 128 128/192/256 finalista do AES
Twofish 128 128/192/256 finalista do AES
IDEA 64 128 patenteado
29/29 Chapter 3 of Understanding Cryptography by Christof Paar and Jan Pelzl
Lições Aprendidas
• O DES foi o algoritmo de criptografia simétrica dominante de meados dos anos 1970 a meados dos anos 1990. Desde que chaves de 56 bits não são mais seguras, o Advanced Encryption Standard (AES) foi criado.
• O DES-padrão, com tamanho de chave de 56 bits pode ser facilmente quebrado nos dias de hoje através de pesquisa exaustiva da chave.
• O DES é bastante robusto contra ataques analíticos conhecidos: Na prática, é muito difícil quebrar a cifra com criptoanálise diferencial ou linear.
• Ao encriptar com DES três vezes seguidas, o Triple DES (3DES) é criado, contra o qual nenhum ataque prático é conhecido atualmente.
• Hoje em dia a cifra simétrica "default" é frequentemente o AES. Além disso, todas as outras quatro cifras finalistas do processo de definição do AES parecem muito seguras e eficientes.