E0 (algoritme)

E0 er en streamkrypteringsalgoritme, der bruges af Bluetooth- protokollen til at beskytte transmissioner. Det skaber en pseudo-tilfældig sekvens, hvormed vi udfører en XOR med dataene. Nøglen kan variere i størrelse, men dens længde er normalt 128 bit .

Ved hver iteration opretter E0 en bit ved hjælp af fire skiftregistre med forskellige længder (25, 31, 33, 39 bit) og to interne tilstande på hver 2 bit. Ved hvert urslag skiftes registre, og de to tilstande opdateres under anvendelse af den aktuelle tilstand, den tidligere tilstand og de værdier, der er til stede i skifteregistrene. Fire bits er taget fra de fire skiftregistre og tilføjet sammen. Algoritmen udfører derefter en XOR mellem denne sum og værdien af ​​2-bit-registeret, den første således opnåede bit er output til krypteringen.

E0 er opdelt i tre dele:

Forberedelse af den oprindelige tilstand i Bluetooth bruger den samme struktur som oprettelse af den tilfældige bitstrøm. Vi er derfor i nærværelse af to E0-koblede. En 132-bit initialtilstand produceres af det første trin fra fire indgange (128-bit nøgle, 48-bit Bluetooth-adresse og 26-bit mastertæller). Resultatet går derefter ind i en polynomoperation, og vi får en nøgle, som vi sender til næste trin, den, der vil skabe den strøm, der bruges til krypteringen. Nøglen har en variabel størrelse, men altid et multiplum på 2 (mellem 8 og 128 bit). Normalt bruges 128 bits. Disse bits introduceres i skiftregistrene i anden fase. 200 pseudo-tilfældige bits produceres derefter ved anvendelse af 200 urimpulser fra generatoren, de sidste 128 bits indsættes i skiftregistrene. Dette er generatorens starttilstand efter strøm.

Kryptanalyse

Adskillige angreb og kryptanalyseforsøg er blevet udført på E0 og Bluetooth- protokollen .

I 1999 viste Miia Hermelin og Kaisa Nyberg , at E0 sandsynligvis ville blive brudt med 2 64 operationer (i stedet for 2 128 ), hvis den har en output, teoretisk, 2 64 bit. Denne type angreb blev yderligere raffineret af Kishan Chand Gupta og Palash Sarkar . Scott Fluhrer fra Cisco Systems demonstrerede et teoretisk angreb med en forberegning af 280 operationer og en nøglefinder-kompleksitet på omkring 2.65 operationer. Han konkluderer, at den maksimale sikkerhed på E0 svarer til en 65-bit nøgle, og at længere nøgler ikke forbedrer sikkerheden. Det optimerer derfor et tidligere angreb fra Golic, Bagini og Morgani, som krævede 2 70 operationer.

I 2000 fremhævede finske Juhia Vainio problemerne i forbindelse med forkert brug af E0 og mere generelt de mulige fejl i Bluetooth.

I 2004 , Serge Vaudenay og Yi Lu udstedt en første 24-bit ved hjælp af statistisk angreb 2 35 frames Bluetooth (en ramme har en længde på 2745 bits). Den endelige kompleksitet til at gendanne nøglen er i størrelsesordenen 240 operationer. De forbedrer derefter deres angreb for at nå til den hidtil bedste offentliggjorte metode, dvs. 237 til beregningerne på forhånd og 239 for den egentlige søgning efter nøglen.

Se også

eksterne links