Emparelhamentos Bilineares Sobre Curvas Eĺıpticas Leandro Aparecido Sangalli sangalli@dca.fee.unicamp.br Universidade Estadual de Campinas - UNICAMP FEEC - Faculdade de Engenharia Elétrica e de Computação DCA - Departamento de Engenharia de Computação e Automação Industrial 5 de abril de 2015 1 / 21
Roteiro Estaca Zero; Motivação; Emparelhamentos Bilineares; Introdução; Implementação de Protocolos Baseados em Emparelhamentos; Meu Mestrado; Novas Análises; Resultados Esperados; 2 / 21
Estaca Zero O que são curvas eĺıpticas? A grosso modo: são curvas geradas por equações do tipo E : y 2 = x 3 + ax + b, onde a, b R e b 0. Figura: Representação sobre R Figura: Aritmética sobre E 3 / 21
Estaca Zero (Cont.) Estas curvas podem ser definidas sobre um corpo finito F p. Representação gráfica discreta. Figura: Adição e duplicação de pontos de E sobre F p Uma curva eĺıptica E definida sobre o corpo finito F p é dada pela equação y 2 = x 3 + ax + b (mod p). Onde, a, b F p e 4a 3 + 27b 2 0 (mod p). 4 / 21
Estaca Zero (Cont.) Existe um ponto especial pertencente a E chamado ponto no infinito, que é representado tradicionalmente por. Um ponto P = (x P, y P ) E se, e somente se, yp 2 = x P 3 + ax P + b (mod p) E(F p ) = {os pontos pertencentes a E} { } Calcular R = m P é equivalente a calcular R = P } + P + {{ P + P }. m vezes (Problema do Logaritmo discreto - PLD) é simples calcular R, dado P e m. Porém, é de complexidade exponencial calcular m a partir de P e R escolhidos corretamente. Um ponto P E tem ordem n se n P =. 5 / 21
Estaca Zero (Cont.) Acordo de chaves de Diffie-Hellman: Alice e Bob desejam compartilhar uma chave k. Então Alice e Bob escolhem em comum: F p ; E sobre F p e P E(F p ); Alice, escolhe a F p secreto, calcula Q A = a P e envia Q A a Bob; Bob, escolhe b F p secreto, calcula Q B = b P e envia Q B a Alice; Alice calcula Segredo Alice = a Q B ; Bob calcula Segredo Bob = b Q A ; Ambos utilizam este segredo comum como entrada para uma função KDF que retorna uma chave k comum a eles. 6 / 21
Estaca Zero (Cont.) Figura: Criptografia Baseada em Identidade (Shamir, 1985) 7 / 21
Motivação Possibilidade de efetuar trocas de chaves entre três usuários utilizando uma única execução do acordo de chaves de Diffie-Hellman (Antoine Joux); Um sistema de criptografia de chave pública onde não há necessidade da presença de infraestruturas de chaves públicas (Boneh & Frankli); Entre outros benefícios; Esquemas com estas características já existem e são conhecidos como Protocolos Criptográficos Baseados em Emparelhamentos. 8 / 21
Emparelhamentos Bilineares Sejam dois grupos aditivos G 1, G 2 e um grupo multiplicativo G T, todos de ordem prima p. Um emparelhamento bilinear, e, é um mapeamento, e: G 1 G 2 G T que satisfaz as seguintes propriedades: (i) Bilinearidade: (P, Q) G 1 G 2, a, b Z n, e(ap, bq) = e(p, bq) a = e(p, Q) ab = e(bp, Q) a = e(bp, aq) = e(abp, Q) = e(p, abq) = e( ap, bq) (ii) Não-degenerado: e(p, Q) u, onde u é o elemento identidade de G T, P G 1 e Q G 2 (iii) Computabilidade: O emparelhamento e(p, Q), pode ser eficientemente computado. 9 / 21
Emparelhamentos Bilineares (Cont.) Algumas aplicações da propriedade de bilinearidade em esquemas criptográficos. Acordo triplo de chaves de Diffie-Hellman; Efetua uma troca de chaves entre três usuários com uma única execução do acordo de chaves de Diffie-Hellman. Criptografia baseada em identidades; Utiliza a identidade de um usuário como sua chave pública para cifragem de dados. Criptografia Sem Certificado; Esquema de cifragem, muito semelhante a criptografia baseada em identidade. Porém, neste esquema a chave pública de um usuário não é simplesmente a sua identidade. Entre outros. 10 / 21
Introdução Pergunta: tendo tantos benefícios, por que não utilizar protocolos criptográficos baseados em emparelhamentos? Resposta: baixa efeciência no cálculo dos emparelhamentos. Otimizações propostas Diferentes tipos de curvas eĺıpticas sobre as quais os emparelhamentos são definidos; Estas curvas que tornam o cálculo do emparelhamento mais eficiente são denominadas Curvas Amigáveis a Emparelhamentos. 11 / 21
Introdução (Cont.) Diferentes formas de calcular emparelhamentos Algoritmos derivados do algoritmo de Miller, este o algoritmo tradicionalmente utilizado para o cálculo de emparelhamentos. A ideia básica do algoritmo de Miller é intercalar operações de soma e duplicação de pontos de uma curva eĺıptica sobre a qual o emparelhamento esta definido, dependendo de certo parâmetro de entrada que varia a cada tipo de emparelhamento (laço de Miller). Diferentes tipos de emparelhamentos Weil, Tate, Eta, Ate, R-Ate, χ-ate, Optimal Ate, entre outros. Estes tipos se diferenciam principalmente pelo número de iteração do laço de Miller necessário para seu cálculo. 12 / 21
Implementação de Protocolos Baseados em Emparelhamentos 13 / 21
Implementação de Protocolos Baseados em Emparelhamentos (Cont.) Nível 5: Acordo triplo de chaves; Criptografia Baseada em Identidade; Criptografia Sem Certificado, etc. Nível 4: Tipos de emparelhamentos. Por exemplo, Weil, Tate, Ate, etc. Nível 3: Como efetuar as operações aritméticas sobre curvas eĺıpticas amigáveis a emparelhamentos (Somar/Duplicar). Nível 2: Como efetuar as operações aritméticas envolvendo extenções de corpos finitos (F p 12). Nível 1: As bibliotecas que dão suporte para operações em F p envolvendo inteiros grandes. Nível 0: Instruções do processador (lógicas ou aritméticas). 14 / 21
Meu mestrado Dentre os diversos tipos de emparelhamentos e diferentes tipos de curvas eĺıpticas, minha contribuição no mestrado foi uma análise dos emparelhamentos Ate, R-Ate e Optimal Ate sobre curvas amigáveis do tipo Barreto-Naehrig definidas sobre um corpo finito de 254 bits. Esta análise foi puramente teórica. Porém, foi possível estimar o custo destes emparelhamentos em diferentes tipos de processadores, sendo este custo dado em função do número de operações básicas no Nível 0 (figura Slide 12). 15 / 21
Meu mestrado (Cont.) Em outras palavras: Foi suposto um conjunto de instruções fixo e com este foi implementado as operações aritméticas básicas sobre F p de forma genérica. Adição; Adição com redução; Subtração; Subtração com redução; Multiplicação; Quadrado; Inverso multiplicativo e Redução modular (Operações do Nível 1, Slide 12). Com isso, foi possível estimar o custo destes emparelhaementos para processadores com tamanho de palavra de 8, 16, 32, 64, 128 e 256-bits. 16 / 21
Exemplo: Adição em Blocos: Meu mestrado (Cont.) Os blocos Z 0, Z 1, Z 2 e Z 3 são obtidos da seguinte forma: Z 0 = X 0 + Y 0 Z 1 = X 1 + Y 1 + C Z0 Z 2 = X 2 + Y 2 + C Z1 Z 3 = X 3 + Y 3 + C Z2 17 / 21
Novas Análises Problemas das análises apresentadas: São consideradas características de processadores muito distantes da realidade; Foi suposto que todos os tipos de processadores (genéricos) avaliados possuiam o mesmo conjunto de instruções (implementações inocentes) Contra-exemplo: Processadores Intel Haswell Possui instruções em hardware como: Multiplicação de inteiros de 256 bits (em hardware); Redução de inteiros de 512 bits (em hardware); 18 / 21
Novas Análises (Cont.) Alterações para novas análises: Construir um conjunto de hipóteses que possam validar resultados mais próximos dos alcançados em simulações reais. Instruções do processador; Exemplo: processadores Intel Haswell, entre outros. Estudar formas mais elegantes e menos inocentes para implementar operações básicas sobre F p. Estas devem se adaptar da melhor forma possível a cada arquitetura. 19 / 21
Novas Análises (Cont.) Outras Alterações Inversões em tempo constante sobre F p ; Teorema de Fermat: Seja a F p, com p primo. então a p 1 1 (mod p) para todo a. Consequência do Teorema de Fermat: Seja a Fp, com p primo. então a p 2 a 1 (mod p) para todo a. Considerar a adoção da técnica de Lazy Reduction (postergar reduções) para processadores com restrição de memória. 20 / 21
Resultados Esperados Uma análise similar a que foi apresentada na dissertação, porém, mais próxima de cenários reais. Principal Meta Poder listar quais as características que processadores futuros possam ter para acelerar o cálculo dos emparelhamentos, minimizando o impacto (custo computacional) da utilização dos mesmos em protocolos criptográficos. 21 / 21