Proiect Istoric 5 februarie 2011
Universitatea din Craiova, Facultatea de Matematic˘a ¸si si Informatic Informatica˘
Titlu Proiect Cifrul ADFGVX
Titlu Raport Cercetare Proiect istoric
Coordonator Stiintific S¸ tiintific Lector Doctor Nicolae Constantinescu
Membrii Echipei de Cercetare Mihai Iulian, gr. 223
Cuprins I
Introducere
1
1
Generalita¸ti
3
1.1 Despre criptografie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.1.1 Istoria criptografiei . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
3
1.2 Tipuri de criptosisteme . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
4
II Descriere Model. Studiu de caz
7
2
Cifrul ADFGVX
9
2.1 Cifrul ADFGVX în istorie . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
9
2.2 Cum func¸tioneaza . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.2.1 Criptare-Pasul 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.2.2 Criptare-Pasul 2 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
2.2.3 Decriptare . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
12
2.2.4 Alte utilizari ale cifrului . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
2.3 List˘a algoritmi . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
14
III Concluzii
17
3
Concluzii
19
3.1 Pareri personale . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
19
iv
CUPRINS
Partea I
Introducere
Capitolul 1
Generalita¸ti 1.1 Despre criptografie Cuvântul criptografie este compus din cuvintele de origine greac˘a kryptós (ascuns) s¸ i [2]gráfein (a scrie). Criptografia este strâns legat˘a de matematic˘a s¸ i se ocup˘a cu securizarea informa¸tiei, dar s¸ i cu autentificarea s¸ i restric¸tionarea accesului în sistemele informatice. Pentru realizarea acestora se folosesc atât metode matematice cât ¸si metode de criptare cuantic˘a. În trecut, termenul criptografie se referea aproape exclusiv la criptare, adic˘a traducerea unui text clar într-un text cifrat, neinteligibil. Decriptarea este exact opusul cript˘arii, adic˘a transform˘a un text cifrat într-un text clar. În utilizarea popular˘a, termenul “cod“ este adesea folosit cu sensul de orice metod˘a de criptare sau de ascundere a înt, elesului. Totus, i, în criptografie, cuvântul cod are un în¸teles mai restrâns; acela de înlocuire a unei unit˘at¸i de text clar (un cuvânt sau o fraz˘a) cu un cuvânt codat (de exemplu, pl˘acint˘a cu mere înlocuie¸ste atac în zori). Codurile nu mai sunt folosite în criptografie, decât uneori pentru anumite lucruri cum ar fi desemnarea unit˘a¸tilor (de exemplu, “zborul Bronco“ sau Opera¸tiunea Overlord) întrucât cifrurile alese corect sunt mai practice, mai sigure ¸si în acela¸si timp mai bine adaptate calculatoarelor decât cele mai bune coduri. Un cifru este compus dintr-o pereche de algoritmi care realizeaz˘a atât criptarea cât ¸si decriptarea. Mai exact, un cifru func¸tioneaz˘a pe baza unui algorim ¸si a unei chei. Aceast˘a cheie este un parametru secret pentru contextul unui anumit schimb de mesaje. În mod ideal, ea este cunoscut˘a doar de cei care comunic˘a. Cheile sunt importante, iar cifrurile f a˘ ra chei variabile sunt simplu de spart, deci mai pu¸tin utile. 1.1.1 Istoria criptografiei [4] Criptarea a ap˘arut din nevoia de confiden¸tialitate. La început, ea a fost folosit a˘ de lideri militari, spioni, diploma¸t i, dar a ap˘arut s¸ i în scrierile religioase. De asemenea Kama Sutra recomand˘a
4
1. Generalita¸ti
criptografia ca metod˘a de comunicare a îndragosti¸tilor f˘ar˘a a fi descoperi¸ti. Istoria criptografiei Începe acum câteva mii de ani. Pân˘a în secolul al XX-lea, tehnicile criptografice erau exclusiv destinate operatorilor umani, care foloseau la calcule doar creionul ¸si hârtia, sau alte dispozitive rudimentare. În urma progreselor tehnologice din secolul al XX-lea, în special în domeniile electronicii s¸ i calculatoarelor, schemele de criptare au devenit din ce în ce mai elaborate s¸ i mai complexe. Prima dovad˘a a scrierilor cifrate dateaz˘a din antichitate. E vorba de o tabli¸ta˘ de argint din secolul XVI î.Hr gasit˘a in Irak. Un olar a gravat pe aceasta reteta sa secret˘a prin suprimarea consoanelor ¸si modificarea ortografiei cuvintelor. Între secolele X si VII î.Hr., grecii utilizau în scopuri militare o tehnic˘a de încifrare codificare prin transpunere, intervertire, adic˘a schimbarea pozi¸tiei literelor din mesaj. Ei foloseau un scytal (scytale), numit s¸ i bagheta lui Plutarque, în jurul c˘areia rulau în spirale alipite o band˘a de piele pe care scriau mesajul. O dat˘a desfacut, mesajul era trimis destinatarului care trebuia s a˘ posede o baghet˘a identic˘a, necesar˘a descifr˘arii. Numai persoana ce dispunea de o baghet˘a de diametru identic celei pe care a fost scris mesajul, putea s˘a-l descifreze. Principalul defect al acestui sistem const˘a în faptul c˘a o baghet˘a de un diametru aproximativ egal era îndeajuns pentru a descifra textul. Securitatea consta, îns˘a , în p˘astrarea secretului procedeului de codare.
1.2 Tipuri de criptosisteme [3]O cale de clasificare a criptosistemelor este în func¸tie de modul în care este folosit˘a cheia de criptare/decriptare, astfel putem distinge dou˘a sisteme criptografice: 1. Cu cheie simetrica unde se folose¸ste aceeasi cheie pentru ambele proceduri, criptare s¸ i decriptare. Adesea aceste sisteme sunt numite criptosisteme cu cheie privat˘a sau criptosisteme cu o singur˘a cheie deoarece cheia folosit˘a trebuie s˘a raman˘a cunoscut˘a exclusiv par¸tilor comunicante. 2. Cu cheie publica unde se folosesc dou˘a chei diferite pentru criptare, respectiv decriptare. Aceste criptosisteme mai sunt numite ¸si criptosisteme asimetrice. Cheile folosite se numesc chei publice si respectiv cheie privat˘a. Criptosistemele cu eheie simetric˘a se impart în dou˘a categorii în func¸tie de modul în care se face criptarea: 1. Criptosisteme de tip stream 2. Criptosisteme de tip block Criptarea de tip stream presupune generarea unei secven¸te de bi¸ti cu o înfa¸ti¸sare cât de aleatoare posibil pe baza unei chei. Secven¸ta de bi¸ti este deci ob¸tinuta în urma cript a˘ rii bit cu bit a textului în clar (bi¸tii textului în clar sunt aduna¸ti cu cei ai cheii). Este esen¸tial pentru criptarile de tip stream ca dou˘a
1. Generalita¸ti
5
mesaje s˘a nu fie criptate cu acela¸si stream al cheii de criptare, în acest sens se iau m˘asuri speciale. Exemple de algorilmi de tip stream: SEAL (Software-optimised Encryption Algorithm), RC4, AS, Leviathan, Sober. Algoritmii de tip block presupun împar¸tirea textului în clar în blocuri de bi¸ti care sunt criptate, aceasta f˘acandu-se în mai multe runde. Majoritatea algoritmilor cu cheie simetric˘a sunt de tip block cipher s¸ i folosesc diferite metode pentru a opera criptarea textului: • modul ECB (ElectronicCode Book) presupune criptarea fiec˘arui bloc separat ¸si independent de celelalte. • modurile CBC (Cipher BlockChaining) si CFB (Cipher Feed Back) presupun dependente între blocurile criptate la runda anterioar˘a s¸ i cele de la runda curent˘a în func¸tie de un vector de ini¸tializare. • modul OFB (Output feedback Mode) poate fi interpretat c˘a folose¸ste o cifrare de tip block pentru a genera un stream care este apoi adunat bit cu bit cu textul in clar. Unii dinlre algoritmi, spre exemplu DES (Data Encryption Standard) folose¸se S-box-uri sau tabele, denumite s¸ i Substitution-box, pentru a ob¸tine textul criptat, folosirea numelui de substitu¸tie este mai degrab˘a nepotrivit˘a din moment ce o astfel de ”cutie” poate avea mai multe intr˘ari decât ie¸siri sau mai multe ie¸siri decât intr˘ari.
6
1. Generalita¸ti
Partea II
Descriere Model. Studiu de caz
Capitolul 2
Cifrul ADFGVX 2.1 Cifrul ADFGVX în istorie [5] Cifrul ADFGVX a fost folosit de armata german˘a în timpul Primului Razboi Mondial. De fapt, cifrul ADFGVX nu a fost decât o extensie a vechiului cifru ADFGX. Inventat de colonelul Fritz Nebel(1891–1967) ¸si pus în uz pe 5 martie 1918, acest cifru era un cifru de transpunere frac¸tionara care a combinat un p˘atrat Polybius modificat cu transpunerea într-o singur˘a coloan˘a. Numele vine de la cele 6 litere folosite în textul cifrat: A, D, F, G, V, X. Aceste litere au fost alese în mod deliberat pentru c˘a sunau foarte diferit una de cealalt˘a când erau transmise prin codul Morse, în acest fel minimizând posibilele erori de operator. De exemplu, litera D e reprezentat˘a în codul Morse de o linie ¸si dou˘a puncte, iar litera A e reprezentat˘a de dou˘a linii s¸ i un punct. Cifrul ADFGX a fost folosit prima dat˘a de armata germanâ pe 5 martie 1918, atunci când colonelul Fritz Nebel l-a utilizat într-o transmisie f˘ar˘a fir pe frontul de vest. [1] Responsabilitatea spargerii sistemului ADFGVX (considerat de exper(¸t)tii germani în criptologie ca cel mai bun) i-a revenit lui Georges Painvin, cel mai bun criptograf al Bureau du Chiffre al Frantei, care a primit primele mesaje în varianta cu 5 caractere a codului. El a pornit de la ideea c ˘a textul nu putea fi abordarea unui tablou polialfabetic, deoarece ar fi fost o abordare stangace, ramânând doar varianta unui tabel de substitu¸tie supus unei transpozi¸tii. Painvin nu avea o cantitate suficient˘a de text criptat pentru a realiza o analiz˘a a frecven¸tei pentru a determina dac˘a se folosea o cheie diferit˘a în fiecare zi. Odat˘a cu mi¸sc˘arile trupelor germane de pe front s-a constatat o intensificare a semnalelor radio. Primele încerc˘ari de decriptare au fost descurajatoare pentru c˘a analiza frecven¸tei indica folosirea unei chei diferite a tabelului în fiecare zi. Dup˘a 1 aprilie, francezii au interceptat un num˘ar de 18 mesaje ADFGX totalizand 512 grupuri de
10
2. Cifrul ADFGVX
cate 5 litere. Dou˘a dintre mesaje fus a˘ ser˘a transmise în câte trei par¸ti. Primele dou˘a par¸ti ale mesajelor aveau mici por¸tiuni de text identice, acest lucru fiind observat de Painvin la 4 aprilie. Acesta credea c˘a a fost folosit˘a aceea¸si cheie pentru tabelul de transpozi¸tie s¸ i micile buca¸ti de text erau literele de pe liniile de sus ale tabelului. Painvin a împar¸tit criptogramele în segmente care deveneau astfel coloanele tabelului de transpozi¸tie. Observând c˘a unele coloane erau mai lungi, Painvin a presupus ca ele fus˘aser˘a a¸sezate în stanga tabelului s¸ i numerele indicate de coloanele respective trebuie sa fi fost primele din cheia de transpozi¸tie. Se puteau face acum primele aproximari asupra cheii. Al˘aturand coloanele s¸ i numârând perechile de litere, Painvin nu a putut distinge caracteristici importante în majoritatea cazurilor cercetate, dar în unele cazuri rezultatele ob¸tinute indicau o substitu¸te monoalfabetic˘a, aceasta datorit˘a c a˘ unele coloane fusaser˘a al˘aturate. Dup˘a 48 de ore, Painvin a reu¸sit s˘a decripteze primele mesaje. Din punctul de vedere al germanilor, criptarea era foarte usor de realizat ¸si de¸si textul criptat era dublul celui în clar, prin faptul ca se utilizau doar 5 caractere, viteza de transmisie a mesajelor decre¸stea. Succesul repurtat de Painvin avea s a˘ fie întrerupt de o schimbare adus˘a de germani sistemului. Începand cu 1 iunie, ei au ad˘augat o a 6-a liter˘a, extinzând tabloul de criptare la dimensiunea 6x6. Painvin a început s˘a lucreze la noul cifru în aceea¸si zi de la ora 17:00, ocupându-se de trei mesaje apar¸tinand aceluia¸si interval orar ¸si care fus˘aser˘a transmise de acela¸si expeditor. Observând c˘a dou˘a dintre mesaje difer˘a doar prin 2 caractere, unul având 106 caractere, celalalt 108, Painvin a presupus c˘a textele în clar puteau fi identice, diferen¸tiindu-se doar printr-o modificare asupra adresei interne a celui din urm˘a. În continuare era nevoie de un aranjament al coloanelor astfel încat din coloanele tabelului de criptare s˘a rezulte identitatea criptogramelor. Painvin a terminat decriptarea mesajelor la ora 19:00, în data de 2 iunie, dar ”mesajul cel mare” nu fus˘ase înc˘a descifrat, el urma s˘a apar˘a pe 3 iunie. Dup˘a descifrarea lui, francezii au aflat situatia delicat˘a în care se afla armata german˘a, fiind nevoie s˘a a¸stepte sosirea muni¸tiilor care întarziau s˘a apar˘a. Echipele de recunoa¸stere trimise pe teren au confirmat faptul c˘a o cantitate însemnat˘a de muni¸tii urma s˘a ajung˘a în primele linii ale frontului, germanii riscând s˘a le transporte în plin˘a zi pentru a ajunge cât mai curând la destina¸tie. Acesta a fost un succes însemnat pentru Painvin, el m˘arturisind c˘a bucuria pe care a sim¸tit-o descifrând mesajul german ¸si, recunoscând c˘a nimic nu se compar˘a cu momentul decriptarii unui mesaj de o asemenea importan¸ta˘ . Desigur, un asemenea efort l-a l˘asat pe Painvin extenuat, el sl˘abind aproximativ 15kg în timpul decript˘arilor, singurul efort depus fiind s˘a stea la birou si sa ...gândeasc˘a.
11
2. Cifrul ADFGVX
2.2 Cum func¸tioneaza [6]Cele 26 de litere ale alfabetului englez si cele 10 cifre sunt introduse intr-un sistem ale carui coordonate sunt literele A, D, F, G, V, X dupa cum urmeaza. A
D
F
G
V
X
A
8
P
3
D
1
N
D
L
T
4
O
A
H
F
7
K
B
C
5
Z
G
J
U
6
W
G
M
V
X
S
V
I
R
2
X
9
E
Y
0
F
Q
2.2.1 Criptare-Pasul 1 Fiec˘arei litere sau cifre îi este atribuit un grup de 2 coordonate. De exemplu, s˘a luam urm˘atorul text: Vreau nota mare
Textul criptat va ar˘ata astfel: VFVVXDDVGDAXDGDDDVGXDVVVXD
2.2.2 Criptare-Pasul 2 Pasul al doilea al criptarii e asem˘an˘ator cu Spartan Scytale, doar ca aici exist˘a un cuvant cheie care amestec˘a ordinea mai departe. S˘a presupunem ca acel cuvânt cheie este ” MUZICA”. Cuvântul criptat va fi asezat intr-un tabel care are atâtea coloane cate litere are cuvântul cheie.
M
U
Z
I
C
A
4
5
6
3
2
1
V
F
V
V
X
D
D
V
G
D A
X
D
G
D D
D V
G
X
D
V
X
D
V
V
12
2. Cifrul ADFGVX
Coloanele vor fi apoi rearanjate în ordinea alfabetic˘a a literelor cuvântului cheie, urmând ca mesajul final criptat s˘a fie citit în ordinea coloanelor. În final, sunt ad˘augate spa¸tii pentru a ad˘auga lizibilitate pentru persoana care cite¸ste sau transmite mesajul. A
C
I
M
U
Z
1
2
3
4
5
6
D
X
V
V
F
V
X
A
D D
V
G
V
D
D D
G
D
V
V
V
G
X
D
X
D
2.2.3 Decriptare [7]Cifrul a fost spart la data de 5 aprilie 1918 de c˘atre locotenentul armatei franceze, Georges Painvin cu ajutorul criptanalizei. Înainte de a lansa ultimul ei atac, armata german˘a a modificat cifrul, dar in câteva zile Painvin l-a spart din nou. Mesajul era urm a˘ torul: “Rush munitions. Even by day if not seen.” , indicând locul unde ofensiva german˘a avea sa aib˘a loc. Datorit˘a lui, alia¸tii au reu¸sit s˘a înfrang˘a atacul german. În încercarea de a sparge cifrul, Painvin a slabit 15 kg. Cele doua solu¸tii gasite de el se bazeaz˘a pe dou˘a cazuri particulare. În timpul Primului Razboi Mondial, alia¸tii nu au g˘asit o solu(¸i)e general˘a. În anul 1933, William Friedman a gasit o solu¸tie general˘a a cifrului ADFGVX. De asemenea, generalul francez Givierge a publicat o solu¸tie general˘a. [9]Metoda folosit˘a de Painvin pentru decriptare se baza pe g˘asirea mesajelor ale c˘aror începuturi se repet˘a s, icares-arfifract, ionat la fel, apoi formarea unor modele similare în pozit, iile în care textul cifrat are corespondent în rubricile coloanelor tabelului de transpozit, ie. Asta însemna c˘a aceast˘a metod˘a era util˘a doar în cazul în care frecvent, a mesajelor criptate era mare. Din fericire pentru criptanalis, ti, în perioada cu trafic intens s-au trimis cele mai importante mesaje. Oricum, a˘ sta nu a fost singurul truc folosit de Painvin. Datorit˘a modului în care mesajele erau criptate, el a s, tiut c˘a fiecare coloan˘a consta în întregime din litere, ori coordonate luate din partea de sus a p˘atratului Polybius ori de la stanga acestuia, dar nu un amestec al celor dou˘a. De asemenea, el s, tia c˘a dup˘a substitut, ie, dar înainte de transpozit, ie, coloanele erau formate, alternativ, din litere de ”sus ” s, i din ”lateral”. O caracteristic˘a a analizei frecvent, ei literelor este c˘a în timp ce distribut, ia literelor poate varia mult de la norm˘a, legea de medii care dicteaz˘a grupurile de litere variaza mai put, in. În cifrul ADFGX, fiecare litere ”de sus” sau ”litera laterala"’ e asociata cu cinci litere text simplu. Deoarece aceste dou˘a grupe de cinci litere au distribut, ii de frecvent, e cumulative diferite, atunci
o analiza a literei ”D” in coloana, compusa din "‘literele laterale” va avea un rezultat complet diferit de cele ale literei ”D” compus˘a din ”literele de sus”. Acest truc i-a permis lui Painvin s˘a identifice tentativ
2. Cifrul ADFGVX
13
coloanele care cont, in ”literele laterale” s, i care coloane cont, ineau ”literele de sus”. El a putut sa le faca pereche si sa efectueze o analiz˘a de frecvent, a˘ pe perechi pentru a vedea dac˘a acestea erau de zgomot sau chiar erau perechi reale de litere care corespundeau literelor textului simplu. Odat˘a ce avea perechile potrivite, el a putut sa foloseasc˘a analiza frecvent, ei pentru a descoperii literele textului simplu. Rezultatul a fost înca transpus, dar în acel moment tot ce a trebuit s˘a fac˘a a fost o simpl˘a transpunere în ordine. Odat˘a ce a determinat sistemul de transpunere pentru un mesaj, el a putut apoi sa descifreze orice alt mesaj criptat cu aceeas, i cheie. În ziua de azi, cifrurile ADFGX s, i ADFGVX sunt considerate nesigure. 2.2.4 Alte utilizari ale cifrului Des, i e rudimentar tehnologic s, i criptografic, daca cifrul este luat ca un predecesor pentru o masina de criptat mecanic˘a sau e implementat în program el înc˘a r˘amâne folositor. Un tabel de tipul ADFGVX poate avea miliarde de variat, ii dac˘a e folosit˘a o m˘arime de 7x7. Diagramele rezultate pot fi introduse într-un software ENIGMA (care nu suport˘a numere cifrate) analog cu cres, terea puterii ei de criptare. Prin alegerea tabelelor diferite, e posibil s˘a permit˘a traficului Enigmei s˘a fie transmis, dar mult mai greu de spart.
14
2.3 List˘a algoritmi
2. Cifrul ADFGVX
2. Cifrul ADFGVX Algorithm 1 Criptare folosind cheia void ADFGV X :: encode()
{ /Local Variables to help encoding. string coordinates = ""; /Create polybius square coordinates for each letter in the phrase. for( unsigned int i = 0; i < plaintext.length(); i++ ) char c = plaintext.at( i ); for( int y = 0; y < 6; y++ ) for( int x = 0; x < 6; x++ ) if( polybius.at(y).at(x) == c ) coordinates.append( 1, squaremap.at( x ) ); coordinates.append( 1, squaremap.at( y ) );
//Create Sorted key character, and index pairs. //Maps are auto sorted, so we need the index as the second half of the //pair to make a successful mapping. map< char, int > m; for( unsigned int i = 0; i < key.length(); i++ ) pair p( key.at( i ), i ); m.insert( p ); //Preparing the table to be filled with "coordinates". vector< string > v; for( unsigned int i = 0; i < key.length(); i++ ) v.pushb ack( "" );
//Fill it with coordinates for( unsigned int i = 0; i < coordinates.length(); i++ ) v.at( i //Generate The Cipher Text ciphertext = ""; //Clear it out first, in case there’s one already there. map< char, int >::iterator k; //Iterator through the key map. //Loop through the map, using the vector to get the proper values to append //to the cipher text. for( k = m.begin();k! = m.end(); k++ )
15
16
2. Cifrul ADFGVX
Partea III
Concluzii
Capitolul 3
Concluzii 3.1 Pareri personale Spargerea sistemului ADFGVX a fost o realizare decisiv˘a în hot˘ararea soartei r˘azboiului, Georges Painvin intrând astfel în istorie. Determinarea cu care el a lucrat la spargerea cifrului e de-a dreptul impresionanta. În ziua de azi, Georges Painvin e privit ca un erou ce a împiedicat asediul Parisului, ¸si pe bunâ dreptate. De¸si se baza pe primul sistem de criptare monoalfabetic (careul Polybius), sistemul ADFGVX nu era deloc unul simplu. Ideea de baz˘a a apar¸tinut istoricului grec Polybius, sistemul fiind folosit la început în mediul maritim la semnalizarea cu tor¸te. Ulterior i s-a dat o semnifica¸ttie criptografica. În ziua de azi, astfel de sisteme sunt cu mult depâ¸site.
20
3. Concluzii
Bibliografie [1] Nicolae Constantinescu, Criptografie, Editura Academiei Romane, 2009 [2]
http://ro.wikipedia.org/wiki/Criptografie
[3]
http://www.scribd.com/doc/2584292/Criptografie
[4]
http://wapedia.mobi/ro/Criptografie
[5]
http://en.wikipedia.org/wiki/ADFGVX_cipher
[6]
http://library.thinkquest.org/C0126342/adfgvx.htm
[7]
http://practicalcryptography.com/ciphers/adfgvx-cipher
[8]
http://copiatac.3x.ro/ProiecteAC/Neamtu_Carmen.htm
[9]
http://www.answers.com/topic/adfgvx-cipher