ITMI20110593A1 - Metodo e sistema di elaborazione crittografica di un messaggio. - Google Patents

Metodo e sistema di elaborazione crittografica di un messaggio. Download PDF

Info

Publication number
ITMI20110593A1
ITMI20110593A1 IT000593A ITMI20110593A ITMI20110593A1 IT MI20110593 A1 ITMI20110593 A1 IT MI20110593A1 IT 000593 A IT000593 A IT 000593A IT MI20110593 A ITMI20110593 A IT MI20110593A IT MI20110593 A1 ITMI20110593 A1 IT MI20110593A1
Authority
IT
Italy
Prior art keywords
communication unit
message
public key
mod
communication
Prior art date
Application number
IT000593A
Other languages
English (en)
Inventor
Massimo Bertaccini
Original Assignee
Massimo Bertaccini
Caldiroli Giuliano Paolo
Caporali Raphael Lorenzo
Vodafone Omnitel Nv
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 Massimo Bertaccini, Caldiroli Giuliano Paolo, Caporali Raphael Lorenzo, Vodafone Omnitel Nv filed Critical Massimo Bertaccini
Priority to IT000593A priority Critical patent/ITMI20110593A1/it
Priority to EP12722525.8A priority patent/EP2697930B1/en
Priority to PCT/IB2012/051756 priority patent/WO2012140573A1/en
Priority to US14/111,201 priority patent/US20140044261A1/en
Publication of ITMI20110593A1 publication Critical patent/ITMI20110593A1/it

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0442Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply asymmetric encryption, i.e. different keys for encryption and decryption
    • 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/0838Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these
    • H04L9/0841Key agreement, i.e. key establishment technique in which a shared key is derived by parties as a function of information contributed by, or associated with, each of these involving Diffie-Hellman or related key agreement protocols
    • 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/3013Public 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 discrete logarithm problem, e.g. ElGamal or Diffie-Hellman systems

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Information Transfer Between Computers (AREA)
  • Facsimile Transmission Control (AREA)

Description

DESCRIZIONE
La presente invenzione à ̈ relativa a un metodo ed un sistema di elaborazione crittografica di un messaggio.
In particolare, la presente invenzione trova vantaggiosa, ma non esclusiva applicazione nella comunicazione di un messaggio tra due unità di comunicazione, ad esempio costituite da due terminali, due nodi di una rete di comunicazione (peer-to-peer) o un dispositivo client e un server, le due unità di comunicazione comunicando tramite un canale di comunicazione, generalmente insicuro, facente parte di una rete di comunicazione.
Uno dei metodi più diffusi per instaurare una comunicazione crittografica prevede l'utilizzo di un algoritmo a chiave asimmetrica noto con l’acronimo RSA dalle iniziali dei suoi inventori (Rivest, Shamir, Adleman), nel quale sono generate una chiave pubblica, da utilizzare per criptare un messaggio in un crittogramma, e una chiave privata, da utilizzare per decrittare il crittogramma e risalire così al messaggio originale. Il metodo à ̈ descritto nel brevetto US 4.405.829. In sintesi, la chiave pubblica viene pubblicata dal destinatario del messaggio per essere utilizzata dal mittente del messaggio per criptare quest'ultimo, mentre la chiave privata à ̈ nota solo al destinatario ed à ̈ utilizzata per decrittare il crittogramma. La chiave pubblica e la chiave privata dell’algoritmo RSA vengono generate a partire dal prodotto di due numeri primi. La sicurezza del metodo RSA sta nel fatto che la chiave privata non può essere calcolata conoscendo soltanto la chiave pubblica, ma occorre conoscere i due numeri primi. L’unico modo per risalire alla chiave privata à ̈ risolvere il problema matematico della fattorizzazione in numeri primi della chiave pubblica e la risoluzione risulta una operazione “di forza bruta†, piuttosto complessa dal punto di vista computazionale. In generale, quanto più grandi sono i numeri primi, e quindi il loro prodotto, tanto più tempo richiede la ricerca della chiave privata e, quindi, tanto più à ̈ sicura la crittografia. Attualmente, per alcune applicazioni, chiavi di almeno 728 bit vengono utilizzate, in alcuni casi di 1024 bit o di un numero di bit maggiore.
La Richiedente ha osservato che l’incremento esponenziale della potenza di calcolo dei calcolatori più comuni, oltre alle nuove scoperte sul determinismo dei numeri primi, fanno sì che il metodo RSA sia potenzialmente sempre meno sicuro, a patto di non elevare a dismisura il numero di cifre dei due numeri primi. Tuttavia, questa apparente soluzione finisce per rendere troppo oneroso in termini computazionali il sistema di crittazione.
La domanda di brevetto italiano No. BO2009A000383, depositata il 12 giugno 2009, concerne un metodo per instaurare una comunicazione crittografica che comprende la generazione di una chiave “segreta†(K), condivisa tra l’unità mittente e l’unità destinataria, ottenuta per somma modulo p di termini ricavati elevando due rispettive chiavi private a e b alla potenza pari al numero p, dove p à ̈ un numero primo noto, e la crittazione dell’unità mittente di un messaggio M in un crittogramma C ottenuto dal prodotto modulare di M e K.
La Richiedente ha osservato che, sebbene il metodo descritto nella domanda No. BO2009A000383 possa presentare il vantaggio dell’utilizzo di un algoritmo di crittazione che richiede uno sforzo computazionale relativamente ridotto, esso si basa su un algoritmo che utilizza equazioni di crittazione significativamente diverse da quelle previste nell’algoritmo RSA.
La Richiedente ha notato che l’RSA à ̈ un algoritmo ampiamente diffuso in applicazioni che richiedono un elevato livello di sicurezza, quali applicazioni che gestiscono transazioni commerciali elettroniche, e l’implementazione di un sistema di crittazione come quello descritto nella domanda BO2009A000383 può non essere immediato e richiedere una modifica sostanziale del protocollo operativo di utilizzazione dell’algoritmo di crittazione.
La presente invenzione à ̈ relativa ad un metodo ed un sistema di elaborazione crittografica che utilizza uno schema di crittografia asimmetrica. La Richiedente ha capito che un metodo di elaborazione crittografica che utilizza l’elevamento a potenza in aritmetica modulare per calcolare il crittogramma e basa la propria efficacia sul problema del logaritmo discreto per la definizione dell’esponente del crittogramma può garantire una elevata sicurezza. Il logaritmo discreto à ̈ considerato in matematica un problema molto difficile da risolvere, in quanto a differenza del problema della fattorizzazione, presenta molte soluzioni possibili e, in particolare se si utilizzano equazioni modulari in modulo p, con p un numero intero sufficientemente grande, rende molto onerosa se non quasi impossibile la soluzione di equazioni modulari esponenziali.
Secondo un aspetto principale, il metodo della presente invenzione si basa su un algoritmo asimmetrico che utilizza chiavi private e chiavi pubbliche e ottiene la propria robustezza mediante l’applicazione di equazioni modulari esponenziali, che sono funzioni iniettive (“one-way†), per la definizione degli esponenti delle equazioni di crittazione (e decrittazione).
Secondo un aspetto, la presente invenzione à ̈ diretta ad un metodo di elaborazione crittografica di un messaggio, il metodo comprendendo:
stabilire una comunicazione tra una prima unità di comunicazione ed una seconda unità di comunicazione in un dominio di comunicazione che comprende un canale di comunicazione;
provvedere, da parte della prima unità di comunicazione, un messaggio T; definire, da parte della seconda unità di comunicazione, un numero intero a quale prima chiave privata ed un numero KAquale prima chiave pubblica, la prima chiave pubblica essendo un numero determinato sulla base di un numero intero primo p, un numero intero primo generatore g e della prima chiave privata;
rendere disponibile alla prima unità di comunicazione la prima chiave pubblica KA; condividere tra la prima unità e la seconda unità di comunicazione il numero primo p e il numero generatore g;
definire, da parte della prima unità di comunicazione, un numero intero b quale seconda chiave privata ed un numero KBquale una seconda chiave pubblica, la seconda chiave pubblica essendo un numero determinato sulla base del numero primo p, del numero generatore g e della seconda chiave privata;
determinare, da parte della prima unità di comunicazione, un numero esponente di crittazione x mediante l’equazione modulare
{[KA<b>+ eB] (mod p)}* x ≡ 1 mod (p-1),
dove eBà ̈ un parametro selezionato nel gruppo dei numeri interi in modo tale che sia verificata la coprimità tra [KA<b>+ eB] (mod p) e (p-1);
codificare il messaggio T, dove codificare comprende suddividere il messaggio T in almeno un blocco di messaggio M, e
crittare, da parte della prima unità di comunicazione, l’almeno un blocco di messaggio M ottenendo almeno un crittogramma C mediante l’equazione modulare
C ≡ M<x>(mod p).
Preferibilmente, il metodo comprende inoltre, successivamente a crittare l’almeno un blocco di messaggio M:
rendere disponibile alla seconda unità di comunicazione la seconda chiave pubblica KBe il parametro eB;
trasmettere l’almeno un crittogramma C alla seconda unità di comunicazione;
determinare, da parte della seconda unità di comunicazione, un numero esponente di decrittazione y={[KB<a>+ eB] (mod p)}, e
decrittare l’almeno un crittogramma C ottenendo almeno un blocco M' di messaggio mediante l’equazione modulare
M' ≡ C<y>(mod p).
Preferibilmente, il metodo comprende inoltre, successivamente a decrittare l’almeno un crittogramma C, decodificare l’almeno un blocco di messaggio M' ottenuto dalla decrittazione del crittogramma C, nel quale decodificare comprende ricomporre l’almeno un blocco di messaggio M' in modo da ottenere un messaggio T'. Il messaggio T' corrisponde al messaggio T.
Preferibilmente, il metodo à ̈ un metodo di realizzazione di una comunicazione crittografica tra la prima unità e la seconda unità di comunicazione.
Preferibilmente, definire un numero intero b quale seconda chiave privata comprende selezionare, da parte della prima unità di comunicazione, un numero intero coprimo con (p-1).
In alcune forme di realizzazione preferite, definire un numero b quale seconda chiave privata comprende:
a) selezionare, da parte della prima unità di comunicazione, un primo numero intero quale seconda chiave privata;
b) determinare se il primo numero intero à ̈ coprimo con (p-1);
c) in caso il risultato del determinare à ̈ negativo, selezionare, da parte della prima unità di comunicazione, un secondo numero intero;
d) determinare se il secondo numero intero à ̈ coprimo con (p-1), e
e) in caso il risultato del determinare à ̈ negativo, ripetere le fasi c) e d) fintanto che il risultato del determinare à ̈ positivo.
Preferibilmente, definire un numero a quale prima chiave privata comprende selezionare, da parte della seconda unità di comunicazione, un numero intero coprimo con (p-1).
In alcune forme di realizzazione preferite, definire un numero a quale prima chiave privata comprende:
f) selezionare, da parte della seconda unità di comunicazione, un primo numero intero quale prima chiave privata;
g) determinare se il primo numero intero à ̈ coprimo con (p-1);
h) in caso il risultato del determinare à ̈ negativo, selezionare, da parte della seconda unità di comunicazione, un secondo numero intero;
l) determinare se il secondo numero intero à ̈ coprimo con (p-1), e
m) in caso il risultato del determinare à ̈ negativo, ripetere le fasi h) e l) fintanto che il risultato del determinare à ̈ positivo.
Preferibilmente, l’almeno un blocco di messaggio M ha lunghezza k minore di p.
Preferibilmente, il numero primo generatore g à ̈ diverso dal numero primo p.
Preferibilmente, definire, da parte della seconda unità di comunicazione, una prima chiave pubblica KAsulla base di un numero primo p, un numero primo generatore g e di un numero a comprende generare un numero primo p e un numero primo g.
Preferibilmente, definire una prima chiave pubblica comprende calcolare il numero KAsecondo l’equazione modulare KA≡ g<a>(mod p).
Preferibilmente, definire una seconda chiave pubblica comprende calcolare il numero KBsecondo l’equazione modulare KB≡ g<b>(mod p).
In alcune forme di realizzazione preferite, rendere disponibile la prima chiave pubblica KAe condividere il numero primo p e il numero primo generatore g comprende trasmettere, da parte della seconda unità di comunicazione attraverso il canale di comunicazione, la prima chiave pubblica, il numero primo p e il numero generatore g alla prima unità di comunicazione.
Preferibilmente, rendere disponibile la seconda chiave pubblica KBe il parametro eBcomprende trasmettere, attraverso il canale di comunicazione, da parte della prima unità di comunicazione, la seconda chiave pubblica e il parametro eB.
Preferibilmente, il dominio di comunicazione à ̈ una rete di comunicazione.
Secondo un ulteriore aspetto, la presente invenzione à ̈ relativa ad un sistema di elaborazione crittografica di un messaggio in un dominio di comunicazione che comprende:
una prima unità di comunicazione che comprende un primo dispositivo cifratore, un primo dispositivo codificatore e un primo modulo di ricetrasmissione;
una seconda unità di comunicazione che comprende un primo dispositivo decifratore, un primo dispositivo decodificatore e un secondo modulo di ricetrasmissione, e
un canale di comunicazione atto a collegare la prima unità di comunicazione con la seconda unità di comunicazione per mezzo del primo e del secondo modulo di ricetrasmissione, nel quale
la prima unità di comunicazione à ̈ atta a provvedere un messaggio T;
la seconda unità di comunicazione à ̈ atta a definire un numero intero a quale prima chiave privata e un numero KAquale prima chiave pubblica, la prima chiave pubblica essendo un numero determinato sulla base di un numero primo p, di un numero primo generatore g e della prima chiave privata;
il secondo modulo di ricetrasmissione à ̈ atto a trasmettere attraverso il canale di comunicazione la prima chiave pubblica KAalla prima unità di comunicazione, la prima e la seconda unità di comunicazione essendo atte a condividere il numero primo p e il numero primo generatore g attraverso il canale di comunicazione;
la prima unità di comunicazione à ̈ atta a definire un numero intero b quale seconda chiave privata ed un numero KBquale seconda chiave pubblica, la seconda chiave pubblica essendo un numero determinato sulla base del numero primo p, il numero primo generatore g e della seconda chiave privata;
il primo dispositivo cifratore à ̈ atto a determinare un numero esponente di crittazione x mediante l’equazione modulare
{[KA<b>+ eB] (mod p)}* x ≡ 1 mod (p-1),
dove eBà ̈ un parametro selezionato nel gruppo dei numeri interi in modo tale che sia verificata la coprimità tra [KA<b>+ eB] (mod p) e (p-1);
il primo dispositivo codificatore à ̈ atto a codificare il messaggio T, dove codificare comprende suddividere il messaggio T in almeno un blocco di messaggio M e
il primo dispositivo cifratore à ̈ atto a crittare l’almeno un blocco di messaggio M ottenendo almeno un crittogramma C mediante l’equazione modulare
C ≡ M<x>(mod p).
Preferibilmente, il primo modulo di ricetrasmissione à ̈ atto a trasmettere alla seconda unità di comunicazione l’almeno un crittogramma C, la seconda chiave pubblica KBe il parametro eB, e
il primo dispositivo decifratore à ̈ atto a determinare un numero esponente di decrittazione y={[KB<a>+ eB] (mod p)}, e a decrittare l’almeno un crittogramma C ottenendo almeno un blocco di messaggio M' mediante l’equazione modulare
M' ≡ C<y>(mod p).
Ulteriori caratteristiche e vantaggi dell’invenzione risulteranno dalla seguente descrizione dettagliata fatta in riferimento ad esempi di realizzazione dell’invenzione dati a titolo non limitativo e alle allegate figure in cui:
- la figura 1 illustra uno schema a blocchi di un sistema di comunicazione implementante il metodo di elaborazione crittografica di un messaggio tra una prima unità di comunicazione ed una seconda unità di comunicazione, in accordo con una forma realizzativa della presente invenzione; e
- la figura 2 illustra un diagramma di flusso che descrive una forma realizzativa del metodo di elaborazione crittografica di un messaggio secondo la presente invenzione.
Nella figura 1 un sistema di comunicazione atto ad effettuare una comunicazione crittografica à ̈ genericamente indicato, nel suo complesso, con il numero di riferimento 1. Il sistema 1 comprende almeno una prima unità di comunicazione 2 ed una seconda unità di comunicazione 3. Ciascuna unità di comunicazione 2 e 3 comprende un rispettivo modulo di ricetrasmissione 9 e 10 atto inviare in e/o ricevere dati a/da un canale di comunicazione 4 in grado di collegare i rispettivi moduli di ricetrasmissione 9 e 10 tra loro. I dati vengono trasmessi in un segnale avente formato richiesto dal canale di comunicazione. In alcune forme di realizzazione, ciascuna unità di comunicazione comprende o à ̈ costituita da un terminale o da un nodo per una rete di comunicazione. Il canale di comunicazione à ̈ parte di una rete di comunicazione più ampia (non illustrata). Ad esempio, la prima e la seconda unità di comunicazione sono due computer (e.g. due personal computer o una coppia client-server), la rete di comunicazione à ̈ la rete Internet e il canale di comunicazione 4 à ̈ definito dalla connessione che si instaura tra i due computer quando essi sono collegati alla rete Internet. Come ulteriore esempio, la rete di comunicazione à ̈ una rete cellulare e ciascuna unità di comunicazione comprende un terminale mobile.
Si consideri il caso che l’unità di comunicazione 2 sia l’unità mittente che vuole inviare un messaggio T all’unità di comunicazione 3 (unità destinataria) mediante il canale di comunicazione 4. Nel presente contesto, il termine messaggio, indicato anche con “plaintext†, indica genericamente dati in un qualsiasi formato (testo, numerico, alpha-numerico, etc.), quale ad esempio dati codificati secondo uno standard Unicode.
L’unità di comunicazione 2 comprende un dispositivo codificatore 11 atto a codificare, secondo una codifica convenzionale, il messaggio T da trasmettere. La codifica comprende la suddivisione del messaggio T in uno o più blocchi di messaggio M. Il dispositivo codificatore 11 à ̈ connesso ad un dispositivo cifratore 5 atto a crittare ciascun blocco di messaggio M in un rispettivo crittogramma (messaggio cifrato) C. Senza perdere in generalità, ciascun blocco di messaggio M à ̈ rappresentato da un numero intero e ciascun rispettivo crittogramma C à ̈ rappresentato da un rispettivo numero intero.
Il dispositivo cifratore 5 della unità di comunicazione 2 à ̈ collegato al modulo di ricetrasmissione 9 che à ̈ atto ad essere collegato, tramite il canale di comunicazione 4, ad un dispositivo decifratore 8 compreso nell’unità di comunicazione 3. In particolare, il crittogramma C prodotto dal dispositivo cifratore 5 à ̈ trasmesso all’unità di comunicazione 3 che lo riceve tramite il modulo di ricetrasmissione 10. Quest’ultimo à ̈ collegato al dispositivo decifratore 8.
Il dispositivo decifratore 8 riceve dal modulo di ricetrasmissione 10 il crittogramma C e lo decifra producendo uno o più blocchi M' di messaggio decifrato, ciascun blocco M' corrispondendo ad un rispettivo blocco di messaggio M originale. I blocchi di messaggio M' sono successivamente decodificati da un dispositivo decodificatore 14 connesso al dispositivo decifratore 8, atto a decodificare, secondo la codifica convenzionale utilizzata dal blocco codificatore 11 dell’unità 2, l’uno o più blocchi di messaggio M' in un messaggio T' che corrisponde al messaggio T originale.
Nel caso di trasmissione bidirezionale di dati tra le unità di comunicazione 2 e 3, ciascuna unità 2, 3 comprende un rispettivo dispositivo cifratore 5, 7 e un rispettivo dispositivo decifratore 6, 8. Nel caso di trasmissione bidirezionale, nella quale l’unità di comunicazione 3 sia l’unità mittente, il dispositivo cifratore 7 della unità di comunicazione 3 à ̈ atto a essere accoppiato, tramite il canale di comunicazione 4, al dispositivo decifratore 6 dell’unità di comunicazione 2.
Secondo alcune forme di realizzazione preferite, ciascuna unità di comunicazione 2, 3 comprende un rispettivo dispositivo codificatore 11, 13 atto a codificare il messaggio da inviare e un rispettivo dispositivo decodificatore 12, 14 atto a decodificare il messaggio ricevuto e decifrato.
La figura 1 indica il flusso “inverso†nel quale la seconda unità di comunicazione 3 à ̈ l’unità mittente che vuole inviare un messaggio R alla prima unità di comunicazione 2, in questo caso unità destinataria. Il messaggio R à ̈ codificato dal dispositivo codificatore 13, inviato al dispositivo cifratore 7 che lo critta e lo trasmette, per mezzo del modulo di ricetrasmissione 10 e attraverso il canale di comunicazione 4 al modulo di ricetrasmissione 9 della prima unità di comunicazione 2. Il messaggio crittato ricevuto dal modulo di ricetrasmissione 9 à ̈ trasmesso al dispositivo decifratore 6 che lo decifra e successivamente decodificato mediante il dispositivo decodificatore 12 in modo da ottenere un messaggio R' che corrisponde al messaggio R originale.
E’ da intendersi che sebbene lo schema a blocchi della figura 1 indichi il dispositivo cifratore e il dispositivo decifratore come unità distinte, ciascuna unità può comprendere un singolo dispositivo cifratore/decifratore, atto sia a cifrare che a decifrare un messaggio, ad esempio implementato con un programma di software installato nell’unità di comunicazione.
Il dispositivo codificatore della prima o della seconda unità di comunicazione può essere parte del dispositivo cifratore della rispettiva unità. Il dispositivo decodificatore della prima o della seconda unità di comunicazione può essere parte del dispositivo decifratore della rispettiva unità.
Il diagramma di flusso della figura 2 descrive una forma di realizzazione del metodo di elaborazione crittografica di un messaggio. In particolare il diagramma descrive un metodo di realizzazione di una comunicazione crittografica che comprende la crittazione di un messaggio T da parte di una prima unità di comunicazione e la trasmissione di almeno un messaggio crittato (crittogramma) ad una seconda unità di comunicazione. Per una migliore comprensione dell’invenzione e senza scopo limitativo, con particolare riferimento alla forma di realizzazione della figura 1, qui di seguito la unità di comunicazione 2 à ̈ denominata unità mittente e la unità di comunicazione 3 à ̈ denominata unità destinataria. Il diagramma di flusso della figura 2 à ̈ ripartito in due flussi, l’uno relativo alle fasi effettuate dalla unità mittente, l’altro relativo alle fasi effettuate dalla unità destinataria. E’ da intendersi che nel caso in cui la trasmissione del messaggio T fosse nel senso opposto, le unità di comunicazione 2 e 3 si scambierebbero i ruoli di mittente e destinatario senza per questo variare il flusso della comunicazione crittografica.
Si considerino due utenti A e B che vogliono scambiarsi dati attraverso un canale di comunicazione. Nell’esempio di figura 2, l’utente B, dall’unità mittente, vuole trasmettere un messaggio T all’utente A all’unità destinataria (fase 100).
L’utente A genera un primo numero primo intero p e un secondo numero primo intero g, quest’ultimo indicato come numero generatore, e seleziona un numero intero a che costituisce una chiave privata (fase 101). I numeri g e p possono essere generati da un dispositivo generatore di numeri primi, per sé noto, mentre il numero a à ̈ selezionato dall’utente A. In una forma realizzativa, l’unità destinataria comprende un dispositivo generatore di numeri primi, ad esempio un algoritmo compreso in una libreria commerciale oppure una libreria sviluppata “embedded†nel codice dell’algoritmo di elaborazione crittografica. Ad esempio, il dispositivo generatore di numeri primi può essere parte del dispositivo cifratore compreso nell’unità destinataria oppure essere connesso a quest’ultimo.
I numeri g e p, che essendo primi sono coprimi tra loro, sono diversi tra loro. Nel caso di generazione casuale di numeri primi da parte dell’unità di comunicazione destinataria, la diversità può essere verificata in una fase successiva alla generazione dei numeri g e p. In una forma realizzativa, il metodo comprende: generare un numero intero primo p e un numero intero primo g; determinare se i numeri sono diversi; se la fase di determinare ha come risultato g=p (i.e. condizione di diversità non verificata), generare un nuovo numero g e/o generare un nuovo numero p e ripetere la fase di determinare la diversità tra g e p e la fase di generazione di un nuovo numero p e/o un numero g fino a che à ̈ verificata la diversità tra i numeri g e p.
In una diversa forma realizzativa, l’unità destinataria comprende un numero generatore di numeri primi atto a generare un primo numero primo (p o g) e un secondo numero primo (g o p) diverso dal primo numero primo.
Secondo alcune forme di realizzazione preferite, p à ̈ un numero intero formato da almeno 30 cifre. Preferibilmente, g à ̈ un numero intero formato da almeno 7 cifre. Il numero a à ̈ preferibilmente un numero intero formato da almeno 6 cifre.
Le seguenti equazioni matematiche sono espresse in aritmetica modulare. A partire dai numeri a, g e p l’utente A calcola una chiave pubblica, KA, come funzione esponenziale modulare definita da:
KA≡ g<a>(mod p), (1)
ovvero la chiave pubblica dell’utente A à ̈ definita da una equazione modulare, in modulo p, esponenziale che ha come esponente la chiave privata a dello stesso utente. Al fine di effettuare una comunicazione crittografica non facilmente intercettabile, la chiave pubblica KAà ̈ un numero intero diverso da zero e diverso da 1. Se la condizione g≠p à ̈ verificata, KAà ̈ diverso da zero. Affinché KArisulti dall’equazione (1) essere diverso da 1, il numero intero a selezionato quale chiave privata deve essere coprimo con (p-1).
Secondo alcune forme di realizzazione, il numero a à ̈ selezionato in modo da essere coprimo con (p-1). Nel caso questa condizione non venga soddisfatta, il sistema di elaborazione crittografica può essere configurato in modo tale da rigettare il numero a e indicare all’utente A che deve essere selezionato un nuovo numero a quale chiave privata.
Secondo una forma di realizzazione preferita, il metodo di elaborazione crittografica comprende, successivamente alla generazione dei numeri p e g e alla selezione del numero a, e precedentemente alla determinazione della chiave pubblica KA, un processo di verifica (non mostrato in figura 2) che il numero a sia coprimo con (p-1). In una forma realizzativa, il metodo comprende: selezionare, da parte dell’unità destinataria, un primo numero intero a quale chiave privata; determinare se il primo numero a à ̈ coprimo con (p-1); se il risultato del determinare à ̈ negativo, selezionare un secondo numero intero quale chiave privata, e ripetere la fase di determinazione e la fase di selezione di un numero intero fino a che il risultato del determinare à ̈ positivo (i.e. condizione di coprimità tra a e (p-1) verificata).
La unità destinataria rende disponibile, e.g. nel canale di comunicazione 4, la chiave pubblica KA, determinata secondo l’equazione (1), e i numeri p e g (fase 102). La chiave privata a à ̈ segreta, vale a dire à ̈ nota solo all’utente A. In una forma di realizzazione, l’utente A trasmette i numeri KA, p e g attraverso il canale di comunicazione.
In una ulteriore forma realizzativa (non mostrata in figura) l’utente A e l’utente B si accordano sull’utilizzo di un numero p e un numero g prima dell’elaborazione crittografica di un messaggio, in particolare prima dell’instaurazione di una comunicazione crittografica.
Nel presente contesto si indica che i numeri p e g sono condivisi tra l’utente A e l’utente B.
Quando l’utente B desidera trasmettere il messaggio T alla unità destinataria 3 (fase 100), l’unità mittente seleziona un numero intero b quale propria chiave privata segreta, vale a dire nota solo all’utente B (fase 103). Il numero b à ̈ preferibilmente un numero intero formato da almeno 6 cifre. La chiave privata b à ̈ un numero intero selezionato in modo tale che rispetti la condizione di coprimità con il numero (p-1). Nel caso questa condizione non venga soddisfatta, il sistema di crittazione può essere configurato in modo tale da rigettare il numero b e indicare all’utente B che deve essere selezionato un nuovo numero b quale chiave privata.
In una forma realizzativa, il metodo comprende, successivamente alla fase di generazione del numero b (fase 103), un processo di verifica (non mostrato in figura 2) della condizione di coprimità tra i numeri b e (p-1) che comprende: selezionare, da parte dell’unità mittente, un primo numero intero b quale chiave privata; determinare se il primo numero b à ̈ coprimo con (p-1); se il risultato del determinare di verifica à ̈ negativo, selezionare un secondo numero intero quale chiave privata, e ripetere la fase di verifica e la fase di selezione di un numero intero quale chiave privata fino a che il risultato del determinare à ̈ positivo (i.e. condizione di coprimità tra b e (p-1) verificata).
A partire dal numero generatore g e il numero p resi disponibili dall’utente A (fase 101), l’utente B determina una chiave pubblica KB(fase 104) secondo la seguente equazione modulare esponenziale:
KB≡ g<b>(mod p). (2)
Nell’equazione (2), il numero esponente b à ̈ la chiave privata dell’utente B.
Al fine di effettuare una comunicazione crittografica non facilmente intercettabile, la chiave pubblica KBdeve essere un numero diverso da zero e diverso da 1. Se g à ̈ diverso da p, la chiave pubblica KBà ̈ diversa da zero. Se b à ̈ un numero coprimo a (p-1), la chiave pubblica KBà ̈ diversa da 1.
Se la coprimità tra a e (p-1) e/o tra b e (p-1) e/o la diversità tra i numeri g e p non à ̈ verificata nelle fasi precedenti alla fase di determinazione della chiave pubblica KA(fase 102) e/o alla fase di determinazione della chiave pubblica KB(fase 104), preferibilmente, successivamente alle fasi di determinazione di KAe KB, il metodo comprende una fase di verifica (non mostrata in figura 2) che, a partire dai numeri a, p e g, la chiave pubblica KAnon sia nulla o uguale a 1 e/o, a partire dai numeri b, p e g, la chiave pubblica KBnon sia nulla o uguale a 1.
In una forma realizzativa, il metodo comprende, successivamente a selezionare, da parte dell’utente B, un numero intero b quale chiave privata, iniziare un primo processo di verifica per verificare che la chiave pubblica KBdefinita dall’unità mittente non sia uguale a 1 che comprende:
i) definire una chiave pubblica KBsulla base dei numeri p, g e b;
ii) determinare se la chiave pubblica KBÃ ̈ uguale a 1;
iii) se la chiave pubblica KBÃ ̈ determinata essere uguale a 1, selezionare un nuovo numero intero quale chiave privata;
iv) definire una nuova chiave pubblica K'B;
v) determinare se la nuova chiave pubblica K'Bà ̈ uguale a 1 e, in caso il risultato del determinare sia positivo, ripetere le fasi iii) e iv) fintanto che la chiave pubblica à ̈ determinata essere diversa da 1.
In una forma realizzativa, il metodo comprende iniziare un secondo processo di verifica, successivamente alle fasi di definizione di KAe KB(fasi 102 e 104), per verificare che sia la prima chiave pubblica KAche la seconda chiave pubblica KBsiano diverse da zero che comprende:
vi) determinare se almeno una delle chiavi pubbliche KAe KBÃ ̈ nulla;
vii) in caso almeno una delle chiavi pubbliche KAe KBÃ ̈ determinata essere nulla, selezionare un nuovo numero primo p e/o un nuovo numero primo g;
viii) definire almeno un nuovo numero quale almeno una delle chiavi pubbliche; ix) determinare se l’almeno una nuova chiave pubblica à ̈ nulla e, in caso positivo, ripetere le fasi vii) e viii) fino a che l’almeno una chiave pubblica à ̈ determinata essere diversa da zero.
In una forma realizzativa, il metodo comprende inoltre, successivamente a selezionare, da parte dell’utente A, un numero intero a quale chiave privata, iniziare un primo processo di verifica per verificare che la chiave pubblica KAdefinita dall’unità destinataria non sia uguale a 1 che comprende:
x) definire una chiave pubblica KAsulla base dei numeri p, g e a;
xi) determinare se la chiave pubblica KAÃ ̈ uguale a 1;
xii) se la chiave pubblica à ̈ determinata essere uguale a 1, selezionare un nuovo numero intero quale chiave privata;
xiii) definire una nuova chiave pubblica K'A;
xiv) determinare se la nuova chiave pubblica K'Aà ̈ uguale a 1 e, in caso il risultato del determinare sia positivo, ripetere le fasi xii) e xiii) fino a che la seconda chiave pubblica à ̈ determinata essere diversa da 1.
Una volta determinata la chiave pubblica KB, l’utente B rende disponibile all’utente A la sua chiave pubblica KB, ad esempio trasmettendola all’unità destinataria 3 attraverso il canale di comunicazione 4, successivamente alla fase 104.
Se la lunghezza del messaggio T à ̈ maggiore del valore di p, à ̈ necessario codificare il messaggio T per garantire l’identità del messaggio T con il messaggio T' ottenuto dalla decifratura del crittogramma ricevuto dall’unità destinataria.
La fase di codifica del messaggio T comprende suddividere il messaggio T in almeno un blocco (“token†) di messaggio M, dove l’almeno un blocco M ha lunghezza pari ad un numero intero k inferiore al numero intero p, ovvero contiene dati con numero k<p di bit. In alcune forme di realizzazione, la fase di codifica comprende suddividere il messaggio T in una pluralità di blocchi M di messaggio, nel quale ciascun blocco ha la stessa lunghezza k. In una forma di realizzazione, se la lunghezza totale dei dati contenuti nel messaggio T non à ̈ un multiplo del numero p, la fase di codifica comprende codificare il messaggio T utilizzando un protocollo reversibile per sé noto nel quale à ̈ aggiunto un “padding†, preferibilmente casuale, al messaggio T selezionato in modo tale che il messaggio T sia divisibile in un numero intero di blocchi di messaggio, preferibilmente ma non necessariamente della stessa lunghezza.
Per esempio, il messaggio da trasmettere à ̈ codificato secondo il codice ASCII in modo che ciascun blocco di messaggio M sia rappresentato da un particolare codice decimale compreso nell’insieme dei codici decimali della tabella ASCII.
Se la lunghezza del messaggio T non à ̈ maggiore del numero p, il messaggio T può essere suddiviso in un blocco M di messaggio, quindi T corrispondere ad M.
Senza perdere in generalità, nel seguito si considera il procedimento di cifratura di un singolo blocco di messaggio M, tenendo conto che lo stesso procedimento à ̈ utilizzato per ciascun blocco di messaggio M, nel caso il messaggio originale T sia codificato in una pluralità di blocchi M.
In una forma realizzativa, la fase 105 precede la fase 104 oppure precede la fase 103. A partire da KAe p, l’utente B calcola un numero x, indicato come esponente di crittazione, che à ̈ determinato da una delle soluzioni all'equazione modulare:
{KA<b>(mod p)}* x ≡ 1 mod (p-1). (3)
Il simbolo “*†nell’equazione indica il prodotto tra i fattori {KA<b>(mod p)} e x. Si noti che nell’equazione (3) la chiave pubblica dell’utente A à ̈ elevata, e.g. dal dispositivo cifratore dell’unità mittente, alla potenza della chiave privata dell’utente B.
E’ possibile che in alcuni casi, che dipendono principalmente dal numero b selezionato quale chiave privata dall’utente B, non sia possibile risolvere l’equazione (3), vale a dire non sia possibile ricavare il numero x che soddisfa la condizione di coprimità tra KA<b>(mod p) e (p-1). Al fine di risolvere l’equazione, indipendentemente dalla scelta di b, la Richiedente ha capito che à ̈ preferibile introdurre un parametro nell’equazione (3) allo scopo che l’equazione sia sempre verificata, i.e. esista sempre almeno una soluzione. Preferibilmente, all’equazione (3) à ̈ inserito un parametro, indicato come parametro di iterazione eB. Secondo le forme di realizzazione preferite, il numero di crittazione x à ̈ una delle soluzioni della seguente equazione:
{[KA<b>+ eB] (mod p)}* x ≡ 1 mod (p-1), (4)
dove eBà ̈ il parametro di iterazione valido per ottenere la condizione di coprimità tra [KA<b>+ eB] (mod p) e (p-1) in modo tale che l’equazione (4) sia risolvibile.
Le soluzioni dell'equazione modulare (4) sono in mod (p-1), ovvero deve essere soddisfatta la condizione di congruenza modulo (p-1) tra l’inverso di x e il numero [KA<b>+eB], quest’ultimo essendo stato calcolato in modulo p. La fase di determinazione dell’esponente di crittazione à ̈ indicata in figura 2 con 106. In una forma realizzativa, la fase 106 precede la fase 105.
Secondo le forme preferite di realizzazione, il parametro di iterazione à ̈ un numero intero selezionato nel gruppo dei numeri interi Z={0, ±1, ±2, ±3, …}. Si noti che eBpuò risultare uguale a zero, nel caso in cui {KA<b>(mod p)} e (p-1) risultino già di per sé coprimi e in questo caso l’equazione (4) risulta uguale all’equazione (3). E’ possibile che più di un numero selezionato all’interno del gruppo dei numeri interi Z risolva l’equazione (4). In alcuni casi esiste una pluralità di parametri di iterazione che risolve l’equazione (4). In particolare, le soluzioni dell’equazione (4) possono essere infinite oppure esistere un numero molto grande di soluzioni. Il dispositivo cifratore può essere configurato in modo da cercare il più piccolo numero x che soddisfa all’equazione (4), i.e. il più piccolo multiplo intero di (p-1) che sia uguale alla differenza tra il prodotto {[KA<b>+ eB](mod p)}*x e 1.
Preferibilmente, il metodo di realizzare una comunicazione crittografica comprende un processo di iterazione che termina al verificarsi della condizione [KA<b>+ eB] (mod p) coprimo con (p-1).
In una forma di realizzazione, il metodo comprende: selezionare un primo numero intero eBquale parametro di iterazione; verificare la condizione di coprimità tra {[KA<b>+ eB](mod p)} e (p-1); se il risultato della fase di verifica à ̈ negativo (i.e. condizione di coprimità non soddisfatta), selezionare un secondo numero intero e<'>
Bquale parametro di iterazione; verificare che il secondo numero intero e<'>
Bsoddisfi l’equazione (4); ripetere la fase di selezione di un numero intero quale parametro di iterazione e di verifica della condizione di coprimità fino a che la fase di verifica à ̈ positiva, dunque risulti che l'equazione (4) à ̈ risolvibile.
In una ulteriore forma di realizzazione, il metodo comprende: selezionare un primo numero intero eBquale parametro di iterazione; verificare che l’equazione (4) sia risolvibile per il primo numero intero eB; in caso la fase di verifica sia negativa, selezionare un secondo numero intero e<'>
Bquale parametro di iterazione, e ripetere la fase di selezione di un numero intero quale parametro di iterazione e di verifica fino a che l’equazione (4) risulta risolvibile.
Secondo una forma realizzativa, i numeri interi diversi da zero sono selezionati in sequenza numerica, e.g. sequenza numerica di numeri uguale a zero o positivi {0, 1, 2, 3, …}.
Secondo una ulteriore forma realizzativa, il metodo comprende selezionare un primo parametro eB, selezionato in maniera casuale all’interno di un sotto-insieme dell’insieme dei numeri interi. Il sotto-insieme à ̈ preferibilmente sufficientemente grande. Ad esempio, se si indica con N il numero di blocchi M di messaggio nei quali à ̈ suddiviso il messaggio T, tale insieme à ̈ dato dall’intervallo numerico uguale a (1, N*10). In tale forma realizzativa, il metodo comprende: definire un sotto-insieme di numeri interi; selezionare un primo numero quale parametro di iterazione all’interno del sotto-insieme; verificare che il primo numero soddisfi l'equazione (4); in caso il risultato della verifica sia negativo, selezionare un secondo numero quale parametro di iterazione all’interno del sotto-insieme in maniera casuale oppure a partire dal primo parametro. Ad esempio, il secondo numero à ̈ selezionato in modo tale che e<'>
B=eB+1. Il metodo comprende inoltre, ripetere la fase di verifica e, in caso il risultato della verifica sia negativo, ripetere la fase di selezione di un numero quale parametro di iterazione e la fase di verifica fintanto che la fase di verifica ha risultato positivo, ovvero l’equazione (4) à ̈ risolvibile. Ad esempio, ad ogni iterazione, la fase di selezione comprende selezionare un nuovo parametro aumentando di una unità il numero selezionato nella fase precedente, i.e. e<''>
B=e<'>
B+1.
Ad esempio, se il messaggio originale T à ̈ stato suddiviso in fase di codifica in 100 messaggi M, per determinare il numero esponente di crittazione x, verrà selezionato un numero intero casuale quale parametro di iterazione in un sotto-insieme di numeri interi nell'intervallo (1, 1000), ad esempio selezionato casualmente tramite un algoritmo che seleziona pseudo-random nell’intervallo determinato.
Ad esempio, il numero selezionato casualmente quale primo parametro di iterazione risulta essere uguale a 134 e con tale numero l'equazione (4) non risulta verificata. Si procede quindi ad aumentare il numero selezionato di un'unità, per cui alla seguente iterazione verrà utilizzato un parametro di iterazione uguale a 135, e così via fino a che non si trova un numero intero quale parametro di iterazione in grado di soddisfare l'equazione (4). Tale procedimento può essere preferito in alcune forme di realizzazione poiché contribuisce ad aumentare la casualità del crittogramma.
Secondo una forma di realizzazione, il messaggio T à ̈ suddiviso in una pluralità di blocchi M di messaggio e, per ciascun blocco M, à ̈ risolta l’equazione (4) selezionando in maniera casuale il parametro eBall’interno di un sotto-insieme dell’insieme dei numeri interi e attuare una fase di verifica che il parametro selezionato risolva l’equazione (4). In questo modo, si crea un'indipendenza tra i blocchi della pluralità di blocchi di messaggio. Ad esempio, crittando un primo blocco di messaggio M1 si ottiene un crittogramma C e crittando un secondo blocco di messaggio M2, dove M1 à ̈ uguale a M2, si ottiene un crittogramma C' diverso dal crittogramma C relativo al messaggio M1.
Una volta determinato l’esponente di crittazione x secondo l’equazione (4), l’utente B calcola il crittogramma (“ciphertext†) C che forma il messaggio cifrato in base all’equazione (fase 107):
C ≡ M<x>(mod p) (5)
Il crittogramma C à ̈ congruente modulo p al messaggio M elevato alla potenza discreta x. In altre parole, il numero x à ̈ il logaritmo discreto modulo p del numero C in base M. Si nota che le equazioni modulari (1), (4) e (5) che portano alla definizione del crittogramma C sono tutte funzioni iniettive (“one way†) per le quali l’inverso di ciascuna equazione à ̈ “impossibile†da calcolare senza la conoscenza dell’esponente. In altre parole, in pratica non si conosce attualmente un algoritmo che, in una quantità di tempo ragionevole, riesca a ricavare il numero b e quindi risalire a {KA<b>(mod p)} e così al numero x, sebbene p, g e KApossano essere pubblicamente noti come lo sono per gli utenti A e B.
Successivamente (fase 108), il crittogramma C à ̈ trasmesso all’unità destinataria, eventualmente assieme alla chiave pubblica KBe al parametro eB, se questi ultimi non sono già stati resi disponibili all’utente A successivamente alla fase 104. La trasmissione del crittogramma C dall’utente B (unità mittente 2) all’utente A (unità destinataria 3) à ̈ indicata con la freccia tratteggiata 109.
Ricevuti il crittogramma C, la chiave pubblica KBe il parametro di iterazione eB, utilizzando KBe eB, l’utente A determina un numero M' (fase 110) secondo la seguente equazione, inversa all’equazione (5):
M' ≡ C<y>(mod p) (6)
dove y à ̈ il numero esponente di decrittazione uguale a {[KB<a>+ eB] (mod p)}, ovvero dato da
y={[KB<a>+ eB] (mod p)}. (7)
Nell’equazione (6), la chiave pubblica dell’utente B à ̈ elevata, e.g. dal dispositivo decifratore dell’unità destinataria, alla potenza della chiave privata dell’utente A. In questo modo, il crittogramma ricevuto, rappresentato dal numero C, à ̈ decrittato in un blocco di messaggio M' che corrisponde al blocco di messaggio M originale.
Poiché le chiavi pubbliche sono generate da equazioni modulari esponenziali secondo il protocollo di scambio di chiavi di Diffie-Hellmann, i.e. equazioni (1) e (2), vale KA<b>(mod p)=KB<a>(mod p) e si verifica anche
[KA<b>+ eB] (mod p)=[KB<a>+ eB](mod p) (8)
per eB≠0. Pertanto, à ̈ verificata la corrispondenza tra M e M'.
Il messaggio T' à ̈ ricostruito (fase 112) decodificando l’uno o più blocchi di messaggio M' (fase 111), ciascuno ottenuto decrittando un rispettivo crittogramma C secondo l’equazione (6), la fase di decodifica comprendendo ricomporre l’uno o più blocchi di messaggio M' ottenendo un messaggio T' corrispondente al messaggio T.
Nel caso la fase di codifica comprenda suddividere il messaggio T in una pluralità di blocchi M di messaggio, in una forma di realizzazione, il metodo comprende, successivamente alla fase di decrittazione (equazione (6)), ripetere le fasi precedenti di crittazione e decrittazione in modo da ottenere una pluralità di blocchi di messaggio M', ciascun blocco di messaggio M' corrispondendo ad un blocco di messaggio M della pluralità di blocchi di messaggio, e decodificare la pluralità di blocchi di messaggio M', dove decodificare comprende ricomporre la pluralità di blocchi di messaggio M' ottenendo un messaggio T' corrispondente al messaggio T.
Nel caso la fase di codifica del messaggio T comprenda l’applicazione di un protocollo reversibile nel quale à ̈ stato aggiunto un “padding†, la fase di decodifica comprende applicare il protocollo inverso a quello applicato in fase di codifica, secondo cui viene detratto il “padding†, e successivamente il messaggio T' viene ricomposto riassemblando l'uno o più messaggi M'.
Esempio
Qui di seguito viene fornito un esempio numerico di realizzazione di comunicazione crittografica tra la unità mittente 2 e la unità destinataria 3 secondo la presente invenzione. L’unità destinataria 3 prevede di utilizzare un numero primo p=7919 e un numero generatore g=7. L’unità destinataria 3 seleziona una chiave privata a avente sei cifre, e in particolare a=123456.
Secondo l’equazione (1), il parametro KAà ̈ dato da:
KA≡ 7<123456>(mod 7919) = 7036,
La unità destinataria 3 rende disponibili all’unità mittente 2, i.e. condivide con l’unità mittente, la tripla di numeri (p, KA, g) = (7919, 7036, 7).
La unità mittente 2 vuole trasmettere un messaggio T a cui corrisponde, una volta codificato, un blocco di messaggio M=88. La unità mittente 2 genera una chiave privata b di sei cifre, e in particolare b=543210, e calcola la chiave pubblica KBin base dell’equazione (2):
KB≡ 7<543210>(mod 7919) = 4997
La unità mittente 2 calcola il parametro x secondo l'equazione:
{[ 7036<543210>+ eB] (mod 7919)} * x ≡ 1 mod (7919 - 1), dove eB= 1 à ̈ il numero intero positivo più piccolo che verifica l'equazione (4).
L’unità mittente determina quindi x = 3009. Utilizzando l’equazione (5) l’unità mittente 2 calcola il crittogramma C: C ≡ 88<3009>mod 7919 = 2760
La unità mittente 2 trasmette, alla unità destinataria 3, la tripla di numeri (C, KB, eB) = (2760, 4997, 1).
La unità destinataria 3, ricevuta la tripla (C, KB, eB), decritta il crittogramma C e trova il blocco di messaggio M', mediante l’equazione (6):
M' ≡ 2760^{[ 4997<123456>+ 1 ](mod 7919)} (mod 7919),
da cui risulta M'=88, valore che corrisponde al blocco di messaggio M originale trasmesso dall’unità mittente.
In una diversa realizzazione, l'utente B utilizza una procedura per la selezione di eB, descritta precedentemente, partendo da un numero intero selezionato in maniera casuale all’interno di un sotto-insieme dell’insieme dei numeri interi. Essendo, nel presente esempio, il testo da cifrare codificato in un solo blocco (T=M), il numero di messaggi N à ̈ uguale a 1 e eBà ̈ selezionato in maniera casuale nell'intervallo (1,10). Assumendo eBsia selezionato essere uguale a 6, l'equazione (4) non risulta verificata. Si procede quindi ad aumentare di un'unità il numero selezionato casualmente nel dato intervallo, e si ripete il procedimento di verifica utilizzando eB=7. Con eB=7 l'equazione (4) risulta verificata, ovvero eB=7 soddisfa la condizione di coprimità e quindi risulta x = 5575.
Con eB=7, l’unità mittente determina x = 5575. Utilizzando l’equazione (5) l’unità mittente 2 calcola il crittogramma C: C≡ 88<5575>mod 7919 = 2195
La unità mittente 2 trasmette, alla unità destinataria 3, la tripla di numeri (C, KB, eB) = (2195, 4997, 7).
La unità destinataria 3, ricevuta la tripla (C, KB, eB), decritta il crittogramma ricevuto C e trova il blocco di messaggio M':
M' ≡ 2195^{[ 4997<123456>+ 7 ](mod 7919)} (mod 7919),
dalla quale equazione si ricava M'=88, valore che corrisponde al blocco di messaggio M originale trasmesso dall’unità mittente.
Secondo uno dei suoi aspetti principali, il metodo e sistema secondo la presente invenzione permettono una implementazione di un metodo che utilizza equazioni esponenziali modulari per crittare e decrittare un messaggio e che offre una elevata sicurezza della comunicazione, in quanto una possibile decifratura dei messaggi da parte di un avversario richiede la risoluzione di logaritmi discreti e non, come nel metodo RSA, la fattorizzazione di grandi numeri primi. Infatti, la sicurezza di una comunicazione crittografica eseguita mediante il metodo RSA à ̈ basata su di una chiave pubblica ottenuta per moltiplicazione di due numeri primi segreti aventi un numero di cifre molto elevato. Diversamente, la sicurezza di una comunicazione crittografica eseguita secondo il metodo e sistema dell’invenzione in oggetto, si basa su una chiave di crittazione, i.e. l’esponente di crittazione, che à ̈ risoluzione di una equazione modulare determinata dalla chiave pubblica dell'unità destinataria elevata alla chiave privata dell'unità mittente, la quale chiave pubblica dell’unità destinataria, nelle forme di realizzazione preferite, à ̈ stata a sua volta ottenuta da una equazione modulare esponenziale avente come esponente la chiave privata dell’unità destinataria. Pertanto, l’equazione di crittazione (equazione (5)) comprende sia la chiave privata dell’unità mittente che la chiave privata dell’unità destinataria quali esponenti dell’equazione modulare.
Il metodo secondo alcuni aspetti della presente invenzione si basa sull’elevazione a potenza in aritmetica modulare, dunque sul problema attualmente irrisolvibile a livello computazionale del logaritmo discreto.

Claims (15)

  1. RIVENDICAZIONI 1. Metodo di elaborazione crittografica di un messaggio, il metodo comprendendo: stabilire una comunicazione tra una prima unità di comunicazione ed una seconda unità di comunicazione in un dominio di comunicazione che comprende un canale di comunicazione; provvedere, da parte della prima unità di comunicazione, un messaggio T; definire, da parte della seconda unità di comunicazione, un numero intero a quale prima chiave privata ed un numero KAquale prima chiave pubblica, la prima chiave pubblica essendo un numero determinato sulla base di un numero intero primo p, un numero intero primo generatore g e della prima chiave privata; rendere disponibile alla prima unità di comunicazione la prima chiave pubblica KA; condividere tra la prima unità e la seconda unità di comunicazione il numero p e il numero generatore g; definire, da parte della prima unità di comunicazione, un numero intero b quale seconda chiave privata ed un numero KBquale una seconda chiave pubblica, la seconda chiave pubblica essendo un numero determinato sulla base del numero primo p, del numero generatore g e della seconda chiave privata; determinare, da parte della prima unità di comunicazione, un numero esponente di crittazione x mediante l’equazione {[KA<b>+ eB] (mod p)}* x ≡ 1 mod (p-1), dove eBà ̈ un parametro selezionato nel gruppo dei numeri interi in modo tale che sia verificata la coprimità tra [KA<b>+ eB] (mod p) e (p-1); codificare il messaggio T, dove codificare comprende suddividere il messaggio T in almeno un blocco di messaggio M, e crittare, da parte della prima unità di comunicazione, l’almeno un blocco di messaggio M ottenendo almeno un crittogramma C mediante l’equazione C ≡ M<x>(mod p).
  2. 2. Il metodo secondo la rivendicazione 1, che comprende inoltre, successivamente a crittare l’almeno un blocco di messaggio M: rendere disponibile alla seconda unità di comunicazione la seconda chiave pubblica KBe il parametro eB; trasmettere, attraverso il canale di comunicazione, l’almeno un crittogramma C alla seconda unità di comunicazione; determinare, da parte della seconda unità di comunicazione, un numero esponente di decrittazione y={[KB<a>+ eB] (mod p)}, e decrittare l’almeno un crittogramma C ottenendo almeno un blocco M' di messaggio mediante l’equazione M' ≡ C<y>(mod p).
  3. 3. Il metodo secondo la rivendicazione 2, che comprende inoltre, successivamente a decrittare l’almeno un crittogramma C, decodificare l’almeno un blocco di messaggio M' ottenuto dalla decrittazione del crittogramma C, nel quale decodificare comprende ricomporre l’almeno un blocco di messaggio M' in modo da ottenere un messaggio T'.
  4. 4. Il metodo secondo la rivendicazione 2 o 3, nel quale il metodo à ̈ un metodo di realizzazione di una comunicazione crittografica tra la prima e la seconda unità di comunicazione.
  5. 5. Il metodo secondo una delle rivendicazioni precedenti, nel quale definire un numero intero b quale seconda chiave privata comprende selezionare, da parte della prima unità di comunicazione, un numero intero coprimo con (p-1).
  6. 6. Il metodo secondo una delle rivendicazioni precedenti, nel quale definire un numero a quale prima chiave privata comprende selezionare, da parte della seconda unità di comunicazione, un numero intero coprimo con (p-1).
  7. 7. Il metodo secondo una delle rivendicazioni precedenti, nel quale l’almeno un blocco di messaggio M ha lunghezza pari ad un numero k minore di p.
  8. 8. Il metodo secondo una delle rivendicazioni precedenti, nel quale il numero primo generatore g à ̈ diverso dal numero primo p.
  9. 9. Il metodo secondo una delle rivendicazioni precedenti, nel quale il definire, da parte della seconda unità di comunicazione, una prima chiave pubblica KAsulla base di un numero primo p, un numero primo generatore g e di un numero a comprende generare un numero primo p e un numero primo g.
  10. 10. Il metodo di una delle rivendicazioni precedenti, nel quale definire una prima chiave pubblica comprende calcolare il numero KAsecondo l’equazione KA≡ g<a>(mod p).
  11. 11. Il metodo secondo una delle rivendicazioni precedenti, nel quale definire una seconda chiave pubblica comprende calcolare il numero KBsecondo l’equazione KB≡ g<b>(mod p).
  12. 12. Il metodo secondo una delle rivendicazioni precedenti, nel quale rendere disponibile la prima chiave pubblica KAe condividere il numero primo p e il numero primo generatore g comprende trasmettere, da parte della seconda unità di comunicazione attraverso il canale di comunicazione, la prima chiave pubblica, il numero primo p e il numero generatore g alla prima unità di comunicazione.
  13. 13. Il metodo secondo una delle rivendicazioni da 2 a 12, nel quale rendere disponibile la seconda chiave pubblica KBe eBcomprende trasmettere, attraverso il canale di comunicazione, da parte della prima unità di comunicazione, la seconda chiave pubblica e il parametro eB.
  14. 14. Sistema di elaborazione crittografica di un messaggio in un dominio di comunicazione che comprende: una prima unità di comunicazione (2) che comprende un primo dispositivo cifratore (5), un primo dispositivo codificatore (11) e un primo modulo di ricetrasmissione (9); una seconda unità di comunicazione (3) che comprende un primo dispositivo decifratore (8), un primo dispositivo decodificatore (14) e un secondo modulo di ricetrasmissione (10), e un canale di comunicazione (4) atto a collegare la prima unità di comunicazione con la seconda unità di comunicazione per mezzo del primo e del secondo modulo di ricetrasmissione, nel quale la prima unità di comunicazione à ̈ atta a provvedere un messaggio T; la seconda unità di comunicazione à ̈ atta a definire un numero intero a quale prima chiave privata e un numero KAquale prima chiave pubblica, la prima chiave pubblica essendo un numero determinato sulla base di un numero primo p, di un numero primo generatore g e della prima chiave privata; il secondo modulo di ricetrasmissione (10) à ̈ atto a trasmettere attraverso il canale di comunicazione la prima chiave pubblica KAalla prima unità di comunicazione, la prima e la seconda unità di comunicazione essendo atte a condividere il numero primo p e il numero primo generatore g attraverso il canale di comunicazione; la prima unità di comunicazione à ̈ atta a definire un numero intero b quale seconda chiave privata ed un numero KBquale seconda chiave pubblica, la seconda chiave pubblica essendo un numero determinato sulla base del numero primo p, il numero primo generatore g e della seconda chiave privata; il primo dispositivo cifratore (5) à ̈ atto a determinare un numero esponente di crittazione x mediante l’equazione {[KA<b>+ eB] (mod p)}* x ≡ 1 mod (p-1), dove eBà ̈ un parametro selezionato nel gruppo dei numeri interi in modo tale che sia verificata la coprimità tra [KA<b>+ eB] (mod p) e (p-1); il primo dispositivo codificatore (11) à ̈ atto a codificare il messaggio T, dove codificare comprende suddividere il messaggio T in almeno un blocco di messaggio M e il primo dispositivo cifratore à ̈ atto a crittare l’almeno un blocco di messaggio M ottenendo almeno un crittogramma C mediante l’equazione C ≡ M<x>(mod p).
  15. 15. Il sistema secondo la rivendicazione 14, nel quale il primo modulo di ricetrasmissione (9) à ̈ atto a trasmettere alla seconda unità di comunicazione (3) l’almeno un crittogramma C, la seconda chiave pubblica KBe il parametro eB, e il primo dispositivo decifratore (8) à ̈ atto a determinare un numero esponente di decrittazione y={[KB<a>+ eB] (mod p)}, e a decrittare l’almeno un crittogramma C ottenendo almeno un blocco di messaggio M' mediante l’equazione M' ≡ C<y>(mod p).
IT000593A 2011-04-11 2011-04-11 Metodo e sistema di elaborazione crittografica di un messaggio. ITMI20110593A1 (it)

Priority Applications (4)

Application Number Priority Date Filing Date Title
IT000593A ITMI20110593A1 (it) 2011-04-11 2011-04-11 Metodo e sistema di elaborazione crittografica di un messaggio.
EP12722525.8A EP2697930B1 (en) 2011-04-11 2012-04-11 A method and system of cryptographic processing of a message
PCT/IB2012/051756 WO2012140573A1 (en) 2011-04-11 2012-04-11 A method and system of cryptographic processing of a message
US14/111,201 US20140044261A1 (en) 2011-04-11 2012-04-11 Method and system of cryptographic processing of a message

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
IT000593A ITMI20110593A1 (it) 2011-04-11 2011-04-11 Metodo e sistema di elaborazione crittografica di un messaggio.

Publications (1)

Publication Number Publication Date
ITMI20110593A1 true ITMI20110593A1 (it) 2012-10-12

Family

ID=44554149

Family Applications (1)

Application Number Title Priority Date Filing Date
IT000593A ITMI20110593A1 (it) 2011-04-11 2011-04-11 Metodo e sistema di elaborazione crittografica di un messaggio.

Country Status (4)

Country Link
US (1) US20140044261A1 (it)
EP (1) EP2697930B1 (it)
IT (1) ITMI20110593A1 (it)
WO (1) WO2012140573A1 (it)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9949115B2 (en) 2014-06-10 2018-04-17 Qualcomm Incorporated Common modulus RSA key pairs for signature generation and encryption/decryption
US9292987B1 (en) * 2014-09-22 2016-03-22 Makor Issues and Rights, Ltd. System and method for fully encrypted remote web-based voting

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4405829A (en) 1977-12-14 1983-09-20 Massachusetts Institute Of Technology Cryptographic communications system and method
US6151395A (en) * 1997-12-04 2000-11-21 Cisco Technology, Inc. System and method for regenerating secret keys in diffie-hellman communication sessions
US7181017B1 (en) * 2001-03-23 2007-02-20 David Felsher System and method for secure three-party communications
US7424615B1 (en) * 2001-07-30 2008-09-09 Apple Inc. Mutually authenticated secure key exchange (MASKE)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ELGAMAL T: "A PUBLIC KEY CRYPTOSYSTEM AND A SIGNATURE SCHEME BASED ON DISCRETE LOGARITHMS", IEEE TRANSACTIONS ON INFORMATION THEORY, IEEE PRESS, USA, vol. 31, no. 4, 1 July 1985 (1985-07-01), pages 469 - 472, XP000565224, ISSN: 0018-9448, DOI: 10.1109/TIT.1985.1057074 *
JAN J K ET AL: "A practical design for secure broadcasting using PKD concept", SECURITY TECHNOLOGY, 1993 SECURITY TECHNOLOGY, PROCEEDINGS, INSTITUTE OF ELECTRICAL AND ELECTRONICS ENGINEERS 1993 INTERNATIONAL CARNAHAN CO NFERENCE ON OTTAWA, ONT., CANADA 13-15 OCT. 1993, NEW YORK, NY, USA,IEEE, 13 October 1993 (1993-10-13), pages 22 - 27, XP010124757, ISBN: 978-0-7803-1479-5, DOI: 10.1109/CCST.1993.386832 *

Also Published As

Publication number Publication date
EP2697930A1 (en) 2014-02-19
EP2697930B1 (en) 2015-07-08
WO2012140573A1 (en) 2012-10-18
US20140044261A1 (en) 2014-02-13

Similar Documents

Publication Publication Date Title
CN110870250B (zh) 密钥协商设备和方法
CN105024994B (zh) 无对运算的安全无证书混合签密方法
US6490352B1 (en) Cryptographic elliptic curve apparatus and method
KR102116877B1 (ko) 오류를 갖는 페어링을 이용한 새로운 암호 시스템들
JP5412626B2 (ja) 暗号化装置、復号化装置、署名装置、検証装置、暗号化方法、復号化方法、署名方法、検証方法、暗号化プログラム、復号化プログラム、認証プログラム及び検証プログラム
Jirwan et al. Review and analysis of cryptography techniques
CN111492616B (zh) 用于基于晶格的密码学的可配置设备
EP3020158B1 (en) Key agreement device and method
CN106487503B (zh) 基于剪裁的霍普菲尔德神经网络的多元公钥密码系统和方法
US20090232301A1 (en) Method and system for generating session key, and communication device
JP2020508021A (ja) キー交換デバイス及び方法
KR20190034631A (ko) 기하 대수학을 이용한 강화된 데이터-중심 암호화 시스템을 위한 방법 및 시스템
US20190294417A1 (en) Method and system for deriving deterministic prime number
ITMI20110593A1 (it) Metodo e sistema di elaborazione crittografica di un messaggio.
Pan et al. Provably secure encryption schemes with zero setup and linear speed by using Rubik’s Cubes
CN104837131A (zh) 一种基于批处理指数运算乘积的批Cramer-Shoup密码体制
Kumari et al. Encryption based on Conference matrix
Lizama-Perez Non-invertible key exchange protocol
Rao et al. Extended Generalized Elgamal Cryptosystem for Secure M2M Communication
Vahedi et al. An Overview of Cryptography
Al-Doori et al. Securing IoT Networks with NTRU Cryptosystem: A Practical Approach on ARM-based Devices for Edge and Fog Layer Integration.
CN115665732B (zh) 一种面向卫星互联网的无证书签名认证方法
Verchyk et al. A practical study of post-quantum enhanced identity-based encryption
Te Chen A Secure Group Data Encryption Scheme in Intelligent Manufacturing Systems for IIoT
ITBO20090383A1 (it) Metodo per instaurare una comunicazione crittografica