BRPI1016042B1 - Método de execução de um cálculo criptográfico em um componente eletrônico e dispositivo eletrônico - Google Patents

Método de execução de um cálculo criptográfico em um componente eletrônico e dispositivo eletrônico Download PDF

Info

Publication number
BRPI1016042B1
BRPI1016042B1 BRPI1016042-6A BRPI1016042A BRPI1016042B1 BR PI1016042 B1 BRPI1016042 B1 BR PI1016042B1 BR PI1016042 A BRPI1016042 A BR PI1016042A BR PI1016042 B1 BRPI1016042 B1 BR PI1016042B1
Authority
BR
Brazil
Prior art keywords
term
point
square root
equation
parameter
Prior art date
Application number
BRPI1016042-6A
Other languages
English (en)
Inventor
Thomas Icart
Original Assignee
Morpho
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=41480154&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=BRPI1016042(B1) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Morpho filed Critical Morpho
Publication of BRPI1016042A2 publication Critical patent/BRPI1016042A2/pt
Publication of BRPI1016042B1 publication Critical patent/BRPI1016042B1/pt

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/60Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers
    • G06F7/72Methods or arrangements for performing computations using a digital non-denominational number representation, i.e. number representation without radix; Computing devices using combinations of denominational and non-denominational quantity representations, e.g. using difunction pulse trains, STEELE computers, phase computers using residue arithmetic
    • G06F7/724Finite field arithmetic
    • G06F7/725Finite field arithmetic over elliptic curves
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/72Indexing scheme relating to groups G06F7/72 - G06F7/729
    • G06F2207/7219Countermeasures against side channel or fault attacks
    • G06F2207/7261Uniform execution, e.g. avoiding jumps, or using formulae with the same power profile
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Physics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computing Systems (AREA)
  • Computational Mathematics (AREA)
  • Signal Processing (AREA)
  • General Engineering & Computer Science (AREA)
  • Algebra (AREA)
  • Storage Device Security (AREA)
  • Complex Calculations (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

método de execução de um cálculo de criptografia em um componente eletrônico e dispositivo eletrônico. um cálculo criptográfico é realizado em um componente eletrônico. compreendendo a etapa de obtenção de ponto p(x,y) a partir de pelo menos um parâmetro t, em uma curva elíptica que satisfaz a equação: y2=f(x) e dos polinômios xi(t), x2(f) e u(t) satisfazendo a seguinte igualdade : =f(x1(t)).f(x2(t))=u(t)2 no corpo infinito fq, independentemente do parâmetro t, q satisfazendo a equação q =3 mod 4.valor do parâmetro t é obtido. em seguida, o ponto p é determinado desempenhando as seguintes sub-etapas: x1= x1(t),x2 (t) e u=u (t) são calculados (etapas 11), (ii) é testado (etapa 12) se o termo f(x-1) é um termo ao quadrado no corpo infinito fq e, neste caso a raiz quadrada do termo f(x1) é calculada(etapa 13),o ponto p tendo x1 como abscissa a yi, a raiz quadrada do termo f(x1), como ordenada , (iii) de outra maneira, a raiz quadrada do termo f(x2) é calculada (etapa 14), o ponto p compreendendo x2, como abscissa e y2, a raiz quadrada do termo f(x2), como ordenada. este ponto p pode então ser usado na encriptação ou embaralhamento ou assinatura ou autentificação ou identificação de aplicação criptográfica.

Description

[0001] A presente invenção se refere a criptografia de mensagens baseada no uso de pontos em uma curva elíptica, e mais especificamente tal criptografia de uma natureza determinística.
[0002] Para aplicar um cálculo criptográfico a uma mensagem, algoritmos convencionais são utilizados para inserir valores arbitrários em estruturas matemáticas. Para este propósito, as curvas elípticas são estruturas matemáticas que são capazes de facilitar a aplicação de tais cálculos criptográficos e no mesmo espaço de economia de tempo em memória em relação ao uso de outros cálculos criptográficos.
[0003] No entanto, algoritmos eficientes para inserir valores arbitrários usando curvas elípticas são probabilísticos. Conseqüentemente, o tempo de aplicação destes algoritmos não é constante, depende da mensagem a ser codificada. Assim, se um atacador determina tempos de aplicação diferentes dos algoritmos aplicados, ele pode obter informações sobre a mensagem codificada.
[0004] Para mascarar o tempo tomado por um algoritmo de inserção probabilística, é possível fornecer a adição de etapas desnecessárias neste algoritmo para que sua aplicação sempre se estenda por um período de comprimento idêntico, independentemente da mensagem processada.
[0005] Um ponto P de uma curva elíptica é definida por sua abscissa Y e sua ordenada Y, X e Y satisfazendo a seguinte equação:
Figure img0001
onde f(X) é o polinômio f(X) = X3 + aX + b
[0006] Uma família de polinômios é conhecida, que satisfaz a equalidade de Skalba e torna possível determinar tal ponto em uma curva elíptica, conforme definido no documento 'Construction of Rational Points on Elliptic curves over finite fields' por Andrew Shallue e Christiaan van de Woestijne.
[0007] Os polinômios X1(t), X2(t), X3(t) e U(t) satisfazem a equalidade de Skalba se satisfizerem a seguinte equação:
Figure img0002
onde f é a função que define a curva elíptica sobre consideração, e onde t é um parâmetro.
[0008] Os polinômios que satisfazem a equalidade de Skalba podem tomar dois parâmetros u e t. Neste caso, a equalidade de Skalba é escrita:
Figure img0003
[0009] As equações deste tipo podem ser usadas com dois parâmetros u e t. No entanto, nas aplicações propostas, podemos vantajosamente contemplar determinar u, ou alternativamente determinar t, em qualquer valor. Assim, o valor de um único parâmetro resta para ser escolhido.
[00010] Dados os parâmetros selecionados t e u, é observado que X1= X1(t,u), X2= X2(t,u), X3= X3(t,u), U= U(t,u), onde X1, X2, X3 e U são elementos de Fq. Esta equação (2) significa que pelo menos um dos valores f(X1), f(X2) e f(X3) corresponde a um termo ao quadrado no corpo finito Fq.
[00011] Em seguida, uma vez que o termo ao quadrado em Fq, f(Xi), é identificado, podemos obter um ponto na curva elíptica
Figure img0004
[00012] O cálculo de
Figure img0005
pode ser realizado por meio de um cálculo exponenciação quando a característica q do corpo Fq satisfaz:
Figure img0006
[00013] Neste caso, é conhecido que:
Figure img0007
[00014] Para determinar um ponto na curva elíptica (1), é, portanto, necessário determinar qual valor entre os três valores f(X1), f(X2) e f(X3) corresponde a um termo ao quadrado no corpo finito Fq. Para este propósito, poderíamos contemplar verificar primeiro se o termo f(X1) é um termo ao quadrado no corpo finito Fq, em seguida, se não for o caso, aplicar o mesmo para verificar o termo f(X2), e finalmente se ainda não for o caso, verificar o termo f(X3) semelhantemente. No entanto, seguindo este procedimento, a determinação de um ponto na curva elíptica nem sempre gasta o mesmo tempo, uma vez que esta determinação é executada mais rapidamente se o primeiro termo testado for um termo ao quadrado do que se apenas o terceiro termo for um termo ao quadrado.
[00015] Um atacador potencial poderia fazer uso desta diferença no tempo gasto para determinar um ponto na curva elíptica para quebrar o segredo ligado ao parâmetro que permitiu que este ponto fosse gerado. Agora, no campo da criptografia, estes parâmetros devem permanecer secretos.
[00016] Estes parâmetros podem especificamente corresponder a senhas. Assim, é importante que a determinação destes pontos não forneça informações que tornem possível quebrar o segredo do parâmetro, e conseqüentemente, atacar com base na análise do tempo gasto para determinar um ponto na curva a ser evitado.
[00017] Para superar esta desvantagem, seria possível verificar os três termos f(Xi) sistematicamente para i na faixa de 1 a 3. Assim, o tempo para determinar um ponto na curva não seria mais em função do ponto determinado.
[00018] No entanto, verificar se um termo da equação (2) é um termo ao quadrado no corpo finito Fq é uma operação complexa especificamente empregando uma exponenciação, que tem tempo de execução custoso. No caso de desejarmos determinar um ponto em uma curva elíptica com base nas equalidades de Skalba, ao realizar estas determinações em um tempo constante, quatro operações de exponenciação são exigidas no caso descrito acima, uma exponenciação por verificação de cada um dos termos da equação de Skalba (2) e uma exponenciação para calcular a raiz quadrada, conforme descrito na equação (3).
[00019] A presente invenção objetiva melhorar esta situação.
[00020] Um primeiro aspecto da presente invenção propõe um método de execução de um cálculo criptográfico em um componente eletrônico compreendendo uma etapa de obter um ponto P(X,Y) começando a partir de pelo menos um parâmetro t, em uma curva elíptica que satisfaz a equação:
Figure img0008
começando a partir dos polinômios X1(t), X2(t), e U(t) satisfazendo a seguinte equalidade:
Figure img0009
no corpo finito Fq, independente do parâmetro t, q satisfazendo a equação q = 3 mod 4; o dito método compreendendo as seguintes etapas: /1/obter um valor do parâmetro t; /2/determinar o ponto P executando as seguintes sub-etapas:
Figure img0010
/ii/ testar se o termo f(X1) é um termo ao quadrado no corpo finito Fq e neste caso, calcular a raiz quadrada do termo f(X1), o ponto P tendo X1 como abscissa e a raiz quadrada do termo f(X1) como ordenada; /iii/ senão, calcular a raiz quadrada do termo f(X2), o ponto P tendo X2 como abscissa e a raiz quadrada do termo f(X2) como ordenada; /3/ usar o dito ponto P em uma aplicação criptográfica de encriptação ou hashing ou assinatura ou autenticação ou identificação.
[00021] Deve ser observado que a determinação de um ponto em uma curva elíptica é realizada com base em uma equação vantajosa:
Figure img0011
[00022] Esta equação segue a partir da equalidade de Skalba (2). De fato, esta equação pode ser obtida determinando:
Figure img0012
[00023] Agora, no corpo finito Fq com q = 3 mod 4, -1 não é um termo ao quadrado. Conseqüentemente, apenas dois determos da equação (4) ainda permanecem para serem verificados para decidir qual dos dois termos corresponde a um termo ao quadrado em Fq.
[00024] Devido a estes arranjos, é possível determinar um ponto em uma curva elíptica de forma adequada para uso no campo da criptografia, uma vez que, por um lado, esta determinação gasta o mesmo tempo independente do parâmetro de entrada t e, por outro lado, é eficaz visto que o número de operações de demanda é reduzido.
[00025] Esta determinação gasta um tempo constante que não depende do parâmetro ou parâmetros de entrada. De fato, mesmo que este método ofereça diferentes opções de processamento dependendo do termo que corresponde a um termo ao quadrado na equalidade de Skalba, o mesmo número de operações do mesmo tipo é realizado independente do ponto na curva que é determinado. Mais precisamente, independente do ponto na curva que é determinado, a seguinte lista de operações é executada: teste para um termo ao quadrado em Fq; determinação de uma raiz quadrada.
[00026] Portanto, não é possível iniciar um ataque do tipo “ataque cronometrado”.
[00027] Além disso, esta determinação é eficaz uma vez que o número de operações custosas empregado é limitado. De fato, devido à equação (4) apenas dois termos em vez de três na equação (2) devem ser verificados para determinar se correspondem aos termos ao quadrado no corpo finito Fq aplicando um máximo de duas operações do tipo exponenciação.
[00028] Esta modalidade é geral e pode facilmente ser aplicada a qualquer família de polinômios que satisfazem a equalidade (4).
[00029] Em uma modalidade da presente invenção, é fornecida a etapa /2/-/ii/, para realizar as seguintes etapas: calcular R1 de modo que:
Figure img0013
se R é igual a 1, decidir que o termo f(X1) é um termo ao quadrado no corpo Fq, e calcular
Figure img0014
de outra forma calcular
Figure img0015
[00030] Aqui, apenas duas exponenciações são realizadas, seja qual for a opção de processamento aplicada.
[00031] Em outra modalidade, também é possível reduzir o número de exponenciações, que são as operações mais exigentes a ser realizadas neste método. De fato, na etapa /2/-/ii/, as seguintes etapas podem ser realizadas:
Figure img0016
se R3'não for igual a 1, na etapa /2/-/iii/, a raiz quadrada de f(X2) é obtida de acordo com a seguinte equação:
Figure img0017
onde R0 satisfaz a seguinte equação:
Figure img0018
[00032] Deve ser observado que, vantajosamente, uma exponenciação é realizada neste caso durante a execução de um método de acordo com uma modalidade da presente invenção.
[00033] De fato, o uso hábil é feito a partir do fato que podemos finalmente recuperar a raiz quadrada de f(X2) no caso em que o termo f(X2) corresponde a um termo ao quadrado, sem, entretanto, implementar uma exponenciação adicional. De fato, a raiz quadrada de f(X2) obtida por:
Figure img0019
onde o termo R0 é finalmente obtido por uma operação de multiplicação que é menos exigente do que a aplicação de uma exponenciação. Além disso, apenas o termo U(t) deve ser calculado nesta modalidade, como o termo
Figure img0020
é um termo de cálculo imediato. Portanto, não é de forma alguma útil pré- calcular este último termo e armazená-lo na memória. Assim, o espaço de memória pode ser salvo.
[00034] Então, se R3 for igual a 1, na etapa /2/-/iii/ a raiz quadrada de f(X1) pode ser obtida de acordo com a seguinte equação:
Figure img0021
[00035] Isto também corresponde a uma multiplicação.
[00036] Durante a execução de tais cálculos de acordo com uma modalidade da presente invenção, o tempo gasto para realizar as operações exceto uma exponenciação é insignificante em relação ao tempo gasto pela aplicação de uma exponenciação. Agora, devido às características da presente invenção, em vez de quatro exponenciações, conforme descrito anteriormente em um caso convencional, duas exponenciações são exigidas no máximo. Tal redução no número de exponenciações é muito vantajosa.
[00037] Em uma modalidade da presente invenção, os polinômios satisfazendo a equação (4) de acordo com uma modalidade da presente invenção em X e Y são expressos em coordenadas Jacobianas em X', Y' e Z de modo que:
Figure img0022
e as operações de inversão são transformadas em operações de multiplicação.
[00038] A transformação em coordenadas Jacobianas torna possível transformar as inversões em multiplicações, quando o termo Z é corretamente selecionado.
[00039] Em uma modalidade da presente invenção, os polinômios são expressos em coordenadas Jacobianas, de acordo com a qual o ponto P(X,Y) é escrito P(X',Y',Z) de modo que:
Figure img0023
em que os polinômios expressos em coordenadas Jacobianas são X’1(t), X’2(t), X'3(t), Z(t) e U'(t) e satisfazem a seguinte equalidade em coordenadas Jacobianas:
Figure img0024
e em que Z(t) é determinado de modo que as operações de inversão são transformadas em operações de multiplicação.
[00040] Na etapa /1/, o valor do parâmetro t pode ser obtido como uma função de uma senha ou um identificador. É assim possível contemplar usar a senha diretamente ou um derivado da senha como parâmetro.
[00041] Em uma modalidade da presente invenção, a aplicação criptográfica é uma aplicação de uma autenticação ou identificação por uma entidade verificadora, e na etapa /1/, as seguintes etapas são executadas: /a/ gerar um valor aleatório; /b/ obter um valor encriptado através de encriptação de tal valor aleatório com base em uma função de encriptação usando uma chave de encriptação determinada a partir de uma senha ou identificador correspondendo ao parâmetro; e /c/ transmitir o valor encriptado à entidade verificadora.
[00042] Seguinte este procedimento, a entidade verificadora é capaz de obter o valor aleatório como uma função do valor encriptado recebido a partir da senha. Em seguida, recupera o valor do parâmetro t aplicando uma função adequada.
[00043] Um segundo aspecto da presente invenção propõe um dispositivo eletrônico compreendendo meios adequados para aplicar um método de execução de um cálculo criptográfico de acordo com o primeiro aspecto da presente invenção.
[00044] Outros aspectos, objetivos e vantagens da invenção se tornarão mais claros após a leitura da descrição de uma de suas modalidades.
[00045] A invenção será melhor entendida com a ajuda das seguintes figuras: A Figura 1 mostra as etapas principais de um método de execução de um cálculo criptográfico de acordo com uma modalidade da presente invenção; A Figura 2 mostra um método de execução de um cálculo criptográfico em detalhes de acordo com uma modalidade da presente invenção; e A Figura 3 mostra um método de execução de um cálculo criptográfico em detalhes de acordo com uma modalidade da presente invenção.
[00046] A Figura 1 mostra as etapas principais de um método de execução de um cálculo de acordo com uma modalidade da presente invenção.
[00047] Estas etapas principais são apropriadas para determinar um ponto em uma curva elíptica com o objetivo de usar tal ponto em uma aplicação criptográfica. Um cálculo criptográfico deste tipo pode ser executado em um componente eletrônico de maneira segura, isto é, sem a determinação deste ponto que dá alguma informação sobre o ponto determinado e conseqüentemente no parâmetro t.
[00048] Este cálculo compreende, em um corpo finito Fq, onde q é igual 3 mod 4, uma etapa para obter um ponto P (X, Y) em uma curva elíptica que satisfaz a equação:
Figure img0025
[00049] O ponto P(X, Y) tem sua abscissa X que corresponde a um de X1(t) e X2(t), para um valor de t obtido, tal que:
Figure img0026
no corpo finito Fq.
[00050] Tais polinômios podem ser uma função de dois parâmetros u e t. No contexto da invenção atual, um dos parâmetros pode vantajosamente ser ajustado e conseqüentemente os polinômios que satisfazem a equação (4) são então funções de um único parâmetro t.
[00051] Geralmente, a fim determinar um ponto na curva, nós tentamos determinar, dados parâmetros de entrada u e t, aqueles entre os valores X1= X1(t,u) e X2= X2(t,u) que correspondem a um termo ao quadrado no corpo finito Fq. Para esta finalidade, em etapa 11, o parâmetro t é considerado e nós calculamos: Xi=Xi(t) para i igual a 1 ou 2, e U=U(t)
[00052] Na etapa 12, nós decidimo-nos se o termo f(X1) é um termo ao quadrado na base de determinados cálculos. Se o termo f(X1) for um termo ao quadrado então sua raiz quadrada está calculada a fim obter, na etapa 13, o ponto P na abscissa X1 e a ordenada Y1 obtida do cálculo da raiz quadrada precedente.
[00053] No caso oposto, o ponto P na abscissa X2 e na ordenada Y2 são obtidos na etapa 14. Para esta finalidade nós pretendemos calcular a raiz quadrada do termo f(X2).
[00054] Deve ser anotar que para alcançar etapas 13 ou 14 para obter um ponto na curva elíptica de acordo com uma modalidade da invenção atual requer operações similares. Assim, não obstante o parâmetro da entrada ou os parâmetros t e u, não é possível lançar um ataque com base no tempo decorrido.
[00055] O ponto P(Xi, Yi), para um i igual a 1 ou 2, pode então ser usado vantajosamente em uma aplicação criptográfica de encriptação ou hashing ou assinatura ou o autenticação ou a identificação, já que a sua determinação não forneceu nenhum elemento que pode quebrar seu segredo.
[00056] No corpo Fq, q que corresponde à 3 mod 4, é possível verificar se um termo é um termo ao esquadrado em várias maneiras.
[00057] Figura 2 ilustra a aplicação do método de acordo com uma modalidade da invenção atual.
[00058] Na etapa 21, nós calculamos:
Figure img0027
[00059] Então, o teste para verificar se o termo f(X1) é um termo ao quadrado em Fq, pode ser realizado, na etapa 22, comparando R1 a 1. De fato, em Fq, se R1 for igual a 1, então f(X1) é um termo ao quadrado. Neste caso, na etapa 24, a raiz quadrada deste termo é calculada como segue:
Figure img0028
[00060] De outra maneira, o termo f(X2) é um termo ao quadrado. Então, na etapa 23, sua raiz quadrada é calculada como segue:
Figure img0029
[00061] Nesta modalidade, deve ser notado que o número e o tipo de operações realizadas para a determinação de um ponto P são os mesmos qualquer seja a opção de processando feita, isto é, qualquer seja o termo que corresponde a um termo ao quadrado na equação (4).
[00062] A Figura 3 ilustra uma outra modalidade de um método da execução de acordo com uma modalidade da invenção atual em que somente uma exponenciação é aplicada.
[00063] Aqui, vantajosamente, o número das exponenciações pode ser ainda mais reduzido, não usando o mesmo teste para um termo ao quadrado 12 da figura 1
[00064] Em uma modalidade da invenção atual, ao tentar determinar se um termo A é um termo ao quadrado em Fq, as seguintes etapas podem ser executadas:
Figure img0030
[00065] Finalmente, se o termo A for um termo ao quadrado então: Wi corresponde ao recíproco da raiz quadrada de A, isto é, 1/4Ã uma vez que uma exponenciação em (q-1) corresponde a uma inversão e a uma exponenciação em (q+1)/4 corresponde a uma raiz quadrada no corpo finito Fq; W2 corresponde ao inverso de A; e W3 corresponde ao valor 1.
[00066] Assim, quando W3 é igual ao valor 1, conclui-se a partir deste termo A é um termo ao quadrado no corpo finito Fq. Se A não for um termo ao quadrado então W3 não é igual a 1.
[00067] As seguintes seções descrevem uma modalidade baseada neste tipo de teste. Em uma modalidade da invenção atual, na etapa 311, a seguinte multiplicação é executada:
Figure img0031
[00068] Então verifica-se se este termo R0 é um termo ao quadrado como indicado previamente. Assim na etapa 312, nós calculamos
Figure img0032
[00069] Então na etapa 313, nós calculamos
Figure img0033
[00070] Então, nós decidimos se o termo R'3 é igual a 1 na etapa 314. Se este for o caso, então o seguinte termo corresponde à raiz quadrada do termo f(X1):
Figure img0034
[00071] Se o teste 314 não for satisfeito, então o termo f(X2) é uma raiz quadrada em Fq. A raiz quadrada deste termo é obtida assim na etapa 316 de acordo com a seguinte equação:
Figure img0035
' onde R0 satisfaz a seguinte equação
Figure img0036
[00072] Deve-se anotar que a equação acima torna possível obter vantajosamente a raiz quadrada de f(X2) mas sem realizar uma operação de exponenciação tal como aquela realizada na etapa 23 ou também na etapa 311. De fato, aqui é, engenhosamente, uma questão de executar uma multiplicação em vez de uma exponenciação.
[00073] Nós obtemos então R4”, que corresponde ao termo f(X2). Assim, um ponto P na curva elíptica foi determinado que tem X2 como abscissa e R4” como ordenada.
[00074] Na modalidade descrita previamente com referência a figura 3, como aquela descrita em referência a figura 2, não obstante a determinação do ponto P, isto é, se esta determinação está baseada no valor X1 ou X2, os cálculos similares são empregados, assim assegurando a determinação de um ponto na curva elíptica em um tempo constante.
[00075] Em uma modalidade da invenção atual, é possível selecionar os polinômios que satisfazem à equação (4) de acordo com uma incorporação da invenção atual, baseando a em polinômios de Ulas como definido no documento “Rational points on certain hyperelliptic curves over finite fields” de Macie Ulas, datad o em 11 de junho de 2007.
[00076] Neste original, os polinômios que satisfazem à equação de Skalba (2) são descritos:
Figure img0037
em que:
Figure img0038
onde a e b são elementos de Fq tal que seu produto não é zero.
[00077] Assim, as equações podem ser reescritas ajustando f(u)=-1 sem que seja necessário calcular um valor do parâmetro u para que esta última equação seja satisfeita. Nós obtemos então
Figure img0039
[00078] Vantajosamente, estes polinômios satisfazem a seguinte equação:
Figure img0040
[00079] Em uma modalidade da invenção atual, o uso de coordenadas Jacobianas é vantajosamente pretendido. Esta transformação em coordenadas Jacobianas torna possível transformar as operações de inversão nas operações da multiplicação que são mais rápidas e mais fáceis de se aplicar.
[00080] A equação de uma curva elíptica:
Figure img0041
pode ser escrita em coordenadas Jacobianas:
Figure img0042
[00081] Deve ser notado que que as coordenadas de um ponto (X,Y) podem ser escritas em coordenadas Jacobianas (Z', X', Y') tal que:
Figure img0043
[00082] Nós devemos conseqüentemente determinar um Z polinomial (t,u) de tal maneira que as coordenadas Jacobianas X', Y' e Z' podem ser escritas sem inversão.
[00083] Nas seguintes seções, esta transformação em coordenadas Jacobianas é aplicada a um exemplo particular dos polinômios como indicado previamente.
[00084] Neste contexto, toda a operação de inversão é eliminada fazendo exame:
Figure img0044
[00085] De fato, os polinômios podem então ser escritos da seguinte forma em coordenadas Jacobianas:
Figure img0045
[00086] Deve ser conseqüentemente notado que já há nenhuma inversão em coordenadas Jacobianas. Como esta operação pode ser tão cara quanto uma exponenciação, estas coordenadas permitem uma melhoria significativa no tempo do cálculo.
[00087] Então, para obter a coordenada Jacobiana Y', é aconselhável calcular U'(t, u), o equivalente de U(t, u) em coordenadas Jacobianas.
[00088] Podemos então escrever em coordenadas Jacobianas:
Figure img0046
com:
Figure img0047
[00089] Com finalidade exemplar apenas, as equações abaixo fazem possível não precisar mais realizar operações de inversão. Sob estas circunstâncias um método da execução é obtido que é então mais eficiente e rápido, enquanto assegura uma execução ainda em um tempo constante.
[00090] A invenção atual pode vantajosamente ser executada em qualquer tipo de cálculo criptográfico usando curvas elípticas. Este pode, em particular, ser vantajoso nos protocolos para a autenticação por meio de senha, tal como PACE (Estabelecimento da conexão autenticada por senha). Neste caso, isso permite uma melhoria no desempenho do cálculo, enquanto não permite nenhum ataque vinculado ao tempo de execução do cálculo criptográfico.
[00091] A invenção atual pode também ser aplicada vantajosamente no contexto de protocolos da privacidade, tais como aqueles usados para verificar documentos eletrônicos de identidade, tais como passaportes eletrônicos.

Claims (8)

1. Método de execução de um cálculo criptográfico em um componente eletrônico, caracterizado pelo fato de ser composto por uma etapa de obtenção de um ponto P (X, Y) de pelo menos um parâmetro t, em uma curva elíptica satisfazendo a equação:
Figure img0048
a partir de polinômios x1(t), x2(t), e U(t) que satisfazem a seguinte igualdade:
Figure img0049
no corpo finito Fq, qualquer que seja o parâmetro t, q satisfazendo a equação q = 3 mod 4; o dito método compreendendo as seguintes etapas: /1/obter um valor do parâmetro t; /2/determinar o ponto P executando as seguintes subetapas:
Figure img0050
/ii/ testar (12) se o termo f(X1) é um termo ao quadrado no corpo finito Fq e neste caso calcular (13) a raiz quadrada do termo f(X1), o ponto P tendo X1 como abscissa e a raiz quadrada do termo f(X1) como ordenada Y1; /iii/ senão, calcular (14) a raiz quadrada do termo f(X2), o ponto P tendo X2 como abscissa e a raiz quadrada do termo f(X2) como ordenada; /3/ usar o dito ponto P em uma aplicação criptográfica de encriptação ou hashing ou assinatura ou autenticação ou identificação.
2. Método de execução de um cálculo criptográfico de acordo com a reivindicação 1, caracterizado pelo fato de que as seguintes etapas são executadas na etapa /2/-/ii/: - calcular (21) R1 tal que:
Figure img0051
- se R1 for igual a 1 (22), - decidir que o termo f(X1) é um termo ao quadrado no corpo Fq ; e - calcular (24)
Figure img0052
- senão, calcular (23)
Figure img0053
3. Método de execução de um cálculo criptográfico de acordo com a reivindicação 1, caracterizado pelo fato de que, na etapa /2/-/ii/, as seguintes etapas são executadas:
Figure img0054
em que, se R3' não for igual a 1, na etapa /2/-/iii/, a raiz quadrada de f(X2) é obtida (316) de acordo com a seguinte equação:
Figure img0055
onde R0 satisfaz a seguinte equação:
Figure img0056
4. Método de execução de um cálculo criptográfico de acordo com a reivindicação 3, caracterizado pelo fato de que, se R3' for igual a 1, na etapa /2/-/iii/, a raiz quadrada de f (X1) é obtida (315) de acordo com a seguinte equação:
Figure img0057
5. Método de execução de um cálculo criptográfico de acordo com a reivindicação 1, caracterizado pelo fato de que os polinômios são expressos em coordenadas Jacobianas de acordo com as quais o ponto P (X,Y) é escrito P(X',Y',Z) tais que:
Figure img0058
onde a função f é escrita fz(X') e satisfaz:
Figure img0059
com a curva elíptica satisfazendo a equação:
Figure img0060
em que os polinômios expressos em coordenadas Jacobianas são X'1(t), X'2(t), Z(t) e U'(t) e satisfazem a igualdade em coordenadas Jacobianas:
Figure img0061
e em que Z(t) é determinado de tal maneira que as operações de inversão são transformadas em operação de multiplicação.
6. Método de execução de um cálculo criptográfico de acordo com qualquer uma das reivindicações 1 a 5, caracterizado pelo fato de que, na etapa /1/, o valor do parâmetro t é obtido como uma função de uma senha ou de um identificador.
7. Método de execução de um cálculo criptográfico de acordo com qualquer uma das reivindicações 1 a 6, caracterizado pelo fato de que a aplicação criptográfica é uma aplicação de autenticação ou de identificação por uma entidade de verificação, e em que, na etapa /1/, as seguintes etapas são executadas: /a/gerar um valor aleatório; /b/obter um valor encriptado encriptando o dito valor aleatório baseado em uma função de encriptação usando uma chave de encriptação determinada a partir de uma senha ou de um identificador que corresponde ao parâmetro; e /c/transmitir o valor encriptado para a entidade de verificação.
8. Dispositivo eletrônico, caracterizado pelo fato de compreender meios apropriados para executar um método de execução de um cálculo criptográfico conforme definido em qualquer uma das reivindicações 1 a 7.
BRPI1016042-6A 2009-06-16 2010-06-15 Método de execução de um cálculo criptográfico em um componente eletrônico e dispositivo eletrônico BRPI1016042B1 (pt)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR0954043 2009-06-16
FR0954043A FR2946818B1 (fr) 2009-06-16 2009-06-16 Cryptographie sur une courbe elliptique simplifiee.
PCT/FR2010/051191 WO2010146303A2 (fr) 2009-06-16 2010-06-15 Cryptographie sur une courbe elliptique simplifiee

Publications (2)

Publication Number Publication Date
BRPI1016042A2 BRPI1016042A2 (pt) 2016-05-10
BRPI1016042B1 true BRPI1016042B1 (pt) 2021-06-29

Family

ID=41480154

Family Applications (1)

Application Number Title Priority Date Filing Date
BRPI1016042-6A BRPI1016042B1 (pt) 2009-06-16 2010-06-15 Método de execução de um cálculo criptográfico em um componente eletrônico e dispositivo eletrônico

Country Status (9)

Country Link
US (1) US8712038B2 (pt)
EP (1) EP2443789B1 (pt)
CN (1) CN102484588B (pt)
BR (1) BRPI1016042B1 (pt)
CA (1) CA2765652C (pt)
ES (1) ES2427740T3 (pt)
FR (1) FR2946818B1 (pt)
PL (1) PL2443789T3 (pt)
WO (1) WO2010146303A2 (pt)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102014011045A1 (de) 2014-07-23 2016-01-28 Giesecke & Devrient Gmbh Verfahren zum Berechnen eines Punktes auf einer elliptischen Kurve
CN108712256B (zh) * 2018-07-02 2021-10-26 复旦大学 一种基于椭圆曲线子域子码的加密解密算法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE325478T1 (de) 1998-01-02 2006-06-15 Cryptography Res Inc Leckresistentes kryptographisches verfahren und vorrichtung
CA2243761C (en) * 1998-07-21 2009-10-06 Certicom Corp. Timing attack resistant cryptographic system
US7308096B2 (en) * 2000-05-30 2007-12-11 Hitachi, Ltd. Elliptic scalar multiplication system
JP4155929B2 (ja) * 2003-01-22 2008-09-24 株式会社リコー 画像符号化装置、符号復号化装置、画像符号化方法、符号復号化方法、プログラム及び記憶媒体
US8171289B2 (en) * 2006-06-09 2012-05-01 Symantec Corporation Method and apparatus to provide authentication and privacy with low complexity devices
US20100293379A1 (en) * 2007-05-31 2010-11-18 Beijing Transpacific Ip Technology Development Ltd method for secure data transmission in wireless sensor network
CN101222327A (zh) * 2007-09-13 2008-07-16 上海大学 列车运行控制系统的安全椭圆曲线密码保护方法
US8225109B1 (en) * 2008-04-30 2012-07-17 Netapp, Inc. Method and apparatus for generating a compressed and encrypted baseline backup

Also Published As

Publication number Publication date
WO2010146303A3 (fr) 2011-03-03
PL2443789T3 (pl) 2014-01-31
EP2443789B1 (fr) 2013-08-07
WO2010146303A2 (fr) 2010-12-23
EP2443789A2 (fr) 2012-04-25
US8712038B2 (en) 2014-04-29
ES2427740T3 (es) 2013-10-31
RU2012101254A (ru) 2013-07-27
CA2765652C (fr) 2017-11-21
CN102484588B (zh) 2015-05-06
CA2765652A1 (fr) 2010-12-23
FR2946818A1 (fr) 2010-12-17
US20120093309A1 (en) 2012-04-19
BRPI1016042A2 (pt) 2016-05-10
FR2946818B1 (fr) 2011-07-01
CN102484588A (zh) 2012-05-30

Similar Documents

Publication Publication Date Title
CA2827519C (en) Incorporating data into cryptographic components of an ecqv certificate
US8745376B2 (en) Verifying implicit certificates and digital signatures
WO2014138626A1 (en) Systems and methods for maintaining integrity and secrecy in untrusted computing platforms
EP3161996B1 (en) System and device binding metadata with hardware intrinsic properties
US11184168B2 (en) Method for storing data on a storage entity
US8868910B2 (en) Elliptic curve cryptographic signature
BRPI1006832B1 (pt) métodos de executar uma computação criptográfica em um componente eletrônico, método de autenticação por pelo menos uma senha, método de criptografar um dado, método de compressão de dados, e dispositivos eletrônicos
BRPI1016042B1 (pt) Método de execução de um cálculo criptográfico em um componente eletrônico e dispositivo eletrônico
BRPI1016041B1 (pt) método de execução de um cálculo de criptografia em um componente eletrônico e aparelho eletrônico
US20150358162A1 (en) Decryption service providing device, processing device, safety evaluation device, program, and recording medium
US20100272253A1 (en) Information processing device, operation verifying method, and program
Koçabas et al. Poster: practical embedded remote attestation using physically unclonable functions
JP3952304B2 (ja) 電子コンポネントにおいて公開指数を求める暗号アルゴリズムを実行する方法
EP3891630B1 (en) Method for end entity attestation
US10027483B2 (en) Cryptography on an elliptical curve
US9866371B2 (en) Cryptography on a simplified elliptical curve
Schmidt et al. How Little is Enough? Implementation and Evaluation of a Lightweight Secure Firmware Update Process for the Internet of Things.
US20140314230A1 (en) Cryptography on an elliptical curve
RU2574826C2 (ru) Криптография на упрощенной эллиптической кривой
Gueron Quick verification of rsa signatures
Moloney et al. Efficient implementation of elliptic curve point operations using binary Edwards curves
JP2010191419A (ja) 楕円曲線の点上へのハッシングのための方法及び装置
TW201503654A (zh) 用於基於計算速率之裝置證明的系統、方法及設備
CN115801284A (zh) 一种数字签名验证方法、装置、电子设备及存储介质
US9049021B2 (en) Method for determining the cofactor of an elliptic curve, corresponding electronic component and computer program product

Legal Events

Date Code Title Description
B06F Objections, documents and/or translations needed after an examination request according [chapter 6.6 patent gazette]
B06U Preliminary requirement: requests with searches performed by other patent offices: procedure suspended [chapter 6.21 patent gazette]
B15K Others concerning applications: alteration of classification

Free format text: AS CLASSIFICACOES ANTERIORES ERAM: H04L 9/30 , G06F 7/72

Ipc: H04L 9/30 (1990.01), G06F 7/72 (1980.01), H04L 9/0

B06A Patent application procedure suspended [chapter 6.1 patent gazette]
B09A Decision: intention to grant [chapter 9.1 patent gazette]
B16A Patent or certificate of addition of invention granted [chapter 16.1 patent gazette]

Free format text: PRAZO DE VALIDADE: 20 (VINTE) ANOS CONTADOS A PARTIR DE 15/06/2010, OBSERVADAS AS CONDICOES LEGAIS. PATENTE CONCEDIDA CONFORME ADI 5.529/DF, , QUE DETERMINA A ALTERACAO DO PRAZO DE CONCESSAO.

B25G Requested change of headquarter approved

Owner name: MORPHO (FR)

B25G Requested change of headquarter approved

Owner name: MORPHO (FR)

B25D Requested change of name of applicant approved

Owner name: SAFRAN IDENTITY AND SECURITY (FR)

B25D Requested change of name of applicant approved

Owner name: IDEMIA IDENTITY AND SECURITY FRANCE (FR)