Kontakty

Register s lineárnou spätnou väzbou C. Teoretický základ práce. Aké sú sekvencie vytvorené registremi posunu

Sekvencia regercov strihu sa používajú v kryptografoch a na teórii kódovania. Ich teória dokonale vypracovala, streamovala šifry na základe registre šmykových registrov boli pracovný kôň vo vojenskej kryptografie dlho predtým, ako sa objavuje elektronika.

Register spätnej väzby (ďalej len RSHSO) pozostáva z dvoch častí: Shift Register a Funkcie spätnej väzby. Register Shift je sekvencia bitov. Stanoví sa počet bitov register s dĺžkouAk je dĺžka n bity, potom sa zavolá register n-bitový posun register. Kedykoľvek budete potrebovať odstrániť bit, všetky bity posunu registračného posunu vpravo do 1 polohy. Nový extrémny ľavý bit je funkcia všetkých ostatných bitov registra. Na výstupe šmykového registra sa objavuje jeden, zvyčajne mladší význam, bit. Obdobie registra posunu Nazýva sa dĺžka výslednej sekvencie pred začatím opakovania.

Obrázok 1. Register spätnej väzby

Registre Shift veľmi rýchlo zistili použitie streamovacích šipičiek, pretože sa ľahko implementujú pomocou digitálneho zariadenia. V roku 1965, Ernst Selmer (Ernst Selmer), hlavná kryptografia nórskej vlády, vyvinula teóriu sekvencie strihových registrov. Solomon Golomb (Solomon Golomb), matematika NSA, napísal knihu, ktorá stanovila niektoré z jeho výsledkov a výsledky Selmer. Najjednoduchší pohľad na register posunu spätnej väzby je lineárny spätný posun register (lineárny spätný posun registra, potom LFSR alebo RGSSLOS). Spätná väzba takýchto registrov je jednoducho xor (pridanie dvoch modulo) niektorých bitov registra, zoznam týchto bitov sa nazýva kohútik. Niekedy sa takýto register nazýva fibonaci konfigurácia. Vzhľadom na jednoduchosť spätnej sekvencie môže byť pomerne vyvinutá matematická teória použitá na analýzu RSSLOS. Po analýze prijatých výstupných sekvencií sa môžete uistiť, že tieto sekvencie sú úplne náhodné. RSSKSLOS sa používa častejšie ako iné šmykové registre v kryptografii.


Obrázok 2. RSSKSLOS FibBonaches

Vo všeobecnom prípade môže byť N-bit RGSSLOS v jednom z n \u003d 2 N-1 vnútorných stavov. To znamená, že teoreticky takýto register môže generovať pseudon-náhodnú sekvenciu s obdobím T \u003d 2 N-1 bitmi. (Počet vnútorných štátov a obdobie sú n \u003d t max \u003d 2 n-1, pretože vyplnenie RSSHLOS ZEROU bude mať za následok, že register Shift bude produkovať nekonečný sekvenciu nuly, čo je absolútne k ničomu). Iba s určitými zamietnutými sekvenciami RSSLO budú cyklicky prostredníctvom všetkých 2 n -1 vnútorných štátov, také RSSSLOS sú RSSKSLOS s maximálnym obdobím. Výsledný výsledok sa nazýva M-sekvencia.

Príklad . Nižšie uvedený obrázok zobrazuje 4-bitové RGSSLOS s kohútikom z prvých a štvrtých bitov. Ak sa inicializuje hodnotou 1111, potom pred opakovaním bude register vykonať tieto interné štáty:

Shift Trakt (vnútorný stav)

Zaregistrujte sa stav

Výstupný bit

Počiatočný význam

15 (návrat do pôvodného stavu)

16 (opakované stavy)

Výstupná sekvencia bude reťazec mladších významných bitov: 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 s obdobím T \u003d 15, celkový počet možných vnútorných stavov (okrem nuly), n \u003d 2 4 -1 \u003d 16-1 \u003d 15 \u003d Tmax, preto je výstupná sekvencia M-sekvencia.

Aby sa špecifické RSSKSLOS mali maximálne obdobie, polynóm, vytvorený z kohútnej sekvencie a konštantu 1, by mal byť primitívny modulmi 2. Polynóm je reprezentovaný ako množstvo stupňov, napríklad polynóm stupňa n Páči sa ti to:

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 kde. i. \u003d (0,1) pre I \u003d 1 ... n a X I - označuje vypúšťanie.

Stupeň polynómu je dĺžka registra posunu. Primitívny polynómový stupeň n je neredukovateľným polynómom, ktorý je delič X 2N? 1 +1, ale nie je delič X D +1 pre všetky D, ktoré sú rozdeľovače 2 n-1. Zodpovedajúca matematická teória možno nájsť v.

Všeobecne platí, že nie je jednoduchý spôsob, ako generovať primitívne polynómy daného titulu modulom 2. Najjednoduchší spôsob, ako zvoliť polynóm na náhodne a skontrolovať, či je primitívny. Nie je to jednoduché a niečo ako kontrola, či je to jednoduché náhodne zvolené číslo - ale mnohé balíky matematických programov sú schopné vyriešiť takú úlohu.

Niektoré, ale, samozrejme, nie všetky, polynómy rôznych stupňov, primitívne modul 2, sú uvedené neskôr. Napríklad, písanie

(32, 7, 5, 3, 2, 1, 0) znamená, že ďalší polynóm je primitívny pre modul 2: x 32 + x 7 + x 5 + x 3 + x 2 + x + 1.

To možno ľahko zhrnúť pre RSSSLOS s maximálnym obdobím. Prvé číslo je dĺžka RSSSLOS. Posledné číslo je vždy rovné 0 a dá sa vynechať. Všetky čísla, s výnimkou 0, nastavte odstraňovaciu sekvenciu počítanie z ľavého okraja registra posunu. To znamená, že členovia polynómu s menším stupňom zodpovedajú polohám bližšie k pravému okraju registra.

Pokračujúci príklad, nahrávanie (32, 7, 5, 3, 2, 1, 0) znamená, že nový bit 32-bitového registračného registra má nový bit, je generovaný pomocou XOR Tridsiateho sekundy, siedmeho, piateho, tretieho, druhého a Prvé bity. Výsledné Rslos bude mať maximálnu dĺžku, cyklicky prechádzajúc na opakovanie po 2 32 -1 hodnotách.


Obrázok 4. 32-bitové RGSLOS s maximálnou dĺžkou

Zvážte program RSSLOS program, v ktorom je sekvencia TAP charakterizovaná polynómom (32, 7, 5, 3, 2, 1, 0). V jazyku C vyzerá nasledovne:

statické nepodpísané dlhé shiftregister \u003d 1;

/ * Všetky okrem 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);

return ShifTregister & 0x00000001;)

Ak je register Shift dlhší ako počítačové slovo, kód je komplikovaný, ale nie moc. Doplnok B poskytuje tabuľku niektorých primitívnych polynómov v module 2, bude ho v budúcnosti použiť na identifikáciu niektorých vlastností týchto polynómov, ako aj pri implementácii softvéru na nastavenie sekvencie kohútika.

Treba poznamenať, že všetky prvky tabuľky sú nepárny počet koeficientov. Taký dlhý stôl je uvedený na ďalšiu prácu s RSSSLO, pretože RSSLLOS sa často používa na kryptografie so streamovacími šiframi a v pseudo-náhodných číselných generátoroch. V našom prípade môžete použiť polynómia so starším stupňom najviac sedem.

Ak je p (x) primitívne, potom primitívne a x n p (1 / x), takže každý prvok tabuľky skutočne definuje dve primitívne polynómy. Napríklad, ak (A, B, 0) je primitívny, potom primitívny a (A, A-B, 0). Ak je primitívny (A, B, C, D, 0) primitívny a (A, A-D, A-C, A-B, 0). Matematicky:

ak je primitívny x A + X B +1, potom primitívny a X A + X A-B +1,

ak je primitívny x A + X B + X C + X D +1, potom primitívny a X A + X A-D + X A-C + X A-B +1. Rýchlejšie je programovo implementované primitívnym trojmetrom, pretože na generovanie nového bitu je potrebné vykonať iba dve bity registra posunu (nulový termín sa neberie do úvahy, tj x 0 \u003d 1, pozri príklad uvedený vyššie) . Všetky zdroje polynómy zobrazené v tabuľke sú vzácne, to znamená, že majú nejaké koeficienty. Odmeny vždy predstavujú zdroj slabosti, ktorý je niekedy dostatočný na otvorenie algoritmu. Pre kryptografické algoritmy je oveľa lepšie používať husté primitívne polynómy, tých, ktorých mnoho koeficientov. Použitie hustých polynómov, najmä ako súčasť kľúča, môžete použiť výrazne kratšie Rslos.

Generovanie hustých primitívnych polynómov v module 2 nie je ľahké. Všeobecne, na generovanie primitívnych polynómov stupňa K, je potrebné poznať rozklad na multiplikátoroch čísla 2 K -1.

Samozrejme, RSSllos je dobrými pseudo-náhodnými sekvenciami generátorov, ale majú nejaké nežiaduce nehodné (deterministické) vlastnosti. Sériové bity sú lineárne, čo z nich robí zbytočné pre šifrovanie. Pre Interný stav RSSLOS LONE N je predchádzajúci N výstupné bity generátora. Aj keď je schéma spätnej väzby uložená tajne, môže byť určená 2N výstupnými bitmi generátora pomocou vysoko efektívneho algoritmu Berlekamp-Massey.

Okrem toho, veľké náhodné čísla generované pomocou bitov tejto sekvencie bežiacej v rade sú silne korelované a pre niektoré typy aplikácií nie sú vôbec náhodné. Napriek tomu sa RSSLLOS často používa na vytvorenie šifrovacích algoritmov ako komponentov systémov a šifrovacích algoritmov.

Najjednoduchším zobrazením funkcie spätnej väzby je lineárna funkcia, napríklad súčet modulu 2 obsahu určitých vypúšťaní. Takýto register sa nazýva lineárny register spätnej rady (lineárny spätný posun register, skrátený LFSR). Vo všeobecnom prípade je funkcia lineárnej spätnej väzby definovaná vzorcom. Tu c K.\u003d 1, ak k.Zvuk sa používa v Funkcii spätnej väzby a c K.Inak. Symbol å označuje pridanie modulu 2 (s výnimkou alebo).

Zvážte napríklad LFSR s funkciou spätnej väzby (pozri obrázok).

Ak je počiatočný stav registra 1111, potom v nasledujúcich hodinách, bude mať tieto štáty: 1111, 0111, 1011, 0101, 1010, 1101, 0110, 0011, 1001, 0100, 0010, 0001, 1000, \\ t 1100, 1110, 1111, ...

Výstupná sekvencia je vytvorená z mladšieho (extrémneho pravým) registra. Bude to vyzerať takto: 1 1 1 1 0 1 0 1 1 0 0 1 0 0 0 1. Je vidieť, že generovaná bitová sekvencia je úplne určená počiatočným stavom funkcie registra a spätnej väzby. Vzhľadom k tomu, že počet všetkých druhov registračných štátov je samozrejme (je rovný 2 L.), skôr alebo neskôr, postupnosť kľúčov sa začne opakovať. Maximálna dĺžka neintegrujúcej časti sekvencie kľúča sa nazýva jeho obdobie. T.. Obdobie závisí od funkcie spätnej väzby. Maximálne možné obdobie je rovnaké T. Max \u003d 2. L.-1 (register berie všetky možné stavy okrem 0000 ... 0). Výstupná sekvencia LFSR má maximálnu dobu M-sekvencia.

Ak chcete zistiť podmienky, za ktorých bude mať LFSR maximálne obdobie, funkcie spätnej väzby sú usporiadané s charakteristickým polynómovým. Register uvedený vyššie ako príklad zodpovedá polynómu. Teoretická analýza ukazuje, že LFSR bude mať maximálne obdobie a len vtedy, ak polícia P. \\ t(x.) je primitívny. Nižšie sú uvedené niektoré primitívne polynómy odporúčané na použitie v praxi. Tabuľka ukazuje stupeň premennej x.v zázname polynómu. Napríklad nahrávanie (31, 3) zodpovedá polynómu.

P. \\ t(x.) P. \\ t(x.) P. \\ t(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)


Spočiatku boli LFSR navrhnuté pre implementáciu hardvéru vo forme sady digitálnych obvodov. Implementácie softvéru LFSR zvyčajne strácajú rýchlosť hardvéru. Ak chcete zvýšiť rýchlosť, stav registra je ziskový skladovať vo forme celku L.-Roro-číslo, ktorého jednotlivé bity zodpovedajú binárnemu vypúšťaniu registra. Potom sa používajú na prístup k jednotlivým bitom, používajú sa bonnetické operácie (posun, maskovanie atď.).

Register Shear Feedback ( FSR. ) pozostáva z dvoch častí: register posunu a funkcie spätnej väzby .

Chyba: Referenčný zdroj sa nenašiel) je sekvencia bitov. Keď potrebujete odstrániť bit, všetky bity posunu registračného posunu vpravo do 1 polohy. Nový extrémny ľavý bit je hodnota funkcie spätnej väzby zo zvyšku bitov registra. Obdobie register Shift sa nazýva dĺžka výslednej sekvencie pred začiatkom opakovania.

Najjednoduchší typ šmykového registra so spätnou väzbou je lineárny šmykový register so spätnou väzbou (LFSR.Vľavo. Spätná väzba Posunúť. Registrovať) (Chyba: Referenčný zdroj sa nenašiel). Spätná väzba je simxorect bit bitov zmes týchto bitov sa volá do sledu.

n.-Bitfs môže byť umiestnený v jednom z 2 n. -1 vnútorné štáty. To znamená, že teoreticky takýto register môže generovať pseudon-náhodnú sekvenciu s obdobím 2 n. -1 bity. Počet vnútorných štátov a obdobie je rovnaké, pretože register plnenie nulami povedie k tomu, že bude produkovať nekonečný postupe nuly, čo je absolútne k ničomu. Len s určitými odmietnutými sekvenciamiLFSCC cyklicky prechádza všetkými 2 n. -1 vnútorné štáty. Suchéfsrote LFSR. S maximálnym obdobím.

Aby bolo špecifické maximálne obdobie LFSRELL, polynóm vytvorený z kohútikovej sekvencie a konštantu 1 musí byť primitívny modul 2 .

Výpočet primitívnosti polynómu je pomerne komplikovaná matematická úloha. Preto existujú pripravené tabuľky, ktoré poskytujú čísla sekvencií ťuknutia, ktoré zabezpečujú maximálny čas generátora. Napríklad pre 32-bitový register posunu môžete nájsť takýto záznam: (32,7,5,3,2,1,0) . To znamená, že na generovanie nového bitu je potrebné použiť funkciu Xorprix Thirty-sekundu, siedmeho, piaty, tretieho, sekundy a prvých bitov.

Kód pre takýto LFSR je jazyk C ++ bude:

// Akákoľvek hodnota okrem nuly

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);

return ShifTregister & 0x00000001;

Softvérové \u200b\u200bimplementácie LFSRD sú pomalé a rýchlejšie, ak sú napísané na assembler, a nie na S. Jedným riešením je použitie paralelného 16-TylFSR (alebo 32, v závislosti od dĺžky slova v architektúre konkrétneho počítača). V takomto schéme sa používa pole slov, ktorých veľkosť je rovná dĺžkam, a každé slová yitov poľa sa vzťahuje na jeho vlastný. Za predpokladu, že sa používajú rovnaké čísla, môže dôjsť k výraznému zvýšeniu výkonu.

Z spätná väzba šunky môže byť tiež upravená. V rovnakej dobe, generátor nebude mať väčšiu kryptickú odolnosť, ale bude jednoduchšie implementovať softvér. Namiesto použitia na generovanie nového extrémneho ľavého kúsky bitov kohútikovej sekvencie, bity kohútikovej sekvencie s výstupom generátora a nahradením výsledkom tejto akcie, potom výsledok generátora sa stáva novým ľavým extrémnym bitom (Chyba: Referenčný zdroj sa nenašiel).

Táto modifikácia sa nazýva konfigurácia Galoah. V jazyku to vyzerá takto:

statické nepodpísané dlhé shiftregister \u003d 1;

void Seed_LFSR (Usported dlhé semeno)

ShifTregister \u003d semeno;

iNT GALUA_LFSR (VOID)

ak (ShifTregister & 0x00000001) (

ShifTregister \u003d (ShifTregister ^ Mask \u003e\u003e 1) 0x8000000;

ShifTregister \u003e\u003e \u003d 1;

Výhry sa skladajú, že všetky Xors sú naplnené jednou operáciou. Tento systém môže byť tiež paralelný.

V sebe sú LFS dobré v pseudo-náhodných sekvenciách, ale majú nejaké nežiaduce nehodné vlastnosti. Sériové bity sú lineárne, čo z nich robí zbytočné pre šifrovanie. FORLFSRDLIN n.vnútorný stav je predchádzajúci n.výstupný generátor bitov. Aj keď je schéma spätnej väzby uložená tajne, môže byť určená 2 n.výstupné bity generátora so špeciálnymi algoritmami. Okrem toho veľké náhodné čísla generované pomocou bitov tejto sekvencie bežiacej v rade sú silne korelované a pre niektoré typy aplikácií nie sú náhodné. Napriek tomu sa LFSRS používajú na vytvorenie šifrovacích algoritmov. Na tento účel sa SeverallFSR používajú, zvyčajne s rôznymi dĺžkami a číslami sekvencií ťuknutia. Kľúčom je počiatočný stav registrov. Zakaždým, keď je potrebný nový bit, všetky registre sú posunuté. Táto operácia sa nazýva príťažlivý. Výstupné bity je funkcia, výhodne nelineárna, niektoré BITSLFSR. Táto funkcia sa nazýva kombinujúcia generátor ako celok - kombinujúci generátor. Mnohí z týchto generátorov sú doteraz bezpečné.

Lineárna spätná väzba (RSLO, anglicky. lineárna spätná väzba, LFSR) - posuvný register bitového slova, ktorý má hodnotu vstupu (pohyblivý) bit rovný lineárnym býkom funkcie na hodnotách zostávajúcich bitov registra pred posunom. Je možné organizovať softvér aj hardvér. Používa sa na generovanie pseudo-náhodných sekvencií bitov, ktoré nájde použitie, najmä v kryptografie.

Popis

Kontrola registra v hardvérových implementáciách sa vykonáva dodávkou pulzu (inak takhov alebo synchronizovať) Na všetkých bunkách. Riadenie registra v softvérových implementáciách vykonáva cyklus. Pri každej iterácii cyklu sa vypočíta funkcia spätnej väzby a vykoná sa bitový posun v Slove.

Princíp prevádzky

Lineárna zložitosť

Nezávislosť korelácie

Snažím sa získať vysokú lineárnu zložitosť generovanej sekvencie, kryptografy sú nelineárne kombinované výstupy niekoľkých registrov posunu. V tomto prípade môže byť jedna alebo viac výstupných sekvencií (alebo dokonca výstupov jednotlivých RSLOS) spojená s celkovým prúdom a otvorený s kryptanalitikou. Hacking na základe takýchto chýb otvorenie korelácie. Hlavnou myšlienkou tohto hackingu je zistiť určitú koreláciu medzi odvodením generátora a zisteniami jeho komponentov. Potom, pozorovanie výstupnej sekvencie, môžete získať informácie o týchto medziľahlých záveroch, a tak hackovať generátor. Thomas Sergentler ukázal, že je možné presne definovať nezávislosť korelácie a že existuje kompromis medzi korelačnou nezávislosťou a lineárnou zložitosťou.

Implementácia softvéru

Softvérové \u200b\u200bimplementácie RSLOS sú dosť pomalé a pracujú rýchlejšie, ak sú napísané v Assembler. Jedným z riešení je paralelné použitie 16 RSLOS (alebo 32s, v závislosti od dĺžky slova v architektúre počítača). V takomto schéme sa používa pole slov, ktorých veľkosť sa rovná dĺžke registra posunu a každá dávka slov sa vzťahuje na jeho RSLO. Vzhľadom k tomu, rovnaký počet iskierových sekvencií sa používa, môže dôjsť k výraznému zisku v výkonnosti generátora.

Konfigurácia Fibonacci

Zvážte 32-bitový register posunu. Tam je pre ňu sekvencia kohútika. (32, 31, 30, 28, 26, 1) (Displaystyle, vľavo (32, 31, "30, 28, 26, \\ t. To znamená, že na vytvorenie nového bitu je potrebné použiť operáciu XOR na zhrnutie 31., 30., 27, 27., 25. a 0. bity. Výsledné RSLOS má maximálnu dobu 2 32 - 1 (Displaystyle 2 ^ (32) -1). Kód pre takýto register v jazyku SI je nasledovný:

int LFSR_FIBONACCI (VOID) (Static Unsignovaný dlhý 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); Návrat S & 0x00000001; )

Konfigurácia GALUA

Tento generátor nemá väčšiu kryptickú odolnosť, ale dáva zisk vo výkone: Všetky operácie XOR sa môžu uskutočniť na jednu účinku paralelizáciou, a nie postupne jeden po druhom, ako v konfigurácii Fibonacci. Táto schéma tiež poskytne zisk, keď je vybavený.

Kód pre dĺžku dĺžky dĺžky 32 bitov v jazyku SI je nasledovný:

int LFSR_GALOIS (VOUNY) (Static nepodpísaný dlhý S \u003d 0x00000001; ak (S & 0x0000000101) (S \u003d (s ^ 0x80000057 \u003e\u003e 1) 0x80000000; návrat 1;) inak (s \u003e\u003e \u003d 1; návrat 0;)

Stojí za zmienku, že cyklus fixného počtu hovorov Funkcia LFSR_GALOIS v konfigurácii GALOA je naplánovaná na približne 2-krát rýchlejšie ako funkcia LFSR_FIBONACI v konfigurácii FibonAcci (MS VS 2010 kompilátor na ITL Core I5).

Príklad generovanej sekvencie

Konfigurácia Fibonacci

Nechať RSLOS definovať charakteristické polynómové x 3 + x + 1 (displejstyle x ^ (3) + x + 1). To znamená, že bity vypúšťania bude 2. a 0. a jednotka vo vzorci polynómu znamená, že 0. bit je vstup. Funkcia spätnej väzby má výhľad S J \u003d S J - 1 ⊕ s J - 3 (Displaystyle S_ (J) \u003d S_ (J-1) OPLUS S_ (J-3)). Predpokladajme, že počiatočný stav registra posunu bol sekvenciou. Ďalšie registre sú uvedené v tabuľke nižšie:

Číslo kroku stav Vygenerovaný bit
0 [0, 0, 1] (\\ t 1
1 0
2 0
3 1
4 1
5 1
6 0
7 [0, 0, 1] (\\ t 1

Vzhľadom k tomu, že vnútorný stav v siedmom kroku sa vrátila na originálu, potom od nasledujúceho kroku bude replay bitov. To znamená, že generovaná sekvencia je nasledovná: [1, 0, 0, 1, 1, 1, 0, 1. . . ] (\\ T (Poradie bitov v sekvencii zodpovedá poradiu ich generácie RSLOS). Teda sekvenčná perióda je 7, to znamená, že maximálna možná hodnota, ktorá sa stala v dôsledku primitivity špecifikovaného polynómu.

Konfigurácia GALUA

Mať rovnaký charakteristický polynóm, to znamená C 3 \u003d C1 \u003d 1 (Displaystyle C_ (3) \u003d C_ (1) \u003d 1), C 2 \u003d 0 (Displaystyle C_ (2) \u003d 0). Na výstupnom biti je len 1. bity. Počiatočný stav je rovnaký. Ďalšie registre:

Číslo kroku stav Vygenerovaný bit
0 [0, 0, 1] (\\ t -
1 [1, 0, 0] (\\ t 0
2 [0, 1, 1] (\\ t \\ t 1
3 [1, 0, 1] (Displaystyle 1
4 [1, 1, 1] (Displaystyle 1
5 [1, 1, 0] (\\ t 0
6 [0, 1, 0] (\\ t 0
7 [0, 0, 1] (\\ t 1

Vnútorný stav registra v siedmom kroku sa vrátil do originálu, preto jeho obdobie je tiež 7. Na rozdiel od konfigurácie Fibonacci sa interné registre registra ukázali ako ostatné, ale generovaná sekvencia je len presunutá 4 Hodiny: [0, 1, 1, 1, 0, 0, 0, 0, 1, 1 ,. . . ] (\\ T (Poradie bitov v sekvencii zodpovedá poradiu ich generácie RSLOS).

Generovanie primitívnych polynómov

Bity N (Displaystyle N) Primitívny polynóm Obdobie, 2 n - 1 (Displaystyle 2 ^ (n) -1) Počet primitívnych polynómov
2 x 2 + x + 1 (Displaystyle X ^ (2) + x + 1) 3 1
3 x 3 + x 2 + 1 (displejstyle 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 (Displaystyle X ^ (6) + x ^ (5) +1) 63 6
7 x 7 + x 6 + 1 (displejstyle 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 (Displaystyle 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

Výhody a nevýhody

Výhoda

  • vysoká rýchlosť kryptografických algoritmov vytvorených na báze RSLOS (napríklad streamingovými šifrumi);
  • použitie len jednoduchého kúsku bitovej operácie a násobenia, sotva implementované v takmer všetkých počítačových zariadeniach;
  • dobré kryptografické vlastnosti (RSLOS môžu generovať veľkú sekvenciu s dobrými štatistickými vlastnosťami);
  • vďaka svojej štruktúre sa RSLOS ľahko analyzuje pomocou algebraických metód.

nevýhody

Spôsoby, ako zlepšiť kryptofóde generovaných sekvencií

Generátory s viacerými registračnými registrami

Generátor tohto typu sa skladá z niekoľkých registrov posunu s lineárnou spätnou väzbou, ktorá vytvára bity X 1, I, X 2, I, ..., X M, I (Displaystyle X_ (1, I), X_ (2, I), Dots, X_ (M, I)) resp. Ďalej vygenerované bity sú konvertované nejakou booleovou funkciou. F (X 1, I, X 2, I, ..., XM, I) (Displaystyle F (X_ (1, I), X_ (2, I), Dots, X__ ( m, i))). Treba poznamenať, že generátory tohto typu registrov L I (Displaystyle L_ (I)), i \u003d 1, 2, ..., m (Displaystyle I \u003d 1, 2, \\; Dots, M), Vzájomne sa jednoduchý.

Obdobie tohto generátora je rovnocenné T \u003d (2 l 1 - 1) ⋅ (2 L 2 - 1) ⋯ (2 lm - 1) ≲ 2 l (Displaystyle t \u003d (2 ^ (L_ (1)) - 1) CDOT (2 ^ ( L_ (2)) - 1) CDOTS (2 ^ (L_ (M)) - 1) LISTSIM 2 ^ (L))kde L \u003d σ i \u003d 1 m l I (Displaystyle L \u003d SME LIMITY _ (I \u003d 1) ^ (M) L_ (I)) - Celkový počet buniek. V dôsledku toho použitie niekoľkých RSLOS zvyšuje obdobie generovanej sekvencie v porovnaní s jedným registrom, čo zvyšuje kryptoprodukovanosť generátora. Zvyšuje aj lineárnu zložitosť alebo dĺžku najkratšieho registra, ktorý zodpovedá tomuto generátoru. Takýto register je s pomocou algoritmu Berlekmpa - Massey pre generovanú sekvenciu. V najlepšom prípade je jeho dĺžka úmerná s obdobím generovaného sekvencie.

Generátory s nelineárnymi transformáciami

Konštrukčný diagram takéhoto generátora sa nelíši od diagramu predchádzajúceho generátora. Hlavným rozdielom je, že konverzné zariadenie je nastavené na nelineárnu funkciu mlieka f (x 1, x 2, ..., x m) (Displaystyle F (X_ (1), X_ (2), Dots, X_ (M))). Ako taká funkcia sa užíva, napríklad polynóm Zhegalkyne (podľa teorem zhegalkin, každá booleanová funkcia môže byť reprezentovaná iba zhegalkinovým polynómom).

Nelineárny generátor môže byť tiež implementovaný Šmykový register s nelineárnou spätnou väzbou. Môže dať 2 2 l - 1 - l (Displaystyle 2 ^ (2 ^ (L-1) -L)) Varianty sekvencií maximálneho obdobia, čo je viac ako RSLOS.

Kryptopost tohto generátora sa zvyšuje kvôli nelinearite použitej funkcie. Stanovenie stavu registrov na generovanej sekvencii bitov je komplexná matematická úloha, pretože nie je známa pre algoritmus, ktorý obnovuje počiatočné štáty.

Táto metóda sa používa napríklad v generátor Hepfa A generalizovaný generátor Hethf, však takéto generátory môžu byť hacknuté korelačným otvorom.

Generátory s rôznymi taktmi pre registre posunu

Generátor "Stop-Go"

Generátor "Stop-Go" (Eng. Stop-and-Go, Oba-Piper) používa stiahnutie RSLOS-1 na ovládanie frekvencie RSLO-2 hodiny, takže RSLOS-2 mení svoj stav v určitom okamihu, len ak výstup RSLOS-1 v čase času bola rovnaká jednota. Táto schéma neodolala pred otvorením korelácie.

Navrhol sa zvýšiť kryptopita striedavý generátor "Stop-Walk-Walking". Používa tri posuvné registre rôznych dĺžok. Tu RSLOS-1 riadi hodinovú frekvenciu 2. a 3. registre, to znamená, že RSLOS-2 zmení svoj stav, keď je výstup RSLOS-1 rovný jednému a RSLOS-3 - keď výstup RSLOS-1 je nula. Výstupom generátora je prevádzka pridania modulu dva zásuvky RSLOS-2 a RSLOS-3. Tento generátor má dlhú dobu a veľkú lineárnu zložitosť. Existuje spôsob korelačného otvoru RSLOS-1, ale to výrazne oslabuje kryptografické vlastnosti generátora.

Komplikovaná schéma hodín sa používa v bilaterálny generátor "Stop-Walking"ktorý používa 2 posun registra tej istej dĺžky. Ak je výstup RSLOS-1 v určitom okamihu T I - 1 (Displaystyle T_ (I-1)) - Jednota, potom RSLOS-2 nie je v čase času T I (Displaystyle T_ (I)). Ak je výstup RSLOS-2 v čase T I - 1 (Displaystyle T_ (I-1)) rovná nule a v čase T I - 2 (Displaystyle T_ (I-2)) - jednotka, a ak je tento register v čase času T I (Displaystyle T_ (I))V rovnakej dobe, RSLOS-1 nie je aktivovaný. Lineárna zložitosť tejto schémy je približne rovnaká ako perióda generovanej sekvencie.

Generátor s vlastným absorbovaním

Viacstupňový generátor s vnútornou prácou

Tento generátor používa dva registra RSLOS-1 a RSLO-2. Frekvencia RCLLO-2 D (Displaystyle d) Raz viac ako RSLOS-1. Niektoré bity týchto registrov sa navzájom vynásobia a prevádzkujú. Výsledky multiplikácií sú zhrnuté operáciou XOR a získa sa výstupná sekvencia. Tento generátor má vysokú lineárnu zložitosť a má dobré štatistické vlastnosti. Jeho stav však môže byť určený výstupnou sekvenciou dĺžky L 1 + L 2 + LOG 2 \u2061 D (DisplayStyle L_ (1) + L_ (2) + LOG _ (2) (D))kde L 1 (Displaystyle L_ (1)) a L 2 (Displaystyle L_ (2)) - dĺžky RSLOS-1 a RSLOS-2, resp. D (Displaystyle d) - pomer ich hodinových frekvencií.

Kaskáda Hallmanna

Táto schéma je vylepšenou verziou generátora "Stop-odosielania". Skladá sa z sekvencie PCLOS, ktorého je riadený predchádzajúcim RSLOS. Ak je výstup RSLOS-1 v čase T I (Displaystyle T_ (I)) je 1, potom je RSLOS-2. Ak výstup RSLOS-2 v čase času T I (Displaystyle T_ (I)) je 1, potom RSLOS-3 je napustený, a tak ďalej. Výstupom posledného RLOS je výstup generátora. Ak je dĺžka všetkých RSLOS rovnaká a rovná L (Displaystyle L)potom obdobie systému M (Displaystyle M) RSLOS je rovnaký (2 l - 1) m (Displaystyle (2 ^ (l) -1) ^ (m))a lineárna zložitosť - L (S) \u003d L (2 l - 1) M - 1 (Displaystyle L (S) \u003d L (2 ^ (L) -1) ^ (M-1)) .

Táto myšlienka je jednoduchá a môže byť použitá na generovanie sekvencií s obrovskými obdobiami, veľkými lineárnymi ťažkosťami a dobrými štatistickými vlastnosťami. Ale, bohužiaľ, sú citlivé na otvorenie, nazývané uzamknutý (Eng. Zámok) Kedy

Sekvencie registrov šmykových registrov sa používajú v kryptografie a pri teórii kódovania. Ich teória je dokonale vypracovaná, streamovanie šifry na základe strihových registrov bolo pracovníkom vojenskej kryptografie dlho pred vzhľadom elektroniky.

Register spätnej väzby sa skladá z dvoch častí: Funkcia posunu a spätnej väzby (obrázok 1.2.1). Register Shift je sekvencia bitov. (Počet bitov je určený dĺžkou registra posunu. Ak je dĺžka n bity, register sa nazýva n-bitový register.) Kedykoľvek budete potrebovať odstrániť bit, všetky bity posunu registrácie Právo na 1 pozíciu. Nový extrémny ľavý bit je funkcia všetkých ostatných bitov registra. Na výstupe šmykového registra sa objavuje jeden, zvyčajne mladší význam, bit. Obdobie registra posunu sa nazýva dĺžka sekvencie získanej predtým, ako začne opakovať.

Obr. 1.2.1.

Cryptographers sa páčili streaming Ciphers založené na strihových registroch: Ľahko sa implementujú pomocou digitálneho zariadenia. Som len mierne roztrhaný na matematickej teórii. V roku 1965, Ernst Selmer (Ernst Selmer), hlavná kryptografia nórskej vlády, vyvinula teóriu sekvencie stručných registrov. Solomon Golomb (Solomon Golomb), matematika NSA, napísal knihu, ktorá stanovila niektoré z jeho výsledkov a výsledky Selmer.

Najjednoduchší typ posunu registra s spätnou väzbou je lineárna spätná väzba (lineárna spätná zadok register alebo LFSR) (obrázok 1.2.2). Spätná väzba je jednoducho xor niektoré z bitov bitov, zoznam týchto bitov sa nazýva sekvencia kohútika. Niekedy sa takýto register nazýva fibonaci konfigurácia. Kvôli jednoduchosti spätnej väzby pre analýzu LFSR môžete použiť pomerne vyvinutú matematickú teóriu. Cryptographers milujú analyzovať sekvencie, presvedčiť sa, že tieto sekvencie sú úplne náhodné, aby boli bezpečné. LFSR sa častejšie používa v kryptografických registroch.


Obr. 1.2.2.

Na obr. 1.2.3 ukazuje 4-bitový LFSR s kohútikom z prvých a štvrtých bitov. Ak sa inicializuje hodnotou 1111, potom pred opakovaním bude register vykonať tieto interné štáty:

Obr. 1.2.3. štyri

Výstupná sekvencia bude reťazec juniorských významných bitov:

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

n-bit LFSR môže byť v jednom z 2N-1 vnútorných stavov. To znamená, že teoreticky takýto register môže generovať pseudon-náhodnú sekvenciu s obdobím 2N-1 bitov. (Počet vnútorných stavov a obdobie je 2N-1, pretože plnenie Zeros LFSR bude mať za následok register posunu na vytvorenie nekonečnej sekvencie nuly, čo je absolútne k ničomu.) Len s určitými diverzifikovanými sekvenciami LFSR budú cyklicky Všetky vnútorné stavy 2N-1. Takéto LFSR sú LFSR s maximálnym obdobím. Výsledný výsledok sa nazýva M-sekvencia.

Aby sa špecifický LFSR mal maximálne obdobie, polynóm, vytvorený z kohútikovej sekvencie a konštantu 1, musí byť primitívny modul 2. Stupeň polynómu je dĺžka registra posunu. Primitívny polynómový stupeň N je neredukovateľné polynóm, čo je delič, ale nie je predajcom XD + 1 pre všetky D, ktoré sú delivami 2N-1.

Všeobecne platí, že nie je jednoduchý spôsob, ako generovať primitívne polynómy daného titulu modulom 2. Najjednoduchší spôsob, ako zvoliť polynóm na náhodne a skontrolovať, či je primitívny. Nie je to ľahké - a niečo ako šek, či už ide o jednoduché náhodne zvolené číslo - ale mnohé balíky matematických programov sú schopné vyriešiť takú úlohu.

Niektoré, ale, samozrejme, nie všetky, polynómy rôznych stupňov, primitívne modulo 2. Napríklad nahrávanie (32, 7, 5, 3, 2, 1, 0) znamená, že ďalší polynóm je primitívny modulom 2:

x32 + x7 + x5 + x3 + x2 + x + 1

To sa dá ľahko zovšeobecniť pre LFSR s maximálnym obdobím. Prvé číslo je dĺžka LFSR. Posledné číslo je vždy rovné 0 a dá sa vynechať. Všetky čísla, s výnimkou 0, nastavte odstraňovaciu sekvenciu počítanie z ľavého okraja registra posunu. To znamená, že členovia polynómu s menším stupňom zodpovedajú polohám bližšie k pravému okraju registra.

Pokračujúci príklad, nahrávanie (32, 7, 5, 3, 2, 1, 0) znamená, že nový bit 32-bitového registračného registra má nový bit, je generovaný pomocou XOR Tridsiateho sekundy, siedmeho, piateho, tretieho, druhého a Prvé bity. Výsledný LFSR bude mať maximálnu dĺžku, cyklicky prechádzajúcu, kým sa po 232-1 hodnotách opakuje.



Páči sa vám článok? Zdieľaj to