Un cifr polialfabetic (cifr polialfabetic) este un set de cifruri de substituție simple care sunt folosite pentru a cripta următorul caracter text simplu conform unei anumite reguli.
Esența unui cifru polialfabetic este aplicarea ciclică a mai multor cifruri monoalfabetice la un anumit număr de litere ale textului criptat. Să presupunem că există un mesaj x 1 , x 2 , x 3 , …, x n , …, x 2n , … care trebuie criptat, iar n cifruri monoalfabetice au fost luate pentru a utiliza cifrul polialfabetic. În acest caz, primul cifru monoalfabetic este aplicat primei litere, a doua la a doua literă, a treia la a treia, ..., a n-a la a n-a literă și primul la (n) + 1)-th din nou, și așa mai departe, până când întregul mesaj este criptat. Astfel, se obține o secvență destul de complexă, care este mai greu de deschis decât un cifru monoalfabetic. Un efect important obținut atunci când se utilizează un cifru polialfabetic este mascarea frecvențelor de apariție a anumitor litere în text, de care lipsesc cifrurile de substituție simple.
Istoria criptoanalizei provine din cifrurile monoalfabetice. Acest cifru a oferit secretul necesar mesajelor transmise până când dezvoltarea criptoanalizei de frecvență i-a distrus puterea. Prima slăbiciune a unor astfel de cifruri la criptoanaliza frecvenței a fost arătată încă din secolul al IX-lea de către filozoful și matematicianul arab Al-Kindi în lucrarea sa „ Manuscris despre decriptarea mesajelor criptografice ” [1] . În Europa, cifrurile monoalfabetice au fost foarte populare până în secolul al XV-lea . Un exemplu izbitor al nesiguranței acestui cifr a fost execuția Mariei Stuart în 1587 . Dovada unei conspirații împotriva reginei Elisabeta engleză a fost o scrisoare descifrată de Thomas Phelippes de la Mary Stuart către Anthony Babington [1] .
Astfel, a fost nevoie de a crea o modalitate mai perfectă de a proteja informațiile, iar cifrurile monoalfabetice au fost înlocuite cu cele polialfabetice. În anii șaizeci ai secolului al XV-lea, savantul și arhitectul italian Leon Battista Alberti ( italiană: Leone Battista Alberti ), încercând să obțină un cifru rezistent la criptoanaliza în frecvență, a fost unul dintre primii care a folosit două sau mai multe în loc de un alfabet secret, trecerea de la una la alta după o anumită regulă [ 2] . Totuși, urmașii săi trebuia să aducă acest sistem la unul cu drepturi depline [3] .
Un rezultat semnificativ a fost obținut de călugărul german Johann Trithemius ( lat. Iohannes Trithemius ). Conform metodei sale, următoarea literă este înlocuită cu un caracter din propriul alfabet cifrat, iar fiecare alfabet ulterior este obținut din cel precedent prin deplasarea cu o literă. Totalitatea acestor cifruri de deplasare, scrise unul sub celălalt în ordine, se numește tabelul trithemian [4] .
În 1553, italianul Giovan Battista Bellaso ( italianul Giovan Battista Bellaso ) în pamfletul „Cifrul signorului Giovanni Bellaso” ( italianul „La cifra del. Sig. Giovan Battista Belaso” ) a propus să îmbunătățească această metodă prin introducerea unui cuvânt cheie. Literele acestui cuvânt sunt scrise secvenţial peste textul criptat, astfel, fiecare literă a cheii indică un alfabet cifru specific din tabelul Trithemius [5] .
În același timp, medicul și omul de știință italian Giambattista della Porta ( italiană: Giambattista della Porta ) a pus la îndoială fiabilitatea cifrurilor polialfabetice. Analizând metodele de criptare propuse de Trithemius și Bellaso, a identificat câteva tipare, cu ajutorul cărora a dezvoltat metode de deschidere a acestor cifruri. Cu toate acestea, Porta nu a putut să-și extindă observațiile la cifrurile polialfabetice în general și, prin urmare, acest tip de criptare a continuat să fie considerat de încredere în următorii trei sute de ani [5] .
Următorul reprezentant semnificativ al istoriei dezvoltării cifrurilor descrise este criptograful francez Blaise de Vigenère ( francez Blaise de Vigenère ). Pe baza lucrărilor predecesorilor săi, a dezvoltat o metodă de criptare similară cu cea propusă mai devreme de Giovanni Bellaso. Principala diferență a fost modul în care este ales alfabetul cifrat pentru următoarea literă. Vigenère a sugerat să folosească un alt text simplu ca cheie. Această metodă de criptare, cunoscută astăzi ca cifrul Vigenère , a citat-o în lucrarea sa „Tratat de cifruri” ( fr. „Traicté des Chiffres” ) în 1585 [4] .
În ciuda rezistenței la criptoanaliza din acea vreme, cifrurile polialfabetice nu au fost utilizate pe scară largă pentru o lungă perioadă de timp din cauza complexității utilizării lor. Pentru scopurile de zi cu zi ale oamenilor obișnuiți, utilizarea cifrurilor monoalfabetice a fost suficientă, iar în scopuri militare și diplomatice, statul a acordat o mare atenție vitezei și simplității criptării. Pentru aceasta s-au folosit niște cifruri intermediare, a căror deschidere a necesitat mai mult efort în comparație cu cifrurile monoalfabetice, dar utilizarea lor a fost mai simplă decât cele polialfabetice [3] .
Odată cu dezvoltarea „cabinetelor negre” în țările europene în secolul al XVIII-lea , toate cifrurile de substituție monoalfabetică și-au pierdut toată fiabilitatea. Acest fapt a contribuit la trecerea forțată la utilizarea cifrurilor polialfabetice. Un alt motiv pentru popularizarea unui tip mai complex de criptare a fost dezvoltarea telegrafului și nevoia de a proteja mesajele împotriva interceptării. [3]
În 1863, Friedrich Kasiski ( germană: Friedrich Wilhelm Kasiski ) a găsit o modalitate de a sparge cifrul Vigenère cu un cuvânt de cod scurt, a cărui utilizare era cea mai comună. În cazul în care criptarea a fost efectuată folosind o cheie proporțională cu textul simplu, expresia de acces poate fi aleasă, cu condiția ca aceasta să fie compusă din cuvinte semnificative. Încercările de a inventa un nou cifru rezistent la cracare nu au condus multă vreme la succes, așa că criptografii au venit cu astfel de implementări ale cifrurilor polialfabetice existente pentru a evita deschiderea lor folosind metoda Kasiski și metoda de selecție a cuvintelor de cod [3] [4 ] ] . De exemplu, maiorul armatei americane Joseph Mauborgne a inventat blocul de cifrat unic la sfârșitul Primului Război Mondial . Pe fiecare pagină a caietului a fost scrisă o secvență de sute de litere aleatorii, care a fost folosită ca o cheie unică pentru mesajul criptat. A fost creat și un blocnotes identic, cu ajutorul căruia mesajul a fost decriptat de către destinatar. După utilizare, pagina corespunzătoare a fiecărui caiet a fost distrusă. Cu toate acestea, multe implementări nu sunt utilizate pe scară largă din cauza complexității utilizării lor [6] .
La începutul secolului al XIX-lea, Thomas Jefferson a încercat să mecanizeze procesul de criptare, creând una dintre primele mașini rotative (cunoscută și sub numele de cilindru Jefferson ), care a făcut mai ușoară utilizarea cifrurilor de substituție polialfabetică. Mașinile rotative au fost cele mai utilizate pe scară largă în secolul al XX-lea [4] [7] . Astfel de mașini au oferit un grad crescut de putere criptografică și o viteză de criptare crescută, ceea ce era deosebit de important în timpul operațiunilor militare. Printre cele mai cunoscute sisteme rotative, se pot remarca mașina germană Enigma , dispozitivul american Sigaba, precum și mașina Tyrex, care provine din Marea Britanie . Odată cu apariția computerelor în anii 1940. a devenit posibilă deschiderea criptosistemelor rotative. De-a lungul timpului, cifrurile polialfabetice au dispărut în fundal și au fost înlocuite cu metode noi, mai fiabile de criptare [2] .
Ruperea cifrului polialfabetic în 1863 a fost descrisă în cartea sa Die Geheimschriften und die Dechiffrirkunst în cartea sa Die Geheimschriften und die Dechiffrirkunst de către un ofițer de armata prusac pensionat, Friedrich Kasiski ( germană : Friedrich Kasiski ). Această metodă este aplicabilă pentru cifrurile cu un cuvânt cheie scurt, deoarece se bazează pe căutarea unor secvențe repetate de caractere în textul cifrat. Lungimea cheii determină numărul de opțiuni care pot fi utilizate pentru a cripta aceeași secvență în textul simplu. Astfel, se poate presupune că numărul de litere dintre secvențele repetate din textul cifrat este un multiplu al lungimii cuvântului de cod. Apoi , criptoanalistul determină numărul probabil de caractere din cuvântul de cod selectând divizori comuni pentru toate intervalele dintre repetări. În etapa finală, textul cifrat inițial este considerat ca mai multe cifre monoalfabetice , cărora li se aplică criptoanaliza de frecvență [3] [8] .
Această metodă de a sparge un cifru polialfabetic a fost dezvoltată încă din 1854 de Charles Babbage . Cu toate acestea, datorită faptului că nu a publicat rezultatele muncii sale, acest lucru a devenit cunoscut abia în secolul al XX-lea . De aceea, acest tip de metodă de decriptare este asociată cu numele lui Friedrich Kasiska, și este numită și metoda Kasiska [3 ] .
În 1920, a fost publicată o monografie remarcabilă intitulată Index of coincidente and its Applications in Cryptography [ 9 ] . Autorul său este cunoscutul criptoanalist al vremii , William Friedman . A devenit interesat să găsească o modalitate de a sparge cifrul Vigenère cu o cheie lungă aleatorie [10] . În analiza sa, a apelat mai întâi la metode statistice , considerând textul ca un singur obiect cu elemente interdependente. Datorită muncii lui Friedman, a apărut conceptul de „ indice de coincidență ”, iar criptoanaliza s-a îmbogățit cu instrumente din categoria cercetării statistice [9] .
De exemplu, haideți să criptăm expresia „ deviați trupele spre east ridge ” cu cifra Vigenère folosind cuvântul cheie „ ALB ”. Inițial, literele cuvântului cod sunt scrise una câte una peste textul simplu. Cuvântul cheie se repetă până când fiecare literă a mesajului criptat corespunde unei anumite litere a cheii utilizate. În plus, pentru a obține textul cifrat, folosim pătratul Vigenère . Fiecare literă a cuvântului cheie este asociată cu un șir care începe cu aceeași literă. Această metodă determină alfabetul cifrat cu care fiecare literă a textului simplu va fi criptată . Adică , a 23-a linie a pătratului Vigenère este folosită pentru a cripta primul caracter „ d ”. Următorul pas este să găsiți litera care se află la intersecția coloanei care începe cu „ d ” și șirul alfabetului cifrat corespunzător. În acest caz, este litera „ Z ”, care este primul caracter al textului cifrat. Facem același lucru cu fiecare literă a frazei originale [3] .
Pentru a decripta mesajul primit, trebuie să faceți aceiași pași ca în criptare, cu o singură diferență: acum se cunoaște litera care se află la intersecția liniei alfabetului cifrat și coloana care începe cu litera dorită în text simplu [3] .