|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Storia della crittografia
Algoritmi a chiave simmetrica (o segreta)
DES, Data Encrytion Standard
Violare
il DES
IDEA, International Data Encryption
Algorithm
Algoritmi a chiave pubblica o crittografia asimmetrica
Diffie-Hellmann
RSA
Fattorizzato
RSA-129
Fattorizzato
RSA-140
Fattorizzato
RSA-155
TWINKLE, la macchina per fattorizzare
Servizi di email criptate web-based
Link
La crittografia come modifica volontaria del testo esisteva già
al tempo
degli egiziani nel 1900 a.C. (tomba del faraone Knumotete II).
La parola crittografia ha origine greca e significa "nascosto". Un'altra
parola correlata è steganografia che significa scrittura nascosta.
Un
esempio legato all'antichità è di scrivere messaggi segreti
non
sull'argilla che ricopriva le tavolette, ma sulle stesse tavolette
che
venivano poi ricoperte d'argilla e sembravano non usate.
Gli Spartani per crittare un messaggio segreto di tipo militare usavano
2500 anni fa una striscia di papiro avvolta a spirale attorno ad un
bastone
(che costituirà la chiave di decodifica). Una volta scritto
il messaggio in
verticale sul papiro questo veniva consegnato al destinatario che,
con un
bastone dello stesso diametro poteva leggere il messaggio in chiaro.
Questo
metodo è di trasposizione perchè il messagggio è
in chiaro ma l'ordine
delle lettere è da scoprire.
Un altro metodo, questa volta di sostituzione, è stato inventato
da Giulio
Cesare: la chiave è un numero n stabilito e si sostituisce ogni
lettera del
messaggio con l'ennesima seguente.
Esempio: pippo con chiave 3 diventa snssr.
Questo metodo è facilmente attaccabile perchè basta confrontare
la
frequenza delle lettere nella lingua italiana con la frequenza dei
simboli
usati nel messaggio cifrato. Bisogna inoltre considerare che le chiavi
possibili sono solo 26, quindi al limite con un brute force si potrebbe
scovare la chiave. Data la bassa complessità [tanto bassa non
è, numero di
combinazioni possibili: 26!=4*(10^26)] del metodo usato da Cesare è
chiaro
che non fosse infallibile, ma dati i risultati militari è stato
efficace!
Il metodo di Cesare ha ispirato un sistema usato ancora oggi, il ROT-13
dove la chiave è appunto 13, quindi A->N, B->O, etc.
Il metodo che usavano gli ebrei è detto ATBASH. La sostituzione
avviene
utilizzando questa tabella dove le lettere della seconda riga sono
scritte
in ordine decrescente:
a b c d e f g h i j k l m n o p q r s t u v w x y z
z y x w v u t s r q p o n m l k j i h g f e d c b a
Messaggio: Il Libro di
Geremia
Testo Cifrato: Ro Oryil wr Tvivnrz
Lo storico greco Polibio inventò una tecnica di codifica legando
le lettere
a una coppia di numeri che ne indicava la posizione in una tabella.
La
coppia di numeri era comunicata nella notte attraverso delle torce.
Ecco un
esempio di tabella:
1 | 2 | 3 | 4 | 5 | |
1 | a | b | c | d | e |
2 | f | g | h | i j | k |
3 | l | m | n | o | p |
4 | q | r | s | t | u |
5 | v | w | x | y | z |
pippo diventa (3,5) (2,4) (3,5) (3,5) (3,4)
Se la disposizione delle lettere nella tabella non seguono l'ordine
alfabetico si capisce la difficoltà di trovare la chiave che
in questo caso
è la tabella.
L'imperatore romano Augusto usava invece un altro interessante metodo
di
sostituzione usando come chiave un'altra parola o frase. La chiave
e il
testo avevano un corrispettivo numerico, il testo cifrato risultava
una
sfilza di numeri ottenuti come somma fra testo e chiave. Esempio (testo:
spippolatori, chiave: decifralo):
a | b | c | d | e | f | g | h | i | l | m | n | o | p | q | r | s | t | u | v | z |
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 |
testo in chiaro | s | p | i | p | p | o | l | a | t | o | r | i |
chiave | d | e | c | i | f | r | a | l | o | d | e | c |
valore 13testo | 17 | 14 | 9 | 14 | 14 | 13 | 10 | 1 | 18 | 13 | 16 | 9 |
valore chiave | 4 | 5 | 3 | 9 | 6 | 16 | 1 | 10 | 13 | 4 | 5 | 3 |
valore cifrato | 21 | 19 | 12 | 23 | 20 | 29 | 11 | 11 | 31 | 17 | 21 | 12 |
testo cifrato | z | u | n | b | v | h | m | m | m | s | z | n |
Se la somma (valore cifrato) eccede 21 si ricomincia dalla a; ciò
equivale
a fare una somma modulo 21.
La decifrazione è una semplice sottrazione.
La criptoanalisi di questo metodo non beneficia della frequenza delle
lettere della lingua usata. Questo metodo può essere attaccato
con un brute
force utilizzando un dizionario di parole. Ovviamente ci si può
difendere
non usando come chiave parole di senso compiuto, ma un insieme di lettere
generate in maniera casuale.
E, se ogni volta si cambia la chiave generandola casualmente, stiamo
usando
un metodo chiamato One-Time Pad, che è difficile da superare
senza
conoscere la chiave e generando in maniera "davvero" casuale la chiave
(e
non è facile perchè si può ottenere solo osservando
fenomeni casuali
naturali). Occorre notare che non bisogna usare questo metodo per due
diversi messaggi con la stessa chiave perchè la differenza tra
testo
cifrato e testo in chiaro è uguale e, in unione a un bruteforce,
aiuta di
parecchio la criptoanalisi di questo metodo. Infatti, trascurando il
discorso della somma modulo 21 per semplificare il discorso risulta
che:
1) Cifrato1 = Testo1 + Chiave
2) Cifrato2 = Testo2 + Chiave
Sottraendo si ha:
Cifrato1 - Cifrato2 = Testo1 + Chiave - (Testo2 + Chiave) = Testo1
- Testo2
Altri metodi usatissimi per centinaia di anni prevedevano la sostituzione
delle singole parole con altre che costituivano la chiave. Spesso si
usavano più metodi insieme.
Siamo nel quindicesimo secolo quando nasce la crittografia moderna
con Leon
Battista Alberti, artista rinascimentale poliedrico, amico di un
funzionario pontificio che gli chiese di inventare un metodo di
crittografia.
L'idea partì dall'osservazione che un criptoanalista può
essere aiutato
dalle caratteristiche di una lingua come le frequenza delle lettere,
le
sillabe impossibili o più frequenti, le sequenze di lettere
caratteristiche
come le desinenze. Per rendere più difficile il lavoro del criptoanalista
altro non c'era da fare se non cambiare durante il procedimento l'alfabeto
da cui pescare la lettera cifrata: questo è il sistema polialfabetico.
Altro esempio di cifratura con il sistema del polialfabeto è
quello
inventato da un tedesco contemporaneo dell'Alberti: Johannes Trithemius.
Il
sistema fa uso di una tabella che si chiama tabula recta, formata da
26
righe (tante quante le lettere dell'alfabeto inglese) riportanti ognuna
un
alfabeto scalato di una posizione rispetto a quello precedente. La
tabella
si usa così: la prima lettera da cifrare rimane la stessa, la
seconda si
cifra con il secondo alfabeto, la terza lettera userà il terzo
alfabeto e
così via fino a ricominciare dal primo alfabeto dopo la ventiseiesima
lettera. Per rendere difficile il lavoro dei criptoanalisti si può
usare un
alfabeto disordinato o, meglio ancora (è più facile da
ricordare e
comunicare al destinatario del messaggio) una frase chiave.
L'uso della criptografia continua intensificandosi sempre di più
e
migliorandosi con il tempo fino ad avere importanza tale da cambiare
il
corso della storia durante le due guerre mondiali quando appaiono le
prime
macchine elettriche per cifrare i messaggi ma, soprattutto, per la
criptoanalisi.
I tedeschi usarono per tutta la seconda guerra mondiale una macchia
chiamata Enigma che avrebbe dovuto cifrare i messaggi in maniera sicura.
Così non successe, perchè inglesi e polacchi unendo le
loro forze furono in
grado di decifrare quasi tutti i messaggi intercettati.
L'Enigma era una macchina elettromeccanica con contatti, lampadine,
rotori
e una tastiera. Ogni lettera veniva cifrata con un alfabeto diverso
dando
luogo ad un numero sproposito di combinazioni che rendevano la decodifica
teoricamente impossibile per l'epoca. Ma ciò non fermò
gli inglesi che
trassero grande beneficio dai messaggi decodificati.
Per anni la regola generale è stata di creare algoritmi semplici
e di
impiegare chiave molto lunghe per rendere difficile la vita al
criptoanalista. Oggi l'orientamento è opposto data la potenza
di calcolo di
cui si può disporre per fare un bruteforce, quindi si creano
algoritmi
complicatissimi da decifrare in modo che anche se il nostro avversario
avesse parecchio materiale su cui condurre un'analisi, gli sarebbbe
pressocchè inutile.
Oggi la crittografia serve per il commercio elettronico, l'autenticazione,
la riservatezza delle informazioni, etc. Uno dei presupposti fondamentali
è
che si suppone che il criptoanalista di turno conosca in generale il
nostro
metodo di crittografia, questo perchè è davvero un disastro
cambiare ogni
volta metodo di crittografia ogni qual volta si ha il sospetto che
qualcuno
sia riuscito a infrangerlo. Da questo presupposto segue che i metodi
si
basano sulle chiavi di codifica e decodifica.
Se la chiave è la stessa sia per la codifica che per la decodifica
ricadiamo nel caso delle crittografia classica: questi sono i metodi
a
chiave simmetrica o segreta. Gli algoritmi a chiave asimmetrica o pubblica
(che risalgono agli anni '70) utilizzano coppie di chiavi complementari.
Una delle due chiavi è pubblica e conosciuta da tutti e serve
per cifrare i
messaggi, mentre l'altra è segreta e riservata al destinatario
dei messaggi
che la utilizzerà per decifrarli. Le chiavi vanno a coppie e
quindi solo
una chiave può decifrare il messaggio generato utilizzando la
chiave a lei
complementare. In questo modo possiamo trasmettere tranquillamente
la
nostra chiave pubblica senza paura che venga intercettata.
Spesso ci si orienta per metodi ibridi simmetrici-asimmetrici (come
succede
nel famoso PGP) perchè il solo metodo asimmetrico non è
efficiente (è
lento!) per grandi moli di dati e, se dovessimo inviare lo stesso messaggio
a più persone, dovremmo cifrarlo ogni volta con la giusta chiave.
PGP (Pretty
Good Privacy) è un pacchetto freeware che
realizza la crittografia a chiave pubblica; permette l'interscambio
di
documenti elettronici realizzando segretezza, autenticità, integrità
dei
dati su un canale insicuro. PGP è principalmente pensato per
lo scambio di
documenti via Internet, ma può essere usato su un qualsiasi
canale
insicuro; è indubbiamente un prodotto di qualità, e non
c'è da dubitare
dell'integrità morale del suo autore (che potrebbe come sempre
aver
lasciato delle trap-door), Philip Zimmerman. Egli infatti lo ha sviluppato
con il chiaro intento di permettere la privacy nell'interscambio di
posta
elettronica su Internet, con un approccio fortemente critico verso
la
politica di NSA e del Congresso Americano di progettare un monopolio
dei
sistemi di crittografia; P. Zimmerman è stato sotto inchiesta
per due anni
e mezzo, accusato di esportazione non autorizzata di materiale
crittografico, ed è recente la notizia che le autorità
federali
statunitensi hanno deciso di non perseguirlo penalmente.
Standard federale ancora oggi ufficiale (nella versione triplo-des)
per gli
USA, è nato nel 1977 per implementazioni per lo più hardware
come
derivazione di Lucifer, un algoritmo di IBM nato nel '70, su insistenza
del
National Bureau of Standard per difendere dati riservati ma non segreti
militari.
Il DES brevettato nel 1976 da IBM è royalty-free dal 1993.
Il DES è un codice cifrato a blocchi (si dice che un codice
è cifrato a
blocchi quando si applica un codice cifrato a un bit, byte, parola
o gruppi
di parole alla volta). Il blocco che si usa per crittografare è
di 64 bits
(8 sottoblocchi da 8 bits). Dato che l'ultimo bit di ogni sottoblocco
è di
controllo, i bit utili sono 56.
Per cifrare il testo si divide in blocchi da 64 bits che sono cifrati
in
successione. Se un messaggio non riempie i 64 bits si può completare
in
diversi modi: si possono aggiungere zeri, si possono aggiungere bit
random
specificando nell'ultimo quanti se ne aggiungono, etc.
Il DES è molto usato in ambito commerciale perchè nonostante
consti di
numerosi passaggi, questi sono tutti relativamenti semplici come XOR,
sostituzioni e permutazioni.
Occorre ricordare che il DES cambia solo la chiave; questo porta vantaggi
economici immediati, ma appena verrà scoperto il modo per forzarlo
(senza
bruteforce) occorrerà cambiare radicalmente tutto. Un altro
difetto
fondamentale è lo spazio limitato delle chiavi pari a 2^56.
Per ovviare al
problema si tenta di allungare le chiavi o di applicare più
volte il DES
(triplo-DES o TDES).
Il progetto originale dell' IMB per il DES prevedeva una chiave più
lunga
dei 56 bits usati di default. Probabilmente il progetto originario
fu
influenzato dall'NSA che impose all'IBM una chiave sicura, ma comunque
alla
portata dei loro potenti mezzi.
Nel gennaio 1998 la RSA Laboratories lanciò il "DES challenge
II"
coordinato e risolto da distributed.net in 39 giorni.
Record presto battuto, nel 17 luglio 1998.
L'EFF, Electronic Frontier Foundation's, costruì una macchina
(DES Cracker
machine) per distruggere
il DES e ha scritto un libro (maggio 1998) dove è
spiegato nei minimi dettagli come si è proceduto.
La macchina del costo di 210.000 $ (80.000 per lo sviluppo e il rimanente
per i materiali impiegati, il software è stato scritto da volontari
in 2
settimane) forza un DES-56 bits in meno di 3 giorni. Il progetto è
stato
completato in 18 mesi.
Hanno così dimostrato ai loro "stolti" (così li definiscono
nel libro)
governanti che il DES può essere forzato con una macchina dedicata.
Qualche
giorno prima un funzionario del dipartimento di giustizia, Robert Litt,
si
affannava a dire che non era possibile che l'FBI possesse macchine
per
craccare il DES.
6 mesi dopo, 19/01/1999, Distributed.Net lavorando con un network mondiale
in Internet di 100.000 pc e con il DES Cracker della EFF, vinse l'RSA
Data
Security's DES Challenge III con il tempo record di 22 ore e 15 minuti!
Dal novembre 1998 il DES non è più l'algoritmo standard
federale; è
sostituito dal triplo-DES finchè il nuovo AES non sarà
pronto.
Creato nel 1991 da Xuejja Lai e James L. Massey, è, come
il DES, codice
cifrato a blocchi di 64 bits con chiave, però, di 128 bits.
Anche IDEA usa
calcoli semplici basati su operazioni (addizioni e moltiplicazioni)
modulari, scambi e concatenamenti. Le sottochiavi usate nel procedimento
sono tutte diversi e a 16 bits.
Con questo tipo di crittogafia è stato risolto il problema
della gestione
delle chiavi che non occorre più trasmettere al destinatario
del messaggio
per la decodifica. Il concetto di crittografia simmetrica è
stato
introdotto nel 1976 da Whitfield Diffie e Martin Hellman e si basa
sul
concetto fondamentale che un messaggio codificato con una precisa chiave
pubblica può essere decodificato SOLO dalla corrispondente chiave
privata
che è unica ed associata strettamente a quella pubblica; ciò
si basa anche
su un dato matematico per cui, impiegando 1024 bits, per ottenere la
(unica) chiave segreta da quella pubblica occorrerebbe una potenza
di
calcolo pari a una rete di milioni di computer al lavoro per 1000 anni!
Gli algoritmi a chiave pubblica, per la loro lentezza, sono usati spesso
per cifrare la chiave di sessione con cui verrà codificato il
messaggio
usando la crittografia simmetrica.
Nel 1976 due crittologi americani, Diffie ed Hellmann, pubblicarono
un
fondamentale lavoro teorico nel quale, ipotizzando di poter disporre
di un
cifrario "asimmetrico", dimostravano la fattibilità di sistemi
crittografici di nuovo tipo, adatti alla crittografia di massa mediante
il
concetto delle "chiavi pubbliche".
Questo algoritmo è stato sotto brevetto fino al 29/4/97. Basa
la sua
difficoltà di decodifica sui problemi logaritmici. E' considerato
sicuro
con chiavi lunghe e generatori adatti.
Nato a due anni dal Diffie-Hellman (e brevettato il 29/9/1983 ,
scadenza
nel 2000 in USA, libero nel resto del mondo), questo algoritmo è
ancora
oggi molto usato (dato in licensa a 350 compagnie, conta un numero
di
motori di codifica installati pari a circa 300 milioni). L'acronimo
individua le iniziali degli inventori, i tre ricercatori del MIT Ron
Rivest, Adi Shamir e Leonard Adleman. La sua potenza si basa sull'estrema
difficoltà di ricreare la chiave segreta da quella pubblica
basandosi su
funzioni unidirezioni e quindi invertibili ma tali che la funzione
diretta
sia banale, ma quella inversa sia estremamente difficoltosa. Ecco un
esempio che dovrebbe chiarire e che è appunto l'idea su cui
si basa l'RSA:
è facilissimo trovare il prodotto di due numeri molto grandi,
ma dato il
prodotto sarà estremamente difficoltoso trovarne i 2 fattori
primi.
Illustriamo i passaggi e l'esempio (che sarà fatto con numeri
piccoli per
non complicare):
1) Prendiamo due numeri primi p(=3) e q(=11) molto grandi ed n(=33)
sia il
loro prodotto.
2) Prendiamo e(=3) che deve essere: minore di n, dispari e primo con
(p-1)(q-1). [ (p-1)(q-1)=(3-1)(11-1)=2*10=20 ]
3) Calcolare d(=7) in modo che: d*e=1 MODULO (p-1)(q-1). Significa che
d*e
diviso (divisione intera) (p-1)(q-1) dà come risultato 1. Infatti
d*e=3*7=21/20=1.
4) Cifriamo il testo con c=(t^e) MODULO p*q.
t, intero positivo, è il testo in chiaro. il risultato c è
il testo
cifrato.
La chiave pubblica conterrà n ed e(esponente pubblico), quella
privata n e
d(esponente privato).
Se t sono i numeri da 0 ad 8, li cifreremo elevandoli alla terza e facendo
il risultato modulo 33.
plain-text cipher-text
0 _____________
0
1 _____________
1
2 _____________
8
3 _____________
27
4 _____________
31 4*4*4=64 MODULO 33 = 31
5 _____________
26 5*5*5=125 MODULO 33 = 125-(33*3)=26
6 _____________
18 6^3=216-(33*6)=18
7 _____________
13 7^3=343-(33*10)=13
8 _____________
17 8^3=512-(33*15)=17
La chiave per l'RSA è il modulo n. Più è grande
la chiave, più sarà sicura
(ma lenta) la cifratura. Con 1024 bits si è abbastanza (molto?)
sicuri.
Per craccare un RSA a 256 bits basta un potente home computer; andando
a
384 bits servirebbe un'organizzazione universitaria o una grande azienda;
la crittografia a 512 bits può essere superata da agenzie statali.
Solo
chiavi a 2048 bits possono ritenersi sicure per qualche anno a ogni
livello
(e chissà...).
Se volessimo usare un sistema ibrido si potrebbero usare RSA e DES.
Con il
DES produciamo una chiave casuale (che cifreremo con l'RSA) che servirà
per
crittare il messaggio in maniera simmetrica. Spedisco poi il messaggio
e la
chiave DES cifrata con la chiave pubblica RSA al suo proprietario che
con
la sua chiave segreta decritterà prima la chiave che impiegherà
per
decodificare il messaggio.
Questo si fa perchè DES è da due (a livello software)
a 4/5 ordini (a
livello hardware) di grandezza più veloce dell'RSA.
Nel marzo 1994, usando 1600 computer connessi a Internet, Atkins
e altri
fattorizzarono un numero di 129 cifre (426 bits) in 8 mesi di lavoro.
Una studio del 1997 stimava in un milione di dollari il costo per forzare
un RSA con chiave a 512 bits.
Curiosità: il numero di numeri primi minori o uguali a n è
asintotico a
n/ln n. Quindi il numero di numeri primi di lunghezza minore o uguale
a 512
bits è di circa 10^150, cioè più grande del numero
degli atomi
dell'universo conosciuto. Questo la dice lunga sull'enorme disponibilità
di
chiavi diverse.
Notizia del marzo 1999 apparsa sul mensile Crypto-Gram: è
stato
fattorizzato un RSA-140. Un nuovo record è stato stabilito da
Herman Riele
e il suo gruppo ad Amsterdam avendo fattorizzato un numero di 140 cifre
(456 bit). Questo numero è stato una delle sfide dell'RSA, era
il prodotto
di due numeri primi molto grandi, proprio il tipo di numeri usati nel
criptosistema RSA.
La mole di lavoro è stata stimata in 2000 anni-mips (mips=milioni
di
istruzioni al secondo, un anno-mips corrisponde alla potenza di calcolo
di
una macchina che macina per un anno un milione di istruzioni al secondo.
Un
DEC 11/780 è una macchina mips. Un Pentium II di fascia alta
è una macchina
da 200 mips. Il supercomputer per simulare esplosioni nucleari installato
al Sandia National Laboratory è una macchina da 1.8 milioni
di mips).
Per l'impresa è stato usato un algoritmo detto "a setaccio di
numeri", lo
stesso usato per fattorizzare un RSA-130 impiegherebbe 1000 mips-anni,
per
un RSA-150 1500 mips-anni. L'algoritmo non scala come ci si aspetterebbe,
ma le tecniche di fattorizzazione diventano sempre più efficienti
e veloci
perchè i computer diventano sempre più veloci, le macchine
possono lavorare
in rete, gli algoritmi migliorano continuamente di pari passo alle
ricerche
di matematica.
E' stato già avviato un progetto per fattorizzare un RSA-155
(512 bit) che
sarà pronto per fine 1999.
Sono stati un pò più veloci della fine d'anno promessa
e così è il 22
agosto quando il solito Herman Riele annuncia l'impresa compiuta ad
Amsterdam su un numero da 155 cifre (512 bit) del tipo degli stessi
usati
per l'RSA in quanto prodotto di due fattori primi da 78 cifre. 300
macchine
tra workstation SGI e PC Pentium hanno lavorato alacremente per sette
mesi
durante la notte e i weekend. Usando il solito algoritmo a setaccio
si sono
impiegati 8000 anni-mips in 3.7 mesi per la fase cosiddetta "di setaccio"
e
224 ore-CPU e 3.2 Gigabytes di memoria per la seconda fase di riduzione
matriciale su un Cray C916.
Lo sforzo è stato 50 volte più facile che craccare il
DES. Fattorizzare le
chiavi usate per il commercio elettronico è sempre più
facile e lo sarà
ancor di più in futuro. Questa impresa deve mettere in allarme
perchè la
maggior parte dei protocolli sicuri usati in Internet usano RSA a 512
bits.
Grosse e medie società come Compaq e Microsoft usano ancora
per i loro
magazzini on-line l'RSA a 512 bit. Occorre inoltre riflettere sul fatto
che
è probabile che qualche organizzazione in segreto già
forzi abitualmente
comunicazioni private e/o segrete.
All'Eurocrypt '99, Adi Shamir (la S dell'acronimo RSA) presenta
l'idea per
una macchina che potrebbe incrementare la velocità di fattorizzazione
attuale di 100-1000 volte. Chiamata TWINKLE (The Weizmann INstitute
Key
Locating Engine), fattorizza chiavi di 512 bits.
La macchina opera essenziamente in due passi: il primo fa da setaccio
e
attua una massiccia ricerca parallela di equazioni con una certa relazione.
Appena un certo numero di relazioni è trovato, c'è una
massiccia operazione
matriciale per risolvere un'equazione lineare e produrre i fattori
primi.
Shamir ha teorizzato l'uso di tecniche elettro-ottiche per la prima
fase di
setaccio, idea peraltro non nuova perchè si rifà a quella
di D.H. Lehmer
che pensò nel 1930 di usare tecniche meccanico-ottiche. La macchina
sembra
non sia ancora stata costruita. E' da notare che questa nuova
macchina non
risolve il problema di prestazione del secondo passaggio che riguarda
operazioni sulla matrici. La complessità del secondo passaggio
esplode
nella fattorizzazione di numeri enormi: con un numero a 1024 bit, per
esempio, il secondo passaggio richiederebbe 10 terabytes di memoria
(non di
memoria di immagazzinamento ma di vera memoria per il computer).
Questa macchina non introduce nessun concetto matematico innovativo,
ma
semplicemente esegue operazioni già conosciute più velocemente.
L'idea è semplice: così come si entra in Hotmail e
si spediscono e ricevono
messaggi, allo stesso modo lo si può fare, utilizzando però
email criptate
senza dover scaricare nessun software.
HushMail, basato su PGP e S/MIME-like,
sfrutta java.
Il mittente entra in HushMail e, attraverso un'applet java, può
mandare un'email criptata. Anche il destinatario deve avere un account
su
HushMail. Gli account possono essere anonimi. Gli algoritmi sono ElGamal
a
1024 bit e Blowfish. La chiave privata personale è immagazzinata
sul server
di HushMail e l'unica cosa che la protegge da accessi più o
meno illegali
al server è una passphrase. L'altra debolezza è costituita
dall'applet java
che non si può mai sapere se è quella corretta o un cavallo
di Troia. Anche
certificando l'applet ci sarebbero dei problemi. L'ultimo problema
è legato
alla collocazione fisica del server, che nonstante la compagnia che
lo
gestisce sia di Antigua, è collocato in Canada, che notoriamente
è molto
più suscettibile ad azioni legali.
Nonostante tutto HushMail sembra una ragionevole implementazione dell'idea.
Esistono altri servizi come http://www.ziplip.com,
http://www.ynnmail.com,
http://www.zixmail.com che sono
molto meno sicuri fornendo una protezione
davvero blanda e facilmente attaccabile.
Insomma, le email web-based criptate sono più sicure di una
email non
criptata, ma meno sicure di una email criptata con PGP per molti motivi:
i
server sono obiettivi di attacchi, le connessioni anche se SSL non
sono
immuni da spoofing, etc.
La Guida Introduttiva al Programma di Crittografia a Chiave Pubblica
PGP,
di Giorgio Chinnici, chiara e completa.
http://www.ecn.org/crypto/crypto/guidapgp.htm
Cracking DES: Secrets of Encryption Research, Wiretap Politics, and
Chip
Design by the Electronic Frontier Foundation
http://www.eff.org/descracker/
http://cryptome.org/cracking-des.htm
RSA DES Challenge II
http://www.rsa.com/rsalabs/des2/
Cryptographic Algorithms
http://www.cs.hut.fi/ssh/crypto/algorithms.html
CRYPTO-GRAM
A free monthly newsletter providing summaries, analyses, insights,
and
commentaries on computer security and cryptography.
CRYPTO-GRAM is written by Bruce Schneier. Schneier is founder and CTO
of
Counterpane Internet Security Inc., the author of "Applied Cryptography"
(John Wiley & Sons, Inc., 1996) and an inventor of the Blowfish,
Twofish,
and Yarrow algorithms. He served on the board of the International
Association for Cryptologic Research, EPIC, and VTW.
http://www.counterpane.com/crypto-gram.html
Crypto++ is a fine, free crypto source code library. You can find download
instructions on the Crypto++ home page at:
http://www.eskimo.com/~weidai/cryptlib.html
Crittografia e Sicurezza su Reti - UNISA
Articolo di del0rean apparso su BUTCHERED
FR0M iNSiDE n° 6
CRiTT0SiSTEMi A CHiAVE PUBBLiCA : [DH76] &
RSA