Cipuri simetrice

Cipuri simetrice

Un cifru simetric este o metodă de criptare în care aceeași cheie criptografică este folosită pentru criptare și decriptare.
Înainte de inventarea schemei de criptare asimetrică, singura metodă care exista a fost criptarea simetrică.
Cheia algoritmului trebuie păstrată secretă de ambele părți. Cheia algoritmului este selectată de către părți înainte de începerea schimbului de mesaje.

cerinţe

Pierderea completă a tuturor regularităților statistice ale mesajului original este o cerință importantă pentru un cifr simetric.
Pentru a obține un astfel de cifru ar trebui să aibă un "efect de avalanșă" - o schimbare puternică a blocului de cifru cu o schimbare de 1 biți a intrării
date (în mod ideal, valorile 1/2 bit ale blocului de cifru ar trebui să se schimbe).

De asemenea, o cerință importantă este lipsa liniarității (adică condiția f (a) xor f (b) = f (a xor b)), altfel
Aplicarea criptanalizei diferențiale la cifru este facilitată.

Schema generală

În prezent, cifrele simetrice sunt:

  • blochează cifrele. Se procesează blocuri de informații cu o anumită lungime (de obicei 64, 128 de biți), care se aplică blocării cheii
    în ordinea stabilită, de regulă, prin mai multe cicluri de amestecare și înlocuire, numite runde.
    Rezultatul repetării rundelor este un efect de avalanșă - o pierdere din ce în ce mai mare de corespondență între blocurile de date deschise și criptate.

  • cifruri flux, în care criptarea este realizată pe fiecare bit sau octet al textului sursă (deschis) folosind codul gammirovaniya.Potochny pot fi create cu ușurință bazat pe bloc (de exemplu, o operație XOR GOST 28147-86), care rulează într-un mod special.

    Cele mai multe cipuri simetrice utilizează o combinație complexă a unui număr mare de permutări și permutări. Multe astfel de cifre sunt executate în mai multe (uneori până la 80) treceri, folosind o "cheie de trecere" pe fiecare trecere. Setul de "chei de trecere" pentru toate trecerile se numește "program cheie". De regulă, acesta este creat din cheie prin efectuarea anumitor operații pe acesta, inclusiv permutări și substituții.

    O modalitate tipică de a construi algoritmi pentru criptarea simetrică este rețeaua Feistel. Algoritmul construiește un sistem de criptare bazat pe o funcție F (D, K), în cazul în care D - o bucată de date este jumătate din dimensiunea unității de criptare, și K - «cheia de trecere“ pentru acest pasaj. Funcția nu necesită reversibilitate - funcția sa inversă poate să nu fie cunoscută. Avantaje rețea Feistel - aproape un decripta meci plin criptat (singura diferență - ordinea inversă a „cheie trecere“, în calendarul), care simplifică foarte mult implementarea de hardware.

    Operația de permutare amestecă biții mesajului conform unei anumite legi. În implementările hardware, aceasta este realizată trivial ca o încurcare a conductorilor. Operațiile de permutare permit realizarea "efectului de avalanșă". Operația de permutare este liniară - f (a) xor f (b) = f (a xor b)

    operațiunile de substituire sunt efectuate ca înlocuirea unora dintre valorile de mesaje (de multe ori la 4, 6 sau 8 biți) pentru standardul algoritm rigid încorporat într-un număr diferit prin referire la matrice constantă. Operația de substituire introduce nelinearitatea în algoritm.

    De multe ori, rezistență algoritm, în special diferențiale criptanaliza depinde de alegerea valorilor din tabelele de substituție (S-cutii). Cel puțin luate în considerare prezența nedorită a elementelor S fixe (x) = x, iar lipsa efectului unor biți de intrare octeți la un anumit bit al rezultatului - adică, cazurile în care bitul rezultat este aceeași pentru toate perechile de cuvinte de intrare, care diferă doar în biți .

    Parametrii algoritmilor

    Opțiuni:
  • durabilitate
  • cheie lungime
  • număr de runde
  • lungimea blocului procesat
  • complexitatea implementării hardware / software

    Articole similare