breve introdu˘c~ao a criptogra a modernardahab/cursos/mo829-mc932/welcome_files/slides/... · rsa...

23
MO829-MC932 - Algoritmos Criptogr´ aficos Prof. R Dahab Breve introdu¸ ao ` a criptografia moderna Modelo de comunica¸ ao Criptografia sim´ etrica Criptografia assim´ etrica Algoritmos criptogr´ aficos IC-UNICAMP 2006-1s

Upload: dokhuong

Post on 28-Nov-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Breve introducao a criptografia moderna

• Modelo de comunicacao

• Criptografia simetrica

• Criptografia assimetrica

• Algoritmos criptograficos

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Alice e Beto

• Supomos Alice (A) e Beto (B) comunicando-se por meio de um

canal inseguro, buscando obter nas suas trocas de mensagens

requisitos de

– confidencialidade;

– integridade;

– autenticacao da origem de mensagens;

– autenticacao do parceiro de comunicacao;

– nao-repudiacao.

• Outros requisitos podem ser desejaveis em certos casos como

atualidade, anonimato, etc.

• E claro que Alice e Beto podem nao ser pessoas.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

e Ivan, o terrıvel

• Supomos que Ivan, o adversario, tenha poderes consideraveis.

• Nao so pode escutar o canal de comunicacao sem revelar sua

presenca, como tambem modificar ou inserir informacao no

canal.

• Conhece tambem todos os algoritmos e protocolos da

comunicacao.

• So nao conhece dados secretos, escolhidos por A, B ou outros

parceiros.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Criptografia simetrica

• A e B estabelecem uma informacao (chave) comum k, via um

canal secreto e autenticado.

• Usam algoritmos bem conhecidos para ciframento (Enck(m)) e

deciframento (Deck(m)) obtendo assim confidencialidade da

informacao m em transito.

• Alice e Beto devem utilizar em conjunto uma funcao Mack(m)

(message authentication code) para prover autenticacao de

origem e integridade de m.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Criptografia simetrica

Pros e contras:

:) Algoritmos sao rapidos e simples de implementar, inclusive em

hardware.

:( Acordo de chaves entre Alice e Beto deve ser feito via um canal

secreto, o que exige informacoes secretas adicionais.

Autoridades centrais de distribuicao de chaves sao uma solucao

pratica em ambientes fechados.

:( Gerenciamento de chaves pode ser complicado numa

comunidade grande: cada entidade deve manter e gerenciar um

grande numero de chaves.

:( Nao-repudio e impossıvel ja que nao ha como distinguir Alice

de Beto.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Criptografia simetrica

• Algoritmos mais conhecidos sao o DES (Data Encryption

Standard) e o AES (Advanced Encryption Standard, ambos

padronizados pelo NIST para uso em aplicacoes nao sensıveis.

• DES ja nao e mais recomendado na sua forma mais simples, ja

que o espaco de chaves e pequeno (256).

• AES o substituiu, resultado de um processo de selecao publico.

Tamanho de chaves e de 128 bits.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Criptografia assimetrica (de chave publica)

• Proposta independentemente por Diffie & Hellman e Merkle na

decada de 1970.

• A e B estabelecem chaves para ciframento e deciframento via

um canal autenticado (sem ser necessariamente secreto).

• Cada entidade X possui um (ou mais) par de chaves distintas,

publica (eX) e privada (dX).

• Como diz o nome, eX e publica e dX e de conhecimento

exclusivo de X.

• eX e dX sao vinculadas por uma funcao matematica mas, obter

dX a partir do conhecimento de eX somente, e um problema

computacionalmente intratavel.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Confidencialidade com chave publica

• Para ocultar m, A envia para B a mensagem cifrada

c = EnceB(m).

• Para reaver m, B computa DecdB(c).

Nao ha autenticacao da origem de c: uso da chave publica e

franqueado a todos.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Autenticacao com chave publica

• Para que Beto possa autenticar a origem da mensagem m,

Alice envia, alem de m, a cadeia s = SgndA(m).

• A funcao Sgn() corresponde um predicado Ver() tal que

VereA(s′, m) e verdadeiro se e somente se s′ = s = SgndA

(m).

• Assim, s e uma especie de assinatura digital de Alice em m.

• A assinatura e uma evidencia, para qualquer terceira parte, de

que s foi gerada por A. Obtem-se desta forma,

simultaneamente, autenticacao de origem, integridade e

nao-repudio de m.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Criptografia de chave publica

Pros e contras:

:( Algoritmos sao lentos, inclusive em hardware.

:( E essencial que chaves publicas sejam obtidas de forma

autenticada. Na pratica, em ambiente aberto, e necessaria a

existencia de uma ICP–infra-estrutura de chaves publicas, uma

realidade ainda em gestacao.

:) Distribuicao e gerenciamento de chaves simples e elegantes.

:) Possibilidade de se obter nao-repudio de autoria de mensagens.

:) Abertura de areas ferteis de pesquisa, pura e aplicada.

:) Outras aplicacoes muito interessantes e uteis: protocolos de

conhecimento zero; bit commitment e outras.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Algoritmos de chave publica

As tres classes de algoritmos de chave publica mais utilizadas

baseiam-se na dificuldade dos seguintes problemas:

• fatoracao de inteiros (RSA entre outros);

• logaritmo discreto no grupo Fp∗ (ElGamal e variantes);

• logaritmo discreto no grupo de pontos de uma curva elıptica

definida sobre um corpo finito (ECDSA e outros).

Em cada um deles, o problema de se obter a chave privada a partir

da chave publica e equivalente a resolver o problema

correspondente.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

RSA

• RSA = R. Rivest, A. Shamir e L. Adleman (1977-1978).

• De longe, o mais conhecido e utilizado dos sistemas de chave

publica.

• Baseia-se na dificuldade da fatoracao de numeros inteiros muito

grandes.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

RSA

Geracao de chaves

• Selecione dois primos grandes, p e q;

• calcule n← p.q e φ(n) = (p− 1).(q − 1);

• selecione inteiros e, d tais que

mdc((e, d), φ(n)) = 1 e e.d ≡ 1 (mod n).

• A chave publica e (e, n) e a chave privada e d.

Encontrar d a partir de (e, n) e equivalente a fatorar n.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

RSA

Ciframento e deciframento

• Dada a mensagem m, ja convertida em um inteiro no intervalo

[0, n− 1],

– a mensagem cifrada e c = me mod n;

– o deciframento de c e feito calculando-se cd mod n, que e

igual a m!

• A demonstracao da correcao e razoavelmente simples e usa

resultados classicos da Teoria dos Numeros.

• Encontrar m a partir de c sem o conhecimento de d significa

poder calcular raızes e-esimas modulo n, um problema que se

acredita tao difıcil quanto fatorar n.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

RSA

Geracao de assinaturas digitais

• Dada a mensagem m, calcule h = H(m), o resumo criptografico

(hash) de m;

• calcule a assinatura s = hd mod n de m.

Verificacao de assinaturas digitais

• Dadas m e s calcule h = H(m) e h′ = se mod n;

• aceite a assinatura se e somente se h = h′.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

RSA

Eficiencia

• A operacao custosa e a exponenciacao modular.

• Expoente publico pode ser escolhido de forma a ter poucos 1s,

diminuindo assim o custo da exponenciacao, como veremos.

• Escolha comum para exponente e e 216 + 1.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Sistemas baseados no logaritmo discreto (DL)

• Primeiros a proporem o uso de DL foram Diffie e Hellman, em

1976, para estabelecimento de chaves simetricas.

• O primeiro metodo para ciframento e assinaturas baseado em

DL foi proposto por T. ElGamal em 1984.

• O esquema de ElGamal e mais que um simples metodo; e um

arcabouco que deu origem a variantes, entre as quais os

sistemas baseados em curvas elıpticas (ECC).

• Veremos a seguir ElGamal basico para ciframento e uma de

suas variantes, o DSA, o primeiro algoritmo de assinatura

digital padronizado pelo governo americano.

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Sistemas baseados no DL

Geracao de parametros publicos.

Entrada: Parametros de seguranca (l, t).

Saıda: Parametros publicos (p, q, g).

1. Escolha um primo q de t bits e um primo p de l bits, tal que q

divida p− 1.

2. Escolha um elemento g de ordem q.

2.1 Escolha h arbitrario em [1, p− 1] e calcule

g = h(p−1)/q mod p.

2.2 Se g = 1, entao va para o passo 2.1.

3. Retorne(p, q, g).

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Sistemas baseados no DL

Geracao de chaves.

Entrada: Parametros publicos (p, q, g).

Saıda: Chave publica y e chave privada x.

1. Escolha x aleatorio, no intervalo [1, q − 1].

2. Calcule y = gx mod p.

3. Retorne (y, x).

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Sistemas baseados no DL

Ciframento basico ElGamal.

Entrada: Parametros publicos (p, q, g), chave publica y, texto

claro m ∈ [0, p− 1].

Saıda: Texto cifrado (c1, c2).

1. Escolha k aleatorio em [1, q − 1].

2. Calcule c1 = gk mod p.

3. Calcule c2 = m.yk mod p.

4. Retorne (c1, c2).

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Sistemas baseados no DL

Deciframento basico ElGamal.

Entrada: Parametros publicos (p, q, g), chave privada x, texto

cifrado c = (c1, c2).

Saıda: Texto claro m.

1. Calcule m = c2.c−x1 mod p.

2. Retorne (m).

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Algoritmos criptograficos

• Primitiva fundamental e a funcao de mao-unica (one-way

function):

– y = f(x) e facil de calcular;

– dado y e muito difıcil (computacionalmente) obter x.

• Um algoritmo de ciframento e deciframento e uma funcao de

mao-unica com um atalho, a chave de deciframento (trapdoor

one-way function).

IC-UNICAMP 2006-1s

MO829-MC932 - Algoritmos Criptograficos Prof. R Dahab

Algoritmos criptograficos

Repousam sobre um ou mais dos seguintes pilares:

1. metodo especıfico (RSA, ElGamal, etc);

2. aritmetica sobre estruturas algebricas (grupos, corpos finitos);

3. aritmetica usual mas com numeros muito grandes;

4. geradores de sequencias aleatorias de bits.

Sao esses os objetos do nosso estudo, sua implementacao eficiente e

analise de complexidade.

Tambem estudaremos algoritmos para atacar os metodos mais

conhecidos.

IC-UNICAMP 2006-1s