Escolar Documentos
Profissional Documentos
Cultura Documentos
Criptografia
Arte ou ciência de escrever de forma escondida
do Gr. kryptó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
1
Criptografia: terminologia (2/2)
Cifra
Técnica concreta de criptografia
Operação de uma cifra
Cifra: texto em claro criptograma
Decifra: criptograma texto em claro
decifra()
© André Zúquete Segurança Informática e nas Organizações 3
Criptanálise: objectivos
2
Ataques de criptanálise:
Aproximações
Só com criptograma
Texto conhecido
Texto escolhido
cifra()
decifra()
3
Cifras: tipos básicos (1/3)
Transposição O
T
O
O
I
N
B
A
H
A
4
Cifras: tipos básicos (3/3):
Polialfabé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
5
Criptanálise de um criptograma Vigenère:
Exemplo (1/2)
Texto:
Eles não sabem que o sonho é uma constante da vida
tão concreta e definida como outra coisa qualquer,
como esta pedra cinzenta em que me sento e descanso,
como este ribeiro manso, em serenos sobressaltos
como 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:
C oi nc i de nc e i n de x
25
20
15
10
0
0 10 20 30 40 50 60 70 80 90 100 110 120 130 140 150 160 170 180
T r a ns l a t i on s hi f t
6
Máquinas de rotores (1/3)
7
Máquinas de rotores (3/3)
Enigma
8
Criptografia: 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)
XOR
#K ≥ #M
Cifra de Vernam texto
Chave aleatória
Criptograma
infinita
One-time pad
XOR
© André Zúquete Segurança Informática e nas Organizações 17
9
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
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
© André Zúquete Segurança Informática e nas Organizações 20
10
Criptografia: aproximações práticas (4/4)
11
Cifras contínuas (2/2)
Lorenz (Tunny)
12
Criptanálise de Tunny em Bletchley Park (1/3)
13
Criptanálise de Tunny em Bletchley Park (3/3):
Colossus
A estrutura da cifra foi deduzida a
da chave contínua capturada
Mas a decifra dependia do
conhecimento da posição
inicial dos rotores
Os alemães começaram a usar Chris Monk, www.flickr.com
Colossus
Conceção começou em março de 1943
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)
14
Cifras 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
15
DES (Data Encryption Standard) (1/4)
DES (2/4)
16
DES (3/4) Substitutions (S-boxes),
permutations (P-Boxes),
Permutations Feistel expansions,
& iterations networks compressions
L1 R1
KS16 S-Box i
L16 R16 Li Ri P-box
inverso PI
output (64)
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
17
Cifras 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)
Sn-1 S1 S0
Ck
Cn-1 C2 C1 C0
18
Geradores com composições de LFSR:
A5/1 (GSM)
19 bits
Maioria
LFSR1
22 bits
Ck se = à
Maioria
maioria
LFSR2
23 bits
LFSR3
19
Confidencialidade c/ cifras assimétricas
KX (pública) Mr. X
KX-1 (privada)
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
Mr. X KX (pública)
KX-1 (privada)
20
Cifras assimétricas (por blocos)
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
d
C = P 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
21
RSA: exemplo
ElGamal
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)
Problema
O valor de k precisa de ser secreto
O seu conhecimento revela x!
22
Randomização de cifras com chave pública
23
Aplicação das cifras:
Modos 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 ...
Modos de cifra:
ECB e CBC
Electronic Code Book Cipher Block Chaining
Ci = EK(Ti) Ci = EK(Ti ⊕ Ci-1)
Ti = DK(Ci) Ti = DK(Ci ) ⊕ Ci-1
T1 T2 Tn T1 T2 Tn-1 Tn
EK EK EK EK
IV EK EK EK EK EK
C1 C2 Cn
C1 C2 Cn-1 Cn
DK DK DK DK
IV DK DK DK DK DK
T1 T2 Tn
T1 T2 Tn-1 Tn
24
Modos de cifra ECB/CBC:
Problemas causados por sub-
sub-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 M
X = B – (M mod B) B
X octetos extra, com o valor X
PKCS #5 X X X
Igual ao PKCS #7 para B = 8
Processamento diferente dos últimos blocos X
Introduz complexidade
EK EK EK EK EK
EK
EK DK DK
DK DK
Tn Tn-1 Tn C’
Tn-1 Tn C’
© André Zúquete 50
Segurança Informática e nas Organizações
25
Modos de cifra:
n-bit OFB (Output Feedback) Realimentação
Ci = Ti ⊕ EK(Si)
Ti = Ci ⊕ EK(Si)
Si = f(Si-1, EK(Si-1)) IV
S0 = IV
T1 Tn K E
IV EK EK EK
C1 Cn
n
IV EK EK EK
T C
T1 Tn
Modos de cifra:
n-bit CFB (Ciphertext Feedback)
Ci = Ti ⊕ EK(Si)
Ti = Ci ⊕ EK(Si)
Si = f(Si-1, Ci) IV
S0 = IV
T1 Tn
K E
IV EK EK EK
C1 Cn
n
IV EK EK EK
T1 Tn
T C
Realimentação
© André Zúquete Segurança Informática e nas Organizações 52
26
Modos de cifra:
n-bit CTR (Counter) Realimentação
Ci = Ti ⊕ EK(Si)
Ti = Ci ⊕ EK(Si)
Si = Si-1+1 IV +1
S0 = IV
T1 Tn K E
+1 +1
IV EK EK EK
C1 Cn
n
+1 +1
IV EK EK EK
T C
T1 Tn
Modos de cifra:
Comparação
ECB CBC OFB CFB CTR
Não exposição padrões
contador
Confusão na entrada da cifra
secreto
Mesma chave para mensagens outro IV
outro IV outro IV
diferentes (contador)
Dificuldade de alteração (...)
Pré-processamento
Paralelização com pré-
decifra decifra
Acesso aleatório uniforme processam.
alguns
bloco
Propagação de erros bits
seguinte
seguintes
perda de
Capacidade de recuperar a perda de perda de
múltiplos
sincronização blocos blocos
de n-bits
© André Zúquete Segurança Informática e nas Organizações 54
27
Modos de cifra:
Reforç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 )
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
28
T1 Tn
Funções de síntese
(digest)
IV
Aproximações
síntese
Difusão e confusão em funções de compressão
Construção Merkle-Damgård
Compressão iterativa Função de
Padding com o comprimento compressão
29
Assinaturas 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: infoKx
D(Kx, Ax(doc)) ≡ digest(doc + info)
wikipedia, http://en.wikipedia.org/wiki/Digital_signature
© André Zúquete Segurança Informática e nas Organizações 60
30
Assinatura digital num e-
e-mail:
Conteú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?= <andre.zuquete@ua.pt>
Reply-To: andre.zuquete@ua.pt
Organization: IEETA / UA
MIME-Version: 1.0
To: =?ISO-8859-1?Q?Andr=E9_Z=FAquete?= <andre.zuquete@ua.pt>
Subject: Teste
Content-Type: multipart/signed; protocol="application/x-pkcs7-signature"; micalg=sha1; boundary="------------ms050405070101010502050101"
--------------ms050405070101010502050101
Content-Type: multipart/mixed;
boundary="------------060802050708070409030504"
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--
31
Assinaturas à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
32