prof. dr. marco aurélio amaral...

19
Trivium Leandro Aparecido Sangalli Marco Aur´ elio Amaral Henriques [email protected] [email protected] Universidade Estadual de Campinas - UNICAMP Faculdade de Engenharia El´ etrica e de Computac ¸˜ ao - FEEC Leandro Aparecido Sangalli Prof. Dr. Marco Aur´ elio Amaral Henriques March 2, 2015 1 / 19

Upload: letuyen

Post on 21-Jan-2019

215 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Trivium

Leandro Aparecido Sangalli Marco Aurelio Amaral [email protected] [email protected]

Universidade Estadual de Campinas - UNICAMPFaculdade de Engenharia Eletrica e de Computacao - FEEC

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 1 / 19

Page 2: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Roteiro

Estaca ZeroCifrador de FluxoCifrador de Bloco

IntroducaoTrivium

Geracao de Chaves de Fluxo

Ideia Central no Estudo do TriviumAutomatos Celulares

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 2 / 19

Page 3: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Estaca Zero

O que e um cifrador de fluxo?No esquema de cifragem de fluxo, o texto em claro e cifrado bit abit.

Esta cifragem normalmente e realizada por meio do operadorlogico XOR (⊕).Relembrando: 0 ⊕ 0 = 0; 1 ⊕ 0 = 1; 0 ⊕ 1 = 1 e 1 ⊕ 1.

Algoritmo ideal: One-Time-Pad (cifra de uso unico)Dificuldade: gerar numeros aleatorios com o mesmo tamanho damensagem que se deseja cifrar (chave).

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 3 / 19

Page 4: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Estaca Zero

Figure: Cifrador de fluxo (One-Time-Pad)

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 4 / 19

Page 5: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Estaca Zero

O que e um cifrador de bloco?No esquema de cifragem de bloco, o texto em claroprimeiramente e dividido em blocos de tamanho pre-definido edepois cifrado um bloco por vez.Algoritmos: AES (128 bits), DES (128 bits), entre outros.

Problema: blocos de texto em claro iguais geram blocos identicosde texto cifrado.Solucao: utilizar dados extra na cifragem de cada bloco.

Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte(Cipher Feedback Block).Modo de Operacao: Cipher Block Chaining (CBC), Cipher FeedbackBlock (CFB), entre outros.

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 5 / 19

Page 6: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Estaca Zero

Figure: Cifrador de bloco

Cada bloco e enviado ao destinatario da mensagemimediatamente apos sua cifragem.Ao receber todos os blocos o destinatario efetua a decifragem dosmesmos na ordem como foram recebidos.Apos a decifragem os blocos sao concatenados, formando amensagem original.

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 6 / 19

Page 7: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Introducao

Algoritmos criptograficos:Troca de chaves:

Algoritmos Assimetricos (Chave Publica)RSACurvas ElıpticasBaseado em Emparelhamentos

Cifragem de DadosAlgoritmos Simetricos (Chave secreta)

Triplo DESAESOne-Time-Pad

OBS- Algoritmos simetricos sao mais eficientes (computacionalmentefalando) para efetuar cifragem de dados que os assimetricos.

Maior simplicidade na implementacaobaseados em operacoes logicas simples, como, XOR, AND,SHIFT, entre outras.

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 7 / 19

Page 8: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Introducao (Cont.)

Motivacao: a busca por servicos de criptografia em tempo real estarelacionada diretamente com a busca por algoritmos cada vez maissimples e seguros.

Algoritmo ideal: One-Time-PadDesafio: geracao de numeros aleatorios

Proposta: Triviumhttp://www.ecrypt.eu.org/stream/e2-trivium.html

Algoritmo extremamente eficiente em Hardware;Utiliza sementes para gerar numeros aleatorios (chaves);Estas chaves podem ser utilizadas na estrututa One-Time-Pad;

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 8 / 19

Page 9: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Trivium

Figure: Ideia do Trivium

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 9 / 19

Page 10: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Trivium (Cont.)

Parametros de entrada (sementes):Chave (k) (80 bits);Vetor inicial (IV) (80 bits).

Saıda (Chave de Fluxo):ate 264 bits da chave de fluxo (Key Stream (KS)).

Os N bits da KS sao derivados de IV, K e dos Estados Internos(IS) do Trivium.

Os IS sao 288 bits derivados a partir de IV, K e de PADDING’s,distribuidos entre tres registradores de 93, 84 e 111 bits,respectivamente;IS← (s1, s2, · · · s288).

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 10 / 19

Page 11: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Trivium (Cont.)

Algoritmo: Geracao Estados Internos(IV,K)Entrada: IV, K.Saıda: Estados Internos (IS).1: (s1, s2, · · · s93)← (k1, k2, · · · k80, 0, · · · , 0)2: (s94, s95, · · · s177)← (IV1, IV2, · · · IV80, 0, · · · , 0)3: (s178, s179, · · · s288)← (0, 0, · · · 0, 0, 1, 1, 1)4: for i = 1 to 4 · 2885: t1 ← s66 ⊕ (s91 � s92)⊕ s93 ⊕ s1716: t2 ← s162 ⊕ (s175 � s176)⊕ s177 ⊕ s2647: t3 ← s243 ⊕ (s286 � s287)⊕ s288 ⊕ s698: (s1, s2, · · · s93)← (t3, s1, s2, · · · , s92)9: (s94, s95, · · · s177)← (t1, s94, s95, · · · s176)10: (s178, s179, · · · s288)← (t2, s178, s179, · · · s287)11: end for12: return IS

�: representa o operador logido AND.

⊕: representa o operador logido XOR.

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 11 / 19

Page 12: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Trivium (Cont.)

Algoritmo: Geracao Chave Fluxo(IV,K) (bits)Entrada: s1, s2, · · · s288Saıda: o bit zi da chave de fluxo.1: for i = 1 to 264

2: t1 ← s66 ⊕ s933: t2 ← s162 ⊕ s1774: t3 ← s243 ⊕ s2885: zi ← t1 ⊕ t2 ⊕ t36: t1 ← t1 ⊕ (s91 � s92)⊕ s1717: t2 ← t2 ⊕ (s175 � s176)⊕ s2648: t3 ← t3 ⊕ (s286 � s287)⊕ s699: (s1, s2, · · · s93)← (t3, s1, s2, · · · , s92)10: (s94, s95, · · · s177)← (t1, s94, s95, · · · s176)11: (s178, s179, · · · s288)← (t2, s178, s179, · · · s287)12: print(zi)13: end for

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 12 / 19

Page 13: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Trivium (Cont.)

Figure: Trivium - geracao de chaves de fluxoLeandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 13 / 19

Page 14: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Trivium (Cont.)

Existem propostas de geradores de numeros aleatorios queutilizam estruturas semelhantes a do Trivium

Trivium ToyUtiliza tres registradores de tamanho distintos, 31, 28 e 37 bits,respectivamente.Pode gerar ate 264 bits da chave de fluxo.IV, K: ?

Bivium-ToyUtiliza dois registradores de tamanho distintos, 31 e 28 bits,respectivamente.Pode gerar ate 264 bits da chave de fluxo.IV, K: ?

Em ambas as variantes as propriedades matematica do Triviumsao preservadas.

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 14 / 19

Page 15: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Trivium (Cont.)

A qualidade de um gerador de numeros aleatorios esta associadadiretamente ao comprimento do ciclo deste gerador.

Ciclo: a quantidade de numeros que pode ser gerada a partir dedeterminada semente (sem repreticao).Uma forma de avaliar o comprimento do ciclo do gerador e a cadasaıda, avaliar a correlacao desta com as demais

Sendo todas derivadas da mesma semente.

O TriviumUma analise de ciclo possıvel:

verificar a autocorrelacao dos bits da chave de fluxo a cada IV e Kutilizados.

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 15 / 19

Page 16: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Ideia Central no Estudo do Trivium

Entender a forma como foi demonstrado o tamanho do ciclo doTrivium;Adaptar esta demonstracao a medida que se possa utiliza-la emgeradores aleatorios baseados em Automatos Celulares.https://scholar.google.com/citations?view_op=view_citation&hl=en&user=aoiMfj8AAAAJ&citation_for_view=aoiMfj8AAAAJ:u-x6o8ySG0sC

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 16 / 19

Page 17: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Automatos Celulares

Automatos Celulares Unidimensionais (AC)Um AC pode ser associado a um vetor de n celulas (posicoes);Inicialmente um vetor inicial possui todas as celulas com valorzero, menos a celula central (valor um).A cada evolucao, este vetor inicial gera um novo vetor, onde cadacelula depende da vizinhanca (celulas vizinhas) do vetor anterior.

Processo executado de forma iterativa.A evolucao dos automatos ocorre de acordo com a regrautilizada;

Existem 256 regras possıveis (unidimencionais).Regra escolhida: Regra 30.

Pode ser utilizada para geracao de numeros aleatorios.

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 17 / 19

Page 18: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Automatos Celulares

Figure: Evolucao de um AC

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 18 / 19

Page 19: Prof. Dr. Marco Aurélio Amaral Henriquescalhau.dca.fee.unicamp.br/wiki/images/1/11/Cifrador_de_fluxo... · Exemplo: Um bloco cifrado e utilizado na cifragem do bloco seguinte´ (Cipher

Automatos Celulares (Cont.)

Regra 30 A regra 30 e definida como:

xt+1i = xti−1 ⊕ (xti ∨ xti+1)

onde, ∨ representa a operacao logica OU.

Exemplo: Observe a evolucao do AC-30.

Vizinhanca 000 001 010 011 100 101 110 111Valor central (bit) 0 1 1 1 1 0 0 0

Leandro Aparecido Sangalli ()Prof. Dr. Marco Aurelio Amaral Henriques March 2, 2015 19 / 19