|
|
APPENDICE
Tra gli algoritmi di crittografia a chiave pubblica il più famoso ed utilizzato va sotto il nome di RSA. RSA è l’acronimo di Rivest Shamir Adleman, ossia dei nomi degli autori di un testo rivoluzionario nel mondo della crittografia che nel 1978 introdusse questo cifrario a chiave pubblica. La sua struttura è concettualmente molto semplice, ed è stata sottoposta all’analisi dei migliori crittoanalisti per anni. L’algoritmo è oggi utilizzato ampiamente in molti standard di crittografia, e rappresenta dunque uno strumento valido e testato. E’ riconosciuto come algoritmo crittografico nello standard ISO 9796 e come algoritmo di sicurezza nello standard ITU-T X.509, è inoltre parte degli standard SSL, S/MIME, IPSec, etc. L’algoritmo sfrutta alcune proprietà dei numeri primi, e fa leva sulla difficoltà di fattorizzare un numero prodotto di due numeri primi. Vediamo in dettaglio i processi di generazione delle chiavi e di cifratura per capire nel concreto come funzionano i meccanismi della crittografia a chiave pubblica. Creazione della coppia di chiavi I passi da seguire per la definizione di una coppia di chiavi pubblica/privata sono: · q detto modulo 3) Si sceglie un intero e, detto esponente pubblico, più piccolo di n, tale che e sia primo rispetto all’intero (p-1)(q-1), cioè e non è divisibile per (p-1)(q-1). 4) Si sceglie un altro intero d, detto esponente privato, tale che (ed-1) è divisibile per (p-1)(q-1)
La coppia <n,e> è detta chiave pubblica, mentre la coppia <n,d> è detta chiave privata. Dalla conoscenza della chiave publica <n,e> è difficile risalire a d, e dunque alla chiave privata. E analogamente, dalla conoscenza della chiave privata <n,d> è difficile risalire ad e, ossia alla chiave pubblica. Va notato che il processo non è impossibile, ma è molto difficile. In linea di principio procedendo con una ricerca esaustiva si possono provare tutte le combinazioni ed arrivare alla soluzione, ma con numeri così grandi questo compito diventa improponibile. In realtà c’è una strada più veloce della ricerca esaustiva, se infatti si riuscisse a fattorizzare n (il modulo, presente in entrambe le chiavi) e ricavare i due numeri p e q che lo generano, il processo sarebbe immediato. Il presupposto su cui si basa l’intera crittografia a chiave pubblica è proprio nella difficoltà di risalire da un numero n al prodotto di numeri primi che lo genera: non esiste nessun algoritmo matematico che lo consenta allo stato attuale delle ricerche.
Consideriamo ora un messaggio m, che immagineremo per comodità come un numero intero, ma che è rappresentativo ad esempio di una sequenza di bit rappresentanti il messaggio in chiaro originale. Dovremo poi verificare che
Vediamo allora come viene effettuata la cifratura del messaggio m usando le chiavi precedentemente introdotte. Cifratura e Decifratura Supponiamo che Alice voglia mandare un messaggio m a Bob:
Quando Bob riceve il testo cifrato c gli è sufficiente usare la sua chiave privata <n,d> per decifrare il messaggio e riottenere m: Bob effettua cd mod n = m.
Esempio pratico di cifratura
Supponiamo di voler verificare numericamente queste procedure matematiche, useremo dei numeri molto piccoli, e “genereremo” la nostra coppia di chiavi.
Quindi le due chiavi sono kpub=<33,3> e kpriv=<33,7>
Per spedirci un messaggio cifrato il nostro interlocutore dovrà possedere la nostra chiave pubblica kpub. Il messaggio da spedire m dovrà essere minore di n, cioè m<33 e il testo cifrato c sarà allora: c= me mod n=m3 mod 33. Analogamente la decifratura sarà c7 mod 33=m
Per via dei piccoli numeri primi scelti, questo cifrario è appena sufficiente per cifrare blocchi di k bit dove deve essere 2k<33, e dunque k=5. Ma ci consente comunque di codificare semplici caratteri (in codifiche ASCII numeriche) a blocchi di un carattere per volta.
II. DOCUMENTI E NORMATIVA ITALIANA SULLA FIRMA DIGITALE La documentazione si compone di: · CIRCOLARE 26 luglio 1999, n. AIPA/CR/22: Modalità per presentare domanda di iscrizione nell’elenco pubblico dei certificatori.· CIRCOLARE 19 giugno 2000, n. AIPA/CR/24 : Linee guida per l'interoperabilità tra i certificatori iscritti nell’elenco pubblico.· Decreto del Presidente della Repubblica 10 novembre 1997, n. 513: Regolamento recante criteri e modalità per la formazione, l'archiviazione e la trasmissione di documenti con strumenti informatici e telematici.· DECRETO DEL PRESIDENTE DEL CONSIGLIO DEI MINISTRI 8 FEBBRAIO 1999: Regole tecniche per la formazione, la trasmissione, la conservazione, la duplicazione, la riproduzione e la validazione, anche temporale, dei documenti informatici. |