Az F-FCSR egy adatfolyam -rejtjel-család, amely egy átviteli visszacsatolási eltolási regiszter (FCSR) használatán alapul , lineáris szűrővel a kimeneten. A rejtjelezés ötletét Terry Berger, François Arnault és Cédric Larade javasolta. Az F-FCSR-t beküldték az eSTREAM versenyre , 2008 áprilisában felkerült a verseny nyerteseinek listájára, de később kiderült egy kriptográfiai gyengeség, és 2008 szeptemberében az F-FCSR kikerült az eSTREAM listáról.
Clapper és Goreski először 1994-ben vetette fel az ötletet, hogy egy átviteli visszacsatolási eltolási regisztert (FCSR) használjunk streaming szűrő létrehozásához [1] . Később kidolgoztak egy algoritmust egy ilyen titkosításhoz [1] . Egy FCSR vonalkomponens csatlakoztatása nélkül nem használható adatfolyam titkosításként, mivel könnyen visszafejthető.
2002-ben javasoltak egy önszinkronizáló adatfolyam-rejtjelet, amely az FCSR és az LFSR kombinált használatán alapul [2] . Később titkosított szövegválasztási támadásnak vetették alá [3] .
2005-ben Arnaud és Berger felvetette az FCSR és a lineáris szűrő együttes alkalmazásának ötletét egy adatfolyam titkosítás létrehozására, amelyet F-FCSR-nek (Filtered FCSR) hívtak [4] . Később 4 algoritmust javasoltak, amelyek megvalósítják ezt az ötletet: F-FCSR-SF1, F-FCSR-SF, F-FCSR-DF1 és F-FCSR-DF8 [5] . Az első kettő statikus, az utolsó kettő kulcsspecifikus szűrőket használt. Később kiderült, hogy ezeknek az algoritmusoknak a gyengesége a különféle típusú támadásokkal szemben [6] .
2005-ben Terry Berger, François Arnol és Cédric Laradoud két F-FCSR [7] alapú titkosítót nyújtott be az eSTREAM versenyre: F-FCSR-H hardverre és F-FCSR-8 szoftverre. A későbbi tesztelések eredményeként az F-FCSR-H és az F-FCSR-8 [8] kezdeti verzióiban sebezhetőséget találtak , amelyeket később az F-FCSR-H v.2 és F-FCSR-16 verziókban javítottak. [9] . Az F-FCSR-H v.2 továbbfejlesztett változata az eSTREAM döntőse lett [10] . A sérülékenység felfedezése után [11] azonban kizárták az eSTREAM portfólióból (rev.1) [12] .
Név | Főregiszter hossza |
Inicializálás | Szűrő | Bitek száma a szűrő kimenetén |
---|---|---|---|---|
F-FCSR-8 | 128 | 64/128 ciklus (IV-től függően) |
Kulcstól függ | nyolc |
F-FCSR-H | 160 | 160 bar | Statikus | nyolc |
F-FCSR-8.2 | 256 | 258 bar | Kulcstól függ | 16 |
F-FCSR-16 | 256 | 16 + 258 bar | Statikus | 16 |
F-FCSR-H v.2 | 160 | 20 + 162 bar | Statikus | nyolc |
Az FCSR két konfigurációban valósul meg: Galois és Fibbonacci. Az F-FCSR a Galois konfigurációt használja, mert az hatékonyabb. A következő jelölés kerül bevezetésre:
Ha (m, c) az FCSR állapota t 0 , , időpontban , akkor a p/q bináris reprezentációja, ahol p = m + 2c.
FCSR példaq = -347, d = 174 = (10101110) 2 , n = 8, l = 4.
A kimeneti szűrési funkciót a maszk ( ) határozza meg egy kimeneti bit a következőképpen:
Tekintettel a korábbi F-FCSR-verziók gyengeségére, amely a fő regiszter gyenge kezdeti bitkeverése miatt következett be, az F-FCSR-H v.2 és F-FCSR-16 inicializálási eljárása a következő:
Az F-FCSR-8 és F-FCSR-H kezdetben talált sebezhetőségeit, amelyek az inicializálás során néhány ciklushoz kapcsolódnak, az F-FCSR-16 és F-FCSR-H v.2 verziókban javították. 2008-ban Martin Hell és Thomas Joansson leírt és végrehajtott egy támadást az F-FCSR ellen, amely felfedheti az FCSR állapotát.
A szűrési függvény lineáris, ezért az F-FCSR kriptográfiai erősségét az FCSR nemlinearitása határozza meg, ami a hordozóregiszter jelenléte miatt következik be, ezért a rendszert linearizálni kell a hordozóban lévő nullák számának maximalizálásával. Regisztráció. Vegyünk egy olyan helyzetet, amikor a hordozóregiszter állapota 20 cikluson keresztül a következő lesz:
C(t) = C(t + 1) = … = C(t + 19) = (С l-1 , …, С 0 ) = (0, 0, . . . , 0, 1) (*)
Ha a visszacsatoló bit 0, akkor a hordozóregiszter 0 bitjei 0 maradnak, az 1-esek pedig 0-vá válnak 1/2 valószínűséggel. Ekkor a (*) előfordulásához körülbelül egymást követő nullák kellenek a visszacsatoló bitben .
A (*) feltevés szerint az M(t + 1), …, M(t + 19) főregiszter állapotai lineárisan függenek M(t) -től , és ismerjük ezt a függést.
Jelöljük a z(t), z(t + 1), … , z(t + 19) kimeneti bájtokat .
Fejezzük ki z(t), z(t + 1), … , z(t + 19)-t a főregiszter bitértékeivel a t időpontban: M(t) = (m 0 … m 159 ) .
20 egyenletet kapunk 20 ismeretlennel , ahol :
…
Hasonlóképpen egyenletrendszereket kapunk attól függően , hogy hol stb. Összesen 8 20 egyenletből álló rendszer 20 ismeretlennel.
A következő jelölést használjuk: , ,
… .
Jelöljük a vektort
Ekkor a rendszereket felírhatjuk alakba , ahol a szűrési függvény által meghatározott ismert mátrix. A főregiszter állapotának megállapítására szolgáló algoritmus a (*) feltevés mellett a következőképpen írható le:
A fenti támadás 226 bájt titkosított szöveget igényel . Lehetőség van a támadás javítására, ehhez 2 24,3 bájt szükséges. Hasonló támadást lehetne alkalmazni az F-FCSR-16-nál is.
Szimmetrikus titkosítási rendszerek | |
---|---|
Rejtjelfolyam adatfolyam | |
Feistel hálózat | |
SP hálózat | |
Egyéb |