You are on page 1of 59

Uniceub

Ps-Graduao Lato
Sensu
Criptografia

Prof. Osvaldo Ramos


osvaldo.ramos@gmail.com

Roteiro

Arquitetura de Segurana OSI

Fundamentos de Criptografia

Algoritmos Simtricos

Algoritmos de Chave Pblica

Funes de Hash

Assinatura Digital

Arquitetura de Segurana OSI


Arquitetura
de
Segurana
OSI
Ataques

Servios
Confidencialidade

Passivos

Mecanismos
Criptografia

Integridade
Assinatura Digital
Disponibilidade

Ativos

Autenticao

Protocolos de
Autenticao

Irretratabilidade
Controle de
Acesso

...

Servios
Confidencialidade
Propriedade de que a informao no ser
disponibilizada ou divulgada a indivduos, entidades
ou processos sem autorizao.
A proteo dos dados contra divulgao no
autorizada.
Isto inclui:
impresso;
divulgao;
at mesmo a existncia de algum tipo de
informao.

Servios
Integridade
A garantia de que os dados recebidos esto
exatamente como foram enviados por uma entidade
autorizada.
Logo, eles no contm:
modificao;
insero;
excluso;
repetio.

Servios
Autenticao
A garantia de que a entidade se comunicando
aquela que ela afirma ser.
Dois servios de autenticao especficos so
definidos na X.800:
autenticao de entidade par;
autenticao da origem dos dados.

Servios
Irretratabilidade (No Repdio)
Oferece proteo contra negao, por parte de
uma das entidades envolvidas em uma comunicao,
de ter participado de toda ou parte da comunicao.
Logo, quem enviou no poder negar ter enviado
nem quem recebeu poder negar ter recebido a
mensagem.

Servios
Disponibilidade
Propriedade de um sistema ou de um recurso do
sistema ser acessvel e utilizvel sob demanda por
uma entidade autorizada.

Servios
Controle de Acesso
O impedimento do uso no autorizado de um
recurso.
O servio controla quem pode ter acesso a um
recurso, sob que condies o acesso pode ocorrer e o
que permitido para aqueles que acessam o recurso.

Servios

No h um mecanismo nico que garanta


todos os servios citados.
Sempre haver a necessidade da utilizao de
um conjunto de mecanismos para solucionar o
problema proposto.
Entretanto, existe um elemento que serve
como base para a maioria dos mecanismos de
segurana que so: as tcnicas de
criptografia.

Servios

O que o uso da criptografia pode fazer?

Fornecer o sigilo da informao.

Garantir a autenticidade do remetente.

Garantir, implicitamente, a
autenticidade do destino.

Garantir a integridade da informao.

Ataques
Fluxo normal

FONTE DA
INFORMAO

DESTINO DA
INFORMAO

Ataques
Interceptao
FONTE DA
INFORMAO

DESTINO DA
INFORMAO

Uma parte no autorizada ganha acesso a um


recurso. Este um ataque confidencialidade.
A parte no autorizada pode ser pessoa, programa
ou computador.
Exemplos:
grampos em linhas para capturar dados da rede;
cpia de programas ou arquivos;
anlise de trfego.

Ataques
Modificao
FONTE DA
INFORMAO

DESTINO DA
INFORMAO

Uma parte no autorizada no somente ganha


acesso, mas tambm adultera o bem. Este um
ataque integridade.
Exemplos:
mudana de valores em um arquivo de dados;
alterao de um programa de tal forma que ele
se comporte de maneira diferente;
modificao do contedo da mensagem sendo

Ataques
Fabricao
FONTE DA
INFORMAO

DESTINO DA
INFORMAO

Uma pessoa no autorizada insere objetos no


sistema.
Este um ataque autenticidade.
Exemplos:
insero de mensagens maliciosas na rede;
adio de registros em um arquivo.

Ataques
Interrupo
FONTE DA
INFORMAO

DESTINO DA
INFORMAO

Um recurso do sistema destrudo ou se torna


indisponvel ou intil.
Este um ataque disponibilidade.
Exemplos:
destruio de uma pea de hardware como um
disco rgido;
o corte de uma linha de comunicao;
tornar indisponvel um sistema de gerncia de
arquivos.

Mecanismos

Pervasivos (no so especficos a qualquer


servio de segurana OSI):

funcionalidade confivel;

rtulo de segurana;

deteco de evento;

registros de auditoria;

recuperao de segurana.

Fundamentos de Criptografia

Criptologia = criptografia + criptoanlise


Criptografia = arte e cincia de manter
mensagens seguras.
Criptoanlise = arte e cincia de quebrar textos
cifrados.

Fundamentos de Criptografia

Criptografar (cifrar ou encriptar);

Decriptografar (decifrar ou desencriptar);

Algoritmo criptogrfico;

Chave criptogrfica;

Espao de chaves.

Fundamentos de Criptografia
Algoritmos proprietrios (sigilo do algoritmo e
da chave) x Algoritmos pblicos (sigilo da
chave)
Algoritmos proprietrios

Algoritmos pblicos

So aqueles que somente poucas


pessoas conhecem o cdigo

So aqueles que todos conhecem o


cdigo

Vantagens:
Geralmente realizar criptoanlise
conhecendo o cdigo difcil, sem
conhecer o cdigo ainda mais difcil.

Vantagens:
O cdigo foi avaliado por muitas
pessoas tornado o algoritmo mais
confivel.
Maior facilidade de padronizao e
produo por fabricantes diferentes.

Desvantagens:
O cdigo somente foi avaliado por
poucas pessoas, com isso, podem
existir fragilidades no descobertas.
Pode ser feita engenharia reversa em
cima de um produto que implemente o
algoritmo e pode ser descoberto o
cdigo.

Desvantagens:
No caso de descoberta de uma
vulnerabilidade no algoritmo,
imediatamente todos os usurios esto
comprometidos.

Criptografia Simtrica
chave K
texto claro

cifrao

chave K
texto cifrado

decifrao

texto claro

A chave de cifrao igual chave de decifrao.


OU
A chave de cifrao pode ser facilmente gerada a
partir da chave de decifrao e vice-versa.
Sejam:
Ek( ) a funo cifrao com a chave k;
Dk( ) a funo de decifrao com a chave k;
M o texto em claro e C o texto cifrado.
Logo Ek(M)=C, Dk(C)=M e Dk(Ek(M))=M.

Criptografia de Chave Pblica


chave K1
texto claro

cifrao

chave K2
texto cifrado

decifrao

texto claro

A chave de cifrao diferente da de decifrao e uma


no pode facilmente ser gerada somente a partir da outra.
As duas so relacionadas matematicamente.
Sejam:
Ekx( )a funo cifrao com a chave kx;
Dkx( )a funo de decifrao com a chave kx;
M o texto em claro e C o texto cifrado.
Logo:
Ek1(M)=C, Dk2(C)=M e Dk2(Ek1(M))=M.
Ek2(M)=C, Dk1(C)=M e Dk1(Ek2(M))=M.

Criptografia Tipos de Operao

Substituio

Monoalfabtica - utiliza um alfabeto


de substituio;
Polialfabtica - utiliza vrios
alfabetos de substituio.

Permutao ou transposio - modifica a


posio dos smbolos.

Criptografia Modo de Processamento

Bloco processa a entrada de um bloco de


elementos de cada vez, produzindo um bloco
de sada para cada bloco de entrada.
Fluxo processa os elementos da entrada
continuamente, produzindo a sada de um
elemento de cada vez, enquanto prossegue.

Funes Hash
Funes unidirecionais (one way)
fcil

x
x

difcil

x
x

x
x

Em funes unidirecionais, para uma dada entrada,


relativamente fcil calcular a sada da funo. Mas
dada uma sada, extremamente difcil calcular uma
possvel entrada desta funo.
Ou seja, dado x fcil calcular f(x), mas dado f(x)
difcil calcular x.
Analogia com o dia a dia: a quebra de um prato.

Funes Hash
Funes de condensao (hash functions)

x
x

x
x

x
x

Uma funo de condensao (hash) uma funo


que recebe, como entrada, uma string de tamanho
varivel (chamada de pr-imagem) e a converte em
uma string de sada de tamanho fixo, geralmente
menor, chamada de valor hash (resumo ou valor
condensado).

Funes Hash
Funes de condensao (hash functions)
Exemplos:
Dgito verificador em CPFs;
Funo que pega uma pr-imagem e retorna um
byte que consiste no XOR de todos os bytes de
entrada.
entrada

sada

0101
1001
0100
0001

0110
0101
0110
1011

1001 1110

Funes Hash
Funes de condensao unidirecionais

x
x

x
x

difcil

x
x

A finalidade de uma funo de hash produzir uma


impresso digital de um arquivo, mensagem ou
outro bloco de dados.
Exemplo de aplicao:
Armazenamento de senhas.

Algoritmos Simtricos

DES
3DES
AES
Modos de Operao
One-Time Pad
RC4

Algoritmos Simtricos DES

Algoritmo amplamente difundido e


estudado.

Originado a partir do Lucifer (IBM).

Aprovado como padro em 1977.

Mensagem: 64 bits.

Chave: 56 bits (64 mas 8 so de


paridade).
Mensagem cifrada: 64 bits.

DES

As caixas S (S-Boxes) foram definidas pelo NSA


(National Security Agency), rgo do governo
americano, sem que deixasse claro o porque de
tais escolhas.
Depois de alguns anos descobriu-se que essas
caixas S faziam com que as criptoanlises linear
e diferencial no se tornassem ataques prticos.
Existem pessoas que desconfiam que as caixas
S imponham algum tipo de backdoor (porta dos
fundos) no algoritmo do DES mas isto no ficou
provado at hoje e no passa apenas de
especulao.

DES

O tamanho de chave aplicado ao DES (56 bits) j foi


quebrado por um ataque de fora bruta em um tempo
relativamente pequeno (22 horas e 15 minutos).
Em uma busca exaustiva da chave do DES, teramos
que, a princpio, testar as 256 possveis chaves.
Mas o DES possui a seguinte caracterstica:

seja uma chave K;

seja K a chave complemento bit a bit


(ou seja se a chave K=0110 ento
K=1001 trocam-se os 1s por 0s e
vice-versa);

ento EK(P)=C e EK(P)=C, onde C o

DES

Considere que temos um bloco cifrado e queremos


realizar uma busca exaustiva da chave, ou seja, decifrar
este bloco com todas as possveis chaves e achar o
texto em claro que fizesse sentido no contexto aplicado
(por exemplo, achar um bloco que contenha uma
palavra conhecida).
Neste caso, no precisamos decifrar o bloco com todas
as chaves, uma vez que, se decifrarmos com a chave K
e acharmos o texto em claro P, logo, se decifrarmos
com a chave K iremos achar o texto em claro P.
Com isso necessrio testar apenas 255 chaves e no
256.

AES

O AES definido no FIPS PUBS 197 (Federal


Information Processing Standards Publication
197).
Padronizado em 2001.
O AES foi escolhido entre diversas cifras que
foram submetidas para anlise.
A cifra escolhida foi o RIJNDAEL, que
originalmente trabalhava com blocos de 128, 192
ou 256 bits e chaves de 128, 192 ou 256 bits.
O AES possui:

tamanho de bloco de 128 bits;


tamanho da chave de 128, 192 ou 256
bits.

Cifras de Fluxo OTP


O One-Time Pad (OTP) o esquema de cifrao
perfeito.
Em dados binrios, ele utiliza uma chave gerada de
forma aleatria, do tamanho do texto.
A operao de cifrao consiste na operao XOR
bit a bit do texto em claro com a chave.
Neste mtodo de cifrao, a busca exaustiva da
chave no eficaz, uma vez que todos os possveis
textos so achados quando se aplica a busca
exaustiva.

Cifras de Fluxo OTP


Exemplo: Suponha que temos um texto cifrado que
0101. Se aplicarmos a busca exaustiva, obteremos:
texto cifrado

chave
de
exaustiva

busca

texto
em
analisado

0101

0000

0101

0101

0001

0100

0101

0010

0111

0101

0011

0110

0101

0100

0001

0101

0101

0000

0101

0110

0011

0101

0111

0010

0101

1000

1101

0101

1001

1100

0101

1010

1111

0101

1011

1110

0101

1100

1001

0101

1101

1000

0101

1110

1011

claro

Cifras de Fluxo OTP


Exemplo (cont.):
Ou seja, se tentarmos a busca exaustiva iremos
achar todos os possveis textos em claro e no
poderemos identificar qual era o texto em claro
original a no ser que tenhamos a chave utilizada na
cifrao.

Cifras de Fluxo RC4

uma cifra de fluxo de tamanho de chave


varivel (at no mximo 2048 bits)

Desenvolvida em 1987 por Ron Rivest para a


empresa RSA Data Security, Inc.

Algoritmos de Chave Pblica

RSA
Diffie-Hellman

Algoritmos de Chave Pblica

Aplicaes para criptossistemas de chave


pblica:

criptografia/decriptografia;
assinatura digital;
troca de chave.

43

RSA

Publicado em 1978.
Nome RSA provm das iniciais dos autores
(Ron Rivest, Adi Shamir e Len Adleman).
Baseado na dificuldade de fatorar um nmero
inteiro grande.
Amplamente difundido.

RSA
Gerao das chaves pblica e privada

Sejam dois nmeros primos grandes p e q.

Calcule n = p.q.

Seja e escolhido randomicamente tal que e e


(p-1)(q-1) sejam primos entre si.

Calcule d tal que e.d 1 mod(p-1)(q-1).

Desta forma:

e e n formam a chave pblica;

d e n formam a chave privada.

RSA
Cifrao

Divida a mensagem em blocos numricos


menores que n
Seja mi o bloco de texto claro que se deseja
cifrar
Seja ci o bloco de texto cifrado correspondente
a mi
ci calculado da seguinte forma:
ci=mie mod n

RSA
Decifrao

Seja ci o bloco de texto cifrado que se deseja


decifrar.
Seja mi o bloco de texto claro correspondente a
ci.
mi calculado da seguinte forma:
mi=cid mod n

RSA
Exemplo gerao das chaves:

Passo 1 - escolha de p e q

Passo 2 - Clculo de n

n = p.q = 3337

Passo 3 - escolha de e

Lembre que e no pode ter fatores em comum com (p-1)


(q-1) = 46.70 = 3220

Suponha que escolhamos e = 79.

Passo 4 - clculo de d

Suponha que escolhamos p = 47 e q = 71

Utilizaremos o algoritmo euclidiano estendido para


calcular d
d = 79-1 mod 3220 = 1019

Passo 5 - Torne pblico e e n e mantenha d secreto. Descarte p e q.

RSA
Exemplo cifrao:

Para cifrar a mensagem: m=6882326879666683


Primeiro quebre-a em blocos pequenos. Blocos de trs dgitos
funcionam bem neste caso. A mensagem quebrada em seis blocos,
mi, que so:
m1=688
m2=232
m3=687
m4=966
m5=668
m6=003
O primeiro bloco cifrado da seguinte forma: 68879 mod 3337 = 1570 =
c1
Realizando a mesma operao nos blocos subseqentes, ser gerada
a seguinte mensagem cifrada:
c = 1570 2756 2091 2276 2423 158

RSA
Exemplo decifrao:

Decifrar a mensagem consiste em realizar a


mesma operao de exponenciao usando a
chave de decifrao 1019, ento:
15701019 mod 3337 = 688 = m1

O resto da mensagem ser decifrado da mesma


maneira.

Alg. Diffie-Hellman (Troca de Chaves)


Segurana baseada na dificuldade de se calcular o
logaritmo discreto em corpos finitos.
Pode ser usado para troca de chaves.
No pode ser usado para cifrar ou decifrar
mensagens.

Alg. Diffie-Hellman (Troca de Chaves)


Suponha que Alice e Bob desejam combinar uma chave.
Primeiro eles combinam dois nmeros primos grandes n e
g tal que g primitivo mod n.
Esses dois nmeros no precisam ser secretos e podem
ser usados por vrias pessoas.
Depois, o algoritmo se segue da seguinte forma:
Alice escolhe um nmero inteiro aleatrio grande x e
envia para Bob X calculado da seguinte forma: X=gx
mod n;
Bob escolhe um nmero inteiro aleatrio grande y e
envia para Alice Y calculado da seguinte forma: Y=gy
mod n;

Alg. Diffie-Hellman (Troca de Chaves)


(Cont.):
Alice calcula k = Yx modn;
Bob calcula k=Xy mod n;
k e kso iguais a gxy mod n e ningum que tenha
monitorado a linha de comunicao poder calcular
este valor.

Alg. Diffie-Hellman (Troca de Chaves)


Exemplo: Sejam o numero primo n=97 e a raiz primitiva g=5
ALICE

BOB

GERA
ALEATORIAMENTE

GERA
ALEATORIAMENTE

x=36 (chave privada)

y=58 (chave privada)

CALCULA

CALCULA

36

58

X= 5 mod 97 = 50
(chave pblica)

Y= 5 mod 97 = 44
(chave pblica)
Alice envia X=50 para Bob
Bob envia Y=44 para Alice

CALCULA
4436 mod

K=
97 = 75
(chave secreta
compartilhada por
Bob e Alice)

CALCULA
K= 5058 mod 97 = 75
(chave secreta
compartilhada por
Bob e Alice)

Funes de Hash Requisitos


H(x)

x
x

x
x

difcil

x
x

Para ser til para autenticao de mensagens, uma


funo de hash H(x) precisa ter as seguintes
propriedades:

H(x) pode ser aplicada a um bloco de dados de


qualquer tamanho.

H(x) produz uma sada de comprimento fixo.

Funes de Hash Requisitos

(Cont.):

H(x) facil de calcular para qualquer x,


tornando as implementaes de hardware e
software prticas.

Para qualquer valor de h dado,


computacionalmente invivel encontrar x tal
que H(x) = h.

Para qualquer bloco dado x,


computacionalmente invivel encontrar y x
tal que H(y) = H(x).

computacionalmente invivel encontrar


qualquer par (x,y) tal que H(x) = H(y).

Funes de Hash SHS


Especificado na FIPS PUB 180-3 (Federal Information
Processing Standards Publications).
Nome do padro: Secure Hash Signature Standard
(SHS) (FIPS PUB 180-3).
O padro especifica cinco algoritmos hash seguros
SHA-1, SHA-224, SHA-256, SHA-384 e SHA-512.
Segundo o padro, computacionalmente invivel:
achar uma mensagem que corresponda a um
message digest;
achar duas mensagens que possuam o mesmo
message digest.

Funes de Hash SHS


Caractersticas:
Algoritm
o

Tamanho
da
mensagem
(bits)

Tamanho do
bloco (bits)

Tamanho
da palavra
(bits)

Tamanho
do
message
digest
(bits)

Segurana
(bits)

SHA-1

< 264

512

32

160

80

SHA-224

< 264

512

32

224

112

SHA-256

< 264

512

32

256

128

SHA-384

< 2128

1024

64

384

192

SHA-512

< 2128

1024

64

512

256

O item segurana considera que o ataque do


aniversrio em um message digest de tamanho n
produz uma coliso com fator de trabalho de
aproximadamente 2n/2.

Funes de Hash SHA-1

O algoritmo utiliza:

80 palavras de 32 bits fixas (constantes);

5 variveis de 32 bits (A, B, C, D, E);

Um valor hash com 5 palavras de 32 bits.

Deve ser feito o pr-processamento antes da execuo do


algoritmo:

padding para um mltiplo de 512 e


diviso em blocos de 512.

Funes de Hash SHA-1

Para cada um dos N blocos de 512 bits:

Iterao de 80 repeties com as operaes:

f(x,y,z);

adies mod 232;

deslocamentos e rotaes;

As variveis utilizadas sero inicializadas


e apresentaro valores que sero passados
para as iteraes com os outros blocos (N).

Ao final, as cinco palavras de 32 bits sero concatenadas,


gerando o hash final de 160 bits.

Funes de Hash SHA-1

A mensagem final deve ter um nmero de bits mltiplo de


512.
Exemplo: a mensagem abc

acrescenta-se um bit 1;

vrios bits 0;

64 bits representando o tamanho original


da mensagem.

Funes de Hash MD-5


Melhoria do MD4.
Projetado por Ron Rivest (tambm autor do MD4).
MD (Message Digest).
MD5 e MD4 produzem um hash de 128 bits.
MD5 roda 30% mais lento que o MD4.

You might also like