entendendo criptografia – um livro texto para estudantes e ... · estes slides foram preparados...

27
Entendendo Criptografia – Um Livro Texto para Estudantes e Profissionais por Christof Paar e Jan Pelzl www.crypto-textbook.com Capítulo 2 – Cifras de Fluxo ver. 29 de outubro de 2009 Estes slides foram preparados em inglês por Thomas Eisenbarth, 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 2 – Stream Ciphers. ver. October 29, 2009

Upload: dokien

Post on 08-Nov-2018

236 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Entendendo Criptografia – Um Livro Texto para Estudantes e Profissionais

por Christof Paar e Jan Pelzl

www.crypto-textbook.com

Capítulo 2 – Cifras de Fluxo ver. 29 de outubro de 2009

Estes slides foram preparados em inglês por Thomas Eisenbarth, 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 2 – Stream Ciphers.

ver. October 29, 2009

Page 2: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 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

Page 3: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

Conteúdo deste Capítulo

•  Introdução às cifras de fluxo

• Geradores de números aleatórios (RNGs)

• Cifra de Uso Único (One-Time Pad) (OTP)

• Registradores de deslocamento com realimentação linear (LFSRs)

• Trivium: uma cifra de fluxo moderna

3/27

Page 4: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

Conteúdo deste Capítulo

•  Introdução às cifras de fluxo

• Geradores de números aleatórios (RNGs)

• Cifra de Uso Único (One-Time Pad) (OTP)

• Registradores de deslocamento com realimentação linear (LFSRs)

• Trivium: uma cifra de fluxo moderna

4/27

A seguir

Page 5: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

 Cifras de fluxo no campo da Criptologia

Criptologia

Criptografia Criptoanálise

Cifras Simétricas Cifras Assimétricas Protocolos

Cifras de Bloco Cifras de Fluxo

Cifras de fluxo foram inventadas em 1917 por Gilbert Vernam

5/27

Você está aqui

Page 6: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

 Cifras de Fluxo vs. Cifras de Bloco

•  Cifras de Fluxo

•  Encripta bits individualmente

•  Normalmente simples e rápida à normalmente embarcada em dispositivos (p.e., A5/1 em telefones celulares GSM)

•  Cifras de Bloco:

•  Sempre encriptam um bloco completo (vários bits)

•  São comuns em aplicações da Internet

6/27

Cifra de Fluxo

Cifra de Bloco

Comentário de R Dahab: Índices no desenho acima devem ser 0..b-1

Page 7: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

  Encriptação e Decriptação com Cifras de Fluxo

•  Encriptação e decriptação são somas módulo 2 (aka XOR)

•  Encriptação e decriptação são as mesmas funções:

•  Encriptação: yi = esi(xi ) = xi + si mod 2 xi , yi , si ∈ {0,1}

•  Decriptação: xi = esi(yi ) = yi + si mod 2

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

Texto em claro xi, texto encriptado yi e fluxo da chave si consistem de bits individuais

7/27

Canal Inseguro (p.e. Internet)

Page 8: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

 Cifra de Fluxo Síncrona vs. Assíncrona

•  A segurança da cifra de fluxo depende inteiramente do fluxo de bits da chave si :

•  Ele deve ser aleatório , i.e., Pr(si = 0) = Pr(si = 1) = 0.5

•  Ele tem que ser reprodutível pelo transmissor e pelo receptor.

•  Cifras de Fluxo Síncronas

•  O fluxo de bits da chave depende somente da chave (e possivelmente do vetor de inicialização IV)

•  Cifras de Fluxo Assíncronas

•  O fluxo de bits da chave depende também do texto encriptado (linha pontilhada de realimentação habilitada)

8/27

Gerador de fluxo de bits

da chave

Page 9: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

  Por que a adição módulo 2 é uma boa função de encriptação?

•  A adição módulo 2 é equivalente à operação booleana XOR.

•  Para um fluxo de bits de chave si perfeitamente aleatório, cada bit do texto encriptado tem 50% de chance de ser 0 ou 1.

à Essa é uma BOA propriedade estatística para um texto encriptado.

•  A inversa do XOR é simples, pois é a mesma operação XOR

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

xi si yi 0 0 0 0 1 1 1 0 1 1 1 0

9/27

Page 10: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

 Cifras de fluxo: taxa de encriptação

Comparação de desempenho de cifras simétricas (Pentium 4):

Cifra Tamanho da Chave Mbit/s DES 56 36.95

3DES 112 13.32

AES 128 51.19

RC4 (cifra de fluxo) (a escolher) 211.34

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

Fonte: Zhao et al., Anatomy and Performance of SSL Processing, ISPASS 2005

10/27

Page 11: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

Conteúdo deste Capítulo

•  Introdução às cifras de fluxo

• Geradores de números aleatórios (RNGs)

• Cifra de Uso Único (One-Time Pad) (OTP)

• Registradores de deslocamento com realimentação linear (LFSRs)

• Trivium: uma cifra de fluxo moderna

11/27

A seguir

Page 12: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

  Geradores de Números Aleatórios (RNGs)

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl 12/27

RNG

Cryptographically Secure RNG Pseudorandom NG True RNG RNG Verdadeiro RNG Pseudoaleatório

RNG Criptograficamente Seguro

Page 13: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

 Geradores de Números Verdadeiramente Aleatórios (TRNGs)

•  Baseados em processos fisicamente aleatórios: “cara ou coroa”, jogo de dados, ruído em semicondutor, decaimento radioativo, movimento do mouse, variação do clock em circuitos digitais, etc.

•  Fluxo de bits de saída si deve ter propriedades estatísticas boas.: Pr(si = 0) = Pr(si = 1) = 50% (sempre alcançadas por pós-processamento)

•  A saída não pode ser predita e nem reproduzida.

Tipicamente usada para geração de chaves, nonces (valores usados uma única vez) e muitos outros propósitos.

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl 13/27

Aqui nos temos o nosso gerador de números aleatórios

Nove Nove Nove Nove ... Tem certeza que são aleatórios? Este é o problema com a aleatoriedade, você nunca vai ter certeza

Page 14: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

 Gerador de números pseudoaleatórios (PRNG)

•  Gera sequências a partir de um valor inicial (semente)

•  Tipicamente, o fluxo de saída tem propriedades estatísticas boas

•  Saída pode ser reproduzida e predita

Muitas vezes calculada de forma recursiva:

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

s0 = sementesi+1 = f (si, si−1,..., si−t )

Exemplo: função rand() do ANSI C:

s0 =12345si+1 =1103515245si +12345mod2

31

A maioria dos PRNGs tem propriedades criptográficas ruins!

14/27

Page 15: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

 Criptoanalisando um PRNG Simples

Suponha

•  A, B desconhecidos e S0 como chave

•  Tamanho de A, B e Si deve ser 100 bits

•  300 bits de saída são conhecidos, i.e. S1, S2 e S3

Resolvendo (para A e B)

…diretamente revela A e B. Todos Si podem ser calculados facilmente!

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

S2 = AS1 +BmodmS3 = AS2 +Bmodm

PRNG Simples: Gerador Congruencial Linear

S0 = sementeSi+1 = ASi +Bmodm

Propriedades criptográficas ruins devido à linearidade da maioria dos PRNGs

15/27

Page 16: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

 Gerador de Números Pseudoaleatórios Criptograficamente Seguro (CSPRNG)

•  PRNG especial com propriedade adicional:

•  Saída deve ser imprevisível.

Mais precisamente: Dados n bits consecutivos da saída si , o bit de saída seguinte sn+1 não pode ser predito (em tempo polinomial).

•  Necessário em criptografia, em particular para cifras de fluxo.

•  Observação: Quase não há outras aplicações que necessitem de imprevisibilidade, enquanto muitos e muitos sistemas (técnicos) precisam de PRNGs.

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl 16/27

Page 17: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

Conteúdo deste Capítulo

•  Introdução às cifras de fluxo

• Geradores de números aleatórios (RNGs)

• Cifra de Uso Único (One-Time Pad) (OTP)

• Registradores de deslocamento com realimentação linear (LFSRs)

• Trivium: uma cifra de fluxo moderna

17/27

A seguir

Page 18: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

 Cifra de Uso Único - One-Time Pad (OTP)

Sistema de criptografia incondicionalmente seguro:

•  Um sistema criptográfico é incondicionalmente seguro se ele não puder ser quebrado mesmo com recursos computacionais infinitos.

Cifra de Uso Único - One-Time Pad

•  Um sistema criptográfico desenvolvido por Mauborgne, que é baseado na cifra de fluxo de Vernam.

•  Propriedades:

•  Sejam o texto em claro, o encriptado e a chave considerados bit a bit. Isto é: xi, yi, ki ∈ {0,1} e

Encriptação: eki(xi) = xi ⊕ ki.

Decriptação: dki(yi) = yi ⊕ ki

A OTP é incondicionalmente segura se e somente se a chave ki é usada uma única vez!

18/27 Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

Page 19: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

 Cifra de Uso Único - One-Time Pad (OTP)

A OTP é um sistema criptográfico incondicionalmente seguro:

y0 = x0 ⊕ k0

y1 = x1 ⊕ k1

:

Cada equação é uma equação linear com duas incógnitas

⇒  Para cada yi , xi = 0 e xi = 1 são equiprováveis!

⇒  Isso é verdadeiro se k0, k1, ... forem independentes, i.e., todo ki tem que ser gerado por um gerador de números aleatórios verdadeiro.

⇒  Pode-se provar que este sistema não pode ser resolvido.

Desvantagem: Para a maioria das aplicações, o OTP é impraticável pois a chave deve ser tão longa quanto a mensagem! (Imagine ter que encriptar um anexo de e-mail com 1GByte.)

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl 19/27

Page 20: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

Conteúdo deste Capítulo

•  Introdução às cifras de fluxo

• Geradores de números aleatórios (RNGs)

• Cifra de Uso Único (One-Time Pad) (OTP)

• Registradores de deslocamento com realimentação linear (LFSRs)

• Trivium: uma cifra de fluxo moderna

20/27

Page 21: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

  Registradores de Deslocamento com Realimentação Linear (LFSRs)

•  Flip-flops (FF) concatenados, i.e., um registrador de deslocamento com um caminho de realimentação

•  Realimentação calcula novas entradas por meio de XOR de certos bits de estado

•  Grau m dado pelo número de elementos de armazenamento

•  Se pi = 1, a realimentação está ativa (“circuito fechado”), caso contrário não há realimentação da saída desse flip-flop (“circuito aberto”).

•  Sequência de saída se repete periodicamente.

•  Máximo comprimento da saída: 2m-1

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl 21/27

Page 22: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

  Registradores de Deslocamento com Realimentação Linear (LFSRs): Exemplo com m=3

•  A saída do LFSR é descrita pela equação recursiva:

•  Máximo comprimento da saída (de 23-1=7) é atingido apenas para certas configurações de realimentação, p.ex., a que é mostrada aqui.

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

clk FF2 FF1 FF0=si

0 1 0 0

1 0 1 0

2 1 0 1

3 1 1 0

4 1 1 1

5 0 1 1

6 0 0 1

7 1 0 0

8 0 1 0

si+3 = si+1 + simod2

22/27

Page 23: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

  Segurança dos LFSRs

LFSRs são tipicamente descritos por polinômios:

•  LFSRs individuais geram saída altamente previsível.

•  Se 2m bits de saída de um LFSR de grau m são conhecidos, os coeficientes de realimentação pi do LFSR podem ser calculados resolvendo um sistema de equações lineares*

•  Por causa disso, muitas cifras de fluxo usam combinações de LFSRs

*Veja Capítulo do 2 de Understanding Cryptography para maiores detalhes..

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

P(x) = xm + pl−1xm−1 +...+ p1x + p0

23/27

Page 24: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

Conteúdo deste Capítulo

•  Introdução às cifras de fluxo

• Geradores de números aleatórios (RNGs)

• Cifra de Uso Único (One-Time Pad) (OTP)

• Registradores de deslocamento com realimentação linear (LFSRs)

• Trivium: uma cifra de fluxo moderna

24/27

A seguir

Page 25: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

  Trivium – Uma cifra de fluxo moderna

•  Três LFSRs não lineares (NLFSR) de tamanho 93, 84, 111

•  XOR das três saídas dos NLFSR geram o fluxo de bits si da chave

•  Hardware pequeno:

•  Total de registradores: 288

•  Não-linearidade: 3 portas AND

•  7 portas XOR (4 com três entradas) Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl 25/27

fluxo da chave

Page 26: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

  Trivium

Inicialização:

•  Carregar IV de 80 bits em A

•  Carregar a chave de 80 bits em B

•  Faça c109 , c110 , c111 =1, e todos os outros = 0

Aquecimento:

•  Pulse o clock 4 x 288 = 1152 vezes sem gerar saída

Encriptação:

•  Soma-XOR da saída dos três NLFSR geram o fluxo de bits da chave si

Projetado para ser paralelizado produzindo até 64 bits de saída por ciclo de clock.

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

Tamanho do Registrador Bit realimentado Bit alimentado para a frente

Entrada das portas AND

A 93 69 66 91, 92

B 84 78 69 82, 83

C 111 87 66 109, 110

26/27

fluxo da chave

Page 27: Entendendo Criptografia – Um Livro Texto para Estudantes e ... · Estes slides foram preparados em inglês por Thomas Eisenbarth, Christof Paar e Jan Pelzl, e traduzidos para o

Chapter 2 of Understanding Cryptography by Christof Paar and Jan Pelzl

  Lições Aprendidas •  Cifras de fluxo são menos populares que cifras de bloco na maioria dos domínios, tais

como a segurança na Internet. Há exceções, por exemplo, a popular cifra de fluxo RC4.

•  Cifras de fluxo algumas vezes requerem menos recursos, isto é, tamanho de código ou área de circuito do chip, para sua implementação do que as cifras de bloco, e são atraentes para uso em ambientes com recursos restritos como os telefones celulares.

•  Os requisitos para um gerador de números pseudoaleatórios criptograficamente seguros são, de longe, muito mais exigentes que os requisitos para geradores de números pseudoaleatórios usados em outras aplicações, tais como testes e simulação.

•  A Cifra de Uso Único (One-Time Pad) é uma cifra simétrica demonstravelmente segura. Entretanto, ela é altamente impraticável para a maioria das aplicações, porque o tamanho da chave tem que ser igual ao tamanho da mensagem.

•  LFSRs individuais geram cifras de fluxo pobres, embora com boas propriedades estatísticas. Entretanto uma combinação cuidadosa de vários LFSR podem gerar cifras fortes.

27/27