This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Cifra de Vigenère (ou quadrado de Vigenère)Cifra de Vigenère (ou quadrado de Vigenère)Cifra de Vigenère (ou quadrado de Vigenère)Cifra de Vigenère (ou quadrado de Vigenère)a b c d e f g h i j k l m n o p q r s t u v w x y z
a A B C D E F G H I J K L M N O P Q R S T U V W X Y Z
b B C D E F G H I J K L M N O P Q R S T U V W X Y Z A
c C D E F G H I J K L M N O P Q R S T U V W X Y Z A B
d D E F G H I J K L M N O P Q R S T U V W X Y Z A B C
e E F G H I J K L M N O P Q R S T U V W X Y Z A B C D
f F G H I J K L M N O P Q R S T U V W X Y Z A B C D E
g G H I J K L M N O P Q R S T U V W X Y Z A B C D E F
h H I J K L M N O P Q R S T U V W X Y Z A B C D E F G
i I J K L M N O P Q R S T U V W X Y Z A B C D E F G H
j J K L M N O P Q R S T U V W X Y Z A B C D E F G H I
k K L M N O P Q R S T U V W X Y Z A B C D E F G H I J
l L M N O P Q R S T U V W X Y Z A B C D E F G H I J K
m M N O P Q R S T U V W X Y Z A B C D E F G H I J K L
n N O P Q R S T U V W X Y Z A B C D E F G H I J K L M
o O P Q R S T U V W X Y Z A B C D E F G H I J K L M N
p P Q R S T U V W X Y Z A B C D E F G H I J K L M N O
q Q R S T U V W X Y Z A B C D E F G H I J K L M N O P
r R S T U V W X Y Z A B C D E F G H I J K L M N O P Q
s S T U V W X Y Z A B C D E F G H I J K L M N O P Q R
t T U V W X Y Z A B C D E F G H I J K L M N O P Q R S
u U V W X Y Z A B C D E F G H I J K L M N O P Q R S T
v V W X Y Z A B C D E F G H I J K L M N O P Q R S T U
w W X Y Z A B C D E F G H I J K L M N O P Q R S T U V
x X Y Z A B C D E F G H I J K L M N O P Q R S T U V W
y Y Z A B C D E F G H I J K L M N O P Q R S T U V W X
z Z A B C D E F G H I J K L M N O P Q R S T U V W X Y
� Exemplo da cifra da letra M com a chave S, originando o criptograma E
Criptanálise de um criptograma Vigenère:Criptanálise de um criptograma Vigenère:Criptanálise de um criptograma Vigenère:Criptanálise de um criptograma Vigenère:Exemplo (1/2)Exemplo (1/2)Exemplo (1/2)Exemplo (1/2)
� Texto:Eles não sabem que o sonho é uma constante da vidatão concreta e definida como outra coisa qualquer,como esta pedra cinzenta em que me sento e descanso,como este ribeiro manso, em serenos sobressaltoscomo estes pinheiros altos
� Cifra com o quadrado de Vigenère e chave “poema”texto elesnaosabemqueosonhoeumaconstantedavidataoconcretaedefinida
Criptanálise de um criptograma Vigenère:Criptanálise de um criptograma Vigenère:Criptanálise de um criptograma Vigenère:Criptanálise de um criptograma Vigenère:Exemplo (2/2)Exemplo (2/2)Exemplo (2/2)Exemplo (2/2)
Máquinas de rotores (2/3)Máquinas de rotores (2/3)Máquinas de rotores (2/3)Máquinas de rotores (2/3)
� As máquinas de rotores concretizam cifras polialfabéticas complexas� Cada rotor efetua uma permutação do alfabeto
� Que consiste num conjunto de substituições� A posição do rotor concretiza um alfabeto de substituição� A rotação de um rotor concretiza uma cifra polialfabética� Acumulando vários rotores em sequência e rodando-os de forma
diferenciada consegue-se uma cifra polialfabética complexa� A chave de cifra é:
� O conjunto de rotores usado� A ordem relativa dos rotores� A posição de avanço do rotor seguinte� A posição original dos rotores
� Rotores simétricos (bidirecionais)permitem decifras usando cifras duplas� Usando um disco refletor (meio-rotor)
� Teoricamente seguras vs. seguras na prática� Uso teórico ≠ exploração prática� Práticas incorretas podem comprometer boas cifras
� Exemplo: reutilização de one-time-pads� Cifras seguras na prática
� A segurança é assegurada pela dificuldade computacional de realizar a criptanálise
� Têm uma segurança baseada em limites razoáveis:� Custo de uma solução técnica de criptanálise� Infraestrutura reservada para a criptanálise� Tempo útil de criptanálise
� Mistura de uma chave contínua (keystream) com o texto ou criptograma� Chave contínua aleatória (cifra de Vernam, com one-time pad)� Chave contínua pseudoaleatória (produzida por gerador)
� Função de mistura invertível� e.g. XOR bit a bit� C = P ⊕ ks P = C ⊕ ks
� Cifra polialfabética� Cada símbolo da chave contínua define um alfabeto
� Uma chave contínua pode ser infinita mas periódica� O período depende do gerador
� Questões de segurança prática� As chaves contínuas não devem ser reutilizadas
� Caso contrário, a soma de criptogramas produz a soma de textosC1 = P1 ⊕ Ks, C2 = P2 ⊕ Ks � C1 ⊕ C2 = P1 ⊕ P2
� O comprimento do texto deverá ser inferior ao período de Ks� A exposição da chave contínua é total caso se conheça o texto� A repetição de ciclos facilita a criptanálise se se conhecer o
período e amostras do texto� Tem que existir controlo de integridade
� Não há difusão!� É fácil alterar de forma determinística o texto cifrado
Criptanálise de Tunny em Bletchley Park (1/3)Criptanálise de Tunny em Bletchley Park (1/3)Criptanálise de Tunny em Bletchley Park (1/3)Criptanálise de Tunny em Bletchley Park (1/3)
� A estrutura da máquina Lorenz não era conhecida� Só no final da guerra a conseguiram observar� Sabiam que ela existia porque intercetavam
comunicações cifradas usando símbolos de 5 bits� Usando o código de 32 símbolos de Baudot em vez do
Criptanálise de Tunny em Bletchley Park (2/3)Criptanálise de Tunny em Bletchley Park (2/3)Criptanálise de Tunny em Bletchley Park (2/3)Criptanálise de Tunny em Bletchley Park (2/3)
� O erro (30 de agosto de 1941)� Um operador alemão tinha uma grande mensagem para enviar (~4,000 caracteres)
� Configurou a sua Lorenz e enviou um indicador de 12 letras (posição inicial dos rotores) para o recetor
� Depois de ter escrito ~4,000 caracteres, manualmente, recebeu do recetor “envie outra vez”
� O operador emissor recolocou a sua Lorenz na mesma posição inicial� Mesma chave contínua! Completamente proibido!
� O emissor recomeçou o envio da mensagem, manualmente� Mas escreveu algo ligeiramente diferente!
� A descoberta� A mensagem começava com um texto padrão: SPRUCHNUMMER — número de mensagem
� Na primeira vez o operador escreveu S P R U C H N U M M E R� Na segunda vez escreveu S P R U C H N R� Assim, imediatamente após o N os dois criptogramas eram diferentes!
� As mensagens foram completamente decifradas por John Tiltman, em Bletchley Park, usando combinações aditivas dos criptogramas (chamados Depths) � A segunda mensagem era cerca de 500 caracteres mais curta que a primeira
� Assim se conseguiu obter, pela 1ª vez, um exemplar longo de uma chave contínua Lorenz� Tiltman ainda não sabia como a Lorenz operava, apenas sabia que o que tinha era o
Criptanálise de Tunny em Bletchley Park (3/3):Criptanálise de Tunny em Bletchley Park (3/3):Criptanálise de Tunny em Bletchley Park (3/3):Criptanálise de Tunny em Bletchley Park (3/3):ColossusColossusColossusColossus
� A estrutura da cifra foi deduzida ada chave contínua capturada� Mas a decifra dependia do
conhecimento da posiçãoinicial dos rotores
� Os alemães começaram a usarnúmeros para definir o estado inicial dos rotores� Bill Tutte desenvolveu um método para o encontrar� A máquina Colossus foi desenvolvida para o aplicar
� Colossus� Conceção começou em março de 1943� O Colossus Mark 1 (1500 válvulas) operacional em jan. de 1944� Reduziu o tempo de criptanálise de semanas para horas
� 1970: necessidade de uma cifra padrão que para a sociedade civil
� 1972: NBS abre um concurso para uma nova cifra com os seguintes requisitos:� Alto nível de segurança� Completamente especificado, fácil de perceber� Algoritmo público
� secretismo dependente apenas das chaves� Multiusos� Economicamente realizável em dispositivos eletrónicos � Eficiente� Suscetível de validação� Suscetível de exportação
Geradores com composições de LFSR:Geradores com composições de LFSR:Geradores com composições de LFSR:Geradores com composições de LFSR:A5/1 (GSM)A5/1 (GSM)A5/1 (GSM)A5/1 (GSM)
� Dificuldade de factorização de grandes números� Dificuldade de cálculo de logaritmos discretos
� Operações e chaves� K = (e, n) K-1 = (d, n)� C = Pe mod n P = Cd mod n� C = Pd mod n P = Ce mod n
� Escolha dos valores das chaves� n de grande dimensão (centenas ou milhares de bits)� n = p × q p e q primos, de grande dimensão� Escolher e coprimo de (p-1)×(q-1)� Procurar um d tal que e×d ≡ 1 mod (p-1)×(q-1)� Não se consegue deduzir d a partir de e ou de n
� Publicado por El Gamal em 1984� Semelhante ao RSA
� Mas baseado apenas na dificuldade de cálculo de logaritmos discretos
� Uma variante é muito usada em assinaturas digitais� DSA (Digital Signature Algorithm)� US Digital Signature Standard (DSS)
� Operações e chaves (para assinaturas)� β = αx mod p K = (β, α, p) K-1 = (x, α, p)� k aleatório, k×k-1 ≡ 1 mod (p-1)� Assinatura de M: (γ,δ) γ = αk mod p δ = k-1 (M - xγ) mod (p-1)� Validação da assinatura de M: βγγδ ≡ αM (mod p)
� Problema� O valor de k precisa de ser secreto� O seu conhecimento revela x!
23
Randomização de cifras com chave públicaRandomização de cifras com chave públicaRandomização de cifras com chave públicaRandomização de cifras com chave pública
� O resultado de uma cifra com chave pública não deverá ser determinístico (previsível)� N cifras do mesmo valor, coma mesma chave, devem produzir N resultados diferentes
� Objetivo: impedir a descoberta de valores cifrados por tentativa e erro
� Técnicas� Concatenação do valor a cifrar com dois valores
� Um fixo (para controlo de erros)� Um aleatório (para randomização)
Randomização de cifras com chave pública:Randomização de cifras com chave pública:Randomização de cifras com chave pública:Randomização de cifras com chave pública:OEAP (OEAP (OEAP (OEAP (Optimal Asymmetric Encryption PaddingOptimal Asymmetric Encryption PaddingOptimal Asymmetric Encryption PaddingOptimal Asymmetric Encryption Padding))))
Modos de cifra ECB/CBC:Modos de cifra ECB/CBC:Modos de cifra ECB/CBC:Modos de cifra ECB/CBC:Problemas causados por subProblemas causados por subProblemas causados por subProblemas causados por sub----blocos blocos blocos blocos
� Os modos de cifra ECB e CBC requerem entradas alinhadas ao bloco� Sub-blocos terminais precisam de um tratamento especial
� Alternativas� Alinhamento com excipiente (padding)
� No último bloco, excipiente facilmente identificável� PKCS #7
� X = B – (M mod B)� X octetos extra, com o valor X
� PKCS #5� Igual ao PKCS #7 para B = 8
� Processamento diferente dos últimos blocos� Introduz complexidade
Modos de cifra ECB/CBC:Modos de cifra ECB/CBC:Modos de cifra ECB/CBC:Modos de cifra ECB/CBC:Tratamento especial para subTratamento especial para subTratamento especial para subTratamento especial para sub----blocosblocosblocosblocos
� Aproximações� Difusão e confusão em funções de compressão� Construção Merkle-Damgård
� Compressão iterativa� Padding com o comprimento
� Algoritmos mais comuns� MD5 (128 bits)
� Já não é seguro! É fácil descobrir colisões!� SHA-1 (Secure Hash Algorithm, 160 bits)
� Ainda não se conhecem colisões (por enquanto)� Não se conhece nenhuma forma de as gerar (por enquanto)
� Outros� SHA-2, aka SHA-256/SHA-512, SHA-3, etc.
Funções de sínteseFunções de sínteseFunções de sínteseFunções de síntese((((digestdigestdigestdigest))))
IV
T1
síntese
Tn
Código de autenticação de mensagemCódigo de autenticação de mensagemCódigo de autenticação de mensagemCódigo de autenticação de mensagem((((Message Authentication Code Message Authentication Code Message Authentication Code Message Authentication Code , MAC), MAC), MAC), MAC)� Síntese gerada com recurso a uma chave
� Só os conhecedores da chave conseguem gerar/validar o MAC� Aproximações:
� Cifrando uma síntese normal� Por exemplo, com uma cifra simétrica por blocos
� Usando uma função chaveada, realimentação e propagação de erros� ANSI X9.9 (ou DES-MAC) com DES CBC (64 bits)
� Usando uma chave nos parâmetros da função� Keyed-MD5 (128 bits)
MD5(K, keyfill, texto, K, MD5fill)� Construção HMAC (dimensão da função de síntese usada)
H(K, opad, H(K, ipad, texto)) ipad = 0x36 B vezesopad = 0x5C B vezesHMAC-MD5, HMAC-SHA, etc.
Assinatura digital num eAssinatura digital num eAssinatura digital num eAssinatura digital num e----mail:mail:mail:mail:Conteúdos MIME multiparte, assinatura c/ certificadosConteúdos MIME multiparte, assinatura c/ certificadosConteúdos MIME multiparte, assinatura c/ certificadosConteúdos MIME multiparte, assinatura c/ certificados