Sari la conținut

Criptografie

De la Wikipedia, enciclopedia liberă
Manuscrisul lui Voynich

Criptografia reprezintă o ramură a matematicii care se ocupă cu securizarea informaţiei precum şi cu autentificarea şi restricţionarea accesului într-un sistem informatic. În realizarea acestora se utilizează atât metode matematice (profitând, de exemplu, de dificultatea factorizării numerelor foarte mari), cât şi metode de criptare cuantică. Termenul criptografie este compus din cuvintele de origine greacă κρυπτός kryptós (ascuns) şi γράφειν gráfein (a scrie).

Criptologia este considerată ca fiind cu adevărat o ştiinţă de foarte puţin timp. Aceasta cuprinde atât criptografia - scrierea secretizată - cât şi criptanaliza. De asemenea, criptologia reprezintă nu numai o artă veche, ci şi o ştiinţa nouă: veche pentru că Iulius Cezar a utilizat-o deja, dar nouă pentru că a devenit o temă de cercetare academico-ştiinţfică abia începând cu anii 1970. Această disciplină este legată de multe altele, de exemplu de teoria numerelor, algebră, teoria complexităţii, informatică.

Terminologie

Până în vremurile moderne, termenul criptografie se referea aproape exclusiv la criptare, procesul de conversie a informaţiei obişnuite (text în clar) într-un text neinteligibil (text cifrat).[1] Decriptarea este inversul, trecerea de la textul cifrat, neinteligibil, în text clar. Un cifru este o pereche de algoritmi care efectuează atât această criptare cât şi decriptarea. Modul de operare detaliat al unui cifru este controlat de algoritm şi de o cheie. Această cheie este un parametru secret (în mod ideal, cunoscut doar celor care comunică) pentru contextul unui anume schimb de mesaje. Cheile sunt importante, iar cifrurile fără chei variabile sunt simplu de spart şi deci mai puţin utile. De-a lungul istoriei, cifrurile erau adesea folosite direct pentru criptare şi decriptare, fără proceduri adiţionale, cum ar fi autentificarea sau testele de integritate.

În utilizarea populară, termenul "cod" este adesea folosit cu sensul de orice metodă de criptare sau de ascundere a înţelesului. Totuşi, în criptografie, cuvântul cod are un înţeles mai restrâns; acela de înlocuire a unei unităţi de text clar (un cuvânt sau o frază) cu un cuvânt codat (de exemplu, plăcintă cu mere înlocuieşte atac în zori). Codurile nu mai sunt folosite în criptografie, decât uneori pentru anumite lucruri cum ar fi desemnarea unităţilor (de exemplu, "zborul Bronco" sau Operaţiunea Overlord) — întrucât cifrurile alese corect sunt mai practice, mai sigure şi în acelaşi timp mai bine adaptate calculatoarelor decât cele mai bune coduri.

Istoria criptografiei şi criptanalizei

Scytalul din Grecia Antică, probabil, ca şi această reconstrucţie modernă, a fost unul din cele mai vechi dispozitive de implementare a unui cifru.

Înainte de epoca modernă, criptografia se ocupa doar cu asigurarea confidenţialităţii mesajelor (criptare) — conversia de mesaje dintr-o formă comprehensibilă într-una incomprehensibilă, şi inversul acestui proces, pentru a face mesajul imposibil de înţeles pentru cei care interceptează mesajul şi nu au cunoştinţe secrete adiţionale (anume cheia necesară pentru decriptarea mesajului). În ultimele decenii, domeniul s-a extins dincolo de problemele de confidenţialitate şi include, printre altele, şi tehnici de verificare a integrităţii mesajului, autentificare a trimiţătorului şi receptorului, semnătură electronică, calcule securizate.

Cele mai vechi forme de scriere secretizată necesitau doar puţin mai mult decât hârtie şi creion (sau unelte similare acestora), întrucât majoritatea oamenilor nu ştiau să citească. Creşterea alfabetizării a necesitat creşterea complexităţii criptografiei. Principalele tipuri clasice de cifruri sunt cifrurile cu transpoziţie, care modifică ordinea literelor dintr-un mesaj (de exemplu „ajutor” devine „ojartu” într-o schemă trivială de rearanjare), şi cifrurile cu substituţie, care înlocuiesc sistematic litere sau grupuri de litere cu alte litere ş i grupuri de litere (de exemplu, „conexiune” devine „dpofyjvof” înlocuind fiecare literă cu următoarea din alfabet). Versiuni simple ale celor două tipuri de cifruri ofereau un grad mic de confidenţialitate în cazul oponenţilor instruiţi. Unul din primele cifruri cu substitutie a fost Cifrul lui Cezar, în care fiecare literă din textul clar era înlocuită cu o literă aflată la un număr fix de poziţii distanţă de ea în alfabet. Cifrul a fost denumit astfel după Iulius Cezar despre care se spune că l-a folosit, cu o deplasare de 3, în comunicaţia cu generalii săi în timpul campaniilor militare.

Criptarea încearcă să asigure secretul comunicaţiilor cum sunt cele între spioni, lideri militari, şi diplomaţi, dar a avut şi aplicaţii religioase. De exemplu, vechii creştini foloseau criptografia pentru a ascunde unele aspecte ale scrierilor lor religioase pentru a evita persecuţiile ce i-ar fi aşteptat dacă ar fi fost mai puţin atenţi; numărul 666 sau, în unele manuscrise mai vechi, 616, Numărul fiarei din Apocalipsă, este uneori considerat a fi o referinţă la împăratul roman Nero, ale cărui politici includeau persecuţia creştinilor.[2] Există şi referinţe, chiar mai vechi, la anumite cifruri evreieşti. Criptografia este recomandată în Kama Sutra ca modalitate a îndrăgostiţilor de a comunica fără a fi descoperiţi.[3] Steganografia (ascunderea existenţei mesajului) a fost şi ea dezvoltată în antichitate. Unul din primele exemple, de la Herodot, implica ascunderea unui mesaj tatuat pe capul unui sclav ras - sub părul crescut după tatuare.[1] Exemple mai moderne de steganografie includ utilizarea de cerneală invizibilă, micropuncte, şi watermarking digital.

Textele cifrate produse de cifrurile clasice (şi de unele moderne) dezvăluie informaţii statistice despre textul clar, care pot fi adesea folosite pentru spargerea acestora. După descoperirea analizei frecvenţei (poate de către înţeleptul arab al-Kindi) în preajma secolului al IX-lea, aproape toate aceste cifruri au devenit mai mult sau mai puţin uşor de spart de un atacator informat. Astfel de cifruri clasice încă se bucură astăzi de popularitate, deşi mai ales ca jocuri. Aproape toate cifrurile rămân vulnerabile la această tehnică de criptanaliză până la inventarea cifrurilor polialfabetice, de către Leon Battista Alberti în preajma anului 1467 (deşi se pare că acesta era cunoscut înainte şi de arabi). Inovaţia lui Alberti a constat în folosirea de cifruri diferite pe părţi diferite ale mesajului (la limită, pentru fiecare literă diferită). El a inventat şi ceea ce a fost poate primul dispozitiv autinat de cifrare, o roată ce implementa o realizare parţială a invenţiei sale. În cifrul polialfabetic Vigenère, criptarea se bazează pe un cuvânt cheie, care controlează substituţia în funcţie de ce literă a cuvântului cheie se foloseşte. La jumătatea anilor 1800, Charles Babbage a arătat că cifrurile polialfabetice de acest tip rămân vulnerabile la tehnicile de analiză a frecvenţei.[1]

Maşina Enigma, folosită în câteva variante de armata germană după anii 1920 şi până la sfârşitul celui de-al doilea război mondial, implementa un cifru polialfabetic electro-mecanic complex pentru a proteja comunicaţiile sensibile. Spargerea codurilor maşinii Enigma de către Biuro Szyfrów, şi, ulterior, decriptarea pe scară largă a traficului Enigma la Bletchley Park, a fost un important factor ce a contribuit la victoria Aliaţilor în război.[1]

Deşi analiza frecvenţei este o tehnică puternică şi generală, criptarea a rămas adesea eficientă în practică; mulţi criptanalişti amatori nu stăpânesc această tehnică. Spargerea unui mesaj fără analiza frecvenţei necesita cunoaşterea cifrului folosit, ceea ce însemna că spargerea acestuia necesita spionaj, mită, dezertări. În cele din urmă, în secolul al XIX-lea, s-a recunoscut explicit că secretul algoritmului unui cifru nu oferă multă siguranţă; de fapt, s-a constatat chiar că orice schemă criptografică adecvată (inclusiv cifrurile) trebuie să rămână sigure chiar şi dacă adversarul cunoaşte perfect algoritmul de cifrare. Secretul cheii ar trebui astfel să fie suficient pentru ca un bun cifru să-şi păstreze confidenţialitatea în caz de atac. Acest principiu fundamental a fost enunţat explicit în 1883 de Auguste Kerckhoffs şi este în general numit Principiul lui Kerckhoffs; el a fost reenunţat mai succint şi mai direct de Claude Shannon ca Maxima lui Shannon — „Inamicul cunoaşte sistemul”.

Diferite dispozitive fizice au fost folosite pentru a ajuta lucrul cu cifrurile. Una din primele modalităţi a fost scytalul din Grecia antică, un sul folosit probabil de spartani ca ajutor la criptarea şi decriptarea cu un cifru cu transpoziţie. În epoca medievală, au fost inventate şi alte unelte, cum ar fi grila de cifru, folosită şi pentru un fel de steganografie. Inventarea cifrurilor polialfabetice, a declanşat inventarea unor unelte mai sofisticate, cum ar fi discul lui Alberti, schema cu tabula recta a lui Johannes Trithemius, şi multicilindrul lui Thomas Jefferson (reinventat independent de Étienne Bazeries pe la 1900). Unele aparate macanice de criptare/decriptare au fost inventate la începutul secolului al XX-lea, printre care s-au numărat maşinile rotitoare — cea mai celebră fiind maşina Enigma folosită de Germania în al doilea război mondial. Cifrurile implementate de maşini similare dar îmbunătăţite au adus o creştere a dificultăţii criptanalizei după al doilea război mondial.[4]

Dezvoltarea electronicii şi a calculatoarelor numerice după al doilea război mondial au făcut posibile cifruri mult mai complexe. Mai mult, calculatoarele au permis criptarea oricărui fel de date reprezentate de calculator în format binar, spre deosebire de cifrurile clasice care criptau doar texte în limbaj scris, dizolvând utilitatea abordării lingvistice a criptanalizei în multe cazuri. Multe cifruri informatice pot fi caracterizate prin operarea pe secvenţe de biţi (uneori pe grupuri sau blocuri), spre deosebire de schemele clasice şi mecanice, care manevrează caractere tradiţionale (litere şi cifre) direct. Totuşi, calculatoarele au ajutat şi criptanaliştii, ceea ce a compensat până la un punct creşterea complexităţii cifrurilor. Cu toate acestea, cifrurile moderne bune au rămas cu un pas înaintea criptanalizei; este cazul de obicei ca utilizarea unui cifru de calitate să fie foarte eficientă (rapidă şi puţin costisitoare în ce priveşte resursele), în timp ce spargerea cifrului să necesite un efort cu multe ordine de mărime mai mare, făcând criptanaliza atât de ineficientă şi nepractică încât a devenit efectiv imposibilă.


Cercetările academice deschise desfăşurate în domeniul criptografiei sunt relativ recente — au început doar la jumătatea anilor 1970 cu specificaţiile publice ale DES (Data Encryption Standard) la NBS, lucrarea Diffie-Hellman,[5] şi publicarea algoritmului RSA. De atunci, criptografia a devenit o unealtă folosită pe scară largă în comunicaţii, reţele de calculatoare, şi în securitatea informatică în geneal. Nivelul prezent de securitate al multor tehnici criptografice moderne se bazează pe dificultatea unor anumite probleme computaţionale, cum ar fi problema factorizării întregilor sau a calculului logaritmilor discreţi. În multe cazuri, există demonstraţii matematice care arată că unele tehnici criptografice sunt siguri dacă o anumită problemă computaţională nu poate fi rezolvată eficient.[6]

Proiectanţii de sisteme şi algoritmi criptografici, pe lângă cunoaşterea istoriei criptografiei, trebuie să ia în consideraţie în dezvoltarea proiectelor lor şi posibilele dezvoltări ulterioare. De exemplu, îmbunătăţirile continue în puterea de calcul a calculatoarelor au mărit gradul de acoperire al atacurilor cu forţa brută la specificarea lungimii cheilor. Efectele potenţiale ale calculatoarelor cuantice sunt deja luate în calcul de unii proiectanţi de sisteme criptografice; iminenţa anunţată a implementării acestor maşini face aceste precauţii necesare.[7]

În principal, până la începutul secolului al XX-lea, criptografia s-a ocupat mai ales de şabloane lingvistice. De atunci, accentul s-a mutat pe folosirea extensivă a matematicii, inclusiv a aspectelor de teoria informaţiei, complexitatea algoritmilor, statistică, combinatorică, algebră abstractă şi teoria numerelor. Criptografia este şi o ramura a ingineriei, dar una neobişnuită, întrucât se ocupă de opoziţia activă, inteligentă şi răuvoitoare; majoritatea celorlalte ramuri ale ingineriei se ocupă doar de forţe naturale neutre. Se fac cercetări şi în examinarea relaţiilor dintre problemele criptografice şi fizica cuantică.

Criptografia modernă

Domeniul modern al criptografiei poate fi împărţit în câteva domenii de studiu. Cele principale sunt discutate aici.

Criptografia cu chei simetrice

Criptografia cu chei simetrice se referă la metode de criptare în care atât trimiţătorul cât şi receptorul folosesc aceeaşi cheie (sau, mai rar, în care cheile sunt diferite, dar într-o relaţie ce la face uşor calculabile una din cealaltă). Acest tip de criptare a fost singurul cunoscut publicului larg până în 1976.[5]

O etapă (din 8.5) a cifrului patentat IDEA, folosit în unele versiuni de PGP pentru criptare de mare viteză sau, de exemplu, e-mail

Studiul modern al cifrurilor cu chei simetrice se leagă mai ales de studiul cifrurilor pe blocuri şi al cifrurilor pe flux şi al aplicaţiilor acestora. Un cifru pe blocuri este, într-un fel, o formă modernă de cifru polialfabetic Alberti: cifrurile pe blocuri iau la intrare un bloc de text clar şi o cheie, şi produc la ieşire un bloc de text cifrat de aceeaşi dimensiune. Deoarece mesajele sunt aproape mereu mai lungi decât un singur bloc, este necesară o metodă de unire a blocurilor succesive. S-au dezvoltat câteva astfel de metode, unele cu securitate superioară într-un aspect sau altul decât alte cifruri. Acestea se numesc moduri de operare şi trebuie luate în calcul cu grijă la folosirea unui cifru pe blocuri într-un criptosistem.

Data Encryption Standard (DES) şi Advanced Encryption Standard (AES) sunt cifruri pe blocuri care sunt considerate standarde de criptografie de guvernul american (deşi DES a fost în cele din urmă retras după adoptarea AES).[8] În ciuda decăderii ca standard oficial, DES (mai ales în varianta triple-DES, mult mai sigură) rămâne încă popular; este folosit într-o gamă largă de aplicaţii, de la criptarea ATM[9] la securitatea e-mail-urilor[10] şi accesul la distanţă securizat.[11] Multe alte cifruri pe blocuri au fost elaborate şi lansate, cu diverse calităţi. Multe au fost sparte. [7][12]

Cifrurile pe flux de date, în contrast cu cele pe blocuri, creează un flux arbitrar de material-cheie, care este combinat cu textul clar, bit cu bit sau caracter cu caracter. Într-un cifru pe flux de date, fluxul de ieşire este creat pe baza unei stări interne care se modifică pe parcursul operării cifrului. Această schimbare de stare este controlată de cheie, şi, la unele cifruri, şi de fluxul de text clar. RC4 este un exemplu de binecunoscut cifru pe flux.[7]

Funcţiile hash criptografice (adesea numite message digest) nu folosesc neapărat chei, sunt o clasă importantă de algoritmi criptografici. Aceştia primesc date de intrare (adesea un întreg mesaj), şi produc un hash scurt, de lungime fixă, sub forma unei funcţii neinversabile. Pentru hash-urile bune, coliziunile (două texte clare diferite care produc acelaşi hash) sunt extrem de dificil de găsit.

Note

  1. ^ a b c d David Kahn, The Codebreakers, 1967, ISBN 0-684-83130-9.
  2. ^ Eerdmans Commentary on the Bible, James D G Dunn, John W Rogerson, eds., Wm. B. Eerdmans Publishing, 2003, ISBN 0-8028-3711-5
  3. ^ Kama Sutra, Sir Richard F. Burton, translator, Partea I, Capitolul III, artele 44 şi 45.
  4. ^ James Gannon, Stealing Secrets, Telling Lies: How Spies and Codebreakers Helped Shape the Twentieth Century, Washington, D.C., Brassey's, 2001, ISBN 1-57488-367-4.
  5. ^ a b Whitfield Diffie şi Martin Hellman, "New Directions in Cryptography", IEEE Transactions on Information Theory, vol. IT-22, Nov. 1976, pp: 644–654. (pdf)
  6. ^ Oded Goldreich, Foundations of Cryptography, Volume 1: Basic Tools, Cambridge University Press, 2001, ISBN 0-521-79172-3
  7. ^ a b c AJ Menezes, PC van Oorschot şi SA Vanstone, Handbook of Applied Cryptography ISBN 0-8493-8523-7.
  8. ^ FIPS PUB 197: The official Advanced Encryption Standard.
  9. ^ NCUA letter to credit unions, iulie 2004
  10. ^ RFC 2440 - Open PGP Message Format
  11. ^ SSH at windowsecurity.com de Pawel Golen, iulie 2004
  12. ^ Bruce Schneier, Applied Cryptography, 2nd edition, Wiley, 1996, ISBN 0-471-11709-9.

Literatură

  • Simon Singh - How to Make It, Break It, Hack It, Crack It, Delacorte Press, New York 2001
  • David Kahn - The Codebreakers, New York 1996
  • S. McClain - The Navajo Weapon, Boulder, Colorado 1994
  • Simson Garfinkel - PGP: Pretty Good Privacy, Bonn 1996
  • James Bamford - The Puzzle Palace, London 1983 (despre NSA)

Vezi şi

Criptografie
Istoria criptologiei | Criptanaliză | Portalul criptografiei | Subiecte în criptografie
Algoritm cu chei simetrice | Cifru bloc | Cifru stream | Criptografie cu chei publice | Funcție hash criptografică | Cod de autentificare a mesajelor | Număr aleatoriu

Format:Link FA

Format:Legătură AF