IT202100016910A1 - Procedimento per eseguire operazioni di crittografia in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico - Google Patents

Procedimento per eseguire operazioni di crittografia in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico Download PDF

Info

Publication number
IT202100016910A1
IT202100016910A1 IT102021000016910A IT202100016910A IT202100016910A1 IT 202100016910 A1 IT202100016910 A1 IT 202100016910A1 IT 102021000016910 A IT102021000016910 A IT 102021000016910A IT 202100016910 A IT202100016910 A IT 202100016910A IT 202100016910 A1 IT202100016910 A1 IT 202100016910A1
Authority
IT
Italy
Prior art keywords
key
encryption
cryptographic
branch
xor
Prior art date
Application number
IT102021000016910A
Other languages
English (en)
Inventor
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 IT102021000016910A priority Critical patent/IT202100016910A1/it
Priority to EP22178582.7A priority patent/EP4113894B1/en
Priority to US17/839,109 priority patent/US20220417012A1/en
Priority to CN202210734959.2A priority patent/CN115603892A/zh
Publication of IT202100016910A1 publication Critical patent/IT202100016910A1/it

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/0819Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s)
    • H04L9/0825Key transport or distribution, i.e. key establishment techniques where one party creates or otherwise obtains a secret value, and securely transfers it to the other(s) using asymmetric-key encryption or public key infrastructure [PKI], e.g. key signature or public key certificates
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0631Substitution permutation network [SPN], i.e. cipher composed of a number of stages or rounds each involving linear and nonlinear transformations, e.g. AES algorithms
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0863Generation of secret information including derivation or calculation of cryptographic keys or passwords involving passwords or one-time passwords
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)
  • Cash Registers Or Receiving Machines (AREA)
  • Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)

Description

DESCRIZIONE dell?invenzione industriale dal titolo:
"Procedimento per eseguire operazioni di crittografia in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico"
TESTO DELLA DESCRIZIONE
Campo tecnico
La presente descrizione ? relativa a tecniche per eseguire operazioni di crittografia su dati in un dispositivo di elaborazione comprendenti una procedura di crittografia, in particolare una procedura di crittografia Resiliente alle perdite, che comprende una funzione di derivazione di chiavi Resiliente alle Perdite che deriva una chiave differente per ciascun messaggio dalla stessa chiave master.
Varie forme di attuazione possono applicarsi, per es., alle smartcard, ai microcontrollori, ai microcircuiti integrati (?chip?) per Internet degli Oggetti (?Internet of Things?), ai set-top-box che usano uno schema di firma digitale o di crittografia.
Sfondo tecnologico
I protocolli di crittografia sono protocolli astratti o concreti che eseguono una funzione relativa alla sicurezza ed applicano procedimenti di crittografia, spesso come sequenze di primitive crittografiche.
Nel campo della protezione dagli Attacchi di Canale Laterale in dispositivi che usano algoritmi di crittografia, per es. un microcontrollore che implementa algoritmi di crittografia, come ECC o RSA, sono noti Attacchi di Canale Laterale (SCA, ?Side Channel Attack?) verticali, in cui l?aggressore pu? criptare dati arbitrari (in ingresso) usando il dispositivo, al fine di ottenere la chiave crittografica usata dall?algoritmo di crittografia. Gli aggressori registrano informazioni di canale laterale durante la crittografia di dati di ingresso noti, il canale laterale essendo rappresentato dal consumo di potenza, dalla radiazione elettromagnetica, o da altre quantit? simili.
Il canale laterale ? collegato con i dati elaborati dal dispositivo, che sono la chiave crittografica e i dati dell?aggressore forniti come ingresso, che rappresentano perci? dati noti.
L?aggressore registra molte ?tracce? con differenti dati di ingresso noti e una chiave incognita costante, facendo delle ipotesi sul valore di una porzione della chiave di crittografia, e usa procedimenti statistici per verificare tali ipotesi usando le tracce. Per applicare tali procedimenti statistici ? necessario che l?aggressore usi molte tracce, ciascuna con dati di ingresso noti e differenti e una chiave costante.
Una soluzione nota per difendersi da tali attacchi ? di usare una implementazione con protezione da SCA, che tuttavia non pu? fare uso di un hardware non protetto esistente, mentre ? spesso troppo tardi o troppo costoso integrare (?embed?) un hardware protetto. Inoltre, non sempre ? possibile passare a una implementazione di software protetto, a causa dei vincoli di anti-reverse engineering, poich? un software protetto non deve essere visibile agli aggressori. Anche un software protetto richiede un segreto casuale (segreto perfino per l?utente legittimo). Infine, ci pu? essere un declassamento (?downgrade?) significativo delle prestazioni.
D?altra parte, ? possibile definire una operazione che sia resiliente alle perdite (resistente a DPA) su un hardware esistente.
Perci?, negli schemi di crittografia Resiliente alle Perdite, o Leakage Resilient, ? previsto di derivare una chiave differente per ciascun messaggio dalla stessa chiave master. Questo richiede una Funzione di Derivazione di Chiavi, o KDF (?Key Derivation Function?), che usa molteplici volte la chiave master. Cos?, la KDF stessa deve essere resiliente alle perdite, cio? una Funzione di Derivazione di Chiavi Resiliente alle Perdite (LR-KDF, ?Leakage Resilient Key Derivation Function?).
Cos?, la LR-KDF implementata su acceleratori hardware di crittografia non protetti comunemente disponibili pu? rappresentare una soluzione attraente se non ci si possono permettere soluzioni protette da DPA e/o se si vuole sfruttare un hardware esistente.
Tuttavia, con le correnti tecniche Resilienti alle Perdite, talvolta non pu? essere sfruttato un hardware non protetto corrente, come nella tecnica detta ISAP, che usa Sponges e non AES, come descritto per esempio in Dobraunig, Eichlseder, Mangard, Mendel, Unterluggauer, ?ISAP - Towards Side-Channel Secure Authenticated Encryption?, o tali tecniche non sono ottimizzate per ottenere buone prestazioni, come la tecnica descritta in Berti, Koeune, Pereira, Peters, Steaert, ?Leakage-Resilient and Misuse-Resistant Authenticated Encryption? dove la chiave di crittografia ? cambiata dopo due crittografie, avendo come risultato una implementazione che richiede tempo, sebbene funzioni su un hardware esistente.
Scopo e sintesi
Uno scopo di una o pi? forme di attuazione ? di fornire un procedimento per una operazione di crittografia di dati in un dispositivo di elaborazione comprendente di eseguire un?operazione che risolve gli inconvenienti della tecnica nota e, in particolare, ? pi? resistente agli Attacchi di Canale Laterale.
Secondo una o pi? forme di attuazione, tale scopo ? raggiunto grazie a un procedimento avente le caratteristiche specificate nella Rivendicazione 1. Una o pi? forme di attuazione possono essere relative a un corrispondente dispositivo di elaborazione che esegue il procedimento e a un prodotto informatico che pu? essere caricato nella memoria di almeno un elaboratore e comprende parti di codice software che sono atte a eseguire le fasi del procedimento quando il prodotto ? eseguito su almeno un elaboratore. Come usato qui, un riferimento a un tale prodotto informatico intende essere equivalente a un riferimento a un mezzo leggibile da elaboratore contenente istruzioni per controllare il sistema di elaborazione al fine di coordinare l?implementazione del procedimento secondo le forme di attuazione. Un riferimento ad "almeno un elaboratore" intende evidentemente evidenziare la possibilit? che le presenti forme di attuazione siano implementate in forma modulare e/o distribuita.
Le rivendicazioni sono parte integrante dell?insegnamento tecnico qui fornito con riferimento alle varie forme di attuazione.
Secondo la soluzione qui descritta, il procedimento per una operazione di crittografia di dati in un dispositivo di elaborazione comprende una procedura di crittografia,
detto procedimento comprendendo
generare un vettore di inizializzazione non ripetitivo, in particolare casuale, con un generatore di vettori di inizializzazione, in particolare un generatore casuale,
ottenere almeno una chiave univoca,
fornire detta almeno una chiave univoca come chiave di crittografia a una coppia di rami di crittografia di retroazione di uscita,
ciascun ramo di crittografia eseguendo una prima operazione di crittografia invocando un dispositivo di cifratura a blocchi di crittografia che esegue una operazione di crittografia usando detta almeno una chiave univoca come chiave di crittografia e ricevendo una prima e una seconda costante rispettive come ingresso da criptare, le uscite di dette prime operazioni di crittografia su ciascun ramo di crittografia e una prima porzione di testo in chiaro (?plaintext?) essendo gli ingressi di una prima funzione XOR che produce una prima porzione di testo cifrato,
eseguire almeno una crittografia successiva invocando un dispositivo di cifratura a blocchi di crittografia usando detta almeno una chiave univoca come chiave di crittografia e ricevendo le uscite delle crittografie precedenti come ingresso da criptare, le uscite di dette crittografie successive e una porzione successiva di un testo in chiaro essendo gli ingressi di una funzione XOR successiva che produce una porzione successiva di testo cifrato.
In varianti di forme di attuazione, detta almeno una chiave univoca ? una chiave univoca singola e dette prima e seconda costante sono differenti l?una rispetto all?altra.
In varianti di forme di attuazione, due chiavi univoche sono inviate rispettivamente al primo ramo e al secondo ramo e dette prima e seconda costante sono uguali.
In varianti di forme di attuazione, detto vettore di inizializzazione ? generato come un nonce.
In varianti di forme di attuazione, il procedimento comprende una procedura di crittografia autenticata sul testo cifrato ottenuto.
In varianti di forme di attuazione, detto blocco di cifratura ? un dispositivo di cifratura AES.
In varianti di forme di attuazione, detto avere le uscite delle prime operazioni di crittografia su ciascun ramo di crittografia e una prima porzione di testo in chiaro che sono gli ingressi di una prima funzione XOR che produce una prima porzione di testo cifrato ? implementato eseguendo un primo XOR tra le uscite delle prime operazioni di crittografia su ciascun ramo di crittografia, quindi sul risultato di tale prima operazione di XOR ? eseguito uno XOR con la prima porzione di testo in chiaro, che produce detta prima porzione di testo cifrato, le funzioni XOR successive essendo implementate anche cos? per produrre porzioni successive di testo cifrato.
In varianti di forme di attuazione, detta procedura di crittografia ? una procedura di crittografia Resiliente alle perdite, che comprende una funzione di derivazione di chiavi Resiliente alle Perdite che deriva una chiave differente per ciascun messaggio dalla stessa chiave master,
detto procedimento comprendendo
eseguire una funzione di derivazione di chiavi Resiliente alle Perdite usando una chiave di crittografia master e detto vettore di inizializzazione come ingressi di una catena di funzioni di derivazione di chiavi, ottenendo almeno una chiave di derivazione come detta chiave univoca.
La soluzione qui descritta ? anche relativa a un dispositivo di elaborazione configurato per eseguire le fasi del procedimento secondo una qualsiasi delle rivendicazioni precedenti.
In varianti di forme di attuazione, detto dispositivo di elaborazione comprende un generatore casuale per generare detto vettore di inizializzazione casuale,
un generatore di chiavi univoche configurato per ottenere detta almeno una chiave univoca,
un dispositivo di crittografia comprendente una coppia di rami di crittografia di retroazione di uscita, ciascun ramo di crittografia comprendendo una catena di invocazioni di un dispositivo di cifratura a blocchi di crittografia, ciascuna uscita di un dispositivo di cifratura a blocchi di crittografia precedente essendo l?ingresso del dispositivo di cifratura a blocchi di crittografia seguente, che riceve detta almeno una chiave univoca come chiave di crittografia, il primo dispositivo di cifratura a blocchi di crittografia ricevendo la prima e la seconda costante rispettive come ingresso da criptare, detto dispositivo di crittografia comprendendo anche una pluralit? di blocchi che eseguono una funzione XOR, l?uscita di ciascun dispositivo di cifratura avendo la stessa posizione nella catena del ramo di crittografia che ? fornito come ingresso a una rispettiva funzione XOR insieme alla porzione di testo in chiaro per ottenere una corrispondente porzione di testo cifrato.
In varianti di forme di attuazione, detto generatore di chiavi univoche configurato per ottenere detta almeno una chiave univoca ? un generatore di funzione di derivazione di chiavi Resiliente alle Perdite configurato per ottenere detta almeno una chiave di derivazione.
La soluzione qui descritta ? anche relativa a un prodotto informatico che pu? essere caricato nella memoria di almeno un elaboratore e comprende parti di codice software che sono atte a eseguire le fasi del procedimento secondo una qualsiasi delle forme di attuazione precedenti quando il prodotto ? eseguito su almeno un elaboratore.
Breve descrizione dei disegni
L?invenzione sar? descritta ora a puro titolo di esempio non limitativo, con riferimento ai disegni annessi, nei quali:
- la Figura 1 rappresenta uno schema a blocchi di una forma di attuazione di un dispositivo di elaborazione che implementa il procedimento qui descritto;
- la Figura 2 rappresenta un dettaglio di una possibile forma di attuazione di un blocco della Figura 1.
Descrizione dettagliata di forme di attuazione
La descrizione che segue illustra vari dettagli specifici, allo scopo di fornire una comprensione approfondita delle forme di attuazione. Le forme di attuazione possono essere implementate senza uno o pi? dei dettagli specifici o con altri procedimenti, componenti, materiali, ecc. In altri casi, operazioni, materiali o strutture note non sono illustrate o descritte in dettaglio in modo tale che certi aspetti delle forme di attuazione non saranno resi poco chiari.
Un riferimento a ?una forma di attuazione? nel quadro della presente descrizione intende indicare che una particolare configurazione, struttura, o caratteristica descritta con riferimento alla forma di attuazione ? compresa in almeno una forma di attuazione. Similmente, le frasi come ?in una forma di attuazione? o simili che possono essere presenti in vari punti della presente descrizione non fanno necessariamente riferimento proprio alla stessa forma di attuazione. Inoltre, particolari conformazioni, strutture o caratteristiche possono essere combinate in modo appropriato in una o pi? forme di attuazione.
I riferimenti usati qui sono forniti semplicemente per convenienza e quindi non definiscono l?ambito di protezione o l?ambito delle forme di attuazione.
La soluzione qui descritta ? relativa a un procedimento per eseguire operazioni di crittografia su dati in un dispositivo di elaborazione comprendente una procedura di crittografia Resiliente alle perdite, che comprende una funzione di derivazione di chiavi Resiliente alle Perdite che deriva una chiave differente per ciascun messaggio dalla stessa chiave master, che fa uso di una Retroazione di Uscita doppia.
Come rappresentato nella Figura 1, un sistema per crittografia 50 comprende un generatore di numeri casuali 21 che genera un vettore di inizializzazione IV, avente nell?esempio qui discusso 128 bit. Tale sequenza binaria IV ? fornita a un generatore 10 di Funzione di Derivazione di Chiavi Resiliente alle Perdite, o LR-KDF, insieme a una chiave di crittografia master MK per ottenere una chiave derivata K0.
Si sottolinea che, secondo la soluzione qui descritta, il vettore di inizializzazione IV ? una sequenza binaria non ripetitiva, in particolare casuale, che ? generata da un generatore di vettori di inizializzazione. Preferibilmente, il vettore di inizializzazione IV ? un vettore casuale generato da un generatore casuale come nell?esempio; tuttavia, pu? essere generato per esempio da un contatore monotonico, che genera numeri crescenti, cos? non ripetitivi.
La chiave derivata K0 ? fornita a due rami 31a e 31b in parallelo, ciascun ramo comprendendo una pluralit? di invocazioni di dispositivi di cifratura AES, rappresentati da blocchi 11, in serie. Tale chiave derivata K0 ? fornita come chiave di crittografia mentre al primo dispositivo di cifratura AES 11 nel primo ramo 31a ? fornita come ingresso una prima costante CNa, nell?esempio 0..000, mentre alla prima operazione AES del secondo ramo 31b ? fornita una seconda costante CNb, nell?esempio 0?001, differente da detta prima costante CNa.
Le uscite Oa0, Ob0 del primo dispositivo di cifratura AES 11, cio? le costanti CNa, CNb criptate AES con la chiave derivata K0, nel primo e nel secondo ramo 31a, 31b, sono portate a un primo blocco XOR X0 che esegue una operazione di XOR tra loro e una prima porzione P0, avente una data lunghezza, di un testo in chiaro P. In particolare, la prima porzione P0 ? una porzione di 128 bit di lunghezza. L?uscita del primo blocco XOR X0 ? una prima porzione C0 di un testo cifrato C. Perci?, le uscite della prima invocazione del dispositivo di cifratura AES 11 rappresentano un flusso chiave (?keystream?) che ? fornito al primo blocco XOR X0 per codificare la prima porzione P0 del testo in chiaro ottenendo la prima porzione C0 di un testo cifrato C.
Si sottolinea che il primo blocco XOR X0 ? uno XOR a tre ingressi che, come noto, esegue prima uno XOR su due degli ingressi producendo un risultato e che esegue poi lo XOR di tale risultato con il terzo ingresso.
Perci?, in particolare, detto avere le uscite Oa0, Ob0 delle prime operazioni di crittografia su ciascun ramo di crittografia 31a, 31b e una prima porzione P0 di un testo in chiaro che sono gli ingressi di una prima funzione XOR X0 che produce una prima porzione di testo cifrato C0 ? implementato preferibilmente eseguendo dapprima una operazione di XOR tra le uscite Oa0, Ob0 delle prime operazioni di crittografia su ciascun ramo di crittografia 31a, 31b, e poi il risultato di tale prima operazione di XOR ? messo in XOR con la prima porzione P0 del testo in chiaro. Questo evita che un aggressore, durante una decrittazione, possa chiedere pi? volte la decrittazione dello stesso messaggio.
Questa implementazione pu? essere usata anche nelle funzioni XOR successive, per es. X1, per produrre porzioni successive del testo cifrato, per es. C1, come descritto nella descrizione seguente.
Le uscite Oa0, Ob0 sono quindi fornite anche a una rispettiva invocazione successiva, in particolare una seconda invocazione, del dispositivo di cifratura AES 11 insieme alla chiave derivata K0. Le seconde uscite Oa1, Ob1 del secondo dispositivo di cifratura AES 11 nel primo e nel secondo ramo 31a, 31b sono portate a un secondo blocco XOR X1 che esegue una operazione di XOR tra loro e una seconda porzione P1, di tale lunghezza data, di tale testo in chiaro P. L?uscita del secondo blocco XOR X1 ? una seconda porzione C1 del testo cifrato C. Perci?, le uscite dell?invocazione successiva del dispositivo di cifratura AES 11 rappresentano un flusso chiave che ? fornito al secondo blocco XOR X1 per codificare la seconda porzione P1 del testo in chiaro ottenendo la seconda porzione C0 di un testo cifrato C.
Cos?, in sintesi, su ciascun ramo ? fornita una catena di blocchi di cifratura 11, o meglio una invocazione di dispositivi di cifratura, in particolare AES, la cui uscita ? fornita come flusso chiave a uno XOR che codifica una porzione del testo in chiaro in una porzione di testo cifrato. Il primo blocco della catena ? fatto iniziare con una costante, invece che con l?uscita del blocco precedente.
Si pu? riconoscere che ciascuno dei rami 31a e 31b corrisponde fondamentalmente a una crittografia OFB, siccome ciascuna operazione di cifratura a blocchi dipende da tutte le precedenti, e cos? non pu? essere eseguita in parallelo.
Cos?, il circuito della Figura 1 ? configurato come una crittografia OFB doppia, poich? l?operazione di XOR ? realizzata su entrambe le uscite dei rami di OFB 31a e 31b e sulla porzione di testo in chiaro. Come menzionato, i blocchi 11 rappresentano in generale una invocazione di crittografia a blocchi di cifratura, nell?esempio una crittografia AES. Ci? significa che ci pu? essere un modulo univoco di crittografia a blocchi di cifratura, per es., un modulo di AES univoco, che esegue sequenzialmente tutte le crittografie a blocchi di cifratura 11, cio? ? eseguita ogni volta una invocazione alle crittografie a blocchi di cifratura 11.
Cos?, in sintesi, con riferimento alla Figura 1 ? descritto un procedimento per eseguire operazioni di crittografia sui dati in un dispositivo di elaborazione comprendente una procedura di crittografia Resiliente alle perdite, che comprende una funzione di derivazione di chiavi Resiliente alle Perdite che deriva una chiave differente per ciascun messaggio dalla stessa chiave master,
detto procedimento comprendendo
generare un vettore di inizializzazione IV non ripetitivo, in particolare casuale, con un generatore di vettori di inizializzazione, in particolare un generatore casuale 21,
eseguire una funzione di derivazione di chiavi Resiliente alle Perdite usando una chiave di crittografia master MK e tale vettore di inizializzazione IV come ingressi di una catena di funzioni di derivazione di chiavi 10, ottenendo almeno una chiave di derivazione K0. Possono anche essere ottenute due chiavi K0,K1 differenti, una per ciascun ramo 31a, 31b.
Quindi, ? previsto di fornire detta almeno una chiave di derivazione, per es. K0 come chiave di crittografia a una coppia di rami di crittografia 31a, 31b di retroazione di uscita. Ciascuno di detti rami di crittografia include una catena di blocchi di cifratura 11, o una invocazione a uno stesso blocco di cifratura, per es. AES, che ricevono la chiave di derivazione come chiave di crittografia. L?uscita di ciascun dispositivo di cifratura 11 avente la stessa posizione nella catena in ciascun ramo ? portata come ingresso di uno XOR, insieme a una porzione di testo cifrato.
Ciascun ramo di crittografia 31a, 31b esegue perci? una prima operazione di crittografia invocando la crittografia a blocchi di cifratura 11 che usa tale almeno una chiave di derivazione K0 come chiave di crittografia e che riceve una prima costante CNa e una seconda costante CNb rispettive come ingresso da crittografare, le uscite Oa0, Ob0 delle prime operazioni di crittografia su ciascun ramo di crittografia 31a, 31b e una prima porzione P0 di un testo in chiaro essendo gli ingressi di una prima funzione XOR X0 che produce una prima porzione di testo cifrato C0.
Per i blocchi di cifratura 11 successivi rispetto al primo blocco, quel numero, cio? il numero di invocazioni, dipende dalla lunghezza del messaggio da criptare, cio? il testo cifrato, ed ? quindi previsto di eseguire almeno una crittografia successiva invocando una crittografia a blocchi di cifratura 11 usando detta almeno una chiave K0 come chiave di crittografia e ricevendo le uscite Oa0, Ob0 delle crittografie precedenti come ingresso da criptare, le uscite Oa1, Ob1 di dette crittografie successive e una porzione P1 successiva di un testo in chiaro essendo gli ingressi di una funzione XOR X1 successiva che produce una porzione successiva di testo cifrato C1.
Il generatore di LR-KDF 10 pu? essere implementato con algoritmi o procedure di KDF differenti.
Il requisito basilare della crittografia Resiliente alle Perdite ? che una chiave pu? essere usata per un numero molto limitato di volte. Tuttavia, gli utenti possono desiderare di avere una chiave master che dura per lungo tempo, anche per anni.
Perci?, negli schemi di crittografia Resiliente alle Perdite ? previsto di derivare una chiave differente per ciascun messaggio dalla stessa chiave master. Questo richiede una Funzione di Derivazione di Chiavi, o KDF, che usa molteplici volte la chiave master. Cos?, la KDF stessa deve essere resiliente alle perdite, cio? una Funzione di Derivazione di Chiavi Resiliente alle Perdite (LR-KDF).
Sono note soluzioni che fanno uso di una crittografia Resiliente alle Perdite, come il cosiddetto schema GGM descritto in Oded Goldreich, Shafi Goldwasser e Silvio Micali. ?How to construct random functions? Journal of the ACM Agosto 1986, (si veda l?URL https://doi.org/10.1145/6490.6503).
A questo riguardo, nella Figura 2 ? rappresentata una catena per ottenere una chiave derivata da una chiave master, che pu? essere il generatore di LR-KDF 10. Una chiave master MK ? fornita a una invocazione di un dispositivo di cifratura 11, per es. un dispositivo di cifratura che esegue una crittografia AES (Advanced Encryption Standard), il blocco 11 che riceve il primo bit NC0 di un nonce NC, cio?, un numero, preferibilmente casuale, usato soltanto una volta, che pu? essere visto come un testo in chiaro da criptare con l?AES 11. L?uscita della crittografia, IK0, ? usata come chiave per un?altra invocazione del dispositivo di cifratura AES 11 insieme al bit NC1 seguente del nonce NC.
La procedura ? ripetuta fino all?ultimo n-esimo bit NCn del nonce NC, che fornisce una uscita criptata IKn. Quindi, una crittografia finale ? eseguita sull?n-esima uscita criptata IKn che fornisce come testo in chiaro una stringa di zeri invece dei bit del nonce NC, all?invocazione del dispositivo di cifratura AES 11, ottenendo alla fine come uscita la chiave derivata DK.
Di nuovo i blocchi 11 rappresentano in generale una crittografia a blocchi di cifratura, nell?esempio una crittografia AES e il modulo univoco di crittografia a blocchi di cifratura, per es., un modulo di AES univoco, pu? eseguire sequenzialmente anche le crittografie a blocchi di cifratura 11 del generatore di LR-KDF 10. Si sottolinea che, con la soluzione descritta nella Figura 1, il vettore di inizializzazione IV ? generato in modo casuale all?interno del sistema di crittografia 50, e non ? passato dall?esterno. Una generazione casuale rispetto al fatto di usare il contatore monotonico evita la necessit? di salvare il valore del contatore monotonico ed evita una sua modifica. Come menzionato, il vettore di inizializzazione IV non si ripete. Preferibilmente, il vettore di inizializzazione IV ? un nonce.
Cos?, il vettore di inizializzazione IV casuale generato internamente ? fornito in ingresso al generatore di LR-KDF 10 per generare la chiave derivata K0, che ? la chiave derivata usata per generare 2 flussi OFB. Poich? la chiave derivata K0 non ? nota, secondo le ipotesi di LR-KDF, un aggressore non conoscerebbe i valori di ingresso all?AES 11 nell?AES-OFB, eccetto che per la prima costante, per es. 0?00, e la seconda costante 0?01. La conoscenza del testo in chiaro P e del testo cifrato C non consente a un aggressore di recuperare i valori di ingresso ai blocchi di AES 11.
In varianti di forme di attuazione, due chiavi derivate differenti possono essere generate da uno stesso generatore di LR-KDF o da due generatori di LR-KDF, rispettivamente le chiavi K0, K1, e possono essere fornite ai rispettivi rami di OFB 31a, 31b. In tal caso, la prima costante CNa e la seconda costante CNb possono essere o possono non essere differenti.
Un modulo di autenticazione, non rappresentato nella Figura 1, pu? essere disposto a valle dei rami 31a e 31b. Questo modulo di autenticazione pu? essere implementato, per esempio, secondo schemi di autenticazione descritti in Berti, Koeune, Pereira, Peters, Standaert, ?Leakage-Resilient and Misuse-Resistant Authenticated Encryption?, Pubblicato nel 2016, Computer Science, IACR Cryptol. ePrint Arch (si veda l?URL https://eprint.iacr.org/2016/996.pdf) o in Medwed, Standaert, Joux, ?Towards Super-Exponential Side-Channel Security with Efficient Leakage-Resilient PRFs?, In: Prouff, E., Schaumont, P. (eds.) Cryptographic Hardware and Embedded Systems -CHES 2012 - 14th International Workshop, Leuven, Belgio, 9-12 Settembre 2012. Proceedings. Lecture Notes in Computer Science, vol.
7428, pagine da 193 a 212. Springer (2012).
In varianti di forme di attuazione, la soluzione qui descritta pu? essere applicata non solo a una procedura di crittografia Resiliente alle perdite, che comprende una funzione di derivazione di chiavi Resiliente alle Perdite che deriva una chiave differente per ciascun messaggio dalla stessa chiave master, ma anche a una procedura di crittografia in cui almeno una chiave univoca ? fornita alla struttura di OFB. Perci?, la soluzione si riferisce in generale a un procedimento per eseguire operazioni di crittografia su dati in un dispositivo di elaborazione comprendente una procedura di crittografia,
detto procedimento comprendendo
generare un vettore di inizializzazione IV non ripetitivo con un generatore di chiavi univoche, ottenere almeno una chiave univoca,
fornire detta almeno una chiave univoca come chiave di crittografia a una coppia di rami di crittografia di retroazione di uscita,
ciascun ramo di crittografia eseguendo una prima operazione di crittografia invocando un dispositivo di cifratura a blocchi di crittografia che esegue una operazione di crittografia usando detta almeno una chiave univoca come chiave di crittografia e ricevendo una prima e una seconda costante rispettive come ingresso da criptare, le uscite di dette prime operazioni di crittografia su ciascun ramo di crittografia e una prima porzione di testo in chiaro essendo gli ingressi di una prima funzione XOR che produce una prima porzione di testo cifrato,
eseguire almeno una crittografia successiva invocando un dispositivo di cifratura a blocchi di crittografia che usa detta almeno una chiave univoca come chiave di crittografia e che riceve le uscite delle crittografie precedenti come ingresso da criptare, le uscite di dette crittografie successive e una porzione successiva di un testo in chiaro essendo gli ingressi di una funzione XOR successiva che produce una porzione successiva di testo cifrato.
La soluzione secondo le varie forme di attuazione qui descritte consente di ottenere i seguenti vantaggi.
La soluzione qui descritta consente una nuova modalit? di funzionamento che ? resiliente alle perdite (resistente a DPA). Tale modalit? funziona avendo una prima derivazione di chiave basata su nonce e usando la chiave derivata o le chiavi derivate per generare pi? di un flusso chiave senza fare s? che l?ingresso, cio?, il testo in chiaro, sia elaborato dal dispositivo di cifratura, ma solo combinato con il flusso chiave, eseguendo un OR esclusivo con il flusso chiave, per ottenere il testo cifrato.
Naturalmente, fermi restando i principi di fondo, i dettagli di costruzione e le forme di attuazione possono variare, anche in modo apprezzabile, rispetto a quanto ? stato descritto e illustrato qui, puramente a titolo di esempio, senza uscire con ci? dall?ambito delle presenti forme di attuazione, come definito dalle rivendicazioni seguenti.

Claims (12)

RIVENDICAZIONI
1. Procedimento per eseguire operazioni di crittografia su dati in un dispositivo di elaborazione comprendente una procedura di crittografia,
detto procedimento comprendendo
generare un vettore di inizializzazione (IV) non ripetitivo, in particolare casuale, con un generatore di vettori di inizializzazione, in particolare un generatore casuale (21),
ottenere almeno una chiave univoca (K0; K0,K1), fornire detta almeno una chiave univoca (K0; K0,K1) come chiave di crittografia a una coppia di rami di crittografia (31a, 31b) di retroazione di uscita, ciascun ramo di crittografia (31a, 31b) eseguendo una prima operazione di crittografia invocando un dispositivo di cifratura a blocchi di crittografia (11) che esegue una operazione di crittografia usando detta almeno una chiave univoca (K0; K0,K1) come chiave di crittografia e ricevendo una prima (CNa) e una seconda (CNb) costante rispettive come ingresso da criptare,
le uscite (Oa0, Ob0) di dette prime operazioni di crittografia su ciascun ramo di crittografia (31a, 31b) e una prima porzione (P0) di un testo in chiaro essendo gli ingressi di una prima funzione XOR (X0) che produce una prima porzione di testo cifrato (C0),
eseguire almeno una crittografia successiva invocando un dispositivo di cifratura a blocchi di crittografia (11) che usa detta almeno una chiave univoca (K0; K0,K1) come chiave di crittografia e che riceve le uscite (Oa0, Ob0) delle crittografie precedenti come ingresso da criptare, le uscite (Oa1, Ob1) di dette crittografie successive e una porzione successiva (P1) di un testo in chiaro essendo gli ingressi di una funzione XOR (X1) successiva che produce una porzione successiva di testo cifrato (C1).
2. Procedimento secondo la rivendicazione 1, in cui detta almeno una chiave univoca (K0; K0,K1) ? una chiave univoca singola (K0) e dette prima e seconda costante (CNa, CNb) sono differenti l?una rispetto all?altra.
3. Procedimento secondo la rivendicazione 1, in cui due chiavi univoche (K0,K1) sono inviate rispettivamente al primo ramo (31a) e al secondo ramo (31b) e dette prima e seconda costante (CNa, CNb) sono uguali.
4. Procedimento secondo la rivendicazione 1, in cui detto vettore di inizializzazione (IV) ? generato come un nonce.
5. Procedimento secondo la rivendicazione 1, comprendente una procedura di crittografia autenticata sul testo cifrato ottenuto.
6. Procedimento secondo la rivendicazione 1, in cui detto blocco di cifratura (11) ? un dispositivo di cifratura AES.
7. Procedimento secondo la rivendicazione 1, in cui detto avere le uscite (Oa0, Ob0) delle prime operazioni di crittografia su ciascun ramo di crittografia (31a, 31b) e una prima porzione (P0) di un testo in chiaro che sono gli ingressi di una prima funzione XOR (X0) che produce una prima porzione di testo cifrato (C0) ? implementato eseguendo dapprima un primo XOR tra le uscite (Oa0, Ob0) delle prime operazioni di crittografia su ciascun ramo di crittografia (31a, 31b), poi sul risultato di tale prima operazione di XOR ? eseguito uno XOR con la prima porzione (P0) del testo in chiaro, che produce detta prima porzione di testo cifrato (C0),
le funzioni XOR (X1) successive essendo anche implementate cos? per produrre porzioni successive di testo cifrato (C1).
8. Procedimento secondo la rivendicazione 1, in cui detta procedura di crittografia ? una procedura di crittografia Resiliente alle perdite, che comprende una funzione di derivazione di chiavi Resiliente alle Perdite che deriva una chiave differente per ciascun messaggio dalla stessa chiave master,
detto procedimento comprendendo
eseguire una funzione di derivazione di chiavi Resiliente alle Perdite usando una chiave di crittografia master (MK) e detto vettore di inizializzazione (IV) come ingressi di una catena di funzioni di derivazione di chiavi (10), ottenendo almeno una chiave di derivazione (K0; K0,K1) come detta chiave univoca (K0; K0,K1).
9. Dispositivo di elaborazione (10) configurato per eseguire le fasi del procedimento secondo una qualsiasi delle rivendicazioni da 1 a 8.
10. Dispositivo di elaborazione secondo la rivendicazione 9, caratterizzato dal fatto che comprende un generatore casuale (21) per generare detto vettore di inizializzazione (IV) casuale,
un generatore di chiavi univoche (10) configurato per ottenere detta almeno una chiave univoca (K0; K0,K1),
un dispositivo di crittografia comprendente una coppia di rami di crittografia (31a, 31b) di retroazione di uscita,
ciascun ramo di crittografia (31a, 31b) comprendendo una catena di invocazioni di un dispositivo di cifratura a blocchi di crittografia (11), ciascuna uscita di un dispositivo di cifratura a blocchi di crittografia precedente essendo l?ingresso del dispositivo di cifratura a blocchi di crittografia seguente, che riceve detta almeno una chiave univoca (K0; K0,K1) come chiave di crittografia, il primo dispositivo di cifratura a blocchi di crittografia (11) ricevendo la prima (CNa) e la seconda (CNb) costante rispettive come ingresso da criptare,
detto dispositivo di crittografia comprendendo anche una pluralit? di blocchi (X0, X1) che eseguono una funzione XOR,
l?uscita di ciascun dispositivo di cifratura (11) avente la stessa posizione nella catena del ramo di crittografia (31a, 31b) essendo fornita come ingresso a una rispettiva funzione XOR (X0) insieme alla porzione di testo in chiaro per ottenere una corrispondente porzione di testo cifrato (C0).
11. Dispositivo di elaborazione secondo la rivendicazione 10, in cui detto generatore di chiavi univoche (10) configurato per ottenere detta almeno una chiave univoca (K0; K0,K1) ? un generatore di funzioni di derivazione di chiavi Resilienti alle Perdite (10) configurato per ottenere detta almeno una chiave di derivazione (K0; K0,K1),
12. Prodotto informatico che pu? essere caricato nella memoria di almeno un elaboratore e comprende parti di codice software che sono atte a eseguire le fasi del procedimento secondo una qualsiasi delle Rivendicazioni da 1 a 8 quando il prodotto ? eseguito su almeno un elaboratore.
IT102021000016910A 2021-06-28 2021-06-28 Procedimento per eseguire operazioni di crittografia in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico IT202100016910A1 (it)

Priority Applications (4)

Application Number Priority Date Filing Date Title
IT102021000016910A IT202100016910A1 (it) 2021-06-28 2021-06-28 Procedimento per eseguire operazioni di crittografia in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico
EP22178582.7A EP4113894B1 (en) 2021-06-28 2022-06-13 Method for performing cryptographic operations in a processing device, corresponding processing device and computer program product
US17/839,109 US20220417012A1 (en) 2021-06-28 2022-06-13 Method for performing cryptographic operations in a processing device, corresponding processing device and computer program product
CN202210734959.2A CN115603892A (zh) 2021-06-28 2022-06-27 执行密码操作的方法、对应的处理设备和计算机程序产品

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102021000016910A IT202100016910A1 (it) 2021-06-28 2021-06-28 Procedimento per eseguire operazioni di crittografia in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico

Publications (1)

Publication Number Publication Date
IT202100016910A1 true IT202100016910A1 (it) 2022-12-28

Family

ID=77802090

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102021000016910A IT202100016910A1 (it) 2021-06-28 2021-06-28 Procedimento per eseguire operazioni di crittografia in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico

Country Status (4)

Country Link
US (1) US20220417012A1 (it)
EP (1) EP4113894B1 (it)
CN (1) CN115603892A (it)
IT (1) IT202100016910A1 (it)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090214026A1 (en) * 2008-02-27 2009-08-27 Shay Gueron Method and apparatus for optimizing advanced encryption standard (aes) encryption and decryption in parallel modes of operation

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20090214026A1 (en) * 2008-02-27 2009-08-27 Shay Gueron Method and apparatus for optimizing advanced encryption standard (aes) encryption and decryption in parallel modes of operation

Non-Patent Citations (5)

* Cited by examiner, † Cited by third party
Title
"Proceedings. Lecture Notes in Computer Science", vol. 7428, 2012, SPRINGER, pages: 193 - 212
BERTI KOEUNE, PEREIRA, PETERS, STANDAERT: "Leakage-Resilient and Misuse-Resistant Authenticated Encryption", COMPUTER SCIENCE, 2016, Retrieved from the Internet <URL:https://eprint.iacr.org/2016/996.pdf>
MEDWEDSTANDAERTJOUX: "Towards Super-Exponential Side-Channel Security with Efficient Leakage-Resilient PRFs", CRYPTOGRAPHIC HARDWARE AND EMBEDDED SYSTEMS -CHES 2012 - 14TH INTERNATIONAL WORKSHOP, LEUVEN, BELGIUM, 9 September 2012 (2012-09-09)
ODED GOLDREICHSHAFI GOLDWASSERSILVIO MICALI: "How to construct random functions", JOURNAL OF THE ACM, August 1986 (1986-08-01), Retrieved from the Internet <URL:https://doi.org/10.1145/6490.6503>
PIRZADA SYED JAHANZEB HUSSAIN ET AL: "Architectural Optimization of Parallel Authenticated Encryption Algorithm for Satellite Application", IEEE ACCESS, IEEE, USA, vol. 8, 5 March 2020 (2020-03-05), pages 48543 - 48556, XP011778794, DOI: 10.1109/ACCESS.2020.2978665 *

Also Published As

Publication number Publication date
US20220417012A1 (en) 2022-12-29
CN115603892A (zh) 2023-01-13
EP4113894B1 (en) 2024-06-05
EP4113894A1 (en) 2023-01-04

Similar Documents

Publication Publication Date Title
JP6934963B2 (ja) データを暗号化する方法およびシステム
Gueron et al. Fast garbling of circuits under standard assumptions
US11546135B2 (en) Key sequence generation for cryptographic operations
JP5402632B2 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
US10333702B2 (en) Updating key information
CN111106936A (zh) 一种基于sm9的属性加密方法与系统
JP7031580B2 (ja) 暗号化装置、暗号化方法、復号化装置、及び復号化方法
WO2013150880A1 (ja) 暗号化装置、復号化装置、暗号化方法、復号化方法、及びプログラム
JP6575532B2 (ja) 暗号化装置、復号装置、暗号処理システム、暗号化方法、復号方法、暗号化プログラム、及び復号プログラム
US11463235B2 (en) Encryption device, encryption method, program, decryption device, and decryption method
WO2006064763A1 (ja) 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及び共通鍵ブロック暗号化プログラム
WO2021129470A1 (zh) 基于多项式完全同态的二进制数据加密系统及方法
Murtaza et al. Fortification of aes with dynamic mix-column transformation
CN107342855B (zh) 基于sm2算法的签名方法
IT202100016910A1 (it) Procedimento per eseguire operazioni di crittografia in un dispositivo di elaborazione, corrispondenti dispositivo di elaborazione e prodotto informatico
Babenko et al. Application of algebraic cryptanalysis to Magma and Present block encryption standards
CN111740818A (zh) 一种数据处理方法、装置、设备及存储介质
EP4117221A1 (en) Method for performing cryptographic operations in a processing device, corresponding processing device and computer program product
JP5500277B2 (ja) 共通鍵暗号機能を搭載した暗号化装置及び組込装置
Trabelsi et al. DCBC: A Distributed High-performance Block-Cipher Mode of Operation.
Helleseth et al. Special issue on recent trends in cryptography
JP5818768B2 (ja) マスク生成装置、情報処理装置、及びその方法、プログラム
CN113259094A (zh) 一种通用的层级签名加密系统与构建方法
Bagherzandi et al. A Related Key Attack on the Feistel Type Block Ciphers.
Brandner The knapsack problem: applications in cryptography