Firma digitale: tecnologie e standard

di
Mario Terranova

Autorità per l'informatica nella Pubblica Amministrazione
P.le Kennedy, 20 - 00144 - Roma
Tel +39(6)85264419 Fax +39(6)85264430
e-mail terranova@aipa.it

Ndr: Riprendiamo dal sito http://www.aipa.it questo importantedocumento che illustra le principali tecniche di crittografiache permettono di attribuire le indispensabili garanzie di integritàai documenti trasmessi su reti telefoniche numeriche.

Sommario

La diffusione degli strumenti informaticie la parallela crescita della comunicazione attraverso le retidi calcolatori hanno posto con pressante urgenza il problema dellasostituzione del tradizionale documento cartaceo con un equivalentestrumento informatico. Il meccanismo universalmente adottato percostruire tale strumento é la firma digitale basata sullacrittografia a chiavi pubbliche. Vengono qui discussi a livelloelementare i concetti fondamentali e le tecnologie su cui la firmadigitale si basa.

La firma digitale
Firma digitale é una informazione che viene aggiuntaad un documento informatico al fine di garantirne integritàe provenienza. Sebbene l'uso per la sottoscrizione dei documentiformati su supporti informatici sia quello più naturale,la firma digitale può essere utilizzata per autenticareuna qualunque sequenza di simboli binari, indipendentemente dalloro significato. Un esempio sempre più comune di questouso generalizzato é l'aggiunta di firme digitali ai filecontenuti nella memoria di massa di un sistema di elaborazioneonde contrastare gli attacchi dei virus e degli hacker.

La principale differenza tra firma autografa e firma digitalesta nel fatto che la prima è direttamente riconducibileall'identità di colui che la appone, poiché la calligrafiaè un elemento identificativo della persona, mentre la secondanon possiede questa proprietà. Per coprire questa deficienzasi ricorre all'autorità di certificazione, il cui compitoè quello di stabilire, garantire e pubblicare l'associazionetra firma digitale e soggetto che l'ha apposta.

Per contro, mentre l'associazione tra testo di un documento ela firma autografa è ottenuta esclusivamente attraversoil supporto cartaceo, la firma digitale è intrinsecamentelegata al testo a cui è apposta, tanto che i due oggettipossono essere fisicamente separati senza che per questo vengameno il legame esistente tra loro. Conseguenza di ciò èl'unicità della firma digitale, nel senso che a testi diversicorrispondono firme diverse e quindi, nonostante la sua perfettareplicabilità, è impossibile trasferirla da un testoad un altro.


La base della firma digitale: la crittografia a chiavi pubbliche
I meccanismi di firma digitale poggiano essenzialmente sopragli algoritmi crittografici a chiavi pubbliche, che sono dettianche a chiavi asimmetriche poiché utilizzano chiavi diverseper le operazioni di cifratura e decifratura. La chiave di cifraturaKc e quella di decifratura Kd vengono utilizzateall'interno delle rispettive funzioni C e D per trasformare lasequenza binaria che costituisce un messaggio M nel corrispondentemessaggio cifrato X, risultando:

X=C(Kc,M) ; M=D(Kd,X)

La condizione più importante che deve esseresoddisfatta affinché il sistema costituito dalla coppiadi funzioni C e D e dalla coppia di chiavi Kc e Kdsia utilizzabile come sistema di cifratura a chiavi pubblicheè che la conoscenza della chiave pubblica Kpnon consenta di determinare la chiave segreta Ks.

Algoritmo di Diffie-Hellman

Nel 1976 Diffie ed Hellman [DIHE76] hanno descritto un protocolloper lo scambio di una chiave segreta sopra un canale insicuro;tale meccanismo era stato inteso essenzialmente per risolvereil problema dell'avvio di un normale sistema di cifratura a chiavisimmetriche, per esempio il DES [FIPS46], ma in realtàha posto le basi della crittografia a chiavi pubbliche.

Il protocollo, utilizzato da due interlocutori A e B, puòessere descritto come segue:

  1. A e B scelgono pubblicamente un insieme di interiG=[0,N-1] ed un suo elemento s.
  2. A sceglie in modo casuale un elemento a di G,calcola sa mod N e lo invia a B.
  3. B sceglie in modo casuale un elemento b di G,calcola sb mod N e lo invia ad A.
  4. A, ricevuto sb, calcola K= (sb)a
  5. B, ricevuto sa, calcola K= (sa)b

In questo modo entrambi gli interlocutori possiedonola chiave K ma sopra il canale insicuro sono stati trasferitisolo N, s, sa ed sb che non consentono diricostruire K. In realtà la determinazione di a noti sed sa richiede la soluzione del problema del logaritmodiscreto che consiste nella determinazione dell'intero che corrispondeal logaritmo in una base intera di un intero. Tale problema ècomputazionalmente difficile.

Lo RSA

Proposto nel 1978 da Rivest, Shamir e Adleman [RSA78], dacui il nome, è il primo sistema di crittografia a chiavipubbliche che sfrutta l'approccio di Diffie ed Hellman ed èanche quello attualmente più diffuso ed utilizzato.

Il metodo si basa sulla fattorizzazione di interi di grandi dimensionie per utilizzarlo ciascun interlocutore deve compiere le seguentiazioni:

  1. Scegliere due grandi interi p e q che siano primi;il loro prodotto corrisponde al valore di N utilizzato nel calcolodel modulo nelle operazioni di codifica e decodifica.
  2. Scegliere un intero e che sia primo rispettoad M=(p-1)¥(q-1).
  3. Calcolare l'intero d per il quale risulta e¥d mod M = 1.
  4. Rendere pubblici N e la chiave Kp=e.

Il messaggio cifrato X corrispondente ad un messaggioM si ottiene dalla relazione:

X=Me mod N

mentre la decifratura avviene secondo la relazione:

Xd mod N = (Me modN)d mod N = Med mod N = M.

La sicurezza del RSA è affidata alla complessità,che è di tipo esponenziale, del problema della fattorizzazionedei numeri interi.

Algoritmo di ElGamal

Più vicino dello stesso RSA all'impostazione di Diffieed Hellman è l'approccio proposto da ElGamal nel 1985 [ELGA85],nel quale ciascun interlocutore opera nel seguente modo:

  1. Vengono scelti gli interi N ed s, con 1 £s £N-1, che sono resi pubblici.
  2. Viene scelto un intero a che verrà utilizzatocome chiave privata Ks.
  3. Viene calcolato e reso pubblico il valore disa che verrà utilizzato come chiave pubblicaKp.

La cifratura di un messaggio è un'operazioneun po' più complessa che nel caso del RSA, infatti se Avuole inviare un messaggio a B, posto che Kpae Kpb siano le rispettive chiavi pubbliche,deve effettuare le seguenti operazioni:

  1. Scegliere un intero h e calcolare sh.
  2. Calcolare (Kpb)hche corrisponde a sbh (b è l'intero scelto comechiave privata da B e quindi sb è la sua chiavepubblica).
  3. Calcolare M sbh.
  4. Inviare come messaggio cifrato X la coppia (sh,M sbh).

Il destinatario B, che riceve sh e possiede b, calcola a sua volta sbh e recupera M.
La sicurezza del sistema di ElGamal si basa sulla complessitàdel calcolo del logaritmo discreto.

Le curve ellittiche

Sono stati proposti sistemi crittografici a chiavi asimmetricheche possono essere riguardati come una generalizzazione di quellisopra descritti. Infatti, dal punto di vista matematico un talesistema può essere considerato come una trasformazionesopra gli elementi di un insieme che possiede la struttura digruppo algebrico, è quindi possibile ottenere sistemi diversie con differenti caratteristiche di sicurezza sostituendo l'insiemedi base.

In particolare è possibile utilizzare come gruppo di basel'insieme dei punti di una curva ellittica definita su di un campofinito, che costituisce un gruppo abeliano [MENE93]. Il vantaggioprincipale che si ottiene con tale approccio è che unascelta opportuna della curva utilizzata dal sistema di cifraturaconsente di ottenere una complessità matematica del problemadella rottura del codice nettamente superiore a quella dei problemidella fattorizzazione di un intero di grandi dimensioni o delcalcolo del logaritmo discreto.

Uso degli algoritmi crittografici asimmetriciper la firma digitale
I metodi crittografici a chiavi pubbliche possonoessere utilizzati per costruire strumenti per la firma digitale,la differenza principale tra le due applicazioni risiede nel ruolodelle chiavi. Nella crittografia la chiave pubblica viene utilizzataper la cifratura mentre il destinatario usa quella privata perrecuperare il messaggio. Nella firma il messaggio M non èin genere cifrato ed è direttamente disponibile per ildestinatario, viceversa l'autore utilizza la funzione di cifraturaC e la chiave privata Ks per generare il valore diX che, aggiunto ad M, ne certifica la provenienza grazie allasegretezza della chiave privata. X costituisce la firma digitaledi M. Chiunque può accertare la provenienza del messaggioutilizzando la chiave pubblica Kp per verificare cheil valore della firma corrisponda al messaggio grazie alla relazione:

D(Kp,X) = M

In realtà la verifica della corrispondenzatra firma e messaggio garantisce solo che questa è statagenerata mediante la chiave privata corrispondente a Kp,occorre perciò assicurare per altra via la corrispondenzatra chiavi e soggetto autore del messaggio. A tale scopo vieneutilizzata la "autorità di certificazione", laquale, dopo aver accertato dell'identità del possessoredella chiave privata e della corrispondenza tra questa e quellapubblica, certifica l'identità del possessore della chiaveprivata (a meno della rottura della sua segretezza). L'uso dell'autoritàdi certificazione consente di raggiungere, oltre la certezza dell'identitàdell'autore di un messaggio, anche l'impossibilità da partedi questi di ripudiare i messaggi da egli generati; infatti, essendol'unico detentore della chiave privata è anche l'unicosoggetto in grado di generare firme verificabili con la corrispondentechiave pubblica.

Sebbene qualunque sistema crittografico a chiavi pubbliche possaessere utilizzato per generare firme elettroniche, un aspettodi grande importanza pratica consiste nella disponibilitàdi algoritmi di cifratura e decifratura specificamente adattiper la generazione e la verifica della firma. Infatti, dato chedi norma il messaggio M è direttamente disponibile peril destinatario insieme con X, non si ha alcun interesse nellapossibilità di ricostruire M da X. Ciò consentedi ridurre molto la lunghezza di X a beneficio dell'efficienzadelle operazioni naturalmente lente di codifica e decodifica.

C'è un altro aspetto di notevole interesse pratico legatoalla disponibilità di algoritmi diversi per la cifraturae la firma. Il governo americano impedisce l'esportazione di softwaredi cifratura che utilizzi chiavi di lunghezza tale da garantirela resistenza del cifrario per un periodo relativamente lungo.Un'analoga limitazione non si applica agli algoritmi di generazionee verifica di firme elettroniche a patto che questi non sianomodificabili in modo da renderli utilizzabili per la cifratura.

Lo RSA

L'uso dello RSA per generare firme elettroniche [RSA78] sibasa semplicemente sull'inversione del ruolo delle chiavi rispettoa quello utilizzato per assicurare la riservatezza. Le differenzetra le due applicazioni risiedono essenzialmente nel fatto cheper la firma si evita di dover applicare l'operazione di cifraturaall'intero testo; ciò è particolarmente convenientevista la complessità, e quindi la lentezza, delle operazionicoinvolte.

In pratica il testo da firmare viene "compresso" inuna sorta di "riassunto", che viene spesso riferitocome "impronta" digitale, mediante una opportuna funzionedi hash progettata in modo da minimizzare la probabilitàche da testi diversi si possa ottenere il medesimo valore dell'impronta.La dimensione del riassunto è fissa e molto piùpiccola di quella del messaggio originale, essendo dell'ordinedel centinaio di bit; pertanto la generazione della firma, cheviene effettuata a partire da questo anziché dal testo,risulta estremamente più rapida.

ElGamal

L'algoritmo proposto da ElGamal per la firma digitale [ELGA85]è alquanto diverso da quello già citato destinatoalla cifratura; per generare la firma di un testo M occorre effettuarele seguenti operazioni:

  1. Generare casualmente un intero h nell'intervallo[0, N-1] che sia primo rispetto N-1.
  2. Calcolare u=sh mod N.
  3. Risolvere rispetto a v la relazione di congruenzaM _ Ksu + h v mod (N-1).
  4. La firma di M è la coppia (u,v).

La verifica della firma viene effettuata in base alla relazione:

sM = Kpuuv mod N

La sicurezza del sistema è basata sul fattoche la determinazione di una coppia di valori (u,v) che soddisfila precedente equazione richiede la soluzione del problema dellogaritmo discreto nel caso in cui si fissi u e si cercasse dideterminare v di conseguenza; nel caso opposto, ossia fissandov e cercando di calcolare u, si incappa in una congruenza esponenzialemista per la quale non sono noti algoritmi efficienti di soluzione.

Schnorr

Il metodo di generazione della firma dovuto a Schnorr [SCHN91]è analogo a quello di ElGamal, dal quale differisce essenzialmenteper l'introduzione di una funzione di hash H che associa a ciascunmessaggio ed a ciascuna chiave un intero in un intervallo di ampiezzapredefinita T.

La procedura di generazione della firma è la seguente:

  1. Generare casualmente un intero h nell'intervallo[0,N-1].
  2. Calcolare u=sh mod N.
  3. Calcolare il valore della funzione di hash corrispondenteal messaggio ed ad u, ossia e=H(M,u).
  4. Calcolare v=Ks e + h mod N
  5. La firma di M è la coppia (v,e).
La verifica si effettua nel modo seguente:
  1. Calcolare sv.
  2. Calcolare Kp

Anche la sicurezza del sistema di firma di Schnorr,come quello di ElGamal, è legata alla complessitàdi soluzione del problema del calcolo del logaritmo discreto.Il vantaggio principale che questo algoritmo presenta rispettoal precedente è la possibilità di scegliere la dimensionedella firma selezionando opportunamente l'ampiezza T del codominiodella funzione di hash.

DSS

Il Digital Signature Standard, proposto dal NIST (NationalInstitute of Standard and Technology) nel 1991, è sostanzialmenteuna variante del metodo di Schnorr in cui la funzione di hashH ha come unico argomento il messaggio e quindi il suo valorenon dipende dalla chiave di cifratura. L'utilizzazione del sistemarichiede preliminarmente la generazione delle chiavi secondo laseguente procedura:

  1. Scegliere un intero P, da usare nelle operazionidi modulo, che deve essere un numero primo compreso tra 2511e 2512.
  2. Scegliere dell'intero Q, divisore primo di P-1compreso tra 2159 e 2160.
  3. Scegliere un intero G, nell'intervallo [0,P-1].
  4. Scegliere di un intero x nell'intervallo (0,Q),che costituisce la chiave privata Ks.
  5. Calcolare l'intero y = Gx utilizzatocome chiave pubblica Kp.
Ottenute le chiavi, la generazione della firma perun messaggio M si ottiene nel modo seguente:
  1. Scegliere casualmente un intero h compreso nell'intervallo(0,Q).
  2. Calcolare l'intero u = (Gh mod P)mod Q.
  3. Determinare il valore di v risolvendo la relazioneH(M)= Ks u + h v (mod Q).
  4. La firma di M è la coppia (u,v).
La verifica viene condotta mediante la seguente procedura:
  1. Determinare il valore w tale che w v = 1 modQ
  2. Calcolare i = H(M) w mod Q.
  3. Calcolare l = u w mod Q.
  4. Calcolare t = ((Gi Kp)mod P) mod Q.
  5. Verificare che t = u.
Il DSS è di fatto una variante dell'algoritmodi Schnorr e quindi deve la sua robustezza alla complessitàdel problema del logaritmo discreto, tuttavia la predefinizionedei limiti di variabilità dei parametri di base ha attiratonumerose critiche riguardo l'effettiva sicurezza raggiungibile.

Il processo di firma digitale
Il processo di firma digitale richiede che l'utenteeffettui una serie di azioni preliminari necessarie alla predisposizionedelle chiavi utilizzate dal sistema di crittografia su cui ilmeccanismo di firma si basa; in particolare occorre:
  1. la registrazione dell'utente presso una Autoritàdi Certificazione (AC),
  2. la generazione di una coppia di chiavi Kse Kp,
  3. la certificazione della chiave pubblica Kp,
  4. la registrazione della chiave pubblica Kp.

Una volta espletate tali operazione l'utente èin grado di firmare elettronicamente un numero qualunque di documenti,sfruttando la sua chiave segreta Ks, durante il periododi validità della certificazione della corrispondente chiavepubblica. Tale periodo può essere interrotto prima delsuo naturale termine dalla revoca della certificazione della chiavepubblica, che di norma viene effettuata su richiesta del proprietarionel caso in cui questi ritenga che la segretezza della sua chiaveprivata sia stata compromessa.

La firma viene apposta, con il processo schematicamente mostratonella Figura 1, mediante una sequenza di tre operazioni:

  1. generazione dell'impronta del documento da firmare,
  2. generazione della firma mediante cifratura dell'impronta,
  3. apposizione della firma al documento.

Verrà ora fornito qualche dettaglio sia riguardole operazioni preliminari di generazione e certificazione dellechiavi, che di quelle necessarie per la sottoscrizione di ciascundocumento



Figura 1 - Generazione della firma digitale

Registrazione dell'utente

La registrazione dell'utente presso una autorità dicertificazione ha il duplice scopo di rendere questa certa dellasua identità ed instaurare con esso un canale di comunicazionesicuro attraverso il quale verranno fatte viaggiare le chiavipubbliche di cui viene richiesta la certificazione. All'atto dellaregistrazione l'autorità di certificazione attribuisceall'utente un identificatore, di cui viene garantita l'univocità,attraverso il quale sarà possibile a chiunque reperirein modo diretto e sicuro i certificati rilasciati al soggettocorrispondente all'interno dei cataloghi pubblici in cui questisono registrati.

La registrazione avviene attraverso la seguente procedura:

  1. L'utente richiede alla AC la registrazione fornendola documentazione richiesta da questa per accertare l'identitàdel richiedente.
  2. Verificata la validità della richiestaAC attribuisce all'utente un identificatore di cui essa garantiscel'univocità.
  3. La AC inserisce l'utente con l'identificatoreattribuitogli nei cataloghi di utenti registrati che essa gestisce.
  4. La AC fornisce attraverso un canale sicuro lachiave crittografica che l'utente dovrà utilizzare perle richieste di certificazione delle chiavi.

La necessità di utilizzare un canale sicuroasserita al punto 4 nasce dal fatto che, sebbene le richiestedi certificazione contengono chiavi pubbliche per le quali nonè richiesta una protezione ai fini della riservatezza,la CA deve essere certa che ciascuna richiesta provenga effettivamentedell'utente in essa indicato e non da un altro soggetto che losta impersonando. La segretezza della chiave, che di norma èuna chiave pubblica e pertanto non dovrebbe essere protetta, vienequi utilizzata come strumento di autenticazione dell'origine.

Generazione della coppia di chiavi

L'utente, mediante un programma adatto al sistema crittograficoadottato, genera una coppia di chiavi da utilizzare una per lagenerazione della firma, che verrà mantenuta segreta ecorrisponde perciò a Ks, e l'altra, destinataalla verifica, che verrà resa pubblica ed assume perciòil ruolo di Kp.

Certificazione della chiave pubblica

La certificazione della chiave pubblica ha lo scopo di rassicurarechiunque riceva un documento correttamente firmato circa l'identitàdel soggetto che ha apposto la firma. L'operazione avviene attraversotre passi:

  1. L'utente invia alla AC la richiesta di certificazioneper la chiave Kp generata nella fase precedente, autenticandolamediante la chiave ricevuta dalla AC durante il processo di registrazione.L'autenticazione può avvenire sia mediante cifratura delmessaggio di richiesta, ovvero mediante la sua sottoscrizionedigitale. Poiché lo scambio di messaggi implicato nellacertificazione è bilaterale, in questa fase si possonoutilizzare algoritmi di crittografia simmetrici.
  2. La AC genera il certificato e lo sottoscriveper garantirne la provenienza che potrà essere accertatada chiunque utilizzando la chiave pubblica di AC.
  3. Il certificato viene inviato al richiedente.

Registrazione della chiave pubblica

Una volta emesso, il certificato puòessere reso disponibile in uno o più cataloghi ai qualipuò accedere chiunque abbia bisogno di accertare la validitàdi una sottoscrizione digitale. Questa operazione viene di normaeffettuata, almeno per i cataloghi di sua competenza, dalla ACcontestualmente all'emissione.

Generazione dell'impronta

Al testo da firmare viene applicata una funzione di hash appositamentestudiata che produce, secondo il meccanismo sinteticamente mostratonella Figura 2, una stringa binaria di lunghezza costante e piccola,normalmente 128 o 160 bit. La funzione di hash assicura l'unicitàdi tale stringa, nel senso che a due testi diversi non corrispondela medesima impronta. Sono disponibili diversi algoritmi di generazione,quali, ad esempio, MD2, MD4 [RIVE90] e MD5 [RIVE92], originariamenteprogettati per operare in combinazione con lo RSA ma utilizzabilicon qualsiasi cifrario. Sono disponibili anche algoritmi di hashper i quali è in corso la standardizzazione ufficiale daparte organismi internazionali, ne sono un esempio il RIPEMD a128 e 160 bit ed il Secure Hash Algorithm (SHA-1) [JTC196].

L'utilità dell'uso dell'impronta è duplice, in primoluogo consente di evitare che per la generazione della firma sianecessario applicare l'algoritmo di cifratura, che è intrinsecamenteinefficiente, all'intero testo che può essere molto lungo.Inoltre consente l'autenticazione, da parte di una terza partefidata, della sottoscrizione di un documento senza che questavenga a conoscenza del suo contenuto. Una tipica situazione incui si sfruttano tali caratteristiche dell'impronta è lamarcatura temporale che verrà discussa più avanti.



Figura 3 -Verifica della firma digitale

Generazione della firma

La generazione della firma consiste semplicemente nella cifratura,con la chiave segreta Ks, dell'impronta digitale generatail precedenza.

Apposizione della firma

La firma digitale generata al passo precedente viene aggiuntain una posizione predefinita, normalmente alla fine, al testodel documento. Normalmente, insieme con la firma vera e propria,viene allegato al documento anche il valore dell'impronta digitaleed eventualmente anche il certificato da cui è possibilerecuperare il valore della chiave pubblica.


Verifica della firma digitale

L'operazione di verifica della firma digitale, mostrata schematicamentein Figura 3, viene effettuata ricollocando, con la medesima funzionedi hash usata nella fase di sottoscrizione, il valore dell'improntae controllando che il valore così ottenuto coincida conquello generato per decodifica della firma digitale stessa. Ladisponibilità del valore dell'impronta all'interno delmessaggio semplifica l'operazione.

In linea di principio non sarebbe necessario allegare alla firmadigitale il certificato rilasciato dalla AC, poiché ildestinatario può comunque reperirlo nei cataloghi, tuttaviala sua presenza semplifica l'operazione di verifica, che puòcosì utilizzare l'identificatore assoluto del certificatostesso, che rende più efficiente l'accesso ai cataloghi,limitando la ricerca alle liste dei certificati revocati e sospesi.


Marcatura temporale

Qualora sia necessario attribuire ad un documento certezzacirca il momento in cui questo è stato redatto ed èdivenuto valido, si ricorre alla sua marcatura temporale. Questaconsiste nella generazione da parte di una terza parte fidata,normalmente una AC, di una ulteriore firma digitale per il documentomarcato.

L'operazione, rappresentata schematicamente nella Figura ;4,avviene secondo la seguente procedura:

  1. L'impronta del documento viene inviata al serviziodi marcatura temporale, l'impronta costituisce un riferimentocerto al testo originale ma non ne consente la ricostruzione,pertanto la marcatura può essere effettuata da una terzaparte senza compromettere la confidenzialità del testomarcato.
  2. Il servizio di marcatura aggiunge all'improntaricevuta la data e l'ora, ottenendo una "impronta marcata".
  3. L'impronta marcata viene cifrata con la chiavesegreta del servizio, ottenendo la marca temporale da cui èpossibile recuperare, mediante la chiave pubblica del servizio,l'impronta del documento e la data e l'ora della sua generazione.
  4. La marca temporale viene inviata al richiedenteil quale la allega al documento.

 

Figura 4 - Generazione della marca temporale

La marcatura temporale è per certi versi analogaall'autenticazione di un documento e può essere usata pergarantire che questo non venga in secondo tempo sostituito conuno diverso da parte del medesimo soggetto che lo ha emesso.


La standardizzazione

Sotto la spinta delle applicazioni commerciali, ed in particolaredi quelle bancarie, sono stati sviluppati numerosi standard relativiall'uso delle tecniche crittografiche. L'elenco che segue riportaquelli più direttamente correlati con le problematicheconnesse alla firma digitale.

ISO/IEC 8372:1987Modes of operation for a 64-bitblock cipher algorithm.

ISO/IEC 8731-1:1988 Banking - Approved Algorithmsfor Message Authentication - Part 1: DEA

ISO/IEC 8731-2:1992 Banking - Approved Algorithmsfor Message Authentication - Part 2: Message Authentication Algorithm

ISO/IEC 8732:1988 Banking - Key management (wholesale)

ISO/IEC 9796:1991 Information technology - Securitytechniques - Digital signature scheme giving message recovery.

ISO/IEC 9797:1994 Information technology - Securitytechniques - Data integrity mechanism using a cryptographic checkfunction employing a block cipher algorithm.

ISO/IEC 9798-1:1991 Information technology - Securitytechniques - Entity authentication mechanism - Part 1: Generalmodel (in revisione come DIS).

ISO/IEC 9798-2:1994 Information technology - Securitytechniques - Entity authentication mechanism - Part 2: Mechanismsusing symmetric encipherment algorithms.

ISO/IEC 9798-3:1993 Information technology - Securitytechniques - Entity authentication mechanism - Part 3: Mechanismsusing a public key algorithm.

ISO/IEC 9798-4:1995 Information technology - Securitytechniques - Entity authentication mechanism - Part 4: Mechanismsusing a cryptographic check function.

ISO/IEC WD 9798-5:1995 Information technology - Securitytechniques - Entity authentication mechanism - Part 5: Mechanismsusing zero knowledge techniques.

ISO/IEC 9979:1991 Data cryptografic techniques -Procedures for the registration of cryptographic algorithms.

ISO/IEC 10116:1991 Information technology - Securitytechniques - Modes of operation for an n-bit block cipher algorithm(in revisione come DIS).

ISO/IEC 10118-1:1994 Information technology - Securitytechniques - Hash-functions - Part 1: General.

ISO/IEC 10118-2:1994 Information technology - Securitytechniques - Hash-functions - Part 2: Hash-functions using ann-bit block cipher algorithm.

ISO/IEC CD 10118-3 Information technology - Securitytechniques - Hash-functions - Part 3: Dedicated hash-functions.

ISO/IEC CD 10118-4 Information technology - Securitytechniques - Hash-functions - Part 4: Hash-functions using modulararithmetic.

ISO/IEC 10126-1:1991 Banking - Procedures for messageencipherment (wholesale) - Part 1: General principles.

ISO/IEC 10126-2:1991 Banking - Procedures for messageencipherment (wholesale) - Part 2: DEA algorithm.

ISO/IEC 11166-1:1994 Banking - Key management bymeans of asymmetric algorithms - Part 1: Principles, proceduresand formats.

ISO/IEC 11166-2:1994 Banking - Key management bymeans of asymmetric algorithms - Part 2: Approved algorithms usingthe RSA cryptosystem.

ISO 11568-1:1994 Banking - Key management (retail)- Part 1: Introduction to key management.

ISO 11568-2:1994 Banking - Key management (retail)- Part 2: Key management techniques for symmetric ciphers.

ISO 11568-3:1994 Banking - Key management (retail)- Part 3: Key life cycle for symmetric ciphers.

ISO DIS 11568-4 Banking - Key management (retail)- Part 4: Key management techniques for public key cryptosystems.

ISO DIS 11568-5 Banking - Key management (retail)- Part 5: Key life cycle for public key cryptosystems.

ISO DIS 11568-6 Banking - Key management (retail)- Part 6: Key management schemes.

ISO/IEC DIS 11770-1 Information technology - Securitytechniques - Key management - Part 1: Framework.

ISO/IEC 11770-2:1996 Information technology - Securitytechniques - Key management - Part 2: Mechanism using symmetrictechniques.

ISO/IEC DIS 11770-3 Information technology - Securitytechniques - Key management - Part 3: Mechanism using asymmetrictechniques.

Dal punto di vista della standardizzazione deglialgoritmi crittografici asimmetrici non può essere ignoratolo sforzo dello IEEE americano, il quale sta sviluppando uno standardunico ed integrato comprendente tutti gli algoritmi attualmentedisponibili, da quelli basati sulla fattorizzazione degli interi,a quelli che sfruttano la complessità del logaritmo discreto,a quelli che usano le proprietà delle curve ellittiche.Tale progetto di standard viene indicato con la sigla P1363.

Riferimenti

[DIHE76] W. Diffie e M. Hellman, "New directionsin cryptography", in "IEEE Transactions on InformationTheory", vol. 22 (1976), pp. 644-654.

[ELGA85] T. ElGamal, "A Public-Key Cryptosystem and a SignatureScheme Based on Discrete Logarithms", in "IEEE Transactionson Information Theory", vol. 31 (1985), n. 4, pp. 469-472.

[FIPS46] National Bureau of Standards, "Data Encryption Standard",Federal Information Processing Standard, U.S. Department of Commerce,FIPS PUB 46, Washington, DC, 1977.

[JTC196] International Organization for Standardization and InternationalElectrotechnical Commission Joint Technical Committee 1, "ISO/IECDraft International Standard 10118-3: Information technology -Security techniques - Hash functions - Part 3: Dedicated Hashfunctions", 1996.

[MENE93] A. Menezes, "Elliptic Curve Public Key Cryptosystems",Kluwer Academic Publishers, Norwell, Massachusetts, 1993.

[RIVE90] R. L. Rivest, "The MD4 Message Digest Algorithm",in "Advances in Cryptology - CRYPTO &à145;90",Lecture Notes in Computer Science, n. 537, Springer-Verlag, Berlino,1991, pp. 303-311.

[RIVE92] R. L. Rivest, "RFC 1321: The MD5 Message DigestAlgorithm", Internet Activities Board, Aprile 1992.

[RSA78] R. L. Rivest, A. Shamir e L. Adleman, "A Method forObtaining Digital Signatures and Public-Key Cryptosystems",in "Communications of the ACM", vol. 21 (1978), n. 2,pp. 120-126.

[SCHN91] C. Schnorr, "Efficient signature generation by smartcards", in "Journal of Cryptology", n. 4 (1991),pp. 161-174.