7
Sklopovska i programska provjera primitivnosti binarnih polinoma Marijo Nižetić Omiš, Hrvatska [email protected] Sažetak - U ovome radu opisujem metodu određivanja m-nizova posmičnim registrom s povratnim vezama za registre do 31 stanja, paralelno koristeći Galois načelo, C ++ programe i simulacijski alat Logisim 2.7.1. Tablično prikazani rezultati istraživanja, upućuju na mogućnost smanjenja vremena obrade i programske pristupe računanju primitivnih polinoma. Za navedene obrade, napravio sam programe primjenjujući permutacije odnosno varijacije s ponavljanjem od 2 elementa pripadnoga razreda. Grafičkim programskim alatom, potvrdio sam programski ostvarene rezultate (brojevni razredi do 31 bita). Zbog povećanja brzine obrade m-nizova, primijenio sam C ++ programske strukture na razini bitova. Na istim sustavnim načelima mogu se obrađivati polinomi s više od 31 stanja koristeći duže vrste podataka. Zbog bolje razumljivosti, predlažem nove načine označavanja binarnih polinoma i algoritme obrade podataka posmičnim registrom (Galois/Fibonacci). U obradu podataka, osim obrade m- nizova, uključio sam množenje i diobu binarnih polinoma te izračun FCS na prije naznačenim programskim i sklopovskim (simulacijskim) načelima. Za tu namjenu, simulacijski alat Logisim nadopunio sam novim vrstama pod-sklopova. Preinačio sam i automatizirao LFSR sklopove za istovremen rad multiplikacijskoga i adicijskoga sklopa LFSR što dodatno potvrđuje točnost dobivenih rezultata. Posmični registar temelj je svih modernih (tele) komunikacijskih mreža i uređaja te sastavni dio kodera i dekodera za sve FEC kodove (blok, konvolucijski i turbo). Ciklički kodovi su podskup navedenih skupina i ovdje nisu predmet mojih istraživanja. Ključne riječi - nizovi maksimalne dužine (MLS), posmični registar s povratnim vezama (LFSR), Fibonacci (adicijsko) i Galois (multiplikacijsko) načelo I UVOD Sve vrste binarnih kodova za ispravak pogrešaka prema naprijed, FEC (Forward Error Correction) koriste posmične registre. U radu se ne opisuje niti jedna podvrsta kodova (npr. ciklički kodovi). Klasičan način uporabe binarnih polinoma iz tabličnih podataka, ima nekoliko nedostataka. U znanstvenoj i stručnoj literaturi, primitivni (nedjeljivi) binarni polinomi prepisuju se desetljećima. Ne postoji jednostavan i sustavan programski alat provjere nedjeljivosti (primitive) binarnih polinoma. Veliki brojevi i njihove duge vremenske obrade obeshrabruju istraživače. Središte takvih istraživanja su nizovi maksimalne duljine (m-nizovi). Vrijeme provjere, generira li cjelobrojna potencija n konačno polje GF(2 n ), usporava se linearno porastom potencije n do reda veličine 200, a zatim je taj porast eksponencijski [10]. Berlekamp-Massey algoritmom [3] određuje se linearna složenost konačnoga binarnog niza. Dobar pseudo-algoritam za klasičan postupak određivanje nedjeljivih binarnih polinoma opisao je Abhijit Mitra u [2]. Nekoliko algoritama za provjeru primitivnosti može se pronaći u [7]. Pseudo algoritmi provjere nedjeljivosti binarnih polinoma opisuju se u [1] i [9]. Literatura u ovome području brojna je i iscrpna, ali bez konkretnih programskih rješenja. Za generiranje m-nizova, odgovarajuće programske alate izradio je Sean Erik O'Connor [6], ali uz složene postupke rukovanja njima. Dva programska alata napravili su A. Asimi i A. Lbekkouri [1] ali im rezultati nisu cjeloviti. Iz teorije brojeva poznate su metode određivanja primitivnih binarnih polinoma: Eulerova funkcija, Fermatov Little Theorem, Rabin-Millerova metoda te metoda određivanja primitivnosti polinoma ispitivanjem pripadnih m-nizova [2]. Posljednju metodu koristio sam u ovome radu s ciljem brze provjere nedjeljivosti bilo kojega binarnog polinoma. Postigao sam dvostruko manji računalni gubitak O(2 n ) u usporedbi s gubitkom O(2 2n ) standardnih postupaka algoritma predloženoga u [3]. Primjenu podataka na razini bitova i različite brzine rada C ++ programa, analizirali su Pieterse, Watson i Cleophas u [10]. Struktura rada je sljedeća. Odjeljak II opisuje značaj primitivnih polinoma za oblikovanje LFSR (Linear Feedback Shift Register) strukture. Odjeljak III opisuje matematičku metodologiju glavne teorije. Sklopovske rezultate opisuje odjeljak IV. U odjeljku V opisujem i programska rješenja i postignute numeričke rezultate. Odjeljak VI opisuje ujednačenje sklopovske i programske primjene. Zaključke sadrži odjeljak VII. II ODREĐIVANJE PRIMITIVNIH BINARNIH POLINOMA ZA STRUKTURE LFSR Osnovni problem obrade podataka posmičnim registrom s povratnim vezama LFSR za m-nizove MLS (Maximal Length Sequence), jest priskrba opisa njegove strukture binarnim polinomom. Za obradu m-nizova koriste se primitivni binarni polinomi. To su nedjeljivi polinomi čiji članovi uz nultu i maksimalnu potenciju imaju koeficijente 1. Ako se polinom prikazuje kao redni vektor, ti jedinični članovi polinoma smješteni su na njegovoj lijevoj i na desnoj strani, a omeđuju ga potencije označene x 0 i x max . Potencija x max definira broj stanja, a potencija x 0 predstavlja povratnu vezu s izlaza na ulaz LFSR. Detalji primjene jednoga od 2 osnovna načela (adicijsko i/ili multiplikacijsko načelo), opisao sam (projekt LFSR) u tridesetak objavljenih i javno dostupnih radova [13]. Matematički način označavanja binarnih polinoma općenito se opisuje kao P(x) = x 0 + x 1 + x 2 + … + x n1 + x n . Ispred varijable x pretpostavlja se koeficijent 1 i ne piše ga se. Ako je neki koeficijent 0 onda se ne prikazuje ni sam član polinoma, jer je umnoškom jednak 0. U vektorskome prikazu binarnoga polinoma pišu se svi koeficijenti (0 ili 1) uz članove pa se dobije binaran broj. Obzirom da ovi polinomi predstavljaju strukture MIPRO 2019/CTI 485

Sklopovska i programska provjera primitivnosti …docs.mipro-proceedings.com/cti/13_cti_5269.pdfpolinoma. Da bi ostvario bilo kakvu suvislu funkciju, kao što su stvaranje PN 1 niza,

  • Upload
    others

  • View
    9

  • Download
    0

Embed Size (px)

Citation preview

Page 1: Sklopovska i programska provjera primitivnosti …docs.mipro-proceedings.com/cti/13_cti_5269.pdfpolinoma. Da bi ostvario bilo kakvu suvislu funkciju, kao što su stvaranje PN 1 niza,

Sklopovska i programska provjera primitivnosti

binarnih polinoma Marijo Nižetić Omiš, Hrvatska

[email protected]

Sažetak - U ovome radu opisujem metodu određivanja m-nizova posmičnim registrom s povratnim vezama za registre do 31 stanja, paralelno koristeći Galois načelo, C++ programe i simulacijski alat Logisim 2.7.1. Tablično prikazani rezultati istraživanja, upućuju na mogućnost smanjenja vremena obrade i programske pristupe računanju primitivnih polinoma. Za navedene obrade, napravio sam programe primjenjujući permutacije odnosno varijacije s ponavljanjem od 2 elementa pripadnoga razreda. Grafičkim programskim alatom, potvrdio sam programski ostvarene rezultate (brojevni razredi do 31 bita). Zbog povećanja brzine obrade m-nizova, primijenio sam C++ programske strukture na razini bitova. Na istim sustavnim načelima mogu se obrađivati polinomi s više od 31 stanja koristeći duže vrste podataka. Zbog bolje razumljivosti, predlažem nove načine označavanja binarnih polinoma i algoritme obrade podataka posmičnim registrom (Galois/Fibonacci). U obradu podataka, osim obrade m-nizova, uključio sam množenje i diobu binarnih polinoma te izračun FCS na prije naznačenim programskim i sklopovskim (simulacijskim) načelima. Za tu namjenu, simulacijski alat Logisim nadopunio sam novim vrstama pod-sklopova. Preinačio sam i automatizirao LFSR sklopove za istovremen rad multiplikacijskoga i adicijskoga sklopa LFSR što dodatno potvrđuje točnost dobivenih rezultata. Posmični registar temelj je svih modernih (tele) komunikacijskih mreža i uređaja te sastavni dio kodera i dekodera za sve FEC kodove (blok, konvolucijski i turbo). Ciklički kodovi su podskup navedenih skupina i ovdje nisu predmet mojih istraživanja.

Ključne riječi - nizovi maksimalne dužine (MLS), posmični registar s povratnim vezama (LFSR), Fibonacci (adicijsko) i Galois (multiplikacijsko) načelo

I UVOD

Sve vrste binarnih kodova za ispravak pogrešaka prema naprijed, FEC (Forward Error Correction) koriste posmične registre. U radu se ne opisuje niti jedna podvrsta kodova (npr. ciklički kodovi). Klasičan način uporabe binarnih polinoma iz tabličnih podataka, ima nekoliko nedostataka. U znanstvenoj i stručnoj literaturi, primitivni (nedjeljivi) binarni polinomi prepisuju se desetljećima. Ne postoji jednostavan i sustavan programski alat provjere nedjeljivosti (primitive) binarnih polinoma. Veliki brojevi i njihove duge vremenske obrade obeshrabruju istraživače. Središte takvih istraživanja su nizovi maksimalne duljine (m-nizovi). Vrijeme provjere, generira li cjelobrojna potencija n konačno polje GF(2

n), usporava se linearno porastom

potencije n do reda veličine 200, a zatim je taj porast eksponencijski [10]. Berlekamp-Massey algoritmom [3] određuje se linearna složenost konačnoga binarnog niza. Dobar pseudo-algoritam za klasičan postupak određivanje nedjeljivih binarnih polinoma opisao je Abhijit Mitra u [2]. Nekoliko algoritama za provjeru primitivnosti može se pronaći u [7]. Pseudo algoritmi provjere nedjeljivosti binarnih polinoma opisuju se u [1] i [9]. Literatura u

ovome području brojna je i iscrpna, ali bez konkretnih programskih rješenja.

Za generiranje m-nizova, odgovarajuće programske alate izradio je Sean Erik O'Connor [6], ali uz složene postupke rukovanja njima. Dva programska alata napravili su A. Asimi i A. Lbekkouri [1] ali im rezultati nisu cjeloviti. Iz teorije brojeva poznate su metode

određivanja primitivnih binarnih polinoma: Eulerova funkcija, Fermatov Little Theorem, Rabin-Millerova metoda te metoda određivanja primitivnosti polinoma ispitivanjem pripadnih m-nizova [2]. Posljednju metodu koristio sam u ovome radu s ciljem brze provjere nedjeljivosti bilo kojega binarnog polinoma. Postigao sam dvostruko manji računalni gubitak O(2

n) u usporedbi s

gubitkom O(22n

) standardnih postupaka algoritma predloženoga u [3]. Primjenu podataka na razini bitova i različite brzine rada C

++ programa, analizirali su Pieterse,

Watson i Cleophas u [10].

Struktura rada je sljedeća. Odjeljak II opisuje značaj primitivnih polinoma za oblikovanje LFSR (Linear Feedback Shift Register) strukture. Odjeljak III opisuje matematičku metodologiju glavne teorije. Sklopovske rezultate opisuje odjeljak IV. U odjeljku V opisujem i programska rješenja i postignute numeričke rezultate. Odjeljak VI opisuje ujednačenje sklopovske i programske primjene. Zaključke sadrži odjeljak VII.

II ODREĐIVANJE PRIMITIVNIH BINARNIH POLINOMA

ZA STRUKTURE LFSR

Osnovni problem obrade podataka posmičnim registrom s povratnim vezama LFSR za m-nizove MLS (Maximal Length Sequence), jest priskrba opisa njegove strukture binarnim polinomom. Za obradu m-nizova koriste se primitivni binarni polinomi. To su nedjeljivi polinomi čiji članovi uz nultu i maksimalnu potenciju imaju koeficijente 1. Ako se polinom prikazuje kao redni vektor, ti jedinični članovi polinoma smješteni su na njegovoj lijevoj i na desnoj strani, a omeđuju ga potencije označene x

0 i x

max. Potencija x

max definira broj stanja, a

potencija x0 predstavlja povratnu vezu s izlaza na ulaz

LFSR. Detalji primjene jednoga od 2 osnovna načela (adicijsko i/ili multiplikacijsko načelo), opisao sam (projekt LFSR) u tridesetak objavljenih i javno dostupnih radova [13].

Matematički način označavanja binarnih polinoma općenito se opisuje kao P(x) = x

0 + x

1 + x

2 + … + x

n–1 + x

n.

Ispred varijable x pretpostavlja se koeficijent 1 i ne piše ga se. Ako je neki koeficijent 0 onda se ne prikazuje ni sam član polinoma, jer je umnoškom jednak 0. U vektorskome prikazu binarnoga polinoma pišu se svi koeficijenti (0 ili 1) uz članove pa se dobije binaran broj. Obzirom da ovi polinomi predstavljaju strukture

MIPRO 2019/CTI 485

Page 2: Sklopovska i programska provjera primitivnosti …docs.mipro-proceedings.com/cti/13_cti_5269.pdfpolinoma. Da bi ostvario bilo kakvu suvislu funkciju, kao što su stvaranje PN 1 niza,

posmičnoga registra, koeficijenti prvoga i zadnjega člana su jedinice. Opis strukture sadrži prikaz povratnih veza s izlaza prema ulazima u jedinične registre LFSR uz priključke EXOR (EXclusive OR) vrata. Slika 1 prikazuje takav, cjelovito ožičen registar.

a) P(x) = x

0 + x

1 + x

2 + x

3 + x

4 =

01[1111]

4

b) P(x) = x

0 + x

1 + x

4 =

01[1001]

4

Slika 1. Posmični registar s povratnim vezama

Posmični registar s potpunim skupom povratnih veza na slici 1a, spojen je u načinu rada množenja binarnih polinoma. Da bi ostvario bilo kakvu suvislu funkciju, kao što su stvaranje PN1 niza, m-niza, množenje i dijeljenje binarnih polinoma, kodiranje i dekodiranje, FCS

2, itd.…,

ovu shemu treba preurediti prema strogo zadanim matematičkim pravilima. To znači da se moraju preurediti i broj i položaji EXOR vrata odnosno povratne veze. Za primjer m-nizova

3 s 4 stanja, u razredu postoje dvije

različite (simetrične) strukture [10011] i [11001]. Ako se najniža i najviša potencija ni ne označe, zbog same simetričnosti vektora u ovome primjeru ne može se napraviti pogreška. Za sve veličine LFSR (broj stanja), svaki polinom koji generira m-niz ima svoj obrnuti (reverse) polinom.

Izraz xn = 2

4 = 16 ujedno je i formula za izračun broja

varijacija s ponavljanjem od 2 elementa (x) 4. (n) razreda (uključuje stanje sve "0"). Stanje registra sve "0" za LFSR je posebno, jer se iz njega ne može izaći niti se u njega može ući. LFSR ima svojstvo da se nakon izmjene svih različitih stanja, vraća u početno stanje. Treba naglasiti još jednu značajku - vrijednost m-niza ne ovisi o početnome stanju LFSR. Izlaz iz 4. jediničnog registra nema EXOR vrata ali "1" simbolički predstavlja povratnu vezu s izlaza na ulaz i u vektoru je naznačuje "1" sasvim desno (izvan zagrade). Binarni brojevi u pravokutnim zagradama predstavljaju stanja unutarnjih registara LFSR. Ovakvo označavanje nužno je zbog matematičkoga opisa rada LFSR C

++ jezikom na razini bitova (u nastavku

rada). Unutarnja stanja prikazanoga LFSR prikazuje tablica I.

TABLICA I. VARIJACIJE S PONAVLJANJEM OD 2 ELEMENTA 4. RAZREDA

0000 0001 0010 0011 0100 0101 0110 0111

1000 1001 1010 1011 1100 1101 1110 1111

Da bi se dobile sve (moguće) strukture LFSR s 4 stanja iz prethodnoga primjera, potrebno je analizirati strukturu LFSR od 5 stanja (ili općenito za 1 stanje više). Slika 2 prikazuje takav LFSR koji generira m-niz od 31

1 PN … Pseudo Noise (pseudo-slučajan) šum 2 FCS … Frame Check Sequences niz za provjeru okvira 3 m-nizovi su primitivni binarni nizovi točno određene dužine, čije se

binarne cjeline ponavljaju nakon što LFSR izmijeni sva različita stanja u

svojim jediničnim registrima (bez stanja "sve 0") te se nakon toga vrati u svoje početno stanje.

stanja (25–1, bez stanja sve "0") uz sva ostala moguća

stanja. Dakle za primjer LFSR na slici 1, varijacije s ponavljanjem od 2 elementa 5. razreda sadrže sve strukture posmičnoga registra, a korisne su samo one koje u binarnome prikazu započinju i završavaju brojem "1". Generira ih LFSR na slici 2.

P(x) = x

0 + x

3 + x

5 =

01[00101]

5

Slika 2. LFSR s 5 stanja za generiranje m-niza od 36 bitova

Slika 2 prikazuje LFSR koji vektorom 0[10010]1

4

generira m-niz (ili pseudo slučajan šum) od 36 bitova [10010110011111000110111010100000], što jamči da je polinom primitivan. Struktura ovoga LFSR nalazi se u sljedećem skupu stanja od 6 binarnih znamenaka odnosno u rasponu brojeva od 0x41 do 0x7F i podliježu istim zakonitostima kao i prethodne skupine (0x5-0x7, 0x9-0xF, 0x11-0x1F, 0x21-0x3F). U svakoj brojčanoj skupini, LFSR ima jednak broj memorija, a svaka sljedeća skupina veća je od prethodne skupine za 1 memorijsko mjesto. Rezultat rada LFSR na slici 2 je generiranje m-niza, a sva njegova unutarnja stanja (ukupno 2

5) prikazuje tablica II.

TABLICA II. SVIH 32 STANJA POSMIČNOGA REGISTRA NA SLICI 1B

00000 00001 00010 00011 00100 00101 00110 00111

10000 10001 10010 10011 10100 10101 10110 10111

01000 01001 01010 01011 01100 01101 01110 01111

11000 11001 11010 11011 11100 11101 11110 11111

U skupu dobivenih stanja, nalaze se (barem) dvije strukture (paran broj) za LFSR od 4 stanja odnosno nedjeljivi binarni polinomi (primitive). To je nužan

4 uvjet

stvaranja m-niza. Pripadni m-niz (za LFSR od 4 stanja) je 0000111101011001000 i sadrži sva stanja ako se

pojedinačno promatra prozorom širine 4 bita, a prozor se pomiče svaki put u desno za 1 korak. Polinomi koji se dobiju kao stanja LFSR višega stupnja, predstavljaju strukture LFSR nižega stupnja.

Niti jedan od vektora u prvome retku tablice nije kandidat za strukturu LFSR, jer svaki započinje "0" pa su svi elementi retka precrtani. Za opis strukture LFSR od 4 stanja (slika 1) raspoloživo je 8 vektora (polinoma) u drugome retku. Pri tome vektori mogu imati 3, 4 ili 5 spojeva (priključnih točaka). Samo vektori s neparnim brojem spojeva (sve "1" u vektoru) jesu strukture za moguće generiranje m-nizova, a njih ima 4. Od ta 4 vektora, vektori

4[0101]1

0 i

4[1111]1

0 nisu primitivni

polinomi tj. generiraju periodičke nizove kraće od m-niza. Vektori (primitivni polinomi) [10011] i [11001] su jedina 2 polinoma za strukture LFSR od 4 stanja što generiraju m-nizove i oni su osno simetrični (reverse).

Od 8 brojeva u donjemu retku tablice II, 3 broja završavaju "0" pa ni oni ne mogu biti kandidati za strukture LFSR. U tablici I u binarnome broju ima samo 4

4 Nužan uvjet da bi binaran polinom P(x) bio primitivan (irreducible)

nad GF(2) jest x2m

= x mod p(x).

486 MIPRO 2019/CTI

Page 3: Sklopovska i programska provjera primitivnosti …docs.mipro-proceedings.com/cti/13_cti_5269.pdfpolinoma. Da bi ostvario bilo kakvu suvislu funkciju, kao što su stvaranje PN 1 niza,

binarne znamenke. Dakle, skup stanja koja generira LFSR s 4 registra može opisati strukture LFSR od 3 stanja. Analogno, strukture LFSR s 4 stanja mogu opisati stanja koja generira LFSR od 5 stanja (2

5). Ovo je osnovna ideja

primjene varijacija s ponavljanjem za generiranje svih struktura LFSR računalom (od 2 do 31 stanja i iznad toga). Za rubna stanja od 31 bita, 32. rubni bit ("1") koristi se za opis povratne veze.

U ovome radu, istraživanja i njihovi rezultati usmjereni su metodi generiranja strukture LFSR što je novina u odnosu na sve dosadašnje opisane metode u obilnoj i bogatoj literaturi posljednjih 70-tak godina npr. [3]. Jedinstvenost pristupa je u činjenici da se razlikuju opis strukture LFSR i broj njegovih stanja, jer se struktura opisuje polinomom koji ima broj članova za 1 veći od broja stanja. Upravo ovo temelj je novoga pristupa u stvaranju strukture LFSR i njegove uporabe za stvaranje m-nizova (brzo programsko nalaženje primitivnoga polinoma odgovarajućih svojstava), dijeljenje ili množenje binarnih polinoma, stvaranje binarnoga niza za provjeru podatkovnoga okvira pri prijenosu podataka FCS (Frame Check Sequence), kružnu provjeru zalihosti CRC (Cyclic Redundancy Check) ili uporabu u sustavima pristupa kanalu CDMA-ca (Code-division multiple access - Collision Avoiding). Posmični registar LFSR koristi se u kriptografiji ali to za sada nije predmet mojih istraživanja.

Izvornost ovakvoga pristupa podupire korištenje C++

jezika u stvaranju potrebne programske podrške. Pri tomu, težište je na korištenju razreda <vector> i <bitset> te

logičkih operatora na razini bitova ("&", "|", "^", "~", "<<" i ">>").[8] Ovime se postupak obrade maksimalno ubrzava. Također, primijenio sam matematičke zakonitosti o kompleksijama: permutacije (permutation), kombinacije (combination) i varijacije (power set) u kreiranju potrebnih skupina nizova. Iz dobivenih rezultata [13] vidi se da u ukupnome skupu binarnih polinoma, ima značajno manje (za red veličine) primitivnih polinoma u odnosu na ne-primitivne (djeljive) polinome.

III KOMPLEKSIJE (KOMBINATORIKA)

"Kompleksije" su zajednički naziv za sustavno i organizirano baratanje nizovima (binarnih) podataka. U obradi strukture LFSR u radu [4, 325049518]

5, opisujem

primjenu varijacija, kombinacija i permutacija s ponavljanjem.

A. Kombinacije

Kombinacije bez ponavljanja od n-elemenata (n = 5) r-

toga stupnja (r = 3) (skupine od r-članova). Elementi: a, b,

c, d, e tvore sljedeće kombinacije, a njihov broj određuje

jednadžba (1), a u ovome primjeru ima ih 10:

abc, abd, abe, acd, ace,

ade, bcd, bce, bde, cde.

n

rnrnr

nn

rK

r

n)!(!

! (1)

Kombinacije s ponavljanjem su kombinacije u kojima se pojedini elementi ponavljaju. Ako su elementi: 1, 2, 3, 4,

5 Oznaka [4,123456789] … [redni broj literature, poveznica na web stranicu Researchgate].

onda se kombinacije trećega razreda (r = 3) od 4 elementa (n = 4) dobiju jednadžbom (2) i ima ih 20.

!)!1(!

)!1(1'

1

1r

k

nr

rnK

rn

rK

rn

nkr

rn

r

n

(2)

Na primjer, niz max

[101101001]0 = 1011010012

predstavlja binaran vektor, a "1" naznačuje navedena mjesta spojeva EXOR vrata s dva ulaza. Na jedan ulaz spaja se povratna veza, a na drugi spaja se izlaz iz unutarnjega stanja LFSR. Izlaz iz EXOR vrata spaja se na ulaz sljedećega unutarnjeg registra LFSR. Članovi polinoma s koeficijentima "0" predstavljaju težinska mjesta u vektoru, ali nisu spojeni na EXOR vrata. U ovome primjeru jednoznačno se opisuje brojanje u vektoru (polinomu) s desna u lijevo

max[…]

0. Vektor ima 9 binarnih

znamenaka i predstavlja binaran broj. On se također ravnopravno može prikazati heksadekadski 0x169 (ili 16916), dekadski 36110 ili oktalno 5518 (ili 0551). U ovih 9 binarnih znamenaka, prva znamenka desno "1" ima težinu x

0. Prva znamenka lijevo "1", (u ovome primjeru) ima

težinu x8. Za dobiti sve vektore navedenih svojstava i

određenoga razreda, koristim varijacije.

B. Varijacije

Varijacije su kombinacije bez ponavljanja čiji se elementi međusobno permutiraju. Varijacije od 2 elemenata r-toga razreda, znači na sve moguće načine svrstati ta 2 elementa u skupine od po r-članova time da skupine sadrže i jednake članove. Kao matematički alat, one su veoma prikladne za opis strukture LFSR. Njihovo svojstvo je da "1" prikazuju mjesta priključaka vrata izričito "ILI" (EXOR) odnosno mjesta priključaka povratnih veza posmičnoga registra. Takav opis vektora započinje i završava brojem "1" (binarna mjesta u vektoru sasvim lijevo i sasvim desno). Ovako organizirane skupove "0" i "1" matematički opisuju varijacije s ponavljanjem od 2 elementa zadanoga razreda. Dakle od ukupnoga broja raspoloživih varijacija, koristi se samo 50% varijacija (one koje započinju brojem "1"). Odmah se može zaključiti da opis strukture LFSR tvore samo neparni brojevi što za 50% preostalih varijacija dodatno smanjuje broj raspoloživih varijacija za opis strukture, a to znači samo 25% od ukupnoga broja varijacija.

Dodatno ograničenje je paran broj "1" u binarnome vektoru, a povezano je kraćenjem polinoma. Dakle od ukupnoga broja od 16 varijacija, samo njih 1/4 (=4) zadovoljavaju uvjete za tvorbu strukture LFSR. Ali, nisu sve 4 varijacije prikladne za tvorbu strukture LFSR za generiranje m-nizova. Nužan uvjet je da vektorski prikazani polinomi moraju biti primitivni (nedjeljivi). Međutim, primitivnost i nedjeljivost su 2 uvjeta (nužan i dovoljan) za dobivanje m-nizova.

Upravo, istraživanje primitivnosti raspoloživih prikladnih polinoma za sve varijacije od 2 elementa do 31. razreda (kao obrazac) problem je čije se moguće rješenje opisuje u ostatku ovoga rada. Napominjem da se 32. bit ovih polinoma koristi za oznaku povratne veze LFSR i ne može se koristiti kao 32. stanje LFSR. Potpuno jednaka načela vrijede za ostale skupine polinoma (64. bit, 128 Za primjer vektora 1011010012, samo 8 znamenaka predstavljaju 8 stanja LFSR, a sve "1" osim 1. jedinice sasvim lijevo, mjesta su spojeva EXOR vrata u povratnim vezama. Jedinica ("1") sasvim lijevo također se ubraja u

MIPRO 2019/CTI 487

Page 4: Sklopovska i programska provjera primitivnosti …docs.mipro-proceedings.com/cti/13_cti_5269.pdfpolinoma. Da bi ostvario bilo kakvu suvislu funkciju, kao što su stvaranje PN 1 niza,

povratnu vezu ali ona simbolički, samo je fizički spoj izlaza natrag prema ulazu pri primjeni multiplikacijskoga načela. Osim ovoga načela postoji i adicijsko načelo spajanja LFSR (tzv. Fibonacci) što u priskrbi rezultata nadopunjuje Galois načelo. Razlika između njih je u smjeru nizanja prikupljenih podataka i u sklopovskoj prikladnosti spajanja određenoga sklopa (vanjske povratne veze) [4, 325046149], jer su u binarnoj matematici zbrajanje i množenje iste operacije.

Za ovaj primjer vektora od 9 bitova, stanja simboliziraju prvih 8 znamenaka brojeći ih s desna u lijevo. Uvodim sljedeći opis strukture LFSR

max1[…1]

0.

Uočite prvu "1" sasvim lijevo koja je izdvojena (izvan pravokutne zagrade), jer ne predstavlja stanje LFSR nego samo njegovu povratnu vezu. Ovakvo označavanje trebalo mi je za izgradnju algoritama na razini bitova. Također upozoravam čitatelja da se zabunom često miješa prikaz stanja LFSR s prikazom njegove strukture. Detalji se mogu pronaći u radovima koje sam publicirao na WEB stranicama Researchgate [12] i Academia.edu.

Ukupan broj varijacija s ponavljanjem od 2 elementa (0 i 1) 8. razreda (skupine od 8 članova-binarnih znamenaka), računa se formulom (3).

rr

nnV

' (3)

Ukupna količina varijacija jednaka je 1/4 mogućih varijacija. Unutar toga skupa kriju se djeljivi i nedjeljivi polinomi koje treba razlučiti. Programsku obradu varijacija C

++ jezikom ostvaruje nekoliko jednostavnih

funkcija. Te funkcije su:

(a) provjera, analizira li se m-niz:

while(r!=1){n++;r<<=1;if(r&t)r^=torp;}

(b) programska petlja koja ispituje polinome unutar istoga broja registara LFSR: uzima gornju granicu raspona brojeva u heksadekadskome obliku 1, 3, 7, F, 1F, 3F, 7F, FF, 1FF, 3FF, 7FF, FFF, 1FFF, …. Donje granice su: 1, 2, 4, 8, 11, 21, 41, 81, 101, 201, 401, 801, … (sve do vektora dužine 32 bita, odnosno vrste podataka od barem 4 Byte).

(c) određivanje obrnutih (reverse) polinoma:

for(j=1;j<reg;j++)if(p&((u

int)1<<j))i|=(t>>j);i=i|t;

(d) pretvorbe brojeva među osnovnim brojevnim sustavima: [4, 330853869]

if(hd=='h')stringstream stream;cin>>hex>>piq;

if(hd=='d')cin>>dec>>piq;

if(hd=='b')if(p_bin.size()<=32){piq=bitset<32>

(p_bin).to_ulong();}

if(hd=='o')stringstream stream;

cin>>p_oct;istringstream(p_oct)>>oct>>piq;

Programski detalji i sami programi obrade primitivnih polinoma, slobodno, javno i legalno dostupni su na mojoj stranici [13]. Osim skupina brojeva, program može pojedinačno ispitivati polinome. Rezultati se ispisuju na predočniku i u log datoteku. Ako se umjesto čitavoga binarnoga polinom-vektora ispituje sam "unutarnji" dio bez rubnih "1", onda je prikladan alat ispitivanja - permutacije.

C. Permutacije

Analize struktura polinoma mogu se ubrzati za 4 i više puta ako se primijene permutacija s ponavljanjem od 2 elementa (0, 1) time da se svaki element ponavlja zadani broj puta. Za vrstu podataka od 4 Byte, ukupan broj elemenata je 30, ne računajući rubne jedinice. Minimalno se može analizirati jedna "1" između dviju krajnjih, koja se permutira maksimalno 30 puta (30, 1). Ostale parove permutacija prikazuje tablica u [4, 330854319]. Korištenjem ove metodologije ispitivanja primitivnih polinoma, dodatno smanjuje broj analiziranih binarnih vektora za 2 reda veličine (odnosno četverostruko) tj.

vrijeme obrade je proporcionalno O(2n2

). Permutacije su posebno zanimljive s matematičkoga motrišta. Naime, broj permutacija računa se prema jednadžbi (4).

35144

5040

246

5040

4321321

7654321

!4!3

!7

!

!'

nP

n

Korištenjem faktorijela u izračunu i za potrebe određivanja primitivnih polinoma, ovakvo računanje brojnika, nazivnika i kvocijenta za velike brojeve, ubrzo postaje nemoguće. Potreban je algoritam koji racionalizira takav izračun, a opisao sam ga u brojnim programskim rješenjima [4, 330854215].

D. Faktorijel

Iz toga razloga u pripadnome C++

programu 4330854319 primijenio sam algoritam za faktorizaciju brojnika i nazivnika prema jednadžbi (4).

for(unsigned i=0,j=0;i<V.size();)for(unsigned

n=0;n<N.size();i++,j=0){//nazivnik

if(V.at(i)==0)j=1;for(unsigned

k=0;k<V.at(i)+j;k++,n++){N.at(n)=k+1;}}

Nakon toga, primijenio sam algoritam za skraćenje broja množitelja u brojniku i u nazivniku, što množitelje u nazivniku svodi na umnoške samih jedinica. Ono što preostane u brojniku jeste količnik i taj broj predstavlja broj permutacija. Za ad hoc potrebe dovoljan je i "priručni" Excel kalkulator, a prikazuje ga slika 3.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

! 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 #

13 ! 12 ! 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 #

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

"1" "0" 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

16 17 18 19 20 21 22 23 24 25 26 27 28 29 30

255200300

Slika 3. Excel kalkulator za računanje broja permutacija binarnih

polinoma

Kalkulator sam napravio kao vizualan alat prema istim, prije navedenim načelima. Broj permutacija dobiva se upisom odnosa između brojeva "1" i "0" u polinomu, a onda kraćenjem jednakih pribrojnika i u brojniku i u nazivniku. Kalkulator zadovoljava sve permutacije s ponavljanjem do 32 bita u polinomu.

IV OBRADA VELIKOGA BROJA M-NIZOVA

PERMUTACIJAMA

A. "Klasične" metode određivanja primitivnih binarnih

polinoma programskim jezikom

Klasičnu programsku obradu primitivnih polinoma uz smanjenje složenosti vremena obrade, opisao je Abhijit Mitra u [2]. Predložio je dvije jednostavnije programske metode ali na razini obrade polinoma. Programski podržane obrade opisao je i O'Connor u [6] također polazeći od polinoma. U ovome radu predlažem primjenu

488 MIPRO 2019/CTI

Page 5: Sklopovska i programska provjera primitivnosti …docs.mipro-proceedings.com/cti/13_cti_5269.pdfpolinoma. Da bi ostvario bilo kakvu suvislu funkciju, kao što su stvaranje PN 1 niza,

metode m-nizova za određivanje primitivnosti (nedjeljivosti) binarnih polinoma prikazavši ih kao vektore. Jedinice ("1") u vektorskome prikazu polinoma predstavljaju priključne točke LFSR pa je stoga, važno poznavati smjer porasta potencija varijable.

B. Prijedlog nove metode određivanja primitivnih

binarnih polinoma

Na temelju prethodnih opisa i ostvarenih rezultata predlažem: a) pojedinačno ispitivanje primitivnosti binarnih polinoma; b) traženje skupa primitivnih binarnih polinoma; i c) popis djeljivih binarnih polinoma, korištenjem varijacija s ponavljanjem od 2 elementa određenoga razreda. Također, predlažem korištenje permutacija s ponavljanjem s ciljem smanjenja vremena pretrage i analize takvih polinoma za 2 reda veličine. Prijedlozi su materijalizirani u programima i opisani u radovima s DOI brojem, koje sam objavio u [4, 325479080, 325479004].

V SKLOPOVI ZA ISPITIVANJE M-NIZOVA

Programski alat Logisim 2.7.1. veoma je prikladan alat (Java) za osnovne simulacijske potrebe. Omogućio mi je tvorbu vlastitih razvojnih sklopova za (međusobnu) provjeru dobivenih rezultata (programski sklopovski). Rezultati se odnose na matematičke operacije dijeljenja dvaju binarnih polinoma, množenja dvaju binarnih polinoma i računanje FCS niza. Naročito su značajni osmišljeni sklopovi zbog brzoga preoblikovanja potrebnih sklopova. Također sam riješio osnovni problem multiplikacijskoga načina spajanja jediničnih sklopova posmičnoga registra, ako se EXOR vrata serijski spajaju između unutarnjih registara (Galois) odnosno paralelno na njihove izlaze (Fibonacci).

1) Sklop za generiranje m-nizova Ako se često i brzo mora promijeniti oblik probnoga sklopa, baratanje komponentama simulacijskoga alata Logisim 2.7.1. nije prikladno. Za te namjene izgradio sam automatizirane sklopove u istome (Logisim) okruženju. Osnovne sklopove primjene, prikazuju, slika 4 (Galois) [4, 324994792] i slika 5 (Fibonacci) [4, 324922928] načelo.

A. Stvaranje m-nizova primjenom Galois načela

Galois sklop je posmični registra s unutarnjom povratnom vezom LFSR. Njegovo osnovno svojstvo (i problem) je potreba brzoga oblikovanja i preoblikovanja sheme posmičnoga registra združenoga s izričito ILI (Exclusive OR) vratima u povratnoj vezi, postavljenih između memorijskih stanja. Problem je naročito izražen pri stvaranju simulacijskih krugova različitih maksimalnih potencija polinoma (različitoga broja stanja LFSR). Za različite primitivne polinome trebaju se simulirati m-nizovi (nizovi maksimalne duljine). Rad ovoga sklopa (slika 4) detaljno sam opisao u [4, 325474261].

Slika 4. Galois generator m-niza za maksimalan broj od 32 registra

Treba samo odabrati željeni broj stanja LFSR združenih s EXOR vratima te tako opisati primitivan polinom. Na temelju rednoga broja maksimalno odabranoga stupnja polinoma, automatski se određuje potreban broj taktova. Registar iz početnoga stanja "100…0", prolazi kroz sva različita stanja i ponovno se vrati i zaustavi u isto početno stanje. To je nužna potvrda ispravnoga prolaska kroz sva različita stanja. Broj takvih varijacija računa se prema izrazu (3). Za dovoljnu potvrdu ispravnoga rada, sklop automatski određuje i postavlja odgovarajući brojač. Ukupna dužina takvoga niza računa se prema izrazu: 2

n+(n–1), a obuhvaća i stanje "sve 0". Ukupna dužina

takvoga niza računa se prema izrazu: 2n+(n–1), a obuhvaća

i stanje "sve 0".

B. Sklop za stvaranje m-nizova primjenom Fibonacci

načela

Na sličan način kao i sklop koji koristi Galois načelo, napravio sam sklop za primjenu Fibonacci načela, a njegov rad opisao sam u [4, 324994792], a prikazuje ga slika 5.

Slika 5. Stvaranje m-niza od 2 do 32 stanja prema Fibonacci načelu

Izborom strukture posmičnoga registra, broj taktova automatski se računa i postavlja u brojaču. Rad kruga pokrene se prečacem Ctrl+K uz automatski postavljeno početno stanje LFSR jednako 1000…0. Nakon odbrojenoga m-niza, krug se zaustavi u početnome stanju što je vidljiva potvrda ispravnosti rada. Detaljan opis strukture i rada obaju krugova je u [4, 324994792]. Unutarnji rad obaju opisanih sklopova odvija se na isti način.

C. Integracija sklopova, koji rade prema dvama

načelima, u jedan fizički sklop

S ciljem navedene integracije, osmislio sam dodatan sklop i nazvao ga MN-bistabil. On objedinjuje primjenu oba načela (G/F) u jednome sklopu na slici 6.

Slika 6. Sklop koji združuje Galois i Fibonacci načela

Broj stanja LFSR proširuje se dodavanjem osnovnoga MN-bistabila, već postavljenim i priljubljenim MN-bistabilima, a konfiguraciju strukture LFSR ostvaruju prekidači PVx. Sklop sam detaljno opisao u dokumentu [4, 325479253].

VI PROGRAMSKA RJEŠENJA ZA LFSR JEZIKOM C++

A. Galois načelo za LFSR jezikom C++

Slika 7 prikazuje način tvorbe programskoga algoritma analize rada LFSR na razini bitova [4, 325479253].

MIPRO 2019/CTI 489

Page 6: Sklopovska i programska provjera primitivnosti …docs.mipro-proceedings.com/cti/13_cti_5269.pdfpolinoma. Da bi ostvario bilo kakvu suvislu funkciju, kao što su stvaranje PN 1 niza,

Slika 7. Grafički prikaz algoritma LFSR prema Galois načelu

Pretvoreno u kôdne crte C++

programskoga alata, prethodno definiran algoritam izgleda ovako:

unsigned long izlaz=0x0;

if(stanje%2==1)izlaz=0x1ffffffff;

presjek=maska&izlaz;//trenutno stanje LFSR

stanje=(presjek^stanje)>>1;//novo stanje LFSR

Detaljan opis izvornoga koda i algoritma nalazi se u [4, 325479253].

B. Fibonacci načelo za LFSR jezikom C++

Slično kao sintezu algoritma za rad LFSR u analizi m-nizova, napravio sam slično i za programsku primjenu Fibonacci načela.

Slika 8. Grafički prikaz algoritma LFSR prema Fibonacci načelu

Pretvoreno u kôdne crte C++

programskoga alata, prethodno definiran algoritam izgleda ovako:

presjek=maska&izlaz;//trenutno stanje LFSR

stanje=(presjek^stanje)>>1;//novo stanje LFSR

Algoritmi obaju načela združeni su u jedinstven program, a programske crte detaljno sam opisao u [4, 325479253] te ih ugradio u zajednički program.

C. Sinteza programskih i sklopovskih algoritama obrade

m-nizova

Napravio sam programsku i sklopovsku sintezu dvaju prethodnih sklopova, a prikazuju ih sljedeće crte i slika 9.

//Galois LFSR

if(g=='g'){if(stanje%2==1)UlazIzlaz=0x1ffffffff;

presjek=maska&UlazIzlaz;stanje=(presjek^stanje

)>>1;}

//Fibonacci LFSR

else{UlazIzlaz=stanje&maska;ima=jedinice(UlazI

zlaz);

if((ima%2)!=0x0){UlazIzlaz=pow((double)2,a);}

stanje=(UlazIzlaz|stanje)>>1;}

Slika 9. Modularna primjena Galois i Fibonacci načela u istome sklopu

za m-nizove

Detaljan opis rada sklopa na slici 9, kao i svi moji dosadašnji opisi, također se nalazi u [4, 325479253].

VII PRIMJENE LFSR U KOMUNIKACIJAMA

A. Smetnje komunikacijskoga kanala (šum)

Signali su materijalni nositelji informacije u najširemu smislu i mogu poprimiti razne oblike. Najčešći materijalni nositelji informacija u komunikacijama su naponi, struje, svjetlo ili općenito, elektromagnetski valovi. Reverzibilan postupak, pretvorba je informacije iz jednoga oblika u drugi te ponovna pretvorba u izvoran oblik. Primjer ireverzibilnoga postupka, prijevod je iz jednoga prirodnoga jezika u drugi. Kodiranje je postupak kojime se ostvaruje maksimalna reverzibilnost. Utjecaj smetnji nikada se ne može potpuno ukloniti pa ni uvođenjem kodova s otkrivanjem i ispravkom pogrešaka.

B. Kodiranje kanala - ARQ i FEC metode

Upravljanje pogreškama kodiranjem (također se naziva i kodiranje kanala), koristi se za otkrivanje i ispravak informacija koje se prime kao pogrešne. Otkrivanje pogrešaka može se koristiti kao početni korak u tehnici ispravke pogrešaka, npr. uputiti prijemnik da zahtijeva automatski ponavljanje već prenijetoga signala (informacije). Rezultat uspješnoga ponovljenog slanja oštećenih podataka jest ispravan prijem informacije. Ovo pripada ARQ (Automatic Repeat Request) tehnikama.

Postupak kodiranja generira uzorak podataka. Kodiranje informacije, prikaz je skupa informacija pomoću niza simbola druge abecede. To je dio mehanizma kojime se omogućuje prijenos podataka velikim brzinama kroz kanale sa šumom. Zaštitno kodiranje, metoda je zaštite od smetnji zbog prolaza informacije kroz kanal sa smetnjama.

Ako su ARQ tehnike nezgodne, što je slučaj velikoga propagacijskoga kašnjenje signala, onda je prikladnije primijeniti kodiranje prema naprijed s ispravkom pogrešaka FECC (forward error correction coding). Prijenos podataka koji koristi FECC metode, sadrži zalihosne informacije, što se može iskoristiti ne samo za otkrivanje pogrešaka, već i njihov ispravak, bez potrebe ponovljenoga slanja. [4, 311666773]

C. Viša razina zaštite informacija

U višu razinu zaštite informacija od zloupotrebe spadaju: tajnopis (cryptography), DES (data encryption standard), algoritam vjerodostojnosti (authentication) potpisa i zaštita od prijevara. Iako je prethodno opisana tematika usko povezana temom moga rada, njome se trenutno ne bavim osim njezinim temeljima, a to je široka primjena LFSR za mnogobrojne druge namjene.

Linijsko kodiranje dio je zaštitnoga kodiranja koje koristi modulacijske postupke digitalnih modulacijskih metoda. Njihovi ciljevi su: prijenos podataka od izvora do odredišta preko pojedinoga komunikacijskoga kanala te združivanje više kanala u jedan kanal s ciljem smanjenja pogrešaka i učinkovitijim korištenjem pojasne širine (bandwidth) kanala.

D. Značaj ovoga rada za primjene u komunikacijama

U ovome radu na jednostavan i jeftin način, simulira analiza prijenosa podataka komunikacijskim kanalom sa šumom. Prijenosu podataka koji su kodirani različitim vrstama kodova (Hammingov, Golayev, Reed-Solomon), BCH, itd.[ 4, 311666773, Tablica 0.2: Pregledna tablica

490 MIPRO 2019/CTI

Page 7: Sklopovska i programska provjera primitivnosti …docs.mipro-proceedings.com/cti/13_cti_5269.pdfpolinoma. Da bi ostvario bilo kakvu suvislu funkciju, kao što su stvaranje PN 1 niza,

kodova za upravljanje pogreškama], zajedničko je korištenje LFSR i on je u središte svih analiza.

Na prvome sloju OSI modela simulacijski alat Logisim, omogućuje analize utjecaja šuma na prijenos kodiranih podataka do razine bita. Rezultat je zoran prikaz primljenih oštećenih podataka te njihovo dekodiranje i ispravak. Zbog zastoja u razvoju ovoga alata, potrudio sam se unaprijediti i poboljšati rad simulacijskoga alata u primjeni logičkoga sklopa "posmični registar" - SR (Shift Register).

Konstruirao sam integrirane simulacijske sklopove prema Galois odnosno Fibonacci načelima što omogućuje brze analize kodiranja i dekodiranja. [4, 325474261, 324994792]. Kratki opisi u prethodnome dijelu, prikazuju cjelovite analize rada LFSR i ostvarene rezultate: Primjena adicijskoga odnosno multiplikacijskog načela za rad LFSR pri kodiranju i dekodiranju; PN generator za m-nizove (odvojena odnosno integrirana primjena obaju načela); Simulacijski sklop za brzu provjeru ispravnosti prijenosa dugih nizova podataka "šumovitim" kanalima (FCS). Sve navedeno napravio sam i programski (C

++).

Pri tome sam uočio nedosljednosti označavanja pratećih binarnih polinoma te sam predložio unaprjeđenja. Najvažniji postupak je brzo odrediti nedjeljivost (primitivnost) polinoma (irreducibility).

E. Algoritmi, pseudo-algoritmi i programiranje

Na matematičkoj razini (linearna algebra) stalno se proučavaju nedjeljivi polinomi bez simulacijskoga prikaza (razina sklopa ili programska razina). Postoji nekoliko pseudo-algoritama još od 60-tih godina prošloga stoljeća (Berlekamp, Golomb) ili novijih [12], ali njihovom pretvorbom u C

++ program, ustanovio sam da

nisu dosljedno opisani (previše ili nedovoljno pseudo-koda). Što je najzanimljivije, teško je (i skoro nemoguće) pronaći upotrebljiv kod napisan C

++ jezikom. Pseudo

algoritmima najviše se opisuju unaprijeđene inačice postojećih algoritama ali opet s matematičkoga motrišta. Preostalo mi je napisati svoje upotrebljive programe [13].

F. Buduća istraživanja

Najviše vremena treba posvetiti programskome određivanja velikih nedjeljivih primitivnih polinoma s minimalnim brojem od barem 3 priključka. To zahtjeva unapređenje postojećih i osmišljavanje novih algoritama. Postojeće algoritme obrade velikih m-nizova (reda veličine >2

1000, treba dodatno unaprijedili, što će se

odraziti na generatore PN nizova u povećanju njihove pouzdanosti. Za njihovu potvrdu (vjerodostojnost), simulacijski alat Logisim je za sada najprikladniji, ali nije dovoljno brz. Zbog toga očekujem nastavak njegovoga razvoja kojeg su K. Burch i zainteresirani pridruženi istraživači naprasno prekinuli, prethodno ga dovevši do visoke razine upotrebljivosti. Zbog toga su strukture (polinomi) binarne linearne algebre i dalje u žarištu istraživanja.

Simulacijski alat Logisim prikladan je za provjeru rada budućih novo-napravljenih složenih sklopova (prijedlozi moja rješenja) koji će racionalizirati prijenos podataka u svim komunikacijskim mrežama i uređajima. Istu budućnost očekujem za algoritme koje sam osmislio ili unaprijedio.

VIII ZAKLJUČAK

Rad opisuje posmični registar s povratnim vezama (paralelno: matematički, funkcijski, programski i sklopovski), naglašavajući nedostatke pri njegovu korištenju te nudeći moguća rješenja uočenih nedostataka. Sustavan opis strukture LFSR u svakome razredu, podudaran je onome dijelu brojeva u binarnome prikazu permutacija, koje počinju i završavaju "1". Ovo je osnovna ideja ostvarenih programskih rješenja, a njih prate sukladna sklopovska rješenja simulacijskim alatom Logisim. Šteta što se prestao razvijati. Osnovne binarne matematičke operacije (zbrajanje, oduzimanje, množenje, dijeljenje, potenciranje, korjenovanje, PN-nizovi, CRC, FCS, …) obradio sam paralelno, i programski (C

++) i

sklopovski (Logisim), a dobiveni numerički rezultati potvrdili su ispravnost pristupa. Nakon sustavne obrade svih podataka, uslijedit će prepoznavanje novih zakonitosti. Ovime naslućujem nedovoljno istraženo područje sinteze programskih rezultata, sklopovskih rezultata i teorijskih temelja.

LITERATURA:

[1] A. Asimi, A. Lbekkouri, Determination of irreducible and

primitive polynomials over a binary finite field, Faculty of

Science, University Ibn Zohr - Agadir, Conference: Workshop sur les Technologies de l’Information et de la Communication,

Agadir, Maroc, 24-25 Décembre 2009.

[2] Abhijit Mitra, On the Construction of m-Sequences via Primitive Polynomials with a Fast Identification Method, World

Academy of Science, Engineering and Technology,

International Journal of Electronics and Communication Engineering, Vol:2, No:9, 2008,

[3] E. R. Berlekamp, Factoring Polynomials Over Large Finite

Fields, Mathematics Of Computation, Volume 24, number 111, July, 1970

[4] M. Nižetić, https://www.researchgate.net/publication/6

123456789

[5] Philip L. Campbell, An Implementation of the Berlekamp-Massey Linear Feedback Shift-Register Synthesis Algorithm in

the C Programming Language, SAND99-2033, Unlimited

Release, Printed August 1999, , Secure Networks & Information Systems, Sandia National Laboratories

[6] S. E. O'Connor, Computing Primitive Polynomials - Theory and Algorithm,

[7] S. Gaol and D. Panario, Tests and Constructions of Irreducible

Polynomials over Finite Fields, Foundations of Computational Mathematics, F. Cucker and M. Shub (Eds.), Springer 1997,

346{361.,

[8] Ulla Kirch-Prinz, Peter Prinz, A Complete Guide to Programming in C++, Inc., ISBN: 0-7637-1817-3, Jones and

Bartlett Publishers, 2002

[9] Victor Shoup, A New Polynomial Factorization Algorithm and its Implementation, Elsevier, Journal of Symbolic Computation,

Volume 20, Issue 4, October 1995, Pages 363-397,

[10] V. Pieterse, B.W. Watson i L. Cleophas, Performance of C++ bit-vector implementations, Conference Paper January 2010,

https://www.researchgate.net/publication/220803585

[11] https://www.osti.gov/biblio/12658-MY7Cfg/ (C kod za Berlekamp-Massey Linear Feedback Shift-Register Synthesis

Algorithm)

[12] A.J. Menezes, P.C. van Oorschot, S.A. Vanstone, Handbook of Applied Cryptography, CRC Press, ISBN: 0-8493-8523-7,

October 1996, 816 pages

[13] https://www.researchgate.net/profile/Marijo_Nizetic/

6 Za tiskano izdanje, poveznica na željenu literaturu oblikuje se tako da

se poveznici https://www.researchgate.net/publication/odmah uz desnu kosu crtu "/" pridružiti 9-znamenkasti broj iz rada.

MIPRO 2019/CTI 491