Codul de autentificare a datelor în conformitate cu GOST 28147-89
GOST 28147-89 prevede producerea de modul de cod de autentificare mesaj corespunzător. Lungimea codului de autentificare mesaj de la 1 la 32 de biți. Producția sa are loc după cum urmează: TO Plaintext este împărțit în blocuri de lungime 64 de biți. Ultimul bloc, dacă este necesar căptușit cu zerouri.
Primul bloc TO (1) este criptat în mod simplu înlocuire GOST 28147-89 aceeași cheie ca mesaj, dar folosind 16 de cicluri în loc de 32. Rezultatul bitului-modulo 2 a adăugat la al doilea bloc TO (2) și, de asemenea criptate. Rezultatul este adăugat la al treilea bloc. și așa mai departe.
Primii 32 de biți ai blocului rezultat sunt cod de autentificare mesaj. Caietul de sarcini prevede utilizarea cifrului ca un cod de autentificare mesaj și un număr mai mic de biți așa cum se dorește, dar nu mai mult.
cod de autentificare a datelor este de obicei trecut la sfârșitul mesajului și poate fi calculat fie separat de criptare / decriptare, sau în procesul său.
MAC bazat pe hash
O altă modalitate de a asigura integritatea este de a utiliza o funcție hash. Codul de distribuire este atașat la post într-un moment în care este cunoscut în mod corect că mesajul. Destinatarul verifică integritatea mesajului prin calcularea hash a mesajului primit și comparând-o cu codul hash primit, care trebuie să fie transmise într-un mod sigur. Una dintre aceste metode sigure pot fi criptate codul hash al cheii private a expeditorului, și anume, crearea semnăturii. Este de asemenea posibil de criptare a algoritmului hash rezultată de criptare simetrică, în cazul în care expeditorul și destinatarul a partaja o cheie de criptare simetrică.
O altă utilizare a funcției hash pentru MSS este într-un anumit mod de a adăuga o valoare secretă la mesaj, care este introdus la o funcție hash. Un astfel de algoritm este numit HMAC, și este descrisă în RFC 2104.
La elaborarea algoritmului HMAC, următoarele obiective:
- capacitatea de a utiliza nemodificat funcție hash existente;
- capacitatea de a înlocui cu ușurință hash built-in pentru mai rapid și mai stabil;
- Viteza algoritm de conservare aproape de viteza funcțiilor hash respective;
- posibilitatea de a folosi chei și ușor de a lucra cu ei
- Simplitatea criptanaliza mecanism de autentificare de rezistență cu ipoteze rezonabile în ceea ce privește funcția de hash încorporat.
Algoritmul HMAC pentru funcția hash este o „cutie neagră“. Aceasta este, în primul rând, permite utilizarea unor implementari existente ale funcțiilor hash, și în al doilea rând, permite înlocuirea ușoară a funcției hash existent la noul.
Vom introduce următoarea notație:
H - montat funcție hash, cum ar fi MD5, SHA-1 sau RIPEMD-160.
În acest caz, algoritmul HMAC poate fi reprezentat prin formula
H = HMAC [(K + Opad) || H [(K + Ipad) || M]]
Descrie în detaliu algoritmul poate fi după cum urmează:
1. La stânga zerouri K valoarea sunt adăugate pentru a obține un K b-bit string + (de exemplu, dacă K are o lungime de 160 de biți și b = 512, valoarea K va fi actualizat 44 cu zero, octeți 0x00).
2. Valoarea K + se leagă la iPad operație XOR, rezultând într-un bloc b-bit Si.
3. Si se alătură M.
4. fluxul obținut la etapa 3, o funcție aplicată H.
5. Valoarea K + se leagă operație XOR cu opad, rezultând într-un bloc S0 b-bit.
6. rezultat hash din etapa 4, este atașat la S0.
7. fluxul obținut în etapa 6, funcția H este aplicată, iar rezultatul este redat.