|
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:
- A e B scelgono pubblicamente un insieme di interi
G=[0,N-1] ed un suo elemento s.
- A sceglie in modo casuale un elemento a di G,
calcola sa mod N e lo invia a B.
- B sceglie in modo casuale un elemento b di G,
calcola sb mod N e lo invia ad A.
- A, ricevuto sb, calcola K= (sb)a
- 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:
- 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.
- Scegliere un intero e che sia primo rispetto
ad M=(p-1)¥
(q-1).
- Calcolare l'intero d per il quale risulta e¥
d mod M = 1.
- 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:
- Vengono scelti gli interi N ed s, con 1 £
s £
N-1, che sono resi pubblici.
- Viene scelto un intero a che verrà utilizzato
come chiave privata Ks.
- 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:
- Scegliere un intero h e calcolare sh.
- Calcolare (Kpb)h
che corrisponde a sbh (b è l'intero scelto come
chiave privata da B e quindi sb è la sua chiavepubblica).
- Calcolare M sbh.
- 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:
- Generare casualmente un intero h nell'intervallo
[0, N-1] che sia primo rispetto N-1.
- Calcolare u=sh mod N.
- Risolvere rispetto a v la relazione di congruenza
M _ Ks
u + h v mod (N-1).
- 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:
- Generare casualmente un intero h nell'intervallo
[0,N-1].
- Calcolare u=sh mod N.
- Calcolare il valore della funzione di hash corrispondente
al messaggio ed ad u, ossia e=H(M,u).
- Calcolare v=Ks e + h mod N
- La firma di M è la coppia (v,e).
La verifica si effettua nel modo seguente:
- Calcolare sv.
- 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:
- Scegliere un intero P, da usare nelle operazioni
di modulo, che deve essere un numero primo compreso tra 2511
e 2512.
- Scegliere dell'intero Q, divisore primo di P-1
compreso tra 2159 e 2160.
- Scegliere un intero G, nell'intervallo [0,P-1].
- Scegliere di un intero x nell'intervallo (0,Q),
che costituisce la chiave privata Ks.
- 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:
- Scegliere casualmente un intero h compreso nell'intervallo
(0,Q).
- Calcolare l'intero u = (Gh mod P)
mod Q.
- Determinare il valore di v risolvendo la relazione
H(M)= Ks u + h v (mod Q).
- La firma di M è la coppia (u,v).
La verifica viene condotta mediante la seguente procedura:
- Determinare il valore w tale che w v = 1 mod
Q
- Calcolare i = H(M) w mod Q.
- Calcolare l = u w mod Q.
- Calcolare t = ((Gi Kp)
mod P) mod Q.
- 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:
- la registrazione dell'utente presso una Autorità
di Certificazione (AC),
- la generazione di una coppia di chiavi Ks
e Kp,
- la certificazione della chiave pubblica Kp,
- 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:
- generazione dell'impronta del documento da firmare,
- generazione della firma mediante cifratura dell'impronta,
- 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:
- L'utente richiede alla AC la registrazione fornendo
la documentazione richiesta da questa per accertare l'identità
del richiedente.
- Verificata la validità della richiesta
AC attribuisce all'utente un identificatore di cui essa garantisce
l'univocità.
- La AC inserisce l'utente con l'identificatore
attribuitogli nei cataloghi di utenti registrati che essa gestisce
.
- 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:
- 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.
- La AC genera il certificato e lo sottoscrive
per garantirne la provenienza che potrà essere accertata
da chiunque utilizzando la chiave pubblica di AC.
- 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:
- 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.
- Il servizio di marcatura aggiunge all'impronta
ricevuta la data e l'ora, ottenendo una "impronta marcata".
- 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.
- 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.
|