Você está na página 1de 32

Criptografia

© André Zúquete Segurança Informática e nas Organizações 1

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

© André Zúquete Segurança Informática e nas Organizações 2

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

Algoritmo: modo de transformação de dados


Chave: parâmetro do algoritmo
cifra()

texto Chave(s) Criptograma

decifra()
© André Zúquete Segurança Informática e nas Organizações 3

Criptaná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

© André Zúquete Segurança Informática e nas Organizações 4

2
Ataques de criptanálise:
Aproximações

Só com criptograma
Texto conhecido
Texto escolhido

cifra()

texto chave(s) criptograma

decifra()

© André Zúquete Segurança Informática e nas Organizações 5

Cifras: 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

© André Zúquete Segurança Informática e nas Organizações 6

3
Cifras: tipos básicos (1/3)

 Transposição O
T
O
O
I
N
B
A
H
A

 O texto original é “baralhado” E R A R D

ooibh tonaa erard xilao tgel X I L A O


T G E L
 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 (umum)
 Polialfabética (vários umum)
 Homofónica (ummuitos)

© André Zúquete Segurança Informática e nas Organizações 7

Cifras: tipos básicos (2/3):


Monoalfabéticas
 Usam apenas um alfabeto de substituição
 Com um número de elementos #A
53‡‡†305))6*;4826)4‡.)
 Exemplos 4‡);806*;48†860))85;1‡
 Aditivas (ou de translação) (;:‡*8†83(88)5*†;46(;8
8*96*?;8)*‡(;485);5*†2
 cripto-letra = (letra + chave) mod #A :*‡(;4956*2(5*—4)88*;4
 letra = (cripto-letra – chave) mod #A 069285);)6†8)4‡‡;1(‡9;
 Número de chaves efectivas = #A 48081;8:8‡1;48†85;4)48
5†528806*81(‡9;48;(88;
 Cifra de César (ROT-x) 4(‡?34;48)4‡;161;:188;
 Com frase-chave ‡?;
ABCDEFGHIJKLMNOPQRSTUVWXYZ a good glass in the
QTUWXYZCOMFRASEHVBDGIJKLNP bishop's hostel in the
 Número de chaves efectivas = #alfabeto !  26! ≈ 288 devil's seat fifty-one
degrees and thirteen
 Problemas minutes northeast and
 Reproduzem padrões do texto original by north main branch
seventh limb east side
 Letras, digramas, trigramas, etc. shoot from the left eye
 A análise estatística facilita a criptanálise of the death's-head a
bee line from the tree
 “The Gold Bug”, Edgar Alan Poe through the shot forty
feet out

© André Zúquete Segurança Informática e nas Organizações 8

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

© André Zúquete Segurança Informática e nas Organizações 9

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

© André Zúquete Segurança Informática e nas Organizações 10

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:

 Com o poema completo:

© André Zúquete Segurança Informática e nas Organizações 11

Criptanálise de um criptograma Vigenère:


Exemplo (2/2)
 Índice de coincidência (c/ poema completo)

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

© André Zúquete Segurança Informática e nas Organizações 12

6
Máquinas de rotores (1/3)

David J Morgan, www.flickr.com


© André Zúquete Segurança Informática e nas Organizações 13

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


© André Zúquete Segurança Informática e nas Organizações 14

7
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 15

Enigma

 Máquina de rotores usada pelos


Alemã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

© André Zúquete Segurança Informática e nas Organizações 16

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

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

© André Zúquete Segurança Informática e nas Organizações 18

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

© André Zúquete Segurança Informática e nas Organizações 19

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
© André Zúquete Segurança Informática e nas Organizações 20

10
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 21

Cifras contínuas (stream) (1/2)


chave contínua gerador chave gerador

texto mistura criptograma mistura-1 texto

 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

© André Zúquete Segurança Informática e nas Organizações 22

11
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 textos
C1 = 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 23

Lorenz (Tunny)

 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

© André Zúquete Segurança Informática e nas Organizações 24

12
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 25

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!

© André Zúquete Segurança Informática e nas Organizações 26

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

nú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

© André Zúquete Segurança Informática e nas Organizações 27

Cifras 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ória
Por blocos Contínuas
Simétricas
Assimétricas

© André Zúquete Segurança Informática e nas Organizações 28

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

© André Zúquete Segurança Informática e nas Organizações 29

Cifras simétricas por blocos

 Aproximações usadas Li-1 Ri-1


 Blocos de grande dimensão
 64, 128, 256, etc.
 Difusão, confusão
f(Ki)
 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 Li Ri
 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.)

© André Zúquete Segurança Informática e nas Organizações 30

15
DES (Data Encryption Standard) (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 31

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

© André Zúquete Segurança Informática e nas Organizações 32

16
DES (3/4) Substitutions (S-boxes),
permutations (P-Boxes),
Permutations Feistel expansions,
& iterations networks compressions

Input (64) Ri K (56)


PI Li-1 Ri-1
E+P  [i]  [i]
L0 R0
KSi C+P
KS1

L1 R1

KS16 S-Box i
L16 R16 Li Ri P-box
inverso PI

output (64)

© André Zúquete Segurança Informática e nas Organizações 33

DES: 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

© André Zúquete Segurança Informática e nas Organizações 34

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)

© André Zúquete Segurança Informática e nas Organizações 35

Linear Feedback Shift Register (LFSR)


Função de realimentação Estado inicial (chave)

Sn-1 S1 S0

Ck
Cn-1 C2 C1 C0

 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

© André Zúquete Segurança Informática e nas Organizações 36

18
Geradores com composições de LFSR:
A5/1 (GSM)
19 bits
Maioria
LFSR1

22 bits
Ck se = à
Maioria
maioria
LFSR2

23 bits
LFSR3

© André Zúquete Segurança Informática e nas Organizações 37

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

© André Zúquete Segurança Informática e nas Organizações 38

19
Confidencialidade c/ cifras assimétricas

KX (pública) Mr. X

KX-1 (privada)

mensagem cifra criptograma decifra mensagem

 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

© André Zúquete Segurança Informática e nas Organizações 39

Autenticidade da fonte c/ cifras assimétricas

Mr. X KX (pública)

KX-1 (privada)

mensagem cifra criptograma decifra mensagem

 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

© André Zúquete Segurança Informática e nas Organizações 40

20
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

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

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

© André Zúquete Segurança Informática e nas Organizações 42

21
RSA: 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])


 Pe
C = mod n = 263
mod 55 = 31

d 27
P = C mod n = 31 mod 55 = 26
© André Zúquete Segurança Informática e nas Organizações 43

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)

 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!

© André Zúquete Segurança Informática e nas Organizações 44

22
Randomizaçã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:


OEAP (Optimal Asymmetric Encryption Padding)

© André Zúquete Segurança Informática e nas Organizações 46

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 ...

 Existem ainda outros modos de cifra


 CTR (Counter Mode)
© André Zúquete Segurança Informática e nas Organizações 47

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

© André Zúquete Segurança Informática e nas Organizações 48

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

© André Zúquete Segurança Informática e nas Organizações 49

Modos de cifra ECB/CBC:


Tratamento especial para sub-
sub-blocos
 Cifra contínua  Ciphertext stealing
Tn-1 Tn 0
Tn Tn-1 Tn C’

EK EK EK EK EK
EK

Cn-1 Cn Cn-1 Cn C’ Cn-2 Cn-1 Cn 0

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

© André Zúquete Segurança Informática e nas Organizações 51

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

© André Zúquete Segurança Informática e nas Organizações 53

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 )

© André Zúquete Segurança Informática e nas Organizações 55

Funções de síntese (digest)

 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

© André Zúquete Segurança Informática e nas Organizações 56

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

 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.

© André Zúquete Segurança Informática e nas Organizações 57

Código de autenticação de mensagem


(Message Authentication Code , 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 vezes
opad = 0x5C B vezes
HMAC-MD5, HMAC-SHA, etc.

© André Zúquete Segurança Informática e nas Organizações 58

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)

© André Zúquete Segurança Informática e nas Organizações 59

Diagramas de assinatura e validação

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"

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 61

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

© André Zúquete Segurança Informática e nas Organizações 62

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

© André Zúquete Segurança Informática e nas Organizações 63

32

Você também pode gostar