ITMI20111992A1 - Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari - Google Patents

Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari Download PDF

Info

Publication number
ITMI20111992A1
ITMI20111992A1 IT001992A ITMI20111992A ITMI20111992A1 IT MI20111992 A1 ITMI20111992 A1 IT MI20111992A1 IT 001992 A IT001992 A IT 001992A IT MI20111992 A ITMI20111992 A IT MI20111992A IT MI20111992 A1 ITMI20111992 A1 IT MI20111992A1
Authority
IT
Italy
Prior art keywords
montgomery
message
parameter
calculating
mpâ
Prior art date
Application number
IT001992A
Other languages
English (en)
Inventor
Guido Marco Bertoni
Ruggero Susella
Original Assignee
St Microelectronics Srl
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 St Microelectronics Srl filed Critical St Microelectronics Srl
Priority to IT001992A priority Critical patent/ITMI20111992A1/it
Priority to US13/669,213 priority patent/US9152383B2/en
Publication of ITMI20111992A1 publication Critical patent/ITMI20111992A1/it

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/728Methods 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 using Montgomery reduction
    • 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/7223Randomisation as countermeasure against side channel attacks
    • G06F2207/7233Masking, e.g. (A**e)+r mod n
    • G06F2207/7238Operand masking, i.e. message blinding, e.g. (A+r)**e mod n; k.(P+R)
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • 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/3006Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters
    • H04L9/302Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy underlying computational problems or public-key parameters involving the integer factorization problem, e.g. RSA or quadratic sieve [QS] schemes

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)
  • Storage Device Security (AREA)
  • Measuring Pulse, Heart Rate, Blood Pressure Or Blood Flow (AREA)
  • Alarm Systems (AREA)
  • Telephone Function (AREA)

Description

"METODO PER CRITTOGRAFARE UN MESSAGGIO MEDIANTE CALCOLO DI FUNZIONI MATEMATICHE COMPRENDENTI MOLTIPLICAZIONI MODULARI".
DESCRIZIONE
SFONDO TECNOLOGICO DELL'INVENZIONE
Campo dell'invenzione
La presente invenzione si riferisce alle tecniche dì crittografia di dati digitali ed in particolare ad un metodo per crittografare un messaggio mediante un algoritmo impiegante funzioni matematiche che prevedono un calcolo di una o più moltiplicazioni modulari. Ancora più in particolare, l'invenzione si riferisce ad un metodo per crittograf are un messaggio in cui tale calcolo di moltiplicazioni modulari à ̈ sostanzialmente insensibile ad "attacchi di canale laterale" (Side-Channel Attacks o SCA).
Descrizione dell'arte nota
Oggigiorno, la crittografia svolge un ruolo fondamentale nella comunicazione di dati digitali al fine di garantire un adeguato livello di sicurezza della comunicazione tramite il soddisfacimento di requisiti quali, la confidenzialità e la riservatezza dei dati digitali scambiati.
Gli algoritmi crittografici maggiormente impiegati quali, ad esempio, l'algoritmo dì Diffie-Hellmann, gli algoritmi a chiavi asimmetriche RSA e DSA (dall'acronimo inglese, Digital Signature Algorithm) , e quello ECC (dall'acronimo inglese, Elliptic Curve Cryptosystem) richiedono spesso l'esecuzione di operazioni matematiche modulari su numeri interi costituiti da migliaia di bit.
Tali operazioni matematiche modulari comprendono, per esempio, moltiplicazioni modulari ed operazioni di calcolo di funzioni esponenziali modulari.
Tali operazioni matematiche possono divenire oggetto di diverse tipologìe di attacco sviluppate da attaccanti (in inglese, cracker) che tentano continuamente di violare, da un punto di vista elettronico e/o informatico, i già esistenti algoritmi crittografici, in particolare quelli a chiavi asimmetriche. Tra le più recenti ed insidiose tipologie di attacco, gli attacchi a canale laterale SCA (dall'acronimo inglese Side-Channel Attacks) possono compromettere la sicurezza delle chiavi segrete impiegate nelle operazioni di crittazione/decrittazione.
In particolare, un attacco a canale laterale SCA à ̈ un attacco per cui il recupero di informazioni segrete (in particolare, la chiave segreta) à ̈ ottenuto da un attaccante senza sfruttare particolari debolezze teoriche matematiche, ma bensì sfruttando problemi legati all'implementazione fisica dell' algoritmo crittografico stesso. Per esempio, un attacco a canale laterale può consistere, da parte dell'attaccante, nel monitoraggio di informazioni di temporizzazione, o nella misurazione di consumi di potenza oppure di emissioni elettromagnetiche durante le operazioni di crittazìone/decrittazione. Inoltre, tale attacco può consistere nell'iniezione dì un guasto (sovratensione o glitch, anche sottotensione) nel dispositivo elettronico configurato per implementare un algoritmo crittografico, per esempio mediante un laser o alterando una tensione dì alimentazione. Dal confronto tra il messaggio cifrato ottenuto dal dispositivo elettronico in caso di guasto iniettato ed il messaggio cifrato ottenuto dal dispositivo elettronico in caso di normale funzionamento (senza perturbazioni da parte dell'attaccante) o dal monitoraggio del consumo di potenza, un attaccante à ̈ in grado di ottenere informazioni fondamentali per recuperare con successo la chiave segreta impiegata dal dispositivo elettronico sotto attacco.
Un attacco di canale laterale di tipo noto à ̈ l'analisi dì potenza differenziale o DPA (dall'acronimo inglese Differential Power Analysis) che si basa su una misurazione di consumi di potenza di un dispositivo elettronico preposto ad eseguire le operazioni di crittazione/decrittazione .
Per esempio, l'attacco DPA può essere rivolto contro algoritmi crittografici che prevedono operazioni modulari di calcolo di funzioni esponenziali, come avviene, per esempio, negli algoritmi a chiavi asimmetriche RSA e DSA. Per esempio, in riferimento all'algoritmo RSA, un messaggio cifrato c à ̈ ottenuto da un messaggio m in chiaro mediante il calcolo di una funzione esponenziale modulare in un anello matematico degli interi Ζnmodulo n (dove n à ̈ il prodotto di due numeri primi) espressa dalla seguente relazione:
c = m<e>mod n (1) in cui:
e à ̈ un esponente pubblico dell'algoritmo RSA, in particolare à ̈ una parte della chiave pubblica impiegata da tale algoritmo;
mod n rappresenta una operazione dì riduzione modulare relativa al suddetto anello matematico Ζn.
Si osservi che il modulo n à ̈ parte della chiave pubblica relativa all'algoritmo RSA.
In modo analogo, il messaggio in chiaro m può essere ottenuto nuovamente decrittando il messaggio cifrato c mediante il calcolo di una ulteriore funzione esponenziale di tipo modulare espressa dalla seguente relazione:
m = c<d>mod n (2) in cui d rappresenta la chiave segreta impiegata dall'algoritmo RSA.
Si osservi che le operazioni modulari di calcolo di funzioni esponenziali (1) e (2) sopra menzionate vengono calcolate, generalmente, eseguendo una molteplicità di moltiplicazioni modulari mediante un algoritmo di elevazione a quadrato e moltiplicazione (Square and Multiply Algorithm) noto ad un esperto del settore.
Come noto, il dispositivo elettronico che esegue le moltiplicazioni modulari corrispondenti al calcolo di una di tali funzioni esponenziali, per esempio la funzione (2) relativa all'operazione di decrittazione di un messaggio c con chiave segreta d, consuma della potenza. In un attacco DPA, tale consumo di potenza à ̈ misurabile mediante un oscilloscopio e può essere rappresentato sotto forma di una molteplicità di tracce di potenza.
In aggiunta, per ciascuna moltiplicazione modulare atta ad approssimare la relazione (2), l'attaccante à ̈ in grado di conoscere sìa un dato in ingresso a tale operazione, sia un risultato dalla moltiplicazione generato in funzione di un bit della chiave segreta d. Pertanto, sulla base di una previsione del risultato generato da ciascuna moltiplicazione modulare e sulla base di una elaborazione delle tracce di potenza misurate, il metodo DPA consente all 'attaccante di ricostruire ciascun bit della chiave segreta d dell'algoritmo RSA .
Alcune metodologie sono state sviluppate di recente per contrastare l'attacco di canale laterale DPA, con particolare in riferimento ad una operazione di decrittazione di un messaggio cifrato c. Ciascuna di tali metodologie, comunemente note agli esperti del settore come metodologie o tecniche di schermatura (blindìng techniques), prevede l'introduzione nell'operazione di decrittazione (2) di un parametro segreto, per esempio un numero generato in maniera casuale rand. Infatti, l'introduzione di tale numero casuale rand rende molto difficoltoso o sostanzialmente impossibile l'attacco DPA in quanto il calcolo della funzione esponenziale (2) di decrittazione viene eseguito su un dato che à ̈ stato opportunamente mascherato dal numero casuale diventando, in tal modo, sconosciuto all'attaccante.
Tali metodologie note di schermatura saranno descritte, per esempio, in riferimento all'operazione di decrittazione (2) di un messaggio cifrato c relativa all'algoritmo RSA. Considerazioni analoghe valgono anche per l'algoritmo DSA e per altri algoritmi a chiave pubblica.
Una prima metodologia di schermatura nota prevede l'introduzione del suddetto numero casuale rand nel messaggio c da decifrare. Un risultato intermedio C1 dell'operazione di decrittazione à ̈, pertanto, esprimibile come:
C1 = (c * rand<e>)<d>mod n (3) che, sulla base della relazione (1), equivale a:
C1 = (m<e>* rand<e>)<d>(mod n) = m*rand (mod n)
dal momento che (rand<e>)<d>= rand mod n e (m<e>)<d>= m (mod n).
Per ottenere nuovamente il messaggio in chiaro m, il risultato intermedio C1 deve essere ulteriormente moltiplicato per l'inverso del numero casuale rand. Tale prima metodologia di schermatura ha l'inconveniente di richiedere il calcolo dell'inverso modulare del numero casuale rand al fine di ripristinare il messaggio originale in chiaro m. Infatti, come noto, l'operazione di inversione à ̈ una operazione dispendiosa in termini di tempo computazionale richiesto. Inoltre, tale prima metodologia richiede il calcolo della funzione esponenziale aggiuntiva rand<e>.
Una seconda metodologia di schermatura nota prevede l'introduzione del suddetto numero casuale rand nell'operazione di riduzione modulare. In particolare, il modulo n à ̈ moltiplicato per il suddetto numero casuale rand in modo da ottenere: η'= rand * n (4) In tal caso, un rispettivo risultato intermedio C2 dell'operazione di decrittazione à ̈ calcolabile mediante la seguente relazione:
C2 = c<d>mod n' (5) Tale risultato intermedio C2 deve ancora subire una operazione di riduzione modulare per n al fine ripristinare il messaggio originale in chiaro m:
m = C2 mod n = c<d>mod n = m
In altre parole, tale seconda metodologia ha l'inconveniente di richiedere il calcolo di una operazione aggiuntiva dì riduzione modulare. Inoltre, tale seconda metodologìa à ̈ poco versatile poiché impone delle restrizioni sul numero casuale rand che non può essere zero per evitare che l'intera operazione restituisca uno zero.
Una terza metodologia di schermatura nota prevede l'introduzione del numero casuale rand nella chiave privata d impiegata per decifrare il messaggio criptato c. In particolare, a partire dal suddetto numero casuale rand, una nuova chiave privata d' Ã ̈ calcolabile sulla base della relazione:
d'= d rand*phi (n) (6) cioà ̈ aggiungendo alla chiave privata d un multiplo casuale di phi (n), dove phi(n) à ̈ la funzione di Eulero nota ad un esperto del settore.
In riferimento alla operazione di decrittazione (2) sopra menzionata, il messaggio in chiaro m può essere ricavato sulla base della seguente relazione:
c<d>' (mod n) = c<d rand*phi(n)>(mod n) = c<d>*c<*hi>(modn)=
= c<d>* 1 (mod n) = c<d>(mod n) = m (7)
dal momento che à ̈ valido il teorema di Eulero
ck*phi (n) mod n = 1_per ogni c,k ed n.
Si osservi che tale terza metodologia ha l'inconveniente di richiedere un ampliamento dell'esponente in funzione della dimensione del numero casuale rand. In tal modo, per ogni bit in più dell'esponente à ̈ necessario eseguire più moltiplicazioni modulari. Inoltre, tale metodologia richiede la memorizzazione della funzione di Eulero phi(n) in una memoria del dispositivo elettronico che implementa la metodologia stessa.
Ad oggi, Ã ̈ fortemente sentita l'esigenza di sviluppare, nuove metodologie atte a contrastare gli attacchi di tipo Side-Channel o SCA, in particolare, di tipo DPA .
SOMMARIO DELL'INVENZIONE
Lo scopo della presente invenzione à ̈ quello di fornire un metodo per crittografare un messaggio mediante un algoritmo impiegante funzioni matematiche che prevedono un calcolo di una o più moltiplicazioni modulari, in cui tale calcolo di moltiplicazioni modulari sia sostanzialmente insensibile ad attacchi di canale laterale (Side-Channel Attacks), in particolare di tipo DPA. Inoltre, scopo dell'invenzione à ̈ un metodo per crittografare un messaggio che risulti alternativo rispetto ai metodi noti e permetta di superare, almeno parzialmente, gli inconvenienti sopra menzionati relativamente a tali metodi .
Tale scopo viene raggiunto mediante un metodo per crittografare un messaggio in accordo con la rivendicazione 1.
Forme preferite di tale metodo sono definite nelle rivendicazioni dipendenti 2-9.
Formano oggetto della presente invenzione anche un dispositivo elettronico configurato per implementare il suddetto metodo di crittografia in accordo con la rivendicazione 10, una scheda intelligente o smart-card atta ad implementare tale metodo in accordo con la rivendicazione 11 ed un relativo programma per elaboratore in accordo con la rivendicazione 12.
BREVE DESCRIZIONE DEI DISEGNI
Ulteriori caratteristiche e vantaggi del metodo secondo l'invenzione risulteranno dalla descrizione di seguito riportata di esempi preferiti di realizzazione, dati a titolo indicativo e non limitativo, con riferimento alle annesse figure, in cui:
- la figura 1 illustra schematicamente un esempio di dispositivo elettronico configurato per implementare il metodo di crittografia di un messaggio secondo l'invenzione;
la figura 2 illustra schematicamente, mediante un diagramma a blocchi, il metodo per crittografare un messaggio secondo un esempio preferito dell'invenzione.
DESCRIZIONE DETTAGLIATA
Con riferimento alla figura 1, viene ora descritto un esempio di dispositivo elettronico, indicato in generale con il riferimento numerico 100, configurato per eseguire il metodo per crittografare un messaggio dell'invenzione, che sarà descritto nel seguito .
Tale dispositivo elettronico 100 à ̈, ad esempio, un dispositivo di codifica/decodifica per televisione digitale conosciuto anche come set-top box. In accordo con altre forme di realizzazione dell'invenzione, tale dispositivo può essere un altro dispositivo elettronico nel quale à ̈ implementato un metodo per crittografare un messaggio, quale, per esempio, un telefono cellulare, un ricevitore digitale terrestre o satellitare, una console di gioco (per esempio, PS3), un computer (per esempio, un personal computer), un tablet, una generica periferica (per esempio, una stampante).
Nel seguito, in riferimento alla figura 1, sarà descritto in maggior dettaglio un esempio di dispositivo elettronico 100 quale il dispositivo di codifica/decodifica per televisione digitale.
Tale dispositivo dì codifica/decodifica 100 per televisione digitale à ̈ configurato per ricevere un flusso di dati codificati d'ingresso DATIN (dati video e/o audio) da un'antenna esterna 10 (AN) al fine di fornire un corrispondente flusso di dati decodificati DATOUT ad un apparato televisivo 20 (TV) operativamente collegato al dispositivo di codifica/decodifica 100.
In maggior dettaglio, il dispositivo di codifica/decodifica 100 comprende un'unità centrale di processamento 30 (CPU, Central Processing Unit) , ad esempio un microprocessore o un microcontrollore, operativamente collegato ad una memoria 40 (MEM). Tale memoria 40 può essere esterna all'unità centrale di processamento 30 oppure interna alla suddetta unità di processamento. Inoltre, il dispositivo di codifica/decodifica 100 comprende un modulo d'ingresso/uscita 50 (IN/OUT) operativamente collegato e controllato dall'unità centrale di processamento 30 (CPU) al fine di ricevere il flusso di dati codificati d'ingresso DATIN.
In aggiunta, il dispositivo di codifica/decodifica 100 comprende un modulo elettronico 60 (AH) predisposto alla crittazione/decrittazione di dati digitali. In maggior dettaglio, il modulo elettronico 60 à ̈ un acceleratore hardware operante sotto il controllo dell'unità centrale di processamento 30 al fine di decrittare il flusso di dati codificati DATIN ricevuti dal dispositivo d'ingresso/uscita 50. Particolarmente, l'acceleratore hardware 60 à ̈ configurato per ricevere segnali di attivazione dall'unità centrale di processamento 30 per decrittare il flusso di dati codificati DATIN ed inviare dati decrittati DAT ad un decodificatore audio/video 70 (AU/VID) atto a fornire (sotto il controllo dell'unità centrale di processamento 30 alla quale à ̈ operativamente collegato) il flusso di dati decodificati DATOUT all'apparato televisivo 20.
Si fa presente che il dispositivo elettronico di codifica/decodifica 100 Ã ̈ predisposto per caricare ed eseguire codici di programma per implementare il metodo di crittografia della presente invenzione.
In particolare, nell'esempio descritto, à ̈ l'acceleratore hardware 60 predisposto per caricare e eseguire i codici programma per consentire al dispositivo elettronico 100 di implementare tale metodo. L'unità centrale di processamento 30 operativamente associata all'acceleratore hardware 60 à ̈ predisposta per inviare all'acceleratore hardware istruzioni necessarie per il caricamento dei dati, l'inizio dell'esecuzione del metodo di crittografia, la lettura delle uscite.
Nel caso in cui non sia presente l'acceleratore hardware 60, à ̈ direttamente l'unità centrale dì processamento 30 a svolgere la funzione di modulo elettronico predisposto per caricare ed eseguire i codici programma per implementare il metodo dell'invenzione.
Si osservi che il dispositivo di codìfica/decodifica 100 à ̈ altresì configurato per consentire l'interazione dì un utente con il fornitore _ _ (in inglese, provider) della radiodiffusione (in inglese, broadcasting) televisiva. Per esempio, nel caso in cui un utente desideri selezionare un programma televisivo, à ̈ necessario che dati utente UD identificativi dell'abbonamento alla televisione digitale sottoscritto dall'utente siano forniti al fornitore. Tipicamente, i dati utente UD sono immagazzinati nella memoria 40 (MEM) del dispositivo di codifica/decodifìca 100. Alternativamente, i dati utente UD sono immagazzinati in una memoria ausiliaria trasportabile (non mostrata nella figura 1) operativamente interfacciata all'unità centrale di processamento 30,
In questo caso, l'acceleratore hardware 60 à ̈ configurato per ricevere i dati utente UD dall'unità centrale di processamento 30 e criptare i dati utente UD generando dati utente criptati UDE. Il dispositivo di codifica/decodifica 100 à ̈ configurato per fornire i dati utenti criptati UDE al modulo di ingresso/uscita 50 per essere inviati al fornitore di radiodiffusione televisiva impiegando una linea esterna LIN (ad esempio, una linea telefonica) operativamente collegata al dispositivo di codifica/decodifica 100.
In una ulteriore forma dì realizzazione, si osservi che il dispositivo elettronico sopra menzionato si concretizza in una scheda intelligente o smart-card 100 che comprende una rispettiva unità centrale di processamento 30 associata ad una rispettiva memoria 40 e collegata a mezzi di trasmissione-ricezione di segnali. Tale unità di processamento 30 della smart-card à ̈ predisposta per caricare ed eseguire i codici programma per eseguire la crittazione/decrittazione di dati digitali in accordo con il metodo dell'invenzione.
In riferimento alla figura 2, verrà ora descritto in dettaglio un esempio preferito di realizzazione del metodo 200 per crittografare un messaggio M in accordo con la presente invenzione.
Nel seguito della presente descrizione con il termine "metodo per crittografare un messaggio'' si farà riferimento indifferentemente ad operazioni dì eruttazione, decrittazione o di firma digitale applicati al suddetto messaggio M. Inoltre, ai fini della presente descrizione, per messaggio M si intende l'insieme dei dati digitali di cui à ̈ necessario che il dispositivo elettronico 100 (per esempio, set-top-box o smart-card) esegua la crittazione, la decrittazione o la firma digitale attraverso l'implementazione del metodo 200.
Inoltre, per semplicità di trattazione, il metodo dell'invenzione viene descritto in riferimento ad una applicazione di un algoritmo crittografico che comprende il calcolo dì funzioni esponenziali modulari calcolate eseguendo una pluralità dì moltiplicazioni modulari, come, per esempio, l'algoritmo crittografico RSA. Considerazioni analoghe valgono anche per l'algoritmo DSA.
In generale, si osservi che il metodo per crittografare un messaggio della presente invenzione può essere, vantaggiosamente, impiegato per ogni altro algoritmo crittografico che preveda il calcolo di una o più moltiplicazioni modulari come, per esempio, l'algoritmo ECC (Elliptic Curve Cryptosystem) .
Nell'algoritmo crittografico RSA, una singola operazione di moltiplicazione modulare o una serie dì moltiplicazioni modulari vengono, generalmente, calcolate impiegando una metodologia di moltiplicazione nota proposta da Peter L. Montgomery e descritta nel documento "Modular multiplication Without Trial Division", Math. Computation, vol. 44, pp. 519-521, 1985. Tale metodologia ha il vantaggio di semplificare le operazioni di riduzione modulare velocizzando la computazione richiesta per eseguire ciascuna moltiplicazione modulare.
Prima di procedere ad una descrizione più accurata del metodo 200 dell'invenzione, à ̈ utile ricordare alcune proprietà note della metodologia di moltiplicazione proposta da Montgomery.
In maggior dettaglio, tale metodologia prevede la trasformazione di ciascun fattore di una generica moltiplicazione modulare, per esempio
c = a*b (mod n) (8)
definita in un anello matematico Ζndegli interi modulo n, in un corrispettivo fattore di un sistema modulare residuale o domìnio di Montgomery, La suddetta trasformazione si ottiene moltiplicando i fattori a e b della moltiplicazione modulare per un numero R coprìmo con il modulo n e maggiore di esso. Tale numero R à ̈ generalmente indicato con il termine "costante di Montgomery".
Sulla base di tale numero R, i fattori a e b della moltiplicazione (8) sono esprimibili nel dominio di Montgomery come:
a1 = a*R (mod n)
b1 = b*R (mod n)
In altre parole, la trasformazione di un numero nel dominio di Montgomery richiede una reale riduzione modulare .
Inoltre, nel dominio di Montgomery à ̈ definita una funzione di moltiplicazione:
MontyMul (A, B) = A*B*R<-1>mod n (9)
che, applicata a due generici fattori A e B, restituisce come risultato il prodotto dei fattori A e B moltiplicato per l'inverso della costante di Montgomery R.
Applicando la funzione di moltiplicazione (9) ai fattori al e bl sopra calcolati nel dominio di Montgomery, il prodotto c dato dalla relazione (8) nel dominio dei numeri naturali, può essere espresso nel dominio di Montgomery come:
c1 = MontyMul (a1, b1) = a*b*R mod n (10) Se dal risultato della relazione (10) nel dominio di Montgomery si vuole ri-ottenere il corrispondente valore c del prodotto (8) nel dominio dei numeri naturali, à ̈ sufficiente dividere il risultato c1 della relazione (10) per il numero costante R, cioà ̈
c = c1/R = a*b
Si osservi che, nei casi pratici, la costante di Montgomery R viene scelta pari ad una potenza di 2 per semplificare l’operazione di riduzione per R ed al contempo assicurare che ciascuna divisione per tale costante R nel dominio di Montgomery equivalga ad una operazione di spostamento (shifting).
Si osservi, inoltre, che la funzione di moltiplicazione MontyMul(A, B) sopra definita può essere vantaggiosamente impiegata per convertire un qualunque numero naturale a in un corrispettivo numero a1 nel dominio di Montgomery. In tal caso, il numero naturale a da trasformare corrisponde al primo coefficiente A della suddetta funzione, mentre come secondo coefficiente B viene scelto un parametro MP=R<2>(mod n) noto agli esperti del settore e denominato parametro di Montgomery.
Per esempio, nel dominio di Montgomery, il numero a1 corrispondente al numero naturale a può essere calcolato come:
MontyMul (a, R<2>)=a* R<2>* R<-1>(mod n) =
= a* R(mod n)= a1 (11) Si osservi che il parametro di Montgomery MP richiede una reale riduzione modulare per poter essere calcolato.
Analogamente, la stessa funzione MontyMul(A, B) può essere impiegata per ri-convertire il numero a1 dal dominio di Montgomery al dominio dei numeri naturali, sulla base della relazione:
MontyMul(a1, 1) = a* R * R<-1>(mod n) = a
Per garantire che il calcolo di una funzione esponenziale modulare risulti protetta da un attacco di tipo Side-Channel o SCA, per esempio un attacco di analisi di potenza differenziale o DPA (dall’acronimo inglese Differential Power Analysis), il metodo 200 per crittografare un messaggio M della presente invenzione prevede l’introduzione di un parametro casuale, cioà ̈ di randomizzare, il sopra menzionato parametro di Montgomery MP. Tale funzione esponenziale à ̈, per esempio, calcolata in relazione ad una operazione di crittazione, decrittazione o di firma digitale del messaggio M mediante l’algoritmo a chiavi asimmetriche RSA.
Con riferimento alla figura 2, il metodo 200 per crittografare un messaggio M comprende una fase simbolica di inizio STR.
Sempre in riferimento alla figura 2, il metodo 200 dell’invenzione comprende una fase di inizializzazione 201. Tale fase di inizializzazione 201 comprende una rispettiva fase di calcolare (202) il quadrato della sopra menzionata costante di Montgomery R, cioà ̈ R<2>.
La fase di inizializzazione 201 comprende, inoltre, una fase di acquisire un indice k rappresentativo di un livello di protezione del parametro segreto, cioà ̈ di una chiave segreta d, dell’algoritmo RSA. Per esempio, lavorando con un l’algoritmo RSA con un modulo n di 2048 bit, l’indice k scelto può assumere, per esempio, valore di 64 bit.
Sulla base del valore di tale indice k=64 bit, in una successiva fase 203, viene generato un numero casuale rand corrispondente ad una tra 2<k>=2<64>combinazioni di bit. Si osservi che il numero 2<k>di possibili numeri casuali rand generabili rappresenta una misura del grado di sicurezza garantito dal presente metodo 200. In particolare, il numero casuale rand à ̈ generato in modo da corrispondere ad una delle suddette 2<k>possibili combinazioni di bit in modo non-predicibile ed uniformemente distribuito tra 0 e (2<k>-1).
Tale numero causale rand à ̈ generato dal dispositivo elettronico 100 ad ogni esecuzione del metodo crittografico 200. Si osservi che in corrispondenza di ciascuna esecuzione del metodo, il numero casuale rand à ̈ generato con una probabilità pari a 1/2<k>.
La suddetta fase di inizializzazione 201 comprende, inoltre, una fase di calcolare 204 un rispettivo parametro di Montgomery o parametro di Montgomery randomizzato MP’. Tale fase di calcolo 204 comprende, preliminarmente, una fase 205 di generazione di un ulteriore modulo n’ atto ad essere impiegato nelle operazioni di moltiplicazione modulare nel dominio di Montgomery. Tale ulteriore modulo n’ à ̈ calcolato a partire dal modulo n, attraverso la seguente relazione:
n’ = n* (2<k>-1) = n* (2<64>-1) (12) Si osservi che in seguito all’ampliamento del modulo n dell’algoritmo RSA ottenuto sulla base della relazione (12), il metodo crittografico 200 à ̈ atto ad associare al dominio dei numeri naturali un numero pari a 2<64>-1 domini di Montgomery.
Sulla base dell’ulteriore modulo n’ e del numero casuale rand, il parametro di Montgomery randomizzato MP’ à ̈ calcolato nella fase 204 sulla base dalla seguente espressione:
MP’ = R<2>(mod n’) n*rand (13) cioà ̈ il quadrato della costante di Montgomery R<2>subisce una riduzione modulare sulla base del suddetto ulteriore modulo n’ e al risultato di tale operazione si aggiunge un multiplo intero del numero casuale rand.
Successivamente, il metodo per crittografare 200 prevede l’acquisizione del messaggio M per eseguire una fase di generare 206 una rappresentazione M1 di tale messaggio M nel dominio di Montgomery. In maggior dettaglio, il messaggio M viene convertito dal dominio dei numeri naturali in uno di detti 2<64>-1 domini di Montgomery applicando la funzione di conversione di Montgomery MontyMul (A,B) sopra menzionata al messaggio M stesso ed al parametro di Montgomery randomizzato MP’. La rappresentazione M1 del messaggio M nel dominio di Montgomery si ottiene mediante la relazione:
M1 = MontyMul (M, MP’) (14) Successivamente alla fase conversione 206, ciascuna operazione di crittazione, decrittazione o di firma digitale, generalmente indicate con il riferimento 207 nella figura 2, che implichi il calcolo di una funzione esponenziale che coinvolge il messaggio M1 rappresentato nel dominio di Montgomery, viene eseguita in maniera standard. Per esempio, tali funzioni esponenziali vengono calcolate eseguendo una molteplicità di moltiplicazioni modulari nel suddetto dominio di Montgomery, per esempio impiegando un algoritmo di elevazione a quadrato e moltiplicazione (Square and multiply algorithm) noto ad un esperto del settore.
Si osservi che dopo ciascuna operazione di calcolo di funzione esponenziale modulare nel dominio di Montgomery, al fine di ottenere il risultato delle moltiplicazioni modulari nel dominio dei numeri naturali, il metodo 200 dell’invenzione comprende una fase di calcolare una rispettiva operazione di riduzione modulare. Tale fase di calcolo à ̈ schematicamente rappresentata con il riferimento 208 nella figura 2.
In maggior dettaglio, indicando con c’ il risultato nel dominio di Montgomery del calcolo di una funzione esponenziale modulare relativa al messaggio M1, per ottenere il valore corrispondente a tale risultato c’ nel dominio dei numeri naturali, il metodo prevede il calcolo (nella fase 208) di un primo risultato intermedio c†di tale valore sulla base della funzione MontyMul sopra ricordata, cioà ̈: c†= MontyMul (c’, 1) (15) In accordo con la presente invenzione, la funzione MontyMul à ̈ definita in base all’ulteriore modulo n’. Pertanto, anche tale primo risultato intermedio c†à ̈ definito modulo n’.
Per ottenere il risultato c della operazione esponenziale nel dominio dei numeri naturali privato della mascheratura assicurata dal numero casuale rand, la riduzione modulare eseguita nella fase 208 impiega il modulo originale n dell’algoritmo RSA. Partendo dall’equazione (15), tale riduzione modulare à ̈, pertanto, esprimibile come:
c = c†mod n.
Il metodo 200 per crittografare il messaggio M si conclude simbolicamente con una fase di fine ED.
Vantaggiosamente, con il presente metodo 200 i dati di ingresso, cioà ̈ i messaggi M, di ciascuna operazione esponenziale modulare sono trasformati nelle rispettive rappresentazioni del dominio di Montgomery mediante il parametro di Montgomery randomizzato MP’. Tali dati di ingresso dipendono, di conseguenza, dal numero casuale rand scelto tra uno dei possibili 2<64>numeri.
Pertanto, anche se il dato d’ingresso di una pluralità di operazioni di esponenziazione rimanesse costante, la rappresentazione di tale dato riportata in uno dei 2<64>-1 domini di Montgomery risulterebbe comunque variabile per ciascuna di tali esponenziazioni sulla base della variazione del numero casuale rand.
In generale, l’accorgimento di introdurre il numero casuale rand all’interno del parametro di Montgomery MP’ rende sostanzialmente inapplicabile l’attacco di canale laterale DPA. Infatti, il calcolo di una funzione esponenziale di decrittazione o di firma, con le relative moltiplicazioni modulari, viene eseguito su un dato, cioà ̈ il numero casuale rand stesso, sconosciuto all’attaccante, il quale con la metodologia DPA non à ̈ in grado di ricostruire i bit della chiave segreta dell’algoritmo RSA. Oltre all’esempio dell’algoritmo RSA, tale soluzione à ̈, vantaggiosamente, applicabile anche ad altri algoritmi crittografici, per esempio ECC, che richiedono il calcolo di una pluralità di moltiplicazioni modulari.
Sempre in riferimento all’esempio di realizzazione relativo all’applicazione dell’algoritmo RSA, vantaggiosamente, la fase di inizializzazione 201 del metodo 200 dell’invenzione, ed in particolare la fase di generazione del parametro di Montgomery randomizzato MP’, può essere eseguita dal dispositivo elettronico 100 prima che siano noti la base (cioà ̈ il messaggio M) e l’esponente della funzione esponenziale da calcolare nella fase di esponenziazione 207. In altre parole, la fase di calcolo 205 del parametro di Montgomery randomizzato MP’ à ̈ indipendente dalla fase di esponenziazione 207, cioà ̈ tale parametro di Montgomery randomizzato MP’ può essere pre-calcolato interamente.
Ulteriori vantaggi del metodo crittografico 200 secondo l’esempio appena descritto possono essere spiegati facendo un confronto con le metodologie di schermatura attualmente note.
Rispetto alla metodologia di schermatura in cui il numero casuale rand à ̈ associato al messaggio da crittografare, il metodo 200 dell’invenzione ha il vantaggio di evitare operazioni addizionali di inversione o esponenziazione.
In confronto alla metodologia di schermatura in cui il numero casuale rand à ̈ associato alla operazione di riduzione modulare, il metodo dell’invenzione 200 non impone limitazioni sul numero casuale rand impiegabile. Tale numero può essere pari, dispari e anche uguale a zero.
Rispetto alla metodologia di schermatura in cui il numero casuale rand à ̈ associato all’esponente della operazione di esponenziazione, il metodo 200 proposto evita l’occupazione di spazio della memoria del dispositivo 100 con dati o parametri aggiuntivi necessari alla elaborazione.
Alle forme di realizzazione del metodo crittografico sopra descritte, un tecnico del ramo, per soddisfare esigenze contingenti, potrà apportare modifiche, adattamenti e sostituzioni di elementi con altri funzionalmente equivalenti, senza uscire dall'ambito delle seguenti rivendicazioni. Ognuna delle caratteristiche descritte come appartenente ad una possibile forma di realizzazione può essere realizzata indipendentemente dalle altre forme di realizzazione descritte.

Claims (12)

  1. RIVENDICAZIONI 1. Metodo (200) per crittografare un messaggio (M) mediante un algoritmo crittografico comprendente un calcolo di una funzione matematica che prevede il calcolo di almeno una moltiplicazione modulare, detto algoritmo crittografico avendo un rispettivo modulo (n), detto metodo comprendente le seguenti fasi eseguite da parte di un dispositivo elettronico (100): - calcolare (202) un primo parametro (R<2>) rappresentativo di una operazione di elevazione al quadrato di un numero di Montgomery (R) coprimo di detto modulo (n) e maggiore di esso; - generare (203) un numero casuale (rand); - calcolare (204) un parametro di Montgomery (MP’) sulla base di detto primo parametro (R<2>) e di un multiplo intero di detto numero casuale (rand); - generare (206) una rappresentazione (M1) del messaggio (M) da crittografare in un dominio di Montgomery mediante una funzione di conversione (MontyMul) di Montgomery applicata a detto messaggio (M) e a detto parametro di Montgomery (MP’); - calcolare (207) detta funzione matematica su detto messaggio (M1) rappresentato nel dominio di Montgomery per ottenere un risultato (c’).
  2. 2. Metodo (200) secondo la rivendicazione 1, in cui detta fase di calcolare (204) il parametro di Montgomery (MP’) comprende una fase di generare un ulteriore modulo (n’) sulla base della relazione: n’ = n* (2<k>-1) in cui k à ̈ un indice rappresentativo di un livello di protezione di un parametro segreto di detto algoritmo crittografico.
  3. 3. Metodo (200) secondo la rivendicazione 2, in cui detto parametro di Montgomery (MP’) à ̈ calcolato nella fase (204) sulla base dalla espressione: MP’ = R<2>(mod n’) n*rand in cui R à ̈ il numero di Montgomery, n il modulo di detto algoritmo crittografico, n’ l’ulteriore modulo e rand il numero casuale generato.
  4. 4. Metodo (200) secondo la rivendicazione 1, comprendente inoltre una fase di calcolare (208) una operazione di riduzione modulare sul risultato (c’) del calcolo di detta funzione matematica impiegando il modulo n dell’algoritmo crittografico.
  5. 5. Metodo (200) secondo una qualsiasi delle rivendicazioni precedenti, in cui detta fase di generare (203) il numero casuale (rand) comprende una fase di selezionare detto numero tra una di 2<k>combinazioni di bit, essendo k un indice rappresentativo di un livello di protezione di un parametro segreto di detto algoritmo crittografico.
  6. 6. Metodo (200) secondo la rivendicazione 1, in cui detta funzione di conversione (MontyMul) di Montgomery applicata a detto messaggio (M) e a detto parametro di Montgomery (MP’) à ̈ atta a trasferire detto messaggio (M) da un dominio dei numeri naturali ad uno di 2<k>-1 domini di Montgomery, essendo k un indice rappresentativo di un livello di protezione di un parametro segreto di detto algoritmo crittografico.
  7. 7. Metodo (200) secondo una qualsiasi delle rivendicazioni precedenti, in cui detta fase di calcolo (205) del parametro di Montgomery (MP’) à ̈ eseguita indipendentemente dalla fase di calcolare (207) detta funzione matematica nel dominio di Montgomery.
  8. 8. Metodo (200) secondo la rivendicazione 4, in cui detta fase di calcolare (208) l’operazione di riduzione modulare comprende una fase di calcolare un risultato intermedio (c†) del risultato del calcolo (c’) di detta funzione matematica sulla base della funzione di conversione di Montgomery (MontyMul).
  9. 9. Metodo (200) secondo la rivendicazione 8, in cui detta fase di calcolare (208) l’operazione di riduzione modulare comprende una fase di eseguire detta riduzione modulare su detto risultato intermedio (c†).
  10. 10. Dispositivo elettronico (100) comprendente: - unità centrale di processamento (30); - un modulo elettronico (60) predisposto per la crittazione/decrittazione di dati digitali operativamente collegato all’unità centrale di processamento (30), detto dispositivo elettronico (100) essendo configurato per eseguire le fasi del metodo (200) di crittografia secondo almeno una delle rivendicazioni precedenti.
  11. 11. Smart-card (100) comprendente una rispettiva unità centrale di processamento (30) configurata per eseguire le fasi del metodo (200) di crittografia secondo almeno una delle rivendicazioni 1-9.
  12. 12. Programma per elaboratore caricabile in una memoria di un elaboratore elettronico predisposto per eseguire le fasi del metodo (200) per crittografare un messaggio in accordo ad una delle rivendicazioni precedenti da 1 a 9.
IT001992A 2011-11-03 2011-11-03 Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari ITMI20111992A1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT001992A ITMI20111992A1 (it) 2011-11-03 2011-11-03 Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari
US13/669,213 US9152383B2 (en) 2011-11-03 2012-11-05 Method for encrypting a message through the computation of mathematical functions comprising modular multiplications

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT001992A ITMI20111992A1 (it) 2011-11-03 2011-11-03 Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari

Publications (1)

Publication Number Publication Date
ITMI20111992A1 true ITMI20111992A1 (it) 2013-05-04

Family

ID=45464709

Family Applications (1)

Application Number Title Priority Date Filing Date
IT001992A ITMI20111992A1 (it) 2011-11-03 2011-11-03 Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari

Country Status (2)

Country Link
US (1) US9152383B2 (it)
IT (1) ITMI20111992A1 (it)

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102012005427A1 (de) * 2012-03-16 2013-09-19 Giesecke & Devrient Gmbh Verfahren und System zur gesicherten Kommunikation zwischen einen RFID-Tag und einem Lesegerät
US10176121B2 (en) * 2013-07-15 2019-01-08 Infineon Technologies Ag Apparatus and method for memory address encryption
US10678709B2 (en) 2013-07-15 2020-06-09 Infineon Technologies Ag Apparatus and method for memory address encryption
CN104793919B (zh) * 2015-04-15 2017-11-07 深圳国微技术有限公司 一种蒙哥马利模乘装置及具有其的嵌入式安全芯片
IL239880B (en) * 2015-07-09 2018-08-30 Kaluzhny Uri Simplified montgomery multiplication
WO2019191040A1 (en) * 2018-03-28 2019-10-03 Cryptography Research, Inc. Using cryptographic blinding for efficient use of montgomery multiplication
KR20200046481A (ko) 2018-10-24 2020-05-07 삼성전자주식회사 난수 생성기, 이를 포함하는 암호화 장치 및 이의 동작 방법
US11508263B2 (en) 2020-06-24 2022-11-22 Western Digital Technologies, Inc. Low complexity conversion to Montgomery domain
US11468797B2 (en) 2020-06-24 2022-10-11 Western Digital Technologies, Inc. Low complexity conversion to Montgomery domain
WO2023141933A1 (en) 2022-01-28 2023-08-03 Nvidia Corporation Techniques, devices, and instruction set architecture for efficient modular division and inversion
WO2023141934A1 (en) * 2022-01-28 2023-08-03 Nvidia Corporation Efficient masking of secure data in ladder-type cryptographic computations

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005048008A2 (en) * 2003-11-16 2005-05-26 M-Systems Flash Disk Pioneers Ltd. Enhanced natural montgomery exponent masking

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1946205B1 (en) * 2005-10-18 2010-04-14 Telecom Italia S.p.A. A method for scalar multiplication in elliptic curve groups over prime fields for side-channel attack resistant cryptosystems
WO2007046402A1 (ja) * 2005-10-19 2007-04-26 Matsushita Electric Industrial Co., Ltd. 情報セキュリティ装置、情報セキュリティ方法、コンピュータプログラム、コンピュータ読み取り可能な記録媒体及び集積回路
FR2895609A1 (fr) * 2005-12-26 2007-06-29 Gemplus Sa Procede cryptographique comprenant une exponentiation modulaire securisee contre les attaques a canaux caches, cryptoprocesseur pour la mise en oeuvre du procede et carte a puce associee
US8243919B2 (en) * 2007-03-07 2012-08-14 Research In Motion Limited Method and apparatus for performing elliptic curve scalar multiplication in a manner that counters power analysis attacks
US8527570B1 (en) * 2009-08-12 2013-09-03 Marvell International Ltd. Low cost and high speed architecture of montgomery multiplier

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2005048008A2 (en) * 2003-11-16 2005-05-26 M-Systems Flash Disk Pioneers Ltd. Enhanced natural montgomery exponent masking

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A. FOURNARIS ET AL: "Efficient CRT RSA with SCA Countermeasures", 14TH EUROMICRO CONFERENCE ON DIGITAL SYSTEM DESIGN 2011, 31 August 2011 (2011-08-31), IEEE, pages 593 - 599, XP032058682, ISBN: 978-1-4577-1048-3, DOI: 10.1109/DSD.2011.81 *
FREDERIC AMIEL ET AL: "Distinguishing Multiplications from Squaring Operations", SELECTED AREAS IN CRYPTOGRAPHY, LNCS VOL. 5381, 14 August 2008 (2008-08-14), Springer Berlin Germany, pages 346 - 360, XP019128243, ISBN: 978-3-642-04158-7 *
PAGE D ET AL: "Parallel Cryptographic Arithmetic Using a Redundant Montgomery Representation", IEEE TRANSACTIONS ON COMPUTERS, vol. 53, no. 11, November 2004 (2004-11-01), IEEE, LOS ALAMITOS, CA, USA, pages 1474 - 1482, XP011119501, ISSN: 0018-9340, DOI: 10.1109/TC.2004.100 *

Also Published As

Publication number Publication date
US20130114806A1 (en) 2013-05-09
US9152383B2 (en) 2015-10-06

Similar Documents

Publication Publication Date Title
ITMI20111992A1 (it) Metodo per crittografare un messaggio mediante calcolo di funzioni matematiche comprendenti moltiplicazioni modulari
EP3566385B1 (en) Homomorphic white box system and method for using same
Bichsel et al. Anonymous credentials on a standard java card
CN101507176B (zh) 椭圆曲线点乘法
EP3596876B1 (en) Elliptic curve point multiplication device and method for signing a message in a white-box context
WO2018017421A1 (en) Modular exponentiation with side channel attack countermeasures
KR101606317B1 (ko) 암호 시스템, 암호 방법, 암호 프로그램을 기록한 컴퓨터 판독가능한 기록 매체 및 복호 장치
JP2012129993A (ja) 暗号装置の保護方法及び保護システム
EP3363142B1 (en) A cryptographic device and an encoding device
JP2011530093A (ja) 累乗法による暗号化を保護する解決策
EP2742644B1 (en) Encryption and decryption method
ITMI20101683A1 (it) Metodo di generazione di una firma digitale
JP2004304800A (ja) データ処理装置におけるサイドチャネル攻撃防止
Kang et al. Fast image encryption algorithm based on (n, m, k)-PCMLCA
US10235506B2 (en) White-box modular exponentiation
EP3125145B1 (en) White-box elliptic curve point multiplication
EP2738973A1 (en) System and method for cryptography using multiplicative masking using simultaneous exponentiation techniques
EP3010173B1 (en) Key storage device, key storage method, and program therefor
CN114257402B (zh) 加密算法确定方法、装置、计算机设备和存储介质
RU2708439C1 (ru) Вычислительное устройство и способ
KR100954844B1 (ko) 오류 주입 공격에 안전한 crt-rsa 모듈러 지수승 알고리즘을 이용한 디지털 서명 방법, 그 장치 및 이를 기록한 기록매체
Chaves et al. SCA-Resistance for AES: How Cheap Can We Go?
KR100953716B1 (ko) Crt-rsa 기반의 비트 연산을 이용한 디지털 서명방법, 그 장치 및 이를 기록한 기록 매체
KR101112570B1 (ko) 전력 분석 및 오류 주입 공격에 안전한 디지털 서명 장치, 방법 및 그 기록 매체
EP3419213B1 (en) Computer implemented method, computer system and computer readable computer program product