Buscar

Slides de Aula II

Prévia do material em texto

Prof. Dr. Anderson Silva
UNIDADE II
Criptografia e 
Certificação Digital
 Quanto às chaves
 Simétrica
 Quando é utilizada a mesma chave para cifrar e decifrar a mensagem
 Pública/privada (assimétrica)
 Quando é utilizada uma chave para cifrar, a chave parceira decifra e vice-versa
Criptografia
Chave simétrica
Criptografia
 Simétrica
 Vantagens
 Rapidez
 Confidencialidade
Criptografia
 Desvantagens
 Distribuição da chave
 Não garante autenticação
 Não garante integridade
Algoritmos simétricos Tipo Tam. chave Tam. bloco
DES bloco 56 64
Triple DES bloco 168 64
BLOWFISH bloco 32 a 448 64
RC4 stream 0 a 256
AES bloco 128,192,256 128, 192, 256
 Simétrica
Criptografia
Atacante
M
Alice Bob
M
Cifrador
(E)
Decifrador
(D)
Canal Seguro
K
C
 Simétrica
 3DES
 Evolução do DES
Criptografia
M E-TDES C
K1
Bloco: 64 bits
Chave de tamanho igual a 168 bits
(Três chaves de 56 bits)
K2 K3
 Simétrica
 AES
 Padrão atual de
criptografia simétrica
Criptografia
M E-AES C
Bloco: 128, 192, 256 bits
Chaves 128, 192, 256 bits
K
Bloco: 128, 192, 256 bits
Autenticação simétrica?
 As empresas A e B eram sócias e trocavam dados por meio de criptografia simétrica
 Mas se separaram com briga na justiça
 A empresa A tem um arquivo criptografado no qual a empresa B transfere bens para A
Qual será o parecer do juiz do caso sobre isso?
Exemplo 1
Entidade BEntidade A
K K
Arquivo
Empresa B
 Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas
 Crie um arquivo de texto com os seguintes conteúdos:
 msg.txt = aula de criptografia
 Encripte o arquivo com dois algoritmos: DES3 e AES256
 Use como chave o conteúdo do arquivo ale3.txt
 Repita cada comando várias vezes e analise o resultado na tela
Exemplo 2
Comandos
openssl enc -des3 -in msg.txt -kfile ale3.txt
:
openssl enc –aes256 -in msg.txt -kfile ale3.txt
 Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas
 Apesar de usarem a mesma chave, a cada comando as cifras mudam
 Isso acontece nos dois algoritmos
 Para que as cifrações contínuas de texto não apresentem 
sempre o mesmo conteúdo – facilitando a criptoanálise –
esse tipo de comando usa uma semente aleatória
 Sementes são trechos aleatórios adicionados à chave para 
evitar resultados repetidos da mesma cifra
Exemplo 2
N° Cifra DES3 Cifra AES256
1 ░d1?÷Ú┘ï╚f{zà╣\•U0mÔtıVF|\@ у;+ÙË£vIÝ┤Á|{‗Åp¡!cîJ5¹H┴▀kÚvV%í§e·ƒ
2 Á¼±d╦sLÄ╚L¾çé¾wLÅæƒ_a¼V¯I╬┐╠▒ b╚B©|¥¾|Ó|┼ÄpÕÓÌ‗W▒è─õj^Ütd¨Æ┴ÞEƒ)ì┴$éO
3 mtKf¶.ó³ï*V|¯äf2»á(ù╬SúW▄9╩Í8P îr?¨.©p7r¼x═гöÕæÒËÍî(= TV╠Sö@░Ó_ Ú■
 Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas
 Agora defina uma semente e encripte o mesmo arquivo
 Algoritmo: DES3 e AES256
 Chave: ale3.txt
 Semente: 0 (pode ser qualquer número)
 O Openssl gera a mesma semente quando se repete o número
 Repita cada comando várias vezes e analise o resultado na tela
Exemplo 2
Comandos
openssl enc -des3 -in msg.txt -kfile ale3.txt –S 0
:
openssl enc –aes256 -in msg.txt -kfile ale3.txt –S 0
 Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas
 Agora, usando a mesma chave e a mesma semente, as cifras são as mesmas
 Isso acontece nos dois algoritmos
Exemplo 2
N° Cifra DES3 Cifra AES256
1 "Ü Ài¦^ø`7=╬l╩■$T ìW poKæ_HHüa÷På '6'¼+i└<`q]`ë°ıd¶
2 "Ü Ài¦^ø`7=╬l╩■$T ìW poKæ_HHüa÷På '6'¼+i└<`q]`ë°ıd¶
3 "Ü Ài¦^ø`7=╬l╩■$T ìW poKæ_HHüa÷På '6'¼+i└<`q]`ë°ıd¶
 Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas
 Se quiser salvar a cifra em um arquivo, usando AES, semente nula, chave ale3.txt:
 openssl enc -aes256 -in msg.txt -kfile ale3.txt -S 0 -out CIFRA_AES256.TXT
 Para decifrar o arquivo encriptado:
 openssl enc -d -aes256 -p -in CIFRA_AES256.TXT -kfile ale3.txt
Exemplo 2
 Encriptar msg.txt com resultados gerados por sementes aleatórias e fixas
 Se quiser salvar a cifra em um arquivo, usando AES, semente nula, com uma chave manual:
 openssl enc -aes256 -in msg.txt -S 0 -out CIFRA_AES256.TXT
 Para decifrar o arquivo encriptado:
 openssl enc -d -aes256 -p -in CIFRA_AES256.TXT
 A chave será pedida manualmente na cifração e na decifração
Exemplo 2
 A, B, C e D compartilham a chave simétrica K. Marque a alternativa correta a respeito de 
uma mensagem M encriptada com a chave K e recebida por D.
a) É possível saber quem enviou a mensagem M para D.
b) D não poderia ter criado a mensagem M, já que é o destinatário dela.
c) Se A criou e cifrou M, o usuário B não pode decifrá-la, já que o destinatário é D.
d) Apenas D e quem criou M podem decifrá-la.
e) Qualquer usuário pode ter criado e cifrado M. Até mesmo D.
Interatividade
Entidade B
Entidade A
Entidade D
Entidade C
M
K
K
KK
 A, B, C e D compartilham a chave simétrica K. Marque a alternativa correta a respeito de 
uma mensagem M encriptada com a chave K e recebida por D.
a) É possível saber quem enviou a mensagem M para D.
b) D não poderia ter criado a mensagem M, já que é o destinatário dela.
c) Se A criou e cifrou M, o usuário B não pode decifrá-la, já que o destinatário é D.
d) Apenas D e quem criou M podem decifrá-la.
e) Qualquer usuário pode ter criado e cifrado M. Até mesmo D.
Resposta
Entidade B
Entidade A
Entidade D
Entidade C
M
K
K
KK
Chaves Pública/Privada
Criptografia
 Pública/Privada (assimétrica)
 Utiliza duas chaves diferentes – par gerado matematicamente
 Kpub: de conhecimento público – encriptado com Kpub = só Kpriv abre
 Kpriv: secreta – encriptado com Kriv = só Kpub abre
 A partir de Kpub é inviável descobrir Kpriv
 Equivalente à simétrica em relação à dificuldade de quebra
Criptografia
M
KPRIA
M
EA
?
C
DA
?
KPUBA
KPRIB
KPUBB
A B
 Pública/Privada (assimétrica)
 Se M for cifrada com KPRIA gerando C, que chave abre C?
 Se M for cifrada com KPUBA gerando C, que chave abre C?
 Se M for cifrada com KPRIB gerando C, que chave abre C?
 Se M for cifrada com KPUBB gerando C, que chave abre C?
Criptografia
M
KPRIA
M
EA
?
C
DA
?
KPUBA
KPRIB
KPUBB
A B
 Geração de chaves Pub/Priv
 Chaves assimétricas são geradas em conjunto de forma matemática
 Vamos usar o Openssl para gerar um par de chaves Público/Privado
 O algoritmo usado será o RSA
 Inicialmente vamos gerar a chave privada PRIVKEY1.PEM de 512 bits
Exemplo 3
Comandos
openssl genrsa –out PRIVKEY1.PEM 512
 Geração de chaves Pub/Priv
 Agora, a partir da chave privada, geramos uma chave pública
 O inverso – extrair a chave privada a partir da pública – é impossível
 O algoritmo usado também é o RSA
 PUBKEY1.PEM = chave pública
Exemplo 3
Comandos
openssl rsa –in PRIVKEY1.PEM –pubout –out PUBKEY1.PEM
 Geração de chaves Púb/Priv
 As chaves podem ser abertas com um simples editor de texto
 Perceba que PUBKEY1 é
menor que PRIVKEY1
 Isso é bastante comum já que
a segurança está na PRIVKEY1
Exemplo 3
 Geração de chaves Púb/Priv
 Podemos gerar também um par de chaves com 2048 bits com comandos diferentes
 PUBKEY2 = chave pública RSA de 2048 bits
 PRIVKEY2 = chave privada RSA de 2048 bits
 As chaves de 2048 são bem maiores que as de 512 bits
Exemplo 3
Comandos
openssl genpkey -algorithm RSA -out PRIVKEY2.PEM -pkeyopt rsa_keygen_bits:2048
openssl rsa -in PRIVKEY2.PEM -pubout -out PUBKEY2.PEM
 Pública/Privada (assimétrica)
 Confidencialidade
Perguntas: 
 Quem abre um texto encriptado com KPUBB?
 Alice pode pegar e usar a chave KPUBB?
Criptografia
M
KPRIB
A
Remetente
B
Destinatário
KPUBB
EA
C M
DA
 Pública/Privada (assimétrica)
 Autenticação
Perguntas: 
 Quem abre um texto encriptado com KPRIVA?
 Bob tem acesso à KPUBA?
Criptografia
A
Remetente B
Destinatário
KPUBAKPRIA
M
EA
C M
DA
 Confidencialidade assimétrica
 Encriptar/decifrar msg.txt
 msg.txt = aula de criptografia
 Encripte o arquivo msg.txt com confidencialidade, gerando o arquivo CRIPTOGRAMA.RSA
 Para isso é preciso usar achave pública PUBKEY1.PEM
criada anteriormente
Exemplo 4
openssl rsautl -in MSG.TXT -out CRIPTOGRAMA.RSA -pubin -inkey PUBKEY1.PEM –encrypt
 Confidencialidade assimétrica
 Abra o arquivo CRIPTOGRAMA.RSA com um editor de texto
 Este é o conteúdo de msg.txt encriptado com a chave pública PUBKEY1.PEM
Exemplo 4
 Confidencialidade assimétrica
 Agora decifre o arquivo CRIPTOGRAMA.RSA
 O resultado deve ser exatamente o conteúdo contido no arquivo msg.txt
 Grave o conteúdo decifrado no arquivo MENSAGEM.OUT
 Perceba que para decifrar CRIPTOGRAMA.RSA é preciso 
usar a chave privada PRIVKEY1.PEM
Exemplo 4
openssl rsautl –in CRIPTOGRAMA.RSA –out MENSAGEM.OUT –inkey PRIVKEY1.PEM -decrypt
 Confidencialidade assimétrica
 Abra o arquivo MENSAGEM.OUT com um editor de texto
 Perceba que é idêntico ao conteúdo de msg.txt
Exemplo 4
Tenho um par de chaves pública/privada e uma chave simétrica. Quero encriptar meu HD 
inteiro (500 GB) e não vou enviar para ninguém. Posso dizer que:
a) Mais rápido: encriptar com uma chave simétrica de 512 bits. Mais lento: encriptar com uma 
chave pública de 512 bits.
b) Não posso encriptar um HD inteiro. Leva muito tempo.
c) Devo encriptar o HD com minha chave privada.
d) Devo encriptar o HD com minha chave privada e encriptar minha chave privada com minha 
chave simétrica.
e) Mais rápido: encriptar com uma chave pública de 1024 bits. 
Mais lento: encriptar com uma simétrica de 32 bits.
Interatividade
Tenho um par de chaves pública/privada e uma chave simétrica. Quero encriptar meu HD 
inteiro (500 GB) e não vou enviar para ninguém. Posso dizer que:
a) Mais rápido: encriptar com uma chave simétrica de 512 bits. Mais lento: encriptar com uma 
chave pública de 512 bits.
b) Não posso encriptar um HD inteiro. Leva muito tempo.
c) Devo encriptar o HD com minha chave privada.
d) Devo encriptar o HD com minha chave privada e encriptar minha chave privada com minha 
chave simétrica.
e) Mais rápido: encriptar com uma chave pública de 1024 bits. 
Mais lento: encriptar com uma simétrica de 32 bits.
Resposta
 Pública/Privada (assimétrica) Parte 1 – repasse de KS
 Autenticação
+
 Confidencialidade
(ou vice-versa)
 Quem abre C1?
 Quem abre C2?
Criptografia
KPRIB
A
Remetente
B
Destinatário
KPUBB
EA
C2C1 C1
KPUBAKPRIA
EA DA DA
KS KS
 Pública/Privada (assimétrica) Parte 2 – encriptação com KS
 Chave de sessão (KS): chave simétrica repassada a um parceiro por meio de criptografia 
assimétrica
 KS tem caráter temporário – usada só naquela transação
 KS foi repassada com autenticação + confidencialidade
Criptografia
M M
A
Remetente
B
DestinatárioEA
C
DA
KS KS
 Pública/Privada (assimétrica)
 Vantagens
 Confidencialidade
 Autenticação
 Troca de chaves seguras
 Razoável não repúdio
Criptografia
 Desvantagens
 Lenta (500 a 2000 x simétrica)
 Não garante integridade
Algoritmos 
assimétricos
Tam. chave Matemática
RSA 512, 1024, 2048, 4096 bits Fatoração de números primos
Curvas elípticas 160-512 bits Logaritmo discreto
Códigos lineares A partir de 88 KB McEllice
 Pública/Privada (assimétrica)
 Rivest-Shamir-Adelman (RSA)
 Algoritmo baseado no problema da fatoração de inteiros (1978)
Criptografia
RSA - geração de chaves pública e privada
Gerar dois números aleatórios p e q
Calcular n = p.q
Calcular ϕ = (p-1).(q-1)
Escolher um número 1 < e < ϕ, tal que mdc(e, ϕ) = 1
Calcular o (único) número 1 < d < ϕ, tal que e.d = 1 mod (ϕ)
Chave privada: d
Chave pública: e, n
 Pública/Privada (assimétrica)
 Rivest-Shamir-Adelman (RSA)
 Chaves bits
 512, 1024, 2048, ...
Criptografia
RSA - cifração - decifração
Cifração
Seja M uma mensagem representada por um inteiro 
Para cifrar M com uma chave pública e, n
Calcular c=me mod (n) = p.q
Decifração
Para decifrar c utilizando a chave privada d
Calcular m=cd mod (n)
Um dos problemas da criptografia simétrica é o compartilhamento da chave. Uma forma de 
realizar a troca de chaves com segurança é por meio de um canal seguro, que pode ser 
conseguido com:
a) Criptografia assimétrica, gerando autenticação.
b) Criptografia simétrica, gerando confidencialidade.
c) Criptografia assimétrica, gerando uma chave pública e uma chave privada.
d) Criptografia assimétrica, gerando confidencialidade + autenticação.
e) Criptografia simétrica, gerando confidencialidade + autenticação.
Interatividade
Um dos problemas da criptografia simétrica é o compartilhamento da chave. Uma forma de 
realizar a troca de chaves com segurança é por meio de um canal seguro, que pode ser 
conseguido com:
a) Criptografia assimétrica, gerando autenticação.
b) Criptografia simétrica, gerando confidencialidade.
c) Criptografia assimétrica, gerando uma chave pública e uma chave privada.
d) Criptografia assimétrica, gerando confidencialidade + autenticação.
e) Criptografia simétrica, gerando confidencialidade + autenticação.
Resposta
Troca de chaves Diffie-Hellman
Criptografia
 Troca de chaves (Diffie-Hellman)
 Diffie-Hellman
 Algoritmo para troca de chaves de sessão entre duas entidades
 Amplamente utilizado em transações atuais que envolvem o protocolo SSL/TLS
Criptografia
 Troca de chaves (Diffie-Hellman)
 Baseado no problema do logaritmo discreto
 Dados r, p, x, é “fácil” calcular y = rx (mod p)
 Dados r, p, y, é “difícil” calcular x
Criptografia
 Troca de chaves (Diffie-Hellman)
 f(r,x,p) = r x mod p
 p = primo muito grande
 r = raiz primitiva de p
 0 < r < p
 0 < x < p
Criptografia
RESUMO
A B
r, p 
públicos
KA = KB
Qual é a função f?
Define número secreto a
Calcula fA = f (r,a,p)
Envia fA para B
Calcula KA = f (fB, a, p)
Define número secreto b
Calcula fB = f (r,b,p)
Envia fB para A
Calcula KB = f (fA, a, p)
 Troca de chaves (Diffie-Hellman)
 f(r,x,p) = r x mod p
Criptografia
Exemplo Numérico
f (r, x, p) = rx mod p
A B
p = 563
r = 5
a = 9
fA = r
a mod p
= 59 mod 563
= 78
KA = (fB)
a mod p
= (rb mod p)a mod p
= rba mod p
= 5349 mod 563
= 117 
b = 14
fB = r
b mod p
= 514 mod 563
= 534
KA = (fA)
b mod p
= (ra mod p)b mod p
= rba mod p
= 7814 mod 563
= 117 
 Troca de chaves (Diffie-Hellman)
Criptografia
 Troca de chaves (Diffie-Hellman)
 Problemas resolvidos
 Confidencialidade na troca/negociação da chave de sessão Ks
 Problemas não resolvidos
 Autenticação da entidade parceira
 Como garantir que o parceiro não é um impostor?
Criptografia
 Marque a alternativa errada.
a) Mesmo cifrada, uma mensagem enviada com confidencialidade assimétrica pode ser 
falsificada sem o destinatário perceber.
b) A criptografia simétrica é usada para a enviar as chaves de sessão Diffie-Hellman.
c) Um atacante não consegue quebrar uma chave Diffie-Hellman, mas pode forjar a 
identidade e se passar por um dos parceiros.
d) Uma mensagem enviada apenas com autenticação (assimétrica) pode ser lida por 
qualquer um.
e) Encriptar e enviar chaves de sessão simétricas com chaves 
pública/privada aumenta a rapidez do processo de 
encriptação.
Interatividade
 Marque a alternativa errada.
a) Mesmo cifrada, uma mensagem enviada com confidencialidade assimétrica pode ser 
falsificada sem o destinatário perceber.
b) A criptografia simétrica é usada para a enviar as chaves de sessão Diffie-Hellman.
c) Um atacante não consegue quebrar uma chave Diffie-Hellman, mas pode forjar a 
identidade e se passar por um dos parceiros.
d) Uma mensagem enviada apenas com autenticação (assimétrica) pode ser lida por 
qualquer um.
e) Encriptar e enviar chaves de sessão simétricas com chaves 
pública/privada aumenta a rapidez do processo de 
encriptação.
Resposta
 BARANAUSKAS, J. A. Funções Lógicas e Portas Lógicas. Departamento de Computação e 
Matemática – FFCLRP-USP. Disponível em: https://www.docsity.com/pt/ab-funcoes-logicas-
portas-logicas/4909252/. Acesso em: 12 jun. 2020.
 BISHOP, Matt. Computer security: art and science. Boston: Addison-WesleyProfessional, 
2004.
 Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) 
Profile Request for Comments: 3280 - R. Housley - RSA Laboratories - W. Polk – NIST - W. 
Ford – VeriSign - D. Solo – Citigroup - April 2002. Disponível em: 
http://www.ietf.org/rfc/rfc3280.txt?number=3280
Referências
 ITU-T Recommendation X.509 (1997 E): Information Technology – Open Systems 
Interconnection – The Directory: Authentication Framework, June 1997.
 NIST Special Publication 800-33. Computer security: undelying technical models for 
information technology security. NIST, Dec. 2001.
 SEWAYBRIKER, R. Livro-texto do CST em segurança da informação. São Paulo: UNIP, 
2019, p. 178.
 STALLINGS, William. Computer security: principles and practice (3rd edition). London: 
Pearson Education, 2014.
 TANENBAUM, A. S. Redes de computadores. 4. ed. São Paulo: Campus.
Referências
ATÉ A PRÓXIMA!

Continue navegando