IT201600076089A1 - Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico - Google Patents

Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico

Info

Publication number
IT201600076089A1
IT201600076089A1 IT102016000076089A IT201600076089A IT201600076089A1 IT 201600076089 A1 IT201600076089 A1 IT 201600076089A1 IT 102016000076089 A IT102016000076089 A IT 102016000076089A IT 201600076089 A IT201600076089 A IT 201600076089A IT 201600076089 A1 IT201600076089 A1 IT 201600076089A1
Authority
IT
Italy
Prior art keywords
signature
nonce
point
message
secret
Prior art date
Application number
IT102016000076089A
Other languages
English (en)
Inventor
Ruggero Susella
Sofia Montrasio
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 IT102016000076089A priority Critical patent/IT201600076089A1/it
Priority to US15/441,001 priority patent/US10333718B2/en
Publication of IT201600076089A1 publication Critical patent/IT201600076089A1/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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • H04L9/3252Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures using DSA or related signature schemes, e.g. elliptic based signatures, ElGamal or Schnorr schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves

Description

"Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unità di generazione, apparato elettronico e prodotto informatico"
TESTO DELLA DESCRIZIONE
Campo tecnico
La presente descrizione è relativa a tecniche per la generazione di una firma digitale di dati di un messaggio, la generazione essendo implementata su una curva ellittica, detto procedimento operando in base a una data curva ellittica ed a un dato punto base di un dato ordine noto a un mittente del messaggio ed a un destinatario del messaggio, detto procedimento comprendendo una procedura di generazione di una chiave nella quale è scelta una chiave intera segreta ed è calcolata una chiave pubblica come un prodotto scalare della chiave segreta e del punto base di una data curva ellittica, una procedura di firma comprendendo di applicare una trasformazione a detto messaggio per ottenere una firma, detta trasformazione comprendendo di scegliere un nonce segreto intero e calcolare un punto in funzione di detto nonce segreto intero e di detto punto base della curva ellittica, e calcolare una componente della firma in funzione di almeno detto nonce segreto intero, di detto punto e di un valore di hash calcolato applicando una funzione di hash almeno a detto messaggio, fornire in uscita una firma che comprende detta componente della firma.
Varie forme di attuazione possono applicarsi per es. a una smartcard, a microcontrollori, a un set-top-box che usano uno schema di firma digitale.
Descrizione della tecnica nota
I protocolli crittografici, o i protocolli di crittografia, sono protocolli astratti o concreti che eseguono una funzione relativa alla sicurezza ed applicano procedimenti crittografici, spesso come sequenze di primitive crittografiche. Una primitiva crittografica che è fondamentale nell'autenticazione, autorizzazione e non ripudio è la firma digitale. Lo scopo di una firma digitale, esattamente come quello di una firma tradizionale, è di fornire un mezzo affinché un'entità vincoli la sua identità a un pezzo di informazioni. Il processo per effettuare una firma digitale comporta di trasformare il messaggio e qualche informazione segreta in possesso dell'entità in una etichetta ("tag") chiamata firma.
In generale, definendo M come l'insieme di messaggi che possono essere firmati, S un insieme di elementi chiamati firme, stringhe binarie di lunghezza fissa, SAindica una trasformazione dall'insieme di messaggi M all'insieme delle firme S ed è chiamata trasformazione di firma per l'entità A, cioè per esempio il mittente del messaggio M. VAè una trasformazione dall'insieme M<χ>S all'insieme {vero, falso} ed è chiamata trasformazione di verifica per le firme dell'entità A. È nota pubblicamente, e può essere usata da chiunque per verificare le firme create dall'entità o dal mittente A.
Nella presente descrizione, la definizione di un messaggio M comprende non solo un messaggio di posta elettronica ("e-mail"), ma si estende a qualsiasi tipo di dati digitali di messaggi che possono essere inviati da un mittente a un destinatario e che sono atti a generare una firma valida applicando i procedimenti qui descritti.
Uno schema di firma digitale, identificato da una coppia SA, VAconsiste tipicamente di tre procedure:
- una procedura di generazione di chiave che seleziona una chiave privata a tra un insieme di chiavi private possibili. La procedura fornisce in uscita la chiave privata a e una corrispondente chiave pubblica A;
- una procedura di firma che, dati un messaggio M e una chiave privata a, produce una firma S=SA(M);
- una procedure di verifica della firma che, dati il messaggio M, la chiave pubblica A e la firma SA(M), accetta o rifiuta la rivendicazione di autenticità del messaggio calcolando una firma di verifica VA(M, SA(M)).
La moltiplicazione scalare è l'operazione fondamentale per tutte le primitive crittografiche basate sul problema logaritmico discreto delle curve ellittiche. La soluzione qui descritta si riferisce in particolare alla famiglia degli schemi di firma digitale a curve ellittiche. Fino al 1992 gli schemi erano proposti su gruppi moltiplicativi, ma poi la comunità crittografica si è rivolta alle curve ellittiche, indicata anche come ECC (Elliptic Curves Cryptography) .
In generale, le procedure di firma digitale basate sulle curve ellittiche sono basate su una data curva ellittica E e un dato punto base B della curva ellittica di un dato ordine 1, che è un numero primo grande. E, B e 1 sono noti a un mittente del messaggio M e ad un destinatario del messaggio M.
Il primo schema di questa natura è stato presentato nel 1985 dal ricercatore egiziano Taher ElGamal, alla Stanford University in ElGamal, T. "A public key cryptosystem and a signature scheme based on discrete logari thms" . In Advances in cryptology (pagine da 10 a 18) . Springer Berlin Heidelberg. Agosto 1984.
Schemi come ECDSA (Elliptic Curve Digital Signature Algorithm); Schnorr e EdDSA (Edwards-curve Digital Signature Algorithm) derivano dallo schema di E1 Gamal.
Nella Figura 1 è descritto un procedimento per calcolare una firma digitale 100 in base all'algoritmo di Schnorr.
Come menzionato, data una determinata curva ellittica E, con un punto base B di un ordine 1, tale che lXB=0, dove
X indica una moltiplicazione scalare a curva ellittica, la
curva E, il punto B e l'ordine 1 essendo noti sia al mittente o utente sia al destinatario, cioè essendo pubblici, in una procedura di generazione di chiave 110, il mittente sceglie un intero segreto a in un intervallo di interi {1, 2, ..., 1 - 1}, detto intervallo avendo una lunghezza 1-1, come chiave segreta, e calcola un punto della curva della chiave pubblica, A = aB, che è usato come chiave pubblica.
Quindi, una procedura di firma 120 prevede le fasi seguenti per calcolare una trasformazione SAda applicare al messaggio M:
in una fase 121, un "nonce" crittografico r, cioè un numero arbitrario che può essere usato soltanto una volta, è generato in modo casuale. Il nonce r può essere generato alternativamente in maniera deterministica;
in una fase 122, è calcolato un punto R =
cioè come il prodotto scalare del nonce r e del punto base B, dove xse _3⁄4 sono le coordinate del punto R;
in una fase 123, è calcolata una componente della firma s = r — a modi , dove H è una funzione di hash, M è il
messaggio da firmare, a è la chiave privata, Z è l'ordine
del punto base B. Un valore di hash H (M/.R) è calcolato applicando la funzione di hash H a detto messaggio M in concatenazione con il punto R;
in una fase 124, è fornita come uscita una firma S=(s, H(M,fl)), come la coppia della componente della firma s
e del valore di hash H (M,R) .
Con il numero di riferimento 130 nella Figura 1 è anche indicata per completezza una fase di verifica 130, che non è parte del procedimento per calcolare una firma digitale 100, che è effettuato dal mittente, ma è invece parte di un procedimento corrispondente per verificare la firma digitale, implementando il calcolo della firma di verifica VA(M, SA(M)).
Fondamentalmente, la firma di verifica di Schnorr comprende di verificare dapprima se l'intero corrispondente alla componente della firma s è nell'intervallo {1, 2,..., 1-1} e se il punto A, cioè la chiave pubblica, è in E(FP), dove Fpè il campo finito sopra il quale è definita la curva E. Quindi, è calcolata la moltiplicazione scalare a base doppia V=sB-H(M,R)A ed è verificato se H (M,V)==H (M,R).
In generale, la firma componente s nelle curve ellittiche dei differenti schemi di firma digitale è definita come segue:
Elgamal: s=r<_1>(H (M)-at) mod 1
ECDSA: s=r<_1>(H (M)+at) mod 1
Schnorr: s=r+H (M, R)a mod 1
EdDSA: s =r+H(R,A,M)a mod 1
Nella procedura di E1 Gamal o ECDSA, calcolare la componente della firma comprende di calcolare una funzione che comprende la moltiplicazione di campo dell'inverso del nonce r, e di un valore di hash calcolato applicando la funzione di hash H al messaggio (M). t è una variabile che memorizza la coordinata xRmod 1 del punto R. La firma S è la coppia della firma componente s e della variabile t nell'ECDSA, mentre la firma S nella procedura di Elgamal è la coppia della firma componente s e del punto R.
Nella procedura di Schnorr o EdDSA, calcolare la componente della firma comprende di calcolare una funzione che comprende la somma del nonce r e di un valore di hash H(M,R) calcolato applicando una funzione di hash H a detto messaggio M ed a detto punto R. L'EdDSA applica la funzione di hash anche alla chiave pubblica A. Come rappresentato con riferimento alla Figura 1, la firma S è la coppia della firma componente s e del valore di hash H(M,R).
Questi algoritmi sono soggetti a rischi di attacchi se usano due volte lo stesso r. Questo consente di recuperare la chiave privata a, per esempio nel caso dello schema di Schnorr la chiave privata può essere recuperata con giusto una sottrazione e un'inversione.
C'è anche un pericolo nel conoscere un po' dei bit di una chiave effimera, come il nonce, poiché in questo caso può essere effettuato un attacco HNP (Hidden Number Problem). Il problema del numero nascosto ("Hidden Number Problem") ha una soluzione che può essere trovata in un tempo polinomiale. Come indicato per esempio in Phong Nguyen e Igor Shparlinski, un tale attacco su ECDSA richiede soltanto i 3 bit meno significativi dei nonce per 100 firme o i 4 bit più significativi. Se la finestra dei bit consecutivi noti non è a una estremità, sono richiesti il doppio dei bit.
Perciò, se un aggressore riesce a conoscere alcuni bit (4 o 5) del nonce per molte firme, può mettere in atto un attacco basato su HNP per recuperare la chiave privata. La dimensione tipica per il nonce r è di 256 bit.
Il nonce r dovrebbe essere generato in modo
uniformemente casuale. Non ci dovrebbe essere alcun problema con i generatori di numeri casuali. Alcuni attacchi pratici hanno sfruttato generatori cattivi. Alcune soluzioni propongono di generarlo in modo deterministico accoppiato a un segreto. Tuttavia, questo rimane vulnerabile ad attacchi di canale laterale. Il nonce r
potrebbe essere attaccato con attacchi di canale laterale nella moltiplicazione scalare rB . Ciò non è facile perché
il nonce r cambia ogni volta, ma sono richiesti solo alcuni
bit. Se sono recuperati un po' di bit di molti r, può
essere effettuato un attacco di HNP.
Scopo e sintesi
Uno scopo di una o più forme di attuazione è di fornire un procedimento per calcolare una firma digitale di un messaggio in base a curve ellittiche che risolve gli inconvenienti della tecnica nota e in particolare è resistente agli attacchi HNP, in particolare con un basso costo computazionale.
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 riferirsi a una
corrispondente unità di generazione di firma digitale che effettua il procedimento così come a un apparato elettronico che comprende l'unità e a un prodotto informatico che può essere caricato nella memoria di almeno un elaboratore e comprende parti di codice software che sono atte ad eseguire le fasi del procedimento quando il prodotto è eseguito su almeno un elaboratore. Come usato qui, un riferimento a un tale prodotto informatico è inteso essere equivalente a un riferimento a un mezzo leggibile da elaboratore che contiene istruzioni per controllare il sistema di elaborazione, al fine di coordinare 1'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 fanno parte integrante dell'insegnamento tecnico qui fornito con riferimento alle varie forme di attuazione.
Secondo la soluzione qui descritta, il procedimento comprende una procedura di generazione di chiave che comprende di scegliere una seconda chiave segreta e di calcolare un punto della seconda curva della chiave come un prodotto scalare di detta seconda chiave segreta e di detto punto base della curva ellittica, mentre la procedura di firma comprende di calcolare un nonce modificato come una moltiplicazione modulare di detto nonce segreto e di detta seconda chiave segreta e di calcolare detto punto come prodotto scalare di detto nonce segreto e di detto punto della seconda curva della chiave, di calcolare la componente della firma usando detto nonce modificato al posto del nonce segreto e detto punto calcolato come prodotto scalare di detto nonce segreto e di detto punto della seconda curva della chiave.
In varie forme di attuazione, calcolare la componente della firma comprende di calcolare una funzione che comprende la moltiplicazione modulare dell'inverso del nonce modificato e di un valore di hash calcolato applicando una funzione di hash a detto messaggio, in particolare secondo una procedura di E1 Gamal o ECDSA.
In varie forme di attuazione, calcolare la componente della firma comprende di calcolare una funzione che comprende la somma del nonce modificato di un valore di hash calcolato applicando una funzione di hash a detto messaggio e a detto punto, in particolare secondo una procedura di Schnorr o EdDSA.
Breve descrizione dei disegni
L' invenzione sarà ora descritta, a puro titolo di esempio non limitativo, con riferimento ai disegni annessi, nei quali:
- la Figura 1 è stata discussa in precedenza;
- la Figura 2 rappresenta un diagramma di flusso che mostra una forma di attuazione della soluzione qui descritta;
- la Figura 3 mostra un apparato elettronico che usa il procedimento qui descritto.
Descrizione dettagliata delle 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 vari 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. Inoltre, le frasi come "in una forma di attuazione", 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.
È inteso che i riferimenti usati qui siano semplicemente per convenienza e quindi non definiscono l'ambito di protezione o l'ambito delle forme di attuazione .
La soluzione qui descritta ha come obiettivo di arrestare l'attacco di HNP che richiede solo un po' di bit di r, usando una procedura di generazione di chiave
modificata aggiungendo una seconda chiave segreta c e un punto della seconda curva della chiave C=cX,B, dove sia c
sia C dovrebbero essere mantenuti segreti anche al
destinatario. È anche impiegata una generazione della firma modificata .
In maggiore dettaglio, con riferimento alla Figura 2, in cui una forma di attuazione 200 di un procedimento per calcolare la firma digitale di un messaggio (M) è rappresentata per mezzo di un diagramma di flusso, in una procedura di generazione di chiave 210, data una determinata curva ellittica E, con un punto base B di un ordine 1, in modo tale che 1 sia il più piccolo intero per il quale 1XB=0, dove X indica una moltiplicazione scalare
a curva ellittica e 0 indica l'elemento neutro del gruppo di punti della curva ellittica, la curva E, il punto B e l'ordine 1 essendo noti sia al mittente o utente sia al destinatario, cioè essendo pubblici, il mittente sceglie un intero casuale segreto a in un intervallo di interi {1, 2, ..., 1 - 1}, tale intervallo avendo una lunghezza 1-1, come chiave segreta, e calcola un punto della curva della chiave pubblica, A = aXB, che è usato come chiave pubblica.
Nella stessa procedura di generazione di chiave 210, una seconda chiave segreta c è scelta nell'intervallo di interi {1,2,...,1-1} e un punto della seconda curva C è scelto come C=cXB, cioè come un prodotto scalare di detta seconda
chiave segreta c e di detto punto base della curva ellittica B. Sia c sia C sono tenuti segreti.
Quindi, è effettuata una procedura di firma modificata 220, nella quale:
in una fase 221, un nonce r è generato in modo casuale e un nonce modificato re come moltiplicazione modulare modulo 1 di detto nonce segreto r e di detta seconda chiave segreta c;
in una fase 222, è calcolato un punto R = (xRrys) = r X C,
cioè tale punto R è calcolato come un prodotto scalare di detto nonce segreto r e di detto punto della seconda curva della chiave C,
in una fase 223, è calcolata una componente della firma s= re →- H{MrR)a mod l , dove H è una funzione di hash, M
è il messaggio da firmare, a è la chiave privata, l è 1'ordine del punto base B della curva ellittica. In altre parole, è previsto di calcolare la componente della firma s usando il nonce modificato re al posto del nonce segreto r e il punto (R) è calcolato come un prodotto scalare del nonce segreto r e del punto della seconda curva della chiave C;
in una fase 224, è fornita come uscita una firma S=(s, H(M,fì)), comprendente detta componente della firma s
come calcolata nella fase 223.
La procedura di verifica 130 rimane invariata.
Così, in generale, con rifermento alla forma di attuazione della Figura 2, il procedimento per la generazione di una firma digitale di dati di un messaggio M implementato su una curva ellittica E qui descritto comprende di calcolare 221 un nonce modificato re come una moltiplicazione modulare di detto nonce segreto r e di detta seconda chiave segreta c in aggiunta a detto scegliere un nonce segreto intero r, che è stato effettuato da solo nella fase 121, e
calcolare 222 detto punto R come un prodotto scalare di detto nonce segreto r e di detto punto della seconda curva della chiave C, in particolare invece di usare il punto base della curva B,
calcolare 223 detta componente della firma s in funzione di almeno il nonce segreto intero r, del punto R e di un valore di hash H(M,R) calcolato applicando la funzione di hash H almeno a detto messaggio (M), e nella forma di attuazione rappresentata anche al punto R, usando il nonce modificato re al posto del nonce segreto r e usando il punto (R) che è calcolato come un prodotto scalare di detto nonce segreto e del punto della seconda curva della chiave C.
Sebbene il procedimento 200 sia descritto con riferimento alla procedura di Schnorr, come menzionato può essere esteso ad altri schemi di firma digitale implementati su curve ellittiche usando la seconda chiave segreta c e la seconda curva C come appena indicato. Come conseguenza per la procedura di E1 Gamal o ECDSA, calcolare la componente della firma s comprende di calcolare una funzione che comprende la moltiplicazione modulare dell'inverso del nonce modificato re e di un valore di hash H (M) calcolato applicando la funzione di hash H a detto messaggio M da solo, in particolare secondo una procedura di E1 Gamal o ECDSA.
Come rappresentato nella procedura di Schnorr o EdDSA, calcolare la componente della firma s comprende invece di calcolare una funzione che comprende la somma del nonce modificato re di un valore di hash H(M,R) calcolato applicando la funzione di hash H a detto messaggio M ed almeno a detto punto R.
Così, in base a ciò che è stato appena descritto, si può vedere come l'attacco di HNP è arrestato dalla seconda chiave segreta c, che è incognita per l'aggressore.
Nella Figura 3 è rappresentato schematicamente un apparato elettronico 2000 di un mittente che comprende un'unità 1000 per la generazione di una firma digitale di un messaggio M, la generazione essendo implementata su una curva ellittica E. L'apparato 2000 è per esempio una fotocamera digitale che è atta ad applicare una firma digitale alle immagini digitali, che in questo caso rappresentano i messaggi M. L'unità 1000 per la generazione di una firma digitale di un messaggio M è attuata preferibilmente dall'unità di elaborazione 1000, che può essere un microprocessore. Il microprocessore è configurato in modo da effettuare le fasi del procedimento qui descritto, in particolare le fasi del procedimento 200 descritto con riferimento alla Figura 2. Il microprocessore può essere associato a mezzi di memoria, interni o esterni rispetto all'unità 1000 o all'apparato 2000, che memorizzano istruzioni per effettuare il procedimento qui descritto. L'unità di elaborazione 1000 riceve il messaggio M, per esempio da mezzi di memorizzazione in memoria dell'apparato 2000, quale una memoria flash, ed applica il procedimento 200 producendo una firma componente s, e una firma S. Nella Figura 3, è anche rappresentato un corrispondente apparato ricevitore 2010, per esempio una stampante di immagini o un apparato di riproduzione di immagini, che comprende un'unità di verifica 1010 per effettuare la fase di verifica 130 sulla firma S. Se la verifica è positiva, è permesso per esempio stampare o riprodurre l'immagine nel messaggio.
Come menzionato, l'apparato elettronico può anche essere una smart card, un telefono cellulare, un set top box, quale un ricevitore digitale satellitare o un ricevitore digitale terrestre, una console per videogiochi, un computer (per esempio, un personal computer), una periferica (per esempio, una stampante).
L'apparato elettronico può anche comprendere un qualsiasi dispositivo elettronico digitale disposto per autenticare accessori come, per esempio, le cuffie, le batterie, le cartucce di inchiostro, o un toner.
La soluzione secondo le varie forme di attuazione qui descritte consente di ottenere i seguenti vantaggi.
Questa soluzione prevede vantaggiosamente che, se il generatore casuale è debole, l'attacco di HNP non possa essere effettuato. Se alcuni bit del nonce sono recuperati dall'operazione di prodotto scalare del nonce con il punto della seconda curva C, rXC, l'attacco di HNP non può
essere effettuato. Quindi, gli attacchi di canale laterale contro rXC sono più difficili che contro il prodotto rXB
perché il punto B è noto mentre il punto della seconda curva C è segreto.
Vantaggiosamente, ciò è ottenuto al costo per firma computazionale aggiuntivo di appena una moltiplicazione modulare, che è meno dello 0,1% del costo totale.
Naturalmente, fermi restando i principi di fondo delle forme di attuazione, 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 nelle rivendicazioni che seguono.
Il procedimento è stato descritto con riferimento a una procedura di Schnorr, ma può essere applicato anche ad altri procedimenti per la generazione di una firma digitale di un messaggio in base a curve ellittiche, quale la procedura di E1 Gamal o ECDSA, e anche EdDSA.

Claims (6)

  1. RIVENDICAZIONI 1. Procedimento per la generazione di una firma digitale di dati di un messaggio (M) implementato su una curva ellittica (E), detto procedimento operando sulla base di una data curva ellittica (E) e di un dato punto base (B) di un dato ordine (1) che sono noti a un mittente del messaggio (M) e ad un destinatario del messaggio (M), detto procedimento comprendendo una procedura di generazione di chiave (110; 210) nella quale è scelta una chiave intera segreta (a) ed è calcolata una chiave pubblica (A) come un prodotto scalare della chiave segreta (a) e del punto di curva ellittica (B) di una data curva ellittica, una procedura di firma (120;220) comprendente di applicare una trasformazione (SA)a detti dati di un messaggio (M) per ottenere una firma (S), detta trasformazione (SA)comprendendo scegliere (121) un nonce segreto intero (r) e calcolare (122) un punto (R) in funzione di detto nonce segreto intero (r) e di detto punto base della curva ellittica (B), e calcolare (123) una componente della firma (s) in funzione di almeno detto nonce segreto intero (r), di detto punto (R) e di un valore di hash (H (M); H(M,R)) calcolato applicando una funzione di hash (H) almeno a detto messaggio (M), fornire in uscita (124, 224) una firma (S) comprendente detta componente della firma (s), caratterizzato dal fatto che detta procedura di generazione di chiave (310) comprende di scegliere una seconda chiave segreta (c) e di calcolare un punto della seconda curva della chiave (C) come un prodotto scalare di detta seconda chiave segreta (c) e di detto punto base della curva ellittica (B), detta procedura di firma (220) comprende calcolare (221) un nonce modificato (re) come una moltiplicazione modulare di detto nonce segreto (r) e di detta seconda chiave segreta (c) in aggiunta a detto scegliere un nonce segreto intero (r) e calcolare (222) detto punto (R) come un prodotto scalare di detto nonce segreto (r) e di detto punto della seconda curva della chiave (C), calcolare (223) detta componente della firma (s) in funzione di almeno detto nonce segreto intero (r), di detto punto (R) e di un valore di hash (H (M); H(M,R)) calcolato applicando una funzione di hash (H) almeno a detto messaggio (M), usando detto nonce modificato (re) al posto del nonce segreto (r) e detto punto (R) calcolato come prodotto scalare di detto nonce segreto (r) e di detto punto della seconda curva della chiave (C).
  2. 2. Procedimento secondo la Rivendicazione 1, caratterizzato dal fatto che detto calcolare la componente della firma (s) comprende di calcolare una funzione che comprende la moltiplicazione dell'inverso del nonce modificato (re) e di un valore di hash (H (M); H(M,R)) calcolato applicando una funzione di hash (H) a detto messaggio (M), in particolare secondo una procedura di E1 Gamal o ECDSA.
  3. 3. Procedimento secondo la Rivendicazione 1, caratterizzato dal fatto che detto calcolare la componente della firma (s) comprende di calcolare una funzione che comprende la somma del nonce modificato (re) di un valore di hash (H (M); H(M,R)) calcolato applicando una funzione di hash (H) a detto messaggio (M) ed a detto punto (R), in particolare secondo una procedura di Schnorr o EdDSA.
  4. 4. Unità di generazione di una firma digitale (1000) configurata in modo da effettuare le fasi del procedimento secondo una qualsiasi delle rivendicazioni da 1 a 3.
  5. 5. Apparato elettronico (2000) comprendente un'unità di calcolo della firma digitale (1000) secondo la Rivendicazione 4.
  6. 6. Prodotto informatico che può essere caricato nella memoria di almeno un elaboratore e comprende parti di codice software che sono atte ad eseguire le fasi del procedimento secondo una qualsiasi delle Rivendicazioni da 1 a 3 quando il prodotto è eseguito su almeno un elaboratore .
IT102016000076089A 2016-07-20 2016-07-20 Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico IT201600076089A1 (it)

Priority Applications (2)

Application Number Priority Date Filing Date Title
IT102016000076089A IT201600076089A1 (it) 2016-07-20 2016-07-20 Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico
US15/441,001 US10333718B2 (en) 2016-07-20 2017-02-23 Method for the generation of a digital signature of a message, corresponding generation unit, electronic apparatus and computer program product

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT102016000076089A IT201600076089A1 (it) 2016-07-20 2016-07-20 Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico

Publications (1)

Publication Number Publication Date
IT201600076089A1 true IT201600076089A1 (it) 2018-01-20

Family

ID=57610120

Family Applications (1)

Application Number Title Priority Date Filing Date
IT102016000076089A IT201600076089A1 (it) 2016-07-20 2016-07-20 Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita' di generazione, apparato elettronico e prodotto informatico

Country Status (2)

Country Link
US (1) US10333718B2 (it)
IT (1) IT201600076089A1 (it)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3461053A1 (en) * 2017-09-20 2019-03-27 Nagravision S.A. Fault attacks counter-measures for eddsa
EP3769467B1 (en) * 2018-03-23 2024-02-28 nChain Licensing AG Computer-implemented system and method for exchange of data
CN109361519B (zh) * 2018-12-07 2020-06-19 武汉理工大学 一种改进的包含秘密的数的生成方法及系统
US11075763B2 (en) 2019-02-15 2021-07-27 International Business Machines Corporation Compute digital signature authentication sign with encrypted key instruction
US11108567B2 (en) 2019-02-15 2021-08-31 International Business Machines Corporation Compute digital signature authentication verify instruction
US11303456B2 (en) 2019-02-15 2022-04-12 International Business Machines Corporation Compute digital signature authentication sign instruction
CN110086628B (zh) * 2019-04-23 2022-02-25 西安邮电大学 单源网络编码环境下椭圆曲线签名的方法
US10797887B2 (en) * 2019-06-26 2020-10-06 Alibaba Group Holding Limited Confidential blockchain transactions
CN110958115B (zh) * 2019-12-03 2022-08-23 成都卫士通信息产业股份有限公司 基于sm9白盒的数字签名装置、方法、存储介质及设备
US11722312B2 (en) * 2020-03-09 2023-08-08 Sony Group Corporation Privacy-preserving signature
CN111444242B (zh) * 2020-03-27 2023-11-14 苏州链原信息科技有限公司 用于数据等价性校验的方法、电子设备及计算机存储介质
CN112202568B (zh) * 2020-10-09 2022-05-20 天津大学 软硬件协同设计sm9数字签名通信方法和系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104836670A (zh) * 2015-05-12 2015-08-12 中国科学院软件研究所 一种基于随机数未知的sm2签名算法安全性验证方法
CN104852805A (zh) * 2015-05-11 2015-08-19 中国科学院软件研究所 一种抵抗基于格的错误攻击的sm2签名算法防护方法

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH10133576A (ja) * 1996-10-31 1998-05-22 Hitachi Ltd 公開鍵暗号方法および装置
US7308096B2 (en) * 2000-05-30 2007-12-11 Hitachi, Ltd. Elliptic scalar multiplication system
US7379546B2 (en) * 2004-03-03 2008-05-27 King Fahd University Of Petroleum And Minerals Method for XZ-elliptic curve cryptography
CA2542556C (en) * 2005-06-03 2014-09-16 Tata Consultancy Services Limited An authentication system executing an elliptic curve digital signature cryptographic process
JP4575251B2 (ja) * 2005-07-25 2010-11-04 株式会社東芝 デジタル署名生成装置、デジタル署名検証装置、デジタル署名生成方法、デジタル署名検証方法、デジタル署名生成プログラム及びデジタル署名検証プログラム
US8891756B2 (en) * 2008-10-30 2014-11-18 Certicom Corp. Collision-resistant elliptic curve hash functions
US8699701B2 (en) * 2010-12-01 2014-04-15 King Fahd University Method of performing XZ-elliptic curve cryptography for use with network security protocols
US9800418B2 (en) * 2015-05-26 2017-10-24 Infosec Global Inc. Signature protocol

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104852805A (zh) * 2015-05-11 2015-08-19 中国科学院软件研究所 一种抵抗基于格的错误攻击的sm2签名算法防护方法
CN104836670A (zh) * 2015-05-12 2015-08-12 中国科学院软件研究所 一种基于随机数未知的sm2签名算法安全性验证方法

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
CAO WEIQIONG ET AL: "Two Lattice-Based Differential Fault Attacks Against ECDSA withwNAF Algorithm", 10 March 2016, NETWORK AND PARALLEL COMPUTING; [LECTURE NOTES IN COMPUTER SCIENCE; LECT.NOTES COMPUTER], SPRINGER INTERNATIONAL PUBLISHING, CHAM, PAGE(S) 297 - 313, ISBN: 978-3-642-37634-4, ISSN: 0302-9743, XP047345040 *

Also Published As

Publication number Publication date
US10333718B2 (en) 2019-06-25
US20180026798A1 (en) 2018-01-25

Similar Documents

Publication Publication Date Title
IT201600076089A1 (it) Procedimento per la generazione di una firma digitale di un messaggio, corrispondenti unita&#39; di generazione, apparato elettronico e prodotto informatico
EP3035590B1 (en) Method and device for generating digital signature
Burnett et al. A biometric identity based signature scheme
JP4477678B2 (ja) 電子署名方式、電子署名プログラムおよび電子署名装置
Abidi et al. Implementation of elliptic curve digital signature algorithm (ECDSA)
EP3035587B1 (en) Hypersphere-based multivariable public key signature/verification system and method
US10225087B2 (en) Methods and systems for randomized message generation for cryptographic hash functions
US20030152218A1 (en) Cryptography method on elliptic curves
CN111262704A (zh) Sm9数字签名生成方法、装置、计算机设备和存储介质
Sako et al. Advances in Cryptology--ASIACRYPT 2013: 19th International Conference on the Theory and Application of Cryptology and Information, Bengaluru, India, December 1-5, 2013, Proceedings, Part II
CN108039947B (zh) 一种利用协处理器抗攻击的sm2签名方法
CN112887081A (zh) 基于sm2的签名验签方法、装置及系统
Shankar et al. Improved Multisignature Scheme for Authenticity of Digital Document in Digital Forensics Using Edward-Curve Digital Signature Algorithm
Chande et al. An improvement of a elliptic curve digital signature algorithm
CN110798313B (zh) 基于秘密动态共享的包含秘密的数的协同生成方法及系统
Tourloupis Hermite normal forms and its cryptographic applications
Orman Recent parables in cryptography
Cui et al. A new signcryption scheme based on elliptic curves
JP2018092010A (ja) 暗号化装置と暗号化方法、暗号化プログラム及び鍵生成装置と鍵生成方法、鍵生成プログラム
Murthy et al. Elliptic curve based signature method to control fake paper based certificates
Ng et al. A variant of Schnorr signature scheme with tight security reduction
CN106209376B (zh) 一种抵抗伪造签名攻击的多变量签名方法
Xu et al. Comment on an improved signature without using one-way hash functions
Srinate et al. A variant of the schnorr signature using an elliptic curve over a field of characteristic two
Geiselmann et al. A key substitution attack on SFLASH v 3