Cum se configurează smartphone-uri și PC-uri. Portal informativ
  • Acasă
  • Siguranță
  • Tipuri de criptare. Ce este criptarea datelor? Criptare WiFi - informații generale

Tipuri de criptare. Ce este criptarea datelor? Criptare WiFi - informații generale

  1. Criptarea are loc pe ambele părți. La urma urmei, dacă doar o parte este criptată (de exemplu, doar serverul), atunci traficul din cealaltă parte (de la client) nu va fi criptat. Poate fi auzit sau chiar schimbat.
  2. Formal, nimeni nu dă cheia nimănui. În TLS, clientul și serverul trebuie să genereze un secret partajat, un set de 48 de octeți. Apoi clientul și serverul, pe baza secretului partajat, calculează cheile: cheia de criptare a clientului și cheia de criptare a serverului. Procedura de calculare a cheilor dintr-un secret partajat este standard și este specificată în descriere Protocolul TLS... Serverul și clientul cunosc 2 chei de criptare, criptează cu una, decriptează a doua. Și acum partea cea mai interesantă este modul în care clientul și serverul calculează secretul partajat. Depinde de suita de criptare selectată:

    • TLS_RSA_WITH_: B în acest caz clientul creează singur un secret partajat, generând 48 de octeți aleatori. Apoi le criptează folosind cheia publică RSA, care se află în certificatul serverului. Serverul primește datele criptate și le decriptează folosind cheia RSA privată. Această schemă folosit rar.
    • TLS_DHE_RSA_ / TLS_ECDHE_RSA_ / TLS_ECDHE_ECDSA_: Aceasta utilizează schema criptografică Diffie-Hellman (DHE) sau versiunea sa cu curbă eliptică (ECDHE). Esența schemei este aceasta: serverul și clientul generează aleatoriu numere mari(chei private), calculați alte numere (chei publice) pe baza lor și trimiteți-le unul altuia. Având propria lor cheie privată și cheia publică a celeilalte părți, ei calculează secretul partajat. Terțul care ascultă pe canal vede doar 2 chei publice și nu poate afla secretul partajat. După aceea, toate datele schimbate între client și server pentru a obține această cheie sunt semnate cu un certificat de server (semnătură RSA sau ECDSA). Dacă clientul are încredere în certificatul serverului, acesta verifică această semnătură, iar dacă este corectă, schimbul de date începe deja. Aceasta este schema cea mai des folosită.
    • Mai sunt câteva scheme, dar sunt folosite foarte rar sau deloc.

    Despre interceptare. După cum am descris mai sus, este inutil să interceptăm mesajele aici, deoarece în primul caz doar serverul le poate decripta, iar în al doilea este folosită o schemă criptografică inteligentă.

    Atât serverul, cât și clientul cunosc algoritmi de criptare. La urma urmei, dacă clientul nu știe ce este algoritmul de criptare, cum va cripta datele care urmează să fie trimise? V criptografia modernă nimeni nu folosește algoritmi proprietari. Algoritmii deschisi sunt studiati constant de cei mai buni criptografi din lume, se cauta vulnerabilitati si se propun solutii pentru a le ocoli.

    În TLS, putem spune în mod condiționat că algoritmii se schimbă, deoarece sunt generate diferite chei de criptare de fiecare dată. Și apoi, dacă doriți să utilizați un algoritm proprietar, de exemplu pentru a vizualiza o pagină web, cum poate acest algoritm să fie proprietar dacă computerul/dispozitivul dvs. criptează/decriptează?

Am omis/simplificat unele detalii pentru a descrie doar ideile principale.

Serghei Panasenko,
șef departament dezvoltare software firma "Ankad",
[email protected]

Noțiuni de bază

Procesul de conversie a datelor deschise în criptare și invers se numește de obicei criptare, iar cele două componente ale acestui proces se numesc, respectiv, criptare și decriptare. Matematic, această transformare este reprezentată de următoarele dependențe care descriu acțiuni cu informațiile inițiale:

С = Ek1 (M)

M "= Dk2 (C),

unde M (mesaj) - informații deschise(deseori menționată în literatura de specialitate în domeniul securității informațiilor ca „ text original");
C (cipher text) - textul cifrat (sau criptograma) obținut ca urmare a criptării;
E (criptare) - o funcție de criptare care realizează transformări criptografice asupra textului original;
k1 (cheie) - parametru al funcției E, numită cheie de criptare;
M „- informații obținute ca urmare a decriptării;
D (decriptare) - o funcție de decriptare care realizează transformări criptografice de criptare inversă peste text cifrat;
k2 este cheia folosită pentru a decripta informațiile.

Conceptul de „cheie” în standardul GOST 28147-89 (algoritm de criptare simetrică) este definit după cum urmează: acest algoritm transformări.” Cu alte cuvinte, cheia este un element unic cu ajutorul căruia poți modifica rezultatele algoritmului de criptare: același text sursă va fi criptat în moduri diferite atunci când folosești chei diferite.

Pentru ca rezultatul decriptării să coincidă cu mesajul original (adică pentru M "= M), este necesar executare simultană doua conditii. În primul rând, funcția de decriptare D trebuie să se potrivească cu funcția de criptare E. În al doilea rând, cheia de decriptare k2 trebuie să se potrivească cu cheia de criptare k1.

Dacă pentru criptare a fost folosit un algoritm de criptare puternic din punct de vedere criptografic, atunci în absența cheii corecte k2, este imposibil să se obțină M "= M. Puterea criptografică este principala caracteristică a algoritmilor de criptare și indică, în primul rând, gradul de criptare. dificultate în obținerea textului original din criptat fără cheie k2.

Algoritmii de criptare pot fi împărțiți în două categorii: simetrici și criptare asimetrică... Pentru primul, raportul dintre cheile de criptare și decriptare este definit ca k1 = k2 = k (adică, funcțiile E și D folosesc aceeași cheie de criptare). Cu criptarea asimetrică, cheia de criptare k1 este calculată din cheia k2 în așa fel încât transformare inversă imposibil, de exemplu, prin formula k1 = ak2 mod p (a și p sunt parametrii algoritmului utilizat).

Criptare simetrică

Algoritmii de criptare simetrică își au istoria încă din antichitate: această metodă de a ascunde informații a fost folosită de împăratul roman Gaius Julius Caesar în secolul I î.Hr. e., iar algoritmul inventat de el este cunoscut sub numele de „criptosistemul lui Cezar”.

În prezent, cel mai faimos algoritm simetric Criptare DES(Standard de criptare a datelor), dezvoltat în 1977. Până de curând, a fost un „standard american”, deoarece guvernul acelei țări a recomandat să fie folosit pentru implementarea sisteme diferite criptarea datelor. În ciuda faptului că DES a fost inițial planificat să fie utilizat nu mai mult de 10-15 ani, încercările de a-l înlocui au început abia în 1997.

Nu vom lua în considerare DES în detaliu (în aproape toate cărțile din listă materiale suplimentare mananca descriere detaliata) și apelează la algoritmi de criptare mai moderni. Trebuie remarcat doar că principalul motiv pentru modificarea standardului de criptare este puterea sa criptografică relativ slabă, motiv pentru care lungimea cheii DES este de numai 56. biți semnificativi... Se știe că orice algoritm criptografic puternic poate fi spart încercând toate variantele posibile de chei de criptare (așa-numitul atac de forță brută). Este ușor de calculat că un grup de 1 milion de procesoare, fiecare dintre ele calculând 1 milion de chei pe secundă, va verifica 256 de chei DES în aproape 20 de ore Și, deoarece o astfel de putere de calcul este destul de reală în conformitate cu standardele actuale, este clar că un Cheia pe 56 de biți este prea scurtă și algoritmul DES trebuie înlocuit cu unul mai puternic.

Astăzi, doi algoritmi moderni de criptare puternici din punct de vedere criptografic sunt din ce în ce mai utilizați: standardul intern GOST 28147-89 și noul standard criptografic din SUA - AES (Advanced Encryption Standard).

Standard GOST 28147-89

Algoritmul definit de GOST 28147-89 (Fig. 1) are o lungime a cheii de criptare de 256 de biți. Acesta criptează informațiile în blocuri de 64 de biți (acești algoritmi se numesc algoritmi bloc), care sunt apoi împărțiți în două subblocuri de 32 de biți (N1 și N2). Subblocul N1 este procesat într-un anumit mod, după care valoarea sa se adaugă la valoarea subblocului N2 (adunarea se realizează modulo 2, adică. operatie logica XOR - „exclusiv sau”), iar apoi subblocurile sunt schimbate. Această transformare se efectuează de un anumit număr de ori („runde”): 16 sau 32, în funcție de modul de funcționare al algoritmului. În fiecare rundă se efectuează două operații.

Prima este suprapunerea cheii. Conținutul subblocului N1 este adăugat modulo 2 cu partea de 32 de biți a cheii Kx. Cheie completă criptarea este reprezentată ca o concatenare de subchei pe 32 de biți: K0, K1, K2, K3, K4, K5, K6, K7. În procesul de criptare, se utilizează una dintre aceste subchei, în funcție de numărul rotund și de modul de funcționare al algoritmului.

A doua operațiune este înlocuirea mesei. După aplicarea cheii, subblocul N1 este împărțit în 8 părți a câte 4 biți, valoarea fiecăruia fiind înlocuită în conformitate cu tabelul de înlocuire pentru această parte a subblocului. Apoi, subblocul este deplasat pe biți la stânga cu 11 biți.

Înlocuirea mesei(Cutie de substituție - S-box) sunt adesea folosite în algoritmii moderni de criptare, așa că merită explicat cum este organizată o astfel de operațiune. Valorile de ieșire ale blocurilor sunt scrise în tabel. Un bloc de date de o anumită dimensiune (în cazul nostru, de 4 biți) are propria sa reprezentare numerică, care determină numărul valorii de ieșire. De exemplu, dacă S-box arată ca 4, 11, 2, 14, 15, 0, 8, 13, 3, 12, 9, 7, 5, 10, 6, 1 și un bloc de 4 biți „0100” a venit la intrare (valoarea 4), apoi, conform tabelului, valoarea de ieșire va fi 15, adică „1111” (0 a 4, 1 a 11, 2 a 2 ...).

Algoritmul, determinat de GOST 28147-89, prevede patru moduri de operare: înlocuire simplă, joc, joc cu părereși generarea de simulatoare. Ei folosesc aceeași transformare de criptare descrisă mai sus, dar deoarece scopul modurilor este diferit, această transformare este efectuată în fiecare dintre ele în moduri diferite.

În modul înlocuire simplă Sunt efectuate 32 de runde descrise mai sus pentru a cripta fiecare bloc de informații pe 64 de biți. În acest caz, subcheile pe 32 de biți sunt utilizate în următoarea secvență:

K0, K1, K2, K3, K4, K5, K6, K7, K0, K1 etc. - în rundele 1 până la 24;

K7, K6, K5, K4, K3, K2, K1, K0 - în rundele 25 până la 32.

Decriptare în acest mod se desfășoară exact în același mod, dar cu o secvență ușor diferită de utilizare a subcheilor:

K0, K1, K2, K3, K4, K5, K6, K7 - în rundele 1 până la 8;

K7, K6, K5, K4, K3, K2, K1, K0, K7, K6 etc. - în rundele 9 până la 32.

Toate blocurile sunt criptate independent unul de celălalt, adică rezultatul criptării fiecărui bloc depinde numai de conținutul acestuia (blocul corespunzător al textului sursă). Dacă există mai multe blocuri identice ale textului original (plat), blocurile corespunzătoare de text cifrat vor fi, de asemenea, aceleași, ceea ce oferă un Informatii utile pentru un criptoanalist care încearcă să spargă cifrul. Prin urmare, acest mod este utilizat în principal pentru a cripta cheile de criptare în sine (foarte des sunt implementate scheme cu mai multe chei, în care, din mai multe motive, cheile sunt criptate una peste alta). Pentru a cripta informațiile în sine, sunt destinate alte două moduri de operare - gaming și gaming cu feedback.

V modul gamma fiecare bloc text simplu se adaugă pe biți modulo 2 cu un bloc gamma de 64 de biți. Gama cifrului este o secvență specială care se obține în urma anumitor operații cu registrele N1 și N2 (vezi Fig. 1).

1. În registrele N1 și N2 este scrisă umplerea lor inițială - o valoare de 64 de biți numită synchro-burst.

2. Conținutul registrelor N1 și N2 este criptat (în acest caz, mesaje sincronizate) în modul de înlocuire simplă.

3. Conținutul registrului N1 se adaugă modulo (232 - 1) cu constanta C1 = 224 + 216 + 28 + 24, iar rezultatul adunării se scrie în registrul N1.

4. Conținutul registrului N2 se adaugă modulo 232 cu constanta C2 = 224 + 216 + 28 + 1, iar rezultatul adunării se scrie în registrul N2.

5. Conținutul registrelor N1 și N2 este alimentat la ieșire ca un bloc gamma de 64 de biți (în acest caz, N1 și N2 formează primul bloc gamma).

Dacă este necesar următorul bloc de gamma (adică trebuie să continuați criptarea sau decriptarea), reveniți la pasul 2.

Pentru decriptare, se generează gama în același modși apoi XOR este aplicat din nou textului cifrat și biților gamma. Întrucât această operație este reversibilă, în cazul unei scale corect elaborate, se obține textul original (tabelul).

Criptare și decriptare în modul gamma

Pentru a genera gama de criptare necesară pentru decriptare, utilizatorul care decriptează criptograma trebuie să aibă aceeași cheie și aceeași valoare a mesajului de sincronizare care au fost utilizate pentru a cripta informațiile. În caz contrar, nu va fi posibil să obțineți textul original din cel criptat.

În majoritatea implementărilor algoritmului GOST 28147-89, mesajul de sincronizare nu este secret, dar există sisteme în care mesajul de sincronizare este același element secret ca și cheia de criptare. Pentru astfel de sisteme, lungimea efectivă a cheii algoritmului (256 de biți) este mărită cu încă 64 de biți ai mesajului de sincronizare secretă, care poate fi considerat și un element cheie.

În modul gamma cu feedback, pentru a umple registrele N1 și N2, începând cu al 2-lea bloc, nu se folosește blocul gamma anterior, ci rezultatul criptării blocului de text simplu anterior (Fig. 2). Primul bloc din acest mod este generat complet similar cu cel anterior.

Orez. 2. Generarea cifrului gamma în modul feedback gamma.

Având în vedere modul generarea de simulatoare, ar trebui definit conceptul de subiect al generației. Un imitator este un criptografic verifica suma, calculat folosind o cheie de criptare și conceput pentru a verifica integritatea mesajelor. La generarea unui prefix, se efectuează următoarele operații: primul bloc de 64 de biți al matricei de informații, pentru care se calculează prefixul, este scris în registrele N1 și N2 și criptat în modul redus de înlocuire simplă (primul Se efectuează 16 runde din 32). Rezultatul rezultat este însumat modulo 2 cu următorul bloc de informații, stocând rezultatul în N1 și N2.

Ciclul se repetă până când ultimul bloc informație. Conținutul rezultat pe 64 de biți al registrelor N1 și N2, sau o parte a acestuia, obținut ca urmare a acestor transformări, se numește prefix. Mărimea prefixului este selectată în funcție de fiabilitatea necesară a mesajului: cu lungimea prefixului r biți, probabilitatea ca schimbarea mesajului să rămână neobservată este de 2-r. Cel mai adesea, un prefix de 32 de biți este folosit, adică jumătate din conținutul registrului. Acest lucru este suficient, deoarece, la fel ca orice sumă de control, simulatorul este conceput în primul rând pentru a proteja împotriva distorsiunii accidentale a informațiilor. Pentru a proteja împotriva modificării deliberate a datelor, altele tehnici criptografice- în primul rând o semnătură digitală electronică.

La schimbul de informații, prefixul servește ca un fel de instrument suplimentar Control. Este calculat pentru textul simplu atunci când unele informații sunt criptate și trimise împreună cu textul cifrat. După decriptare, se calculează o nouă valoare de prefix, care este comparată cu cea trimisă. Dacă valorile nu se potrivesc, înseamnă că textul cifrat a fost distorsionat în timpul transmiterii sau au fost folosite chei incorecte în timpul decriptării. Prefixul este util în special pentru a verifica decriptarea corectă a informațiilor cheie atunci când se utilizează scheme cu mai multe chei.

Algoritmul GOST 28147-89 este considerat un algoritm foarte puternic - în prezent, nu au fost propuse mai multe pentru dezvăluirea acestuia. metode eficiente decât metoda „forței brute” menționată mai sus. Securitatea sa ridicată este atinsă în primul rând datorită lungimii mari a cheii - 256 de biți. Când se utilizează un mesaj de sincronizare secretă, lungimea efectivă a cheii este mărită la 320 de biți, iar secretul tabelului de substituție adaugă biți suplimentari. În plus, puterea criptografică depinde de numărul de runde de transformări, care, conform GOST 28147-89, ar trebui să fie 32 ( efect deplin dispersia datelor de intrare se realizează după 8 runde).

Standardul AES

Spre deosebire de algoritmul GOST 28147-89, care pentru mult timp a rămas secret, standard american Criptare AES conceput pentru a înlocui DES, a fost selectat printr-un concurs deschis, în care toate organizațiile și persoanele interesate au putut studia și comenta algoritmii-solicitanți.

Un concurs pentru înlocuirea DES a fost anunțat în 1997 de către Institutul Național de Standarde și Tehnologie din SUA (NIST - Institutul Național de Standarde și Tehnologie). Pentru concurs au fost prezentați cincisprezece algoritmi candidați, dezvoltați atât de organizații cunoscute în domeniul criptografiei (RSA Security, Counterpane etc.), cât și de persoane fizice. Rezultatele competiției au fost anunțate în octombrie 2000: câștigătorul a fost algoritmul Rijndael, dezvoltat de doi criptografi din Belgia, Vincent Rijmen și Joan Daemen.

Algoritmul Rijndael nu este ca majoritatea algoritmilor de criptare simetrică bine-cunoscuți, a căror structură se numește „rețea Feistel” și este similară cu GOST rusesc 28147-89. Particularitatea rețelei Feistel este că valoarea de intrare este împărțită în două sau mai multe subblocuri, dintre care unele sunt procesate conform unei anumite legi în fiecare rundă și apoi suprapuse subblocuri neprocesate (vezi Fig. 1).

Spre deosebire de standardul intern de criptare, algoritmul Rijndael reprezintă un bloc de date sub forma unei matrice bidimensionale de octeți de dimensiuni 4X4, 4X6 sau 4X8 (mai multe dimensiuni fixe bloc criptat de informații). Toate operațiunile sunt efectuate pe octeți individuali ai matricei, precum și pe coloane și rânduri independente.

Algoritmul Rijndael realizează patru transformări: BS (ByteSub) - înlocuirea tabelului a fiecărui octet al matricei (Fig. 3); SR (ShiftRow) - deplasarea rândurilor matricei (Fig. 4). În timpul acestei operațiuni, prima linie rămâne neschimbată, iar restul sunt deplasați ciclic octeți la stânga cu un număr fix de octeți, în funcție de dimensiunea matricei. De exemplu, pentru o matrice 4X4, rândurile 2, 3 și 4 sunt deplasate cu 1, 2 și, respectiv, 3 octeți. Urmează MC (MixColumn) - o operație pe coloane independente ale unui tablou (Fig. 5), când fiecare coloană este o anumită regulăînmulțit cu o matrice fixă ​​c (x). Și, în sfârșit, AK (AddRoundKey) - adăugați o cheie. Fiecare bit al matricei este adăugat modulo 2 cu bitul corespunzător al cheii rotunde, care, la rândul său, este calculat într-un anumit mod din cheia de criptare (Fig. 6).


Orez. 3. Operațiunea BS.

Orez. 4. Operațiunea SR.

Orez. 5. Operațiunea MC.

Numărul de runde de criptare (R) în algoritmul Rijndael este variabil (10, 12 sau 14 runde) și depinde de dimensiunea blocului și a cheii de criptare (există și mai multe dimensiuni fixe pentru cheie).

Decriptarea se realizează utilizând următoarele operații inverse. Tabelul este inversat și înlocuirea tabelului se efectuează pe tabelul invers (față de cel folosit pentru criptare). Inversul SR este de a roti rândurile spre dreapta și nu spre stânga. Operația inversă pentru MC este înmulțirea după aceleași reguli cu o altă matrice d (x) care îndeplinește condiția: c (x) * d (x) = 1. Adăugarea tastei AK este inversul acesteia, deoarece folosește doar Operare XOR. Aceste operații inverse sunt utilizate pentru decriptare în ordinea inversă celei utilizate pentru criptare.

Rijndael a devenit noul standard pentru criptarea datelor datorită unui număr de avantaje față de alți algoritmi. În primul rând, oferă viteza mare criptare pe toate platformele: atât în ​​implementare software cât și hardware. Se distinge prin incomparabil cele mai bune oportunități paralelizarea calculelor în comparație cu alți algoritmi prezentați pentru competiție. În plus, cerințele de resurse pentru funcționarea sa sunt minime, ceea ce este important atunci când este utilizat în dispozitive cu capacități de calcul limitate.

Singurul dezavantaj al algoritmului este schema sa neconvențională inerentă. Cert este că proprietățile algoritmilor bazați pe rețeaua Feistel sunt bine cercetate, iar Rijndael, în schimb, poate conține vulnerabilități ascunse care pot fi descoperite doar după ce a trecut ceva timp de la răspândirea sa pe scară largă.

Criptare asimetrică

După cum sa menționat deja, algoritmii de criptare asimetrică folosesc două chei: k1 este cheia de criptare sau publică și k2 este cheia de decriptare sau secretă. Cheie publică calculat din secretul: k1 = f (k2).

Algoritmii de criptare asimetrică se bazează pe utilizarea funcțiilor unidirecționale. Prin definiție, o funcție y = f (x) este unidirecțională dacă: este ușor de calculat pentru toți opțiuni posibile x și pentru majoritatea valori posibile y este destul de dificil să se calculeze o astfel de valoare a lui x, pentru care y = f (x).

Un exemplu de funcție unidirecțională este înmulțirea a două numere mari: N = P * Q. În sine, o astfel de multiplicare - operare simplă... Cu toate acestea, funcția inversă (descompunerea lui N în doi factori mari), numită factorizare, conform estimărilor temporale moderne este destul de complicată. problema de matematica... De exemplu, factorizarea N de 664 de biți la P? Q va necesita aproximativ 1023 de operații, iar pentru a inversa x pentru exponentul modular y = ax mod p cu cunoscute a, p și y (cu aceleași dimensiuni de a și p), trebuie să efectuați aproximativ 1026 de operații. Ultimul dintre aceste exemple se numește Problema logaritmului discret (DLP), iar astfel de funcții sunt adesea folosite în algoritmii de criptare asimetrică, precum și în algoritmii utilizați pentru a crea semnături digitale electronice.

O altă clasă importantă de funcții utilizate în criptarea asimetrică sunt funcțiile backdoor unidirecționale. Definiția lor spune că o funcție este unidirecțională cu un pasaj secret dacă este unidirecțională și există posibilitatea unui calcul eficient funcție inversă x = f-1 (y), adică dacă „pasajul secret” este cunoscut (un anumit număr secret, așa cum este aplicat algoritmilor de criptare asimetrică - valoarea cheii secrete).

Funcțiile unidirecționale ale ușii din spate sunt utilizate în algoritmul de criptare asimetric utilizat pe scară largă RSA.

Algoritmul RSA

Dezvoltat în 1978 de trei autori (Rivest, Shamir, Adleman), și-a luat numele de la primele litere ale numelor dezvoltatorilor. Fiabilitatea algoritmului se bazează pe complexitatea factorizării numerelor mari și a calculării logaritmilor discreti. Parametrul principal al algoritmului RSA este modulul de sistem N, conform căruia sunt efectuate toate calculele din sistem și N = P * Q (P și Q sunt numere prime secrete aleatoare, de obicei de aceeași dimensiune).

Se alege cheia secretă a lui k2 la întâmplareși trebuie să îndeplinească următoarele condiții:

1

unde GCD este cel mai mare divizor comun, adică k1 trebuie să fie coprim cu valoarea funcției Euler F (N), iar acesta din urmă este egal cu numărul de numere întregi pozitive din intervalul de la 1 la N, coprim cu N și se calculează ca F (N) = (P - 1) * (Q - 1).

Cheia publică k1 se calculează din relație (k2 * k1) = 1 mod F (N), iar pentru aceasta se folosește algoritmul euclidian generalizat (algoritm de calcul al celui mai mare divizor comun). Blocul de date M este criptat folosind algoritmul RSA, după cum urmează: C = M [la puterea lui k1] mod N... Rețineți că, deoarece într-un criptosistem real care utilizează RSA numărul k1 este foarte mare (în prezent, dimensiunea sa poate ajunge la 2048 de biți), calculul direct al lui M [la puterea lui k1] ireal. Pentru a-l obține, se folosește o combinație de pătrat multiplu M cu înmulțirea rezultatelor.

Inversarea acestei funcții nu este fezabilă pentru dimensiuni mari; cu alte cuvinte, este imposibil să găsim M din cunoscutele C, N și k1. Cu toate acestea, având cheia secretă k2, folosind transformări simple, putem calcula M = Ck2 mod N. Evident, pe lângă cheia secretă în sine, este necesar să se asigure secretul parametrilor P și Q. Dacă atacatorul își obține valori, el va putea calcula cheia secretă k2.

Care criptare este mai bună?

Principalul dezavantaj al criptării simetrice este necesitatea de a transfera cheile „din mână în mână”. Acest dezavantaj este foarte grav, deoarece face imposibilă utilizarea criptării simetrice în sistemele cu un număr nelimitat de participanți. Cu toate acestea, restul criptării simetrice are unele avantaje, care sunt clar vizibile pe fundalul unor dezavantaje serioase ale criptării asimetrice.

Prima dintre ele este viteza redusă de efectuare a operațiunilor de criptare și decriptare din cauza prezenței operațiunilor care necesită mult resurse. Un alt dezavantaj „teoretic” este că puterea criptografică a algoritmilor de criptare asimetrică nu a fost dovedită matematic. Acest lucru se datorează în primul rând problemei logaritmului discret - până acum nu a fost posibil să se demonstreze că soluția sa într-un timp acceptabil este imposibilă. Dificultăți inutile sunt create și de necesitatea de a proteja cheile publice de înlocuire - prin schimbarea cheii publice a unui utilizator legal, un atacator va putea cripta un mesaj important în cheia sa publică și, ulterior, îl va decripta cu ușurință cu cheia sa privată.

Cu toate acestea, aceste neajunsuri nu împiedică utilizarea pe scară largă a algoritmilor de criptare asimetrică. Criptosisteme există astăzi care acceptă certificarea cu chei publice, precum și o combinație de algoritmi de criptare simetrici și asimetrici. Dar acesta este deja un subiect pentru un articol separat.

Surse suplimentare de informații

Pentru cititorii care sunt interesați de criptare, autorul recomandă extinderea orizontului lor cu ajutorul cărților următoare.

  1. Brassard J. „Criptologie modernă”.
  2. Petrov A. A. „Securitatea computerelor: metode criptografice de protecție”.
  3. Romanets Yu. V., Timofeev PA, Shangin VF „Protecția informațiilor în sistemele informatice moderne”.
  4. Sokolov A. V., Shangin V. F. „Securitatea informațiilor în rețelele și sistemele corporative distribuite”.

O descriere completă a algoritmilor de criptare poate fi găsită în următoarele documente:

  1. GOST 28147-89. Sistem de prelucrare a informațiilor. Protecție criptografică. Algoritm pentru transformarea criptografică. - M .: Gosstandart URSS, 1989.
  2. Algoritmul AES: http://www.nist.gov/ae.
  3. Algoritmul RSA: http://www.rsasecurity.com/rsalabs/pkcs/pkcs-1.

Durata de viață a informațiilor

§ La interceptarea unui mesaj criptat pentru unele tipuri de algoritmi de criptare, puteți calcula frecvența de apariție a anumitor caractere și le puteți compara cu probabilitățile de apariție a anumitor caractere sau combinațiile acestora (bigrame, trigrame etc.). Aceasta, la rândul său, poate duce la decriptarea (dezvăluirea) fără ambiguitate a secțiunilor individuale ale mesajului criptat.

§ Prezenţa cuvintelor probabile. Acestea sunt cuvinte sau expresii despre care se poate aștepta să apară într-un mesaj interceptat (de exemplu, pentru textul în limba engleză - „și”, „the”, „are”, etc.).

§ Există metode prin care mesajele criptate sunt practic nepotrivite pentru analiza statistică și analiza cuvintelor probabile. Acestea includ următoarele.

§ Difuzie. Influența unui caracter dintr-un mesaj deschis se extinde la mai multe caractere dintr-un mesaj criptat. Această metodă, deși duce la o creștere a numărului de erori în timpul decriptării, totuși, cu ajutorul ei, este posibilă ascunderea structurii statistice a unui mesaj deschis.

§ Încurcarea. Dezvoltarea principiului de împrăștiere. În ea, influența unui caracter al cheii se extinde la multe caractere ale criptate

mesaje.

§ Amestecarea. Se bazează pe utilizarea unor transformări speciale ale mesajului original, în urma cărora secvențele probabile par să fie împrăștiate în spațiul posibilelor mesaje deschise. Dezvoltarea acestei metode a fost utilizarea algoritmilor de criptare compusi, constand intr-o secventa de operatii simple de permutare si substituire.

Exemple de metode descrise sunt standardele de criptare DES și GOST 28147-89.

Există două tipuri principale de algoritmi de criptare:

§ algoritmi simetrici de criptare;

§ algoritmi de criptare asimetrica.

Criptare simetrică.

Algoritmii de criptare simetrică se bazează pe faptul că aceeași cheie (partajată) este folosită pentru a cripta un mesaj și pentru a-l decripta (Fig. 1).

Unul dintre principalele avantaje ale metodelor simetrice este viteza de criptare și decriptare, iar principalul dezavantaj este necesitatea transferului valorii cheii secrete către destinatar.



Inevitabil, apare o problemă: cum să transferați cheia și, în același timp, să nu permiteți atacatorilor să o intercepteze.

Beneficiile criptografiei cu chei simetrice:

· Performanta ridicata.

· Durabilitate ridicată. Toate celelalte lucruri fiind egale, puterea unui algoritm criptografic este determinată de lungimea cheii. Cu o lungime a cheii de 256 de biți, este necesar să se efectueze 10 77 de enumerari pentru a o determina.

Dezavantajele criptografiei cu chei simetrice.

§ Problemă de distribuție a cheilor. Deoarece aceeași cheie este utilizată pentru criptare și decriptare, sunt necesare mecanisme foarte fiabile pentru distribuirea (transmiterea) a acestora.

§ Scalabilitate. Deoarece atât expeditorul, cât și destinatarul folosesc o singură cheie, numărul de chei necesare crește exponențial în funcție de numărul de participanți la comunicare. Pentru a face schimb de mesaje între 10 utilizatori, trebuie să aveți 45 de chei, iar pentru 1000 de utilizatori - deja 499.500.

§ Utilizare limitată. Criptografia cu o cheie secretă este utilizată pentru a cripta datele și a restricționa accesul la acestea, este imposibil să se furnizeze astfel de proprietăți ale informațiilor precum autenticitatea și

nerepudierea.

Criptare asimetrică

Algoritmii de criptare asimetrică (criptografia cu cheie publică) implică utilizarea a două chei. Prima cheie este deschis. Este distribuit complet gratuit, fără nicio precauție. Al doilea, închis cheia este ținută secretă.

Orice mesaj criptat folosind una dintre aceste chei poate fi decriptat numai folosind cheia asociată. De obicei, expeditorul unui mesaj folosește cheia publică a destinatarului, iar destinatarul folosește cheia privată privată.

Într-o schemă asimetrică de transmitere a mesajelor criptate, ambele chei sunt derivate dintr-o singură generare cheia principala. Când două chei sunt formate dintr-una, ele sunt dependente în sens matematic, totuși, din cauza complexității de calcul, niciuna dintre ele nu poate fi calculată din cealaltă. După ce ambele chei sunt generate (atât publice, cât și private, private), cheia principală este distrusă și, astfel, orice încercare de a restabili valorile cheilor derivate din aceasta este suprimată.

Schema asimetrică este ideală pentru utilizarea rețelelor publice de mesagerie (de exemplu, Internetul). Orice abonat al rețelei poate trimite complet liber cheia publică partenerului său de negociere, iar acesta din urmă, în rolul emițătorului mesajului, va folosi această cheie la criptarea mesajului trimis (Fig. 2). Acest mesaj poate fi decriptat doar cu cheia sa privată de către destinatarul mesajului care a trimis anterior cheia publică corespunzătoare. Un atacator care interceptează o astfel de cheie o poate folosi doar cu scopul exclusiv de a transmite unele mesaje criptate proprietarului legitim al cheii.

Dezavantajul schemei asimetrice este timpul mare necesar pentru criptare și decriptare, care nu permite utilizarea acestora pentru schimbul rapid de mesaje lungi în modul dialog. Implementarea metodelor de criptare asimetrică necesită mult CPU. Prin urmare, în forma sa pură, criptografia cu cheie publică nu este de obicei folosită în practica mondială.



Orez. 2. Schema de criptare asimetrică

Este imposibil de comparat care este mai bun, algoritmii de criptare simetrici sau asimetrici. Se observă că algoritmii criptografici simetrici au o lungime mai mică a cheii și sunt mai rapidi.

Criptografia secretă și criptografia cu cheie publică sunt concepute pentru a rezolva probleme foarte diferite. Algoritmii simetrici sunt potriviti pentru criptarea datelor, algoritmii asimetrici sunt implementati in majoritatea protocoalelor criptografice de retea.

Cele mai răspândite metode sunt cele care combină avantajele ambelor scheme. Principiul de funcționare al schemelor combinate este că o cheie simetrică (de sesiune) este generată pentru următoarea sesiune de mesagerie. Această cheie este apoi criptată și trimisă folosind o schemă asimetrică. După încheierea sesiunii curente de negociere, cheia simetrică este distrusă.

În această zi, Serviciul Criptografic al Rusiei își sărbătorește sărbătoarea profesională.

"Criptografie" din greaca veche inseamna „Scrierea secretă”.

Cum ai ascuns cuvintele înainte?

O metodă deosebită de transmitere a unei scrisori secrete a existat în timpul domniei dinastiei faraonilor egipteni:

a ales un sclav. I-au bărbierit capul chel și au pictat textul mesajului pe el cu vopsea vegetală rezistentă la apă. Când părul a crescut din nou, a fost trimis către destinatar.

Cifru Este orice sistem de transformare a textului cu un secret (cheie) pentru a asigura secretul informațiilor transmise.

AiF.ru a făcut o selecție de fapte interesante din istoria criptării.

Toată criptografia are sisteme

1. Acrostic- text semnificativ (cuvânt, frază sau propoziție), compus din literele inițiale ale fiecărui rând din poezie.

De exemplu, iată o poezie ghicitoare cu un indiciu în primele litere:

D Sunt destul de cunoscut după numele meu;
R escrocul și cel fără vină jură pe el,
Avea Eu sunt cel care are cele mai multe probleme,
F viața este mai dulce cu mine și în cea mai bună parte.
B Pot sluji doar dantelă de suflete curate,
Aîntre răufăcători – nu sunt creat.
Yuri Neledinsky-Meletsky
Serghei Esenin, Anna Akhmatova, Valentin Zagoryansky au folosit adesea acrostice.

2. Litorea- un fel de scriere criptată folosită în literatura manuscrisă rusă antică. Uneori simplu și înțelept. Cea simplă se numește gibberish, constă în următoarele: punerea consoanelor pe două rânduri în ordinea:

folosiți în scris litere mari în loc de cele mai mici și invers, iar vocalele rămân neschimbate; de exemplu, toquepot = pisoi etc.

Litoree înțeleaptă sugerează reguli de substituție mai complexe.

3. „ROT1”- un cod pentru copii?

Poate că l-ați folosit în copilărie. Cheia cifrului este foarte simplă: fiecare literă a alfabetului este înlocuită cu următoarea literă.

A este înlocuit cu B, B este înlocuit cu C și așa mai departe. „ROT1” înseamnă literal „rotiți 1 literă înainte alfabetic”. Fraza „Îmi place borșul” se va transforma într-o frază secretă „Și myavmya vps”... Acest cifru este pentru distracție și este ușor de înțeles și de decriptat, chiar dacă cheia este folosită în direcția opusă.

4. Din permutarea termenilor...

În timpul Primului Război Mondial, mesajele confidențiale au fost trimise folosind așa-numitele fonturi de remaniere. În ele, literele sunt rearanjate folosind niște reguli sau chei predefinite.

De exemplu, cuvintele pot fi scrise invers, astfel încât fraza „Mama a spălat cadrul” se transformă într-o frază „Amam stacojiu umar”... O altă cheie de permutare este să permuți fiecare pereche de litere, astfel încât mesajul anterior să devină „Am am yum al ar um”.

S-ar putea părea că regulile complexe de permutare pot face aceste cifruri foarte dificile. Cu toate acestea, multe mesaje criptate pot fi decriptate folosind anagrame sau algoritmi de computer moderni.

5. Schimbarea cifrului Caesar

Este format din 33 de cifruri diferite, câte unul pentru fiecare literă a alfabetului (numărul de cifruri variază în funcție de alfabetul limbii folosite). Persoana trebuia să știe ce cifră Iulius Caesar să folosească pentru a decripta mesajul. De exemplu, dacă se folosește cifra E, atunci A devine E, B devine F, C devine Z și așa mai departe alfabetic. Dacă se folosește cifrul Y, atunci A devine Y, B devine I, C devine A și așa mai departe. Acest algoritm stă la baza multor cifruri mai complexe, dar în sine nu oferă o protecție fiabilă a secretului mesajelor, deoarece verificarea a 33 de chei de cifrare diferite va dura relativ puțin timp.

Nimeni nu putea. Încearcă-te

Mesajele publice criptate ne tachinează cu intriga lor. Unele dintre ele rămân încă nerezolvate. Aici sunt ei:

Kryptos... O sculptură a artistului Jim Sanborn situată în fața sediului Central Intelligence Agency din Langley, Virginia. Sculptura conține patru cifruri, al patrulea cod nu a fost încă descoperit. În 2010, a fost dezvăluit că caracterele 64-69 NYPVTT din a patra parte reprezintă cuvântul BERLIN.

Acum că ați citit articolul, probabil că puteți ghici trei cifruri simple.

Lăsați opțiunile dvs. în comentariile acestui articol. Răspunsul va apărea la ora 13:00 pe 13 mai 2014.

Răspuns:

1) Farfurie

2) Puiul de elefant s-a săturat de tot

3) Vreme frumoasă

criptarea poate fi interpretată ca autentificare.

Acest lucru sună destul de bine și este de obicei justificat în practică atunci când se utilizează criptarea. Criptarea este, fără îndoială, cel mai important instrument de securitate. Mecanismele de criptare ajută la protejarea confidențialitateași integritatea informațiilor. Mecanismele de criptare ajută la identificarea sursei de informații. Cu toate acestea, criptarea singură nu este soluția pentru toate problemele. Mecanismele de criptare pot și ar trebui să facă parte dintr-un program de securitate complet funcțional. Într-adevăr, mecanismele de criptare sunt utilizate pe scară largă mecanisme de securitate doar pentru că ajută la furnizarea confidențialitatea, integritatea și posibilitatea de identificare.

Cu toate acestea, criptarea este doar o acțiune de întârziere. Se știe că orice sistem de criptare poate fi piratat. Ideea este că poate dura mult timp și multe resurse pentru a obține acces la informații criptate. Ținând cont de acest fapt, un atacator poate încerca să găsească și să exploateze alte puncte slabe ale întregului sistem în ansamblu.

Această prelegere va explica conceptele de bază asociate cu criptarea și cum să utilizați criptarea pentru a păstra informațiile în siguranță. Nu vom lua în considerare în detaliu baza matematică a criptării, astfel încât cititorul nu va avea nevoie de multe cunoștințe în acest domeniu. Cu toate acestea, vom analiza câteva exemple pentru a vă ajuta să înțelegeți cât de diferit algoritmi de criptare folosit in bine program de securitate.

Concepte de bază de criptare

Criptarea este ascunderea informațiilor de la persoane neautorizate în timp ce acordă acces la acesta utilizatorilor autorizați în același timp. Utilizatorii sunt numiți autorizați dacă au cheia corespunzătoare pentru a decripta informațiile. Acesta este un principiu foarte simplu. Întreaga dificultate constă în modul în care este implementat întregul proces.

Un alt concept important de care trebuie să fii conștient este că scopul oricărui sistem de criptare este acela de a îngreuna pe cât posibil accesul persoanelor neautorizate la informații, chiar dacă au textul cifrat și cunosc algoritmul folosit pentru a le cripta. Atâta timp cât utilizatorul neautorizat nu deține cheia, secretul și integritatea informațiilor nu sunt încălcate.

Cu ajutorul criptării, sunt furnizate trei stări de securitate a informațiilor.

  • Confidențialitate. Criptarea este folosită pentru ascunderea informațiilor de la utilizatori neautorizați în timpul transmiterii sau stocării.
  • Integritate. Criptarea este utilizată pentru a preveni modificarea informațiilor în timpul transmiterii sau stocării.
  • Identificabilitate. Criptarea este folosită pentru a autentifica sursa de informații și pentru a împiedica expeditorul informațiilor să nege faptul că datele le-au fost trimise.

Termenii de criptare

Înainte de a începe o poveste detaliată despre criptare, iată definițiile unora dintre termenii care vor fi folosiți în discuție. În primul rând, ne vom ocupa de termeni care denotă componentele implicate în criptare și decriptare. Figura 12.1 prezintă principiul general după care se realizează criptarea.

Există, de asemenea, patru termeni pe care trebuie să-i cunoști:

  • Criptografie. Știința ascunderii informațiilor folosind criptarea.
  • Criptograf. O persoană implicată în criptografie.
  • Criptanaliză. Arta de a analiza algoritmi criptografici pentru vulnerabilități.
  • Criptanalist. O persoană care utilizează criptoanaliza pentru a identifica și exploata vulnerabilitățile algoritmilor criptografici.

Atacurile de criptare

Sistemele de criptare pot fi atacate în trei moduri:

  • Prin punctele slabe ale algoritmului.
  • Printr-un atac cu forță brută asupra cheii.
  • Prin vulnerabilitățile din sistemul înconjurător.

Când atacă un algoritm, un criptoanalist caută vulnerabilități în metoda de transformare text simpluîntr-un cifr pentru a descoperi textul simplu fără a folosi o cheie. Algoritmii cu astfel de vulnerabilități nu sunt suficient de puternici. Motivul este că o vulnerabilitate cunoscută poate fi exploatată pentru a recupera rapid textul original. În acest caz, un atacator nu ar trebui să folosească resurse suplimentare.

Atacurile cu forță brută sunt încercări de a forța orice cheie posibilă pentru a converti cifrul în text simplu. În medie, un analist care utilizează această metodă trebuie să valideze 50% din toate cheile înainte de a avea succes. Astfel, puterea algoritmului este determinată doar de numărul de chei pe care analistul trebuie să le încerce. Prin urmare, cu cât cheia este mai lungă, cu atât este mai mare numărul total de chei și cu atât un atacator trebuie să încerce mai multe chei înainte de a găsi cheia corectă. În teorie, atacurile cu forță brută ar trebui să reușească întotdeauna, având în vedere cantitatea potrivită de timp și resurse. Prin urmare, algoritmii trebuie judecați în funcție de perioada de timp în care informațiile rămân în siguranță într-un atac cu forță brută.

Top articole similare