BR102012010971A2 - Método e dispositivo de exponenciação modular resistente aos ataques de canal-lateral - Google Patents

Método e dispositivo de exponenciação modular resistente aos ataques de canal-lateral Download PDF

Info

Publication number
BR102012010971A2
BR102012010971A2 BRBR102012010971-9A BR102012010971A BR102012010971A2 BR 102012010971 A2 BR102012010971 A2 BR 102012010971A2 BR 102012010971 A BR102012010971 A BR 102012010971A BR 102012010971 A2 BR102012010971 A2 BR 102012010971A2
Authority
BR
Brazil
Prior art keywords
module
modular
mod
result
operands
Prior art date
Application number
BRBR102012010971-9A
Other languages
English (en)
Inventor
Marc Joye
Original Assignee
Thomson Licensing
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
Application filed by Thomson Licensing filed Critical Thomson Licensing
Publication of BR102012010971A2 publication Critical patent/BR102012010971A2/pt

Links

Classifications

    • 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/722Modular multiplication
    • 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/723Modular exponentiation
    • 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
    • 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

Landscapes

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • General Engineering & Computer Science (AREA)
  • Complex Calculations (AREA)
  • Storage Device Security (AREA)
  • Error Detection And Correction (AREA)

Abstract

MÉTODO E DISPOSITIVO DE EXPONENCIAÇÃO MODULAR RESISTENTE AOS ATAQUES DE CANAL-LATERAL Uma exponenciação modular compreendendo etapas de multiplicações modulares iterativas e considerando como entrada um primeiro módulo N, um expoente secreto d e uma base x. Durante ao menos um etapa de multiplicação modular tendo como objetivo a computação de um resultado c a partir de dois valores a, b e do primeiro módulo N; de modo que c = a.b mod N, um processador (120) pega como entrada os dos velores a, b, e o primeiro módulo N a partir dos quais são obtidos dois operandos a<39>, b<39> e um segundo módulo N, utllizando operações com complexidade quando muito linear - ao menos um dos dois operandos a<39>,b<39> ´e diferente dos dois operandos a<39>, b<39> são diferentes quando a = b - de modo que a multiplicação modular c = a.b mod N a partir do ponto de vista de canal-lateral se comporta como uma quadratura modular exceto quando a<39> for igual a b<39>.Um resultado intermediário c<39> = a<39>.b<39> mod N<39> e computado, e o resultdo c é derivado do resultado intermediário c<39> utilizando uma operação com complexidade quando muito linear; e o resultado c é usado na exponenciação modular.

Description

"MÉTODO E DISPOSITIVO DE EXPONENCIAÇÃO MODULAR RESISTENTE AOS ATAQUES DE CANAL-LATERAL"
CAMPO TÉCNICO
A presente invenção se refere geralmente à criptografia, e particularmente aos algo- ritmos de exponenciação modular resistentes a certos ataques de canal-lateral.
ANTECEDENTES
Essa seção pretende introduzir o leitor aos vários aspectos da técnica, que podem ser relacionados a vários aspectos da presente invenção que são descritos e/ou reivindica- dos abaixo. Acredita-se que essa discussão seja útil para prover o leitor com informação de fundamentos para facilitar um melhor entendimento dos vários aspectos da presente inven- ção. Consequentemente deve-se entender que essas declarações devem ser lidas em virtu- de disso, e não como admissões de técnica anterior.
Uma operação fundamental em criptografia de chave pública é a exponenciação modular. Na entrada Ν, χ e d, y = Xd mod N é computado. Há naturalmente, um hospedeiro de algoritmos de exponenciação modular da técnica anterior, dos exemplos do qual estão sendo fornecidos em seguida.
Algoritmo 1 - Método binário da esquerda para a direita
Entrada: N,xê π/ΝΈ ed = {d^,d0):2 e M
Saída: y = Xd mod N
20
1: R[0]«- 1; R[1] ^x
2: para j = /-1 descendentemente até 0 realizar 3: R[0] <- R[0]2 mod N
4: se (dj Φ 0) então R[0] R[0]· R[1] mod N
5: terminar para 6: retornar R[0]
Algoritmo 2 - Método binário da direita para a esquerda
Entrada: N1 χe Z/NX ed= (dt_t,d0)2 e m Saída: y = Xd mod N
1: R[0] <— 1; R[1]<-x 2: para j = O até I-1 realizar
3: se (dy * 0) então R[0] <- R[0]· R[1] mod N
5
4: R[1 ] R[1]2 mod N
5: terminar para
6: retornar R[0]
10
Embora ambos os métodos sejam eficientes, aqueles versados na técnica conside- rarão que eles podem estar sujeitos no canal-lateral, especificamente ataques de Análise de Potência Simples (SPA). Vide "Paul Kocher, Joshua Jaffe, e Benjamin Jun; Differential PowerAnaIysis; In M. Wiener, editor, Advances in Cryptology - CRYPTO'99, volume 1666 of Lecture Notes in Computer Science, páginas 388-397; Springer-Verlag, 1999"; e "Paul C. Kocher; Timing Attacks on Implementations of Diffie-Hellman1 RSA, DSS1 and Other Sys- tems; In N. Koblitz, editor, Advances in Cryptology- CRYPTO'96, volume 1109 of Lecture Notesin Computer Science, páginas 104-113. Springer-Verlag, 1996".
O problema principal reside na presença da derivação condicional, isto é, a decla- ração 'se'.
Uma forma de superar esse problema é a de executar uma multiplicação em cada laço do circuito, em outras palavras realizar uma multiplicação falsa sempre que d} = 0. Vide "Jean-Sébastien Coron; Resistance Against Differential Power Analysis for Elliptic Curve Cryptosystems; In Ç.K. Koç e C. Paar1 editors, Cryptographic Hardware and Embedded Sys- tems - CHES'99, volume 1717 of Lecture Notes in Computer Science, páginas 292-302. Springer-Verlag, 1999". As implementações resultantes, contudo são mais lentas, o custo aumenta de aproximadamente 1,5 multiplicações por bit até 2 multiplicações por bit. Um empecilho adicionado é que as implementações se tomem vulneráveis aos ataques protegi- dos contra erro; vide "Sung-Ming Yen and Marc Joye; Checking before output may not be enough against fault-based cryptanalysis; IEEE Transactions on Computers, 49(9):967-970, 2000"; and "Sung-Ming Yen, Seung-Joo Kim, Seon-Gan Lim, and Sang-Jae Moon; A Coun- termeasure Against One Physical Cryptanalysis May Benefit Another Attack; In K. Kim, edi- tor, Information Security and Cryptology - ICISC 2001, volume 2288 of Lecture Notes in Computer Science, pages 417-427. Springer-Verlag, 2002". Uma forma melhor de prevenir ataques do tipo SPA é a de utilizar a assim chamada
atomicidade de canal-lateral; vide "Benoít Chevallier-Mames, Mathieu Ciet, and Marc Joye; Low-Cost Solutions for Preventing Simple Side-channel Analysis: Side-Channel Atomicity; IEEE Transactions on Computers, 53(6):760-768, 2004". Os algoritmos correspondentes são:
Algoritmo 3 - Método binário da esquerda para a direita (atômico)
Entrada: Ν, χ E Z/ltfl ed- (^11d0)2 6 M Saída: y= Xd mod Λ/
1: R[0] <— 1; R[1]«-x
2: y /-1; ò <— 0
3: enquanto (/'s 0) realizar
4: R[0] R[0]· R[b] mod N
5: b <- b □ df, j*-j- ~·ό
6: terminar enquanto 7: retornar R[0]
Algoritmo 4 - Método binário da direita para a esquerda (atômico)
Entrada: Ν, χ e z/wz e d = (d^.dQ)2 e M Saída: y = XdInod Λ/
1: R[0] <— 1; R[1]«-x
2: y 0; ó <— 1
3: enquanto (/' < /-1) realizar
4: ò <- b □ dj
5: R[b] R[b]· R[1] mod N]j<-j + b
6: terminar enquanto 7: retornar R[0] Nos Algoritmos 3 e 4, □ denota o operador XOR (OR exclusivo) e -1 denota o operador de negação (isto é, se b = O então -"0=1 e e b = 1 então -φ = 0).
Será considerado que o custo não é aumentado, porém permanece em aproxima-
damente 1,5 multiplicações por bit. Será ainda considerado que a atomicidade de canal- Iateral não é restrita aos métodos de exponenciação binária. Algoritmos adicionais podem ser encontrados no documento anteriormente mencionado de Chevallier-Mames, Ciet and Joye.
Embora a atomicidade de canal-lateral conduza a algoritmos muito bons, deve-se
enfatizar que a metodologia supõe que a operação de multiplicação é atômica. Mais explici- tamente, supõe-se que não é possível fazer a distinção entre uma quadratura modular e uma multiplicação modular mediante observação de um canal-lateral adicional. Essa suposi- ção nem sempre é consumada. Ataques concretos são reportados em "Frédéric Amiel, Be- noít Feix, Michael Tunstall, Claire Whelan, and William P. Marnane; Distinguishing Multiplica- tions from Squaring Operations; In R. Avanzi, L. Keliher, and F. Sica, editors, Selected Areas in Cryptography - SAC 2008, volume 5394 of Lecture Notes in Computer Science, páginas 346-360. Springer-Verlag, 2009".
Será assim considerado que há a necessidade de uma solução na qual uma multi- plicação modular, do ponto de visto do canal-lateral, se comporta como uma quadratura mo- dular. Essa invenção provê tal solução.
SUMÁRIO DA INVENÇÃO
Em um primeiro aspecto a invenção se refere a um método de realizar uma expo- nenciação modular compreendendo etapas de multiplicações modulares iterativas e pegan- do como entrada um primeiro módulo N, um expoente secreto d e uma base x. Durante pelo menos uma etapa de multiplicação modular tendo como objetivo a computação de um resul- tado c a partir de dois valores a, b e o primeiro módulo N de modo que c = a-b mod N, um processador pega como entrada as duas metades a, b e o primeiro módulo N; obtém, a par- tir dos dois valores a, b e do primeiro módulo N, dois operandos a', b' e um segundo módulo N'; de tal modo que ao menos um dos dois operandos a' b' seja diferente dos dois valores a, b e que os dois operandos a', b' sejam diferentes quando a for igual a b, de modo que a mul- tiplicação modular c = a b mod N a partir do ponto de vista do canal-lateral se comporta co- mo uma quadratura modular exceto quando a' for igual a b'; em que o operando a' é obtido a partir do valor a, o operando b' é obtido a partir do valor b, e o segundo módulo N' é obtido a partir do primeiro módulo N utilizando operações com uma complexidade quase linear; com- putar um resultado intermediário c' = a' b' mod Λ/'; derivar o resultado c a partir do resultado intermediário c', em que c é obtido a partir de c' utilizando uma operação com complexidade quase linear; e utilizar o resultado c' na exponenciação modular.
Em uma primeira modalidade preferida, a' = 2a, b' = b + N e /V = 2N, e c' = c/2.
Em uma segunda modalidade preferida, á = N - a, b' = b e N = N, e c' = N - c. É vantajoso que o primeiro módulo N seja ímpar.
Em um segundo aspecto, a invenção se refere a um processador para realizar uma
exponenciação modular compreendendo etapas de multiplicações modulares iterativas e pegando como entrada um primeiro módulo N, um expoente secreto d e uma base χ. O pro- cessador compreender meios, durante ao menos uma multiplicação modular tendo como objetivo computar um resultado c a partir de dois valores a, b e o primeiro módulo N de mo- do que c = ab mod N, para: pegando como entrada os dois valores a, b e o primeiro módulo N; obtendo, a partir dos dois valores a, b e do primeiro módulo N, dois operandos a', b' e um segundo módulo N'; de tal modo que ao menos um dos dois operandos a', b' é diferente dos dois valores a, b, e que os dois operandos a', b' são diferentes quando a é igual a b, de mo- do que a multiplicação modular c = a b mod N do ponto de vista de canal-lateral se comporta como uma quadratura modular exceto quando a' é igual a b'; em que o operando a' é obtido a partir do valor a, o operando b' é obtido a partir do valor b, e o segundo módulo N' é obtido a partir do primeiro módulo N utilizando operações com complexidade quando muito linear; computar um resultado intermediário c' = a'-'b mod N'; e derivar o resultado c a partir do re- sultado intermediário c', em que c é obtido a partir de c' utilizando uma operação com com- plexidade quando muito linear; em que o processador compreende ainda meios para utilizar o resultado c na exponenciação modular.
Em uma primeira modalidade preferida, a' = 2a, b' = b + N e /V = 2N, e c' = c/2.
Em uma segunda modalidade preferida, a' = N - a, b' = b e /V = N, e c' = N - c. É vantajoso que o primeiro módulo N seja ímpar. Em um terceiro aspecto, a invenção se refere a um produto de programa de compu-
tador tendo armazenado no mesmo, instruções que, quando executadas por um processa- dor, realizam o método do primeiro aspecto.
BREVE DESCRIÇÃO DOS DESENHOS
Características preferidas da presente invenção serão descritas agora, por intermé- dio de exemplo não limitador, com referência aos desenhos anexos, nos quais a Figura 1 ilustra um aparelho para realizar uma exponenciação resistente a certos ataques de canal- lateral de acordo com uma modalidade preferida da invenção.
DESCRIÇÃO DAS MODALIDADES
Uma idéia inventiva principal da presente invenção é, como já mencionado, a de fa- zer com que uma multiplicação modular se comporte como uma quadratura modular a partir de um ponto de vista de canal-lateral, que pode ser usada para prover algoritmos de expo- nenciação modular que sejam resistentes a certos ataques de canal-lateral. Isso pode ser obtido mediante avaliação de uma multiplicação modular de a e b de módulo N de modo que quando a = b, os valores dos dois operandos aparecendo na multi- plicação modular são diferentes.
Uma primeira modalidade preferida se baseia na observação de que para quaisquer
elementos: a, b ε rLfNT.
ab mod N = [(a + a) ■ (b + N) mod 2Λ/]/2
Prova: Definir números inteiros T = (a + a)· (b + N) e S = T/2. Temos Tmod 2N=T-
ΠΤΙ(2Ν)Π2Ν = 2(S-DS/NDN) = 2(S mod N). Portanto, temos (Tmod 2N)/2 = S = ab
(mod N). Segue-se agora o resultado ao se observar que (Tmod 2N)I2 is in {0.....N-1}. □
Vale a pena assinalar que quando a = b, se tem (a + a) ■ (b + N) = (2a) · (a + N) e 2a Φ a + N uma vez que de outro modo se teria a = Ν, o que não é possível uma vez que a
está em 2/ITZ (isto é, no conjunto {0, 1.....N - 1}). Em outras palavras, quando a = b, os
valores das duas operações aparecendo na multiplicação modular (a + a) ■ (b + N) mod 2N são diferentes.
Uma segunda modalidade preferida se baseia na identidade:
20
a b mod N=N - [(N- a) b mod N\
Prova: Definir número inteiros S = N-[(N - a)· b mod N\. Como (-1)2 = 1, obviamente temos
S ξ a b (mod N). Adicionalmente S □ {0.....N-1}. □
Outra vez, desde que N seja ímpar, vale a pena assinalar que quando a = b os va- lores dos dois operandos aparecendo na multiplicação modular (N - a) ■ b mod N são dife- rentes. Na realidade, quando a = b, se tem (N - a) ■ b = (N - a) ■ a e (N - a) Φ a é sempre sa- tisfeito quando N é ímpar.
Se a' e b' são os operandos e N' é o módulo na multiplicação modular modificada e c' é o resultado da multiplicação modular modificada que precisa ser ajustada para se obter a saída correta c, então será considerado que os operandos a' e b' e os módulos N' são ob- tidos utilizando as operações com complexidade quase linear - aqueles versados na técnica considerarão que N' = 2N é normalmente implementado como uma adição ou um desloca- mento de bits - como é o caso para a operação usada para obter c a partir de c' - a 'divisão' sendo implementada como um deslocamento de bits.
Qualquer uma das modalidades pode ser então usada nos Algoritmos, 3 e 4, descri- tos na seção Antecedentes, originando os seguintes algoritmos. Algoritmo 3' - O método binário L para R (atômico) implementando a primeira mo-
dalidade
Entrada: Ν, χe 2/Λ'Ζed= (^1, ...,de)2 e M Saída: y = Xd mod N
1: R[0] <— 1; R[1] <—x
2: y<— /-1; b <— 0
3: enquanto (/s 0) realizar
15
4: R[0] <- ((R[0] + R[0]) ■ (R[í>] + N) mod 2N)I2
5: b <- b □ d/, j^-j- ^b
6: terminar enquanto
7: retornar R[0]
Algoritmo 4' - Método binário R para L (atômico) implementando a segunda moda- lidade
Entrada: Ν, χ e ZfNZ e d = (Jm, .... á0}2 e I
Saída: y = x" mod Λ/
1: R[0]<- 1; R[1] <— x
2: y <— 0; ò 1
3: enquanto (/'á /-1) realizar
4: b <- b Π dj
35
5: R[ò] N- [{N- R[ô])· R[1 ] mod N],j<—j+b 6: terminar enquanto
7: retornar R[0]
Deve-se observar que há casos onde a fórmula re-escrita produz uma quadratura modular. Um exemplo disso é a multiplicação modular de 70 e 20 com N = 120 utilizando a fórmula da primeira modalidade:
((70+70) (20+120) mod 240)/2 = (140-140 mod 240)/2 = (19600 mod 240)/2 = 160/2 = 80. Um exemplo disso com a fórmula da segunda modalidade é a multiplicação modular de 70 e 51 com N = 121:
121 - ((121-70) 51 mod 121) = 121 - (51-51 mod 121) = 121 - (2601 mod 121) = 61.
Contudo, será considerado que essas ocorrências são muito mais raras do que as quadraturas no esquema atômico original, uma vez que esses ocorrem mais freqüentemente do que ao contrário. Além disso, quando combinadas com certas técnicas de randomização, pode ser difícil produzir tais valores conflitantes. Isso acontece, por exemplo, quando a ex- ponenciação modular y = Xd mod N é computada como y = [(x + r-N)d mod t-N] mod N onde t é um número inteiro de /c-bit aleatório para algum parâmetro de segurança ke ré um núme- ro inteiro aleatório em {0,..., t- 1}.
A Figura 1 ilustra um dispositivo de acordo com uma modalidade preferida da pre- sente invenção. O dispositivo 100 compreende ao menos uma unidade de interface 110 a- daptada para comunicação com outros dispositivos (não mostrados), ao menos um proces- sador 120 e ao menos uma memória 130 adaptada para armazenar dados, tais como acu- muladores e resultados de cálculos intermediários. O processador 120 é adaptado para computar uma multiplicação modular de acordo com qualquer uma das modalidades dos métodos inventivos, e também para executar algoritmos de exponenciação modular imple- mentando tais multiplicações, como anteriormente descrito aqui. Um produto de programa de computador 140 tal como um CD-ROM ou um DVD compreende instruções armazenadas que, quando executadas pelo processador 120, realizam o método de acordo com qualquer uma das modalidades da invenção. Será considerado que o presente método de multiplicação pode prover algoritmos
de exponenciação modular que proporcionam uma proteção aumentada contra ataques de canal-lateral.
Cada aspecto revelado na descrição e (onde apropriado) nas reivindicações e nos desenhos pode ser provido independentemente ou em qualquer combinação apropriada. Características descritas como sendo implementadas em hardware também podem ser im- plementadas em software, e vice-versa. Numerais de referência aparecendo nas reivindica- ções servem apenas como ilustração e não devem ter qualquer efeito limitador sobre o es- copo das reivindicações.

Claims (9)

1. Método de realizar uma exponenciação modular CARACTERIZADO pelo fato de que compreende etapas de multiplicações modulares iterativas e pegando como entrada um primeiro módulo N, um expoente secreto d e uma base χ, o método sendo realizado em um processador (100) e compreendendo as etapas, durante pelo menos uma etapa de multipli- cação modular tendo como objetivo computar um resultado c a partir de dois valores a, b e o primeiro módulo N, de modo que c = ab mod N, de: - pegar como entrada os dois valores a, b e o primeiro módulo N; - obter, a partir dos dois valores a, b, e do primeiro módulo N, dois operandos a', b' e um segundo módulo N'; de tal modo que ao menos um dos dois operandos a', b' é diferen- te dos dois valores a', b' e que os dois operandos a', b' são diferentes quando a é igual a b, de modo que a multiplicação modular c = a b mod N a partir do ponto de vista de canal- Iateral se comporta como uma quadratura modular exceto quando a' for igual a b'\ em que o operando a' é obtido a partir do valor a, o operando b' é obtido a partir do valor b, e o segun- do módulo N'é obtido a partir do primeiro módulo N utilizando operações com complexidade quando muito linear; - computar um resultado intermediário c' = a' b' mod /V; - derivar o resultado c a partir do resultado intermediário c', em que c é obtido a par- tir de c' utilizando uma operação com complexidade quando muito linear; e - utilizar o resultado c na exponenciação modular.
1/2 REIVINDICAÇÕES
2. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a' = 2a, b' = b + N e /V = 2N, e em que c' = c/2.
3. Método, de acordo com a reivindicação 1, CARACTERIZADO pelo fato de que a' = N - a, b' = b e /V = N, e em que c' = N-c.
4. Método, de acordo com a reivindicação 3, CARACTERIZADO pelo fato de que o primeiro módulo Né ímpar.
5. Processador (100) para realizar uma exponenciação modular CARACTERIZADO pelo fato de que compreende etapas de multiplicações modulares iterativas e pegando como entrada um primeiro módulo N, um expoente secreto d e uma base χ, o processador com- preendendo meios (120), durante ao menos uma multiplicação modular tendo como objetivo computar um resultado c a partir de dois valores a, b e o primeiro módulo N de modo que c = a b mod N, para: - pegar como entrada os dois valores a, b e o primeiro módulo N; - obter, a partir dos dois valores a, b, e do primeiro módulo N, dois operandos a', b' e um segundo módulo N'; de tal modo que ao menos um dos dois operandos a', b' é diferen- te dos dois valores a', b' e que os dois operandos a', b' são diferentes quando a é igual a b, de modo que a multiplicação modular c = a»b mod N a partir do ponto de vista de canal- lateral se comporta como uma quadratura modular exceto quando a' for igual a b'; em que o operando a' é obtido a partir do valor a, o operando b' é obtido a partir do valor b, e o segun- do módulo N1 é obtido a partir do primeiro módulo N utilizando operações com complexidade quando muito linear; - computar um resultado intermediário c' = a'*b' mod N'; e - derivar o resultado c a partir do resultado intermediário c\ em que c é obtido a par- tir de c' utilizando uma operação com complexidade quando muito linear; em que o processador compreende ainda meios (120) para utilizar o resultado c na exponenciação modular.
6. Processador, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que a' = 2a, b' = b + N e /V = 2N, e em que c' = c/2.
7. Processador, de acordo com a reivindicação 5, CARACTERIZADO pelo fato de que a' = N - a, b' = b e A/' = N, e em que c' = N- c.
8. Processador, de acordo com a reivindicação 7, CARACTERIZADO pelo fato de que o primeiro módulo N é ímpar.
9. Produto de programa de computador (140) CARACTERIZADO pelo fato de ter armazenado no mesmo, instruções que, quando executadas por um processador, realizam o método de qualquer uma das reivindicações 1 a 4.
BRBR102012010971-9A 2011-05-11 2012-05-09 Método e dispositivo de exponenciação modular resistente aos ataques de canal-lateral BR102012010971A2 (pt)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
EP11305568 2011-05-11
EP11176404A EP2523096A1 (en) 2011-05-11 2011-08-03 Modular exponentiation and device resistant against side-channel attacks

Publications (1)

Publication Number Publication Date
BR102012010971A2 true BR102012010971A2 (pt) 2013-11-12

Family

ID=44546155

Family Applications (1)

Application Number Title Priority Date Filing Date
BRBR102012010971-9A BR102012010971A2 (pt) 2011-05-11 2012-05-09 Método e dispositivo de exponenciação modular resistente aos ataques de canal-lateral

Country Status (8)

Country Link
US (1) US8984040B2 (pt)
EP (2) EP2523096A1 (pt)
JP (1) JP5977996B2 (pt)
CN (1) CN102779022B (pt)
BR (1) BR102012010971A2 (pt)
CA (1) CA2775325A1 (pt)
HK (1) HK1176423A1 (pt)
MX (1) MX2012005408A (pt)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9645794B2 (en) * 2014-09-23 2017-05-09 Texas Instruments Incorporated Homogeneous atomic pattern for double, add, and subtract operations for digital authentication using elliptic curve cryptography
CN104811297B (zh) * 2015-04-23 2018-06-12 成都信息工程学院 针对RSA之M-ary实现模乘余数输入侧信道攻击
CN106571916B (zh) * 2015-10-12 2020-06-30 瑞昱半导体股份有限公司 解密装置、方法及电路
CN109791517B (zh) * 2016-12-21 2023-09-08 密码研究公司 保护并行乘法运算免受外部监测攻击
EP3447509B1 (en) * 2017-08-21 2021-05-26 Eshard Method of testing the resistance of a circuit to a side channel analysis
WO2020152831A1 (ja) * 2019-01-24 2020-07-30 日本電気株式会社 情報処理装置、秘密計算方法及びプログラム
CN112260818B (zh) * 2020-10-19 2022-09-20 中国人民解放军战略支援部队信息工程大学 侧信道曲线的增强方法、侧信道攻击方法及装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CA2228493C (en) * 1997-02-03 2005-05-03 Nippon Telegraph And Telephone Corporation Scheme for carrying out modular calculations based on redundant binary calculation
US8065735B2 (en) * 2006-03-16 2011-11-22 Gemalto Sa Method of securing a calculation of an exponentiation or a multiplication by a scalar in an electronic device
EP1840732A1 (en) * 2006-03-31 2007-10-03 Axalto SA Protection against side channel attacks
FR2949925A1 (fr) * 2009-09-09 2011-03-11 Proton World Int Nv Protection d'une generation de nombres premiers contre des attaques par canaux caches

Also Published As

Publication number Publication date
US8984040B2 (en) 2015-03-17
JP5977996B2 (ja) 2016-08-24
CN102779022B (zh) 2017-03-01
JP2012239171A (ja) 2012-12-06
MX2012005408A (es) 2012-11-21
EP2523096A1 (en) 2012-11-14
EP2523097A1 (en) 2012-11-14
CA2775325A1 (en) 2012-11-11
US20120290634A1 (en) 2012-11-15
CN102779022A (zh) 2012-11-14
EP2523097B1 (en) 2016-01-20
HK1176423A1 (zh) 2013-07-26

Similar Documents

Publication Publication Date Title
BR102012010971A2 (pt) Método e dispositivo de exponenciação modular resistente aos ataques de canal-lateral
US8913739B2 (en) Method for scalar multiplication in elliptic curve groups over prime fields for side-channel attack resistant cryptosystems
US8243920B2 (en) Method for scalar multiplication in elliptic curve groups over binary polynomial fields for side-channel attack-resistant cryptosystems
US8402287B2 (en) Protection against side channel attacks
JPWO2009122461A1 (ja) 電力解析攻撃への対策機能を備えた暗号化方法
EP2535804A1 (en) Fault-resistant exponentiation algorithm
US20040125950A1 (en) Method for protecting public key schemes from timing, power and fault attacks
Abarzúa et al. Survey on performance and security problems of countermeasures for passive side-channel attacks on ECC
Thériault SPA resistant left-to-right integer recodings
US8930435B2 (en) Exponentiation system
Feix et al. Defeating with fault injection a combined attack resistant exponentiation
Zhang et al. Efficient elliptic curve scalar multiplication algorithms resistant to power analysis
Fournaris Fault and power analysis attack protection techniques for standardized public key cryptosystems
Gulen et al. Side-Channel Resistant 2048-Bit RSA Implementation for Wireless Sensor Networks and Internet of Things
Takemura et al. ECC Atomic Block with NAF against Strong Side-Channel Attacks on Binary Curves
Liang et al. A new FA and SPA resistant implementation of RSA
Miyaji et al. How to enhance the security on the least significant bit
Wang et al. A new SPA attack on ECC with regular point multiplication
Kim New fault attacks using Jacobi symbol and application to regular right-to-left algorithms
Vuillaume et al. Defeating simple power analysis on Koblitz curves
Varela How to avoid the N-1 attack without costly implementations
Kim et al. First-order side channel attacks on Zhang’s countermeasures
Liu et al. New elliptic curve multi-scalar multiplication algorithm for a pair of integers to resist SPA
Wang et al. A Novel SPA Attack on ECC Using MMM's Conditional Subtraction
Okeya et al. Security analysis of the SPA-resistant fractional width method

Legal Events

Date Code Title Description
B03A Publication of an application: publication of a patent application or of a certificate of addition of invention
B08F Application fees: dismissal - article 86 of industrial property law
B08K Lapse as no evidence of payment of the annual fee has been furnished to inpi (acc. art. 87)