Criptografia Assimétrica e Funções de...

13
SEG ©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 1 Criptografia Assimétrica e Funções de Síntese SEG ©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 2 Criptografia Assimétrica Também chamada de cifra de chave pública Cifração com chave pública Ku e decifração com chave privada Kr Em geral é muito mais lenta que a criptografia simétrica SEGURANÇA do PRINCÍPIO: Baseia-se na dificuldade prática (inexequibilidade) de determinar soluções para problemas como factorização de números compostos de primos grandes, ou cálculo de logaritmos discretos. PROPRIEDADES: D(Kr,E(Ku,m))=m e E(Ku,D(Kr,m))=m Exemplos de Algoritmos: Diffie-Helmann, para computar um número secreto partilhado (1976); Rivest- Shamir-Adleman (RSA) (1978)

Transcript of Criptografia Assimétrica e Funções de...

Page 1: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 1

Criptografia Assimétrica e Funções de Síntese

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 2

Criptografia Assimétrica

• Também chamada de cifra de chave pública– Cifração com chave pública Ku e decifração com chave privada Kr

– Em geral é muito mais lenta que a criptografia simétrica

• SEGURANÇA do PRINCÍPIO:– Baseia-se na dificuldade prática (inexequibilidade) de determinar soluções

para problemas como factorização de números compostos de primos grandes, ou cálculo de logaritmos discretos.

• PROPRIEDADES:– D(Kr,E(Ku,m))=m e E(Ku,D(Kr,m))=m

• Exemplos de Algoritmos: – Diffie-Helmann, para computar um número secreto partilhado (1976); Rivest-

Shamir-Adleman (RSA) (1978)

Page 2: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 3

Criptografia Assimétrica - Diffie-Hellman• PRINCÍPIO:

– Lançou as bases para criptografia assimétrica em 1976

– É baseado em uma one-way function (função irreversível) e na correspondente dificuldade em calcular logaritmos discretos em aritmética modular

• OBJECTIVO:– Obter um número secreto K, partilhado entre A e B,

sem o comunicar em claro

• OPERAÇÃO:

– escolher dois números primos m e n públicos (mgrande)

– A gera um número aleatório xa

– A calcula ya=mxa MOD n

– B gera um número aleatório xb

– B calcula yb =mxb MOD n

– ya e yb são tornados públicos

– Cada um calcula K localmente

– K= ybxa MOD n =ya

xb MOD n = mxaxb MOD n

ya = mXa mod n

public m, nsecret xa secret xb

A B

yb = mXb mod n

ya

yb

K = yb Xa mod n K = ya Xb mod n

K K

logm (mu MOD n) = u ?

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 5

Criptografia Assimétrica - RSA

• Foi publicado em 1978 por três investigadores do MIT: Rivest, Shamir e Adleman (RSA)

• Pode ser usado tanto para cifração quanto para assinatura

• PRINCÍPIO:– Trapdoor one-way function: inversa só é obtida se soubermos a trapdoor (chaves)

– Teoricamente o RSA é seguro se/enquanto for difícil a resolução do problema matemático: factorização de números compostos de primos grandes

• Operação:– chave pública: Ku = (e, n); chave privada: Kr = (d, n) , calculadas em conjunto

– Cifrar: E(Ku,m) = me MOD n = c

– Decifrar: D(Kr,c) = cd MOD n = m

e, n

miCi

mi e mod n

encryption decryption

mi

A B

ci d mod n

d, n

n = pq => p,q ?

Page 3: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 7

Segurança do RSA

• Existem quatro abordagens para atacar o RSA:1. Procura de chaves “à bruta”

• inexequível se usarmos chaves grandes (≥ 1024 bits)

2. Ataques matemáticos baseados na superação da dificuldade da factorização módulo n, que encontrem d

• ainda seguro com chaves ≥ 1024 bits

3. Ataques temporais (timing attacks) na execução da operação de decifração

• com acesso ao sistema (ex. cartões), estimando d pelo tempo que demora uma decifração, estudando várias amostragens

4. Ataques sistémicos devido a parametrizações deficientes:

» cifração ou assinatura de mensagens pequenas

» cifra previsível de mensagens

» exploração do carácter homomórfico do RSA (smooth numbers)

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 9

PKCS: A solução para os problemas do RSA

• PKCS (Public-Key Cryptography Standard):– Grupo de padrões definidos pela RSA Security

– Define codificações para (entre outros):

» Chaves públicas e privadas do RSA

» Assinaturas RSA

» Mensagens pequenas cifradas e/ou assinadas usando RSA

» Cifração baseada em passwords

– O uso destes padrões previne ameaças como:

» Cifra previsível de mensagens

» Assinatura com “números suaves” (smooth numbers)

» Múltiplos recipientes quando e=3 (*)

» Assinatura com padding de baixa ordem quando e=3

(*) – é frequente utilizar-se e pequeno e =3

Page 4: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 10

• A criptografia assimétrica não tem o problema da distribuição de chaves da criptografia simétrica

• Entretanto, o problema agora está na autenticidade das chave públicas

– Como saber se afirmações do tipo “12DH457B6A9 é chave pública do Pedrinho” são verdadeiras?

– Um chave pública a ser enviada pode ser interceptada e substituída…

– Ou, se uma base de dados de chaves públicas (PKI ou CA) é comprometida, qualquer chave armazenada pode ser substituída por uma chave falsa criada pelo atacante

– A definição de uma autoridades certificadores (alguém que certifique a autenticidade das chaves) é necessária

Problemas Gerais da Criptografia Assimétrica

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 11

Síntese Segura ou Digest de Mensagens

• OBJECTIVO: – Função usada para gerar um conjunto de blocos de k bits a partir de

um conjunto de elementos de tamanho variável com n bits (onde usualmente k << n),

– A idéia é similar aos CRC (usados nos protocolos de redes), mas muito mais robusto no que diz respeito a colisões

– Muito mais rápido que a criptografia simétrica

• Exemplos de Funções: MD5, SHA-1, SHA-256

DigestMessageDigest

Initial Vector

Message (previously padded)

Digest Digest

512b

128 bits

Page 5: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados.

Síntese Segura ou Digest de Mensagens

• Propriedades das funções de síntese segura:Dada uma função de síntese segura H: A→B

1. Para qualquer m ∈ A, H(m) é fácil de calcular

2. Para qualquer h∈ B, é inexequível encontrar m ∈ A tal que H(m)=h

3. É inexequível encontrar dois valores m, m′ ∈ A tal que m ≠ m′ e H(m) = H(m′)

4. Dado qualquer m ∈ A, é inexequível encontrar um m′ ≠ m ∈ A tal que H(m) = H(m′), mesmo que m seja parecida com m′

• Resistência a Colisão (para sínteses de n bits)– A probabilidade de encontrar uma mensagem corresp. a uma síntese é 2-n

– A probabilidade de encontrar duas mensagens com a mesma síntese é 2-n/2

12

não colisão

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 14

Síntese Segura - MD5

• Proposto por Ron Rivest (investigador do MIT)

• O último de uma série de funções MD2, MD4, …

• Produz um valor de síntese de 128 bits

• Até recentemente era a função de síntese segura mais usada– Recentemente foram encontradas falhas tanto através de ataques

de força bruta quanto por criptanálise

• Especificado num padrão IETF (RFC1321)

Page 6: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 15

Síntese Segura - MD5

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 16

Síntese SeguraSecure Hash Algorithm (SHA-1)

• Proposto pelo NIST e pela NSA em 1993

• Revisto em 1995, quando lhe foi atribuído o nome SHA-1

• Padrão americano usado com o esquema de assinaturas DSA– Descrito no padrão FIPS 180-1 1995 e também no RFC3174

– Algoritmo: SHA

– Padrão: SHS

• Produz sínteses de 160 bits

• Baseia-se no desenho do MD4 com algumas diferenças (que aumentam muito sua segurança)

• Actualmente, é o algoritmo mais usado, porém algumas fraquezas foram descobertas recentemente…

• Existem diversas versões do SHA. Estas são mais seguras à medida que o tamanho da síntese produzida aumenta

Page 7: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 17

Síntese SeguraComparação das diferentes versões do SHA

SEGURO

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 18

Autenticação de Mensagens e Assinatura Digital

Page 8: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 19

Checksums Criptográficos

• Digests de mensagens não forjáveis (sínteses seguras) protegidas por uma chave simétrica K: Hk(M)

• K é conhecido apenas nos extremos da comunicação, o que garante a integridade e autenticidade das mensagens

• Apropriado quando a confidencialidade não é necessária

• O conteúdo é verificado através do re-cálculo do MAC/MIC

• EXEMPLO: HMAC

MESSAGE DIGEST

K

Message

EncryptEK

Digest

MAC/Signature Message

MAC - Message Authentication Code

MIC - Message Integrity Check

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 20

HMAC(Hash Message Authentication Code)

• Definido no RFC2104 do IETF• Utiliza funções de síntese na mensagem:• Hk(m) = H(k′ ⊕ opad || H(k′ ⊕ ipad || m))

– ⊕ ou exclusivo– || concatenação– K’ é a chave K preenchida (padded) para ter o tamanho de um bloco– opad e ipad são constantes específicas de preenchimento– Overhead é de apenas mais 1 execução da função de síntese e algumas

operações lógicas, em relação a geração directa do digest da mensagem

• Qualquer função de síntese segura pode ser usada no HMAC. Exemplos: MD5 (HMAC-MD5), SHA-1 (HMAC-SHA-1), etc.

• A segurança e a eficiência do algoritmo dependem da função de síntese segura usada.

• A função de síntese pode ser substituída para fins de melhorar segurança e/ou eficiência.

Page 9: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados.21

HMAC(Hash Message Authentication Code)

Hk(m) = H(k′ ⊕ opad || H(k′ ⊕ ipad || m))

onde:– Constantes ipad e opad;– ⊕ ou exclusivo;– || concatenação.

overheadem rel a H simples

1ª síntese

2ª síntese

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 22

MACs são assinaturas?

• MAC: – Alice e Bob partilham uma chave k

– Alice envia m || Hk(m) para Bob

• Isto é uma assinatura digital:– Bob verifica que recebeu m de Alice

• Certo?

ERRADO!

• Isto não é uma assinatura digital!– Um terceira parte não pode determinar se foi Alice ou Bob quem

gerou a mensagem

Page 10: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 23

Assinaturas Digitais

• Já vimos como fazer autenticação de mensagens através do uso de síntese criptográficas

• No entanto, não resolvemos o problema da falta de confiança entre as partes que partilham chaves:

– Alice pode forjar uma mensagem e dizer que veio de Bob

– Bob pode negar ter enviado uma mensagem

• Assinaturas digitais “reais” permitem: – Verificar o autor, data e hora de produção da assinatura

– Autenticar qualquer conteúdo da mensagem

– Tudo pode ser verificado por uma terceira parte

• Assim, assinaturas digitais devem incluir algumas propriedades extra…

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 24

Assinaturas Digitais: Propriedades

• Autenticidade– quem assinou é identificável univocamente pela assinatura

• Não-forjamento– quem assinou é o próprio e fê-lo deliberadamente

• Integridade– Uma assinatura correcta num documento garante que este não é

alterável sem detecção

• Não-reutilização– a assinatura ou parte do documento não é reutilizável em outro

documento

• Não-repudiação– o assinante não pode negar a sua assinatura

Page 11: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 25

Assinaturas Digitais: Concretização

• Assinatura Arbitrada– Envolve um árbitro que age como um mediador de confiança

– Toda gente tem de confiar no árbitro, que pode ou não ver a mensagem

– Usualmente baseia-se em criptografia simétrica

– Problema: Árbitro é bottleneck : ponto de estrangulamento e ponto singular de falha

• Assinatura Directa– Envolvem apenas o emissor e o receptor

– O receptor deve ter acesso à chave pública do emissor (para verificar a sua assinatura)

– Usualmente baseia-se em criptografia assimétrica

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 27

Assinatura com Criptografia Assimétrica

• Assinatura directa, não necessita de árbitro

• PROTOCOLO– Alice assina com chave privada Sa(M) = M’ e envia a Bob

– Bob verifica com a chave pública Va(M) de Alice: Va(M’) = Va ( Sa(M) ) = M

• PROPRIEDADES:– não-forjamento; autenticidade; não-repudiação; integridade

– Não satisfaz não-reutilização:

» o documento todo pode ser reutilizado (ataque de replay).

» Solução: incluir informação não reutilizável (ex. estampilha temporal, números de sequência, nonces)

M

signed text

Signature(or encryption)

Algorithmplaintext

M

plaintext

A B

Private Key of AKr

a

Public Key of AKu

a

Verification(or decryption)

Algorithm

S

Page 12: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 28

Assinatura com Criptografia Assimétrica(e síntese segura)

• É o mais usado na prática!– Daqui para frente, quando falarmos em

assinatura, é isso que estamos a considerar

• Eficiência– Evita que Alice tenha de assinar toda a

mensagem

– A assinatura é feita apenas sobre a síntese

• Permite assinaturas múltiplas– Alice e Beto assinam uma síntese

– Documento segue com todas as assinaturas

– Estas são verificáveis em separado

• Arquivos notariais– Alice gera síntese de um documento e

apresenta ao Notário

– Notário data, assina e guarda

– Mais tarde, Alice pode provar origem do documento mostrando-o só nessa altura: é feita síntese e comparada

• Exemplos: DSA/DSS

MESSAGE DIGEST

K

Message

SignSK

Digest

Signature Message

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 29

Assinatura com Criptografia Assimétrica(e síntese segura)

Protocolo mais comum

Page 13: Criptografia Assimétrica e Funções de Síntesepjv/seg/Acetatos-teoricas/seg-2-2-par-assimetrica... · calcular logaritmos discretos em aritmética modular ... – Teoricamente

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados. 30

Problemas com Assinaturas Digitais

• Gestão de chaves é um ponto crucial– Precisa tratar de tipos diferentes de chaves (ex. chaves de sessão e

de longa duração)

– Precisa conter uma infra-estrutura para identificar partes e revogar chaves

• Repudiação– Alice pode mentir e dizer que a sua chave foi comprometida antes

de uma determinada mensagem assinada ser enviada

– Solução: estampilha temporal na assinatura

– Entretanto, sempre existe uma janela de vulnerabilidade não técnica

SEG©2002-14 P. Veríssimo, A. Bessani – Todos os direitos reservados.

Digital Signature Standard (DSS)

• Esquema de chave pública apenas para assinatura(ao contrário do RSA), que combina com síntese– (recordar que não é recomendado usar o mesmo algoritmo para

cifração e assinatura)

• projectado pelo NIST & NSA no início dos 90's • DSS é a norma, DSA o algoritmo• PRINCÍPIO:

– depende da inexequibilidade de calcular logaritmos discretos emcampos finitos

– cria uma assinatura de 320bits; segurança semelhante a RSA para mesmo comprimento de chave

– computacionalmente eficiente: ElGamal modificado para maiorrapidez da assinatura vs. verificação – bom para smart cards

– preserva chave de longa duração: uma chave de assinar/assinatura

• VIRTUDES: – assina síntese de texto e não expõe segredos de longa duração

32