Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Z p

Documentos relacionados
Implementação para Multiplicação por Escalar. 2 Curvas Elípticas Sobre Z p

Falando um segredo em público a um estranho e mantendo o segredo

Curvas Elípticas: Aplicação em Criptografia Assimétrica

Uma Curva Elíptica sobre F 23

Criptografia com Maple

Criptografia com Maple

Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular

Avaliação de Segurança em Curvas Eĺıpticas Usando o Corpo dos Números p-ádicos

Implementação de uma API para Criptografia Assimétrica Baseada em Curvas Elípticas

Análise da segurança de esteganocriptografia em seqüências de imagens p.1/33

Troca de chaves Diffie-Hellman Grupos finitos Grupos cíclicos

MA14 - Aritmética Unidade 22 Resumo. Aritmética das Classes Residuais

TOCI08 Segurança em Redes de Computadores Módulo 08: Criptografia Assimétrica RSA e ECC

OTES07 Segurança da Informação Módulo 05c: Criptografia Assimétrica RSA e ECC

Aula 25 - Espaços Vetoriais

Emparelhamentos Bilineares Sobre Curvas

Signed Binary Representations Revisited

Complexidade de Algoritmos

Corpos Finitos Parte I

1 a Lista de Exercícios MAT 3211 Álgebra Linear Prof. Vyacheslav Futorny

Lista de exercícios 6 Espaços Vetoriais

Curso Satélite de. Matemática. Sessão n.º 1. Universidade Portucalense

Curvas Elípticas: Aplicações Criptográficas

AULA 08 CRIPTOGRAFIA E SEGURANÇA DE DADOS CRIPTOGRAFIA ASSIMÉTRICA CHAVES E ALGORITMOS 03/03/2016 PROF. FABIANO TAGUCHI

x 1 + b a 2 a 2 : declive da recta ;

Revisões de Matemática e Estatística

Sistemas criptográficos baseados em identidades pessoais

Informática Portugol IDE Revisão 1

Introdução à Algebra para Criptografia de Curvas Elipticas

CÁLCULO I. 1 Número Reais. Objetivos da Aula

Álgebra Linear e Geometria Analítica

11.1) Noções Elementares 11.2) MDCs e algoritmos de Euclides 11.3) Aritmética modular 11.4) Aplics da MD: O sistema criptográfico RSA

Elliptical Curve Cryptography

Introdução a Ataques por Canais Secundários

Criptografia Assimétrica. Jiyan Yari

Coordenadoria do Curso Ciência da Computação Universidade Estadual do Mato Grosso do Sul

Criptografia em redes de computadores. Gabriel Stefen e Thiago Stefen

CRIPTOGRAFIA DE CHAVE PÚBLICA BASEADA EM CURVAS ELÍPTICAS

4 ÍNDICE Exemplo de redundância e distância de unicidade... 41

Equações Diofantinas + = polinómios conhecidos polinómios desconhecidos

Paralelização Eficiente para o Algoritmo Binário de Exponenciação Modular

MAT Álgebra Linear para Engenharia II - Poli 2 ō semestre de ā Lista de Exercícios

Elliptical Curve Cryptography

Geometria Analítica - Sistemas de Coordenadas no Plano

(Ciência de Computadores) 2005/ Diga quais dos conjuntos seguintes satisfazem o Princípio de Boa Ordenação

COM29008 LISTA DE EXERCÍCIOS #

Codificação de Informação 2010/2011

1 Números Complexos e Plano Complexo

Capítulo Propriedades das operações com vetores

Lista de Exercícios 05 Álgebra Matricial

1. Conhecendo-se somente os produtos AB e AC, calcule A = X 2 = 2X. 3. Mostre que se A e B são matrizes que comutam com a matriz M = 1 0

Aula prática 5. Funções Recursivas

Unidade I MATEMÁTICA. Prof. Celso Ribeiro Campos

MÉTODO ELGAMAL DE CRIPTOGRAFIA E AS CURVAS

Função Exponencial, Inversa e Logarítmica

Programação das Aulas

Álgebra Linear I - Lista 7. Respostas

Espaços vectoriais com produto interno. ALGA 2008/2009 Mest. Int. Eng. Electrotécnica e de Computadores Espaços vectoriais com produto interno 1 / 19

Lista 2 - PMR2300/3200

Definição: Uma função de uma variável x é uma função polinomial complexa se pudermos escrevê-la na forma n

Criptografia Quântica. Gustavo Thebit Pfeiffer Rodrigo Rodrigues Paim Vinicius Neves Motta

RSA: ALGORITMOS DE CHAVE PÚBLICA PRIMEIRA PUBLICAÇÃO: ABRIL/1998 QUARTA REVISÃO: DEZEMBRO/2004

Capítulo 8. Segurança de redes

Instituto de Física Universidade Federal do Rio de Janeiro. Cap. 1 - Vetores. Prof. Elvis Soares - Física I

FACULDADE DE ENGENHARIA DA UNIVERSIDADE DO PORTO LEEC EXERCÍCIOS DE ÁLGEBRA

PUC-GOIÁS - Departamento de Computação

Cálculo Numérico Noções básicas sobre erros

Matemática Discreta Parte 11

Lista 2 - Álgebra I para Computação - IME -USP -2011

Criptografia. Criptografia de Chave Pública. Manuel Barbosa (mbb at dcc.fc.up.pt) 2018/2019

Fundamentos Tecnológicos

Capı tulo 5: Integrac a o Nume rica

UNIVERSIDADE FEDERAL DE PERNAMBUCO

Lista de Álgebra Linear Aplicada

Sílvio A. Abrantes. Uns pequenos truques que facilitam alguns cálculos de Códigos e Teoria da Informação

étodos uméricos SISTEMAS DE EQUAÇÕES LINEARES (Continuação) Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Sociedade Brasileira de Matemática Mestrado Profissional em Matemática em Rede Nacional

Álgebra Linear e Geometria Anaĺıtica. Matrizes e Sistemas de Equações Lineares

Agenda. Criptografia e Segurança Certificado Digital Assinatura Digital

PTC Aula 20. (Kurose, p ) (Peterson, p ) 14/06/ Princípios de criptografia

Cálculo Diferencial e Integral I

1. Converta para a base binária, usando o método das divisões sucessivas, os seguintes números inteiros: a) 13 b) 35. e) 347 f) 513.

Folha Prática - Representação de Números e Erros. 1. Representar os seguintes números decimais em binário com ponto fixo:

Cifras Assimétricas MICEI/MSDPA. José Carlos Bacelar Almeida Motivação

Criptografia e Segurança das Comunicações

Este material é apenas um resumo de parte do conteúdo da disciplina.

Exercício: Identifique e faça um esboço do conjunto solução da. 3x xy + y 2 + 2x 2 3y = 0

1. Converta para a base binária, usando o método das divisões sucessivas, os seguintes números inteiros: a) 13 b) 35.

Lista 1 - PMR2300. Fabio G. Cozman 3 de abril de 2013

RELATÓRIO FINAL DO PROJETO DE INICIAÇÃO CIENTÍFICA (PIBIC/CNPq/INPE)

1 FUNÇÃO - DEFINIÇÃO. Chama-se função do 1. grau toda função definida de por f(x) = ax + b com a, b e a 0.

Renato Martins Assunção

= o A MATRIZ IDENTIDADE. a(i, :) = (aii, ai2,, ai.) i = 1,, m

INE5403 FUNDAMENTOS DE MATEMÁTICA DISCRETA

Matemática I. Capítulo 3 Matrizes e sistemas de equações lineares

Equações Diofantinas + = polinómios conhecidos polinómios desconhecidos

Transcrição:

Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Z p Pedro Carlos da Silva Lara Fábio Borges de Oliveira {pcslara, borges}@lncc.br LABORATÓRIO NACIONAL DE COMPUTAÇÃO CIENTÍFICA LNCC Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 1

Introdução Em 1975, Diffie e Hellman propuseram uma solução para que dois usuários estabelecessem uma chave secreta compartilhada em canal de comunicação inseguro. A segurança deste método estava baseada no Problema do Logaritmo Discreto (PLD) em grupos multiplicativos da forma Z p. Esta é considerada a primeira prática de criptografia assimétrica. Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 2

Introdução Em 1985, Neal Koblitz e Victor Miller propuseram, independentemente, a aplicação de curvas elípticas em criptografia assimétrica. Ao invés de usar o grupo multiplicativo Z p usa-se o grupo formado pelos pontos de uma curva elíptica Ω(Z p ). 3 2 1 0-1 -2-3 -2-1 0 1 2 3 Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 3

Vantagens A tabela abaixo compara o tamanho das chaves criptográficas, mantendo em todas segurança equivalente. Tabela 1: Tamanho das chaves em bits. Modelo de Criptografia Simétrico ECC RSA Razão ECC:RSA 80 163 1024 1:6 128 256 3072 1:12 192 384 7680 1:20 256 512 15360 1:30 Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 4

O que são curvas elípticas? Definição. Uma curva elíptica sobre um corpo F (assumiremos sempre que F é um corpo de característica maior que 3) é o lugar geométrico dos pontos (x,y) F F que satisfazem a equação y 2 + axy + by = x 3 + cx 2 + dx + e (1) mais um ponto, chamado de ponto no infinito, que será denotado por. Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 5

O que são curvas elípticas? Podemos simplificar a equação (1) deixando na forma y 2 = x 3 + ax + b (2) com a,b F. Esta curva deve ser uma curva não-singular, ou seja, não possui raízes múltiplas, para tanto precisamos ter: = 4a 3 + 27b 2 0 Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 6

O PLD Sobre Curvas Elípticas Considere dois pontos P,Q Ω(F q ). O PLD sobre curvas elípticas consiste em encontrar um k Z tal que Q = kp. Quando estas variáveis são adequadas não existe um algoritmo satisfatório que consiga resolver este problema. Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 7

O PLD Sobre Curvas Elípticas (Exemplo) Seja Ω : y 2 = x 3 + 3x + 2 uma curva elíptica sobre Z 11. Considere dois pontos desta curva, digamos (4, 1), (6, 7) Ω. O PLD sobre curvas elípticas consiste em calcular k tal que k (4, 1) = (6, 7), neste caso iremos apresentar todos os múltiplos do ponto (4, 1). Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 8

O PLD Sobre Curvas Elípticas (Exemplo) i (4, 1) λ = y 2 y 1 x 2 x 1 λ 2 x 1 x 2 = x 3 λ(x 1 x 3 ) y 1 = y 3 (x 3, y 3 ) 2 (4, 1) 9 7 5 (7, 5) 3 (4, 1) 4 (4, 1) 5 (4, 1) 6 (4, 1) 7 (4,1) 8 (4, 1) 9 (4, 1) 10 (4, 1) 11 (4, 1) 12 (4, 1) (5 1) (7 4) = 9 (92 4 7) = 3 (9 (4 3) 1) = 4 (3, 4) (4 1) (3 4) = 5 (52 4 3) = 2 (5 (4 2) 1) = 4 (2, 4) (4 1) (2 4) = 8 (82 4 2) = 10 (8 (4 10) 1) = 8 (10, 8) (8 1) (10 4) = 4 (42 4 10) = 6 (4 (4 6) 1) = 4 (6, 4) (4 1) (6 4) = 3 (32 4 6) = 6 (3 (4 6) 1) = 7 (6,7) (7 1) (6 4) = 7 (72 4 6) = 10 (7 (4 10) 1) = 3 (10, 3) (3 1) (10 4) = 3 (32 4 10) = 2 (3 (4 2) 1) = 7 (2, 7) (7 1) (2 4) = 4 (42 4 2) = 3 (4 (4 3) 1) = 7 (3, 7) (7 1) (3 4) = 8 (82 4 3) = 7 (8 (4 7) 1) = 6 (7, 6) (6 1) (7 4) = 5 (52 4 7) = 4 (5 (4 4) 1) = 10 (4, 10) Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 9

Algoritmos Utilizados (Multiplicação por escalar: Método Binário) Entrada: Um inteiro k = P j i=0 2i k i onde k i {0, 1} (representação em base binária), um ponto P Ω e a curva Ω Saída: O ponto k P Ω início Q ; para i = j até 0 faça Q 2 Q; se k i = 1 então Q Q + P ; fim retorna Q Ω; Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 10

Algoritmos Utilizados (Multiplicação por escalar: Método Binário) A densidade média da representação binária de k é 2 1, como j = log 2 k logo o tempo de execução esperado do algoritmo anterior é de aproximadamente (j + 1)/2 adições de pontos (A) mais j + 1 duplicações de pontos (D) denotado por: ( ) j + 1 A + (j + 1)D 2 Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 11

Algoritmos Utilizados (NAF) Para algum K inteiro podemos representá-lo da seguinte maneira: K = j i=0 k i 2 i onde k i {0, ±1}. A forma não-adjacente NAF, é a representação de K, onde k i k i+1 = 0 para todo i 0. Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 12

Algoritmos Utilizados (NAF) A grande vantagem de se usar a representação NAF de um inteiro é que, de maneira geral, terá uma proporção maior de coeficientes iguais a zero. Assim fica reduzido o número de adições na multiplicação. O número esperado de coeficientes não nulos em uma representação NAF para um inteiro K com j bits é j/3. Na representação binária espera-se j/2 bits não nulos Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 13

Algoritmos Utilizados (NAF) Fazemos K = 52419574521. (K) 2 = 110000110100011100110011101011111001 NAF(K) = 10 100010 10100100 1010 101000 10 10000 1001 Onde 1 = 1. Observe que a representação NAF apresenta uma maior quantidade de zeros e nunca dois coeficientes diferentes de zero seguidos. Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 14

Algoritmos Utilizados (NAF) Cálculo da representação NAF de um inteiro. Entrada: Um inteiro K Saída: NAF(K) início i 0; fim enquanto K 1 faça se K é ímpar então k i K (mods 4); K K k i ; senão k i 0; K K 1; i i + 1; retorna (k j, k j 1,..., k 0 ); Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 15

Algoritmos Utilizados (Multiplicação por escalar: NAF) Multiplicação por escalar usando NAF binário. Entrada: Um inteiro K e um ponto P Ω Saída: KP Ω início Calcule a representação NAF de K, P j i=0 k i2 i = NAF(K) (algoritmo anterior); Q ; para i = j até 0 faça Q 2Q; se k i = 1 então Q Q + P ; se k i = 1 então Q Q P ; fim retorna Q; Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 16

Algoritmos Utilizados (NAF com dimensão w) O valor de NAF w (K) para w 2 é o uma representação única da forma K = j i=0 k i2 i onde cada k i < 2 w 1. Fazendo uma analogia com o NAF mostrado anteriormente temos que NAF 2 (K) = NAF(K). Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 17

Algoritmos Utilizados (NAF com dimensão w) Exemplo: Considere K = 52419574521. NAF 2 (K) = 10 100010 10100100 1010 101000 10 10000 1001 NAF 3 (K) = 30001000 30010000 3000 300 10030000 1001 NAF 4 (K) = 30000007000 70000 3000 300000 50000000 7 A densidade de coeficientes não nulos na representação NAF w (K) é j w+1, onde j = log 2 K. Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 18

Algoritmos Utilizados (NAF com dimensão w) Cálculo de NAF w (K) Entrada: Um inteiro K Saída: NAF w (K) início i 0; fim enquanto K 1 faça se K é ímpar então k i K (mods 2 w ); K K k i ; senão k i 0; K K 1; i i + 1; retorna (k j, k j 1,..., k 0 ); Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 19

Algoritmos Utilizados (Multiplicação por escalar: NAF com dimensão w) Entrada: Um inteiro K e um ponto P Ω Saída: KP Ω início Calcule a representação NAF de K, P j i=0 k i2 i = NAF w (K); Precomputação: Calcule P i = ip para i {1,3, 5, 7,..., 2 w 1 1}; Q ; para i = j até 0 faça Q 2Q; se k i 0 então se k i > 0 então Q Q + P ki ; senão Q Q P ki ; fim retorna Q; Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 20

Resultados e Comparações Tempo de execução para a implementação usando a representação NAF. Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 21

Resultados e Comparações Comparamos a nossa implementação com a biblioteca Java código aberto Bouncy Castle Crypto Package versão 1.41. Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 22

Conclusões O uso da representação NAF reduz o tempo de execução da multiplicação por escalar. As dimensões da representação NAF que apresentaram melhores resultados são 3 w 5. Sem contabilizar a pré-computação a dimensão da representação NAF que rendeu desempenhos melhores é w = 9. Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 23

Último Slide Obrigado!!! Quaisquer sugestões serão muito bem vindas! Implementação para Multiplicação por Escalar em Curvas Elípticas sobre Zp p. 24