E0 (algoritm)

E0 este un algoritm de criptare a fluxului utilizat de protocolul Bluetooth pentru a proteja transmisiile. Se creează o secvență pseudo-aleatorie cu care efectuăm un XOR cu datele. Cheia poate varia ca dimensiune, dar lungimea sa este de obicei de 128 de biți .

La fiecare iterație, E0 creează un bit folosind patru registre de schimbare de lungimi diferite (25, 31, 33, 39 biți) și două stări interne de câte 2 biți fiecare. La fiecare cursă de ceas, registrele sunt deplasate și cele două stări sunt actualizate folosind starea curentă, starea anterioară și valorile prezente în registrele de schimbare. Patru biți sunt preluați din cele patru registre de schimbare și se adună împreună. Algoritmul efectuează apoi un XOR între această sumă și valoarea registrului de 2 biți, primul bit astfel obținut este ieșirea pentru criptare.

E0 este împărțit în trei părți:

Pregătirea stării inițiale în Bluetooth utilizează aceeași structură ca și crearea fluxului de biți aleatorii. Prin urmare, suntem în prezența a două E0 cuplate. O stare inițială de 132 de biți este produsă de prima etapă de la patru intrări (cheie de 128 de biți, adresă Bluetooth de 48 de biți și contor principal de 26 de biți). Rezultatul intră apoi într-o operație polinomială și obținem o cheie pe care o transmitem la etapa următoare, cea care va crea fluxul utilizat pentru criptare. Cheia are o dimensiune variabilă, dar întotdeauna un multiplu de 2 (între 8 și 128 biți). De obicei sunt folosiți 128 de biți. Acești biți sunt introduși în registrele de schimbare ale celei de-a doua etape. 200 de biți pseudo-aleatori sunt apoi produși datorită a 200 de impulsuri de ceas ale generatorului, ultimii 128 de biți sunt introduși în registrele de schimbare. Aceasta este starea inițială a generatorului prin flux.

Criptanaliza

Au fost efectuate mai multe atacuri și încercări de criptanaliză pe E0 și protocolul Bluetooth .

În 1999 , Miia Hermelin și Kaisa Nyberg au arătat că E0 ar putea fi rupt cu 2 64 operații (în loc de 2 128 ) dacă are o ieșire, teoretică, 2 64 biți. Acest tip de atac a fost rafinat în continuare de Kishan Chand Gupta și Palash Sarkar . Scott Fluhrer de la Cisco Systems a demonstrat un atac teoretic cu o precomputație de 280 de operațiuni și o complexitate de căutare a cheii de ordinul a 265 de operații. El concluzionează că securitatea maximă a E0 este echivalentă cu o cheie de 65 de biți și că cheile mai lungi nu îmbunătățesc securitatea. Optimizează, prin urmare, un atac anterior provocat de Golic Bagini și Morgagni care au necesitat 2 70 de operațiuni.

În 2000 , finlandezul Juhia Vainio a evidențiat problemele legate de utilizarea necorespunzătoare a E0 și mai general posibilele defecte în Bluetooth.

În 2004 , Serge Vaudenay și Yi Lu au lansat un prim 24-biți folosind atacul statistic 2 35 cadre Bluetooth (un cadru are o lungime de 2745 biți). Complexitatea finală pentru recuperarea cheii este de ordinul a 240 de operații. Apoi își îmbunătățesc atacul pentru a ajunge la cea mai bună metodă publicată până în prezent, adică 237 pentru calculele prealabile și 239 pentru căutarea efectivă a cheii.

Vezi și tu

linkuri externe