[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:
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:
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:
[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
[00012] O cálculo de
pode ser realizado por meio de um cálculo exponenciação quando a característica q do corpo Fq satisfaz:
[00013] Neste caso, é conhecido que:
[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:
começando a partir dos polinômios X1(t), X2(t), e U(t) satisfazendo a seguinte equalidade:
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:
/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:
[00022] Esta equação segue a partir da equalidade de Skalba (2). De fato, esta equação pode ser obtida determinando:
[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:
se R é igual a 1, decidir que o termo f(X1) é um termo ao quadrado no corpo Fq, e calcular
de outra forma calcular
[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:
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:
onde R0 satisfaz a seguinte equação:
[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:
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
é 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:
[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:
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:
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:
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:
[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:
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:
[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:
[00060] De outra maneira, o termo f(X2) é um termo ao quadrado. Então, na etapa 23, sua raiz quadrada é calculada como segue:
[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:
[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:
[00068] Então verifica-se se este termo R0 é um termo ao quadrado como indicado previamente. Assim na etapa 312, nós calculamos
[00069] Então na etapa 313, nós calculamos
[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):
[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:
' onde R0 satisfaz a seguinte equação
[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:
em que:
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
[00078] Vantajosamente, estes polinômios satisfazem a seguinte equação:
[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:
pode ser escrita em coordenadas Jacobianas:
[00081] Deve ser notado que que as coordenadas de um ponto (X,Y) podem ser escritas em coordenadas Jacobianas (Z', X', Y') tal que:
[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:
[00085] De fato, os polinômios podem então ser escritos da seguinte forma em coordenadas Jacobianas:
[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:
com:
[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.