Sie sind auf Seite 1von 62

Curso Preparatrio

Perito Criminal Federal

Criptografia
Aula 3/3

Prof. Ivo Peixinho


Perito Criminal Federal
Especialista em Sistemas Distribudos

Chefe da Diviso de Informtica


Coordenao de TI - Polcia Federal
Ementa (aula 3)
Criptografia.
Protocolos criptogrficos.
Caractersticas do RSA,
DES, e AES. Funes hash.
MD5 e SHA-1.
Esteganografia.
Introduo Criptografia
ECC
Introduo
Reviso Aula 2
Certificao digital
Assinatura digital
Autoridades Certificadoras
Autoridades de Registro
ICP-Brasil
Aplicaes
SSL/TLS
VPN
RIC
Passaporte Eletrnico
Protocolos Criptogrficos
Protocolos Criptogrficos
Protocolo Srie de passos com
objetido de desempenhar uma
tarefa.
Protocolo que faz uso de
criptografia
Exemplos
MAC Message Authentication
Code
Protocolo Diffie-Hellman de
compartilhamento seguro de
chaves simtricas
Assinaturas Digitais
SSL/TLS
Protocolos Criptogrficos
Diffie-Hellman
Alice e Bob escolhem 2 inteiros primos grandes,
n e g.
Alice escolhe um inteiro randmico grande x e
envia a Bob
X=gx mod n
Bob escolhe um inteiro randmico grande y e
envia a Alice
Y=gy mod n
Alice calcula k = Yx mod n
Bob calcula k= Xy mod n
k=k=gxy mod n
Problema do logaritmo discreto
Protocolos Criptogrficos
Problema do Logaritmo Discreto
Problema de difcil resposta
Loga(b) resolve ax = b
Dados os elementos R e Q de um grupo G, e
um primo grande P, achar um nmero k tal que
R = Qk mod P. O nmero k chamado de
logaritmo discreto de R na base Q
Os mtodos conhecidos para este clculo so
ineficientes quando P muito grande
Protocolos Criptogrficos
Outros exemplos
Timestamping
Assinaturas em grupo
Assinaturas cegas
Provas com conhecimento zero
Correio eletrnico certificado
Dinheiro eletrnico
Eleies seguras
Etc.
Algoritmos Criptogrficos
Confuso e Difuso
Tcnicas bsicas para esconder
redundncias em texto
Bons algoritmos usam (Claude
Shannon)
Confuso
Esconde a relao entre a cifra e o
texto
Atingido atravs de substituio
Difuso
Dissipa a reundncia do texto,
espalhando-o pela cifra
Atingido atravs de permutao
Algoritmos Criptogrficos
Caractersticas de
Algoritmos Criptogrficos
Simtricos
DES
3DES
RC-4
AES
Assimtricos
RSA
Hash
MD5
SHA-1
Algoritmos Simtricos
DES Data Encryption
Standard
Padro mundial de criptografia
por 20 anos
Resultado de um programa de
proteo das comunicaes do
NIST em 1972
Seleo de algoritmo da IBM
chamado lucifer
Utilizava operaes lgicas
simples em pequenos grupos de
bits
Algoritmos simtricos
DES Data Encryption
Standard
Publicado em 1975 com uma
licena no exclusiva e sem
royalties.
Recebeu diversas crticas (NIST)
Reduo do tamanho da chave
(128bits para 56bits)
Funcionamento interno do algoritmo
(S-boxes) Suspeita de backdoor
Tornou-se um padro federal em
1976 e autorizado para uso em
informao no classificadas
Tornou a criptografia
disponvel fora das agncias
Algoritmos simtricos
Descrio do DES
Algoritmo simtro de cifra de bloco
Cifra em blocos de 64 bits (entrada
e sada)
Chave de 56 bits
Cada oitavo bit usado para paridade
Combinao de confuso e difuso
Substituio seguido de uma
permutao
Possui 16 rodadas
Aplica as mesmas tcnicas em cada
rodada
Usa operaes lgicas e aritmticas
padres
Algoritmos simtricos
Descrio do DES (1 bloco)
1. Permutao inicial
2. Bloco dividido em duas metades
com 32 bits cada
3. 16 rodadas de operaes idnticas
(funo F) Dados so
combinados com uma subchave
4. As metades de 32 bits so
juntadas
5. Permutao final (inversa da
permutao inicial)
Blocos processados alternadamente
(cruzamento + XOR) esquema de
Feistel
Algoritmos simtricos
Cifras de feistel
Estrutura simtrica usada na construo de cifras de bloco
Horst Feistel (pesquisador IBM)
Operao de cifragem e decifragem similar
Requer a inverso da ordem das chaves
Tamanho do cdigo ou circuito economizado
Usado como base em diversas cifras
Feistel or modified Feistel: Blowfish, Camellia, CAST-128, DES, FEAL,
ICE, KASUMI, LOKI97, Lucifer, MARS, MAGENTA, MISTY1, RC5,
TEA, Triple DES, Twofish, XTEA, GOST 28147-89
Generalised Feistel: CAST-256, MacGuffin, RC2, RC6, Skipjack, SMS4,
CLEFIA
AES no usa feistel.
Algoritmos simtricos
Funo F (Feistel)
1. Expanso bloco de 32 bits
expandido para 48 bits, atravs de
permutao expansiva (E)
2. Mistura de chaves Resultado
combinado com uma subchave
(derivada da chave principal, uma
para cada round) Escalonamento
de chaves
3. Substituio Bloco dividido em 8
pedaos de 6 bits. Cada pedao
passa por um S-box (6 bits de
entrada, 4 bits de sada)
4. Permutao 32 sadas sofrem
permutao fixa P-box
Algoritmos simtricos
S-box
Tabela de substituio (lookup table)
Diferentes em cada S-box
Valores fixos
Entrada de 6 bits gera sada de 4 bits
Algoritmos simtricos
Permutaes

Inicial

Final
Algoritmos simtricos
Escalonamento de chaves
1. 56 bits de chave selecionados
2. Divide em 2 blocos de 28 bits
3. Duas metades so rotacionadas a
esquerda (1 ou 2 bits)
4. Selecionada subchave de 48 bits
(PC2) 24 de cada metade
Decriptografia
Mesmo processo da criptografia
Subchaves em ordem reversa
Confuso e difuso
Substituio (S-boxes), permutao
(P-boxes) e expanso
Algoritmos simtricos
Segurana e criptoanlise
Fora bruta (ataque mais
prtico)
Criptoanlise diferencial
Necessita 247 textos puros
escolhidos para quebrar os 16
rounds.
Criptoanlise linear
Necessita 243 textos puros
conhecidos
Ainda no h uma forma
fcil de quebrar o DES
Algoritmos simtricos
Questes (PF 2004)
112 O algoritmo DES (data encryption standard) efetua
exatamente as mesmas operaes durante o processo de
cifrao e o de decifrao. A nica diferena percebida
entre os dois processos est na ordem de aplicao das
chaves parciais (chaves de round). Correto
104 O algoritmo criptogrfico DES uma cifra de
substituio que mapeia um bloco de texto claro de 64
bits em um outro bloco de criptograma de 64 bits.
Correto
Algoritmos simtricos
Questes (PF 2004)
105 O DES e o seu sucessor como padro de criptografia do
governo norte-americano, o AES, so cifradores de bloco que
obedecem o esquema geral de cifradores de Feistel. Nesses
cifradores, os blocos cifrados so divididos em metades (lado
esquerdo e lado direito) de mesmo tamanho, que so processadas
independentemente, a cada rodada de cifrao. Esse processo faz
que apenas metade dos bits do bloco cifrado sofra influncia da
chave, em cada rodada, introduzindo confuso no processo
criptogrfico.
Errado
Algoritmos simtricos
3DES (Triplo DES)
Variao do DES para aumentar a
sua sobrevida
Utiliza 3 chaves DES (192 bits /
168 bits)
Cifra com a primeira chave
Decifra com a segunda chave
Cifra novamente com a terceira
chave
Se K1=K3 so usadas apenas duas
chaves
C=DES(k3;DES(k2;DES(k1;M)))
Mais lento, porm maior segurana
Algoritmos simtricos
RC4 Rivest Cypher 4
Cifra de fluxo mais famosa
Desenvolvido por Ron Rivest em 1987
para a RSA
Usado em SSL e WEP
Foi proprietrio por 7 anos
Em 1994 seu cdigo fonte foi postado
em uma lista de discusso
Tornou se pblico, apesar da
descordncia da RSA
No considerado um dos melhores
Dependendo da implementao pode
tornar o sistema inseguro (WEP)
Algoritmos simtricos
RC4 Rivest Cypher 4
Funciona em modo OFB
O keystream independente do texto
Chave do tamanho da mensagem gerada a partir da
chave original
Chave original de tamanhos variveis (tipicamente de
40-128 bits)
Possui 255 S-boxes
Entradas permutam nmeros de 0 a 255
Permutao funo da chave de tamanho
varivel
S-boxes so alteradas com o uso (permutao)
Algoritmo bastante simples
Fcil de ser implementado
Considerado barato, rpido e bom
Algoritmos simtricos
RC4 Rivest Cypher 4
Funcionamento resumido
Primeiramente o RC4 cria bytes pseudo-
aleatrios a partir de uma semente de
tamanho varivel. Tais bytes formam a chave
criptogrfica, a qual ser utilizada para cifrar a
mensagem atravs de operaes de OU-
exclusivo (XOR) em cada bit. O destinatrio
deve, ao receber a mensagem cifrada,
executar da mesma forma o algoritmo, para
recuperar a mensagem.
Data Encryption Standard
RC4 Fases
KSA Key Scheduling Algoritm
PRGA Pseudo Random Generation
Algoritm

E(M)=Z XOR M
Algoritmos simtricos
RC4 Rivest Cypher 4
Algoritmos simtricos
RC4 Rivest Cypher 4
Exemplo de uso (WEP)
Algoritmos simtricos
Questo (PF 2004)
107 O algoritmo criptogrfico RC4 tem como
princpio de funcionamento o segredo criptogrfico
perfeito, em que a chave criptogrfica deve ter o
mesmo tamanho que a mensagem. Desse modo, no
RC4, a chave de criptografia a semente de uma
seqncia pseudo-aleatria que usada para chavear
os bytes cifrados em uma operao linear. A
mensagem cifrada pode ser to longa quanto o
perodo da seqncia gerada. Certo
Algoritmos simtricos
AES Advanced Encryption System
Eleito pelo NIST como padro a partir do algoritmo Rijndael
Cifra de bloco
Sucessor do DES
Definido como padro FIPS em 26 de Novembro de 2001
Atualmente o algoritmo mais popular para cifragem simtrica
Utiliza uma rede de Substituio-Permutao (rede SP)
No usa rede de Feistel
Rpido tanto em hardware quanto em software
Requer pouca memria
Suporta chaves de 128, 192 ou 256 bits
Opera em blocos de 128 bits ou maiores
Implementado em hardware em processadores INTEL
Algoritmos simtricos
AES Advanced Encryption System
Funcionamento bsico
Opera sobre um arranjo de bytes 4x4 (matriz)
Dividido em rounds cada um com etapas de processamento
Etapa 1 Expanso da chave
Chaves das rodadas so derivadas da chave inicial
Etapa 2 Round inicial
Cada byte do estado combinado com a chave do round usando XOR
Etapa 3 Rounds
Subbytes Substituio no linear. Cada byte substituido usando uma
tabela
Shiftrows Transposio onde cada linha rotacionada um certo
nmero de vezes
Mixcolumns Operao de mistura nas colunas do estado
Addroundkey Chave combinada com o estado
Algoritmos simtricos
AES Advanced Encryption System

Etapa 4 Round Final


Igual aos outros, sem o Mixcolumns
Nmero de rounds dependem do tamanho da
chave
10 com chave de 128 bits
12 com chave de 192 bits

14 com chave de 256 bits.


Algoritmos simtricos
Algoritmos simtricos
Segurana no AES
Atualmente considerado seguro
Melhores ataques em 7 rounds pra chaves 128 bits, 8 em 192
e 9 em 256
Inefetivos para os rounds atuais do AES
Bastante analisado pelos criptoanalistas
NIST considera adequado para proteger mensagens secretas
(SECRET) e altamente secretas (TOP SECRET), sendo esta
ltima usando chaves de 192 e 256 bits.
No usar ECB
Algoritmos simtricos
Questo (PF Regional 2004)
113 O AES(advanced encryption standard) surgiu com o
objetivo de substituir o DES. Um dos principais motivos
dessa necessidade de modificao de padres est no fato de
o tamanho do espao de chaves utilizadas pelo DES (264
possveis chaves) no ser grande o suficiente, atualmente,
para garantir proteo contra ataques do tipo busca por
exausto. O AES, com suas chaves de, no mnimo, 112 bits,
aumentou tremendamente a resistncia a esse tipo de ataque.

Errado
Algoritmos assimtricos
RSA
Primeiro algoritmo em larga escala de criptografia assimtrica
Funciona para cifragem e assinaturas digitais
Algoritmo mais popular
Nomeado a partir de seus inventores: Ron Rivest, Adi Shamir
e Leonard Adleman
Sobreviveu a anos de criptoanlise extensa
Segurana do RSA
Dificuldade de fatorao de numeros grandes
Chaves so funo de um par de grandes nmeros primos
(mais de 100 dgitos)
Recuperar o texto a partir da chave pblica e o texto cifrado
corresponde a fatorar o produto dos dois primos
Algoritmos assimtricos
Fatorao de inteiros
Diviso de um nmero em divisores menores, que
multiplicados formam o inteiro original
No existe algoritmo conhecido para nmeros muito grandes
Em 2009 um esforo fatorou um nmero de 232 dgitos
(RSA-768) utilizando centenas de mquinas em 2 anos
Algoritmos assimtricos
RSA
Gerao de chaves
1. Escolher dois nmeros primos grandes p e q
2. Calcular n=p x q (n = mdulo)
3. Calcular (n)=(p-1) x (q-1)
4. Escolher um inteiro e, onde 1 < e < (n) , e e (n) so
co-primos
1. Coprimos = no possuir nenhum fator positivo em comum,
exceto 1
2. e = expoente
5. d=e-1 x mod ((p-1) x (q-1))
6. e e n so a chave pblica (expoente e mdulo)
7. d a chave privada
8. p e q so descartados de maneira segura
Algoritmos assimtricos
Questo (PF Nacional 2004)
103 Cada uma das chaves pblica e privada de um
criptossistema RSA so formadas por dois nmeros
inteiros denominados expoente e mdulo, ambos
devendo ser nmeros primos.
Errado
Algoritmos assimtricos
Questo (PF Regional 2004)
114 O algoritmo de criptografia assimtrica RSA
(Rivest, Shamir e Adleman) tem sua segurana
fundamentada na dificuldade de se fatorar nmeros
inteiros muito grandes. Alm de ser utilizado para
criptografar mensagens a serem enviadas por canais
inseguros de comunicao, o RSA tambm pode ser
aplicado na criptografia de chaves simtricas que so
utilizadas na criptografia simtrica de mensagens.
Certo
Algoritmos assimtricos
RSA
Cifragem e decifragem
1. Dividir a mensagem em blocos numricos menores que N
2. A mensagem cifrada C ser de tamanho similar que o bloco de N
3. Ci=mie mod n
4. Mi=cid mod n
Implementaes em hardware
1000 vezes mais lento que o DES
Algoritmos assimtricos
Segurana do RSA
Depende do problema de fatorao de grandes inteiros
Depende de adivinhar p e q ou (p-1) x (q-1)
Fatorao de nmeros de 129 dgitos limite da tecnologia atual
N necessita ser maior que 129 dgitos
Tamanho de chave recomendado: > 1024 bits
Criptoanlise do RSA
Conhecimento de um par de expoentes para um mesmo
mdulo permite a um atacante fatorar o mdulo
Conhecimento de um par de expoentes para um mesmo
mdulo permite calcular outros pares sem fatorar o mdulo
O mesmo mdulo no deve ser usado em um protocolo
usando RSA em rede
Mensagem devem ser adicionadas de elementos randmicos
O expoente de decriptao deve ser grande
Algoritmos assimtricos
Questo (PF 2002)
4 O algoritmo RSA um conhecido e popular algoritmo
assimtrico. A segurana do algoritmo RSA dada pelo
tamanho das chaves utilizadas, da ordem de 1 kilobits, o que
torna impraticvel a determinao da chave pela exausto das
possibilidades. Errado
5 Ao comparar sistemas criptogrficos simtricos e
assimtricos, conclui-se que aqueles facilitam a gerao e a
troca das chaves, enquanto estes facilitam a distribuio e o
armazenamento das mesmas. Certo
Funes Hash

MD5 Message Digest 5


Verso melhorada do MD4
Criada por Ron Rivest
Produz um resultado de 128-bits
Mensagem de entrada dividida em blocos de 512-bits
A mensagem aumentada para ser divisvel por 512
Processamento dos blocos em 4 rounds
Cada round composto de 16 operaes baseados numa funo no-
linear F
64 operaes (16 x 4 rounds)
Funes Hash
A = 0x67452301
B = 0xEFCDAB89
MD5 Message Digest 5 C = 0x98BADCFE
D = 0x10325476
Ki = 232 x abs(sin(i))

MD5 consiste de 64 operaes,


agrupadas em 4 rounds de 16. F
uma funo no-linear que muda a
cada round. Mi representa um
bloco de 32 bits da mensagem e
Ki uma constante de 32-bits
diferente em cada operao. <<<s
representa rotao para a esquerda
de s. representa adio
modulo 232.
Funes Hash

MD5 Exemplos
MD5("The quick brown fox jumps over the lazy dog) =
9e107d9d372bb6826bd81d3542a419d6
MD5("The quick brown fox jumps over the lazy dog.) =
e4d909c290d0fb1ca068ffaddf22cbd
MD5(") = d41d8cd98f00b204e9800998ecf8427e
Segurana do MD5
Um round adicional foi criado (em relao ao MD4)
Atualmente severamente comprometida
Ataques de coliso
Documentos e certificados com colises
Ataques preimage
Achar uma mensagem que tenha um hash especfico
Funes Hash
Questo (PF 2002)
Para um determinado sistema criptogrfico que utiliza chaves de
128 bits, optou-se por selecionar como gerador de chaves a sada
do algoritmo MD5, tendo por entrada os seguintes parmetros: a
data/hora do sistema quando da gerao da chave, dada na forma
DDMMAAHHMMSS, com o significado usual, concatenado com
uma seqncia de 16 bytes consecutivos obtida de um arquivo fixo,
contendo 64 kilobytes de dados que foram gerados de forma
totalmente aleatria, e cujo ponto inicial de leitura escolhido a
partir de caracteres digitados por um operador da forma mais
imprevisvel possvel. Nessa situao, como o algoritmo MD5 gera
um hash de 128 bits e no se pode, em princpio, determinar a
entrada dada a sada, pode-se considerar esse como um bom
mtodo para a gerao dos 128 bits necessrios para uma chave
com uma aparncia aleatria.
Errado
Funes Hash
SHA Secure Hash Algoritm
Algoritmo criado pelo NIST para uso com o DSS (Digital
Signature Standard)
Padro SHS Secure Hash Standard
Produz uma sada de 160 bits
Posteriormente tornou-se uma famlia de algoritmos
SHA-0 (algoritmo original)
SHA-1 (reviso do algoritmo original)
SHA-2 (famlia de duas funes: SHA-256 e SHA-512)
SHA-3 (para uso futuro. Em processo de reviso. Expectativa para 2012)
SHA-2 possui duas outras verses truncadas: SHA-224 e SHA-384
Funes Hash

SHA-1 Secure
Hash Algoritm 1
Funo mais usada da
famlia
Usado em TLS, SSL,
PGP, SSH, S/MIME,
IPSec, eMule
Sucessor do MD5
(funcionamento
semelhante)
Funes Hash

Segurana do SHA-1
Est sendo aposentado para uso governamental
Suscetvel a colises
Exemplos
SHA1("The quick brown fox jumps over the lazy
dog) = 2fd4e1c6 7a2d28fc ed849ee1 bb76e739
1b93eb12
SHA1("The quick brown fox jumps over the lazy
cog) = de9f2c7f d25e1b3a fad3e85a 0bd17d9b
100db4b3
Funes Hash

Comparao entre SHA


Funes Hash

Questo (PF 2004)


106 MD5 e SHA-1 so funes de resumo de
mensagem (funes hash). Esses algoritmos tm a
finalidade de garantir a integridade e a
autenticidade para mensagens de tamanho
arbitrrio. Errado
Questo (PF Regional 2004)
117 Entre os algoritmos especificados pelo padro
SHS (secure hash signature standard), o SHA-1 o
que possui menor tamanho do valor condensado
(message digest), que de 160 bits. Certo
Esteganografia

Definio
Processo de esconder mensagens em outras
mensagens
Exemplos histricos
Tinta invisvel
Marcas em caracteres (lpis taboada)
Exemplo atual
Esconder mensagens em imagens
Usar o bit MENOS significativo (LSB)
Capaz de armazenar 64Kb em uma mensagem
1024x1024
Esteganografia

Outros exemplos
Arquivos de som
Dados escondidos dentro de outros dados
Canais camuflados (covert channels)
Impressoras laser coloridas
Etc.
Esteganografia

Questo (PF Regional 2004)


116 A esteganografia pode ser utilizada com
o objetivo de disfarar a existncia de
determinadas informaes. Atualmente, a
esteganografia utiliza o BMS (bit mais
significativo) para embutir informaes, o
que degrada, contudo, a informao
hospedeira, pois modifica seu contedo.
Errado
Elliptic Curve Cryptography

ECC
Abordagem para cifras de
chave pblica
Utiliza a estrutura algbrica
de curvas elpticas sobre
campos finitos
Seu uso foi sugerido em
1985
Possui segurana
comparvel ao RSA com
um tamanho de chave
menor
Elliptic Curve Cryptography

ECC
Utiliza o problema do
logaritmo discreto como
fator de segurana
y2 = x3 + ax + b
Elliptic Curve Cryptography
ECC
Dados pontos P e Q,
encontrar um inteiro k tal
que Q=k X P
Problema do logaritmo
discreto
Q e P nmeros grandes
No caso de chave de 192
bits, 3 x 1057 adies em
mdia
O problema da fatorao
de inteiros pode ser
substituido por ECC em
algoritmos chave menor
Referncias
Livros
Referncias
Livros Percia
Referncias
ICCyber 2011
http://www.iccyber.org/2011/