Uma análise do sistema de criptografia GGH-YK. 1 Problemas matemáticos, computadores quânticos e o futuro da criptografia



Documentos relacionados
Resíduos Quadráticos e Fatoração: uma aplicação à criptoanálise do RSA

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

Exercícios Teóricos Resolvidos

O ESPAÇO NULO DE A: RESOLVENDO AX = 0 3.2

Resolução de sistemas lineares

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

Algoritmos criptográficos de chave pública

Álgebra A - Aula 11 RSA

No cálculo de porcentagem com operações financeiras devemos tomar muito cuidado para verificar sobre quem foi calculada essa porcentagem.

2. Representação Numérica

Uma Heurística para o Problema de Redução de Padrões de Corte

Codificação de Canal

Erros. Número Aproximado. Erros Absolutos erelativos. Erro Absoluto

Princípio da Casa dos Pombos I

Somatórias e produtórias

Modelagem no Domínio do Tempo. Carlos Alexandre Mello. Carlos Alexandre Mello 1

Notas de Cálculo Numérico

Aplicação Prática de Lua para Web

MA14 - Aritmética Unidade 24 Resumo

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

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

Aritmética Binária e. Bernardo Nunes Gonçalves

5 Equacionando os problemas

ESTUDO DE VIABILIDADE. Santander, Victor - Unioeste Aula de Luiz Eduardo Guarino de Vasconcelos

Segurança da Informação

E A D - S I S T E M A S L I N E A R E S INTRODUÇÃO

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

Arquitetura de Rede de Computadores

Você pode dizer isso de novo! Compressão de Texto

Capítulo 7 Medidas de dispersão

Análise e Complexidade de Algoritmos

A otimização é o processo de

4 Segmentação Algoritmo proposto

a 1 x a n x n = b,

1. NÍVEL CONVENCIONAL DE MÁQUINA

computador-cálculo numérico perfeita. As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

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

Modelos de Criptografia de Chave Pública Alternativos

Manual RbCripto. Sobre o RbCripto. Requisitos. Estatísticas de exemplo. Criptografia assimétrica versus criptografia simétrica. Como usar o programa

Estudaremos métodos numéricos para resolução de sistemas lineares com n equações e n incógnitas. Estes podem ser:

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

Dadas a base e a altura de um triangulo, determinar sua área.

10 DICAS DE TECNOLOGIA PARA AUMENTAR SUA PRODUTIVIDADE NO TRABALHO

Conforme explicado em 2.4.3, o sinal de voz x(n) às vezes é alterado com a adição de ruído r(n), resultando num sinal corrompido y(n).

4Distribuição de. freqüência

x0 = 1 x n = 3x n 1 x k x k 1 Quantas são as sequências com n letras, cada uma igual a a, b ou c, de modo que não há duas letras a seguidas?

CRIPTOGRAFIA E SEGURANÇA DE REDES

CAPÍTULO 3 - TIPOS DE DADOS E IDENTIFICADORES

Possui como idéia central a divisão de um universo de dados a ser organizado em subconjuntos mais gerenciáveis.

ESTRUTURAS DE DADOS II

FUNDAMENTOS DE HARDWARE CD-ROM. Professor Carlos Muniz

Projeto e Análise de Algoritmos Projeto de Algoritmos Tentativa e Erro. Prof. Humberto Brandão humberto@bcc.unifal-mg.edu.br

Segurança em IEEE Wireless LAN

UNIVERSIDADE FEDERAL DO ESPÍRITO SANTO PROGRAMA DE EDUCAÇÃO TUTORIAL - MATEMÁTICA PROJETO FUNDAMENTOS DE MATEMÁTICA ELEMENTAR

[a11 a12 a1n 4. SISTEMAS LINEARES 4.1. CONCEITO. Um sistema de equações lineares é um conjunto de equações do tipo


APLICAÇÃO DE MÉTODOS HEURÍSTICOS EM PROBLEMA DE ROTEIRIZAÇÃO DE VEICULOS

Hashing. Rafael Nunes LABSCI-UFMG

Aplicações de Combinatória e Geometria na Teoria dos Números

APLICAÇÕES DA DERIVADA

Assinatura Digital: problema

36ª OLIMPÍADA BRASILEIRA DE MATEMÁTICA Primeira Fase Nível 3 Ensino Médio

3. No painel da direita, dê um clique com o botão direito do mouse em qualquer espaço livre (área em branco).

MÓDULO 6 INTRODUÇÃO À PROBABILIDADE

PARANÁ GOVERNO DO ESTADO

As fases na resolução de um problema real podem, de modo geral, ser colocadas na seguinte ordem:

Este material traz a teoria necessária à resolução das questões propostas.

Exercícios 1. Determinar x de modo que a matriz

UMA NOVA DEMONSTRAÇÃO DA COMPLEXIDADE DO ALGORITMO DE GROVER

Material Teórico - Módulo de Divisibilidade. MDC e MMC - Parte 1. Sexto Ano. Prof. Angelo Papa Neto

Segurança da Informação

Sistemas Operacionais

Por que o quadrado de terminados em 5 e ta o fa cil? Ex.: 15²=225, 75²=5625,...

DICAS PARA CÁLCULOS MAIS RÁPIDOS ARTIGO 07

1. Introdução ao uso da calculadora

Até que Ponto Seus Dados estão Seguros? Por Kris Land, CTO, diretor de tecnologia da InoStor Corp.

Criptografia Pós-Quântica baseada em Códigos Corretores de Erros

Admistração de Redes de Computadores (ARC)

7 - Análise de redes Pesquisa Operacional CAPÍTULO 7 ANÁLISE DE REDES. 4 c. Figura Exemplo de um grafo linear.

Venda segura. Série Matemática na Escola

3 Classificação Resumo do algoritmo proposto

Disciplina: Introdução à Álgebra Linear

Quadro de consulta (solicitação do mestre)

Questionário de Estudo - P1 Criptografia

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

Cadeias de Markov. Geovany A. Borges

FACULDADE CAMPO LIMPO PAULISTA MESTRADO EM CIÊNCIA DA COMPUTAÇÃO. Projeto e Análise de Algoritmos II Lista de Exercícios 2

Disciplina: Unidade III: Prof.: Período:

CAPÍTULO 2. Grafos e Redes

Transcrição:

Uma análise do sistema de criptografia GGH-YK Charles F. de Barros, L. Menasché Schechter, Programa de Pós-Graduação em Informática, DCC, IM/iNCE, UFRJ, 21941-916, Rio de Janeiro, RJ E-mail: charles.ppgi@ufrj.br, luisms@dcc.ufrj.br, Resumo: Em 1997, Goldreich, Goldwasser e Halevi apresentaram ao mundo um sistema de criptografia assimétrica baseado em reticulados. O sistema, que ficou conhecido como GGH, foi dado como morto alguns anos depois, quando Nguyen apontou vulnerabilidades que comprometiam sua segurança. No entanto, em 2012, Yoshino e Kunihiro propuseram modificações que trouxeram o GGH de volta à vida. Neste trabalho, discutiremos diversos aspectos da segurança deste novo GGH, que chamaremos de GGH-YK, e também algumas possíveis melhorias que o tornariam ainda mais seguro e eficiente. Palavras-chave: Criptografia de Chave Pública, Reticulados 1 Problemas matemáticos, computadores quânticos e o futuro da criptografia A segurança dos sistemas de criptografia atuais é sustentada pela intratabilidade de dois problemas computacionais: a fatoração de inteiros no caso do RSA [8], e o cálculo de logaritmos discretos no caso de sistemas baseados em curvas elípticas [6]. Nenhum dos dois pode ser eficientemente resolvido através de algoritmos clássicos conhecidos. Existe, contudo, uma ameaça latente a todos esses sistemas: o computador quântico. Diferente do computador clássico, cuja unidade fundamental de informação é o bit, o computador quântico opera com qubits (abreviação para quantum bits). Enquanto um bit só pode assumir um valor, 0 ou 1, de cada vez, um qubit pode literalmente ser 0 e 1 ao mesmo tempo, colapsando para um dos dois estados quando é medido. Não vamos entrar nos detalhes de como os computadores quânticos funcionam, mas o fato é que eles são capazes de realizar certas tarefas muito mais rapidamente do que os computadores clássicos, graças aos surpreendentes fenômenos da Mecânica Quântica, como superposição e emaranhamento. Apesar de estarmos longe de um computador quântico de uso geral (já existem protótipos de uso restrito, como o DWave [2]), é bastante razoável esperar que dentro de algum tempo, décadas talvez, possamos nos deparar com computadores quânticos em nossas casas. Se isto acontecer, os sistemas atuais de criptografia deverão ser substituídos, porque existem algoritmos quânticos que resolvem os problemas subjacentes a eles, como por exemplo o algoritmo de Shor [9]. O cenário, contudo, não é desesperador. Já existe um número razoável de alternativas, incluindo sistemas baseados em códigos corretores de erros, funções hash e reticulados. Apesar de serem clássicos (não empregam computação quântica em sua estrutura), tais sistemas são considerados pós-quânticos, porque nem mesmo os computadores quânticos ofereceriam melhorias nas tentativas de quebrá-los (pelo menos até onde se sabe) utilizando algoritmos conhecidos. O primeiro sistema pós-quântico foi concebido mais ou menos na mesma época da criação do RSA, no final da década de 70. Proposto por R. McEliece [5], o sistema utiliza como chaves as matrizes geradoras de um código linear com uma estrutura especial. Essa estrutura, contida Bolsista da CAPES. 138

em uma matriz G que atua como chave secreta, é escondida entre duas matrizes, gerando a chave pública W = SGP. Para encriptar uma mensagem m, deve-se codificá-la em um vetor do código e acrescentar uma chave efêmera r, de norma relativamente pequena, gerando o vetor c = mw + r. A segurança do sistema depende da dificuldade computacional de recuperar o vetor mw sem o conhecimento da estrutura do código, isto é, sem o conhecimento da matriz G. Por outro lado, conhecendo-se a chave secreta, pode-se eliminar o vetor r (processo conhecido como decodificação) e recuperar a mensagem original. 2 O sistema GGH: nascimento e "morte" O sistema McEliece foi o primeiro a empregar chaves efêmeras, que introduzem aleatoriedade no processo de encriptação. Inspirados por essa ideia, Goldreich, Goldwasser e Halevi conceberam o GGH [4], em que a chave secreta é uma matriz B, que forma uma base de um reticulado com razão de Hadamard alta (o que implica em vetores relativamente curtos e quase ortogonais). A chave pública é uma outra base W para o mesmo reticulado, porém com razão de Hadamard muito pequena. A matriz W pode ser obtida de duas maneiras: multiplicando-se B por uma matriz unimodular U aleatória (ou por várias matrizes unimodulares), ou calculando-se a Forma Hermitiana Normal (FHN) de B. A FHN é uma matriz triangular inferior, de entradas não negativas, tal que a maior entrada de cada coluna situa-se na diagonal principal. Uma mensagem m Z n é encriptada calculando-se o vetor c = mw + r, em que r é uma perturbação aleatória (uma chave efêmera) de norma suficientemente pequena. Para decriptar c, aplica-se o algoritmo de arredondamento de Babai [1] com a chave secreta, recuperando-se o vetor mw e consequentemente a mensagem m. No entanto, se a norma de r não for pequena o bastante, podem ocorrer erros na decriptação, impedindo que a mensagem original seja recuperada. A fim de tornar a probabilidade de ocorrência de erros desprezível, deve-se estabelecer um parâmetro σ suficientemente pequeno, de modo que r i σ para todo i = 1,, n. Pode-se escolher r i { σ, σ} ou r i { σ,, σ}. A segurança do GGH reside na intratabilidade do problema do vetor mais próximo (ou CVP, abreviação para closest vector problem) quando não se conhece uma base boa (com razão de Hadamard alta) do reticulado. Como a norma de r é pequena, mw é o vetor do reticulado mais próximo de c, mas só é possível recuperá-lo com o conhecimento de B. A fim de resolver o CVP conhecendo-se uma base ruim, deve-se resolver outro problema, que é o da redução de base, que consiste na transformação de uma base ruim em uma base boa. Ambos os problemas são considerados computacionalmente difíceis em dimensões arbitrárias. A ideia empregada no GGH é essencialmente a mesma do sistema McEliece, adaptada a um contexto diferente. Sem o conhecimento de uma certa estrutura especial do reticulado, expressa na base boa B, é muito difícil recuperar o vetor mw a partir de c e W. O GGH sofreu um duro golpe em 1999, quando Nguyen [7] apontou falhas graves no sistema. Chegou-se ao ponto de um dos autores afirmar que o sistema estava morto [3]. Em primeiro lugar, Nguyen ressaltou que, como a norma de r é sempre muito menor do que a norma de mw, a instância do CVP que se deve resolver para quebrar o sistema é mais fácil do que o CVP no caso geral. Além disso, toda mensagem encriptada deixa vazar uma parte da mensagem original se as entradas de r estiverem no conjunto { σ, σ}. Para atestar a validade de seus resultados, Nguyen resolveu quase todos os desafios do GGH disponíveis na Internet. Cada desafio era composto de uma chave pública e uma mensagem encriptada, e o objetivo era que esta mensagem fosse decriptada sem o conhecimento a priori da chave secreta. O único desafio que resistiu ao ataque de Nguyen foi em dimensão 400, mas ainda assim foi possível recuperar bits parciais da mensagem original. Diante desses resultados, Nguyen argumentou que o sistema somente se tornaria seguro em dimensões demasiadamente altas, mas isto também o tornaria inviável, porque as chaves exce- 139

deriam 2 MB de tamanho em dimensões maiores do que 400 1. 3 Melhorias recentes Em 2012, Yoshino e Kunihiro [10] propuseram modificações que aparentemente eliminam as vulnerabilidades apontadas por Nguyen. Neste novo GGH, que vamos chamar de GGH-YK, o CVP deixa de ocupar posição central, dando lugar a um problema que, segundo os autores, espera-se que seja mais difícil. Para gerar a chave secreta no GGH-YK, são escolhidos dois parâmetros α e β, e então calcula-se a matriz de ordem n B = γi + P, em que γ = αn β e P é uma matriz aleatória tal que p i,j { 1, 0, 1}. É possível verificar que as bases geradas desta forma possuem alta Razão de Hadamard. A chave pública W é obtida calculando-se a FHN da matriz secreta. O sistema conta com quatro parâmetros (σ, h, l, k) publicamente conhecidos, tais que σ < h e l = 2nσ 2σ + 1. Antes da encriptação, dois subconjuntos disjuntos de índices S e T são escolhidos aleatoriamente, de modo que #T = n l e #S = k. Uma mensagem m de l bits é codificada em um vetor r Z n, tal que: bits 0 são codificados com entradas negativas, e bits 1 com entradas positivas; as entradas indexadas em T são nulas, ou seja, não codificam nenhum bit de m; as entradas indexadas em S recebem ±h; as demais entradas recebem valores aleatórios do conjunto { σ,, 1} {1,, σ}. O vetor r é encriptado calculando-se c = r xw, em que x = rw 1. Diferente do esquema original, o vetor r não possui norma tão pequena (devido às entradas ±h), por isso o vetor c não é necessariamente o mais próximo de xw. Na decriptação, calcula-se o vetor u = cb 1 cb 1 = rb 1 rb 1. Multiplicando por B, obtém-se a primeira aproximação para o vetor r, que vamos denotar por r = ub = r rb 1 B. A etapa final consiste em determinar o vetor erro e = rb 1. Os parâmetros do sistema são escolhidos de tal forma que e j = 0 para todo j / S, e e j { 1, 0, 1} para j S. É possível mostrar a seguinte proposição, que estabelece o valor das entradas do vetor e, em função das entradas correspondentes de r. Proposição 3.1 Se r j < h k, então e j = 1; se r j > h + k, então e j = 1. Caso contrário, e j = 0. Uma vez determinado o vetor e, pode-se recuperar a codificação r da mensagem original, pois r = r + eb. 1 Vale lembrar que o artigo de Nguyen foi escrito no final da década de 90. Com a atual tecnologia de armazenamento de dados, 2 MB não podem ser considerados inviáveis, já que mesmo um cartão de memória utilizado em aparelhos de celular pode facilmente exceder 2 GB de capacidade. 140

4 Resultados e discussões A primeira observação que fazemos é em relação aos cálculos de matrizes inversas no GGH-YK, mostrando que é possível realizar todas as operações com aritmética de números inteiros. Em primeiro lugar, o vetor x = rw 1 corresponde à parte inteira da solução do sistema yw = r. Este sistema pode ser resolvido de forma direta, pois W é diagonal inferior. Assim, temos x j = r j i>j w i,jr i w j,j, para j = n,, 1. Além disso, na decriptação, a inversa da chave secreta é calculada resolvendose o sistema XB = di, em que d é o determinante de B. Pela Regra de Cramer, todas as entradas de X são inteiras. Assim, calcula-se o vetor r = d(cb 1 cb 1 )B = d(r rb 1 )B. As entradas de e = rb 1 são determinadas comparando-se as entradas de r com d(h + k) e d( h k), de modo similar à proposição 3.1. Uma vez determinado o vetor e, faz-se r + eb e o resultado é dividido por d, obtendo-se o vetor r. A segunda observação diz respeito aos parâmetros do sistema. Para que a decriptação funcione, os autores estabelecem algumas condições que devem ser satisfeitas pelas entradas da matriz A = B 1 e pelos parâmetros (n, σ, h, k, γ). Mais especificamente, exige-se que a i,i 1 γ (1) a i,j < 2 γ 2 (2) σ γ + 2kh γ 2 + 2nσ γ 2 < 1 2 (3) Constatamos que a condição (1) falha com frequência, mas isto não impede que a decriptação funcione corretamente, porque a condição (3) é justa demais. De fato, a condição (3) pode ser substituída por σ γ + 2kh γ 2 + 2nσ γ 2 < 1 2σ(k + 1) + 2 γ 2 (4) Em geral, escolhe-se um valor pequeno para o parâmetro σ. No entanto, a equação (4) nos diz que valores consideravelmente maiores são permitidos, tanto para σ quanto para h. Na verdade, nem mesmo é necessário que σ seja pequeno, podendo ser até da mesma magnitude que h. Em nossos testes, conseguimos decriptar com sucesso utilizando parâmetros n = 400, σ = 512 e h = 513. Tais valores são consideravelmente grandes em comparação com a sugestão dos autores de utilizar σ = 3 e h = 27 na mesma dimensão. A utilização de parâmetros maiores torna ainda mais difícil um ataque por força bruta, pois aumenta o número de codificações possíveis para uma mesma mensagem, que é dado por ( )( ) n l N = σ l k. n l k Com os parâmetros que testamos, o valor de N obtido é da ordem de 2 3205, enquanto os parâmetros sugeridos pelos autores resultam em N da ordem de 2 1165. Com a norma do vetor r podendo assumir valores consideravelmente grandes, a segurança do GGH-YK deixa de ter qualquer relação com a intratabilidade do CVP. Ainda assim, a redução de base continua desempenhando um papel central, porque recuperar a chave secreta é tão difícil quanto reduzir a chave pública. 141

Além disso, conseguimos introduzir um pouco mais de aleatoriedade na codificação das mensagens, atribuindo às entradas de r indexadas no conjunto S valores no conjunto { h,, σ 1} {σ + 1,, h} em vez de { h, h}. Com esta escolha, o número de codificações possíveis para uma mesma mensagem aumenta para ( )( ) n l N = (h σ) k σ l k. n l k Uma peculiaridade foi observada durante a execução de nossos testes. A chave pública, que é obtida pelo cálculo da FHN da chave secreta, assume na maioria das vezes a forma abaixo: w 1 0 0 0 w 2 1 0 0 W = w 3 0 1 0....... w n 0 0 1 com entradas grandes na primeira coluna, diagonal principal unitária e demais entradas nulas. Com isto, a mensagem encriptada tem apenas a primeira entrada não nula, pois e consequentemente em que w = (w 1,, w n ). Portanto, ( x = rw 1 = r 1 j>1 w ) jr j, r 2,, r n, w 1 xw = ( x, w, r 2,, r n ), c = r xw = (r 1 x, w, 0,, 0). Não sabemos se esta peculiaridade compromete a segurança do sistema, mas em caso negativo ela poderia ser explorada para otimizar a encriptação, substituindo o cálculo de matrizes pelo cálculo de vetores. Teríamos ainda a vantagem de poder armazenar a chave pública como um vetor, contendo apenas as entradas da primeira coluna, e enviar a mensagem encriptada como um número em vez de um vetor. Referências [1] L. Babai, On Lovász lattice reduction and the nearest lattice point problem. Combinatorica, v. 6, n. 1, p. 1 13, 1986. [2] DWave - The Quantum Computing Company. <http://www.dwavesys.com> [3] O. Goldreich, Private communication. Jan, 1999. [4] O. Goldreich, S. Goldwasser, S. Halevi, Public-key cryptosystems from lattice reduction problems. Advances in Cryptology CRYPTO 97 (Santa Barbara, CA, 1997), Lecture Notes in Computer Science, v.1294, p. 112 131, Springer, Berlin, 1997. [5] R. J. McEliece, A public-key cryptosystem based on algebraic number theory. Technical report, Jet Propulsion Laboratory, DSN Progress Report, p. 42-44, 1978. [6] V. S. Miller, Use of ellyptic curves in cryptography. Lecture Notes in Computer Sciences, 218, Advances in cryptology - CRYPTO 85, p. 417-426, 1986. 142

[7] P. Nguyen, Cryptanalysis of the Goldreich-Goldwasser-Halevi cryptosystem from Crypto 97. Proceedings of Crypto 99. Lecture Notes in Computer Science, v. 1666, p. 288 304, IACR, Springer-Verlag, 1999. [8] R. Rivest, A. Shamir, L. Adleman, A method for obtaining digital signatures and public-key cryptosystems. Communications of the ACM, v. 21, p. 120-126, 1978. [9] P. W. Shor, Polynomial-Time Algorithms for Prime Factorization and Discrete Logarithms on a Quantum Computer, SIAM Journal on Computing, v. 26, n. 5, p. 1484 1509, 1997 [10] M. Yoshino, N. Kunihiro, Improving GGH Cryptosystem for Large Error Vector. International Symposium on Information Theory and its Applications, 2012. 143