F-FCSR är en familj av strömchiffer baserad på användningen av ett överföringsåterkopplingsskiftregister (FCSR) med ett linjärt filter vid utgången. Idén till chiffret föreslogs av Terry Berger, François Arnault och Cédric Larade. F-FCSR skickades till eSTREAM- tävlingen , ingick i listan över vinnare av tävlingen i april 2008, men senare avslöjades en kryptografisk svaghet och i september 2008 exkluderades F-FCSR från eSTREAM-listan.
Idén att använda ett överföringsregister (FCSR) för att skapa ett strömningsfilter föreslogs först av Clapper och Goreski 1994 [1] . Senare utvecklade de en algoritm för ett sådant chiffer [1] . En FCSR utan att ansluta en linjekomponent kan inte användas som ett strömchiffer, eftersom det är lätt att dekryptera.
År 2002 föreslogs ett självsynkroniserande strömchiffer baserat på den kombinerade användningen av FCSR och LFSR [2] . Den utsattes senare för en chiffertextvalsattack [3] .
2005 föreslog Arnaud och Berger idén att använda FCSR och ett linjärt filter tillsammans för att skapa ett strömchiffer, som kallades F-FCSR (Filtered FCSR) [4] . Senare föreslog de fyra algoritmer som implementerar denna idé: F-FCSR-SF1, F-FCSR-SF, F-FCSR-DF1 och F-FCSR-DF8 [5] . De två första använde statiska filter, de två sista använde nyckelspecifika filter. Senare avslöjades svagheten hos alla dessa algoritmer mot olika typer av attacker [6] .
2005 skickade Terry Berger, François Arnol och Cédric Laradoud in två F-FCSR [7] -baserade chiffer till eSTREAM-tävlingen: F-FCSR-H för hårdvara och F-FCSR-8 för mjukvara. Som ett resultat av efterföljande tester hittades sårbarheter i de första versionerna av F-FCSR-H och F-FCSR-8 [8] , som senare fixades i versionerna F-FCSR-H v.2 och F-FCSR-16 [9] . En förbättrad version av F-FCSR-H v.2 blev finalist för eSTREAM [10] . Men efter upptäckten av sårbarheten [11] exkluderades den från eSTREAM Portfolio (rev.1) [12] .
namn | Huvudregistrets längd |
Initialisering | Filtrera | Antal bitar vid filterutgången |
---|---|---|---|---|
F-FCSR-8 | 128 | 64/128 cykler (beroende på IV) |
Beror på nyckeln | åtta |
F-FCSR-H | 160 | 160 barer | Statisk | åtta |
F-FCSR-8.2 | 256 | 258 barer | Beror på nyckeln | 16 |
F-FCSR-16 | 256 | 16 + 258 takter | Statisk | 16 |
F-FCSR-H v.2 | 160 | 20 + 162 takter | Statisk | åtta |
FCSR implementeras i två konfigurationer: Galois och Fibbonacci. F-FCSR använder Galois-konfigurationen eftersom den är mer effektiv. Följande notation introduceras:
Om (m, c) är FCSR-tillståndet vid tidpunkten t 0 , , , då är den binära representationen av p/q, där p = m + 2c.
FCSR-exempelq = −347, d = 174 = (10101110) 2 , n = 8, l = 4.
Utgångsfiltreringsfunktionen definieras av masken ( ) En utgångsbit definieras enligt följande:
Med tanke på svagheten hos tidigare F-FCSR-versioner på grund av svag initial bitblandning i huvudregistret, är initieringsproceduren i F-FCSR-H v.2 och F-FCSR-16 följande:
Initialt hittade sårbarheter i F-FCSR-8 och F-FCSR-H associerade med ett litet antal cykler under initiering fixades i F-FCSR-16 och F-FCSR-H v.2. 2008 beskrev och genomförde Martin Hell och Thomas Joansson en attack mot F-FCSR som kunde avslöja FCSR:s tillstånd.
Filtreringsfunktionen är linjär, så F-FCSRs kryptografiska styrka bestäms av icke-linjäriteten hos FCSR, vilket uppstår på grund av närvaron av bärregistret, så systemet måste linjäriseras genom att maximera antalet nollor i bäraren Registrera. Tänk på en situation där tillståndet för transportregistret för 20 cykler kommer att vara följande:
C(t) = C(t + 1)= … = C(t + 19) = (Сl -1 , …, С0 ) = (0, 0, . . . , 0, 1) (*)
Om återkopplingsbiten är 0, förblir bitar i bärregistret som är 0 0, och de som är 1 blir 0 med sannolikhet 1/2. För att (*) ska inträffa, skulle ungefär på varandra följande nollor i återkopplingsbiten krävas .
Genom antagande (*) beror tillstånden i huvudregistret M(t + 1), …, M(t + 19) linjärt på M(t) , och vi känner till detta beroende.
Låt oss beteckna utdatabytes z(t), z(t + 1), … , z(t + 19) .
Låt oss uttrycka z(t), z(t + 1), … , z(t + 19) i termer av bitvärdena i huvudregistret vid tidpunkten t: M(t) = (m 0 … m 159 ) .
Vi får 20 ekvationer med 20 okända , där :
…
På samma sätt får vi ekvationssystem beroende på , var etc. Totalt 8 system med 20 ekvationer med 20 okända.
Vi använder följande notation: , ,
… .
Låt oss beteckna vektorn
Då kan systemen skrivas i formen , där är en känd matris som bestäms av filtreringsfunktionen. Algoritmen för att hitta huvudregistrets tillstånd under antagandet (*) kan beskrivas enligt följande:
Ovanstående attack kräver 226 byte chiffertext . Det är möjligt att förbättra attacken, vilket kräver 2 24,3 byte. En liknande attack skulle kunna tillämpas på F-FCSR-16.
Symmetriska kryptosystem | |
---|---|
Streama chiffer | |
Feistel nätverk | |
SP nätverk | |
Övrig |