Lecții de criptografie. Cifre bloc moderne. Mod de înlocuire simplu cu angajare. Metode de criptare de bază

Nevoia de a cripta corespondența a apărut din nou lumea antica, ș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 criptarea fiecărui 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 această știință aplicată. De exemplu, algoritmii de decodare au ajutat la rezolvare limbi moarte, cum ar fi egipteana antică sau latină.

Steganografie

Steganografia este mai veche decât codarea și criptarea. Această artă a apărut cu mult timp în urmă. Înseamnă literal „scriere ascunsă” sau „scriere secretă”. Deși steganografia nu corespunde întocmai cu definiția unui cod sau a unui cifr, este menită să ascundă informațiile de privirile indiscrete.

Steganografia este cel mai simplu cifr. Exemple tipice sunt notele înghițite acoperite cu ceară sau un mesaj pe un cap ras care este ascuns sub creșterea părului. Cel mai clar exemplu de steganografie este metoda descrisă în multe cărți de poliție englezești (și nu numai), când mesajele sunt transmise printr-un ziar în care 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, se folosesc metode de criptare și codare împreună cu steganografia.

ROT1 și cifrul Caesar

Numele acestui cifr este ROTATE 1 litera înainte și este cunoscut de mulți școlari. Este un simplu cifr de substituție. Esența sa este că fiecare literă este criptată prin mutarea alfabetului cu 1 literă înainte. A -> B, B -> B, ..., I -> A. De exemplu, să criptăm expresia „Nastya noastră plânge tare” și să obținem „obshb 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 compensată 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 simplu cu o singură permutare și, prin urmare, este ușor de spart. Având dezavantaj similar, este potrivit doar pentru farsele copiilor.

Cifre de transpunere sau permutare

Aceste tipuri de cifruri simple de permutare sunt mai serioase și au fost utilizate î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 transmite mesaje. Algoritmul său este de a rearanja literele - scrieți mesajul ordine inversă sau rearanjați literele în perechi. De exemplu, să criptăm expresia „Codul Morse este și un cifru” -> „Akubza ezrom - ezhot rfish”.

Cu un algoritm bun care determina permutări arbitrare pentru fiecare caracter sau grup al acestora, cifrul a devenit rezistent la hacking simplu. Dar! Doar la timp. Deoarece cifrul poate fi spart cu ușurință prin simpla forță brută sau potrivirea dicționarului, astăzi orice smartphone îl poate descifra. Prin urmare, odată cu apariția computerelor, acest cifru a devenit și un cod pentru copii.

Codul Morse

Alfabetul este un mijloc de schimb de informații și sarcina sa principală este de a face mesajele mai simple și mai ușor de înțeles pentru transmitere. 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, alcătuit dintr-un grup de liniuțe și puncte. Când transmiteți un mesaj folosind telegraful, liniuțele și punctele indică lung și semnale scurte.

Telegraful și alfabetul au fost primul care a brevetat invenția „sa” în 1840, deși dispozitive similare fuseseră inventate înaintea lui atât în ​​Rusia, cât și în Anglia. Dar cui îi pasă de asta acum... Telegraful și codul Morse au avut o foarte mare influență mare către lume, permițând ca mesajele să fie transmise aproape instantaneu pe distanțe continentale.

Substituție monoalfabetică

Codul ROTN și Morse descris mai sus sunt reprezentanți ai fonturilor de înlocuire monoalfabetice. Prefixul „mono” înseamnă că în timpul criptării, fiecare literă a mesajului original este înlocuită cu o altă literă sau cod dintr-un singur alfabet de criptare.

Decriptarea cifrurilor de substituție simplă nu este dificilă, iar aceasta este a lor dezavantajul principal. Ele pot fi rezolvate prin simpla căutare sau De exemplu, se știe că cele mai utilizate litere în limba rusă sunt „o”, „a”, „i”. Astfel, putem presupune că în textul cifrat, literele care apar cel mai adesea înseamnă fie „o”, „a”, fie „i”. Pe baza acestor considerații, mesajul poate fi descifrat chiar și fără 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 combinații multiple. 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.

Cifrul Gronsfeld sau substituție polialfabetică

Cifrurile simple sunt considerate inutile de criptografie. Prin urmare, multe dintre ele au fost modificate. Cifrul Gronsfeld este o modificare a cifrului Caesar. Aceasta metoda este mult mai rezistent la hacking și constă în faptul că fiecare caracter al informațiilor codificate este criptat folosind unul dintre alfabete diferite, care se repetă ciclic. Putem spune că aceasta este o aplicație multidimensională a celui mai simplu cifr de substituție. De fapt, cifrul Gronsfeld este foarte asemănător cu cel discutat mai jos.

Algoritmul de criptare ADFGX

Acesta este cel mai faimos cifr din Primul Război Mondial folosit de germani. Cifrul și-a primit numele deoarece a redus 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 eu 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 pentru alcătuirea pătratului ADFGX este următorul:

  1. Luăm n litere aleatoare pentru a desemna coloane și rânduri.
  2. Construim o matrice N x N.
  3. Introducem alfabetul, numerele, semnele în matrice, la întâmplareîmprăștiate în celule.

Să facem un pătrat similar pentru limba rusă. De exemplu, să creăm un pătrat ABCD:

A B ÎN G D
A A EI N b/b A I/Y
B H V/F H/C Z D
ÎN Sh/Sch B L X eu
G R M DESPRE YU P
D ȘI T C Y U

Această matrice arată ciudat, deoarece un număr de celule conțin două litere. Acest lucru este acceptabil; sensul mesajului nu se pierde. Se poate restaura cu ușurință. Să criptăm expresia „Cifrare compactă” folosind acest tabel:

1 2 3 4 5 6 7 8 9 10 11 12 13 14
Fraza LA DESPRE M P A LA T N Y Y SH ȘI F R
Cifru bv paznici GB gd Ah bv db ab dg iad va iad bb Ha

Astfel, mesajul final criptat arată astfel: „bvgvgbgdagbvdbabdgvdvaadbbga”. Desigur, germanii au trecut o linie similară prin mai multe cifruri. Iar rezultatul a fost un mesaj criptat foarte rezistent la piratare.

Cifrul Vigenère

Acest cifru este cu un ordin de mărime mai rezistent la fisurare decât cele monoalfabetice, deși este un simplu cifru de înlocuire a textului. Cu toate acestea, datorită algoritmului robust pentru o lungă perioadă de timp a fost considerat imposibil de piratat. Primele sale mențiuni datează din secolul al XVI-lea. Vigenère (un diplomat francez) este considerat în mod eronat inventatorul său. Pentru a înțelege mai bine ce despre care vorbim, luați în considerare tabelul Vigenère (pătrat Vigenère, tabula recta) pentru limba rusă.

Să începem să criptăm expresia „Kasperovich râde”. Dar pentru ca criptarea să reușească, aveți nevoie de un cuvânt cheie - să fie „parolă”. Acum să începem criptarea. Pentru a face acest lucru, notăm cheia de atâtea ori încât numărul de litere din ea corespunde numărului de litere din fraza criptată, repetând cheia sau tăind-o:

Acum, folosind 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 = B etc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
Cifru: Kommersant B ÎN YU CU N YU G SCH ȘI E Y X ȘI G A L

Obținem că „Kasperovich râde” = „abvyusnyugshch eykhzhgal”.

Ruperea cifrului Vigenère este atât de dificilă, deoarece analiza frecvenței necesită cunoașterea lungimii cuvânt cheie. Prin urmare, hacking-ul implică aruncarea aleatorie a unui cuvânt cheie și încercarea de a sparge mesajul secret.

De asemenea, trebuie menționat că, pe lângă o cheie complet aleatorie, poate fi folosită o cheie complet aleatorie masă diferită Vigenère. În acest caz, pătratul Vigenère este format din alfabetul rus scris linie cu linie cu un offset de unu. Ceea ce ne duce 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 o cheie, fără a ști care va fi imposibil să citești mesajul, chiar știind cheia.

Codurile

Codurile reale constau în potriviri pentru fiecare cuvânt cod separat. Pentru a lucra cu ele, aveți nevoie de 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 Tabel ASCII- cifrul internațional al caracterelor simple.

Principalul avantaj al codurilor este că sunt foarte greu de descifrat. Analiza de frecvență aproape că nu funcționează atunci când le piratați. 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 din carte îi obligă să schimbe complet toate codurile.

În secolul al XX-lea, multe state foloseau coduri pentru a transmite date secrete, schimbând cartea de coduri în timp. anumită perioadă. Și au vânat activ cărțile vecinilor și adversarilor lor.

"Enigmă"

Toată lumea știe că Enigma a fost principala mașină de criptare nazistă în timpul celui de-al Doilea Război Mondial. Structura Enigma include o combinație de circuite electrice și mecanice. Cum se dovedește cifrul depinde de configurația inițială a Enigmei. În același timp, Enigma își schimbă automat configurația în timpul funcționării, criptând un mesaj în mai multe moduri pe întreaga sa lungime.

Spre deosebire de cele mai multe cifruri simple Enigma a oferit trilioane de combinații posibile, făcând aproape imposibilă spargerea informațiilor criptate. La rândul lor, naziștii aveau pregătită o combinație specifică pentru fiecare zi, pe care o foloseau într-o anumită zi pentru a transmite mesaje. Prin urmare, chiar dacă Enigma a căzut în mâinile inamicului, nu a contribuit în niciun fel la descifrarea mesajelor fără a intra în fiecare zi în configurația necesară.

Ei au încercat activ să spargă Enigma pe tot parcursul campaniei militare a lui Hitler. În Anglia, în 1936, a fost construit în acest scop 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 fost capabilă doar ocazional să spargă un mesaj.

Criptare cu cheie publică

Cel mai popular algoritm 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 secretă este folosită pentru a-l decripta.

În rol cheie publică cel mai adesea acţionează foarte număr mare, care are doar doi divizori, fără a număra unul și numărul în sine. Împreună, acești doi divizori formează cheia secretă.

Să ne uităm la un exemplu simplu. Fie cheia publică să fie 905. Împărțitorii ei sunt numerele 1, 5, 181 și 905. Atunci cheia secretă va fi, de exemplu, numărul 5*181. Ai zice că e prea simplu? Ce se întâmplă dacă numărul public este 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 realist, imaginați-vă că retrageți bani de la un bancomat. Când un card este citit, datele personale sunt criptate cu o anumită cheie publică, iar din partea băncii informațiile sunt decriptate cu o cheie secretă. Și această cheie publică poate fi schimbată pentru fiecare operațiune. Dar nu există modalități de a găsi rapid divizoare de cheie atunci când o interceptați.

Durabilitatea fontului

Puterea criptografică a unui algoritm de criptare este capacitatea sa de a rezista la hacking. Acest parametru este cel mai important pentru orice criptare. Este evident că un simplu cifr de substituție pe care oricine îl poate descifra dispozitiv electronic, este una dintre cele mai instabile.

Nu există astăzi standarde comune, prin care a putut fi evaluată puterea cifrului. Acesta este un proces lung și intensiv în muncă. Cu toate acestea, există o serie de comisii care au produs standarde în acest domeniu. De exemplu, Cerințe minime la standardul de criptare avansat sau algoritmul de criptare AES, dezvoltat de NIST SUA.

Pentru referință: cifrul Vernam este recunoscut drept cel mai rezistent cifr la spargere. În același timp, avantajul său este că, conform algoritmului său, este cel mai simplu cifr.

În secolul 21, criptografia joacă un rol serios în viata digitala oameni moderni. Să ne uităm pe scurt la modalitățile de criptare a informațiilor.

Criptografia nu este doar ceva computerizat

Cel mai probabil, ați întâlnit deja criptografia de bază și poate cunoașteți câteva metode de criptare. De exemplu, Cifrul Caesar este adesea folosit în jocurile educaționale pentru copii.

ROT13 este un alt tip comun de criptare a mesajelor. În ea, fiecare literă a alfabetului este deplasată cu 13 poziții, așa cum se arată în figură:

După cum puteți vedea, acest cifru nu oferă cu adevărat protecţie fiabilă informaţie: este simplă şi exemplu clarîntreaga idee a criptografiei.

Astăzi vorbim despre criptografie cel mai des în contextul unor tehnologii. Cum sunt transmise informațiile personale și financiare în siguranță atunci când facem o achiziție online sau vedem conturi bancare? Cum poți stoca datele în siguranță, astfel încât nimeni să nu deschidă computerul, să scoată hard disk-ul și să aibă acces complet la toate informațiile de pe el? Vom răspunde la aceste și la alte întrebări în acest articol.

Definiții și ghid rapid privind securitatea cibernetică

În securitatea cibernetică, există o serie de lucruri care îngrijorează utilizatorii când vine vorba de orice date. Acestea includ confidențialitatea, integritatea și disponibilitatea informațiilor.

Confidențialitate– datele nu pot fi primite sau citite de utilizatori neautorizați.

Integritatea informațiilor– încredere că informațiile vor rămâne 100% intacte și nu vor fi modificate de către un atacator.

Disponibilitatea informațiilor– obținerea accesului la date atunci când este necesar.

Acest articol va analiza, de asemenea, diferitele forme de criptografie digitală și modul în care acestea pot ajuta la atingerea obiectivelor enumerate mai sus.

Metode de bază de criptare:
  • Simetric
  • Asimetric
  • Hashing
  • Semnatura digitala

Criptare simetrică

Înainte de a aborda subiectul, să răspundem la o întrebare simplă: ce se înțelege exact prin „criptare”? Criptarea este transformarea informațiilor pentru a le ascunde de persoanele neautorizate, permițând în același timp utilizatorilor autorizați accesul la ea.

Pentru a cripta și decripta corect datele, aveți nevoie de două lucruri: datele și cheia de decriptare. Când utilizați criptarea simetrică, cheia pentru criptarea și decriptarea datelor este aceeași. Să luăm un șir și să-l criptăm folosind Ruby și OpenSSL:

Rubin

require "openssl" require "pry" data_to_encrypt = "acum poți să mă citești!" cipher = OpenSSL::Cipher.new("aes256") cipher.encrypt cheie = cipher.random_key iv = cipher.random_iv data_to_encrypt = cipher.update(data_to_encrypt) + cipher.final binding.pry true

necesită „openssl”

necesită „prietă”

cipher = OpenSSL::Cipher. nou ("aes256")

cifru cripta

cheie = cifr . cheie_aleatorie

iv = cifr . aleatoriu_iv

data_to_encrypt = cifrare . update(data_to_encrypt) + cipher. final

legare. desface

Adevărat

Acesta este ceea ce va scoate programul:

Vă rugăm să rețineți că variabila date_to_encrypt, care a fost inițial rândul „acum poți să mă citești!” este acum o grămadă de personaje de neînțeles. Să inversăm procesul folosind cheia care a fost stocată inițial într-o variabilă cheie.

După ce folosim aceeași cheie pe care am setat-o ​​pentru criptare, decriptăm mesajul și obținem șirul original.

Să ne uităm la alte metode de criptare.

A criptare simetrică

Problema cu criptarea simetrică este următoarea: să presupunem că trebuie să trimiteți niște date prin Internet. Dacă aceeași cheie este necesară pentru a cripta și decripta datele, atunci se dovedește că cheia trebuie trimisă mai întâi. Aceasta înseamnă că cheia va trebui trimisă printr-o conexiune nesigură. Dar în acest fel cheia poate fi interceptată și utilizată de o terță parte. Pentru a evita acest rezultat, a fost inventată criptarea asimetrică.

Pentru a utiliza criptarea asimetrică, trebuie să generați două chei legate matematic. Una este o cheie privată la care aveți acces numai dvs. Al doilea este deschis, care este disponibil publicului.

Să ne uităm la un exemplu de comunicare folosind criptarea asimetrică. În ea, serverul și utilizatorul își vor trimite mesaje unul altuia. Fiecare dintre ele are două chei: privată și publică. S-a spus mai devreme că cheile sunt conectate. Acestea. Un mesaj criptat cu o cheie privată poate fi decriptat numai folosind o cheie publică adiacentă. Prin urmare, pentru a începe comunicarea, trebuie să faceți schimb de chei publice.

Dar cum înțelegeți că cheia publică a serverului aparține acestui server anume? Există mai multe modalități de a rezolva această problemă. Cea mai comună metodă (și cea folosită pe Internet) este utilizarea unei infrastructuri cu chei publice (PKI). În cazul site-urilor web, există o Autoritate de Certificare, care are un director cu toate site-urile web pentru care au fost emise certificate și chei publice. Când vă conectați la un site web, cheia publică a acestuia este mai întâi verificată de o autoritate de certificare.

Să creăm o pereche de chei publice și private:

Rubin

require "openssl" require "pry" data_to_encrypt = "acum poți să mă citești!" cheie = OpenSSL::PKey::RSA.new(2048) binding.pry true

necesită „openssl”

necesită „prietă”

data_to_encrypt = "acum poți să mă citești!"

cheie = OpenSSL::PKey::RSA. nou (2048)

legare. desface

Adevărat

Se va dovedi:

Vă rugăm să rețineți că cheia privată și cheia publică sunt obiecte separate cu identificatori diferiți. Folosind #private_encrypt, puteți cripta șirul folosind cheie privată, și folosind #public_decrypt– decriptează mesajul:

Informații de hashing

Hashing, spre deosebire de criptarea simetrică și asimetrică, este o funcție unidirecțională. Este posibil să creați un hash din unele date, dar nu există nicio modalitate de a inversa procesul. Acest lucru face ca hashingul să nu fie un mod foarte convenabil de a stoca date, dar este potrivit pentru verificarea integrității unor date.

Funcția preia unele informații ca intrare și scoate la ieșire un șir aparent aleatoriu care va avea întotdeauna aceeași lungime. O funcție de hashing ideală produce valori unice pentru diverse intrări. Aceeași intrare va produce întotdeauna același hash. Prin urmare, hashingul poate fi utilizat pentru a verifica integritatea datelor.

Introducere

Problema protejării informațiilor prin transformarea acesteia astfel încât să nu poată fi citite de un străin a entuziasmat mintea umană din cele mai vechi timpuri. Istoria criptografiei este coevală cu istoria limbajului uman. Mai mult decât atât, scrisul în sine a fost inițial un sistem criptografic, deoarece în societățile antice doar câțiva aleși îl stăpâneau.

Cărțile sacre ale Egiptului Antic și Indiei Antice sunt exemple în acest sens.

Odată cu utilizarea pe scară largă a scrisului, criptografie a început să apară ca o știință independentă. Primele criptosisteme se găsesc deja la începutul erei noastre. Astfel, Cezar a folosit în corespondența sa un cifru mai mult sau mai puțin sistematic, care a primit numele său.

Dezvoltare rapida sisteme criptografice primite în timpul Primului și al Doilea Război Mondial. Din perioada postbelică și până în prezent, apariția computerului a accelerat dezvoltarea și îmbunătățirea metode criptografice.

De ce este o problemă să folosiți metode criptografice în sisteme de informare(IS) a devenit în în prezent deosebit de relevant?

Pe de o parte, utilizarea sa extins retele de calculatoare, în special retea globala Internet, prin care se transmit volume mari de informații cu caracter de stat, militar, comercial și privat, împiedicând accesul persoanelor neautorizate la el.

Pe de altă parte, apariția noului calculatoare puternice, tehnologiile de calcul de rețea și neuronale au făcut posibilă discreditarea sistemelor criptografice care până de curând erau considerate practic indestructibile.

În primul capitol al acestei lucrări, vă puteți familiariza cu conceptele de bază ale criptografiei moderne, cerințele pentru acestea și posibilitățile de aplicare practică a acesteia.

În al doilea capitol de lucru cu protocoale de distribuție chei criptografice, conceptul de semnătură electronică și protocoale de semnătură electronică..

Al treilea capitol al acestei lucrări vorbește despre funcțiile hash și (metodele) algoritmilor pentru construcția lor.

Al patrulea capitol va vorbi despre modernizarea semnăturii electronice El Gamal și problema logaritmului discret.

Capitolul 1. Concepte de bază ale criptografiei moderne

Criptologia (kryptos - secret, logos - știință) se ocupă de problema protejării informațiilor prin transformarea acesteia. Criptologia este împărțită în două domenii - criptografie și criptoanaliza. Scopurile acestor direcții sunt direct opuse.

Criptografia se ocupă de căutare și explorare metode matematice transformarea informatiilor.

Domeniul de interes al criptoanalizei este studiul posibilității de decriptare a informațiilor fără a cunoaște cheile.

Această lucrare se va concentra pe metodele criptografice.

Criptografia modernă include patru secțiuni majore:

Criptosisteme simetrice.

Criptosisteme cu cheie publică.

Sisteme de semnătură electronică.

Managementul cheilor.

Principalele domenii de utilizare a metodelor criptografice sunt transferul de informații confidențiale prin canale de comunicare (de exemplu, e-mail), autentificare mesajele transmise, stocarea informațiilor (documente, baze de date) pe suporturi în formă criptată.

Criptografia face posibilă transformarea informațiilor în așa fel încât citirea (recuperarea) acesteia să fie posibilă numai dacă cheia este cunoscută.

Textele bazate pe un anumit alfabet vor fi considerate informații care trebuie criptate și decriptate. Acești termeni înseamnă următoarele.

Un alfabet este un set finit de semne folosite pentru a codifica informații.

Textul este un set ordonat de elemente alfabetice.

Următoarele sunt exemple de alfabete utilizate în sistemele informaționale moderne:

alfabetul Z33 - 32 de litere ale alfabetului rus și un spațiu;

alfabetul Z256 - simboluri incluse în standard coduri ASCIIși KOI-8;

alfabet binar - Z2 = (0,1);

alfabet octal sau alfabet hexazecimal;

Criptarea este un proces de transformare: textul original, numit și text simplu, este înlocuit cu text cifrat.

Decriptarea este procesul invers al criptării. Pe baza cheii, textul cifrat este convertit în cel original.

Cheia este informația necesară pentru criptarea și decriptarea fără probleme a textelor.

Un sistem criptografic este o familie de transformări în text simplu T. Membrii acestei familii sunt indexați sau desemnați prin simbolul k; parametrul k este cheia. Spațiul cheie K este setul de valori cheie posibile. De obicei, cheia este o serie secvențială de litere ale alfabetului.

Criptosistemele sunt împărțite în cheie simetrică și cheie publică.

În sistemele cripto simetrice, aceeași cheie este utilizată atât pentru criptare, cât și pentru decriptare.

Sistemele cu chei publice folosesc două chei, o cheie publică și o cheie privată, care sunt legate matematic una de cealaltă. Informațiile sunt criptate folosind o cheie publică, care este disponibilă pentru toată lumea, și decriptate folosind o cheie privată, cunoscută doar de destinatarul mesajului. Termenii de distribuție a cheilor și management al cheilor se referă la procesele unui sistem de procesare a informațiilor, al cărui conținut este compilarea și distribuirea cheilor între utilizatori.

O semnătură electronică (digitală) este o transformare criptografică atașată textului, care permite, atunci când textul este primit de un alt utilizator, să se verifice paternitatea și autenticitatea mesajului.

Puterea criptografică este o caracteristică a unui cifr care determină rezistența acestuia la decriptare fără a cunoaște cheia (adică, criptoanaliza). Există mai mulți indicatori ai puterii criptografice, inclusiv:

numărul tuturor cheilor posibile;

timpul mediu necesar pentru criptoanaliză.

Transformarea Tk este determinată de algoritmul corespunzător și de valoarea parametrului k. Eficacitatea criptării pentru a proteja informațiile depinde de păstrarea secretului cheii și de puterea criptografică a cifrului.

Procesul de închidere a datelor criptografice poate fi efectuat fie în software, fie în hardware. Implementarea hardware este semnificativ mai costisitoare, dar are și avantaje: performanta ridicata, simplitate, securitate etc. Implementare software mai practic, permițând o anumită flexibilitate în utilizare.

Următoarele cerințe general acceptate sunt formulate pentru sistemele moderne de securitate a informațiilor criptografice:

mesajul criptat trebuie să fie lizibil numai dacă cheia este disponibilă;

numărul de operațiuni necesare pentru a determina cheia de criptare utilizată dintr-un fragment dintr-un mesaj criptat și textul simplu corespunzător trebuie să fie cel puțin numărul total posibile chei;

numărul de operațiuni necesare pentru decriptarea informațiilor prin încercarea tuturor cheilor posibile trebuie să aibă o limită inferioară strictă și să depășească limitele posibilităților calculatoare moderne(ținând cont de posibilitatea utilizării calculului în rețea);

cunoașterea algoritmului de criptare nu ar trebui să afecteze fiabilitatea protecției;

o ușoară modificare a cheii ar trebui să conducă la o schimbare semnificativă a aspectului mesajului criptat, chiar și atunci când se utilizează aceeași cheie;

elementele structurale ale algoritmului de criptare trebuie să rămână neschimbate;

biții suplimentari introduși în mesaj în timpul procesului de criptare trebuie să fie complet și sigur ascunși în textul cifrat;

lungimea textului cifrat trebuie să fie egal cu lungimea text sursă;

nu ar trebui să existe dependențe simple și ușor de stabilit între cheile utilizate secvenţial în procesul de criptare;

oricare dintre numeroasele chei posibile trebuie să ofere o protecție fiabilă a informațiilor;

algoritmul trebuie să permită implementarea atât software cât și hardware, în timp ce modificarea lungimii cheii nu ar trebui să conducă la o deteriorare calitativă a algoritmului de criptare.

Capitolul 2. Protocoale de distribuție a cheilor criptografice și protocoale de semnătură electronică.

Indiferent cât de complexe și de fiabile sunt sistemele criptografice, ele puncte slabe la implementare practică- problema distributiei cheilor. Pentru ca schimbul de informații confidențiale între doi subiecți IP să fie posibil, cheia trebuie să fie generată de unul dintre ei, iar apoi, cumva, din nou confidențial, transferată celuilalt. Acestea. V caz general transferul cheii din nou necesită utilizarea unui fel de criptosistem.

Pentru a rezolva această problemă, au fost propuse sisteme de chei publice pe baza rezultatelor obținute din algebra clasică și modernă.

Esența lor este că fiecare destinatar IP generează două chei care sunt conectate între ele conform unei anumite reguli. O cheie este declarată publică, iar cealaltă privată. Cheia publică este publicată și disponibilă pentru oricine dorește să trimită un mesaj destinatarului. Cheia secretă este ținută secretă.

Textul original este criptat cu cheia publică a destinatarului și transmis acestuia. Textul criptat nu poate fi, în principiu, decriptat de același text simplu.


cheie. Decriptarea unui mesaj este posibilă numai folosind o cheie privată, care este cunoscută doar de destinatar.

Sistemele criptografice cu cheie publică utilizează așa-numitele funcții ireversibile sau unidirecționale, care au următoarea proprietate: când valoarea stabilită x este relativ ușor de calculat valoarea lui f(x), dar dacă y=f(x), atunci nu calea ușoară pentru a calcula valoarea lui x.

Setul de clase de funcții ireversibile dă naștere la toată varietatea de sisteme de chei publice. Cu toate acestea, nu toate funcțiile ireversibile sunt potrivite pentru utilizare în circuite integrate reale.

Ultima dată te-ai familiarizat cu marile și teribilele cifruri domestice. Aceasta a fost o lecție foarte dificilă, deoarece aceste criptosisteme păzesc secrete de stat. Poți să-mi spui ce este mai sofisticat? Dar aici, te rog! De fapt, nu ar trebui să vă sperii, de data aceasta nu ne vom scufunda atât de adânc în matematică și nu vom lua în considerare modurile de criptare - ați învățat deja principiile lor (sau nu). Să trecem prin primele cifruri străine și să vedem cum sunt folosite în practică.

Foaia de parcurs

Aceasta este a patra lecție din seria „Dive into Crypto”. Toate lecțiile din serie în ordine cronologică:

  • Fundamente și codificatori istorici. Cum schimbare, înlocuire, Richard Sorge, Vernam și mașini de criptare
  • Ce este, cum se realizează distribuirea cheilor și cum să alegeți o cheie puternică
  • Ce este rețeaua Feistel și care sunt cele casnice? cifruri bloc, folosit în protocoalele moderne - GOST 28147-89, „Grasshopper”
  • Lecția 4. Cifre străine moderne. Care este diferența dintre 3DES, AES, Blowfish, IDEA, Threefish de Bruce Schneier și modul în care funcționează (ești aici)
  • feluri semnături electronice cum funcționează și cum să le folosească
  • Lecția 6. Criptografia cuantică. Ce este, unde este folosit și cum ajută la distribuirea cheilor secrete, generare numere aleatoriiși semnătura electronică

3DES

Deci, mai întâi dintr-o serie de cifruri străine, să luăm în considerare 3DES, sau mai degrabă ruda cea mai apropiată DES (Date Standard de criptare), care, deși nu mai este folosit ca atare, este strămoșul 3DES.

DES a fost dezvoltat de o echipă de matematicieni de la Laboratorul de Cercetare IBM, care includea deja familiarul Feistel. Prima versiune a cifrului a fost numită „Lucifer”, dar a fost ulterior modificată și în cele din urmă adoptată ca algoritm oficial de criptare a datelor (DEA). A rămas standardul mondial timp de peste douăzeci de ani înainte de a fi înlocuit de Triple DES.

Să vedem cum funcționează algoritmul de criptare DES. Pentru a face acest lucru, trebuie să vă amintiți funcționarea rețelei Feistel. DES este o rețea Feistel cu 16 runde, cu chei de criptare simetrice. Lungimea blocului de text este de 64 de biți, lungimea cheii rotunde este de 48 de biți. Deci, să trecem prin pașii principali ai criptării DES, omițând partea matematică dură:

  1. Textul, ca și orice altă criptare, este împărțit în blocuri de 64 de biți.
  2. Dintr-o cheie de 56 de biți, sunt generate 16 chei rotunde de 48 de biți.
  3. Fiecare bloc suferă permutare, adică toți biții blocului de intrare sunt amestecați conform unui anumit tabel.
  4. Blocul este împărțit în jumătăți și intră în rețeaua familiară Feistel, unde sunt derulate 16 runde.
  5. Legăm jumătățile.
  6. Și încă o schimbare.

Permutările de început și de sfârșit nu au nicio semnificație pentru criptografie în DES. Ambele permutări sunt fără chei, iar tabelele pentru ele sunt predefinite. Motivul pentru care sunt incluși în DES este neclar, iar designerii DES nu au spus nimic despre asta. Se poate presupune că algoritmul a fost planificat să fie implementat în hardware (pe cipuri) și că aceste două permutări complexe ar fi trebuit să îngreuneze. modelare software mecanism de criptare.

Iată, de fapt, tot ce trebuie să știți despre funcționarea algoritmului DES. Dacă ne aprofundăm în modul în care funcționează funcția definită în rețeaua Feistel, atunci totul este în regulă. Efectuează atât permutarea, cât și înlocuirea (S-box, după cum vă amintiți din articolul precedent), și adăugarea cu o cheie rotundă.

Dar să revenim la triple DES, sau Triple DES. A devenit necesar deoarece cheia DES pe 56 de biți era vulnerabilă la forța brută și odată cu creșterea putere de calcul această problemă a devenit din ce în ce mai acută. Folosind tehnologia disponibilă astăzi, un milion de chei pot fi verificate pe secundă. Aceasta înseamnă că ar dura mai mult de două mii de ani pentru a decripta DES prin forță brută folosind un computer cu un singur procesor.

Dar dacă luăm un computer cu un milion de nuclee de procesor care va procesa chei în paralel, putem verifica întregul set de chei în aproximativ 20 de ore. Când a fost introdus DES, costul unui astfel de computer era de câteva milioane de dolari, dar a scăzut rapid. Calculator special a fost creat în 1998 - și a găsit cheia în 112 ore.

Pentru a rezolva problema cautare rapida cheie, criptografii străini inteligenți au sugerat să folosească două chei și să folosească DES de două ori. Cu toate acestea, DES dublu a fost vulnerabil la un atac de întâlnire la mijloc. Pentru a efectua acest atac, atacatorul trebuie să aibă textul simplu și textul cifrat corespunzător. Atacatorul criptează textul simplu cu toate cheile posibile, scriind rezultatele în Tabelul 1. Apoi decriptează textul cifrat cu toate cheile posibile și scrie rezultatul în Tabelul 2. Apoi, atacatorul caută potriviri în Tabelele 1 și 2.

Atac de acest tip constă în enumerarea cheilor pe partea de text cifrat și text simplu și necesită aproximativ de patru ori mai multe calcule decât enumerarea obișnuită Tasta DES, și destul de mult spațiu de stocare în memorie rezultate intermediare. Cu toate acestea, în practică, atacul este fezabil, făcând Double DES inutilizabil.

Lucrurile sunt complet diferite cu Triple DES. Utilizarea a trei chei și aplicarea algoritmilor în secvența indicată în diagramă a prelungit durata de viață a DES cu încă câțiva ani.


Minunat DES

Deci, ce este atât de grozav la DES? Acest algoritm de criptare a fost supus unei analize ample. DES a avut două foarte calitati importante cifrurile bloc - avalanșă și completitudine. Este timpul să vă extindeți vocabularul criptografic!
Efectul de avalanșă înseamnă că mici modificări ale textului (sau cheii) inițial pot provoca modificări mari ale textului cifrat.

S-a dovedit că DES are toate semnele distinctive ale acestei proprietăți.

Deși cele două blocuri de text simplu diferă doar în bitul din dreapta, blocurile de text cifrat diferă cu 29 de biți. Aceasta înseamnă că o modificare de aproximativ 1,5% a textului simplu provoacă o modificare de aproximativ 45% a textului cifrat.

Efectul de completitudine este că fiecare bit al textului cifrat trebuie să depindă de mulți biți din textul simplu. După cum am aflat deja, DES folosește atât permutări, cât și substituții - toate transformările stabilesc dependența fiecărui bit de text cifrat de mai mulți biți din textul original.

Unde se folosește DES? Da, aproape peste tot, implementările sale sunt prezente în majoritate biblioteci de software. Cu toate acestea, cine știe cât de sigur este să folosești DES în zilele noastre? Deși IBM a susținut că algoritmul a fost rezultatul a 17 ani-om de criptanaliza intensivă, unii oameni s-au temut că NSA a introdus o lacună în algoritm care a permis agenției să decripteze cu ușurință mesajele interceptate. Comitetul de Informații al Senatului SUA a studiat cu atenție această problemă și, desigur, nu a găsit nimic, acuzațiile împotriva NSA au fost abandonate, iar rezultatele studiului au fost totuși clasificate. Într-un cuvânt, zvonurile și speculațiile se învârteau în America de mult timp cu privire la dacă DES ar trebui să fie de încredere sau nu. Dar, după cum cred, situația de aici este descrisă de zicala „Un om inteligent nu va spune, un prost nu va înțelege”. În cele din urmă, NSA a recunoscut că nu poate avea încredere în IBM cu o misiune atât de importantă și a făcut mai multe ajustări, cum ar fi specificarea S-box-urilor.

De-a lungul existenței DES, el a fost o țintă pentru diverse metode criptoanaliza. Criptonaliștii nu s-au oprit niciodată din testarea mașinilor de spargere DES pentru a vedea cât timp va dura descifrarea unui text. În acest sens, au apărut nenumărate modificări diferite ale acestui algoritm, iar 3DES este departe de a fi cel mai sofisticat dintre ele.

Criptarea datelor este extrem de importantă pentru a proteja confidențialitatea. În acest articol voi vorbi despre tipuri variateși metode de criptare care sunt folosite pentru a proteja datele astăzi.

Știați?
În epoca romană, criptarea era folosită de Iulius Caesar pentru a face scrisorile și mesajele să nu fie citite inamicului. A jucat un rol important ca tactică militară, mai ales în timpul războaielor.

Pe măsură ce capacitățile internetului continuă să crească, tot mai multe dintre afacerile noastre se desfășoară online. Dintre acestea, cele mai importante sunt internet banking, plata online, e-mailuri, schimb de privat și mesaje oficiale etc., care presupun schimbul de date și informații confidențiale. Dacă aceste date cad în mâini greșite, ar putea provoca rău nu numai utilizator individual, dar și toate sistem online Afaceri.

Pentru a preveni acest lucru, unii măsuri de rețea securitate pentru a proteja transmiterea datelor cu caracter personal. Principalele dintre acestea sunt procesele de criptare și decriptare a datelor, care este cunoscută sub numele de criptografie. Există trei metode principale de criptare utilizate în majoritatea sistemelor de astăzi: hashing, criptare simetrică și asimetrică. În rândurile următoare, voi vorbi mai detaliat despre fiecare dintre aceste tipuri de criptare.

Tipuri de criptare

Criptare simetrică

În criptarea simetrică, datele normale care pot fi citite, cunoscute sub numele de text simplu, sunt criptate astfel încât să devină ilizibile. Această amestecare a datelor se face folosind o cheie. Odată ce datele sunt criptate, acestea pot fi trimise în siguranță către destinatar. La destinatar, datele criptate sunt decodificate folosind aceeași cheie care a fost folosită pentru codare.

Deci este clar că cheia este cea mai mare parte importantă criptare simetrică. Trebuie să fie ascuns de străini, deoarece oricine are acces la el va putea decripta datele private. Acesta este motivul pentru care acest tip de criptare este cunoscut și ca „cheie secretă”.

ÎN sisteme moderne ah, cheia este de obicei un șir de date care provine dintr-o parolă puternică sau dintr-o sursă complet aleatorie. Este introdus într-un software de criptare simetrică, care îl folosește pentru a păstra secrete datele de intrare. Codificarea datelor se realizează folosind un algoritm de criptare simetric, cum ar fi Standardul de criptare a datelor (DES), Standardul de criptare avansată (AES) sau algoritmul internațional de criptare a datelor (IDEA).

Restricții

Cea mai slabă verigă în acest tip de criptare este securitatea cheii, atât în ​​ceea ce privește stocarea, cât și transmiterea către utilizatorul autentificat. Dacă un hacker este capabil să obțină această cheie, el poate decripta cu ușurință datele criptate, înfrângând întregul scop al criptării.

Un alt dezavantaj se datorează faptului că software, care prelucrează datele nu poate funcționa cu date criptate. Prin urmare, pentru a putea utiliza acest software, datele trebuie mai întâi decodificate. Dacă software-ul în sine este compromis, atunci un atacator poate obține cu ușurință datele.

Criptare asimetrică

Criptarea cheii asimetrice funcționează în mod similar cheie simetrică, prin faptul că folosește o cheie pentru a cripta mesajele transmise. Cu toate acestea, în loc să folosească aceeași cheie, el folosește una complet diferită pentru a decripta acest mesaj.

Cheia folosită pentru codificare este disponibilă pentru toți utilizatorii rețelei. Ca atare, este cunoscută ca o cheie „publică”. Pe de altă parte, cheia folosită pentru decriptare este păstrată secretă și este destinată utilizării private de către utilizator însuși. Prin urmare, este cunoscută drept cheia „privată”. Criptarea asimetrică este cunoscută și sub numele de criptare cu cheie publică.

Deoarece, prin această metodă, cheia secretă necesară pentru decriptarea mesajului nu trebuie transmisă de fiecare dată și, de obicei, este cunoscută doar de utilizator (destinator), probabilitatea ca un hacker să poată decripta mesajul este mare. inferior.

Diffie-Hellman și RSA sunt exemple de algoritmi care utilizează criptarea cu chei publice.

Restricții

Mulți hackeri folosesc man-in-the-middle ca formă de atac pentru a ocoli acest tip de criptare. ÎN criptare asimetrică, vi se oferă o cheie publică care este utilizată pentru a face schimb de date în siguranță cu o altă persoană sau serviciu. Cu toate acestea, hackerii folosesc înșelăciunea în rețea pentru a vă păcăli să comunicați cu ei în timp ce sunteți făcut să credeți că vă aflați pe o linie sigură.

Pentru a înțelege mai bine acest tip de hacking, luați în considerare două părți care interacționează, Sasha și Natasha, și un hacker, Serghei, cu intenția de a le intercepta conversația. În primul rând, Sasha trimite un mesaj prin intermediul rețelei destinat Natasha, cerându-i cheia publică. Serghei interceptează acest mesaj și obține cheia publică asociată cu ea și o folosește pentru a cripta și a trimite un mesaj fals către Natasha, care conține cheia lui publică în loc de a lui Sasha.

Natasha, crezând că acest mesaj a venit de la Sasha, acum îl criptează cu cheia publică a lui Serghei și îl trimite înapoi. Acest mesaj a fost din nou interceptat de Serghei, decriptat, modificat (dacă se dorește), criptat din nou folosind cheia publică pe care Sasha a trimis-o inițial și trimis înapoi lui Sasha.

Astfel, atunci când Sasha primește acest mesaj, el a fost făcut să creadă că a venit de la Natasha și rămâne inconștient de joc greșit.

Hashing

Tehnica hashing folosește un algoritm cunoscut sub numele de funcție hash pentru a genera un șir special din datele date, cunoscut sub numele de hash. Acest hash are următoarele proprietăți:

  • aceleași date produc întotdeauna același hash.
  • Nu este posibil să generați date brute numai dintr-un hash.
  • Nu merită încercat diferite combinații date de intrare pentru a încerca să genereze același hash.

Astfel, principala diferență dintre hashing și celelalte două forme de criptare a datelor este că, odată ce datele sunt criptate (hashing), nu pot fi recuperate înapoi în forma sa originală (decriptate). Acest fapt asigură că, chiar dacă un hacker pune mâna pe hash, acesta nu îi va fi de nici un folos, deoarece nu va putea decripta conținutul mesajului.

Message Digest 5 (MD5) și Secure Hashing Algorithm (SHA) sunt doi algoritmi de hashing utilizați pe scară largă.

Restricții

După cum am menționat mai devreme, este aproape imposibil să decriptați datele dintr-un anumit hash. Cu toate acestea, acest lucru este adevărat numai dacă este implementat hashing puternic. În cazul unei implementări slabe a tehnicii de hashing, folosind suficiente resurse și atacuri forta bruta, un hacker persistent poate fi capabil să găsească date care se potrivesc cu hash-ul.

Combinație de metode de criptare

După cum sa discutat mai sus, fiecare dintre aceste trei metode de criptare suferă de unele dezavantaje. Cu toate acestea, atunci când o combinație a acestor metode este utilizată, ele formează o fiabilă și extrem de sistem eficient criptare.

Cel mai adesea, tehnicile cu chei private și publice sunt combinate și utilizate împreună. Metodă cheie secreta permite o decriptare mai rapidă, în timp ce metoda cheii publice oferă o modalitate mai sigură și mai convenabilă de a transmite cheia privată. Această combinație de metode este cunoscută sub denumirea de „plic digital”. Program de criptare E-mail PGP se bazează pe tehnica „plicului digital”.

Hashingul este folosit ca mijloc de verificare a puterii unei parole. Dacă sistemul stochează un hash al parolei în locul parolei în sine, va fi mai sigur, deoarece chiar dacă un hacker pune mâna pe acest hash, el nu îl va putea înțelege (citi). În timpul verificării, sistemul va verifica hash-ul parolei de intrare și va vedea dacă rezultatul se potrivește cu ceea ce este stocat. În acest fel, parola reală va fi vizibilă doar în momentele scurte când trebuie schimbată sau verificată, reducând foarte mult probabilitatea ca aceasta să cadă în mâini greșite.

Hashingul este, de asemenea, folosit pentru a autentificarea datelor folosind o cheie secretă. Un hash este generat folosind datele și această cheie. Prin urmare, doar datele și hash-ul sunt vizibile, iar cheia în sine nu este transmisă. În acest fel, dacă se fac modificări fie la date, fie la hash, acestea vor fi detectate cu ușurință.

În concluzie, aceste tehnici pot fi folosite pentru a codifica eficient datele într-un format care nu poate fi citit, care poate asigura că acestea rămân în siguranță. Cele mai multe sisteme moderne folosesc de obicei o combinație a acestor metode de criptare împreună cu implementare puternică algoritmi pentru a îmbunătăți securitatea. Pe lângă securitate, aceste sisteme oferă și multe beneficii suplimentare, cum ar fi verificarea identității utilizatorului și asigurarea faptului că datele primite nu pot fi modificate.