Primitive criptografice
Primitivele criptografice sunt algoritmi criptografici de nivel scăzut care sunt adesea utilizați pentru a construi protocoale criptografice . Într-un sens restrâns, acestea sunt operațiuni și proceduri care determină proprietățile necesare unui criptosistem [1] .
Introducere
Primitivele criptografice sunt folosite ca blocuri principale la crearea unui sistem criptografic, adică sunt proiectate pentru o clasă restrânsă de sarcini cu un grad ridicat de fiabilitate. Ca exemplu, luați în considerare următoarea situație: dacă se specifică o rutină de criptare că poate fi întreruptă doar cu un număr X de operațiuni pe computer, atunci dacă poate fi întreruptă cu mult mai puține operațiuni decât X, această primitivă criptografică este considerată nesigură.
Atunci când proiectează protocoale și criptosisteme, dezvoltatorul este responsabil pentru eliminarea defectelor de compoziție. Fără a putea dovedi siguranța lor, dezvoltatorul trebuie să considere primitivele pe care le folosesc ca fiind de încredere. Alegerea celei mai bune primitive disponibile pentru utilizare într-un protocol oferă de obicei cea mai bună securitate posibilă. Dacă este detectată o defecțiune a unei primitive criptografice, aproape fiecare protocol care o folosește devine vulnerabil [2] .
Proprietăți primitive
Primitivele criptografice trebuie să aibă următoarele proprietăți:
- Nivel de securitate. De obicei definit ca numărul de operațiuni necesare (folosind cele mai bune metode cunoscute în prezent) pentru a atinge scopul propus. De obicei, nivelul de securitate este determinat de limita superioară necesară a volumului de muncă. Acesta este uneori denumit factor de lucru.
- Funcționalitate. Primitivele trebuie combinate pentru a atinge scopuri diferite. Care primitive sunt cele mai eficiente pentru un anumit scop vor fi determinate de proprietățile de bază ale primitivelor.
- Metode de lucru. Primitivele, atunci când sunt aplicate în direcții diferite și la investiții diferite, tind să prezinte caracteristici diferite; astfel, un primitiv ar putea fi folosit în moduri diferite, în funcție de nevoie.
- Performanţă. Aceasta se referă la eficiența primitivului într-un anumit mod de operare.
(de exemplu, un algoritm de criptare poate fi evaluat după numărul de biți pe secundă pe care îl poate cripta).
- Ușurință de implementare. Aceasta se referă la dificultatea implementării unei primitive într-o implementare practică, cum ar fi implementarea unei primitive într-un mediu software sau hardware.
Importanța relativă a diferitelor criterii depinde în mare măsură de aplicație și de resursele disponibile. De exemplu, într-un mediu în care puterea de calcul este limitată, poate fi necesar să se renunțe la un nivel foarte ridicat de securitate pentru a îmbunătăți performanța sistemului în ansamblu.
Primitive de bază
- Hashing este transformarea unei matrice de date de intrare de lungime arbitrară într-un șir de biți de ieșire de lungime fixă. Astfel de transformări se mai numesc și funcții hash sau funcții de convoluție, iar rezultatele lor se numesc cod hash , sumă de control sau sinteză de mesaje . Rezultatele hash sunt unice din punct de vedere statistic. O secvență care diferă cu cel puțin un octet nu va fi convertită la aceeași valoare [3] [4] .
- Criptografia cu chei simetrice este că ambele părți - participanții la schimbul de date au exact aceleași chei pentru criptarea și decriptarea datelor. Această metodă realizează o transformare pentru a preveni vizualizarea informațiilor de către o terță parte [3] [4] .
- Criptarea asimetrică - implică utilizarea a două chei diferite într-o pereche - una publică și una secretă. În criptarea asimetrică, cheile funcționează în perechi - dacă datele sunt criptate cu o cheie publică, atunci pot fi decriptate numai cu cheia secretă corespunzătoare și invers - dacă datele sunt criptate cu o cheie secretă, atunci poate fi doar decriptat cu cheia publică corespunzătoare. Este imposibil să utilizați o cheie publică de la o pereche și o cheie secretă de la alta. Fiecare pereche de chei asimetrice este asociată cu dependențe matematice. Această metodă vizează și conversia informațiilor dintr-o vizualizare terță [3] [4] .
- Semnătura digitală - folosită pentru a stabili autenticitatea documentului, originea și paternitatea acestuia, exclude denaturarea informațiilor din documentul electronic [4] .
- O schemă de angajament este o metodă care permite utilizatorului să confirme o anumită valoare care nu este dezvăluită, adică dacă această valoare este dezvăluită, datorită acestei scheme, se va ști că utilizatorul o cunoștea la momentul emiterii angajamentului și că nu s-a schimbat [5] .
- Un generator de numere pseudo-aleatoare este un generator de numere pseudo-aleatoare cu anumite proprietăți care îi permit să fie utilizat în probleme de criptografie [6] .
Combinarea primitivelor criptografice
Primitivele criptografice în sine sunt destul de limitate. Ele nu pot fi considerate ca un sistem criptografic. De exemplu, un algoritm de criptare simplu nu va oferi nici un mecanism de autentificare și nici o verificare explicită a integrității mesajului. Dacă folosim o combinație de rutine de codificare (ex . DES ) și rutine de hashing (ex . SHA-1 ), avem un sistem de transmitere a unui mesaj care nu este doar criptat, ci și protejat de fals. Și dacă atacatorul nu cunoaște cheia de criptare, nu poate interfera cu transmiterea mesajului.
Majoritatea problemelor sistemelor criptografice (adică nesiguranța în sisteme) sunt de obicei asociate cu utilizarea greșită a primitivelor, adică erori în construcția arhitecturii protocolului criptografic, utilizarea și combinarea incorectă a primitivelor, și nu cu erori în cadrul primitivii înșiși. Există metode pentru analizarea completă a protocoalelor criptografice, dar sunt foarte complexe. Cu toate acestea, unele proprietăți de bază pot fi verificate folosind metode automate, de exemplu, folosind logica Burroughs-Abadie-Needham [2] .
Vezi și
Note
- ↑ Moldovyan N. A. Criptografie: de la primitive la sinteza algoritmilor. - 2004. - S. 11. - 448 p. — ISBN 9785941575244 .
- ↑ 12 Patel Parth . Criptovirologie // Departamentul de Inginerie Calculatoare U & PU Patel, Universitatea Gujarat, India. - P. 6. - 8 p.
- ↑ 1 2 3 Menezes AJ, Oorschot PC, Vanstone SA Manual de criptografie aplicată. - 1996. - S. 5-6. — 780 s. - ISBN 0-8493-8523-7 .
- ↑ 1 2 3 4 Markov A. S., Tsirlov V. L. Fundamentals of cryptography: preparation for CISSP // Cybersecurity Issues No2(10). - 2015. - S. 66.
- ↑ Oded Goldreich. Fundamentele criptografiei: volumul 1, instrumente de bază. — Cambridge University Press. - 2004. - S. 223-228. — 372 p. - ISBN 0-521-79172-3 .
- ↑ Michela Meister. Un studiu asupra funcțiilor pseudo-random // Universitatea Stanford. - S. 1. - 5 p.