-Simetric algoritmi cheie sunt algoritmi de criptografie care utilizează aceleași chei criptografice atât pentru criptare de text clar și decriptare de cifrat. Tastele pot fi identice sau poate exista o transformare simplă pentru a merge între cele două taste.Cheile, în practică, reprezintă un secret partajat între două sau mai multe părți care pot fi utilizate pentru a menține o legătură de informații private., Această cerință că ambele părți au acces la cheia secretă este unul dintre principalele dezavantaje ale simetrice de criptare cu cheie, în comparație cu cheie publică de criptare (de asemenea, cunoscut sub numele de criptare cu cheie asimetrică)
Simetrice de criptare cu cheie se poate utiliza fie stream ciphers sau cifruri bloc
- Flux de cifruri cripta cifre (de obicei bytes), sau litere (în cifruri de substituție) a unui mesaj de la un moment dat. Un exemplu este cifrul Vigenère.
- cifrurile de bloc iau un număr de biți și le criptează ca o singură unitate, umplând textul clar, astfel încât să fie un multiplu al dimensiunii blocului., Algoritmul Advanced Encryption Standard (AES), aprobat de NIST în decembrie 2001, utilizează blocuri pe 128 de biți.
implementări
primitivele criptografice bazate pe cifruri simetrice
cifrurile simetrice sunt utilizate în mod obișnuit pentru a obține alte primitive criptografice decât doar criptarea.
criptarea unui mesaj nu garantează că acest mesaj nu este modificat în timp ce este criptat. Prin urmare, de multe ori un cod de autentificare mesaj este adăugat la un text cifrat pentru a se asigura că modificările la textul cifrat va fi remarcat de către receptor., Codurile de autentificare a mesajelor pot fi construite din cifruri simetrice (de exemplu, CBC-MAC).cu toate acestea, cifrurile simetrice nu pot fi utilizate în scopuri de non-repudiere decât prin implicarea unor părți suplimentare.Consultați standardul ISO / IEC 13888-2.o altă aplicație este de a construi funcții hash din cifruri bloc., Văd o cale de compresie funcție de descrierile de mai multe astfel de metode
Construcției simetrice cifruri
Multe cifruri bloc se bazează pe o construcție propuse de Horst Feistel. Construcția lui Feistel face posibilă construirea funcțiilor inversibile din alte funcții care nu sunt ele însele inversibile.,
securitatea cifrurilor simetrice
cifrurile simetrice au fost istoric sensibile la atacuri cunoscute-plaintext, atacuri alese-plaintext, criptanaliză diferențială și criptanaliză liniară. Construcția atentă a funcțiilor pentru fiecare rundă poate reduce foarte mult șansele unui atac de succes.
Managementul cheilor
Managementul cheilor se referă la gestionarea cheilor criptografice într-un sistem criptografic. Aceasta include tratarea generării, schimbului, stocării, utilizării, cripto-mărunțirii (distrugerii) și înlocuirii cheilor., Acesta include proiectarea protocolului criptografic, serverele cheie, procedurile utilizatorului și alte protocoale relevante.managementul cheilor se referă la chei la nivel de utilizator, fie între utilizatori, fie între sisteme. Acest lucru este în contrast cu programarea cheie, care se referă de obicei la manipularea internă a cheilor în cadrul funcționării unui cifru.gestionarea cu succes a cheilor este esențială pentru securitatea unui criptosistem., Este partea mai dificilă a criptografiei într-un sens că implică aspecte ale ingineriei sociale, cum ar fi politica sistemului, instruirea utilizatorilor, interacțiunile organizaționale și departamentale și coordonarea între toate aceste elemente, spre deosebire de practicile matematice pure care pot fi automatizate.,
Pentru stabilirea
Simetric-cheie algoritmi necesită atât expeditorul și destinatarul unui mesaj să aibă aceeași cheie secretă. Toate sistemele criptografice timpurii au necesitat ca unul dintre acei oameni să primească cumva o copie a acelei chei secrete pe un canal securizat fizic.,
Aproape toate sisteme criptografice moderne încă mai folosesc chei simetrice algoritmi pe plan intern pentru a cripta cea mai mare parte a mesajelor, dar elimina nevoia pentru un fizic canal securizat prin utilizarea Diffie–Hellman de schimb cheie sau un alt public-cheie protocol cu siguranță, să ajungă la un acord privind o nouă cheie secretă pentru fiecare mesaj (forward secrecy).când se utilizează cu cifruri asimetrice pentru transferul cheilor, generatoarele de chei pseudorandom sunt aproape întotdeauna utilizate pentru a genera cheile de sesiune simetrice de cifru., Cu toate acestea, lipsa de Aleatoriu în aceste generatoare sau în vectorii lor de inițializare este dezastruoasă și a dus la pauze criptanalitice în trecut. Prin urmare, este esențial ca o implementare să utilizeze o sursă de entropie ridicată pentru inițializarea ei
cifru reciproc
un cifru reciproc este un cifru unde, la fel cum se introduce textul în sistemul de criptografie pentru a obține textul cifrat, se poate introduce textul cifrat în același loc în sistem pentru a obține textul. Un cifru reciproc este, de asemenea, uneori menționată ca cifru auto-reciproc.,practic, toate mașinile mecanice de cifru implementează un cifru reciproc, o involuție matematică pe fiecare literă tastată. În loc să proiecteze două tipuri de mașini, una pentru criptare și una pentru decriptare, toate mașinile pot fi identice și pot fi configurate (tastate) în același mod.
Exemple de cifruri reciproce includ:
- Atbash
- Beaufort cifru
- Enigma machine
- Marie Antoinette și Axel von Fersen comunicate cu un cifru auto-reciproc.
- cifrul Polialfabetic Porta este auto-reciproc.,
- Purple cifru
- RC4
- ROT13
- XOR cifru
- Vatsyayana cifru
Practic, toate moderne cifruri pot fi clasificate fie ca un cifru stream, dintre care majoritatea folosesc un reciprocol XOR cifru combiner, sau un cifru bloc, majoritatea care folosesc un cifru Feistel sau Lai–Massey schema cu o transformare reciprocă în fiecare rundă