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