Prof. Dr. Marco Aurélio Amaral...

Post on 21-Jan-2019

215 views 0 download

Transcript of Prof. Dr. Marco Aurélio Amaral...

Trivium

Leandro Aparecido Sangalli Marco Aurelio Amaral Henriquessangalli@dca.fee.unicamp.br marco@dca.fee.unicamp.br

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

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

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

Estaca Zero

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

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

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

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

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

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

Trivium

Figure: Ideia do Trivium

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

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

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

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

Trivium (Cont.)

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

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

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

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

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

Automatos Celulares

Figure: Evolucao de um AC

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

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