Codurile de autentificare a mesajelor

Cerințe pentru funcțiile hash

Funcția de hash este o funcție cu o singură cale concepută pentru a prelua o digestă sau "amprentă" a unui fișier, a unui mesaj sau a unui bloc de date.

Codul hash este creat de funcția H: h = H (M)

Unde M este un mesaj de lungime arbitrară și h este un cod hash cu o lungime fixă.

Funcția hash H, care este utilizată pentru autentificarea mesajelor, trebuie să aibă următoarele proprietăți:

1. Funcția hash H trebuie aplicată la un bloc de date de orice lungime.

2. Funcția hash H creează o ieșire cu lungime fixă.

3. H (M) este relativ ușor (în timp polinomial) care trebuie calculat pentru orice valoare a lui M.

4. Pentru orice valoare dată a codului hash h este imposibil de calculat să se găsească M astfel încât H (M) = h.

5. Pentru orice x dat este imposibil de calculat y x astfel încât H (y) = H (x).

6. Este imposibil din punct de vedere computațional să găsim o pereche arbitrară (x, y) astfel încât H (y) = H (x).

Primele trei proprietăți necesită ca funcția hash să creeze un cod hash pentru orice mesaj.

A patra proprietate determină cerința unei singure părți a funcției hash: este ușor să creați un hash-code pentru acest mesaj, dar este imposibil să restaurați mesajul pe acest cod hash. Această proprietate este importantă dacă autentificarea utilizând o funcție hash include o valoare secretă. Valoarea secretă însăși nu poate fi trimisă, totuși, dacă funcția hash nu este una față-verso, adversarul poate dezvălui cu ușurință valoarea secretă.

O funcție hash care satisface primele cinci proprietăți se numește o funcție hash simplă sau slabă. Dacă este executată și a șasea proprietate, atunci această funcție se numește o funcție hash puternică. A șasea proprietate este protejată împotriva clasei atacurilor cunoscute sub numele de "ziua de naștere".

Toate funcțiile hash sunt efectuate după cum urmează. Valoarea de intrare (mesaj, fișier, etc.) este tratată ca o secvență de blocuri de n-biți. Valoarea de intrare este procesată secvențial bloc-cu-bloc și este generată o valoare de cod de hash n-bit.

Unul dintre cele mai simple exemple ale funcției hash este XOR biți ale fiecărui bloc:

Unde Ci este bitul i al codului hash, 1 i n,

k este numărul de blocuri de intrare n-bit.

bij - bitul i în blocul j.

Rezultatul este un cod hash cu lungimea n, cunoscut sub numele de control excesiv longitudinal. Acest lucru este eficient pentru eșecurile ocazionale de a verifica integritatea datelor.

Adesea, atunci când se folosește un astfel de control al depășirii longitudinale, se efectuează o schimbare ciclică pe un singur bit pentru fiecare bloc după calcularea codului hash. Acest lucru va da efectul "aleatoriu" al intrării și va distruge orice regularitate care este prezentă în valorile de intrare.

În timp ce a doua opțiune este considerată mai preferabilă pentru integritatea datelor și pentru prevenirea eșecurilor accidentale, aceasta nu poate fi utilizată pentru a detecta modificările intenționate ale mesajelor transmise. Cunoscând mesajul, atacatorul poate crea cu ușurință un mesaj nou care are același cod hash. Pentru aceasta, pregătiți un mesaj alternativ și apoi atașați blocul n-bit, care este codul hash al mesajului nou, și blocul care este codul hash al vechiului mesaj.

Luați în considerare algoritmul pentru primirea mesajului digest MD5 (RFC 1321), dezvoltat de Ron Rivest de la MIT. Algoritmul primește un mesaj de lungime arbitrară la intrare și creează un mesaj de conversie pe 128 de biți ca ieșire.

ABCD este un vector de inițializare format din 4 sub-vectori cu o lungime de 8 cifre hexazecimale (4 octeți). Yi - blocul i-te al textului sursă, HMD5 - modul format din 4 procesări ciclice.

SHA funcții hash

Algoritmul primește un mesaj de lungime maximă de 2 64 de biți la intrare și generează un raport de 160 de biți ca ieșire.

Comparație dintre SHA-1 și MD5

Lungimea mesajului (în biți)

Lungimea blocului (în biți)

Prin securitate aici se înțelege rezistența la atacurile clasei "ziua de naștere".

Funcția Hash GOST 3411

Algoritmul GOST 3411 este standardul intern pentru funcțiile hash. Structura sa este destul de diferită de structura algoritmilor SHA-1,2 sau MD5, bazată pe algoritmul MD4.

Lungimea codului hash, creat de algoritmul GOST 3411, este de 256 de biți. Algoritmul împarte mesajul în blocuri a căror lungime este de asemenea 256 biți. În plus, parametrul algoritmului este vectorul hashing de pornire H - o valoare fixă ​​arbitrară a lungimii este, de asemenea, 256 biți.

Mesajul este procesat de blocuri de 256 biți de la dreapta la stânga.

Codurile de autentificare a mesajelor - MAC

În acest caz, un MAC (Message Authentication Code) se referă la anumite Authenticator, care se calculează într-un anumit bloc de date mod, prin care să verifice integritatea mesajelor. În unele cazuri, criptarea simetrică a întregului mesaj poate efectua funcția de autentificare a acestui mesaj. Dar în acest caz mesajul ar trebui să conțină o redundanță suficientă, ceea ce ar permite verificarea faptului că mesajul nu a fost modificat. Redundanța poate fi sub forma unui mesaj special formatat, text într-o anumită limbă și așa mai departe. Dacă mesajul permite o secvență arbitrară de biți (de exemplu, cheia de sesiune criptată), criptarea simetrică a întregului mesaj nu poate asigura integritatea acestuia, deoarece decriptarea, în orice caz, vom obține o secvență de biți, care nu poate fi verificată în mod corect. Prin urmare, kritograficheski mai des folosit a creat un mic bloc de date de dimensiuni fixe, așa-numitul authenticator sau autentificare cod, prin care integritatea mesajului. Acest bloc de date poate fi creat folosind o cheie secretă care este partajată de către expeditor și receptor. MAC se calculează în momentul în care se știe că mesajul este corect. După aceasta, MAS se alătură mesajului și este trimis împreună cu destinatarul. Receptorul calculează MSS utilizând aceeași cheie secretă și compară valoarea calculată cu valoarea primită. Dacă aceste valori sunt aceleași, atunci cu un grad ridicat de probabilitate se poate presupune că mesajul nu sa schimbat atunci când a fost trimis.







Articole similare

Trimiteți-le prietenilor: