Cifra de carte

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită pe 25 noiembrie 2017; verificările necesită 20 de modificări .

Un cifr de carte  este un tip de cifru în care fiecare element de text simplu (fiecare literă sau cuvânt) este înlocuit cu un indicator (de exemplu, numărul paginii, rândului și coloanei) al unui element similar într-un text cheie suplimentar.

Pentru decriptare, trebuie să aveți atât textul privat, cât și un text cheie suplimentar. Ca text suplimentar, s-au folosit adesea cărți comune sau cărți pe care cel mai probabil le aveau atât expeditorul, cât și destinatarul [1] .

Istoricul creației

Până în prezent, oamenii de știință și istoricii nu au informații clare despre când și de către cine a fost folosit pentru prima dată cifra de carte. Unul dintre cele mai vechi exemple ale acestui cifr este cunoscut sub numele de cifrul de carte Aeneas , care se referă la steganografie . Este posibil ca această primă încercare de a folosi textul scris de mână pentru criptare să fi fost începutul creării unui cifr de carte [2] .

În plus, nu se poate nu observa similitudinea dintre utilizarea unui cifr de carte și criptarea folosind pătratul Polybius . Mai mult decât atât, cifrul cărții este una dintre metodele propuse de Polybius , doar îmbunătățită semnificativ. În pătratul Polybius, fiecărei litere i se atribuie două numere, iar pentru aceleași litere numerele vor fi și ele identice. Avantajul unui cod de carte este că fiecare literă a textului sursă va avea propriul ei identificator. Cu toate acestea, dacă, de exemplu, o pagină a unei cărți este împărțită într-un număr mare de pătrate diferite ale lui Polybius, atunci sistemele de criptare vor fi aceleași.

Mai târziu, în 1849, Meissner din Braunschweig a lucrat la studiul și îmbunătățirea cifrului cărții , iar mai recent Voltaire în Winterthur . În Uniunea Sovietică , cifrul cărții a fost utilizat și cercetat pe scară largă de către partidul bolșevic RSDLP(b) . Crearea mai multor modificări ale sale este atribuită celebrului bolșevic Elena Dmitrievna Stasova .

Implementare practică și varietăți de algoritmi

Criptare folosind o poezie

Esența metodei de cifrare a cărții este selectarea oricărui text dintr-o carte, în care numerele de cuvinte care încep cu o anumită literă sau coordonatele (linie, număr într-o linie) literelor în sine acționează ca un cifr al mesajului original. . În acest caz, mai multe caractere pot corespunde unei litere inițiale [3] .

Ca exemplu de implementare practică, să ne întoarcem la memoriile celebrului social-democrat Viktor Katin-Yartsev, care a condus „Uniunea de luptă” din Sankt Petersburg [4] .

Să punem cheia cifrului va fi un fragment dintr-o poezie de A. S. Pușkin : „Țigani” .

Este necesar să criptați cuvântul: „Gimnaziu”. Prima literă a cuvântului este „G”, o notăm 4/4, unde numărătorul este șirul, numitorul este ordinea literelor din acest șir. S-a recomandat să se introducă mai multă varietate, împrumutând o scrisoare din diferite locuri în cheie, pentru a îngreuna experții din afară să descifreze ceea ce a fost scris. Atunci cifrul cuvântului „Gimnaziu” va fi următorul text: „4/4, 7/3, 7/19, 4/9, 2/4, 1/14, 3/8, 1/11”.

Sau în binar: 0010000100, 0011100011, 0011110011, 0010001001, 0001000100, 0000101110, 0001101000, 00010101

Într-un cifr poetic, cheia este o poezie predeterminată, care este scrisă într-un dreptunghi de dimensiunea convenită. Acest dreptunghi este pagina cheie a cifrului cărții.

În ciuda faptului că criptarea direct folosind cartea de chei este ușor de utilizat, această metodă are dezavantaje semnificative. Dacă criptarea nu este făcută cu atenție, atunci, de exemplu, secvențele numerice repetate pot face mai ușor pentru un atacator să decripteze textul. De asemenea, ridică problema utilizării spațiilor sau a oricăror denumiri specifice care nu numai că pot simplifica sarcina de hacking, ci și pot face procesul de citire a mesajului problematic pentru destinatar direct.

În acest sens, vom lua în considerare câteva variante mai avansate ale acestei metode de criptare.

Cifrarea cărții al Doilea Război Mondial [5]

Componenta principală a acestei metode au fost așa-numitele rastere, foi pătrate cu un anumit număr de găuri. Caracterele și liniile situate pe ambele părți ale foii raster au fost numite „anteturi cheie”, cu ajutorul cărora mesajul a fost criptat, precum și decriptarea ulterioară a acestuia. Pentru a determina locația inițială a mesajului în partea centrală a rasterului, au fost utilizați indicatori de grup, care au fost amplasați în locuri pregătite în prealabil.

Dimensiunea minimă a mesajului transmis trebuia să fie de cel puțin 35 de caractere, cea maximă - nu mai mult de 115.

Mesajul trebuia să fie scurt și clar, folosirea de fraze și repetiții stereotipe a fost interzisă. Era permisă utilizarea abrevierilor, dar nu mai scurte de trei caractere, cu excepția cuvântului „Kilometru”, care a fost înlocuit cu „KM”.

Pe rândurile de la 1 la 24 au fost scrise grupuri de cinci caractere criptate. Spațiul din colțul din dreapta sus a fost folosit pentru a identifica expeditorul mesajului. Fiecare rând și coloană a foii raster trebuia să conțină exact 3 găuri. Amplasarea găurilor trebuia să îndeplinească următoarele condiții:

  1. Gaura din stânga trebuia să fie în 14-19 coloane, cea din mijloc în 15-25, iar cea din dreapta în 21-26.
  2. Găurile trebuiau distribuite în așa fel încât fiecare coloană să conțină doar 1 gaură înainte ca a doua să apară în ea.

A fost folosit un alfabet de 26 de caractere pentru a identifica fiecare câmp din raster. Pe de o parte, coloanele au fost numerotate de la 1 la 13, iar pe de altă parte, de la 14 la 26. Pornind de la prima coloană au fost înregistrate anumite secvențe de caractere pe rândurile 2 și 3, aceste secvențe, împreună cu cele numerice. , erau „titluri cheie”.

Acum să luăm în considerare una dintre componentele principale ale acestei metode de criptare - „antetul cheii”, cu ajutorul căruia se va efectua criptarea și decriptarea ulterioară a mesajului.

Fie cheia în acest caz să fie următorul set de caractere: " fsgjhcvmxzqrt ", este important ca lungimea sa să nu depășească 13 caractere. În conformitate cu regulile, această cheie este introdusă în a doua linie, direct sub secvența numerică 1-13. Construcția unei secvențe numerice pentru lucrări ulterioare se realizează după cum urmează:

  1. Literele tastei sunt numerotate în ordinea lor alfabetică, adică trebuie să atribuim numărul 3 literei „c”, dar deoarece vine în primul rând literele din alfabet în această secvență, atribuim numărul 1 la it, f la numărul 2 etc.
  2. Apoi, succesiunea numerică rezultată este scrisă în a patra coloană.

Scriem în a patra linie, sub secvența 14-26, șirul numeric rezultat, iar în a treia - șirul, care este format după cum urmează: numărului 1 i se atribuie simbolul a, deoarece este primul în alfabet au ales, 2 - b, 3- c etc. După toate acestea, scoatem cheia din a doua linie.

Setul rezultat de secvențe numerice și de caractere se numește „titlu cheie”.

După ce ne-am familiarizat cu partea teoretică a metodei, să trecem la cea practică și să ilustrăm funcționarea acestui cifru folosind următorul exemplu.

Să presupunem că vrem să criptăm mesajul „Un liniștitor este cel care hrănește un crocodil în speranța că îl va mânca ultimul”

Să completăm, pentru început, „titluri cheie”. Pentru început, lucrăm cu coloane sub secvența 1-13. În a doua coloană scriem secvența de caractere: " uytetjgshdbvx ", în a treia coloană: " bicedakflmghj ", iar în a patra coloană scriem succesiunea numerică pe care am primit-o mai devreme, adică " 2 9 3 5 4 1 11 6 12 13 7 8 10". Acum, cu liniile de sub secvența 14 - 26 vom proceda la fel, dar cu secvențele „mgdhacnbvzxl I”, „bicedakflmghj” și „2 9 3 5 4 1 11 6 12 13 7 8 10”. raster, începând cu un câmp liber arbitrar.

După aceea, în conformitate cu secvența numerică superioară, scriem textul simplu coloană cu coloană în partea dreaptă a rasterului. De exemplu, numărul 1 din linia de sus corespunde coloanei de caractere " aoahl ", îl scriem mai întâi în rândul 1 din dreapta, etc. Lăsăm liberă a cincea linie, deoarece va fi grupul de indicator al începutului a mesajului, care se formează astfel: primele 2 caractere sunt preluate din a doua și a treia coloană a părții din stânga a rasterului (de pe linia în care începe mesajul, în acest exemplu din al șaptelea), se alege al treilea caracter în mod arbitrar, al patrulea și al cincilea caracter sunt din rândurile al doilea și al treilea din partea superioară a rasterului (coloana a 17-a).

Pentru a decripta mesajul a fost necesar să se cunoască doar cheia, în cazul nostru este secvența de caractere „fsgjhcvmxzqrt” și grupul de indicatori, pentru a ști din ce câmp din raster începe mesajul. Apoi, făcând toți pașii în ordine inversă, primim mesajul original.

Versiunea modernă a cifrului cărții

Acum luați în considerare o versiune mai modernă a acestei metode de criptare, care a fost dezvoltată în 2010 [6] .

Anterior, am considerat acest cifr numai din punctul de vedere al criptării bazate pe orice cărți, secvențe de caractere etc., dar acum, odată cu inventarea unui număr imens de dispozitive electronice, vom încerca să ne uităm la această metodă de criptare din altă parte.

Dacă aruncați o privire mai atentă la fișierele pe care le operăm pe computere, fie că sunt muzică, fotografii, documente sau videoclipuri, toate au o structură similară, toate sunt reprezentate ca biți, 0 sau 1. Dacă considerăm un computer ca fiind un depozit al acestui tip de fișier, atunci de ce să nu îl folosiți ca „carte de chei” pentru a cripta mesajele.

Să aruncăm o privire mai atentă la ideea acestui algoritm.

Cheia în acest caz va fi un set de fișiere obișnuite de computer: (Fișier 1, Fișier 2,…, Fișier N).

Primul pas este alegerea numărului k: k∈N, k≥1.

Apoi, convertim textul sursă într-o secvență binară și o împărțim în s părți, unde fiecare parte are o lungime de k biți. Dacă lungimea ultimei părți este mai mică decât k, atunci o umplem cu zerouri.

După primii doi pași, textul nostru este o mulțime formată din s părți, să-l notăm cu D: D = (D1…Ds).

Să facem pașii anteriori, dar nu cu text simplu, ci cu un set de fișiere pe care le-am ales la început ca cheie: (Fișier 1, Fișier 2 ... Fișier N).

Reprezentăm fiecare fișier ca o secvență de biți, pe care apoi o împărțim în părți, lungimea fiecărei părți este de k biți, dacă este mai mică, atunci umplem restul cu zerouri.

După ce am făcut această operațiune cu toate fișierele, obținem un set de blocuri și atribuim o adresă fiecăruia dintre ele. Adresa va consta din numărul fișierului din care este primit acest bloc și numărul blocului propriu-zis din setul tuturor blocurilor care alcătuiesc acest fișier.

După aceea, înlocuim fiecare parte a lui Di, unde i ∈(1 ... s) cu o adresă de bloc aleasă în mod arbitrar, în urma căreia obținem că textul simplu original s-a transformat într-un set de adrese aleatoare : (adresa 1 ... adrese s).

Pentru a decripta textul rezultat, avem nevoie de aceeași cheie pe care am folosit-o pentru a cripta textul simplu, adică un set (Fișier 1, Fișier 2 ... Fișier N) și testul criptat în sine.

Pentru fiecare adresă găsim fișierul corespunzător acesteia prin numerele de fișier și bloc pe care le conține adresa.

În continuare, înlocuim fiecare adresă de text cifrat cu elementele corespunzătoare D din mulțime (D1… Ds) și o convertim în textul simplu original.

Istoricul aplicațiilor

unu 2 3 patru 5 6 7 opt 9 zece
unu H La P O W E L ȘI E R
2 H E B O E L b H Și La
3 H E LA E DIN E L DAR eu D
patru E Y DIN DAR D Și DIN b La O
5 H O G Și B O DIN S G R
6 Și E D LA DAR P R Și La R
7 H E DIN T S D Și DIN eu H
opt E T O M H O G Și X DIN
9 LA Și ȘI La eu LA La O T O
zece T DAR La La H Și T b DIN eu
Dacă textul începe cu cuvântul „Raport”, atunci conform unui astfel de tabel ar putea fi criptat în mai multe moduri: „4/3, 5/2, 8/6, 2/3, 1/5, 7/7, 10/1, 6 /2…” sau „10/9, 1/4, 8/3, 5/5, 1/5, 8/8, 9/9, 6/2…”, etc. Numărătorul lui fiecare fracție este numărul liniei, iar numitorul este numărul coloanei. Deoarece tabelul nu conține litera „Ш”, se folosește litera „Ш”, dar acest lucru nu interferează cu decriptarea mesajului. Cu toate acestea, una dintre greșelile revoluționarilor a fost folosirea frecventă a operelor acelor autori ai democraților care erau cunoscuți de poliție. Acest lucru a făcut mult mai ușor descifrarea mesajelor clasificate, deoarece însăși ideea de criptare era cunoscută de poliție. Protecția a fost asigurată numai atunci când cheia era o „poezie secretă”. O altă greșeală care facilitează decriptarea a fost folosirea frecventă a cuvintelor și expresiilor standard: „Anunță...”, „Te trimit...”, „aspect”, „adresă” și așa mai departe. Folosirea frecventă a aceluiași poem-cheie a făcut ca mesajele să fie mai ușor de citit de către poliție, care a exploatat eficient aceste erori.
  1. În octombrie 1901, Nadezhda Krupskaya , prin agentul ei Concordia Zakharova, a cerut ca o biografie a lui Spinoza să fie trimisă la München ca o carte cheie:

„Comunicați cu Nikolaev... Cheie: O biografie a lui Spinoza , p. 60”.

.

  1. În ianuarie 1902, biografia lui Lev Tolstoi a fost aleasă ca cifră de Comitetul Harkov al RSDLP .
  2. În vara anului 1902, RSDLP se întoarce din nou la biografia lui Spinoza:

„În general, comitetul dorește să stabilească relații adecvate, vechile conexiuni s-au pierdut... Cifrul sugerează ca comitetul cu o lămâie pe Spinoza, o ediție biografică a lui Pavlenkov, să indice pagina cu un număr și apoi cu un fracție: numărătorul indică linia de sus, numitorul - litera din partea stângă "

Securitate

Un avantaj vizibil al cifrului cărții este absența problemelor asociate cu pregătirea și transmiterea cheii secrete, deoarece textul codului există în mai multe copii simultan. Cu toate acestea, acest cifr, ca și alții, este supus tuturor mijloacelor obișnuite de criptoanaliza. Și aceste instrumente permit criptoanalistului să ghicească cuvintele de cod cu o probabilitate diferită de zero și, uneori, să rupă complet codul prin dezvăluirea textului cheie. Cu toate acestea, dezvăluirea textului codului nu este singura modalitate de a rupe cifrul cărții. Cifrul cărții este încă susceptibil la metode frecvente de criptoanaliza, deoarece adesea aceleași pagini dintr-o carte sunt folosite pentru criptare și adesea aceleași cuvinte pe aceste pagini. Deci, de exemplu, William Friedman și soția sa Elizabeth Friedman au reușit să spargă cifrul cărții fără o carte, deoarece corespondenții foloseau uneori aceeași pagină și aceeași denumire de linie pentru aceeași scrisoare de mai multe ori. Soții Friedman au reușit să citească corespondența naționaliștilor indieni care glorificau datele de informații folosind un cifr de carte bazat pe un vechi dicționar german-englez. Până la momentul procesului, au reușit să obțină dovada finală - dicționarul însuși [10] .

Dacă cifrul este utilizat cu mai multă atenție, atunci fiabilitatea sa va crește semnificativ, deoarece va acționa ca un cifru homofonic cu un număr extrem de mare de echivalenți. Totuși, acest lucru va fi aranjat cu prețul unei extinderi foarte mari a textului cifrat.

În literatură

În povestea polițistă a lui Arthur Conan Doyle , The Valley of Terror , protagonistul Sherlock Holmes primește un mesaj prin poștă criptat cu un cifr de carte, dar, totuși, nu are informații despre cartea de chei folosită. El sparge cifrul, ghicind cu succes că cartea era almanahul popular al lui Whitaker

Pregătirea ofițerilor armatei austro-ungare pentru a folosi cifra de carte din Aventurile bunului soldat Schweik a lui Yaroslav Hasek este extrem de parodică - toți ofițerii stau și citesc 161 de pagini din cartea „Păcatele părinților”, în ciuda faptului că faptul că această pagină este dată în manualul de criptografie. În plus, nefericitul Schweik a adus volumul greșit. În cele din urmă, ofițerii ajung la concluzia „confortantă” că nu va mai fi timp pentru cifruri în război [11] .

Eroul romanului lui Graham Greene Omul nostru în Havana , umilul vânzător de aspiratoare Wormald, folosește un cifr de carte la începutul carierei sale parodice de spionaj. Cel mai apropiat prieten al său, dr. Hasselbacher, observă imediat apariția unei noi cărți: Shakespeare for Youth, și citește fără prea multe dificultăți rapoartele false, chiar folosind același exemplar al cărții. Green, el însuși un fost agent de informații, arată lipsa de încredere a cifrului cărții.

Cartea lui Ken Follet The Key to Rebecca povestește despre un spion german din Cairo care a folosit romanul lui Daphne du Maurier , Rebecca , ca bază pentru un cifr.

În The Presumption of Death , Lordul Peter Wimsey , aflat în misiune pentru informațiile britanice în Europa ocupată de naziști în Marele Război Patriotic, folosește un cifru bazat pe scrierile lui John Donne . Nemții, bănuind că serviciul de informații va alege lucrări clasice ale literaturii engleze pentru criptare, cernesc sistematic astfel de lucrări până o găsesc pe cea corectă, ceea ce duce practic la capturarea de spioni. Wimsey creează apoi un nou cifru bazat pe un text nepublicat cunoscut doar de el și de soția sa.

Note

  1. A. V. Babash, G. P. Shankin „Istoria criptografiei. Partea I. M .: Helios, 2002 ";
  2. Y. Volkova: „Istoria criptografiei”;
  3. V. V. Yashchenko: „Introducere în criptografie” ;.
  4. 1 2 A. V. Sinelnikov: „Cifuri și revoluționari ai Rusiei”;
  5. Michael van der Meulen „Sistemul de criptare a cărților din Wehrmacht”
  6. Changda Wang, Shiguang Ju „O nouă metodă de implementare a cifrului de carte”
  7. The Nihilist Cipher and Its Development Arhivat 4 martie 2016 la Wayback Machine ;
  8. A. V. Sinelnikov: „Cifuri și revoluționari ai Rusiei. Partea 2";.
  9. Albert C. Leighton, Stephen M. Matyas „Căutarea cărții cheie pentru cifrurile cărților lui Nicholas Trist”
  10. The Friedman Legacy: A Tribute to William and Elizebeth Friedman on site of NSA, p.197-198 Arhivat 27 mai 2010 la Wayback Machine ;
  11. J. Hasek „Aventurile bunului soldat Schweik (Partea 3, Capitolul 1)” .

Literatură