Cheie slabă

De la Wikipedia, enciclopedia liberă.
Salt la navigare Salt la căutare

În criptografie , o cheie slabă (cheie slabă în engleză) este o cheie criptografică care este utilizată cu un cifru specific, care conduce algoritmul criptografic să funcționeze necorespunzător. Cheile slabe sunt de obicei doar o fracțiune foarte mică din toate cheile posibile, adică, dacă utilizați un algoritm aleatoriu pentru a genera cheile pentru a cripta un mesaj, este puțin probabil să întâlniți o problemă de securitate. Cu toate acestea, este considerat un avantaj pentru un cifru să nu aibă chei slabe. Se spune că un cifru fără chei slabe are un spațiu cheie liniar sau plat .

Taste slabe în DES

Cifrul blocului DES are câteva chei speciale numite „ chei slabe ” și respectiv „ chei semi-slabe ”. Aceste chei, atunci când sunt utilizate, fac ca modul de criptare DES să funcționeze în același mod ca și modul de decriptare (posibil chiar și cu o cheie diferită).

În timpul funcționării, managerul de chei DES împarte cei 56 de biți ai cheii secrete în 16 sub-chei: fiecare sub-cheie este apoi utilizată pentru fiecare dintre cei 16 pași ai DES. Cheile slabe ale DES sunt cele care produc 16 subchei identice. Acest lucru se întâmplă atunci când biții cheie sunt (în hexazecimal ): [1]

  • o secvență alternativă de „0” și „1”: 0x0101010101010101
  • o secvență alternativă de „F” și „E”: 0xFEFEFEFEFEFEFEFE
  • 0xE0E0E0E0F1F1F1F1
  • 0x1F1F1F1F0E0E0E0E

Dacă o implementare a algoritmului nu ia în considerare biții de paritate, atunci cheile corespunzătoare cu biții de paritate inversați pot funcționa ca chei slabe:

  • o secvență formată din toate „0”: 0x0000000000000000
  • o secvență formată din toate „1s”: 0xFFFFFFFFFFFFFFFF
  • 0xE1E1E1E1F0F0F0F0
  • 0x1E1E1E1E0F0F0F0F

Folosind taste slabe, funcția PC1 (Permuted Choice 1) a managerului de chei DES generează sub-chei toate „0”, toate „1” sau secvențe alternative de „0” și „1”. Deoarece toate sub-cheile sunt identice și din moment ce DES este o rețea Feistel , funcția de criptare este auto-reversibilă, ceea ce înseamnă că efectuarea a două cifre are ca rezultat textul original original.

DES are, de asemenea, chei semi-slabe , care generează doar 2 sub-chei diferite, fiecare folosită în 8 pași ai algoritmului. Aceasta înseamnă că apar în perechile K 1 și K 2 și au următoarea proprietate:

unde E K (M) este algoritmul de criptare care criptează mesajul M cu cheia K. Există 6 perechi de chei semi-slabe:

  • 0x011F011F010E010E și 0x1F011F010E010E01
  • 0x01E001E001F101F1 și 0xE001E001F101F101
  • 0x01FE01FE01FE01FE și 0xFE01FE01FE01FE01
  • 0x1FE01FE00EF10EF1 și 0xE01FE01FF10EF10E
  • 0x1FFE1FFE0EFE0EFE și 0xFE1FFE1FFE0EFE0E
  • 0xE0FEE0FEF1FEF1FE și 0xFEE0FEE0FEF1FEF1

Există, de asemenea, 48 de chei slabe posibile care generează doar 8 subchei distincte (în loc de 16) [2] .

Cheile slabe și semi-slabe nu sunt considerate „defecte fatale” ale DES. Există 2 56 (7,21 × 10 16 , aproximativ 72 milioane miliarde) combinații posibile de taste pentru DES, dintre care 4 sunt taste slabe și 12 sunt taste semi-slabe. În general, este o fracțiune foarte mică din tot spațiul cheie care nu poate fi luat în considerare. Dacă doriți cu adevărat, puteți efectua oricând o verificare pentru a identifica cheile slabe și sub-slabe în timpul creării lor: sunt foarte puține și ușor de recunoscut. Rămâne faptul că toate cheile DES pot fi recuperate prin forță brută cu hardware al cărui cost este la îndemâna tuturor (a se vedea proiectul COPACOBANA ).

Lista algoritmilor cu cheie slabă

  • RC4 . Vectorii slabi de inițializare ai RC4 permit unui atacator să efectueze un atac cunoscut în text clar : acest tip de atac a fost utilizat pe scară largă pentru a compromite securitatea WEP [3] .
  • IDEA . Cheile slabe ale IDEA sunt identificabile cu un atac în format text ales . Acestea fac previzibile relațiile dintre sumele XOR ale biților textului simplu și biții textului cifrat. Nu există o listă a acestor chei, dar ele pot fi identificate prin structura lor.
  • Blowfish . Cheile slabe Blowfish produc cutii S incorecte , deoarece casetele S ale acestui algoritm depind de cheie. Există un atac de text clar ales împotriva unei variante Blowfish cu un număr redus de pași care beneficiază de utilizarea tastelor slabe. Cu toate acestea, versiunea în 16 pași nu este implicată.

Absența tastelor slabe este un scop de proiectare

Scopul de a avea un spațiu cheie „plat” (adică cu toate tastele puternice) a fost întotdeauna unul dintre obiectivele proiectării cifrelor. La fel ca în cazul DES, uneori un număr mic de chei slabe poate fi tolerat dacă nu sunt toate identificate sau identificabile: un algoritm care are chei slabe care nu sunt cunoscute nu ar inspira multă încredere.

Iată cele două contramăsuri principale împotriva utilizării accidentale a unei taste slabe:

  • verificați cheile generate cu o listă de chei slabe cunoscute sau structurați managerul de chei pentru a respinge utilizarea acestor chei;
  • când se știe că numărul de taste slabe este foarte mic (comparativ cu dimensiunea spațiului cheii), generarea unei chei la întâmplare asigură că șansele ca aceasta să fie o tastă slabă sunt foarte mici.

Un număr mare de chei slabe este un simptom al unui defect grav în structura oricărui cifru, deoarece există o probabilitate mare (poate prea mare) ca o cheie generată aleatoriu să fie o cheie slabă, compromitând securitatea mesajelor criptate cu algoritmul. Această problemă va dura, de asemenea, mult timp pentru a verifica slăbiciunea tuturor cheilor generate aleatoriu, ceea ce ar putea duce la tentația de a reduce timpul de verificare menționat prin creșterea nesiguranței algoritmului.

Tastele slabe sunt adesea o problemă asupra căreia un atacator poate controla, de exemplu, care sunt tastele folosite. Această situație apare, de exemplu, atunci când un cifru bloc este utilizat într-un mod de funcționare capabil să creeze o funcție securizată criptografică hash (cum ar fi funcția de compresie unidirecțională Davies-Meyer ).

Notă

  1. ^ FIPS: Liniile directoare pentru implementarea și utilizarea standardului de criptare a datelor NBS Arhivat 3 ianuarie 2014 la Internet Archive . - FIPS-PUB 74
  2. ^ NIST: Recomandare pentru algoritmul de criptare a datelor triple (TDEA) Block Cipher , publicația specială 800-67, p. 14
  3. ^ Fluhrer, Mantin, Shamir:Puncte slabe în algoritmul de planificare cheie al RC4 - Al optulea atelier anual privind zonele selectate din criptografie (2001)

Elemente conexe