Inserție de imitație

Versiunea actuală a paginii nu a fost încă examinată de colaboratori experimentați și poate diferi semnificativ de versiunea revizuită la 27 iulie 2022; verificarea necesită 1 editare .

Inserare imitație (MAC, cod de autentificare a mesajului în limba engleză   - cod de autentificare a mesajului) - un mijloc de a oferi protecție împotriva imitației în protocoalele de autentificare a mesajelor cu participanții care au încredere unii în alții - un set special de caractere care este adăugat la mesaj și este conceput pentru a asigura integritatea acestuia și autentificarea surselor de date.

Imitația este de obicei folosită pentru a asigura integritatea și protecția împotriva falsificării informațiilor transmise.

Pentru a verifica integritatea (dar nu autenticitatea) mesajului din partea expeditorului, valoarea funcției hash din acest mesaj este adăugată la mesaj, iar hash-ul din mesajul primit este generat și pe partea de primire. Hash-ul generat și hash-ul primit sunt comparați. În caz de egalitate, se consideră că mesajul primit a ajuns fără modificări [1] .

Pentru a proteja împotriva falsificării (imitării) unui mesaj, se folosește o inserție de imitație, dezvoltată folosind un element secret (cheie) cunoscut doar de expeditor și destinatar.

Prezentare generală

O modalitate ușoară de a converti o funcție hash unidirecțională în inserție de imitație (MAC) este criptarea valorii hash cu un algoritm simetric. Un astfel de MAC poate fi convertit într-o funcție hash unidirecțională utilizând descoperirea cheilor.

O altă modalitate este de a genera inserția de imitație (MAC) folosind un algoritm specializat de protecție împotriva imitației bazat pe un algoritm de criptare simetric.

CBC-MAC: Cel mai simplu mod de a crea o uzurpare a identității dependente de cheie este criptarea mesajului cu un algoritm de blocare în modurile CBC sau CFB . Imitatorul de inserare este ultimul bloc criptat criptat în aceste moduri. O potențială problemă de securitate cu această metodă este că destinatarul trebuie să cunoască cheia, iar această cheie îi permite să genereze mesaje cu aceeași valoare de imitație ca și mesajul primit, astfel încât o imitație simetrică bazată pe cifră nu oferă cunoștințe despre Cine (emițătorul sau destinatar) a generat această inserție de imitație. Rezultă că o uzurpare a identității bazată pe un cifru simetric nu poate înlocui o semnătură electronică.

Inserție de imitație conform GOST 28147-89

GOST 28147-89  prevede producerea unei inserții de imitație în modul corespunzător. Lungimea inserției simulate este de la 1 la 32 de biți. Dezvoltarea lui are loc după următoarea schemă.

Textul simplu este împărțit în blocuri de 64 de biți. Ultimul bloc, dacă este necesar, este umplut cu zerouri.

Primul bloc este criptat în modul ECB cu aceeași cheie ca și mesajul, dar folosind 16 cicluri în loc de 32. Rezultatul este adăugat pe bit modulo 2 la al doilea bloc și criptat în același mod. Rezultatul este adăugat celui de-al treilea bloc și așa mai departe.

Primii 32 de biți ai blocului rezultat constituie insertul de imitație. Specificația cifrului prevede utilizarea a mai puțini biți, dar nu mai mulți, ca o inserție de imitație, dacă se dorește.

Emularea este de obicei trimisă la sfârșitul mesajului și poate fi calculată fie separat de criptare/decriptare, fie în timpul acesteia.

MAA

MAA (Message Authenticator Algorithm) este un algoritm de autentificare a mesajelor.

Acest algoritm este un standard ISO. Produce o valoare hash de 32 de biți și a fost proiectat pentru mainframe cu instrucțiuni de multiplicare rapidă.

v=v<<<1

e=v xor w

x=((((e+y) mod 2^32)۷A۸C)*(x xor Mi))mod 2^32-1

y=((((e+x) mod 2^32)۷B۸D)*(y xor Mi))mod 2^32-1

Acești pași se repetă pentru fiecare bloc de mesaje, Mi, iar valoarea hash rezultată este obținută prin XORing x și y. Variabilele v și e depind de cheie. A, B, C și D sunt constante. Poate că acest algoritm este utilizat pe scară largă, dar nu este suficient de sigur. A fost dezvoltat de mult timp și nu este prea complicat.

Metode Juneman [2]

În primul rând, mesajul este împărțit în blocuri de m biți. Apoi:

, unde  este cheia secretă , unde este un număr prim mai mic decât .

Juneman a sugerat valori pentru și . El a sugerat, de asemenea, că ar trebui să fie folosită ca o cheie suplimentară și că mesajul propriu-zis să înceapă cu .

Din cauza numeroaselor atacuri de naștere, s-a propus să se calculeze QCMDC de 4 ori, folosind rezultatul unei iterații ca 4 pentru următoarea iterație [ clarificare ] și apoi concatenarea rezultatelor într-o valoare hash de 128 de biți. În viitor, această idee a fost consolidată prin execuția paralelă a 4 iterații cu legături încrucișate între ele.

Acest[ ce? ] schema a fost spartă de Don Coppersmith .

Alte metode

CBC-MAC

Ultimul bloc al mesajului criptat cu algoritmul de blocare în modurile CBC sau CFB este luat ca MAC.

Dezavantajul este faptul că destinatarul trebuie să cunoască cheia, ceea ce îi va permite să genereze un mesaj cu același MAC.

RIPE-MAC

A fost inventat de Bart Prenel ca parte a proiectului RIPE. Utilizează DES ca funcție de criptare bloc. Există două modificări ale acestui algoritm:

Proprietăți:

  1. Lungimea mesajului este mărită astfel încât să fie multiplu de 64.
  2. Mesajul este împărțit în blocuri de 64 de biți.
  3. O funcție hash dependentă de cheie (DES sau DES triplu) este aplicată mesajului.
  4. Valoarea hash obtinuta in pasul 3 este din nou criptata cu algoritmul DES, cu cheia obtinuta din cheia care a fost folosita in pasul 3.

IBC-MAC

Folosit și ca parte a proiectului RIPE. Probabilitatea deschiderii unui IBC-MAC poate fi cuantificată. Miezul funcției este

Hi = ((Mi mod p) + v) mod 2n

Cheia secretă este o pereche de numere p și v:

Mi - se obține folosind procedura de adăugare.

Fiecare mesaj trebuie să fie indexat [3] cu o cheie nouă.

Probabilitatea de deschidere, unidirecționalitatea și rezistența la coliziuni pot fi cuantificate, schimbându-le puteți seta nivelul de securitate dorit.

Dezavantajul este că nivelul de securitate selectat limitează dimensiunea mesajului hashing.

MAC bidirecțional

Acest MAC produce o valoare hash care este de două ori lungimea blocului algoritm.

În primul rând, CBC-MAC este calculat pentru mesaj. CBC-MAC al mesajului este apoi calculat cu ordine inversă de blocare. MAC-ul bidirecțional este pur și simplu concatenarea acestor două valori.

Această schemă nu este sigură. .

Funcția hash unidirecțională MAC

O funcție de hash unidirecțională poate fi folosită și ca MAC.

De exemplu, să presupunem că utilizatorii A și B împărtășesc o cheie K și A dorește să trimită mesajul M către MAC. A combină K și M și calculează o funcție de unire hash unidirecțională: H(K, M). Această valoare hash este codul MAC. Deoarece B îl cunoaște pe K, el poate reproduce rezultatul lui A, dar un al treilea utilizator, C, care nu cunoaște cheia, nu poate face acest lucru.

Cu metode de amplificare MD[ clarifica ] această metodă funcționează, dar există probleme serioase. Utilizatorul C poate adăuga oricând noi blocuri la sfârșitul mesajului și poate calcula MAC-ul corect. Acest atac poate fi prevenit prin predarea lungimii mesajului, dar și acest lucru este nesigur. Este mai bine să adăugați cheia la sfârșitul mesajului, N(M,K), dar asta provoacă și probleme. Dacă H este o funcție unidirecțională care nu este rezistentă la coliziuni[ clarifica ] C poate falsifica mesaje. Chiar mai bine este H(K,M,K) sau H(K1,M,K2), unde K1 și K2 sunt diferite. Par în siguranță[ cui? ] următoarele construcții:

N(K1, N(K2, M))

N(K, N(K, M))

H(K, p, M, K)), unde p completează K pentru a finaliza blocul de mesaje.

Cea mai bună abordare [ clarify ] este să concatenați cel puțin 64 de biți ai cheii cu fiecare bloc de mesaj. Acest lucru face ca funcția unidirecțională să fie mai puțin eficientă, deoarece blocurile de mesaje sunt mai mici, dar este mult mai sigură.

Sau puteți utiliza o funcție hash unidirecțională și un algoritm simetric. Fișierul este mai întâi hash, apoi valoarea hash este criptată. Acest lucru este mai sigur decât prima criptare a fișierului și apoi hashing fișierul criptat, dar această schemă este susceptibilă la același atac ca și construcția H(M,K).

MAC folosind un stream cipher

Această schemă MAC utilizează coduri de flux. Un generator de biți pseudoaleatoriu securizat criptografic demultiplexează [4] fluxul de mesaje în două subfluxuri. Dacă ieșirea generatorului de biți ki este unu, atunci bitul curent al mesajului mi este trimis la primul subflux, dacă este zero, atunci mi este trimis către al doilea subflux. Fiecare substream este trimis către propriul său LFSR. Ieșirea MAC este pur și simplu starea finală a ambelor registre.

Această metodă nu este sigură pentru mici modificări ale mesajului. De exemplu, dacă modificați ultimul bit al mesajului, atunci doar 2 biți din MAC-ul corespunzător trebuie modificați pentru a crea un MAC fals; acest lucru se poate face destul de ușor.

Note

  1. Bruce Schneier. Criptografia aplicată. Protocoale, algoritmi, texte sursă în limbaj C. - M . : Triumf, 2002. - ISBN 5-89392-055-4 .
  2. Metodele Juneman . Studiopedia.org . Preluat: 1 ianuarie 2021.
  3. hash - Wikționar . ro.wiktionary.org . Preluat: 1 ianuarie 2021.
  4. demultiplexare - Wikționar . ro.wiktionary.org . Preluat la 1 ianuarie 2021. Arhivat din original la 20 iunie 2017.

Literatură

Vezi și