Baixe Criptografia e outras Notas de estudo em PDF para Matemática, somente na Docsity!
2001 / 1 Segurança de Redes/Márcio d’Ávila 62
Criptografia de Chave Pública
- Aplicações
- Privacidade, Autenticação: RSA, Curva Elíptica
- Intercâmbio de chave secreta: Diffie-Hellman
- Assinatura digital: DSS (DSA)
- Vantagens
- Não compartilha segredo
- Provê autenticação
- Provê não-repúdio
- Escalável
- Desvantagens
- Lenta (computacionalmente intensiva)
- Requer autoridade de certificação (chave pública confiável)
Diffie-Hellman
- É um método para troca segura de chaves
- Inventado em 1976
- O objetivo é permitir a troca de chaves entre
duas entidades remotas através de um meio
de comunicação não segura
- É baseado na operação de logaritmos
discretos
2001 / 1 Segurança de Redes/Márcio d’Ávila 64
Raiz Primitiva
- O logaritmo discreto é uma função
unidirecional
- Logaritmo discreto é baseado na raiz primitiva
- Raízes primitivas de um número primo p são
as potências por todos os inteiros de 1 a p-
- Se a é uma raiz primitiva de p, então
a mod p, a^2 mod p, ..., a p-1^ mod p
são distintos e consistem em inteiros de 1 a
p-
Logaritmos Discretos
- Para um inteiro b uma raiz primitiva a de um
número primo p é possível encontrar um
expoente i tal que:
b = ai^ mod p onde 0 ≤ i ≤ (p-1)
- O expoente i é chamado de logaritmo discreto
de b na base a mod p.
- Dado a , i e p , é fácil calcular b
- Dado a , b e p , é difícil calcular i
2001 / 1 Segurança de Redes/Márcio d’Ávila 68
Exemplo Diffie-Hellman
- p = 97, α = 5
- Alice sorteia Xa = 36 e Bruno sorteia Xb =
- Alice calcula Ya = 5^36 = 50 mod 97
- Bruno calcula Yb = 5^58 = 44 mod 96
- Bruno calcula K = (Ya) Xb^ mod 97 = 50 58
= 75 mod 97
- Alice calcula K = (Yb) Xa^ mod 97 = 44 36
= 75 mod 97
Diffie-Hellman – Conclusão
- Diffie-Hellman é uma técnica muito usada
para troca de chaves
- SSL (Secure Socket Layer)
- PGP (Pretty Good Privacy)
- É eficiente
- Porém está sujeito ao ataque do homem no
meio na troca de valores públicos Y
- Segurança do Diffie-Hellman:
- Criptoanálise: conhecidos q , α e Y, é preciso calcular o log discreto para obter X (difícil)
2001 / 1 Segurança de Redes/Márcio d’Ávila 70
Algoritmo RSA
- O algoritmo RSA foi desenvolvido em 1977
pelo Ron Rivest, Adi Shamir e Len Adleman
- RSA é um algoritmo de chave pública
- É baseado em logaritmos discretos
- As senhas são geradas com base em dois
números primos grandes (mais de 100
dígitos)
- A segurança é baseada na dificuldade de
fatoração de números inteiros
Algoritmo RSA
- Geração do par de chaves (pública/privada)
- Selecionar p e q , ambos números primos
- Calcular n = p × q
- Calcular φφφφ( n ) = ( p - 1)( q - 1) [quociente de Euler]
- Selecionar inteiro e , primo relativo a φ( n )
- Calcular d = e -1^ mod φ( n ) [ ou de = 1 mod φ( n ) ]
- Chave Pública: KU = { e , n }
- Chave Privada: KR = { d , n }
- Encriptação: C = M e^ mod n , M < n
- Decriptação: M = C d^ mod n
2001 / 1 Segurança de Redes/Márcio d’Ávila 74
Exemplo RSA
- Primos p = 7 e q = 19. n = pq = 119, φ( n ) = 6×18 =
- Senha pública do destinatário: { e , n } = {5, 119}
- Senha secreta do destinatário: { d , n } = {77, 119}
- Mensagem M: 19
- Mensagem cifrada C: 66
Segurança do RSA
- Criptoanálise: conhecendo e e n , é preciso fazer a fatoração de n , para obter os dois primos p e q e calcular d
- Fatoração é uma tarefa demorada
- Pentium 200Mhz é uma máquina de 50 MIPS
2001 / 1 Segurança de Redes/Márcio d’Ávila 76
Assinatura digital usando RSA
- O algoritmo RSA pode ser usado para assinar
digitalmente um documento
- A assinatura garante a autenticidade
- A assinatura é gerada com base na senha
secreta do assinante
- Desta forma um documento assinado só
poderia ter sido gerado pelo dono da senha
Assinatura digital usando RSA
2001 / 1 Segurança de Redes/Márcio d’Ávila 80
Distribuição de Chaves
- A distribuição de chaves é um possível ponto
de falha também em um sistema de chave
pública
- Um usuário C pode gerar uma par KR/KU em
nome de B e enviar a chave pública para A
- A, ao gerar uma mensagem pensando que é
para B, está gerando uma mensagem que na
verdade somente C tem a chave para ler
Autoridade de Certificação
- Autoridades de certificação são usadas para
distribuir chaves públicas garantindo a sua
autenticidade
- A CA (Certificate Authority) é uma entidade
confiável e reconhecida (VeriSign, Thawte,
ValiCert, GlobalSign, Entrust, BelSign)
- A CA emite certificado digital que inclui a
chave pública de uma entidade, com dados
para identificação confiável desta e assinado
digitalmente com a chave privada da CA
2001 / 1 Segurança de Redes/Márcio d’Ávila 82
Autoridade de Certificação
- A chave pública da CA deve ser muito bem
conhecida e amplamente disponível, pois é
usada por quem recebe um certificado vindo
da CA, para validá-lo (autenticar assinatura)
- Exemplo de conteúdo de Certificado Digital:
Nome do indivíduo e/ou organização Chave pública do detentor Data de validade do certificado Numeração de controle do certificado Identificação da CA Assinatura digital da CA
Certificado X.
- Padrão ITU-T para certificado: X.
- Usado em S/MIME, IPSec, SSL/TLS, SET
Versão Número serial do certificado Identificação do algoritmo de assinatura Nome do emitente: CA que assina o certificado Período de validade do certificado (início e fim) Nome do assunto: usuário que o certificado identifica Chave pública do assunto
Assinatura da CA
Identificação única do emitente Identificação única do assunto Extensões: Outros dados
V
V2/
2001 / 1 Segurança de Redes/Márcio d’Ávila 86
MAC
M
Algoritmo MAC
K
MAC
M
Algoritmo MAC
K
MAC
Comparar
Transmitir
Algoritmos Hash Unidirecionais
- Algoritmo Hash Unidirecional:
- Toma uma mensagem arbitrária M e gera uma compilação da mensagem ( message digest ) de tamanho fixo H(M) como saída (como nos MACs)
- O algoritmo não precisa ser reversível
- Diferente do MAC, a função hash não usa uma chave secreta como parâmetro
- A autenticação da mensagem passa a ser baseada na autenticação segura do digest : - Adicionar de um valor secreto a M antes de gerar H(M) - Criptografia convecional do message digest - Assinatura do digest com a chave privada do emissor
2001 / 1 Segurança de Redes/Márcio d’Ávila 88
Algoritmos Hash Unidirecionais
Algoritmos Hash Unidirecionais
- Exemplo de um hash simples de n bits:
- Tomar a mensagem em blocos de n bits
- Fazer XOR do bit i (de 1 a n ) de todos os blocos
- Ci = bi1 ⊕ bi2 ⊕ ... ⊕ b (^) in
b b
b1m
b b
b2m
bn bn
bnm
C 1 C 2 C (^) n
Bloco 1
Bloco 2
Bloco m
Bit 1 Bit 2 Bit n
2001 / 1 Segurança de Redes/Márcio d’Ávila 92
HMAC
Autenticação de Usuário
- Kerberos
- Parte do Projeto Athena, do MIT
- Problema: em um ambiente distribuído aberto, é necessário autenticar requisições e restringir acesso a usuários autorizados
- Idéia do Kerberos: é difícil garantir a segurança de muitos servidores em uma rede, mas é viável garantir alta segurança de um único servidor
- Kerberos: servidor de autenticação central que contém e valida a senha (chave) e autorizações de todos os usuários e servidores da rede
- Baseado em criptografia convencional
Kerberos