In rete:
www.elegio.it/doc/tn/vigenere.html
Algoritmo di Vigenère. Versione base (non sicura: solo per scopi didattici)
Vista la sua semplicità si consiglia di guardare direttamente il sorgente JavaScript
all'inizio di questa pagina.
Nota: Usa solo i 64 caratteri Unicode tra 63 e 126 inclusi ossia
da "?" a "~" . Dunque ignora le cifre, gli spazi bianchi, l'apice
ed il doppio apice, le parentesi tonde, la punteggiatura e i simboli di
inizio e fine delle marche ossia
"<" e ">". Per indicare separatori tra parole si consiglia l'uso dei caratteri "_"
oppure "|" e per indicare cifre usare i loro nomi (uno, due, tre...) separandoli, ad esempio,
col carattere "\". Dunque 1946 potrebbe essere scritto come uno\nove\quattro\sei.
La decifrazione si fa usando come chiave la chiave usata nella cifratura cambiata
di segno. La chiave 0 non produce cifratura.
Nota
Normalmente l'algoritmo di Vigenère usa come chiave una frase facilmente
memorizzabile e questa frase viene ripetuta quanto serve quando
il testo da criptare risulta più lungo della frase stessa.
L'uso di una chiave breve, e dunque
ripetuta diverse volte consecutivamente, è una grave debolezza dell'algoritmo
perché, con una appropriata analisi delle frequenze, è possibile indovinare sia la chiave
che il testo in chiaro.
In questo esempio viene viceversa usato un generatore di numeri pseudocasuali
che genera una chiave praticamente di lunghezza infinita e dunque molto
meno attaccabile. La chiave è semplicemente il numero di partenza del
generatore di numeri pseudocasuali e il segno indica se il disturbo va aggiunto
o sottratto al testo in chiaro. Per riottenere il testo in chiaro
basta quindi usare la stessa chiave in valore assoluto ma cambiata di segno.
Per attaccare questa cifratura basta dunque conoscere l'algoritmo
adottato per il generatore di numeri pseudocasuali e ... tentare tutte
le chiavi sperando che il codificatore abbia preferito usare come chiave
un numero piccolo. Disponendo di un processore adeguatamente veloce
l'attacco potrebbe avere successo.
Altre pagine sul tema