Crittografia, istruzioni per l'utilizzo
Le firme digitali saranno presto protettedal sistema basato sull'algoritmo Rsa
La cifratura del messaggio garantiràassoluta sicurezza ai documenti elettronici


di
Leonardo Felician
(Docente di Sistemi informativi presso il dipartimentodi Ingegneria elettrotecnica, elettronica e informatica dell'Universitàdi Trieste)

Per trovare piena applicazione in Italia, la validitàgiuridica del documento elettronico sancita dal secondo commadell'articolo 15 della legge 15 marzo 1997 n. 59 (cosiddetta «Bassanini1»), necessita ancora del regolamento in fase di emanazionea cura dell'Autorità informatica nella Pubblica amministrazione(Aipa). E' già noto però che le firme digitali cheautenticheranno i documenti elettronici verranno garantite conmetodi di crittografia a chiave pubblica, il più modernodei sistemi crittografici, basato sull'algoritmo Rsa pubblicatoper la prima volta nel 1978 da Rivest, Shamir e Adleman.

La scelta di questa tecnica non è un fattodi moda, ma di praticità da un lato e di sicurezza dall'altro.L'algoritmo Rsa è di tipo asimmetrico: vengono usate duechiavi, una per crittografare, l'altra per decifrare, ma non ènecessario scambiarsi chiavi prima di inviare il messaggio crittografato,perché la chiave di cifratura può tranquillamenteessere resa pubblica (ad esempio, messa a disposizione su Interneto stampata in un bollettino ad ampia diffusione). La conoscenzadella nostra chiave pubblica permette a chiunque di mandarci messaggicifrati, che solo noi potremo decifrare, ma non dà alcunainformazione sulla nostra chiave di decifrazione segreta.

Il sistema basa la sua sicurezza proprio sul fattoche è computazionalmente molto impegnativo trovare la chiaveprivata a partire da quella pubblica.

Il problema della fattorizzazione di un numero grande,diciamo di 200 cifre, cioè la sua scomposizione in numeriprimi, è stato studiato fin dal tempo degli antichi greci,ma a tutt'oggi richiederebbe su un grande computer un tempo dicalcolo di un miliardo di anni.

Facciamo un esempio semplice e scomponiamo il numero29.083. Dopo qualche ora di tentativi si può giungere allafattorizzazione 127x229. L'operazione contraria, cioè laverifica che il prodotto dei due fattori dà il numero originale,richiede invece pochi secondi: ecco perché la fattorizzazionecostituisce un ottimo punto di partenza per la realizzazione diuna funzione unidirezionale che protegga i nostri messaggi segreti.

E' noto che con la funzione modulo, indicata "mod",si intende il resto della divisione intera per un numero, ad esempio18 mod 7=4 (perché 18:7=2 con resto di 4). Per familiarizzarecon l'Rsa può servire allora un esempio semplice, con numeripiccoli, che non offrono certo una buona protezione, ma aiutanoa capire il meccanismo. Partiamo dalla costruzione delle chiavipubblica e privata, secondo l'algoritmo in tabella 1. Per manteneresemplici i calcoli sia p=3, q=5, da cui n=15. Scegliamo ad esempioD=11; allora 11E mod 8=1 da cui E=3. La chiave pubblica èpertanto (3,15) e la chiave privata (11,15).

La cifratura del messaggio avviene ora in due passi:nel primo, il testo da cifrare, solitamente alfanumerico, vieneconvertito in un numero, solitamente piuttosto lungo; nel secondo,il numero risultante viene sottoposto alla cifratura a chiavepubblica.

La conversione di un testo in numero è bencollaudata e usata in parecchi altri campi dell'informatica, adesempio nelle funzioni hash, che stanno alla base di molte tecnichedi archiviazione di dati, o ancora nelle tecniche di indicizzazionee ricerca nei testi. Fondamentalmente basta prendere la rappresentazionedi bit alfanumerica del testo e leggerla come se fosse un numeroper ottenere la conversione: ad esempio, la lettera "A",indicata in forma binaria 11110001 nella codifica Ebcdic usatadai grandi elaboratori, letta come numero binario significa 241.Vengono solitamente adottati accorgimenti che risparmiano spazio,comprimendo le sequenze generate per non renderle troppo lunghe,ma - al di là dei dettagli - un qualunque testo, lungoo breve, può essere facilmente convertito in un numero,sufficientemente lungo.

A questo punto il messaggio "m" da inviare(per fare un esempio molto maneggevole, sia esso m=13) viene crittografatoadottando il procedimento Rsa e usando la chiave pubblica deldestinatario, nell'esempio (3,15). Il processo di cifraturaè semplicissimo (come in tabella 2): c=m3 mod 15, che nell'esempiosignifica calcolare il resto intero della divisione per 15 di13 elevato alla terza potenza (2197): il testo cifrato cioèvale c=7.

Questo testo può essere decifrato per ritornareal valore originale soltanto se si conosce la coppia di chiavisegrete, nell'esempio (11,15). Basta infatti eseguire l'operazionem=711 mod 15 per ottenere m=13. Riottenere questo risultato senzaconoscere la coppia che costituisce la chiave segreta non èimpossibile, ma è molto lungo. Con chiavi lunghe 200 cifre(considerate strategiche negli Stati Uniti, al punto che il softwareche le manipola non può essere esportato) la ricostruzionedella chiave segreta è praticamente impossibile in tempiragionevoli anche per il più potente computer oggi esistente.

(Ndr: ripreso da Il Sole-24 ore del 13 febbraio1998)