Criptografia
Criptografia
Conceitos
• Algoritmo de cifra
– Função injectivas
• Parametrizadas por uma chave
• Algoritmo de decifra
– As cifras são reversíveis apenas por quem possuir o
algoritmo inverso
• Parametrizado por chave inversa
{P}K
Criptografia:
Classificação das cifras
• Segundo as chaves
– Simétricas (ou de chave secreta)
• A chave que permite decifrar é “igual” à que permite cifrar
• Só os interlocutores legítimos a conhecem
– Assimétricas (ou de chave pública)
• Usam-se pares de chaves relacionadas:
– Privada (apenas conhecida por uma entidade)
– Pública (conhecida por todos)
• Cifras simétricas
– Normalmente usam técnicas de substituição e difusão
– São normalmente muito mais rápidas que as assimétricas
• Cifras assimétricas
– Normalmente usam operações matemáticas
– A sua segurança baseia-se na complexidade de certas operações
matemáticas
• Logaritmo modular
– Y = aX mod b; Dados a, b e Y, calcular X
• Factorização de grandes números
– Y = ab, a e b primos; Dado Y, calcular a ou b
Criptografia Simétrica
Cifra simétrica
• Substituição
– Mono-alfabética
– Poli-alfabética
• Exemplo Mono-alfabético
– Chave – troia ABCDEFGHIJLMNOPQRSTUVXZ
TROIABCDEFGHJLMNPQSUVXZ
– Problema?
Cifra Simétrica
• Poli-alfabético
– Procura que as distribuições sejam
combinadas de forma a que não
existam caracteres que sejam mais
frequentes
• Exemplo: Tabelas de Vigenère
One-time pads
• Substituição poli-alfabética
• Chave de grande dimensão não repetida
• O emissor usa a parte da chave que necessita para cifrar a
mensagem e o receptor usa a mesma parte da chave
estando ambos sincronizados sobre que parte já utilizaram
• Totalmente seguro, mas... como distribuir a chave?
– Uma aproximação a one-time pads nos computadores são
geradores de números aleatórios
– Que funcionam a partir de chave (limitada) distribuída inicialmente
• Blocos de 64 bits
• Aplica funções de permutação e substituição a cada bloco
• 16 etapas e duas permutações totais
• Chave de 56 bits, desdobrada em chaves de 48 bits para
cada etapa
• Pode ser realizado em software ou em hardware
DES
• Substituição, Permutação, Compressão e Expansão
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)
Chave do DES
Ataque ao DES
DES Triplo
• TEA
• DES
• Triple DES
• IDEA
• RC4
• RC5
• Blowfish
• AES – Advanced Encription Standard – norma futura dos
EUA com chaves de 128, 196 e 256 bits
Criptografia Assimétrica
• Diffie Hellman
• RSA
• DSS – baseado ElGamal
• Curvas elípticas
Fundamento do RSA
Cifra/decifra em RSA
Segurança do RSA
• Actualmente, chaves são normalmente de 1024-
2048 bits
• Recomendação é de 2048 bits, pelo menos
– Chaves de 256 bits quebradas em poucas horas com PC
– Em 1999, chave de 512 bits foi quebrada por sistema
distribuído de centenas de computadores
– Alguns peritos acreditam que 1024 bits será quebrável a
curto-prazo
– Computador quântico (se algum dia vier a existir)
quebra chave RSA facilmente (tempo polinomial)
• Usando Algoritmo de Shor
Sistemas Distribuídos 2009/10
Criptografia:
Classificação das cifras
– Contínuas (stream)
• Cifra de um bloco depende dos blocos anteriores
• Necessita mecanismo de inicialização
Sistemas Distribuídos 2009/10
Departamento de Engenharia Informática
Fonte: Wikipedia
Modos de cifra
T1 T2 Tn-1 Tn
T1 T2 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
Sistemas Distribuídos 2009/10
Modos de cifra:
Stream Cipher
Semelhança
com outro
algoritmo de Se Ci se perde na
cifra? rede, conseguimos
decifrar restantes?
keystream
number E(K, M) buffer
generator n+3 n+2 n+1
XOR
ciphertext
plaintext
stream stream
• Codificação de base 64
• Usa um sub-conjunto de 64 caracteres do ASCII
que são os caracteres mais "universais", ou seja,
caracteres que são iguais em practicamente todos
os códigos: A-Z, a-z, 0-9, +, /
• Caracter ‘=‘ usado no final para identificar
quantidade de padding requerido
• Aumenta tamanho do conteúdo. Qual o overhead?