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 importante documento che illustra le principali tecniche di crittografia che permettono di attribuire le indispensabili garanzie di integrità ai documenti trasmessi su reti telefoniche numeriche.

Sommario

La diffusione degli strumenti informatici e la parallela crescita della comunicazione attraverso le reti di calcolatori hanno posto con pressante urgenza il problema della sostituzione del tradizionale documento cartaceo con un equivalente strumento informatico. Il meccanismo universalmente adottato per costruire tale strumento é la firma digitale basata sulla crittografia a chiavi pubbliche. Vengono qui discussi a livello elementare i concetti fondamentali e le tecnologie su cui la firma digitale si basa.

La firma digitale
Firma digitale é una informazione che viene aggiunta ad un documento informatico al fine di garantirne integrità e provenienza. Sebbene l'uso per la sottoscrizione dei documenti formati su supporti informatici sia quello più naturale, la firma digitale può essere utilizzata per autenticare una qualunque sequenza di simboli binari, indipendentemente dal loro significato. Un esempio sempre più comune di questo uso generalizzato é l'aggiunta di firme digitali ai file contenuti nella memoria di massa di un sistema di elaborazione onde contrastare gli attacchi dei virus e degli hacker.

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

Per contro, mentre l'associazione tra testo di un documento e la firma autografa è ottenuta esclusivamente attraverso il supporto cartaceo, la firma digitale è intrinsecamente legata al testo a cui è apposta, tanto che i due oggetti possono essere fisicamente separati senza che per questo venga meno il legame esistente tra loro. Conseguenza di ciò è l'unicità della firma digitale, nel senso che a testi diversi corrispondono firme diverse e quindi, nonostante la sua perfetta replicabilità, è impossibile trasferirla da un testo ad un altro.


La base della firma digitale: la crittografia a chiavi pubbliche
I meccanismi di firma digitale poggiano essenzialmente sopra gli algoritmi crittografici a chiavi pubbliche, che sono detti anche a chiavi asimmetriche poiché utilizzano chiavi diverse per le operazioni di cifratura e decifratura. La chiave di cifratura Kc e quella di decifratura Kd vengono utilizzate all'interno delle rispettive funzioni C e D per trasformare la sequenza binaria che costituisce un messaggio M nel corrispondente messaggio cifrato X, risultando:

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

La condizione più importante che deve essere soddisfatta affinché il sistema costituito dalla coppia di funzioni C e D e dalla coppia di chiavi Kc e Kd sia utilizzabile come sistema di cifratura a chiavi pubbliche è che la conoscenza della chiave pubblica Kp non consenta di determinare la chiave segreta Ks.

Algoritmo di Diffie-Hellman

Nel 1976 Diffie ed Hellman [DIHE76] hanno descritto un protocollo per lo scambio di una chiave segreta sopra un canale insicuro; tale meccanismo era stato inteso essenzialmente per risolvere il problema dell'avvio di un normale sistema di cifratura a chiavi simmetriche, 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 interi G=[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 possiedono la chiave K ma sopra il canale insicuro sono stati trasferiti solo N, s, sa ed sb che non consentono di ricostruire K. In realtà la determinazione di a noti s ed sa richiede la soluzione del problema del logaritmo discreto che consiste nella determinazione dell'intero che corrisponde al logaritmo in una base intera di un intero. Tale problema è computazionalmente difficile.

Lo RSA

Proposto nel 1978 da Rivest, Shamir e Adleman [RSA78], da cui il nome, è il primo sistema di crittografia a chiavi pubbliche 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 dimensioni e per utilizzarlo ciascun interlocutore deve compiere le seguenti azioni:

  1. Scegliere due grandi interi p e q che siano primi; il loro prodotto corrisponde al valore di N utilizzato nel calcolo del modulo nelle operazioni di codifica e decodifica.
  2. Scegliere un intero e che sia primo rispetto ad 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 messaggio M si ottiene dalla relazione:

X=Me mod N

mentre la decifratura avviene secondo la relazione:

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

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

Algoritmo di ElGamal

Più vicino dello stesso RSA all'impostazione di Diffie ed 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à utilizzato come chiave privata Ks.
  3. Viene calcolato e reso pubblico il valore di sa che verrà utilizzato come chiave pubblica Kp.

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

  1. Scegliere un intero h e calcolare sh.
  2. Calcolare (Kpb)h che corrisponde a sbh (b è l'intero scelto come chiave 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 asimmetriche che possono essere riguardati come una generalizzazione di quelli sopra descritti. Infatti, dal punto di vista matematico un tale sistema può essere considerato come una trasformazione sopra gli elementi di un insieme che possiede la struttura di gruppo algebrico, è quindi possibile ottenere sistemi diversi e con differenti caratteristiche di sicurezza sostituendo l'insieme di base.

In particolare è possibile utilizzare come gruppo di base l'insieme dei punti di una curva ellittica definita su di un campo finito, che costituisce un gruppo abeliano [MENE93]. Il vantaggio principale che si ottiene con tale approccio è che una scelta opportuna della curva utilizzata dal sistema di cifratura consente di ottenere una complessità matematica del problema della rottura del codice nettamente superiore a quella dei problemi della fattorizzazione di un intero di grandi dimensioni o del calcolo del logaritmo discreto.

Uso degli algoritmi crittografici asimmetrici per la firma digitale
I metodi crittografici a chiavi pubbliche possono essere utilizzati per costruire strumenti per la firma digitale, la differenza principale tra le due applicazioni risiede nel ruolo delle chiavi. Nella crittografia la chiave pubblica viene utilizzata per la cifratura mentre il destinatario usa quella privata per recuperare il messaggio. Nella firma il messaggio M non è in genere cifrato ed è direttamente disponibile per il destinatario, viceversa l'autore utilizza la funzione di cifratura C e la chiave privata Ks per generare il valore di X che, aggiunto ad M, ne certifica la provenienza grazie alla segretezza della chiave privata. X costituisce la firma digitale di M. Chiunque può accertare la provenienza del messaggio utilizzando la chiave pubblica Kp per verificare che il valore della firma corrisponda al messaggio grazie alla relazione:

D(Kp,X) = M

In realtà la verifica della corrispondenza tra firma e messaggio garantisce solo che questa è stata generata mediante la chiave privata corrispondente a Kp, occorre perciò assicurare per altra via la corrispondenza tra chiavi e soggetto autore del messaggio. A tale scopo viene utilizzata la "autorità di certificazione", la quale, dopo aver accertato dell'identità del possessore della chiave privata e della corrispondenza tra questa e quella pubblica, certifica l'identità del possessore della chiave privata (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 parte di questi di ripudiare i messaggi da egli generati; infatti, essendo l'unico detentore della chiave privata è anche l'unico soggetto in grado di generare firme verificabili con la corrispondente chiave pubblica.

Sebbene qualunque sistema crittografico a chiavi pubbliche possa essere utilizzato per generare firme elettroniche, un aspetto di grande importanza pratica consiste nella disponibilità di algoritmi di cifratura e decifratura specificamente adatti per la generazione e la verifica della firma. Infatti, dato che di norma il messaggio M è direttamente disponibile per il destinatario insieme con X, non si ha alcun interesse nella possibilità di ricostruire M da X. Ciò consente di ridurre molto la lunghezza di X a beneficio dell'efficienza delle operazioni naturalmente lente di codifica e decodifica.

C'è un altro aspetto di notevole interesse pratico legato alla disponibilità di algoritmi diversi per la cifratura e la firma. Il governo americano impedisce l'esportazione di software di cifratura che utilizzi chiavi di lunghezza tale da garantire la resistenza del cifrario per un periodo relativamente lungo. Un'analoga limitazione non si applica agli algoritmi di generazione e verifica di firme elettroniche a patto che questi non siano modificabili in modo da renderli utilizzabili per la cifratura.

Lo RSA

L'uso dello RSA per generare firme elettroniche [RSA78] si basa semplicemente sull'inversione del ruolo delle chiavi rispetto a quello utilizzato per assicurare la riservatezza. Le differenze tra le due applicazioni risiedono essenzialmente nel fatto che per la firma si evita di dover applicare l'operazione di cifratura all'intero testo; ciò è particolarmente conveniente vista la complessità, e quindi la lentezza, delle operazioni coinvolte.

In pratica il testo da firmare viene "compresso" in una sorta di "riassunto", che viene spesso riferito come "impronta" digitale, mediante una opportuna funzione di 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'ordine del centinaio di bit; pertanto la generazione della firma, che viene 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 destinato alla cifratura; per generare la firma di un testo M occorre effettuare le 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 congruenza M _ Ks u + 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 fatto che la determinazione di una coppia di valori (u,v) che soddisfi la precedente equazione richiede la soluzione del problema del logaritmo discreto nel caso in cui si fissi u e si cercasse di determinare v di conseguenza; nel caso opposto, ossia fissando v e cercando di calcolare u, si incappa in una congruenza esponenziale mista 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 essenzialmente per l'introduzione di una funzione di hash H che associa a ciascun messaggio ed a ciascuna chiave un intero in un intervallo di ampiezza predefinita 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 corrispondente al 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 rispetto al precedente è la possibilità di scegliere la dimensione della firma selezionando opportunamente l'ampiezza T del codominio della funzione di hash.

DSS

Il Digital Signature Standard, proposto dal NIST (National Institute of Standard and Technology) nel 1991, è sostanzialmente una variante del metodo di Schnorr in cui la funzione di hash H ha come unico argomento il messaggio e quindi il suo valore non dipende dalla chiave di cifratura. L'utilizzazione del sistema richiede preliminarmente la generazione delle chiavi secondo la seguente procedura:

  1. Scegliere un intero P, da usare nelle operazioni di modulo, che deve essere un numero primo compreso tra 2511 e 2512.
  2. Scegliere dell'intero Q, divisore primo di P-1 compreso 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 utilizzato come chiave pubblica Kp.
Ottenute le chiavi, la generazione della firma per un 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 relazione H(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 mod Q
  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'algoritmo di Schnorr e quindi deve la sua robustezza alla complessità del problema del logaritmo discreto, tuttavia la predefinizione dei limiti di variabilità dei parametri di base ha attirato numerose critiche riguardo l'effettiva sicurezza raggiungibile.

Il processo di firma digitale
Il processo di firma digitale richiede che l'utente effettui una serie di azioni preliminari necessarie alla predisposizione delle chiavi utilizzate dal sistema di crittografia su cui il meccanismo 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 Ks e 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 periodo di validità della certificazione della corrispondente chiave pubblica. Tale periodo può essere interrotto prima del suo naturale termine dalla revoca della certificazione della chiave pubblica, che di norma viene effettuata su richiesta del proprietario nel caso in cui questi ritenga che la segretezza della sua chiave privata sia stata compromessa.

La firma viene apposta, con il processo schematicamente mostrato nella 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 riguardo le operazioni preliminari di generazione e certificazione delle chiavi, che di quelle necessarie per la sottoscrizione di ciascun documento



Figura 1 - Generazione della firma digitale

Registrazione dell'utente

La registrazione dell'utente presso una autorità di certificazione ha il duplice scopo di rendere questa certa della sua identità ed instaurare con esso un canale di comunicazione sicuro attraverso il quale verranno fatte viaggiare le chiavi pubbliche di cui viene richiesta la certificazione. All'atto della registrazione l'autorità di certificazione attribuisce all'utente un identificatore, di cui viene garantita l'univocità, attraverso il quale sarà possibile a chiunque reperire in modo diretto e sicuro i certificati rilasciati al soggetto corrispondente all'interno dei cataloghi pubblici in cui questi sono registrati.

La registrazione avviene attraverso la seguente procedura:

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

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

Generazione della coppia di chiavi

L'utente, mediante un programma adatto al sistema crittografico adottato, genera una coppia di chiavi da utilizzare una per la generazione della firma, che verrà mantenuta segreta e corrisponde perciò a Ks, e l'altra, destinata alla 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 rassicurare chiunque riceva un documento correttamente firmato circa l'identità del soggetto che ha apposto la firma. L'operazione avviene attraverso tre passi:

  1. L'utente invia alla AC la richiesta di certificazione per la chiave Kp generata nella fase precedente, autenticandola mediante la chiave ricevuta dalla AC durante il processo di registrazione. L'autenticazione può avvenire sia mediante cifratura del messaggio di richiesta, ovvero mediante la sua sottoscrizione digitale. Poiché lo scambio di messaggi implicato nella certificazione è bilaterale, in questa fase si possono utilizzare algoritmi di crittografia simmetrici.
  2. La AC genera il certificato e lo sottoscrive per garantirne la provenienza che potrà essere accertata da 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 quali può accedere chiunque abbia bisogno di accertare la validità di una sottoscrizione digitale. Questa operazione viene di norma effettuata, almeno per i cataloghi di sua competenza, dalla AC contestualmente all'emissione.

Generazione dell'impronta

Al testo da firmare viene applicata una funzione di hash appositamente studiata che produce, secondo il meccanismo sinteticamente mostrato nella 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 corrisponde la medesima impronta. Sono disponibili diversi algoritmi di generazione, quali, ad esempio, MD2, MD4 [RIVE90] e MD5 [RIVE92], originariamente progettati per operare in combinazione con lo RSA ma utilizzabili con qualsiasi cifrario. Sono disponibili anche algoritmi di hash per i quali è in corso la standardizzazione ufficiale da parte organismi internazionali, ne sono un esempio il RIPEMD a 128 e 160 bit ed il Secure Hash Algorithm (SHA-1) [JTC196].

L'utilità dell'uso dell'impronta è duplice, in primo luogo consente di evitare che per la generazione della firma sia necessario applicare l'algoritmo di cifratura, che è intrinsecamente inefficiente, all'intero testo che può essere molto lungo. Inoltre consente l'autenticazione, da parte di una terza parte fidata, della sottoscrizione di un documento senza che questa venga a conoscenza del suo contenuto. Una tipica situazione in cui si sfruttano tali caratteristiche dell'impronta è la marcatura 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 generata il precedenza.

Apposizione della firma

La firma digitale generata al passo precedente viene aggiunta in una posizione predefinita, normalmente alla fine, al testo del documento. Normalmente, insieme con la firma vera e propria, viene allegato al documento anche il valore dell'impronta digitale ed eventualmente anche il certificato da cui è possibile recuperare il valore della chiave pubblica.


Verifica della firma digitale

L'operazione di verifica della firma digitale, mostrata schematicamente in Figura 3, viene effettuata ricollocando, con la medesima funzione di hash usata nella fase di sottoscrizione, il valore dell'impronta e controllando che il valore così ottenuto coincida con quello generato per decodifica della firma digitale stessa. La disponibilità del valore dell'impronta all'interno del messaggio semplifica l'operazione.

In linea di principio non sarebbe necessario allegare alla firma digitale il certificato rilasciato dalla AC, poiché il destinatario può comunque reperirlo nei cataloghi, tuttavia la sua presenza semplifica l'operazione di verifica, che può così utilizzare l'identificatore assoluto del certificato stesso, 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 certezza circa il momento in cui questo è stato redatto ed è divenuto valido, si ricorre alla sua marcatura temporale. Questa consiste nella generazione da parte di una terza parte fidata, normalmente una AC, di una ulteriore firma digitale per il documento marcato.

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

  1. L'impronta del documento viene inviata al servizio di marcatura temporale, l'impronta costituisce un riferimento certo al testo originale ma non ne consente la ricostruzione, pertanto la marcatura può essere effettuata da una terza parte senza compromettere la confidenzialità del testo marcato.
  2. Il servizio di marcatura aggiunge all'impronta ricevuta la data e l'ora, ottenendo una "impronta marcata".
  3. L'impronta marcata viene cifrata con la chiave segreta 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 richiedente il quale la allega al documento.

 

Figura 4 - Generazione della marca temporale

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


La standardizzazione

Sotto la spinta delle applicazioni commerciali, ed in particolare di quelle bancarie, sono stati sviluppati numerosi standard relativi all'uso delle tecniche crittografiche. L'elenco che segue riporta quelli più direttamente correlati con le problematiche connesse alla firma digitale.

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

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

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

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

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

ISO/IEC 9797:1994 Information technology - Security techniques - Data integrity mechanism using a cryptographic check function employing a block cipher algorithm.

ISO/IEC 9798-1:1991 Information technology - Security techniques - Entity authentication mechanism - Part 1: General model (in revisione come DIS).

ISO/IEC 9798-2:1994 Information technology - Security techniques - Entity authentication mechanism - Part 2: Mechanisms using symmetric encipherment algorithms.

ISO/IEC 9798-3:1993 Information technology - Security techniques - Entity authentication mechanism - Part 3: Mechanisms using a public key algorithm.

ISO/IEC 9798-4:1995 Information technology - Security techniques - Entity authentication mechanism - Part 4: Mechanisms using a cryptographic check function.

ISO/IEC WD 9798-5:1995 Information technology - Security techniques - Entity authentication mechanism - Part 5: Mechanisms using zero knowledge techniques.

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

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

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

ISO/IEC 10118-2:1994 Information technology - Security techniques - Hash-functions - Part 2: Hash-functions using an n-bit block cipher algorithm.

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

ISO/IEC CD 10118-4 Information technology - Security techniques - Hash-functions - Part 4: Hash-functions using modular arithmetic.

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

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

ISO/IEC 11166-1:1994 Banking - Key management by means of asymmetric algorithms - Part 1: Principles, procedures and formats.

ISO/IEC 11166-2:1994 Banking - Key management by means of asymmetric algorithms - Part 2: Approved algorithms using the 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 - Security techniques - Key management - Part 1: Framework.

ISO/IEC 11770-2:1996 Information technology - Security techniques - Key management - Part 2: Mechanism using symmetric techniques.

ISO/IEC DIS 11770-3 Information technology - Security techniques - Key management - Part 3: Mechanism using asymmetric techniques.

Dal punto di vista della standardizzazione degli algoritmi crittografici asimmetrici non può essere ignorato lo sforzo dello IEEE americano, il quale sta sviluppando uno standard unico ed integrato comprendente tutti gli algoritmi attualmente disponibili, 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 directions in cryptography", in "IEEE Transactions on Information Theory", vol. 22 (1976), pp. 644-654.

[ELGA85] T. ElGamal, "A Public-Key Cryptosystem and a Signature Scheme Based on Discrete Logarithms", in "IEEE Transactions on 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 International Electrotechnical Commission Joint Technical Committee 1, "ISO/IEC Draft International Standard 10118-3: Information technology - Security techniques - Hash functions - Part 3: Dedicated Hash functions", 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 Digest Algorithm", Internet Activities Board, Aprile 1992.

[RSA78] R. L. Rivest, A. Shamir e L. Adleman, "A Method for Obtaining 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 smart cards", in "Journal of Cryptology", n. 4 (1991), pp. 161-174.