www.wikidata.de-de.nina.az
Ein linear ruckgekoppeltes Schieberegister engl linear feedback shift register kurz LFSR ist ein ruckgekoppeltes Schieberegister das zur Erzeugung von streng deterministischen Pseudozufallszahlenfolgen eingesetzt werden kann Zur Ruckkopplung wird die lineare logische Funktion XOR verwendet Ein 4 bit Fibonacci LFSR und seine Zustande Das Register schiebt die Bits von links nach rechts Das Exklusiv Oder Gatter wird von den beiden hinteren Bits des Registers gefuttert und liefert diesem vorne damit wiederum die Eingabe Die maximale Ausgabesequenz besteht aus jedem moglichen Zustand mit Ausnahme des Zustands 0000 Den Startwert bezeichnet man als seed Da die Ausgabe des Registers streng deterministisch ist und vollstandig von seinem momentanen Zustand abhangt das Register jedoch gleichzeitig nur eine endliche Anzahl an Zustanden hat muss es zwangslaufig irgendwann wieder bei seinem Startwert ankommen Bei n Bit breiten Schieberegistern ergibt sich damit eine maximale Periodenlange von 2n 1 Ab diesem Zeitpunkt wiederholt sich die Ausgabesequenz das Register befindet sich in einem Wiederholzyklus Je nach gewahlter Implementierung ist diese Sequenz unterschiedlich lang allerhochstens konnen Folgen maximaler Lange erzeugt werden Anwendungen liegen neben der Erzeugung von Pseudozufallszahlenfolgen im Bereich schneller digitaler Synchronzahler da diese Zahler ohne Ubertrag arbeiten im Bereich der Nachrichtentechnik und Kryptografie bei Scramblern um Datenfolgen spektral weiss zu machen in der Kodierungstheorie bei der Kodierung und Dekodierung von zyklischen Codes wie beispielsweise bei der zyklischen Redundanzprufung CRC oder dem Hamming Code und im Bereich der digitalen Modulationstechnik bei den Codemultiplexverfahren CDMA und im Bereich der Steganographie Linear ruckgekoppelte Schieberegister konnen effizient sowohl direkt in Hardware wie beispielsweise FPGAs als auch in Software implementiert werden Bei der Softwareimplementierung wird da die meisten Prozessoren mit Registerbreiten grosser als ein Bit arbeiten typischerweise mit im Voraus berechneten Tabellen gearbeitet die direkt den inneren Zustand des Schieberegisters abbilden Inhaltsverzeichnis 1 Funktionsweise 1 1 Arten 1 2 Polynomauswahl 1 3 Programmierung 2 Anwendungen 3 Zusammengesetzte LFSR 3 1 Gold Folgen 3 2 Kasami Folgen 3 3 JPL Folgen 4 Siehe auch 5 Literatur 6 EinzelnachweiseFunktionsweise BearbeitenEin LFSR ist in der Digitaltechnik als ein Schieberegister mit n Speicherelementen realisiert Die einzelnen Speicherelemente sind typischerweise D Flipflops welche je ein Bit speichern konnen Im Gegensatz zu einem gewohnlichen Schieberegister bestehen zwischen bestimmten D Flipflops Abzweigungen welche die Ruckkopplungen darstellen Die Anzahl und die Position dieser Abzweigungen in der Registerkette wird zur Erzielung der maximal moglichen Periodenlange von 2n 1 durch ein primitives Polynom das sogenannte Generatorpolynom bestimmt n ist in diesem Fall auch gleich dem Grad des Generatorpolynoms Ein primitives Polynom als Generatorpolynom ist nicht zwingend notwendig allerdings ergeben nicht primitive Polynome kurzere Periodenlangen Kurzere Periodenlangen sind jedoch auch mit einer geringeren Anzahl von Flipflops und Verwendung eines entsprechenden primitiven Polynoms geringeren Grades erreichbar weshalb als Generatorpolynome praktisch ausschliesslich primitive Polynome Einsatz finden Zur Initialisierung im Englischen wird dieser Startwert auch als seed bezeichnet kann das Schieberegister mit XOR Ruckkopplung mit beliebigen Werten gefullt werden bei positiver Logik jedoch nicht nur mit Nullen da dann das Register aus diesem Zustand niemals herauskame das Schieberegister also eine triviale Folge konstanter Nullen generieren wurde Es konnen statt der XOR Verknupfungen auch XNOR Verknupfungen eingesetzt werden negative Logik in diesem Fall sind als Startwert alle Werte ausser lauter Einsen erlaubt was auch wieder eine maximale Periodenlange von 2n 1 ergibt Je nach Technologie ist es einfacher den Zustand mit lauter Nullen als definierten Anfangszustand zu implementieren Die Verknupfung mittels XNOR hat hierbei den Vorteil dass dieser Zustand mit lauter Nullen als Startwert geeignet ist und nicht wie bei XOR zu der trivialen konstanten Nullfolge fuhrt Ein LFSR kann auch so implementiert werden dass es die maximale Periodenlange von 2n aufweist Hierbei treten nach einem Durchlauf lauter 0 im Schieberegister auf die als Sonderfall durch eine zusatzliche Logikschaltung erkannt und durch daraufhin aktivierte Invertierung der Ruckkopplung kompensiert werden mussen Diese Moglichkeit besteht analog auch bei XNOR Verknupfungen der Sonderfall ist hierbei stattdessen der Zustand mit lauter Einsen Wie jedes andere Schieberegister verfugt auch das LFSR uber einen Takteingang Bei jedem Taktimpuls wird in den Folgezustand gewechselt und fur einen vollstandigen Durchlauf aller Kombinationen sind 2n 1 Taktimpulse notwendig sofern wie oben beschrieben ein primitives Polynom zum Einsatz kommt und auf das erwahnte Aufbohren der Ruckkopplung auf 2n Zustande verzichtet wurde Ein LFSR bildet wegen seiner Linearitat der erzeugten Folgen fur sich alleine fur kryptologische Anwendungen einen schlechten Pseudozufallszahlengenerator LFSR werden als Grundelement und in Verbindung mit nichtlinearen Funktionen oder als eine Kombination mehrerer LFSR verwendet Neben den in digitalen Schaltungen ublichen binaren LFSR in GF 2 existieren auch nichtbinare LFSR mit einer Anzahl an Elementen q grosser als 2 Die XOR Operation sie stellt eine Addition modulo 2 dar wird im allgemeinen Fall durch eine Addition modulo q ersetzt die Speicherelemente mussen je q Zustande speichern konnen Arten Bearbeiten Es gibt in der Realisierung zwei verschiedene Arten von LFSR Fibonacci LFSR benannt nach dem italienischen Mathematiker Leonardo Fibonacci und Galois LFSR benannt nach dem franzosischen Mathematiker Evariste Galois Beide Typen sind zueinander gleichwertig und weisen die gleichen Periodenlangen auf wenngleich die erzeugten Folgen unterschiedlich sind Sie unterscheiden sich in der Realisierung wie in den Abbildungen dargestellt wobei CLK den Takteingang und Y den Ausgang des LFSR darstellen Die XOR Operatoren sind mit displaystyle oplus nbsp dargestellt nbsp Fibonacci LFSR nbsp Galois LFSRDie beiden Formen ergeben sich aus dem Umstand dass jedes primitive Polynom vom Grad n gt 2 ein Zwillingspolynom besitzt welches ebenfalls primitiv ist 1 In den beiden Abbildungen wurde fur das Fibonacci LFSR ein Generatorpolynom vom 8 Grad verwendet p f x x 8 x 6 x 5 x 4 1 displaystyle p f x x 8 x 6 x 5 x 4 1 nbsp Die Abzweigstellen entsprechen direkt den Exponenten Das dazu gleichwertige primitive Generatorpolynom vom 8 Grad im Galois LFSR ist p g x x 8 8 x 8 6 x 8 5 x 8 4 x 8 0 x 8 x 4 x 3 x 2 1 displaystyle p g x x 8 8 x 8 6 x 8 5 x 8 4 x 8 0 x 8 x 4 x 3 x 2 1 nbsp Welche der beiden gleichwertigen Formen konkret gewahlt wird hangt unter anderem von Optimierungen bei der Implementierung ab So konnen beispielsweise die drei Exklusiv Oder Gatter mit je zwei Eingangen in der Fibonacci Struktur zu einem Exklusiv Oder Gatter mit vier Eingangen zusammengefasst werden Diese Form lasst sich in FPGAs mit Lookup Tabellen welche vier Eingange aufweisen effizient implementieren Polynomauswahl Bearbeiten Neben dem Grad n welcher die Periodenlange festlegt existieren bei einem bestimmten Grad n gt 2 immer mehrere primitive Polynome welche zueinander gleichwertig sind Je nach Anwendung konnen weitere Auswahlkriterien hinzukommen Beispielsweise werden in der Nachrichtentechnik im Bereich von Scramblern sogenannte dunn besetzte Generatorpolynome bevorzugt Dies sind Polynome welche mit einer minimalen Anzahl von Ruckkoppelstellen bzw mit einer minimalen Stellenanzahl ungleich 1 im Generatorpolynom auskommen Dies hat den Grund den Hardwareaufwand und bei selbstsynchronisierenden Scramblern die Vervielfachung von Empfangsfehlern im Descrambler zu minimieren Im Bereich der Kodierungstheorie wie bei zyklischen Kodes CRC oder bei kryptografischen Anwendungen werden hingegen dichtbesetzte Polynome nach anderen Auswahlkriterien bevorzugt Primitive Polynome unterschiedlicher Grade sind in Tabellenwerken aufgelistet 2 3 In nachfolgender Tabelle sind einige primitive Polynome mit minimaler Besetzung angefuhrt Grad Exponenten Grad Exponenten1 1 14 14 13 11 92 2 1 15 15 143 3 2 16 16 14 13 114 4 3 17 17 145 5 3 18 18 116 6 5 19 19 18 17 147 7 6 20 20 178 8 6 5 4 21 21 199 9 5 22 22 2110 10 7 23 23 1811 11 9 24 24 23 21 2012 12 11 8 6 13 13 12 10 6 9689 9689 84Programmierung Bearbeiten Der folgende Quelltext implementiert ein Galois LFSR vom Grad 32 mit Periodenlange 2 32 1 displaystyle 2 32 1 nbsp unsigned lfsr static unsigned r 1 unsigned b r amp 1 r r gt gt 1 b amp 0xc3308398 return b Der folgende Quelltext in C zeigt die Implementierung eines weiteren Galois LFSR dessen Generatorpolynom der Benutzer selbst eingeben kann Das Programm ermittelt die Periodenlange des LFSR und gibt sie aus include lt iostream gt using namespace std unsigned lfsr2 unsigned startState unsigned shiftBits unsigned m shiftBits m m gt gt 1 m m gt gt 2 m m gt gt 4 m m gt gt 8 m m gt gt 16 startState amp m Entfernt uberzahlige Bits unsigned lfsr startState Initialisiert den Zustand unsigned periodLength 0 do unsigned lsb lfsr amp 1u Berechnet das Ausgabebit lfsr gt gt 1 Verschiebt die Zustandsbits um eine Bitposition nach rechts if lsb 1 Wenn das Ausgabebit gleich 1 ist lfsr shiftBits XOR Ruckkopplung periodLength while lfsr startState return periodLength void main string startStateText string shiftBitsText cin gt gt startStateText Eingabe des Startzustands als Binarzahl uber die Konsole cin gt gt shiftBitsText Eingabe des Generatorpolynoms als Binarzahl uber die Konsole unsigned startState stoi startStateText 0 2 Typumwandlung von string nach unsigned unsigned shiftBits stoi shiftBitsText 0 2 Typumwandlung von string nach unsigned cout lt lt lfsr2 startState shiftBits lt lt endl Ausgabe der Periodenlange Der Startzustand und das Generatorpolynom werden hier als Binarzahl uber die Konsole eingegeben Dafur ist eine Typumwandlung notwendig BeispielFur den Startzustand 1010110011100001 und das Generatorpolynom mit der Binardarstellung 1011010000000000 ergeben sich fur die ersten 6 Durchlaufe der do while Schleife folgende Werte fur das Schieberegister 1 Durchlauf Ergebnis nach Rechtsshift 0101011001110000 Ausgabebit 1 Ergebnis nach XOR Operation 1110001001110000 2 Durchlauf Ergebnis nach Rechtsshift 0111000100111000 Ausgabebit 0 3 Durchlauf Ergebnis nach Rechtsshift 0011100010011100 Ausgabebit 0 4 Durchlauf Ergebnis nach Rechtsshift 0001110001001110 Ausgabebit 0 5 Durchlauf Ergebnis nach Rechtsshift 0000111000100111 Ausgabebit 0 6 Durchlauf Ergebnis nach Rechtsshift 0000011100010011 Ausgabebit 1 Ergebnis nach XOR Operation 1011001100010011Parallele BerechnungZustand und resultierende Bits konnen auch kombiniert und parallel berechnet werden besonders effizient ist das wenn die Anzahl der zu schiebenden Bits einer Registergrosse entspricht und auch das Ubertragsbit benutzt werden kann wie bei dem Polynom 63 Grades auf einer 32 Bit Architektur Die folgende Funktion berechnet jeweils die nachsten 32 Bits mittels 31 Bit Galois LFSR mit Polynom x x 1 in 2 Schritten include lt stdint h gt uint32 t prsg31 uint32 t lfsr lfsr lfsr lt lt 16 lfsr lt lt 1 lfsr lt lt 4 gt gt 16 lfsr lfsr lt lt 16 lfsr lt lt 1 lfsr lt lt 4 gt gt 16 return lfsr Anwendungen BearbeitenAnwendungen von LFSRs liegen neben den eingangs erwahnten Bereichen bei Modulo Zahlern welche bis zur Periodenlange zahlen und dann uberlaufen also wieder von vorne beginnen Dies ist deutlich effizienter als ein arithmetischer echter Zahler mit Ubertragslogik Carry Logic da statt einer n Bit Addition lediglich einige Exklusiv Oder Verknupfungen XOR notwendig sind Allerdings lasst sich der aktuelle Zahlerstand nicht direkt aus dem Zustand des LFSR ableiten weshalb sich ein LFSR Zahler nur fur bestimmte Anwendungen eignet z B zur Index Berechnung bei der Implementierung einer Warteschlange First In First Out mittels Random Access Memory RAM Im Bereich der digitalen Signalverarbeitung werden LFSR auch nach der Taktgeschwindigkeit in Relation zur Bitrate bzw Symbolrate in den Anwendungen unterschieden Bei einem Scrambler ist die Bitrate bzw Symbolrate gleich der Taktgeschwindigkeit des LFSRs Wird das LFSR zur spektralen Spreizung eingesetzt ist die Taktrate des LFSR deutlich hoher als die Bit bzw Symbolrate Anwendung findet das etwa im Rahmen von Direct Sequence Spread Spectrum Verfahren DSSS bzw damit verwandt im Bereich Codemultiplexverfahren CDMA Durch sogenannte zusammengesetzte LFSR konnen dann Folgen gebildet werden wie sie beispielsweise im Rahmen von Global Positioning System GPS zu Navigationszwecken eingesetzt werden Mit linear ruckgekoppelten Schieberegistern werden bei der Signaturanalyse komprimierte Bitvektoren zur Uberprufung der Funktion einer Schaltung ermittelt Zusammengesetzte LFSR Bearbeiten nbsp Zwei kombinierte LFSRs wie sie bei GPS zur Erzeugung der C A Codes Gold Code Verwendung finden Eine Erweiterung stellt die Kombinationen der Datenfolgen verschiedenartiger LFSR dar Die dabei entstehenden neuen Datenfolgen konnen andere Eigenschaften aufweisen als die ursprunglichen LFSR Sie konnen damit beispielsweise durch eine geringe Autokorrelation geeigneter fur Anwendungen im Bereich Code Division Multiple Access und zur spektralen Spreizung sein Die Zusammensetzung der Ausgabedatenfolge aus den einzelnen unabhangigen LFSRs erfolgt mittels XOR Verknupfung der einzelnen Teilfolgen Weisen die LFSR unterschiedliche Folgenlangen L 2n 1 und unterschiedliche Generatorpolynome auf lassen sich Codefolgen mit vollig neuen Eigenschaften erzeugen Im Regelfall weisen diese zusammengesetzten zyklischen Folgen nicht die maximal mogliche Lange auf Im Folgenden werden einige wichtige Klassen von aus LFSR Registern zusammengesetzten Codefolgen dargestellt Gold Folgen Bearbeiten Gold Folgen wurden 1967 von Robert Gold vorgestellt und besitzen ebenfalls zwei LFSRs mit unterschiedlichen Generatorpolynomen allerdings von gleicher Lange m 4 Die maximale Codefolgenlange der Gold Folge ist daher auch nur 2m 1 Halt man den Anfangszustand eines LFSR fest und verandert den Anfangszustand Phasenverschiebung des anderen zyklisch lassen sich 2m 1 neue Codefolgen erstellen die alle ein relativ kleines periodisches Kreuzkorrelationsmaximum zueinander aufweisen d h sie stehen fast orthogonal zueinander Dies bedeutet dass diese Codefolgen sich im Bereich des Codemultiplex CDMA verwenden lassen und damit eine Unterscheidung je nach verwendeter Gold Folge ermoglichen Die Gold Folgen sind auch wegen ihrer einfachen Erzeugung die in der Praxis am haufigsten eingesetzten Spread Spectrum Signale Anwendungsbereiche liegen neben Mobilfunksystemen UMTS welche mit CDMA arbeiten auch bei dem zivil nutzbaren C A Code des globalen Positionssystems GPS und bei WLANs Kasami Folgen Bearbeiten nbsp Kasami Codegenerator wie er bei GLONASS K Satelliten eingesetzt wirdKasami Folgen wurden 1966 von Tadao Kasami vorgestellt und weisen ein relativ kleines periodisches Kreuzkorrelationsmaximum zueinander auf d h sie stehen fast orthogonal zueinander und werden wie die Gold Folgen im Bereich des Codemultiplex CDMA eingesetzt 5 Anwendungsbereiche dieser LFSRs liegen in Codemultiplexverfahren CDMA wie unter anderem im russischen Positionssystems GLONASS wo Kasami Codefolgen ab der Satellitengeneration GLONASS K eingesetzt werden Kasami Codefolgen werden erzeugt indem zunachst eine Maximalfolge gebildet diese dezimiert und sodann mit der Maximalfolge mittels XOR Operation wiederholend verknupft wird Es gibt zwei Gruppen von Kasami Codefolgen die kleine und die grosse Gruppe Die kleine Gruppe besteht aus zwei LFSRs die grosse Gruppe wird mit drei LFSRs gebildet Zur Erzeugung einer Kasami Codefolge aus der kleinen Gruppe wird ein LFSR genommen in rechter Schaltung unten dargestellt welches die Folge a n displaystyle a n nbsp mit n 1 2 N 1 displaystyle n 1 2 N 1 nbsp erzeugt Als Einschrankung muss N displaystyle N nbsp gerade sein Ein zweites LFSR in der Darstellung daruber erzeugt die Folge b n a q n displaystyle b n a q cdot n nbsp mit dem Indexfaktor q 2 N 2 1 displaystyle q 2 N 2 1 nbsp Die endgultige Kasamifolge k n displaystyle k n nbsp wird dadurch gebildet indem die beiden Teilfolgen miteinander XOR verknupft werden k n a n b n displaystyle k n a n oplus b n nbsp Die Kasami Folge weist eine Lange von 2 N 1 displaystyle 2 N 1 nbsp auf Als Besonderheit nehmen Kasami Folgen sowohl bei der Kreuzkorrelation als auch Autokorrelation nur folgende vier Werte an wenn die erzeugte Codefolge mit den Elementen 1 1 displaystyle 1 1 nbsp reprasentiert wird 1 1 N 2 N 2 1 N 2 N 2 1 N displaystyle left 1 frac 1 N frac 2 N 2 1 N frac 2 N 2 1 N right nbsp JPL Folgen Bearbeiten JPL Folgen bestehen aus zwei LFSRs deren Codefolgenlange La und Lb teilerfremd relativ prim sein mussen 6 In diesem Fall ist die Codefolgenlange der erzeugten Gesamtfolge Lc gleich L c L a L b 2 n 1 2 m 1 displaystyle L c L a cdot L b 2 n 1 2 m 1 nbsp Es konnen auch mehr als zwei LFSRs mittels mehrfachen XOR am Ausgang zusammengeschaltet werden Es mussen nur alle Codefolgelangen der einzelnen LFSR teilerfremd zueinander sein Entwickelt wurden JPL Folgen in den Jet Propulsion Labs wovon sich auch der Name fur diese Codefolgen ableitet Einsatzbereiche sind unter anderem im Bereich der Entfernungsmessung mittels Spread Spectrum Signalen bei Satelliten und im Bereich der Weltraumtechnik und bei dem militarisch genutzten und genaueren P Y Code im globalen Positionssystem GPS Siehe auch BearbeitenMaximum Length Sequence Berlekamp Massey Algorithmus PseudozufallsrauschenLiteratur BearbeitenUwe Meyer Baese Digital Signal Processing with Field Programmable Gate Arrays 1 Auflage Springer 2001 ISBN 3 540 41341 3 Einzelnachweise Bearbeiten Manfred Schroeder Number Theory in Science and Communication 8 Auflage Springer 2008 ISBN 978 3 540 85297 1 Wayne Stahnke Primitive Binary Polynomials In Mathematics of Computation Oktober 1973 S 977 980 Peter Alfke Efficient Shift Registers LFSR Counters and Long Pseudo Random Sequence Generators Xilinx Application Note XAPP052 1996 online PDF Robert Gold Optimal binary sequences for spread spectrum multiplexing 4 Auflage Volume 13 IEEE Transactions on Information Theory S 619 621 online Tadao Kasami Weight Distribution Formula for Some Class of Cyclic Codes Technical Report Nr R 285 University of Illinois 1966 Alois M J Goiser Handbuch der Spread Spectrum Technik Springer Verlag 1998 ISBN 3 211 83080 4 Kapitel 4 3 Zusammengesetzte Folgen S 151 152 Abgerufen von https de wikipedia org w index php title Linear ruckgekoppeltes Schieberegister amp oldid 233632045 JPL Folgen