thumb|240px|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 a devenit considerată ca fiind cu adevărat o știință acum foarte puțin timp. Aceasta cuprinde atât criptografia - scrierea secretizată - cât și criptanaliza. Scrierea secretizată se efectuează cu ajutorul unui cod de semne convenționale.Academia Română, Dicționarul explicativ al limbii române, Editura Univers Enciclopedic Gold, 2016 De asemenea, criptologia reprezintă nu numai o artă veche, ci și o știință nouă: veche pentru că Iulius Cezar a utilizat-o deja, dar nouă pentru că a devenit o temă de cercetare academico-științifică 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). 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 thumb|199px|right|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 substituție 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.Eerdmans Commentary on the Bible, James D G Dunn, John W Rogerson, eds., Wm. B. Eerdmans Publishing, 2003, ISBN 0-8028-3711-5 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.Kama Sutra, Sir Richard F. Burton, translator, Partea I, Capitolul III, artele 44 și 45. 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.David Kahn, The Codebreakers, 1967, ISBN 0-684-83130-9. 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.
240px|thumbnail|left|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. 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 mecanice 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.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.
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ă.