Criptosisteme simetrice

Versiunea actuală a paginii nu a fost încă revizuită de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 12 martie 2017; verificările necesită 24 de modificări .

Criptosistemele simetrice (de asemenea criptare simetrică , cifruri simetrice ) ( algoritmul cu cheie simetrică în engleză  ) este o metodă de criptare în care aceeași cheie criptografică este utilizată pentru criptare și decriptare . Înainte de inventarea schemei de criptare asimetricăsingura modalitate care exista a fost criptarea simetrică. Cheia algoritmului trebuie ținută secretă de ambele părți, trebuie luate măsuri pentru protejarea accesului la canal, de-a lungul întregii trasee a criptogramei, sau de către părțile de interacțiune prin intermediul obiectelor cripto, mesaje, dacă acest canal de interacțiune este marcat „Nu pentru utilizare de către terți”. Algoritmul de criptare este ales de către părți înainte de schimbul de mesaje.

Informații de bază

Algoritmii de criptare a datelor sunt utilizați pe scară largă în tehnologia informatică în sistemele pentru ascunderea informațiilor confidențiale și comerciale împotriva utilizării rău intenționate de către terți. Principiul principal al acestora este condiția ca emițătorul și receptorul să cunoască în avans algoritmul de criptare , precum și cheia mesajului, fără de care informația este doar un set de caractere care nu au sens.

Exemplele clasice de astfel de algoritmi sunt algoritmii criptografici simetrici , enumerați mai jos:

Permutare simplă

O simplă permutare fără cheie este una dintre cele mai simple metode de criptare. Mesajul este scris pe tabel pe coloane. După ce textul simplu este scris în coloane, acesta este citit rând cu rând pentru a forma textul cifrat. Pentru a utiliza acest cifru, expeditorul și destinatarul trebuie să convină asupra unei chei partajate sub forma unei dimensiuni de tabel. Combinația de litere în grupuri nu este inclusă în cheia de cifră și este folosită numai pentru confortul de a scrie text fără sens.

Permutare unică după cheie

O metodă de criptare mai practică numită permutarea unei singure chei este foarte asemănătoare cu cea anterioară. Diferă doar prin aceea că coloanele tabelului sunt rearanjate după un cuvânt cheie, o expresie sau un set de numere de lungimea unui rând de tabel.

Permutare dublă

Pentru un secret suplimentar, puteți recripta un mesaj care a fost deja criptat. Această metodă este cunoscută sub numele de dublă permutare. Pentru a face acest lucru, dimensiunea celui de-al doilea tabel este selectată, astfel încât lungimile rândurilor și coloanelor sale să difere de lungimile din primul tabel. Cel mai bine este dacă sunt coprime. În plus, coloanele pot fi rearanjate în primul tabel, iar rândurile în al doilea. În cele din urmă, puteți umple tabelul în zig-zag, șarpe, spirală sau într-un alt mod. Astfel de metode de completare a tabelului, dacă nu măresc puterea cifrului, fac procesul de decriptare mult mai distractiv.

Permutația „Pătrat magic”

Pătratele magice se numesc tabele pătrate cu numere naturale succesive de la 1 înscrise în celulele lor, care însumează la fiecare coloană, fiecare rând și fiecare diagonală același număr. Astfel de pătrate au fost utilizate pe scară largă pentru a introduce textul criptat în funcție de numerotarea dată în ele. Dacă apoi scrieți conținutul tabelului rând cu rând, atunci obțineți o criptare prin rearanjarea literelor. La prima vedere, se pare că există foarte puține pătrate magice. Cu toate acestea, numărul lor crește foarte rapid pe măsură ce dimensiunea pătratului crește. Astfel, există un singur pătrat magic de 3 x 3, dacă nu țineți cont de rotațiile acestuia. Există deja 880 de pătrate magice 4 x 4, iar numărul de pătrate magice de 5 x 5 este de aproximativ 250 000. Prin urmare, pătratele magice mari ar putea fi o bază bună pentru un sistem de criptare fiabil din acea vreme, deoarece enumerarea manuală a tuturor opțiunilor cheie pentru acest cifru era de neconceput.

Numerele de la 1 la 16 erau înscrise într-un pătrat de 4 pe 4. Magia sa a fost că suma numerelor din rânduri, coloane și diagonale complete era egală cu același număr - 34. Aceste pătrate au apărut pentru prima dată în China, unde li s-au atribuit unele "putere magică".

16 3 2 13
5 zece unsprezece opt
9 6 7 12
patru cincisprezece paisprezece unu

Criptarea pătratului magic a fost efectuată după cum urmează. De exemplu, doriți să criptați expresia: „Vin astăzi”. Literele acestei fraze sunt înscrise secvenţial în pătrat conform numerelor scrise în ele: poziţia literei în propoziţie corespunde numărului ordinal. Un punct este plasat în celulele goale.

16. 3 și 2 r 13 d
5 h al 10-lea 11 g al 8-lea
9 C 6 w 7 a 12 despre
4 e al 15-lea 14 n 1 p

După aceea, textul cifrat este scris într-un șir (citirea se face de la stânga la dreapta, rând cu rând):
.irdzegyuSzhaoyanP

Când este decriptat, textul se încadrează într-un pătrat, iar textul simplu este citit într-o secvență de numere „pătrat magic”. Programul ar trebui să genereze „pătrate magice” și să-l selecteze pe cel dorit prin tastă. Pătratul este mai mare decât 3x3.

Istorie

Cerințe

Pierderea completă a tuturor regularităților statistice ale mesajului original este o cerință importantă pentru un cifru simetric. Pentru a face acest lucru, cifrul trebuie să aibă un „ efect de avalanșă ” - trebuie să existe o schimbare puternică a blocului de cifr cu o modificare de 1 bit a datelor de intrare (în mod ideal, valorile de 1/2 biți de blocul de cifrat ar trebui să se schimbe).

De asemenea, o cerință importantă este absența liniarității (adică condițiile f(a) xor f(b) == f(a xor b)), în caz contrar, aplicarea criptoanalizei diferențiale la cifr este facilitată.

Schema generală

În prezent, cifrurile simetrice sunt:

Majoritatea cifrurilor simetrice folosesc o combinație complexă de un număr mare de substituții și permutări. Multe astfel de cifruri sunt executate în mai multe treceri (uneori până la 80), folosind o „cheie de acces” la fiecare trecere. Setul de „chei de acces” pentru toate permisele se numește „program cheie”. De regulă, este creat din cheie prin efectuarea anumitor operațiuni asupra acesteia, inclusiv permutări și substituții.

O modalitate tipică de a construi algoritmi de criptare simetrică este rețeaua Feistel . Algoritmul construiește o schemă de criptare bazată pe funcția F(D, K), unde D este o bucată de date de jumătate din dimensiunea blocului de criptare, iar K este „cheia de trecere” pentru această trecere. Funcția nu trebuie să fie inversabilă - este posibil ca funcția sa inversă să nu fie cunoscută. Avantajele rețelei Feistel sunt coincidența aproape completă a decriptării cu criptarea (singura diferență este ordinea inversă a „cheilor de trecere” în program), ceea ce simplifică foarte mult implementarea hardware.

Operația de permutare amestecă biții mesajului după o anumită lege. În implementările hardware, este implementat trivial ca încurcare a conductorilor. Operațiile de permutare fac posibilă realizarea „efectului de avalanșă”. Operația de permutare este liniară - f(a) xor f(b) == f(a xor b)

Operațiile de înlocuire sunt efectuate ca înlocuirea valorii unei anumite părți a mesajului (adesea 4, 6 sau 8 biți) cu un standard, codificat în alt număr în algoritm, prin referire la o matrice constantă. Operația de substituție introduce neliniaritatea în algoritm.

Adesea, puterea unui algoritm, în special împotriva criptoanalizei diferențiale, depinde de alegerea valorilor în tabelele de substituție (S-box). Cel puțin, se consideră nedorit să existe elemente fixe S(x) = x, precum și absența influenței unui bit al octetului de intrare asupra unui bit al rezultatului - adică cazurile în care bitul rezultat este la fel pentru toate perechile de cuvinte de intrare care diferă doar în acest bit.

Parametrii algoritmului

Există mulți (cel puțin două duzini) de algoritmi de cifră simetrică , ai căror parametri esențiali sunt:

Tipuri de cifruri simetrice

cifruri bloc cifruri în flux

Comparație cu criptosisteme asimetrice

Avantaje

Dezavantaje

Pentru a compensa deficiențele criptării simetrice, în prezent este utilizată pe scară largă o schemă criptografică combinată (hibridă) , în care o cheie de sesiune este transmisă folosind criptarea asimetrică, utilizată de părți pentru a face schimb de date folosind criptarea simetrică.

Un dezavantaj important al cifrurilor simetrice este imposibilitatea utilizării lor în mecanismele de generare a semnăturilor și certificatelor digitale electronice, deoarece cheia este cunoscută de fiecare parte.

Literatură

Link -uri