Névjegyzék

A lineáris visszajelzéssel ellátott váltási nyilvántartás C. A munka elméleti alapja. Melyek a Shift Regiszterek által generált szekvenciák

A nyírási nyilvántartások sorrendjét a kriptográfiákban és a kódoló elméletben használják. Az elméletük tökéletesen kidolgozott, a Shear Regiszterek alapján a rejtvények streamingje volt a katonai kriptográfiában, az elektronika előtt.

Visszajelzési váltási nyilvántartás (a továbbiakban: RSHSOS) két részből áll: Shift Registration és visszacsatolási funkciók. A Shift Regisztráció a bitek sorrendje. Meghatározzák a bitek számát hosszirányú váltási nyilvántartásHa a hossza n bit, akkor a nyilvántartást hívják n-bit Shift Regisztráció. Amikor el kell távolítania a bitet, a Shift Regisztráció összes bitje jobbra 1 pozícióba kerül. Az új szélsőséges bal bit a regiszter minden más bitje. A nyírási regiszter kimenetén kiderül, általában a fiatalabb jelentést, kicsit. A Shift Register időszak A kapott szekvencia hossza az ismétlés megkezdődött.

1. ábra: Visszajelzésváltás Regisztráció

A Shift regiszterek nagyon gyorsan megtalálták a streaming piphers használatát, mivel könnyen megvalósítható digitális berendezések segítségével. 1965-ben Ernst Selmer (Ernst Selmer), a norvég kormány fő titkosítása kifejlesztette a nyírási nyilvántartások sorozatának elméletét. Salamon Golomb (Solomon Golomb), NSA matematika írt egy könyvet, amely meghatározza néhány eredményét és eredményeit a Selmer. A visszajelzési váltás nyilvántartásának legegyszerűbb nézete egy lineáris visszacsatolási váltási nyilvántartás (lineáris visszajelzési váltás regiszter, majd LFSR vagy RGSSLOS). Az ilyen nyilvántartások visszajelzése egyszerűen xor (két modulo hozzáadását) a regiszter egyes bitjeinek, ezeknek a biteknek a listáját érintő szekvencianak nevezik. Néha egy ilyen nyilvántartást fibonaci konfigurációnak nevezik. A visszacsatolási szekvencia egyszerűségének köszönhetően meglehetősen kifejlesztett matematikai elmélet használható az RSSlos elemzéséhez. A kapott kimeneti szekvenciák elemzése után győződjön meg róla, hogy ezek a szekvenciák elég véletlenszerűek. Az RSSkslos-t gyakrabban használják, mint a titkosítás más nyírási nyilvántartása.


2. ábra: RSSkslos fibonaches

Az általános esetben az N-bit RGSSLOS lehet az N \u003d 2 N -1 belső állapot egyikében. Ez azt jelenti, hogy elméletileg egy ilyen nyilvántartás egy pszeudo-véletlen szekvenciát generálhat t \u003d 2 n -1 bites periódussal. (A belső államok száma és az időszak n \u003d t max \u003d 2 n -1, mert az RSSHSLOS nulla kitöltése a váltási nyilvántartásból származik, a nullák végtelen szekvenciáját eredményezi, ami teljesen haszontalan). Csak az RSSlos bizonyos elutasított szekvenciáival ciklikusan lesz az összes 2 N -1 belső állapot, ilyen RSSSLOS RSSKSLOS maximális időtartammal. Az eredményül kapott eredményt hívják M-szekvencia.

Példa . Az alábbi ábra egy 4 bites RGSSLOS-t mutat be az első és a negyedik bitből. Ha az 1111-es értéket inicializálja, akkor az ismétlés előtt a nyilvántartás a következő belső állapotokat veszi:

Shift traktus (belső állapot)

Regisztrációs állapot

Kimeneti bit

Kezdeti jelentés

15 (visszatérés egy kezdeti állapotba)

16 (ismétlési állapotok)

A kimeneti szekvencia a fiatalabb szignifikáns bitek karakterlánca lesz: 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 Idővel T \u003d 15, a lehetséges belső állapotok teljes száma (kivéve a nulla), N \u003d 2 4 -1 \u003d 16-1 \u003d 15 \u003d t max, ezért a kimeneti szekvencia az M-szekvencia.

Annak érdekében, hogy egy adott RSSKSLOS-nak maximális időtartamot kapjon, a csapszekvencia és az 1-es konstans által kialakított polinomnak primitívnek kell lennie a 2. modul által. mint ez:

a. n. x n + a n-1 x N-1 + ... + a 1 x 1 + a 0 x 0 \u003d a n. x n + a n-1 x N-1 + ... + a 1 x + A. 0 hol egy. ÉN. \u003d (0,1) az i \u003d 1 ... n és x I - jelzi a mentesítést.

A polinom mértéke a váltási nyilvántartás hossza. Az N primitív polinom fok egy redukálható polinomiális, amely egy X 2N osztó 1 +1, de nem egy X D +1 osztó minden D számára, amelyek 2 n -1 osztók. A megfelelő matematikai elmélet megtalálható.

Általában nincs egyszerű módja annak, hogy primitív polinomok egy adott mértékben modult 2. A legegyszerűbb módja, hogy válasszon egy polinom, hogy véletlenszerűen, és ellenőrzi, hogy primitív. Nem könnyű, és valami olyan, mint egy egyszerű, hogy ez egy egyszerű véletlenszerűen kiválasztott szám - de sok matematikai programcsomag képes megoldani az ilyen feladatot.

Néhány, de természetesen nem minden, különböző fokú polinomok, primitív modulo 2, később. Például írásban

(32, 7, 5, 3, 2, 1, 0) azt jelenti, hogy a következő polinom primitív a 2. modulhoz 2: x 32 + x 7 + x 5 + x 3 + x 2 + x + 1.

Ez könnyen összefoglalható az RSSSLOS számára a maximális időtartammal. Az első szám az RSSSLOS hossza. Az utolsó szám mindig 0-nak van, és elhagyható. Minden szám, a 0 kivételével állítsa be az eltávolítási sorozatot a Shift Regisztráció bal szélétől. Vagyis a kevésbé végzett polinom tagjai a nyilvántartás jobb széléhez közelebb álló pozícióknak felelnek meg.

Folytatva például felvétel (32, 7, 5, 3, 2, 1, 0) azt jelenti, hogy az új kis 32-bites léptető regiszter van egy új bitet generál XOR harminc másodperc, a hetedik, az ötödik, a harmadik, a második és a első bitek. A kapott rshslos maximális hossza lesz, ciklikusan átadja az ismétlést 2 32 -1 érték után.


4. ábra: 32 bites RGSSLOS maximális hosszral

Tekintsük az RSSLOS programkódot, amelyben a csapszekvenciát polinom (32, 7, 5, 3, 2, 1, 0) jellemzi. A C nyelvben a következőképpen néz ki:

statikus aláírás nélküli hosszú shiftregister \u003d 1;

/ * Minden, kivéve 0 * /

Shiftregister \u003d (((Shiftregister \u003e\u003e 31)

^ (Shiftregister \u003e\u003e 6)

^ (Shiftregister \u003e\u003e 4)

^ (Shiftregister \u003e\u003e 2)

^ (Shiftregister \u003e\u003e 1)

^ Shiftregister))

| (Shiftregister \u003e\u003e 1);

visszatérés Shiftregister & 0x00000001;)

Ha a Shift Register hosszabb, mint egy számítógépes szó, a kód bonyolult, de nem sok. A B. függelék tartalmazza a 2. modulban lévő primitív polinomok táblázatot, a jövőben a polinomok bizonyos tulajdonságainak azonosítására szolgál, valamint a szoftverek megvalósításában a csapszekvencia beállításához.

Meg kell jegyezni, hogy az összes táblázatelem páratlan számú együttható. Egy ilyen hosszú asztalt az RSSSLO-val folytatott további munkákhoz adják meg, mivel az RSSLLOS-ot gyakran használják a streaming titkosítókkal és a pszeudo-véletlen számgenerátorokkal. A mi esetünkben a polinomok egynél idősebb, legfeljebb hét fokozattal rendelkezhetnek.

Ha p (x) primitív, akkor primitív és x n p (1 / x), így az asztal minden eleme két primitív polinomot határoz meg. Például, ha (A, B, 0) primitív, majd primitív és (A, A-B, 0). Ha primitív (A, B, C, D, 0) primitív és (A, A-D, A-C, A-B, 0). Matematikailag:

ha primitív X A + X B +1, majd primitív és x A + X A-B +1,

ha primitív X A + X B + X C + X D +1, majd primitív és x A + X A-D + X A-C + X A-B +1. Gyorsabb azt programozott végre primitív három méter, hiszen létrehoz egy új kicsit, hogy végre kell hajtani a xor csak két bit léptető regiszter (nulla távon nem veszik figyelembe, azaz x 0 \u003d 1, lásd a fenti példát) . Valójában a táblázatban bemutatott összes visszajelzési polinomok ritkáltak, vagyis vannak együtthatók. A jutalmak mindig gyengeségforrást jelentenek, ami néha elegendő az algoritmus megnyitásához. A kriptográfiai algoritmusok esetében sokkal jobb sűrű primitív polinomok használata, akiknek számos együtthatók. Sűrű polinomok alkalmazása, különösen a kulcs részeként, jelentősen rövidebb rshslókat használhat.

Sűrű primitív polinomok létrehozása a 2. modulban nem könnyű. Általánosságban elmondható, hogy a K fokú primitív polinomok létrehozását, meg kell ismerni a 2 K -1-es számú szorzók bontását.

Önmagában az RSSllos jó pszeudo-véletlen szekvenciák generátorok, de van néhány nemkívánatos, nem véletlenszerű (determinisztikus) tulajdonságai. A soros bitek lineárisak, ami felhasználhatatlanná teszi őket a titkosításhoz. Az RSSLOS Lone N belső állapota a generátor korábbi n kimeneti bitjei. Még ha a visszacsatolási sémát titokban tárolják, a generátor 2N kimeneti bitjei meghatározhatók egy nagyon hatékony Berlekamp-Massey algoritmussal.

Ezenkívül erősen korreláltak a sorban futó szekvencia bitjei által generált nagy véletlen számok, amelyek erősen korrelálnak, és egyes alkalmazásokhoz egyáltalán nem véletlenszerűek. Ennek ellenére az RSSLLOS-t gyakran használják a titkosítási algoritmusok létrehozására, mint a rendszerek és a titkosítási algoritmusok összetevői.

A visszajelzési funkció legegyszerűbb nézete egy lineáris függvény, például az egyes kibocsátások tartalmának 2. moduljának összege. Az ilyen nyilvántartást lineáris visszacsatolási váltási nyilvántartásnak nevezik (lineáris visszacsatolási váltás, rövidített LFSR). Az általános esetben a lineáris visszacsatolási funkciót a képlet határozza meg. Itt c K.\u003d 1, ha k.A hangot visszacsatolási funkcióban használják, és c K.\u003d 0 egyébként. Az Å szimbólum a 2. modul hozzáadását jelöli (kivéve vagy).

Például vegye figyelembe az LFSR-t visszajelzési funkcióval (lásd az ábrát).

Ha a nyilvántartás kezdeti állapota 1111, akkor a későbbi órákban a következő állapotokat fogja venni: 1111, 0111, 1011, 0101, 1010, 1101, 0110, 0011, 1001, 0100, 00110, 0001, 1000, 1100, 1110, 1111, ...

A kimeneti szekvencia a fiatalabb (szélsőjobboldali) nyilvántartási kisülésből származik. Ez így fog kinézni: 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1. Látható, hogy a generált bitszekvenciát teljes egészében a nyilvántartás kezdeti állapota és visszacsatolási funkciója határozza meg. Mivel a nyilvántartási államok száma természetesen (ez megegyezik 2 L.), Előbb-utóbb a kulcsszekvencia megismétlődik. A kulcsszekvencia nem határos részének maximális hosszát az időszaknak nevezik. T.. Az időszak a visszajelzési funkciótól függ. A lehető legnagyobb időtartam egyenlő T. Max \u003d 2. L.-1 (A nyilvántartás minden lehetséges államot vesz, kivéve 0000 ... 0). A maximális időtartammal rendelkező LFSR kimeneti sorrendje M-szekvencia.

Annak megállapítása, hogy az LFSR maximális időtartama lesz, a visszajelzési funkciók egy jellegzetes polinommal vannak igazítva. Így a fentiekben bemutatott nyilvántartás például a polinomnak felel meg. Az elméleti elemzés azt mutatja, hogy az LFSR maximális időtartama lesz, majd csak akkor, ha a rendőrség P.(x.) egy primitív. Az alábbiakban néhány primitív polinomok ajánlottak a gyakorlatban. A táblázat a változó mértékét mutatja x.a polinom rekordjában. Például a felvétel (31, 3) megfelel a polinomnak.

P.(x.) P.(x.) P.(x.)
(39, 16, 23, 35) (38, 5, 6, 27) (32, 2, 7, 16)
(30, 6, 4, 1) (31, 6) (31, 7)
(31, 13) (31, 25, 23, 8) (33, 13)
(35, 2) (47, 5) (48, 9, 7, 4)
(47, 11, 24, 32) (46, 18, 31, 40) (53, 6, 2, 1)
(55, 24) (57, 7) (58, 19)
(59, 7, 4, 2) (41, 27, 31, 32) (61, 5, 2, 1)
(42, 30, 31, 34) (51, 15, 24, 46) (50, 17, 31, 34)


Kezdetben az LFSR-t a hardverezéshez tervezték, egy digitális áramkörök formájában. Az LFSR szoftverek megvalósítása általában elveszíti a hardver sebességét. A sebesség növelése érdekében a nyilvántartás állapota nyereséges ahhoz, hogy az egész formájában tárolja L.-Roro-szám, amelynek egyedi bitjei megfelelnek a nyilvántartás bináris kibocsátásának. Ezután való hozzáférés egyes bitek, bonnetic műveletek alkalmazásával (shift, maszkolás, stb.)

Visszajelzés nyírási nyilvántartás ( FSR. ) két részből áll: váltási nyilvántartás és visszajelzés funkciók .

Hiba: A hivatkozási forrás nem található) a bitek sorozata. Ha el kell távolítania a bitet, a Shift Regisztráció összes bitje jobbra 1 pozícióra vált. Az új extrém bal bit a visszajelzési funkció értéke a nyilvántartás többi részéből. Időszak a SHIFT REGISZTRÁCIÓ A REPETION elindulása előtt a kapott szekvencia hossza.

A visszajelzéssel ellátott nyírási nyilvántartás legegyszerűbb típusa lineáris nyírási nyilvántartás visszajelzéssel (LFSR.Bal. Visszacsatolás Váltás. Regisztráció) (Hiba: hivatkozási forrás nem található). A visszajelzés egy simxorect bit bit eGestice, a listák listáját nevezik sorrendig.

n.-Bitfs lehet az egyikben 2 n. -1 belső államok. Ez azt jelenti, hogy elméletileg egy ilyen nyilvántartás egy pszeudo-véletlen szekvenciát generálhat egy periódussal 2 n. -1 bitek. A számos belső állapotai és az idő megegyezik, mert a nyilvántartás töltelék nullákkal vezet az a tény, hogy ez fog egy végtelen sorozata nullák, ami teljesen haszontalan. Csak bizonyos elutasított szekvenciákkal ciklikusan áthalad az összes 2 n. -1 belső államok. Suchlfsrote LFSR. Maximális időtartammal.

Annak érdekében, hogy a specifikus LFSRELL maximális időtartama, a polinom a csapszekvencia és a konstans 1 a modul primitívnek kell lennie 2 .

A polinom primitivitásának kiszámítása meglehetősen bonyolult matematikai feladat. Ezért vannak olyan kész asztalok, amelyek biztosítják a maximális generátori időszakot biztosító csapszekvenciák számát. Például egy 32 bites váltás regiszterre, találsz ilyen bejegyzést: (32,7,5,3,2,1,0) . Ez azt jelenti, hogy egy új bit létrehozása, szükség van egy Xorprix funkcióra harminc másodperc, hetedik, ötödik, harmadik, második és első bit.

Az ilyen LFSR kódja a C ++ nyelv:

// bármilyen érték nulla mellett

Shiftregister \u003d (((Shiftregister \u003e\u003e 31)

^ (Shiftregister \u003e\u003e 6)

^ (Shiftregister \u003e\u003e 4)

^ (Shiftregister \u003e\u003e 2)

^ (Shiftregister \u003e\u003e 1)

^ Shiftregister)

& 0x00000001)<<31)

| (Shiftregister \u003e\u003e 1);

visszatérés Shiftregister & 0x00000001;

Programalkalmazások LFSRD lassúak és gyorsabb, ha meg vannak írva összeállító, és nem a S. Az egyik megoldás az, hogy a párhuzamos 16-TYLFSR (vagy 32, attól függően, hogy a szó hosszúsága az építészet egy adott számítógép). Ilyen rendszerben a szavak tömbjét használják, amelynek mérete megegyezik a hosszúságú hosszúsággal, és a tömb minden egyes szavai a sajátfsárra vonatkoznak. Amennyiben ugyanazokat a számokat használják, észrevehető teljesítményt adhat.

TÓL TŐL a HAM-visszajelzés is módosítható. Ugyanakkor a generátornak nincs nagyobb titkos ellenállása, de könnyebb lesz végrehajtani a szoftvert. Ahelyett, hogy új szélsőséges bal oldali bitet generálhat a csapszekvencia bitjeinek, a csapszekvencia bitjei a generátor kimenettel és a művelet eredményével helyettesítve, majd a generátor eredménye új bal szélsőséges bitgé válik (Hiba: hivatkozási forrás nem található).

Ezt a módosítást hívják a galoah konfigurációja. A nyelvben úgy néz ki, mint ez:

statikus aláírás nélküli hosszú shiftregister \u003d 1;

void mag_lfsr (aláíratlan hosszú vetőmag)

Shiftregister \u003d mag;

iNT GALUA_LFSR (VOID)

ha (Shiftregister & 0x00000001) (

Shiftregister \u003d (Shiftregister ^ maszk \u003e\u003e 1) | 0x8000000;

Shiftregister \u003e\u003e \u003d 1;

A nyeremények abból állnak, hogy minden Xor egy műveletsel van kitöltve. Ez a rendszer párhuzamos lehet.

Önmagukban LFS jók pszeudo-véletlen sorozatok, de van néhány nemkívánatos nem véletlen tulajdonságait. A soros bitek lineárisak, ami felhasználhatatlanná teszi őket a titkosításhoz. Forlfsrlin n.a belső állapot az előző n.kimeneti bits generátor. Még ha a visszacsatolási rendszer titokban tárolódik, akkor meghatározható 2 n.a generátor kimeneti bitjei speciális algoritmusokkal. Ezenkívül erősen korrelálnak a sorban futó szekvencia bitjeinek nagy véletlenszerű számok, amelyek erősen korrelálnak, és bizonyos típusú alkalmazások nem véletlenszerűek. Ennek ellenére az LFSR-eket titkosítási algoritmusok létrehozására használják. Ehhez a SeverallFSR-t általában különböző hosszúságokkal és csapszekvenciákkal használják. A kulcs a nyilvántartások kezdeti állapota. Minden alkalommal, amikor új bitre van szükség, minden regiszter eltolódik. Ezt a műveletet hívják totáló. A kilépési bitek egy funkció, lehetőleg nemlineáris, néhány bitslfsr. Ezt a funkciót hívják kombináció, és a generátor egésze - a generátor kombinációja. Ezeknek a generátoroknak sokan biztonságosak.

Lineáris visszajelzési váltás regiszter (RSLO, angol. lineáris visszajelzési váltás regiszter, LFSR) - A bitszó eltolódási nyilvántartása, amely a bemeneti (mozgatható) bit értéke megegyezik a lineáris bika funkcióval a regiszter maradt bitjeinek értékével a váltás előtt. Szervezhető mind a szoftver, mind a hardver. A bitek pszeudo-véletlen szekvenciáinak létrehozására szolgál, amelyek különösen a titkosításban találhatók.

Leírás

A hardveres implementációk regisztervezérlését a Shift Pulse (egyébként hívott) takhov vagy szinkropulzus) Minden sejten. A szoftverek megvalósításainak nyilvántartáskezelését a ciklus végzi. A ciklus minden egyes iterációjában a visszacsatolási funkció kiszámításra kerül, és a szó bit eltolódása történik.

Működés elve

Lineáris komplexitás

Korrelációs függetlenség

A generált szekvencia magas lineáris összetettségének megpróbálására a kriptográfok nem lineárisan kombinálják a több eltolási nyilvántartás kimenetét. Ebben az esetben egy vagy több kimeneti szekvenciát (vagy akár az egyes RSLOS kimeneteit) társíthat egy teljes patakhoz, és kinyílik kriptanalitics. Az ilyen sebezhetőségek alapján a hackelést hívják korrelációs nyílás. Ennek a hackelésnek a fő elképzelése, hogy felismerje a generátor származtatása és az összetevők eredményeit. Ezután figyeli a kimeneti szekvenciát, információt kaphat ezekről a közbenső következtetésekről, és így hack a generátort. Thomas Sergentaler kimutatta, hogy lehetséges pontosan meghatározni a korreláció függetlenségét, és hogy kompromisszum van a korrelációs függetlenség és a lineáris komplexitás között.

Szoftver végrehajtása

Az RSLOS szoftverei eléggé lassulnak, és gyorsabban dolgoznak, ha összeszerelőben vannak írva. Az egyik megoldás 16 RSLOS (vagy 32-es párhuzamos), a számítógépes architektúrában lévő szó hosszától függően). Ilyen rendszerben a szavak tömbjét használják, amelynek mérete megegyezik a Shift Regisztráció hosszával, és minden szó minden egyes tétele az RSLO-ra utal. Mivel ugyanazt a csapszekvenciát használjuk, észrevehető nyereséget adhat a generátor teljesítményében.

Fibonacci konfiguráció

Tekintsünk egy 32 bites váltási nyilvántartást. Van egy csapszekvencia. (32, 31, 30, 28, 26, 1) (elképesztő style \\ maradt (32, \\; 31, \\; 30, \\; 28, \\; 26, \\; 1 \\ jobb))))))))))). Ez azt jelenti, hogy új bit létrehozása szükséges, hogy a XOR műveletet a 31., 30., 29., 27., 25. és 0. bitek összegzéséhez szükséges. Az így kapott RSLOS maximális időtartammal rendelkezik 2 32 - 1 (DisplayStyle 2 ^ (32) -1). Az ilyen nyilvántartás kódja az SI nyelven a következő:

int lfsr_fibonacci (Void) (statikus unsigned long s \u003d 0x00000001, s \u003d (((((((s \u003e\u003e 31) ^ (s \u003e\u003e 30) ^ (s \u003e\u003e 29) ^ (s \u003e\u003e 27) ^ (s \u003e\u003e 25) ^ s) & 0x00000001)<< 31 ) | (S >\u003e 1); RETURN S & 0X00000001; )

Galua konfiguráció

Ez a generátor nem rendelkezik nagyobb kriptikai ellenállással, de növeli a teljesítményt: az összes XOR műveletet párhuzamosítással lehet végrehajtani, és nem egymás után egymás után, mint a Fibonacci konfigurációban. Ez a rendszer előadást is kap, ha felszerelt.

A 32 bit hosszúságának hossza hossza a SI nyelven a következő:

int lfsr_galois (üresség) (statikus aláírás nélküli hosszú s \u003d 0x00000001, ha (S & 0x0000000101) (s \u003d (s ^ 0x80000057 \u003e\u003e 1) | 0x80000000; visszatérő 1;) más (s \u003e\u003e \u003d 1; vissza 0;))

Érdemes megjegyezni, hogy a Galoa konfigurációban lévő LFSR_galois funkciója a Galoa konfigurációban lévő LFSR_galois funkciója körülbelül kétszer gyorsabb, mint a Fibonacci konfiguráció LFSR_Fibonaci funkciója (MS vs 2010 fordító az Intel Core I5-ben).

Egy generált szekvencia példája

Fibonacci konfiguráció

Hagyja, hogy az RSLOS meghatározza a jellemző polinomot x 3 + x + 1 (\\ Displaystyle x ^ (3) + x + 1). Ez azt jelenti, hogy a kibocsátás bitjei a 2. és a 0. és a polinom képletében lévő egység azt jelenti, hogy a 0. bit bemenet. A visszajelzési funkcióval rendelkezik S j \u003d s j - 1 ⊕ s j - 3 (\\ Displaystyle S_ (J) \u003d S_ (J-1) \\ oplus s_ (J-3)))))). Tegyük fel, hogy a váltási nyilvántartás kezdeti állapota szekvencia volt. További regisztereket mutatnak az alábbi táblázatban:

Lépésszám feltétel Generált bit
0 [0, 0, 1] (\\ DisplayStyle \\ maradt) 1
1 0
2 0
3 1
4 1
5 1
6 0
7 [0, 0, 1] (\\ DisplayStyle \\ maradt) 1

Mivel a hetedik lépésben a belső állapot visszatért az eredetihez, majd a következő lépésből kezdve a bitek visszajátszása lesz. Ez az, hogy a generált szekvencia a következő: [1, 0, 0, 1, 1, 1, 0, 1. . . ] (Displaystyle \\ maradt) (A sorrendben lévő bitek sorrendje megfelel az RSLOS generációjának sorrendjének). Így a szekvencia időtartama 7, vagyis a maximális lehetséges érték, amely a megadott polinom primitivitásának köszönhetően történt.

Galua konfiguráció

Ugyanazt a jellegzetes polinomot, azaz C 3 \u003d C 1 \u003d 1 (kimutatóstílus C_ (3) \u003d C_ (1) \u003d 1), C 2 \u003d 0 (Megjelenítésstílus C_ (2) \u003d 0). A kimeneti biten csak 1. bit van. A kezdeti állapot ugyanaz. További nyilvántartások:

Lépésszám feltétel Generált bit
0 [0, 0, 1] (\\ DisplayStyle \\ maradt) -
1 [1, 0, 0] (Displaystyle \\ maradt) 0
2 [0, 1, 1] (Displaystyle \\ maradt) 1
3 [1, 0, 1] (\\ Displaystyle \\ maradt) 1
4 [1, 1, 1] (megjelenésstílus \\ maradt) 1
5 [1, 1, 0] (\\ Displaystyle \\ maradt) 0
6 [0, 1, 0] (\\ Displaystyle \\ maradt) 0
7 [0, 0, 1] (\\ DisplayStyle \\ maradt) 1

A nyilvántartás belső állapota a hetedik lépésben visszatért az eredetihez, ezért az időszak is 7. Ellentétben a Fibonacci konfigurációval, a nyilvántartás belső nyilvántartásai kiderült, hogy a másik, de a generált szekvencia csak 4-re változik Órák: [0, 1, 1, 1, 0, 0, 0, 0, 1, 1 ,. . . ] (Displaystyle \\ maradt) (A sorrendben lévő bitek sorrendje megfelel az RSLOS generációjának sorrendjének).

Primitív polinomok létrehozása

Bitek N (\\ DisplayStyle n) Primitív polinom Időszak, 2 N - 1 (megmutatkozóstílus 2 ^ (n) -1) A primitív polinomok száma
2 x 2 + x + 1 (megjelenésstílus x ^ (2) + x + 1) 3 1
3 x 3 + x 2 + 1 (\\ Displaystyle x ^ (3) + x ^ (2) +1) 7 2
4 X 4 + x 3 + 1 (\\ Displaystyle x ^ (4) + x ^ (3) +1) 15 2
5 x 5 + x 3 + 1 (\\ Displaystyle x ^ (5) + x ^ (3) +1) 31 6
6 X 6 + x 5 + 1 (megjelenésstílus x ^ (6) + x ^ (5) +1) 63 6
7 x 7 + x 6 + 1 (\\ Displaystyle x ^ (7) + x ^ (6) +1) 127 18
8 X 8 + x 6 + x 5 + x 4 + 1 (\\ Displaystyle x ^ (8) + x ^ (6) + x ^ (5) + x ^ (4) +1) 255 16
9 X 9 + x 5 + 1 (\\ Displaystyle x ^ (9) + x ^ (5) +1) 511 48
10 X 10 + x 7 + 1 (\\ Diadystyle x ^ (10) + x ^ (7) +1) 1023 60
11 x 11 + x 9 + 1 (\\ Displaystyle x ^ (11) + x ^ (9) +1) 2047 176
12 x 12 + x 11 + x 10 + x 4 + 1 (\\ Displaystyle x ^ (12) + x ^ (11) + x ^ (10) + x ^ (4) +1) 4095 144
13 x 13 + x 12 + x 11 + x 8 + 1 (\\ Displaystyle x ^ (13) + x ^ (12) + x ^ (11) + x ^ (8) +1) 8191 630
14 x 14 + x 13 + x 12 + x 2 + 1 (\\ Displaystyle x ^ (14) + x ^ (13) + x ^ (12) + x ^ (2) +1) 16383 756
15 x 15 + x 14 + 1 (\\ Displaystyle x ^ (15) + x ^ (14) +1) 32767 1800
16 x 16 + x 14 + x 13 + x 11 + 1 (\\ Displaystyle x ^ (16) + x ^ (14) + x ^ (13) + x ^ (11) +1) 65535 2048
17 X 17 + x 14 + 1 (\\ Displaystyle x ^ (17) + x ^ (14) +1) 131071 7710
18 X 18 + x 11 + 1 (\\ Displaystyle x ^ (18) + x ^ (11) +1) 262143 7776
19 x 19 + x 18 + x 17 + x 14 + 1 (\\ Displaystyle x ^ (19) + x ^ (18) + x ^ (17) + x ^ (14) +1) 524287 27594
20 - 168
2 - 786, 1024, 2048, 4096

Előnyök és hátrányok

Előnyök

  • az RSLOS (például a streaming cifhers) alapján létrehozott kriptográfiai algoritmusok nagy sebessége;
  • csak az egyszerű bites műveletek és szorzás használatát, amelyet szinte minden számítástechnikai eszközben alig hajtanak végre;
  • jó kriptográfiai tulajdonságok (az RSLOS nagy statisztikai tulajdonságokkal rendelkező nagy szekvenciát generálhat);
  • szerkezetének köszönhetően az RSLOS könnyen elemezhető algebrai módszerekkel.

hátrányok

A generált szekvenciák kriptátorának javítására

Generátorok többszörös műszakos regiszterekkel

Az ilyen típusú generátor több műszakos regiszterből áll, lineáris visszajelzést, amely biteket generál x 1, i, x 2, i, ..., x m, i (\\ displaystyle x_ (1, i), \\; x_ (2, i), \\; dots, \\; x_ (m, i))) illetőleg. Ezután a generált biteket néhány logikai funkcióval átalakítják. f (x 1, i, x 2, i, ..., xm, i) (\\ displaystyle f (x_ (1, i), \\; x_ (2, i), \\; \\ dots, \\; x_ ( m, i)))))). Meg kell jegyezni, hogy az ilyen típusú regiszterek generátorai L i (megmutatkozóstílus l_ (i)), i \u003d 1, 2, ..., m (\\ displaystyle i \u003d 1, \\; 2, \\; dots, \\; m), Kölcsönösen egyszerű.

A generátor időtartama egyenlő T \u003d (2 l 1 - 1) ⋅ (2 l 2 - 1) ⋯ (2 lm - 1) ≲ 2 l (2 ^ (2 ^ (l_ (1)) - 1) \\ cdot (2 ^ ( L_ (2)) - 1) \\ CDOT (2 ^ (L_ (M)) - 1) \\ lesssim 2 ^ (l)))hol L \u003d σ i \u003d 1 m l i (\\ displaystyle l \u003d \\ sum \\ limits _ (i \u003d 1) ^ (m) l_ (i)) - A sejtek teljes száma. Ennek következtében több RSLos használata növeli a generált szekvencia időtartamát egy regiszterhez képest, ami növeli a generátor kriptopaságát. Emellett növeli a generátornak megfelelő legrövidebb nyilvántartás lineáris összetettségét vagy hosszát. Az ilyen nyilvántartás a Berlekmpa - Massey algoritmus segítségével történik a generált szekvenciához. A legjobb, a hossza arányos a generált szekvenciával.

Generátorok nemlineáris transzformációkkal

Az ilyen generátor szerkezeti diagramja nem különbözik az előző generátor diagramjától. A fő különbség az, hogy a konverziós eszköz nemlineáris tejfunkcióra van állítva f (x 1, x 2, ..., x m) (futystyle f (x_ (1), x_ (2), \\ pontok, x_ (m)))))). Ilyen függvényként például egy polinomiális Zhegalkyne (a Theorem Zhegalkin szerint, minden logikai funkció csak a Zhegalkin polinom által képviselhető).

A nemlineáris generátor is megvalósítható a nyírási nyilvántartás nemlineáris visszajelzéssel. Adhat 2 2 L - 1 - L (DisplayStyle 2 ^ (2 ^ (l-1) -l)))))) A maximális időtartam szekvenciáinak változata, amely több mint RSLOS.

A generátor kriptopostja növekszik a használt funkció nemlinearitásának köszönhetően. Annak meghatározása, hogy az állapota a nyilvántartások a generált bitsorozat egy bonyolult matematikai feladat, mert nem ismert, az algoritmust, amely visszaállítja a kezdeti állapot.

Ezt a módszert alkalmazzák például a hepfa generátor és generalizált hethf generátor, azonban az ilyen generátorok lehet feltört korreláció nyíláson.

Generátorok, amelyek különböző tapintásúak a Shift regiszterekhez

Generátor "stop-go"

Generátor "stop-go" (Eng. Stop-and-go, mindkét-Piper) az RSLos-1 visszavonását használja az RSLO-2 órafrekvenciának vezérléséhez, hogy az RSLOS-2 időben megváltoztassa az állapotát, csak akkor, ha a kimenet Az idő múlásával az RSLOS-1 egyenlő egység volt. Ez a rendszer nem ellenállt a korrelációs nyílás előtt.

A krémpolitika növelése érdekében javasolták váltakozó generátor "stop-sétált". Három különböző hosszúságú Shift regisztert használ. Itt a RSLOs-1 kezeli az órajel a 2. és 3. nyilvántartások, azaz a RSLOS-2 állapotot vált, amikor a kimenet a RSLOS-1 egyenlő egy, a RSLOS-3 -, amikor a kimenet Az RSLOS-1 nulla. A generátor kimenete az RSLOS-2 és az RSLOS-3 modul moduljának hozzáadása. Ez a generátor hosszú idővel és nagy lineáris komplexitással rendelkezik. Van egy módszer az RSLOS-1 korrelációs megnyitására, de ez nem gyengíti a generátor kriptográfiai tulajdonságait.

A bonyolult óra rendszert használják kétoldalú generátor "Stop-sétált"amely ugyanazon hosszúságú 2 eltolási nyilvántartást használ. Ha az RSLOS-1 kimenete egy bizonyos időpontban T I - 1 (megmutatkozóstílus T_ (I-1)) - az egység, akkor az RSLOS-2 nem az idő időpontjában van T i (megmutatkozóstílus t_ (i)). Ha az RSLOS-2 kimenete időben T I - 1 (megmutatkozóstílus T_ (I-1)) nulla, és az idő időpontjában T I - 2 (Megjelenítésstílus T_ (I-2)) - egység, és ha ez a regiszter az idő múlásával órája van T i (megmutatkozóstílus t_ (i)), Ugyanakkor az RSLOS-1 nem órajel. Ennek a rendszernek a lineáris összetettsége megközelítőleg megegyezik a generált szekvencia időszakával.

Önfelszívó generátor

Többsebességű generátor belső munkával

Ez a generátor két RSLOS-1 és RSLO-2 shift regisztert használ. Rcllo-2 óra frekvencia be D (DisplayStyle d) Még egyszer, mint az RSLOS-1. Ezeknek a regisztereknek bizonyos bitjei egymással és működéssel szorozódnak. A szorzások eredményeit a XOR művelet összegzi, és a kimeneti szekvenciát kapjuk. Ez a generátor magas lineáris komplexitást és jó statisztikai tulajdonságokkal rendelkezik. Az állapotát azonban meghatározhatja a hosszúsítási sorrendben L 1 + l 2 + log 2 \u2061 d (\\ Displaystyle L_ (1) + L_ (2) + \\ Nap _ (2) (d))hol L 1 (kijelzőstílus L_ (1)) és L 2 (megmutatkozóstílus L_ (2)) - az RSLOS-1 és az RSLOS-2 hossza, és D (DisplayStyle d) - az óra frekvenciájuk aránya.

Hallmanna kaszkádja

Ez a rendszer a "STOP-SENDINT" generátor javított verziója. A PCLOS szekvenciából áll, amelyek mindegyikét az előző RSLOS kezeli. Ha az RSLOS-1 kimenete időben T i (megmutatkozóstílus t_ (i)) 1, akkor az RSLOS-2 óra van. Ha az RSLOS-2 kimenete az idő múlásával T i (megmutatkozóstílus t_ (i)) Az 1, akkor az RSLOS-3 óra, és így tovább. Az utolsó RSLOS kimenete a generátor kimenete. Ha az összes RSLOS hossza azonos és egyenlő L (Displaystyle L)Ezután a rendszer időtartama M (DisplayStyle m) Az RSLOS egyenlő (2 l - 1) m (megmutatkozóstílus (2 ^ (l) -1) ^ (m)))és lineáris komplexitás - L (S) \u003d L (2 L - 1) m - 1 (\\ Diadystyle l (s) \u003d l (2 ^ (l) -1) ^ (m-1)) .

Ez az elképzelés egyszerű, és használható olyan szekvenciák létrehozására, amelyek hatalmas időszakokkal, nagy lineáris nehézségekkel és jó statisztikai tulajdonságokkal rendelkeznek. De sajnos érzékenyek a megnyitásra, hívják zárt (ENG. LOCK-IN) Mikor

A Shear Regiszterek szekvenciáit a kriptográfiában és a kódoló elméletben használják. Elméletük tökéletesen kidolgozott, a Shear Regiszterek alapján a rejtvények streamingje a katonai kriptográfia munkája volt, az elektronika megjelenése előtt.

A visszajelzési váltott regiszter két részből áll: Shift Register és visszacsatolási funkció (1.2.1. Ábra). A Shift Regisztráció a bitek sorrendje. (A bitek száma határozza meg a hossza a shift regiszter. Ha a hossz N bit, a nyilvántartás nevezzük N-bites léptető regiszter.) Ha el kell távolítania a kicsit, az összes bit léptető regiszter váltás az 1 álláspontra. Az új szélsőséges bal bit a regiszter minden más bitje. A nyírási regiszter kimenetén kiderül, általában a fiatalabb jelentést, kicsit. A váltási nyilvántartás időtartamát a kapott szekvencia hosszának nevezik, mielőtt ismétlést indít.

Ábra. 1.2.1.

A kriptográfusok kedvelték a Shear Regiszterekre alapozva: könnyen megvalósíthatók digitális berendezések segítségével. Én csak kissé szakadt a matematikai elméleten. 1965-ben Ernst Selmer (Ernst Selmer), a norvég kormány fő titkosítása kifejlesztette a nyírási nyilvántartások sorozatának elméletét. Salamon Golomb (Solomon Golomb), NSA matematika írt egy könyvet, amely meghatározza néhány eredményét és eredményeit a Selmer.

A visszajelzéssel ellátott váltási nyilvántartás legegyszerűbb típusú lineáris visszacsatolási nyilvántartás (lineáris visszajelzési váltás vagy LFSR) (1.2.2. Ábra). A visszajelzés egyszerűen xor, néhány bit bit, ezeknek a biteknek a listája csapszekvezésnek nevezik. Néha egy ilyen nyilvántartást fibonaci konfigurációnak nevezik. Az LFSR-elemzés visszacsatolási sorrendjének köszönhetően meglehetősen kifejlesztett matematikai elméletet használhat. A kriptográfusok szeretik elemezni a szekvenciákat, meggyőzni magukat, hogy ezek a szekvenciák elég véletlenszerűek. Az LFSR-t gyakrabban használják a kriptográfiai nyilvántartásokban.


Ábra. 1.2.2.

Ábrán. 1.2.3 A 4 bites LFSR-t mutatja az első és a negyedik bitből. Ha az 1111-es értéket inicializálja, akkor az ismétlés előtt a nyilvántartás a következő belső állapotokat veszi:

Ábra. 1.2.3. négy

A kimeneti szekvencia a junior jelentős bitek karakterlánca lesz:

1 1 1 1 0 1 0 1 1 0 0 1 0 0 0....

az N-bit LFSR a 2 N-1 belső állapot egyikében lehet. Ez azt jelenti, hogy elméletileg egy ilyen nyilvántartás egy pszeudo-véletlen szekvenciát generálhat 2 N-1 bites időtartammal. (A szám a belső állapotai és az időszak 2N-1, mert a töltelék LFSR nullák eredményez léptetőregiszter termelni végtelen szekvenciája nullák, ami teljesen használhatatlan.) Csak bizonyos diverzifikált LFSR szekvenciák ciklikusan mind a 2n-1 belső állapot. Az ilyen LFSRS LFSR a maximális időtartammal. Az így kapott eredményt az M-szekvencia nevezik.

Annak érdekében, hogy a specifikus LFSR-nek maximális időtartama legyen, a csapszekvencia és az 1-es konstans által kialakított polinomnak primitívnek kell lennie a 2. modul által. A polinom mértéke a váltási nyilvántartás hossza. Primitív polinomfok n irreducibilis polinom, amely egy térelválasztó, de nem egy kereskedő XD + 1 az összes D, amelyek osztója 2N-1.

Általában nincs egyszerű módja annak, hogy primitív polinomok egy adott mértékben modult 2. A legegyszerűbb módja, hogy válasszon egy polinom, hogy véletlenszerűen, és ellenőrzi, hogy primitív. Nem könnyű - és valami, mint egy csekk, akár egy egyszerű véletlenszerűen kiválasztott szám - de sok matematikai programcsomag képes megoldani egy ilyen feladatot.

Néhány, de természetesen nem minden, különböző fokú polinomok, primitív modulo 2. Például a felvétel (32, 7, 5, 3, 2, 1, 0) azt jelenti, hogy a következő polinom primitív a 2. modul:

x32 + X7 + X5 + X3 + X2 + X + 1

Ez könnyen generalizálható az LFSR számára, maximális időtartammal. Az első szám az LFSR hossza. Az utolsó szám mindig 0-nak van, és elhagyható. Minden szám, a 0 kivételével állítsa be az eltávolítási sorozatot a Shift Regisztráció bal szélétől. Vagyis a kevésbé végzett polinom tagjai a nyilvántartás jobb széléhez közelebb álló pozícióknak felelnek meg.

Folytatva például felvétel (32, 7, 5, 3, 2, 1, 0) azt jelenti, hogy az új kis 32-bites léptető regiszter van egy új bitet generál XOR harminc másodperc, a hetedik, az ötödik, a harmadik, a második és a első bitek. A kapott LFSR maximális hosszúságú, ciklikusan áthalad, amíg 232-1 értékek után ismétlődik.



Tetszett a cikket? Oszd meg