Sei sulla pagina 1di 4

Ricerca di Crittografia Il cifrario di Vigenre e il mio programma Daniele Baschieri Il termine "Crittografia" deriva dal greco "cryptos", cio

nascosto, segreto, e "grafos", ovvero scrittura, rappresentazione simbolica. Per crittografia si intendono tutte quelle tecniche che hanno lo scopo di rendere incomprensibili alle persone non autorizzate delle informazioni riservate, rendendone possibile l'accesso solo a una persona o a un ristretto numero di persone che conoscono il "meccanismo" per farlo. Questo si ottiene in genere prendendo il messaggio originale (detto TESTO IN CHIARO o "PLAINTEXT") e applicando su di esso un procedimento (detto ALGORITMO o CIFRARIO), utilizzando un parametro che viene definito "CHIAVE" che lo trasforma nel TESTO CIFRATO (anche detto CRITTOGRAMMA o "CYPHERTEXT"), molto diverso dall'originale. Tutta questa operazione chiamata CRITTAZIONE oppure CIFRATURA, mentre il procedimento inverso (che permette di ottenere il testo in chiaro dal testo cifrato) chiamato DECRIPTAZIONE. L'ambito in cui tutto questo si svolge detto CRITTOSISTEMA: da un crittosistema a un altro possono variare sia l'algoritmo che la chiave che il tipo di informazione codificata, e in generale gli interi procedimenti di crittazionedecrittazione. La CRITTANALISI invece quella disciplina che cerca "punti deboli" nei vari crittosistemi, nella speranza di trovare un metodo alternativo che permetta di violarne la sicurezza e di accedere al contenuto dei messaggi anche se non si autorizzati. La scienza che si occupa sia di crittografia che di crittanalisi chiamata CRITTOLOGIA. Storicamente la crittografia stata usata quasi esclusivamente da quattro gruppi di persone: i militari, i politici, gli amanti e i diaristi. Fin dai tempi pi remoti i militari hanno sempre usato le cifrature, per esempio sappiamo che Cesare ricorreva spesso alla scrittura in codice, tuttavia conosciamo solo una delle scritture segrete che utilizzava. Si tratta di una cifratura per sostituzione: ogni lettera del messaggio viene scambiata con quella tre posti pi avanti nellalfabeto. Ad esempio la frase: ciao mamma traslata di un vettore 3 diventerebbe fldr pdppd. In questo modo sono possibili soltanto 20 diverse cifrature, ecco perch questo codice molto semplice da decifrare, infatti anche andando a tentativi, sarebbe semplice trovarne la chiave. Per rendere pi complesso questo codice si sostituisce lalfabeto chiaro con un alfabeto cifrante, in cui, lalfabeto chiaro viene riorganizzato in modo arbitrario. Per decifrare questo codice senza conoscere lalfabeto cifrante o la chiave, i crittanalisti hanno registrato la frequenza relativa delle lettere di una grande mole di testi di ogni lingua e hanno cos ottenuto delle dettagliate tabelle che ne riportano la frequenza media statistica. Paragonando la frequenza relativa delle lettere del testo cifrato alla frequenza relativa delle lettere della tabella si riuscir a decifrare il messaggio; pi sar lungo il messaggio pi le frequenze saranno simili a quelle della tabella. LETTERA FREQUENZA RELATIVA 1

(lingua italiana) A ---------------> 1714 0,114 B ---------------> 160 0,011 C ---------------> 637 0,042 D ---------------> 566 0,038 E ---------------> 658 0,111 F ---------------> 141 0,009 G ---------------> 272 0,018 H ---------------> 160 0,011 I ---------------> 1563 0,104 L ---------------> 966 0,064 M ---------------> 436 0,029 N ---------------> 966 0,064 O ---------------> 1486 0,099 P ---------------> 421 0,028 Q ---------------> 85 0,006 R ---------------> 978 0,065 S ---------------> 771 0,051 T ---------------> 1024 0,068 U ---------------> 528 0,035 V ---------------> 343 0,023 Z ---------------> 123 0,008 ----------------------------------------------------------------Totali 14998 0,998 ----------------------------------------------------------------Una diretta evoluzione del cifrario di Cesare il cifrario di Vigenre: esso uno dei pi semplici cifrari polialfabetici. Blaise de Vigenre nel 15** complet gli studi iniziati da Leon Battista Alberti pittore Fiorentino cinquecentesco e proseguiti da Jhoannes Trithemius e da Gimbattista Della Porta. Ritenuto per secoli un cifrario inattaccabile, ha goduto di una fama dovuta soprattutto alla sua semplicit e alla iniziale difficolt nel decifrare il codice senza saperne la chiave. Il cifrario di Vigenre sfrutta pi alfabeti contemporaneamente: questo gli permette una maggiore difficolt computazionale in quanto dopo aver deciso una parola o una frase con cui crittare il messaggio, si procede applicando alla prima lettera del testo in chiaro la prima lettera della chiave, usando il cifrario di Cesare, alla seconda lettera del testo la seconda della chiave, e cos via. Se la lunghezza della chiave pi corta di quella del messaggio si rincomincia dalla prima lettera della chiave fino alla fine del testo. In questo modo si ottiene un messaggio che a prima vista pu risultare incomprensibile. Per esempio la frase arrivanoirinforzi usando come chiave la parola verme diventerebbe vviuzvrfuvdrwavum. Essendo la chiave molto corta possibile fare i tentativi di tutte le parole possibili di cinque caratteri e trovare il testo in chiaro, ma il metodo che riusc a soverchiare questo codice dopo anni di servizio fu quello di spezzettare il cyphertext in blocchi della stessa lunghezza (la lunghezza della parola chiave) impilarli in una matrice, in cui ogni colonna contiene lettere cifrate con lo stesso cifrario di Cesare, e successivamente decrittare il testo usando le tabelle di frequenza. 2

Ovviamente conoscere la lunghezza della chiave non cosa semplice. Fu questo infatti il principale ostacolo riscontrato da Charles Babbage nella decifrazione di questo codice iniziata intorno al 1854. Egli si accorse che nei testi cifrati molto lunghi erano presenti alcune sequenze di lettere che ricorrevano. Ipotizzando che la lunghezza della chiave coincida con un divisore della distanza in caratteri tra le due ricorrenze cos riuscito a determinare la lunghezza della chiave. Il programma che segue, in linguaggio Pascal, da me realizzato con lo scopo di crittare e decrittare un testo presente su un file e anche per tentare di forzare il codice di Vignere tramite la ricerca di parole significative. Esso si apre su un men suddiviso in 5 punti. Al primo punto il programma chiede allutente di introdurre il nome del file da aprire: questo file deve essere gi presente allinterno della stessa cartella del programma. Se il file esiste verr stampato in output il testo del suddetto file e verr richiesto allutente di introdurre la chiave. Mediante questultima verr applicato il codice di Vigenere che permetter di decrittare il testo e di stamparlo in output. Al punto due invece possibile digitare il testo che si desidera crittare: le frasi dovranno essere di lunghezza inferiore ai 255 caratteri e non potranno essere pi di 100. Dopo aver concluso la digitazione necessario premere nuovamente invio. A questo punto il programma chieder allutente la chiave con cui crittare le frasi. Il programma mostrer allutente il testo crittato e chieder con che nome dovr salvare il file contenente il suddetto testo. Il file verr salvato allinterno della stessa cartella in cui si trova il programma. Il punto 3 permette di ricercare, allinterno della prima frase di un file dato, alcune parole che lutente ritiene probabile si trovino nella suddetta riga. Per esempio la frase sono tremendamente innamorato di anna chiss se lei mi ama crittata con la parola anna diverrebbe la frase tentando tutte le possibili parole prima o poi comparirebbe il testo originale. Il mio programma per riconoscere questo testo richiede linserimento di alcune parole chiave come per esempio la parola innamorato o la parola anna. Queste parole verranno cercate per ogni possibile chiave, nel testo decifrato, quando si trover una coincidenza si sar probabilmente arrivati alla parola chiave del messaggio. Se il programma sfruttando tutte le possibili combinazioni con 36 caratteri in 5 spazi, riuscir a trovare un testo in chiaro in cui compare anche solo una di quelle parole, interromper la ricerca per chiedere conferma allutente. Se la frase ha senso compiuto allora si pu sospendere la ricerca e applicare la chiave trovata per decrittare il resto del file, mentre se non si giunti ad una frase utile si consiglia di proseguire la ricerca. Si consiglia inoltre di sfruttare parole chiave lunghe in quanto la possibilit di trovare una delle parole chiave corte in modo casuale molto alta. Ad esempio, se si sa che il file contiene una lettera di amore si consiglia la ricerca di parole quali: incredibile, innamorato/a, eternit, impossibile, tralasciando ad una prima ricerca le parole amore e eterno, in quanto troppo corte per una ricerca di questo tipo. 3

Il punto 4 visualizza coloro che mi hanno aiutato a realizzare questo programma ed i ringraziamenti. Il comando 5 consente luscita dal programma. Ogni sottoprogramma preceduto da una breve descrizione di ci che compie.

Potrebbero piacerti anche