criptografia - sweetsweet.ua.pt/andre.zuquete/aulas/sio/14-15/docs/3-cryptography.pdf ·...
TRANSCRIPT
1
© André Zúquete Segurança Informática e nas Organizações 1
CriptografiaCriptografiaCriptografiaCriptografia
© André Zúquete Segurança Informática e nas Organizações 2
Criptografia: terminologia (1/2)Criptografia: terminologia (1/2)Criptografia: terminologia (1/2)Criptografia: terminologia (1/2)
� Criptografia� Arte ou ciência de escrever de forma escondida
� do Gr. kryptós, oculto + graph, r. de graphein, escrever� Serve para garantir a privacidade da informação� Esteganografia
� do Gr. steganós, oculto + graph, r. de graphein, escrever� Criptanálise
� Arte ou ciência de violar sistemas criptográficos ou informação criptografada
� Criptologia� Criptografia + criptanálise
2
© André Zúquete Segurança Informática e nas Organizações 3
Criptografia: terminologia (2/2)Criptografia: terminologia (2/2)Criptografia: terminologia (2/2)Criptografia: terminologia (2/2)
� Cifra� Técnica concreta de criptografia
� Operação de uma cifraCifra: texto em claro � criptogramaDecifra: criptograma � texto em claro
Algoritmo: modo de transformação de dadosChave: parâmetro do algoritmo
cifra()
Criptogramatexto
decifra()
Chave(s)
© André Zúquete Segurança Informática e nas Organizações 4
Criptanálise: objectivosCriptanálise: objectivosCriptanálise: objectivosCriptanálise: objectivos
� Obtenção do texto original� Relativo a um criptograma
� Obtenção de uma chave de cifra� Ou de uma equivalente
� Obtenção do algoritmo de cifra� Ou de um equivalente� Normalmente os algoritmos não são secretos, mas
há exceções:� Lorenz, A5 (GSM), RC4, Crypto-1 (Mifare)� Algoritmos para DRM (Digital Rights Management)� Engenharia reversa normalmente revela-os
3
© André Zúquete Segurança Informática e nas Organizações 5
Ataques de criptanálise:Ataques de criptanálise:Ataques de criptanálise:Ataques de criptanálise:AproximaçõesAproximaçõesAproximaçõesAproximações
cifra()
criptogramatexto
decifra()
chave(s)
Só com criptograma
Texto conhecido
Texto escolhido
© André Zúquete Segurança Informática e nas Organizações 6
Cifras: evolução da tecnologiaCifras: evolução da tecnologiaCifras: evolução da tecnologiaCifras: evolução da tecnologia
� Manuais� Algoritmos de substituição
ou transposição� Mecânicas
� A partir do Séc. XIX� Máquina Enigma� M-209 Converter
� Algoritmos de substituição ou transposição
� Informáticas� Surgem com o uso dos
computadores� Algoritmos de substituição
mais complexos� Algoritmos matemáticos
4
© André Zúquete Segurança Informática e nas Organizações 7
Cifras: tipos básicos (1/3)Cifras: tipos básicos (1/3)Cifras: tipos básicos (1/3)Cifras: tipos básicos (1/3)
� Transposição� O texto original é “baralhado”
ooibh tonaa erard xilao tgel
� Permutações intra-blocos(13524) � pruem tceao snrit alcbo os
(25413) � eumpr aeotc irtsn bcoal so
� Substituição� Cada símbolo original é substituído por outro
� No passado eram letras, algarismos e pontuação� Atualmente os símbolos são blocos de bits
� Tipos de substituição� Monoalfabética (um�um)� Polialfabética (vários um�um)� Homofónica (um�muitos)
O O I B H
T O N A A
E R A R D
X I L A O
T G E L
© André Zúquete Segurança Informática e nas Organizações 8
Cifras: tipos básicos (2/3):Cifras: tipos básicos (2/3):Cifras: tipos básicos (2/3):Cifras: tipos básicos (2/3):MonoalfabéticasMonoalfabéticasMonoalfabéticasMonoalfabéticas
� Usam apenas um alfabeto de substituição� Com um número de elementos #A
� Exemplos� Aditivas (ou de translação)
� cripto-letra = (letra + chave) mod #A� letra = (cripto-letra – chave) mod #A� Número de chaves efectivas = #A� Cifra de César (ROT-x)
� Com frase-chaveABCDEFGHIJKLMNOPQRSTUVWXYZ
QTUWXYZCOMFRASEHVBDGIJKLNP
� Número de chaves efectivas = #alfabeto ! � 26! ≈ 288
� Problemas� Reproduzem padrões do texto original
� Letras, digramas, trigramas, etc.� A análise estatística facilita a criptanálise
� “The Gold Bug”, Edgar Alan Poe
53‡‡†305))6*;4826)4‡.)
4‡);806*;48†860))85;1‡
(;:‡*8†83(88)5*†;46(;8
8*96*?;8)*‡(;485);5*†2
:*‡(;4956*2(5*—4)88*;4
069285);)6†8)4‡‡;1(‡9;
48081;8:8‡1;48†85;4)48
5†528806*81(‡9;48;(88;
4(‡?34;48)4‡;161;:188;
‡?;
a good glass in the
bishop's hostel in the
devil's seat fifty-one
degrees and thirteen
minutes northeast and
by north main branch
seventh limb east side
shoot from the left eye
of the death's-head a
bee line from the tree
through the shot forty
feet out
5
© André Zúquete Segurança Informática e nas Organizações 9
Cifras: tipos básicos (3/3):Cifras: tipos básicos (3/3):Cifras: tipos básicos (3/3):Cifras: tipos básicos (3/3):PolialfabéticasPolialfabéticasPolialfabéticasPolialfabéticas
� Usam N alfabetos de substituição� Têm período N
� Exemplo� Cifra de Vigenère
� Problemas� Conhecido o período, podem ser criptanalisadas tal como
as monoalfabéticas� O período pode ser descoberto usando estatística� Método de Kasiski
� Factorização de distâncias entre blocos iguais do criptograma� Índice de coincidência
� Factorização de deslocamentos relativos que produzem mais coincidências na sobreposição do criptograma
© André Zúquete Segurança Informática e nas Organizações 10
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
6
© André Zúquete Segurança Informática e nas Organizações 11
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
chave poemapoemapoemapoemapoemapoemapoemapoemapoemapoemapoemapoema
criptograma tzienpcwmbtaugedgszhdsyyarcretpbxqdpjmpaiosoocqvqtpshqfxbmpa
� Teste de Kasiski� Com o texto acima:
� Com o poema completo:
© André Zúquete Segurança Informática e nas Organizações 12
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)
� Índice de coincidência (c/ poema completo)
C oi nc i de nc e inde x
0
5
10
15
20
25
0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180
T r ansl at i on shi f t
7
© André Zúquete Segurança Informática e nas Organizações 13
MáquinasMáquinasMáquinasMáquinas de de de de rotoresrotoresrotoresrotores (1/3)(1/3)(1/3)(1/3)
David J Morgan, www.flickr.com
© André Zúquete Segurança Informática e nas Organizações 14
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)
Sarah Witherby, www.flickr.com
8
© André Zúquete Segurança Informática e nas Organizações 15
Máquinas de rotores (3/3)Máquinas de rotores (3/3)Máquinas de rotores (3/3)Máquinas de rotores (3/3)
� Operação recíproca com um reflector� O operador emissor carrega em “A” (o texto em claro) e
obtém “Z” como criptograma, o qual é transmitido� O operador receptor carrega em “Z” (o criptograma) e
obtém “A” como texto em claro� Uma letra nunca pode ser cifrada para si própria!
© André Zúquete Segurança Informática e nas Organizações 16
EnigmaEnigmaEnigmaEnigma
� Máquina de rotores usada pelosAlemães na 2ª GG
� Originalmente apresentada em 1919� Enigma I, com 3 rotores
� Foram usadas diversas variantes� Com diferentes números de rotores� Com cablagem para permutar alfabetos
� Seleções de chaves distribuídas em livros de códigos
9
© André Zúquete Segurança Informática e nas Organizações 17
Criptografia: aproximações teóricasCriptografia: aproximações teóricasCriptografia: aproximações teóricasCriptografia: aproximações teóricas
� Espaço de texto� Número de combinações de texto diferentes (M)
� Espaço do criptograma� Número de combinações de criptograma diferentes (C)
� Espaço das chaves� Número de chaves diferentes para um algoritmo de cifra (K)
� Cifra perfeita� Dado cj ∈ C, p(mi, kj) = p(mi)� #K ≥ #M� Cifra de Vernam
� One-time pad
XOR
Criptogramatexto
XOR
Chave aleatória
infinita
© André Zúquete Segurança Informática e nas Organizações 18
Criptografia: aproximações práticas (1/4)Criptografia: aproximações práticas (1/4)Criptografia: aproximações práticas (1/4)Criptografia: aproximações práticas (1/4)
� 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
10
© André Zúquete Segurança Informática e nas Organizações 19
Criptografia: aproximações práticas (2/4)Criptografia: aproximações práticas (2/4)Criptografia: aproximações práticas (2/4)Criptografia: aproximações práticas (2/4)
� 5 critérios de Shannon� A quantidade de secretismo oferecida
� e.g o comprimento da chave� A complexidade na escolha das chaves
� e.g. geração da chave, deteção de chaves fracas� A simplicidade da realização� A propagação de erros
� Relevante em ambientes onde podem surgir erros� e.g. canais de comunicação ruidosos
� A dimensão do criptograma� Relativamente aos respetivos textos originais
© André Zúquete Segurança Informática e nas Organizações 20
Criptografia: aproximações práticas (3/4)Criptografia: aproximações práticas (3/4)Criptografia: aproximações práticas (3/4)Criptografia: aproximações práticas (3/4)
� Confusão� Complexidade na relação entre o texto, a chave e o
criptograma� Os bits resultantes (criptograma) devem depender dos bits
de entrada (texto e chave) de um forma complexa
� Difusão� Alteração de grandes porções do criptograma em
função de uma pequena alteração do texto� Se um bit de texto se alterar, então o criptograma deverá
mudar substancialmente, de uma forma imprevisível e pseudoaleatória
� Efeito de avalanche
11
© André Zúquete Segurança Informática e nas Organizações 21
Criptografia: aproximações práticas (4/4)Criptografia: aproximações práticas (4/4)Criptografia: aproximações práticas (4/4)Criptografia: aproximações práticas (4/4)
� Assumir sempre o pior caso� O criptanalista conhece o algoritmo
� A segurança está na chave� O criptanalista possui grande número de criptogramas gerados com um algoritmo e chave� Os criptogramas não são secretos
� Os criptanalista conhecem parte dos textos originais� É normal haver alguma noção do texto original� Ataques com texto conhecido ou escolhido
© André Zúquete Segurança Informática e nas Organizações 22
Cifras contínuas (Cifras contínuas (Cifras contínuas (Cifras contínuas (streamstreamstreamstream) (1/2)) (1/2)) (1/2)) (1/2)
� 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
mistura criptogramatexto
chave contínua gerador chave
mistura-1
gerador
texto
12
© André Zúquete Segurança Informática e nas Organizações 23
Cifras contínuas (2/2)Cifras contínuas (2/2)Cifras contínuas (2/2)Cifras contínuas (2/2)
� 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
© André Zúquete Segurança Informática e nas Organizações 24
Lorenz (Lorenz (Lorenz (Lorenz (TunnyTunnyTunnyTunny))))
� Máquina de cifra contínua com 12 rotores� Usada pelo alto-comando Alemão durante a 2ª GG� Concretiza uma cifra contínua
� Cada símbolo de 5 bits é misturado com 5 chaves contínuas� Operação
� 5 rotores rodados regularmente (S)� 5 rotores rodados irregularmente (K)
� Política “todos ou nenhuns”� 2 rotores de controlo (M)
� Para rodar os rotores K� O número de posições em cada rotor
é coprimo com os demais
13
© André Zúquete Segurança Informática e nas Organizações 25
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
código Morse
© André Zúquete Segurança Informática e nas Organizações 26
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
resultado da sua operação!
14
© André Zúquete Segurança Informática e nas Organizações 27
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
Chris Monk, www.flickr.com
© André Zúquete Segurança Informática e nas Organizações 28
Cifras modernas: tiposCifras modernas: tiposCifras modernas: tiposCifras modernas: tipos
� Quanto à operação� Por blocos (monoalfabéticas)� Contínuas (polialfabéticas)
� Quanto ao tipo de chave� Simétricas (chave secreta ou segredo partilhado)
� Potencialmente sujeitas a caução (escrowing)� Assimétricas (chave pública)
� CombinatóriaPor blocos Contínuas
Simétricas
Assimétricas
15
© André Zúquete Segurança Informática e nas Organizações 29
Cifras simétricasCifras simétricasCifras simétricasCifras simétricas
� Chave secreta� Partilhada por 2 ou mais interlocutores
� Permitem� Confidencialidade para todos os conhecedores da chave� Autenticação de mensagens (cifra por blocos)
� Vantagens� Desempenho (normalmente muito eficientes)
� Desvantagens� N interlocutores, 2 a 2 secretamente � N x (N-1)/2 chaves
� Problemas� Distribuição de chaves
© André Zúquete Segurança Informática e nas Organizações 30
Cifras simétricas por blocosCifras simétricas por blocosCifras simétricas por blocosCifras simétricas por blocos
� Aproximações usadas� Blocos de grande dimensão
� 64, 128, 256, etc.� Difusão, confusão
� Permutação, substituição, expansão, compressão� Feistel Networks
� Li=Ri-1 Ri=Li-1⊕f(Ri-1,Ki)� Iterações
� Algoritmos mais usados� DES (Data Enc. Stand.), D=64; K=56� IDEA (Int. Data Enc. Alg.), D=64; K=128� AES (Adv. Enc. Stand., aka Rijndael), D=128, K=128, 192, 256� Outros (Blowfish, CAST, RC5, etc.)
Li Ri
Li-1 Ri-1
f(Ki)
16
© André Zúquete Segurança Informática e nas Organizações 31
DES (DES (DES (DES (Data Encryption StandardData Encryption StandardData Encryption StandardData Encryption Standard) (1/4)) (1/4)) (1/4)) (1/4)
� 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
© André Zúquete Segurança Informática e nas Organizações 32
DES (2/4)DES (2/4)DES (2/4)DES (2/4)
� 1974: novo concurso� Proposta baseada no Lucifer da IBM� Blocos de 64 bits� Chaves de 56 bits, subchaves de 48 bits� Difusão, confusão
� Redes de Feistel� Permutação, substituição, expansão, compressão� 16 iterações
� Vários modos de funcionamento� ECB (Electronic Code Book), CBC (Cypher Block Chaining)� OFB (Output Feedback Mode), CFB (Cypher Feedback Mode)
� 1976: adotado nos EU como padrão federal
17
© André Zúquete Segurança Informática e nas Organizações 33
DES (3/4)DES (3/4)DES (3/4)DES (3/4)
Input (64)
P I
L0 R0
Li Ri
L1 R1
KS1
L16 R16
KS16
inverso PI
output (64)
Li-1 Ri-1
Ri
E + P
S-Box i
K (56)
[i] [i]
C + P
P-box
KSi
Permutations
& iterations
Feistel
networks
Substitutions (S-boxes),
permutations (P-Boxes),
expansions,
compressions
© André Zúquete Segurança Informática e nas Organizações 34
DES: segurança oferecidaDES: segurança oferecidaDES: segurança oferecidaDES: segurança oferecida
� Escolha de chaves� Chaves fracas, semi-fracas e quasi-fracas� Fáceis de identificar
� Ataques conhecidos� Pesquisa exaustiva
� Dimensão das chaves� 56 bits são actualmente insuficientes
� A pesquisa exaustiva é tecnica e economicamente viável� Solução: cifra múltipla
� Cifra dupla não é completamente segura (teoricamente ...)� Cifra tripla: 3DES (Triple-DES)
� Com duas ou três chaves� Chaves equivalentes de 112 ou 168 bits
18
© André Zúquete Segurança Informática e nas Organizações 35
Cifras simétricas contínuasCifras simétricas contínuasCifras simétricas contínuasCifras simétricas contínuas
� Aproximações usadas� Desenho de geradores pseudo-aleatórios seguros
� Baseados em LFSRs� Baseados em cifras por blocos� Outras aproximações (famílias de funções, etc.)
� Normalmente sem sincronização� Normalmente sem possibilidade de acesso aleatório rápido
� Algoritmos mais usados� A5 (GSM)� RC4 (802.11 WEP, etc.)� SEAL (com acesso aleatório rápido)
© André Zúquete Segurança Informática e nas Organizações 36
Linear Feedback Shift Register (LFSR)Linear Feedback Shift Register (LFSR)Linear Feedback Shift Register (LFSR)Linear Feedback Shift Register (LFSR)
� 2n-1 sequências não nulas� Se uma delas tiver período 2n-1 então todas o têm
� Funções de realimentação primitivas� Todas as sequências não nulas têm comprimento 2n - 1
Sn-1 S1 S0
Cn-1 C2 C1 C0
Estado inicial (chave)Função de realimentação
Ck
19
© André Zúquete Segurança Informática e nas Organizações 37
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)
LFSR1
LFSR2
LFSR3
19 bits
22 bits
23 bits
MaioriaCk se = àmaioria
Maioria
© André Zúquete Segurança Informática e nas Organizações 38
Cifras assimétricas (por blocos)Cifras assimétricas (por blocos)Cifras assimétricas (por blocos)Cifras assimétricas (por blocos)
� Par de chaves� Uma privada, pessoal e intransmissível� Um pública
� Permitem� Confidencialidade sem troca de segredos� Autenticação
� De conteúdos (integridade)� De autoria (assinaturas digitais)
� Desvantagens� Desempenho (normalmente pouco eficientes)
� Vantagens� N interlocutores, N pares de chaves
� Problemas� Distribuição de chaves públicas� Tempo de vida dos pares de chaves
20
© André Zúquete Segurança Informática e nas Organizações 39
Confidencialidade c/ cifras assimétricasConfidencialidade c/ cifras assimétricasConfidencialidade c/ cifras assimétricasConfidencialidade c/ cifras assimétricas
� Menos chaves� C = E(K, P) P = D(K-1, C)� Para comunicar confidencialmente com X basta conhecer a chave
pública de X (KX)� Não há autenticação
� X não sabe quem produziu o criptograma� Se KX for efetivamente pública, qualquer um o pôde fazer
KX (pública)
mensagem
KX-1 (privada)
criptograma mensagemcifra decifra
Mr. X
© André Zúquete Segurança Informática e nas Organizações 40
Autenticidade da fonte c/ cifras assimétricasAutenticidade da fonte c/ cifras assimétricasAutenticidade da fonte c/ cifras assimétricasAutenticidade da fonte c/ cifras assimétricas
� O criptograma não pode ser alterado� C = E(K-1, P) P = D(K, C);� Só X conhece a chave KX
-1 com que foi gerado� Não há confidencialidade
� Quem conhecer KX decifra o criptograma� Se KX for verdadeiramente pública, qualquer um o pode fazer
KX (pública)
mensagem
KX-1 (privada)
criptograma mensagemcifra decifra
Mr. X
21
Cifras assimétricas (por blocos)Cifras assimétricas (por blocos)Cifras assimétricas (por blocos)Cifras assimétricas (por blocos)
� Aproximações: complexidade matemática� Cálculo de logaritmos discretos� Factorização de grandes números� Problema da mochila (knapsack)
� Algoritmos mais usados� RSA� ElGamal
� Outras técnicas com chave pública� Diffie-Hellman (negociação de chaves)
© André Zúquete Segurança Informática e nas Organizações 41
© André Zúquete Segurança Informática e nas Organizações 42
RSA (Rivest, Shamir, Adelman)RSA (Rivest, Shamir, Adelman)RSA (Rivest, Shamir, Adelman)RSA (Rivest, Shamir, Adelman)
� Publicado em 1978� Complexidade matemática
� 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
22
© André Zúquete Segurança Informática e nas Organizações 43
RSA: exemploRSA: exemploRSA: exemploRSA: exemplo
� p = 5 q = 11(pequenos números primos)� n = p x q = 55� (p-1)(q-1) = 40
� e = 3� Coprimo de 40
� d = 27� e x d ≡ 1 mod 40
� P = 26 (note que P, C∈[0, n-1])� C = Pe mod n = 263 mod 55 = 31� P = Cd mod n = 3127 mod 55 = 26
© André Zúquete Segurança Informática e nas Organizações 44
ElGamalElGamalElGamalElGamal
� 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)
© André Zúquete Segurança Informática e nas Organizações 45
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))))
© André Zúquete Segurança Informática e nas Organizações 46
24
© André Zúquete Segurança Informática e nas Organizações 47
Aplicação das cifras:Aplicação das cifras:Aplicação das cifras:Aplicação das cifras:Modos de cifraModos de cifraModos de cifraModos de cifra
� Inicialmente propostos para o DES� ECB (Electronic Code Book)� CBC (Cipher Block Chaining)� OFB (Output Feeback Mode)� CFB (Cipher Feedback Mode)
� Podem ser usados com outras cifras� Em princípio ...
� Existem ainda outros modos de cifra� CTR (Counter Mode)
© André Zúquete Segurança Informática e nas Organizações 48
Modos de cifra:Modos de cifra:Modos de cifra:Modos de cifra:ECB e CBCECB e CBCECB e CBCECB e CBC
Electronic Code BookCi = EK(Ti)Ti = DK(Ci)
Cipher Block ChainingCi = EK(Ti ⊕ Ci-1)Ti = DK(Ci ) ⊕ Ci-1
T1 T2 Tn
C1 C2 Cn
EK EK EK EK
DK DK DK DK
T1 T2 Tn
T1 T2 Tn-1 Tn
C1 C2 Cn-1 Cn
EK EK EK EK EK
T1 T2 Tn-1 Tn
DK DK DK DK DK
IV
IV
25
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
© André Zúquete Segurança Informática e nas Organizações 49
X X X
B
X
M
© André ZúqueteSegurança Informática e nas Organizações 50
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
� Cifra contínua � Ciphertext stealing
Cn-1
Tn
Cn
EK
Tn
EK
Cn-1
EK
DK
Tn-1
EK
DK
Tn-1
Cn
Tn
C’
C’
Tn C’
Tn-1
Cn-1
EK EK
Tn-1
DK DK
Cn
Tn
0
0
Tn C’
Cn-2
EK
26
© André Zúquete Segurança Informática e nas Organizações 51
Modos de cifra:Modos de cifra:Modos de cifra:Modos de cifra:nnnn----bit OFB (Output Feedback)bit OFB (Output Feedback)bit OFB (Output Feedback)bit OFB (Output Feedback)
Ci = Ti ⊕ EK(Si)Ti = Ci ⊕ EK(Si)Si = f(Si-1, EK(Si-1))S0 = IV
T C
EK
IV
Realimentação
n
T1
C1
EK EK EK
Tn
Cn
EK EK EK
T1 Tn
IV
IV
© André Zúquete Segurança Informática e nas Organizações 52
Modos de cifra:Modos de cifra:Modos de cifra:Modos de cifra:nnnn----bit CFB (Ciphertext Feedback)bit CFB (Ciphertext Feedback)bit CFB (Ciphertext Feedback)bit CFB (Ciphertext Feedback)
Ci = Ti ⊕ EK(Si)Ti = Ci ⊕ EK(Si)Si = f(Si-1, Ci)S0 = IV
T C
EK
IV
Realimentação
n
T1
C1
EK EK EK
Tn
Cn
T1 Tn
IV
EK EK EKIV
27
© André Zúquete Segurança Informática e nas Organizações 53
Modos de cifra:Modos de cifra:Modos de cifra:Modos de cifra:nnnn----bit CTR (Counter)bit CTR (Counter)bit CTR (Counter)bit CTR (Counter)
Ci = Ti ⊕ EK(Si)Ti = Ci ⊕ EK(Si)Si = Si-1+1S0 = IV
T C
EK
IV
Realimentação
+1
T1
C1
EK EK EK
Tn
Cn
T1 Tn
IV
+1 +1
EK EK EKIV
+1 +1n
© André Zúquete Segurança Informática e nas Organizações 54
Modos de cifra:Modos de cifra:Modos de cifra:Modos de cifra:ComparaçãoComparaçãoComparaçãoComparação
ECB CBC OFB CFB CTR
Não exposição padrões ���� ���� ���� ����
Confusão na entrada da cifra ���� ����contador secreto
Mesma chave para mensagens diferentes
���� ���� outro IV outro IVoutro IV(contador)
Dificuldade de alteração ���� ���� (...)
Pré-processamento ���� ����
Paralelização���� decifra com pré-
processam. decifra ����Acesso aleatório uniforme
Propagação de errosbloco
seguinte
alguns bits
seguintes
Capacidade de recuperar a sincronização
perda de blocos
perda de blocos
perda de múltiplos de n-bits
28
© André Zúquete Segurança Informática e nas Organizações 55
Modos de cifra:Modos de cifra:Modos de cifra:Modos de cifra:Reforço da segurançaReforço da segurançaReforço da segurançaReforço da segurança
� Cifra múltipla� Cifra dupla
� Violável por intromissão em 2n+1 tentativas� Com 2 ou mais blocos de texto conhecido� Usando 2n blocos de memória ...
� Não é (teoricamente) muito mais segura ...� Cifra tripla (EDE)
� Ci = EK1(DK2 (EK3 (Ti))) Pi = DK3(EK2 (DK1 (Ci))� Normalmente usa-se K1=K3
� Se K1=K2=K3 transforma-se numa cifra simples
� Branqueamento (whitening)� Técnica simples e eficiente de introdução de confusão
� Ci = EK(K1 ⊕⊕⊕⊕ Ti ) ⊕⊕⊕⊕ K2 Ti = K1 ⊕⊕⊕⊕ DK(K2 ⊕⊕⊕⊕ Ci )
© André Zúquete Segurança Informática e nas Organizações 56
Funções de síntese (Funções de síntese (Funções de síntese (Funções de síntese (digestdigestdigestdigest))))
� Resultado de dimensão constante com entradas de dimensão variável� Uma espécie de “impressão digital” dos textos
� Resultados muito diferentes para entradas similares� Funções de dispersão criptográficas unidirecionais
� Propriedades relevantes:� Resistência à descoberta de um texto
� Dada uma síntese, é difícil encontrar um texto que o produza� Resistência à descoberta de um 2º texto
� Dado um texto, é difícil encontrar um segundo texto com a mesma síntese� Resistência à colisão
� É difícil encontrar dois textos com a mesma síntese� Paradoxo do aniversário
29
© André Zúquete Segurança Informática e nas Organizações 57
Função de
compressão
� 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.
© André Zúquete Segurança Informática e nas Organizações 58
30
© André Zúquete Segurança Informática e nas Organizações 59
Assinaturas digitaisAssinaturas digitaisAssinaturas digitaisAssinaturas digitais
� Objectivo� Autenticar o conteúdo de um documento
� Garantir a sua integridade� Autenticar o seu assinante
� Assegurar a identidade do criador/originador� Poder assegurar a autenticação perante terceiros
� Os autores genuínos não podem negar a autoria� Não-repúdio
� Aproximações usadas� Cifra de chave pública� Funções de síntese
� Apenas para aumentar o desempenho!� Algoritmos
Assinatura: Ax(doc) = info + E(Kx-1, digest(doc+info))
Verificação: info�KxD(Kx, Ax(doc)) ≡≡≡≡ digest(doc + info)
© André Zúquete Segurança Informática e nas Organizações 60
Diagramas de assinatura e validaçãoDiagramas de assinatura e validaçãoDiagramas de assinatura e validaçãoDiagramas de assinatura e validação
wikipedia, http://en.wikipedia.org/wiki/Digital_signature
31
© André Zúquete Segurança Informática e nas Organizações 61
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
From - Fri Oct 02 15:37:14 2009
[…]
Date: Fri, 02 Oct 2009 15:35:55 +0100
From: =?ISO-8859-1?Q?Andr=E9_Z=FAquete?= <[email protected]>
Reply-To: [email protected]
Organization: IEETA / UA
MIME-Version: 1.0
To: =?ISO-8859-1?Q?Andr=E9_Z=FAquete?= <[email protected]>
Subject: Teste
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------ms050405070101010502050101"
This is a cryptographically signed message in MIME format.
--------------ms050405070101010502050101
Content-Type: multipart/mixed;
boundary="------------060802050708070409030504"
This is a multi-part message in MIME format.
--------------060802050708070409030504
Content-Type: text/plain; charset=ISO-8859-1
Content-Transfer-Encoding: quoted-printable
Corpo do mail
--------------060802050708070409030504—
--------------ms050405070101010502050101
Content-Type: application/x-pkcs7-signature; name="smime.p7s"
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename="smime.p7s"
Content-Description: S/MIME Cryptographic Signature
MIAGCSqGSIb3DQEHAqCAMIACAQExCzAJBgUrDgMCGgUAMIAGCSqGSIb3DQEHAQAAoIIamTCC
BUkwggSyoAMCAQICBAcnIaEwDQYJKoZIhvcNAQEFBQAwdTELMAkGA1UEBhMCVVMxGDAWBgNV
[…]
KoZIhvcNAQEBBQAEgYCofks852BV77NVuww53vSxO1XtI2JhC1CDlu+tcTPoMD1wq5dc5v40
Tgsaw0N8dqgVLk8aC/CdGMbRBu+J1LKrcVZa+khnjjtB66HhDRLrjmEGDNttrEjbqvpd2QO2
vxB3iPTlU+vCGXo47e6GyRydqTpbq0r49Zqmx+IJ6Z7iigAAAAAAAA==
--------------ms050405070101010502050101--
© André Zúquete Segurança Informática e nas Organizações 62
Assinaturas às cegas (com ofuscação)Assinaturas às cegas (com ofuscação)Assinaturas às cegas (com ofuscação)Assinaturas às cegas (com ofuscação)
� Assinaturas digitais em que o assinante “não vê” o que assina� Semelhantes a uma assinatura sobre um envelope fechado com
um documento e papel-químico dentro� Servem para garantir o anonimato e a não alteração da
informação assinada� O assinante X sabe quem lhe pede a assinatura (Y)� X assina T1, mas Y depois recupera a assinatura sobre T2
� T2 não é qualquer, está relacionado com T1
� O requerente pode apresentar T2 assinado por X� Mas não pode alterar T2
� X não consegue associar T2 ao T1 que viu e assinou
32
© André Zúquete Segurança Informática e nas Organizações 63
Assinaturas às cegas de ChaumAssinaturas às cegas de ChaumAssinaturas às cegas de ChaumAssinaturas às cegas de Chaum
� Usa RSA� Ofuscação (blinding)
� Fator de cegamento K aleatório� k × k-1 ≡ 1 (mod N)� m’ = ke × m mod N
� Assinatura normal� Ax (m’) = (m’)d mod N
� Anulação da ofuscação (unblinding)� Ax (m) = k-1 × Ax (m’) mod N