Algoritmos criptográficos de chave pública



Documentos relacionados
Segurança da Informação

Criptografia e Segurança em Redes Capítulo 9. Quarta Edição William Stallings

Segurança Informática em Redes e Sistemas

Submissão Autenticada de Ficheiros ao SIGEX

Segurança da Informação

Proposta de estudo CNC

Introdução. Iremos procurar ver aqui alguns mecanismos de proteção mais utilizados como: criptografia e SSL. 1.0 Criptografia

Davidson Rodrigo Boccardo

Álgebra A - Aula 11 RSA

Prof. Roberto Franciscatto 4º Semestre - TSI - CAFW. Free Powerpoint Templates Page 1

Sistemas Distribuídos: Conceitos e Projeto Introdução a Criptografia e Criptografia Simétrica

Rede de Computadores II

Assinatura Digital: problema

Reduções da segurança de esquemas criptográficos: Sequências de Jogos

MA14 - Aritmética Unidade 24 Resumo

Curso de Engenharia Informática (2º Ciclo) Segurança em Sistemas e Redes de Computadores SSRC-0910-EN-1.1.A

Prevenção de fraudes em documentos eletrônicos

Auditoria e Segurança da Informação GSI536. Prof. Rodrigo Sanches Miani FACOM/UFU

Roteador Sem Fio. Prof. Marciano dos Santos Dionizio

Execícios de Revisão Redes de Computadores Edgard Jamhour. Filtros de Pacotes Criptografia SSL

1.1 Sistemas criptográficos

UNIP UNIVERSIDADE PAULISTA

UNIVERSIDADE DE CAMPINAS INSTITUTO DE COMPUTAÇÃO MESTRADO PROFISSIONAL. DOUGLAS MARQUES JUNIA NEVES {damarques,

¹CPTL/UFMS, Três Lagoas, MS,Brasil, ²CPTL/UFMS, Três Lagoas, MS, Brasil.

ICSP INSTITUTO DE CIÊNCIAS SOCIAIS DO PARANÁ FESP FUNDAÇÃO DE ESTUDOS SOCIAIS DO PARANÁ BACHARELADO EM SISTEMAS DE INFORMAÇÃO

Gerenciamento e Segurança de Dados

ElGamal. Variantes e generalizações do algoritmo de ElGamal -

Conceitos de Criptografia e o protocolo SSL

O que é número primo? Série O que é?

PROJETO DE REDES

O mecanismo de alocação da CPU para execução de processos constitui a base dos sistemas operacionais multiprogramados.

Programação Distribuída

Segurança na Web. Programação para a Internet. Prof. Vilson Heck Junior

UNIDADE III Aula 6 Cálculo do CRC. Fonte: Othon M. N. Batista

GUIA RÁPIDO PARA CERTIFICADOS SSL/TLS FAÇA A MELHOR ESCOLHA AO AVALIAR SUAS OPÇÕES DE SEGURANÇA DE SITES

Roteamento e Comutação

Algoritmos e Estruturas de Dados I 01/2013. Estruturas Condicionais e de Repetição (parte 2) Pedro O.S. Vaz de Melo

PROJETO INTEGRADOR. 5º PERÍODO Gestão da Tecnologia da Informação Noturno

Segurança em IEEE Wireless LAN

Solução de problemas por meio de busca (com Python) Luis Martí DEE/PUC-Rio

I Seminário sobre Segurança da Informação e Comunicações CRIPTOGRAFIA

Introdução... O que é SSL... Quais são os tipos de SSL... Por que ter... Como contratar... Como é feita a manutenção...

fonte:

MÓDULO DE MATRICULA UNASUS

Capítulo 8. Segurança de redes

Segurança em Redes. <Nome> <Instituição> < >

MD5 no Android como mecanismo de autenticação na API do Google Maps. Claudio André

ERU Especificação de Requisitos do Usuário Bolsa de Serviços na Web

PROJETO DE REDES

Funcionalidades do sistema SPED Contábil. Luiz Campos

Transcrição:

Algoritmos criptográficos de chave pública Histórico - A descoberta em 1976 por Diffie, Hellman e Merkle de algoritmos criptográficos assimétricos, onde a segurança se baseia nas dificuldades de 1. Deduzir a mensagem a partir do criptograma; 2. Deduzir uma chave de cifragem a partir da outra chave; possibilitou o desenvolvimento da criptografia moderna, onde os mecanismos de distribuição de chaves, autenticação de mensagens, e provas de identidade, alcançaram novos patamares de versatilidade. Protocolos que fazem uso de algoritmos assimétricos, podem dispensar o sigilo de uma das chaves do par. Os que usam esta opção são chamados protocolos de chave pública, e devem ser bem projetados para serem seguros Segurança dos sistemas de chave pública - Esses sistemas são desenhados para resistir a ataques de texto pleno escolhido, mas podem ser sensíveis a ataques por criptograma escolhido. Portanto, nos sistemas onde a assinatura é operação inversa da cifragem, pares distintos de chaves devem ser usados para estes dois serviços. Dos algoritmos assimétricos até hoje propostos, apenas quatro são seguros e práticos para ambos serviços: RSA, ElGamal, Rabin e ECC. Existe uma família de algoritmos úteis apenas para assinatura, e outros pouco práticos por serem inseguros, muito lentos ou usarem chaves muito longas.

RSA O mais usado e fácil de implementar dos algoritmos assimétricos, conhecido pela ligra das iniciais dos descobridores, Rivest, Shamir & Adleman. Resiste a quase 20 anos de análise, sendo sua robustez baseada na dificuldade (custo computacional) de se fatorar números inteiros. Geração de parâmetros e par de chaves do sistema: {t = tamanho} p = geraprimo(rand(t)) q = geraprimo(rand(t)) f = (p-1)*(q-1) {p, q, f secretos} n = p*q; e= rand(t) e = e / mdc(e,f) [>1] E A = (e,n) d = euclext(e,f,1) D A = (d,n) Cifragem (começa com e A pública) c = m e mod n {encripta bloco} m = c d mod n {decripta bloco} Assinatura (começa com d A privada) s = h(m) d mod n {assina hash} h(m) = s e mod n? {verifica hash} d = e -1 mod f : A segunda chave de um par é formada pelo mesmo módulo e a inversa do expoente da primeira no anel Z f(n), calculada pelo algoritmo Euclides extendido: Algoritmo de Euclides extendido recursivo: Dados a, b, c onde mdc(a,b) divide c, o algoritmo retorna o menor x>0 tal que /* a * x = c mod b */ euclext(a, b, c) begin r = b mod a se r == 0 então retorne( (c div a) mod (b div a) ) senão retorne( (euclext(r,a,-c) * b+c) div a mod b) end Fermat: O algoritmo funciona como cifra devido ao Teorema de Euler-Fermat: c d = ( m e )d = m 1+r(p-1)(q-1) = m* m r(p-1)(q-1) = m * 1 mod n = m i.e., as funções E A ( ) e D A ( ) (representadas pelo par de chaves de A) são inversas uma da outra supondo que m tem menos bits que n, o que sempre ocorre nos esquemas de envelope e de assinatura digitais (nos protocolos em que são úteis).

Análise do RSA Premissas sobre a segurança do algoritmo - 1. Qualquer dos parâmetros p, q e f(n) permite o cálculo trivial de d em D A a partir de E A, devendo portanto serem protegidos (sigilo) juntamente com D A. 2. O ataque mais eficiente (conhecido) ao algoritmo consiste em tentar fatorar n para se obter f(n) e saber em que anel inverter e (divulgado em E A ). Pode-se também tentar adivinhar f(n), mas o custo deste ataque é tão alto quanto o de -1 fatorar n, sendo maior ainda o custo de se tentar adivinhar E A. 3. Em princípio, poderia existir um método de ataque mais eficiente ao RSA. Porém tal método serviria também para fatoração de n, e o problema da fatoração vem sendo extensamente estudado desde 340 A.C., para o qual o algoritmo mais eficiente conhecido tem complexidade O(e ln2(x) c+x1/3 ), exponencial. 4. Números randômicos são selecionados como primos, para o módulo n, por um algoritmo de Monte Carlo (ex: Leehman). Existem, entretanto, os pseudo-primos (números de Carmichael), que, sem serem primos, passam no teste de Monte Carlo independentemente do n. de iterações. Pseudo-primos são muito raros, mas se pegos causarão falha na cifra. Por isso o teste do par de chaves é importante, pois o n. de interações de Monte Carlo tem um limite prático (e empírico). Ataques a protocolos que usam o RSA - Métodos conhecidos exploram falhas nos protocolos (não diretamente no algoritmo), devido à exponenciação preservar estruturas multiplicativas: Criptograma escolhido contra assinatura; Módulo comum; Expoente pequeno para encriptação; Ordem de operações de cifra e assinatura.

Ataque por criptograma escolhido contra assinatura - Este ataque é possível contra protocolos que assinam a mensagem por extenso (e não um hash da mesma), e prescinde da conivência ou negligência do agente fraudado em assinar mensagens sem motivo aparente. Caso 1: Vazamento de mensagem 1: RSA, mesmo par de chaves de cifra e assinatura Chaves de A: (e,d), n 2: c Agente I 2: Recebe m cifrada... c = m e mod n 4: Assina nova "mensagem" y s = y d mod n x = r e mod n Û r = x d mod n 3: y 5:..., s 2: Gera n. randômico r < n ; Calcula x = r e mod n Calcula y = xc mod n Solicita assinatura de y, 6: Calcula t = r -1 mod n Desvela m = ts mod n ts mod n = r -1 y d mod n = r -1 x d c d mod n = r -1 rc d mod n = c d mod n = m Caso 2: Autenticação fraudulenta 1: RSA, para autenticação em rede aberta Chaves de A: (e,d), n 5: Reconhece firma de m s = m d mod n (rm) d mod n = r d m d mod n 2: A, e 4: m 6: s Agente B 3: Gera mensagem expúria M; Gera n. randômico r < n; Calcula x = r e mod n Calcula m = xm mod n Solicita autenticação de m, 7: Calcula t = r -1 mod n Autenticador de M : ts mod n Conclusão: Para autenticação oponível a terceiros (p.ex., em rede aberta), a assinatura deve ser feita sobre um hash da mensagem, e não sobre a mensagem.

Ataque em módulo comum - Este ataque é possível se a distribuição de chaves para a cifra que usa o RSA atribui chaves com o mesmo módulo a usuários distintos. Qualquer mensagem encriptada por mais de um usuário pode ser facilmente vazada. Vazamento de mensagens em módulo comum 1: RSA, mesmo módulo para pares de chaves na cifra Agentes A, B 2,3: A e B recebem a mesma mensagem m cifrada... c A = m e A mod n c B = m e B mod n Supõe mdc(e A,e B )=1 2: A, c A 3: B, c B Agente I 4: Usa Euclides extendido para calcular x, y onde xe A + ye B = 1 5: Desvela m: Se x<0 então m = (c A -1 ) -x e B y mod n senão m = (c B -1 ) -y e A x mod n Ataque com expoentes pequenos de encriptação - Encriptação/verificação de assinatura no RSA é mais rápido quanto menor for a chave pública. Porém, esse tipo de ataque, que usa o algoritmo Poligh- Hellman para fatorar n, torna-se possível com a encriptação de e(e+1)/2 mensagens linearmente independentes, possivelmente eficiente com e pequeno. Conclusão: gerar exponente de chave pública pequeno só deve ocorrer para par de chaves destinados apenas para assinatura digital. Ataque com assinatura sobre mensagem encriptada - As operações de assinatura e encriptação devem ser executadas nessa ordem, para evitar fraudes decorrentes deste tipo de ataque, onde nem mesmo o uso de função de hash para assinatura pode evitar:

Fraude de assinatura lavrada sobre mensagem encriptada Chaves de A: (e A,d A ), n A 2: m é cifrada para B... c = m e B mod n B 3: e o criptograma assinado por A 1: RSA, usado para cifra e depois assinatura 2: B, e B 4: u 6: B,e B Agente B 5: Verifica e decripta u; Gera mensagem expúria M; Calcula x < n B tal que M x = m mod n B ; u = c d A mod n 6: Publica novo A e B xe B 7: Acusa A de ter lhe enviado M (m e B mod n B ) d A mod n A = (M xe B mod n B ) d A mod n A = u Este ataque é possível quando B puder bancar a solução do problema do logaritmo discreto para encontrar x, conhecendo a fatoração de n B. Se a assinatura antecedesse a cifragem, B teria que buscar x sem saber fatorar n A Prevenção contra ataques conhecidos ao RSA - 1. Conhecimento de um par de expoentes (e,d) permite a fatoração do módulo n. 2. Conhecimento de um par (e,d) permite encontrar outros para mesmo n 3. Módulo comum não deve ser usado em rede aberta. 4. Mensagens a serem cifradas devem ser acolchoadas (padded) com bits randômicos até completar o tamanho de n menos 1 (m < n) 5. O expoente público deve ser grande, e a assinatura anteceder a cifragem. Padronização e patentes - O RSA é um padrão de facto para criptografia assimétrica: Anexo da norma ISO 9796, draft de uma norma ANSI, padrão bancário na França e Austrália. Não é padrão nos EUA por problemas de disputa sobre direitos de patente. A patente, válida somente nos EUA, expira em 20/9/2000.