português-revisado em 12/3/2013

29
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

Upload: nguyenthuan

Post on 10-Jan-2017

224 views

Category:

Documents


1 download

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.