Upload
dokhuong
View
214
Download
0
Embed Size (px)
Citation preview
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