Nevoia de a cripta corespondența a apărut în lumea antică și au apărut cifrurile de substituție simple. Mesajele criptate au determinat soarta multor bătălii și au influențat cursul istoriei. De-a lungul timpului, oamenii au inventat metode de criptare din ce în ce mai avansate.
Codul și cifrul sunt, de altfel, concepte diferite. Primul înseamnă înlocuirea fiecărui cuvânt din mesaj cu un cuvânt cod. Al doilea este să criptați fiecare simbol al informațiilor folosind un algoritm specific.
După ce matematica a început să codifice informații și a fost dezvoltată teoria criptografiei, oamenii de știință au descoperit multe proprietăți utile ale acestei științe aplicate. De exemplu, algoritmii de decodare au ajutat la dezlegarea limbilor moarte, cum ar fi egipteana antică sau latină.
Steganografie
Steganografia este mai veche decât codarea și criptarea. Această artă există de foarte mult timp. Înseamnă literal „scriere ascunsă” sau „scriere cifrată”. Deși steganografia nu îndeplinește în totalitate definițiile unui cod sau un cifru, este menită să ascundă informațiile de străini.ochi.
Steganografia este cel mai simplu cifr. Notele înghițite acoperite cu ceară sunt exemple tipice sau un mesaj pe un cap ras care se ascunde sub părul crescut. Cel mai clar exemplu de steganografie este metoda descrisă în multe cărți de poliție englezești (și nu numai), atunci când mesajele sunt transmise printr-un ziar, unde literele sunt marcate discret.
Principalul dezavantaj al steganografiei este că un străin atent îl poate observa. Prin urmare, pentru a preveni citirea cu ușurință a mesajului secret, metodele de criptare și codare sunt utilizate împreună cu steganografia.
ROT1 și cifrul Caesar
Numele acestui cifr este ROTATE cu 1 literă înainte și este cunoscut de mulți școlari. Este un simplu cifr de substituție. Esența sa constă în faptul că fiecare literă este criptată prin deplasarea alfabetică cu 1 literă înainte. A -> B, B -> C, …, Z -> A. De exemplu, criptăm expresia „Nastya noastră plânge tare” și obținem „general Obtua dspnlp rmbsheu”.
Cifrul ROT1 poate fi generalizat la un număr arbitrar de decalaje, apoi se numește ROTN, unde N este numărul cu care ar trebui să fie deplasată criptarea literelor. În această formă, cifrul este cunoscut din cele mai vechi timpuri și este numit „cifrul Cezar”.
Cifrul Caesar este foarte simplu și rapid, dar este un cifr cu o singură permutare și, prin urmare, este ușor de spart. Având un astfel de dezavantaj, este potrivit doar pentru farse infantile.
Cifuri de transpoziție sau de permutare
Aceste tipuri de cifruri simple de permutare sunt mai serioase și au fost folosite în mod activ nu cu mult timp în urmă. În timpul războiului civil american și al primului război mondial, a fost folosit pentru a trimite mesaje. Algoritmul său constă în rearanjarea literelor pe alocuri - scrieți mesajul în ordine inversă sau rearanjați literele în perechi. De exemplu, să criptăm expresia „Codul Morse este și un cifr” -> „akubza ezrom - arici rfish”.
Cu un algoritm bun care determina permutări arbitrare pentru fiecare caracter sau grup al acestora, cifrul a devenit rezistent la crăparea simplă. Dar! Doar la timp. Deoarece cifrul este ușor de spart prin simpla forță brută sau potrivirea dicționarului, astăzi orice smartphone poate gestiona decriptarea acestuia. Prin urmare, odată cu apariția computerelor, acest cifru a trecut și în categoria copiilor.
Cod Morse
ABC este un mijloc de schimb de informații, iar sarcina sa principală este de a face mesajele mai ușor și mai ușor de înțeles pentru transmisie. Deși acest lucru este contrar scopului pentru care este destinată criptarea. Cu toate acestea, funcționează ca cele mai simple cifruri. În sistemul Morse, fiecare literă, număr și semn de punctuație are propriul cod, format dintr-un grup de liniuțe și puncte. Când trimiteți un mesaj folosind telegraful, liniuțele și punctele reprezintă semnale lungi și scurte.
Telegraf și cod Morse… Morse a fost cel care a brevetat pentru prima dată invenția „sa” în 1840, deși dispozitive similare fuseseră inventate în Rusia și Anglia înaintea lui. Dar cui îi pasă acum… Telegraf și alfabetCodul Morse a avut un impact foarte mare asupra lumii, permițând transmiterea aproape instantanee a mesajelor pe distanțe continentale.
Înlocuire monoalfabetică
Codul ROTN și Morse descris mai sus sunt exemple de fonturi de înlocuire monoalfabetice. Prefixul „mono” înseamnă că, în timpul criptării, fiecare literă a mesajului original este înlocuită cu o altă literă sau cod din singurul alfabet de criptare.
Descifrarea cifrurilor simple de substituție nu este dificilă, iar acesta este principalul lor dezavantaj. Ele se rezolvă prin simplă enumerare sau analiză de frecvență. De exemplu, se știe că cele mai utilizate litere ale limbii ruse sunt „o”, „a”, „i”. Astfel, se poate presupune că în textul cifrat literele care apar cel mai adesea înseamnă fie „o”, fie „a”, fie „și”. Pe baza acestor considerente, mesajul poate fi decriptat chiar și fără o căutare pe computer.
Se știe că Maria I, Regina Scoției din 1561 până în 1567, a folosit un cifr de substituție monoalfabetic foarte complex cu mai multe combinații. Cu toate acestea, dușmanii ei au reușit să descifreze mesajele, iar informațiile au fost suficiente pentru a o condamna pe regina la moarte.
cifr Gronsfeld sau substituție polialfabetică
Cifurile simple sunt declarate inutile prin criptografie. Prin urmare, multe dintre ele au fost îmbunătățite. Cifrul Gronsfeld este o modificare a cifrului Caesar. Această metodă este mult mai rezistentă la hacking și constă în faptul că fiecare caracter al informațiilor codificate este criptat folosind unul dintre diferitele alfabete, care se repetă ciclic. Se poate spune că aceasta este o aplicație multidimensionalăcel mai simplu cifr de substituție. De fapt, cifrul Gronsfeld este foarte asemănător cu cifrul Vigenère discutat mai jos.
Algoritm de criptare ADFGX
Acesta este cel mai faimos cifr din Primul Război Mondial folosit de germani. Cifrul și-a primit numele deoarece algoritmul de criptare a condus toate cifrgramele la alternarea acestor litere. Alegerea literelor în sine a fost determinată de comoditatea lor atunci când sunt transmise prin linii telegrafice. Fiecare literă din cifr este reprezentată de două. Să ne uităm la o versiune mai interesantă a pătratului ADFGX care include numere și se numește ADFGVX.
A | D | F | G | V | X | |
A | J | Q | A | 5 | H | D |
D | 2 | E | R | V | 9 | Z |
F | 8 | Y | I | N | K | V |
G | U | P | B | F | 6 | O |
V | 4 | G | X | S | 3 | T |
X | W | L | Q | 7 | C | 0 |
Algoritmul de pătrare ADFGX este următorul:
- Alegeți n litere aleatoare pentru coloane și rânduri.
- Crearea unei matrice N x N.
- Introduceți alfabetul, numerele și caracterele împrăștiate aleatoriu peste celule în matrice.
Să facem un pătrat similar pentru limba rusă. De exemplu, să creăm un pătrat ABCD:
A | B | B | G | D | |
A | E/E | N | b/b | A | I/Y |
B | W | V/F | G/R | З | D |
B | Sh/Sh | B | L | X | I |
G | R | M | O | Yu | P |
D | F | T | T | S | U |
Această matrice arată ciudat, deoarece un rând de celule conține două litere. Acest lucru este acceptabil, sensul mesajului nu se pierde. Poate fi restaurat cu ușurință. Criptați expresia „Cifrare compactă” folosind acest tabel:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | |
Fraza | K | O | M | P | A | K | T | N | S | Y | Ш | & | F | R |
Cifrul | bw | gv | gb | unde | ag | bw | db | ab | dg | iad | wa | iad | bb | ha |
Astfel, mesajul criptat final arată astfel: „bvgvgbgdagbvdbabdgvdvaadbbga”. Desigur, germanii au efectuat o linie similară prin mai multe cifruri. Și până la urmă a ieșit foarte stabilpentru a sparge mesajul criptat.
Cifrul Vigenère
Acest cifru este cu un ordin de mărime mai rezistent la crăpare decât cele monoalfabetice, deși este un simplu cifr de înlocuire a textului. Cu toate acestea, datorită algoritmului robust, a fost mult timp considerat imposibil de piratat. Prima mențiune despre ea datează din secolul al XVI-lea. Vigenère (un diplomat francez) este creditat în mod eronat drept inventator. Pentru a înțelege mai bine ce este în joc, luați în considerare tabelul Vigenère (pătrat Vigenère, tabula recta) pentru limba rusă.
Să începem să codificăm expresia „Kasperovich râde”. Dar pentru ca criptarea să reușească, este nevoie de un cuvânt cheie - să fie „parolă”. Acum să începem criptarea. Pentru a face acest lucru, scriem cheia de atâtea ori încât numărul de litere din ea corespunde cu numărul de litere din fraza criptată, prin repetarea cheii sau tăierea:
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
Expresie: | K | A | С | P | E | R | O | B | & | W | С | M | E | E | T | С | I |
Cheie | P | A | R | O | L | b | P | A | R | O | L | b | P | A | R | O | L |
Acum, folosind tabelul Vigenère, ca și în planul de coordonate, căutăm o celulă care este intersecția perechilor de litere și obținem: K + P=b, A + A=B, C + P=C etc.
1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | |
Cifrul: | b | B | B | Yu | С | N | Yu | G | Sch | F | E | Y | X | F | G | A | L |
Primim acel „Kasperovich râde”=„bvusnyugschzh eykhzhgal”.
Crăparea cifrului Vigenère este atât de dificilă, deoarece analiza frecvenței trebuie să cunoască lungimea cuvântului cheie pentru a funcționa. Deci, hack-ul este să aruncați aleatoriu lungimea cuvântului cheie și să încercați să spargeți mesajul secret.
De asemenea, trebuie menționat că, pe lângă o cheie complet aleatorie, poate fi folosit un tabel Vigenère complet diferit. În acest caz, pătratul Vigenère constă dintr-un alfabet rusesc scris rând cu linie cu o schimbare de unu. Ceea ce ne trimite la cifrul ROT1. Și la fel ca în cifrul Caesar, offset-ul poate fi orice. Mai mult, ordinea literelor nu trebuie să fie alfabetică. În acest caz, tabelul în sine poate fi cheia, fără a ști care va fi imposibil să citești mesajul, chiar știind cheia.
Coduri
Codurile reale constau în potriviri pentru fiecarecuvinte dintr-un cod separat. Pentru a lucra cu ele, sunt necesare așa-numitele cărți de coduri. De fapt, acesta este același dicționar, care conține doar traduceri ale cuvintelor în coduri. Un exemplu tipic și simplificat de coduri este tabelul ASCII - un cifr internațional de caractere simple.
Principalul avantaj al codurilor este că sunt foarte greu de descifrat. Analiza de frecvență aproape că nu funcționează atunci când sunt piratate. Punctul slab al codurilor este, de fapt, cărțile în sine. În primul rând, pregătirea lor este un proces complex și costisitor. În al doilea rând, pentru inamici se transformă într-un obiect dorit, iar interceptarea chiar și a unei părți a cărții te obligă să schimbi complet toate codurile.
În secolul al XX-lea, multe state foloseau coduri pentru a transfera date secrete, schimbând cartea de coduri după o anumită perioadă. Și au vânat în mod activ cărțile vecinilor și adversarilor.
„Enigma”
Toată lumea știe că Enigma a fost principala mașină de cifrare a naziștilor în timpul celui de-al Doilea Război Mondial. Structura Enigma include o combinație de circuite electrice și mecanice. Cum va rezulta cifrul depinde de configurația inițială a Enigma. În același timp, Enigma își schimbă automat configurația în timpul funcționării, criptând un mesaj în mai multe moduri pe toată lungimea sa.
Spre deosebire de cele mai simple cifruri, „Enigma” a oferit trilioane de combinații posibile, ceea ce a făcut aproape imposibilă spargerea informațiilor criptate. La rândul lor, naziștii aveau o anumită combinație pregătită pentru fiecare zi, pe care eifolosit într-o anumită zi pentru a trimite mesaje. Prin urmare, chiar dacă Enigma a căzut în mâinile inamicului, nu a făcut nimic pentru a decripta mesajele fără a intra în configurația corectă în fiecare zi.
Hack „Enigma” a fost încercat activ pe parcursul întregii campanii militare a lui Hitler. În Anglia, în 1936, a fost construit pentru aceasta unul dintre primele dispozitive de calcul (mașina Turing), care a devenit prototipul computerelor în viitor. Sarcina lui a fost să simuleze funcționarea a câtorva zeci de Enigme simultan și să difuzeze mesaje naziste interceptate prin ele. Dar chiar și mașina Turing a reușit doar ocazional să spargă mesajul.
Criptare cheie publică
Cel mai popular dintre algoritmii de criptare, care este folosit peste tot în tehnologie și sisteme informatice. Esența sa constă, de regulă, în prezența a două chei, dintre care una este transmisă public, iar a doua este secretă (privată). Cheia publică este folosită pentru a cripta mesajul, iar cheia privată este folosită pentru a-l decripta.
Cheia publică este cel mai adesea un număr foarte mare care are doar doi divizori, fără a număra unul și numărul în sine. Împreună, acești doi divizori formează o cheie secretă.
Să luăm în considerare un exemplu simplu. Fie cheia publică 905. Împărțitorii ei sunt numerele 1, 5, 181 și 905. Atunci cheia secretă va fi, de exemplu, numărul 5181. Vrei să spui prea ușor? Dacă în rolnumărul public va fi un număr cu 60 de cifre? Este dificil din punct de vedere matematic să calculezi divizorii unui număr mare.
Pentru un exemplu mai viu, imaginați-vă că retrageți bani de la un bancomat. La citirea cardului, datele personale sunt criptate cu o anumită cheie publică, iar pe partea băncii, informația este decriptată cu o cheie secretă. Și această cheie publică poate fi schimbată pentru fiecare operațiune. Și nu există modalități de a găsi rapid divizori cheie atunci când îi interceptați.
Durabilitatea fontului
Puterea criptografică a unui algoritm de criptare este capacitatea de a rezista la hacking. Acest parametru este cel mai important pentru orice criptare. Evident, cifrul de substituție simplu, care poate fi decriptat de orice dispozitiv electronic, este unul dintre cele mai instabile.
Astăzi, nu există standarde uniforme prin care să fie posibil să se evalueze puterea cifrului. Acesta este un proces laborios și lung. Cu toate acestea, există o serie de comisii care au produs standarde în acest domeniu. De exemplu, cerințele minime pentru standardul de criptare avansată sau algoritmul de criptare AES dezvoltat de NIST SUA.
Pentru referință: cifrul Vernam este recunoscut ca fiind cel mai rezistent la rupere. În același timp, avantajul său este că, conform algoritmului său, este cel mai simplu cifr.