AT516290B1 - Codegenerator - Google Patents

Codegenerator Download PDF

Info

Publication number
AT516290B1
AT516290B1 ATA50661/2014A AT506612014A AT516290B1 AT 516290 B1 AT516290 B1 AT 516290B1 AT 506612014 A AT506612014 A AT 506612014A AT 516290 B1 AT516290 B1 AT 516290B1
Authority
AT
Austria
Prior art keywords
flip
input
output
flop
flops
Prior art date
Application number
ATA50661/2014A
Other languages
English (en)
Other versions
AT516290A1 (de
Original Assignee
Metadat It Beratungs Und Entw Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Metadat It Beratungs Und Entw Gmbh filed Critical Metadat It Beratungs Und Entw Gmbh
Priority to ATA50661/2014A priority Critical patent/AT516290B1/de
Publication of AT516290A1 publication Critical patent/AT516290A1/de
Application granted granted Critical
Publication of AT516290B1 publication Critical patent/AT516290B1/de

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H04L9/0668Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator producing a non-linear pseudorandom sequence
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • G06F7/584Pseudo-random number generators using finite field arithmetic, e.g. using a linear feedback shift register
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • H04L63/0457Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload wherein the sending and receiving network entities apply dynamic encryption, e.g. stream encryption
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/58Indexing scheme relating to groups G06F7/58 - G06F7/588
    • G06F2207/581Generating an LFSR sequence, e.g. an m-sequence; sequence may be generated without LFSR, e.g. using Galois Field arithmetic
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Nonlinear Science (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

Bei einem Code-Generator ist eine Mehrzahl von FLIP-FLOPs (R1, R2, R3) zu einem Kreis zusammengeschlossen. Zusätzlich ist eine Rückkopplung vorgesehen, bei der ein Ausgang (Q) und ein Eingang (D) der FLIP-FLOPS (R1, R2) unter Zwischenschaltung eines XOR-Gatters (XF2) rekursiv verschaltet sind, wobei dessen erster Eingang mit dem Ausgang (Q) eines in der codeproduzierenden Reihe befindlichen FLIP-FLOPS (R1) und dessen zumindest ein weiterer Eingang mit dem Ausgang (Q) eines weiteren, in der codeproduzierenden Reihe weiter hinten befindlichen FLIP-FLOPS (R2, R3) und dessen Ausgang mit dem Eingang (D) des in der codeproduzierenden Reihe dem mit dem ersten Eingang des XOR-Gatters (XF2) verbundenen FLIP-FLOP (R1) nachfolgenden FLIP-FLOP (R2) verbunden ist. Erfindungsgemäß ist der Ausgang (Q) des letzten FLIP-FLOPs (R3) in der codeproduzierenden Reihe, welcher den Ausgang des Codegenerators bildet, mit dem Eingang (D) eines XOR-Gatters (XF1) verbunden, dessen Ausgang mit dem Eingang (D) des ersten FLIP-FLOPs (R1) in der codeproduzierenden Reihe verbunden ist und an dessen zweiten Eingang ein Eingangssignal anliegt. Der produzierte Code kann somit durch das Eingangssignal in unvorhersagbarer Weise verändert werden.

Description

[0001] Die vorliegende Erfindung betrifft einen Code-Generator mit einer Mehrzahl von zu einer codeproduzierenden Reihe geschalteten FLIP-FLOPs, wobei der Ausgang des in der Reihe letzten FLIP-FLOPs mit dem Eingang des in der Reihe ersten FLIP-FLOPs zu einem Kreis zusammengeschlossen ist und zusätzlich eine Rückkopplung vorgesehen ist, bei der ein Ausgang und ein Eingang der FLIP-FLOPS unter Zwischenschaltung eines XOR-Gatters rekursiv verschaltet sind, wobei dessen erster Eingang mit dem Ausgang eines in der codeproduzierenden Reihe befindlichen FLIP-FLOPS und dessen zumindest ein weiterer Eingang mit dem Ausgang eines weiteren, in der codeproduzierenden Reihe weiter hinten befindlichen FLIPFLOPS und dessen Ausgang mit dem Eingang des in der codeproduzierenden Reihe dem mit dem ersten Eingang des XOR-Gatters verbundenen FLIP-FLOP nachfolgenden FLIP-FLOP verbunden ist.
[0002] Solch ein Codegenerator ist aus der AT 412747 B bekannt. Das Prinzip ist auch auf Wikipedia im Beitrag Linear rückgekoppeltes Schieberegister beschrieben. Von diesem Wikipedia-Beitrag unterscheidet sich die AT 412747 B unter anderem dadurch, dass zwischen zwei aufeinanderfolgenden Schieberegistern zumindest ein NOT-Gatter (Inverter) vorgesehen ist. Dadurch ist es nicht möglich, dass konstant Nullwerte geliefert werden, wenn zu Beginn sämtliche FLIP-FLOPs mit Null initialisiert sind.
[0003] Ein weiterer Unterschied besteht darin, dass die Rückkopplung mittels eines UNDGatters ausgeschaltet werden kann. Das hat den Vorteil, dass sich nicht eine bestimmte Bitfolge (die maximal 2n-1 lang ist, n ist die Anzahl der Flip-Flops) konstant wiederholt, sondern dass durch systematisches Ausschalten der Rückkopplung die konstante Bitfolge verändert wird. Das UND- Gatter, mit dem die Rückkopplung ausgeschaltet werden kann, wird durch einen weiteren Codegenerator angesteuert. Insgesamt ergibt sich dadurch allerdings wiederum eine konstante Bitfolge, wenn auch mit einer wesentlich größeren Länge.
[0004] Es ist Aufgabe der vorliegenden Erfindung, solch einen Codegenerator dahingehend zu verbessern, dass seine Ausgangssignalfolge noch ganz erheblich schwieriger vorherzusagen ist.
[0005] Diese Aufgabe wird durch einen Codegenerator der eingangs genannten Art erfindungsgemäß dadurch gelöst, dass der Ausgang des letzten FLIP-FLOPs in der codeproduzierenden Reihe, welcher den Ausgang des Codegenerators bildet, mit dem Eingang eines XOR-Gatters verbunden ist, dessen Ausgang mit dem Eingang des ersten FLIP-FLOPs in der codeproduzierenden Reihe verbunden ist und an dessen zweiten Eingang ein Eingangssignal anliegt.
[0006] Erfindungsgemäß wird also ein beliebig wählbares Eingangssignal in das erste Schieberegister eingespeist, wodurch die Ausgangssignalfolge auch für jemanden, der die Hardware genau kennt, nichts mehr vorhersagbar ist.
[0007] Es handelt sich also um eine Art Scrambler, welcher eine Bitfolge (Eingangsbitfolge) sequentiell und in bestimmter Länge einliest und nicht umkehrbar zu einer Bitfolge (Ausgangsbitfolge) mit vorbestimmbarer (meist erheblich größerer) Länge ausdehnt. Im Gegensatz zu üblichen Scramblern, deren Ergebnis von einem Descrambler wieder in die ursprünglichen Daten zurück umgewandelt werden kann, ist dies bei dem erfindungsgemäßen Codegenerator nicht möglich. Der erfindungsgemäße Codegenerator expandiert die Daten in nicht umkehrbarer Weise.
[0008] Die Längen der Eingangsbitfolgen sowie die der Ausgangsbitfolgen, ebenso der Anfangszustand des Codegenerators können vom Benutzer in der Einrichtung voreinstellbare Konstanten dieses Transformationsprozesses sein.
[0009] Nach einer Ausgestaltung der Erfindung sind mehrere derartige Rückkopplungen vorgesehen, und es ist bei zumindest zwei Rückkopplungen zwischen dem weiteren, in der codeproduzierenden Reihe weiter hinten befindlichen FLIP-FLOP und dem XOR-Gatter ein UND-Gatter vorgesehen, dessen zweiter Eingang über Lookup-Tables ansteuerbar ist. Prinzipiell ist die /8
AT516 290 B1 2019-09-15 österreichisches
Patentamt
Unterbrechung der Rückkopplung mittels eines UND-Gatters bereits aus der AT 452747 B bekannt. Dort ist aber nur eine Rückkopplung vorgesehen, und wenn diese unterbrochen wird, ist das Schieberegister nicht mehr rückgekoppelt, sodass sich die Bitfolge nach n bit wiederholt. Die Rückkopplung darf also immer nur kurz ausgeschaltet werden, was durch den zusätzlichen Code-Generator sichergestellt werden soll.
[0010] Im Gegensatz dazu sind erfindungsgemäß mehrere, vorzugsweise sehr viele Rückkopplungen vorgesehen, die über Lookup-Tables selektiv ein- bzw. ausgeschaltet werden können. Diese Lookup-Tables können zwischen den Partnern, die diese Code-Generatoren einsetzen möchten, frei vereinbart werden, so dass diese nicht einmal dem Hersteller der Geräte bekannt sein müssen. Der vorliegende Code-Generator kann daher - je nachdem, welche Rückkopplungen eingeschaltet sind - in verschiedensten Betriebsweisen betrieben werden, wobei die jeweils gewählte Betriebsweise nicht einmal dem Hersteller bekannt sein braucht. Dies ist gegenüber der AT 452747 B, wo das einzige UND-Gatter von einem vorhersagbaren Code-Generator angesteuert wird, ein erheblicher Vorteil.
[0011] Ein Problem bei diesen Codegeneratoren besteht darin, dass manchmal sehr lange Sequenzen von Nullen oder Einsen auftreten können. Dies ist natürlich unerwünscht. Wenn beispielsweise eine Textnachricht verschlüsselt werden soll und z.B. 200 Nullen hintereinander auftreten, dann bedeutet dies bei Zeichen, die mit 8 Bit codiert werden, dass 25 Zeichen nacheinander im Klartext lesbar bleiben. Dies kann bereits ein Sicherheitsrisiko darstellen.
[0012] Um eine allzu lange Sequenz von Einsen zu vermeiden ist nach einer Ausgestaltung der Erfindung vorgesehen, dass zwischen dem Ausgang eines FLIP-FLOPs und dem Eingang des in der Reihe nachfolgenden FLIP-FLOPs ein UND-Gatter vorgesehen ist, dessen zweiter Eingang von einem Lookup-Table-Manager ansteuerbar ist. Der Lookup-Table-Manager kann so programmiert sein, dass zum Beispiel nach 50 Einsen das UND-Gatter mit Null angesteuert und somit die Verbindung zum nachfolgenden FLIP-FLOP unterbrochen wird, was zu einer Unterbrechung einer Serie von Einsen führt.
[0013] Um eine allzu lange Sequenz von Nullen zu vermeiden ist nach einer weiteren Ausgestaltung der Erfindung vorgesehen, dass zwischen dem Ausgang eines FLIP-FLOPs und dem Eingang des in der Reihe nachfolgenden FLIP-FLOPs ein ODER-Gatter vorgesehen ist, dessen zweiter Eingang von einem Lookup-Table-Manager ansteuerbar ist. Das Prinzip ist also ganz analog wie bei der Unterbrechung einer Sequenz von Einsen, nur liefert das ODER-Gatter an seinem Ausgang eine EINS, wenn es entsprechend (mit einer EINS am zweiten Eingang) angesteuert wird und somit die Verbindung zwischen zwei aufeinanderfolgenden FLIP-FLOPs unterbricht.
[0014] Anhand der beiliegenden Zeichnung wird die vorliegende Erfindung näher erläutert.
[0015] Fig. 1 zeigt einen Schaltplan eines (stark vereinfachten) Ausführungsbeispiels, und [0016] Fig. 2 zeigt Signalfolgen, wie sie bei dem Ausführungsbeispiel von Fig. 1 zum Einsatz kommen.
[0017] Im Ausführungsbeispiel ist ein Schieberegister mit drei FLIP-FLOPs R^ R2, R3 dargestellt. In der Praxis kommen allerdings Schieberegister mit wesentlich mehr, beispielsweise mit mehreren Hundert FLIP-FLOPs, zum Einsatz. Die Anzahl der FLIP-FLOPs wird daher im Folgenden mit n bezeichnet.
[0018] Der Hauptteil des Codegenerators besteht aus einer Reihe von FLIP-FLOPs Rt bis Rn, die über drei verschiedene Typen von Verbindungselementen zu einem rückgekoppelten Schieberegister zusammen geschaltet sind. Diese Verbindungselemente sind:
[0019] · UND-Gatter (in der Zeichnung mit AF (AND-Gatter im Vorwärtszweig (Forward branch)) und RF (AND-Gatter im Rückkopplungszweig) bezeichnet), die sowohl bei der linearen Verbindung der FLIP-FLOPs Rt bis Rn als auch bei deren Rückkoppelungen verwendet werden. UND kann man als binäre Multiplikation auffassen:
0 = 0
2/8
AT516 290 B1 2019-09-15 österreichisches
Patentamt = 0
0-1=0
1-1 = 1 [0020] · XOR-Gatter (in der Zeichnung mit X (XOR-Gatter) bezeichnet), welche eine logische Exklusiv-ODER-Funktion zwischen mehreren Eingängen realisieren. Exklusiv-ODER kann man als binäre Addition (Addition modulo 2) auffassen:
+ 0 = 0
1+0=1
0+1 = 1 + 1=0 (mod 2) [0021] Dies lässt sich auf beliebig viele binäre Eingänge erweitern.
[0022] · OR-Gatter (in der Zeichnung mit OF (OR-Gatter im Vorwärtszweig (Forward branch)) bezeichnet), die bei der linearen Verbindung der FLIP-FLOPs Rt bis Rn verwendet werden. OR-Gatter (mit v symbolisiert) liefern folgende Werte:
0v0 = 0 v0= 1 v 1 = 1 v 1 = 1 [0023] Grundsätzlich können von jedem FLIP-FLOP R, i Rückkopplungen Weggehen. In der Praxis wird man aber bei Schieberegistern mit vielen FLIP-FLOPS nur einen Bruchteil davon realisieren. In der Zeichnung, wo nur drei FLIP-FLOPS R! bis R3 vorgesehen sind, sind alle Rückkopplungen ausgeführt:
[0024] Vom Ausgang Q des FLIP-FLOPs R3 führen drei Leitungen zu den UND-Gattern AR33, AR23 und AR13. Die zweiten Eingänge sind mit dem lookup-table-Manager verbunden und werden von dessen Ausgangssignalen φ33, φ23 und φ13 angesteuert. Die Ausgänge der UND-Gatter AR33, AR23 und AR13 führen jeweils über ein XOR-Gatter X3, X2 und Xt zu den Eingängen D der FLIP-FLOPs R3, R2 bzw. Rr [0025] Vom Ausgang Q des FLIP-FLOPs R2 führen zwei Leitungen zu den UND-Gattern AR22 und AR12. Die zweiten Eingänge sind mit dem lookup-table-Manager verbunden und werden von dessen Ausgangssignalen φ22 und φ12 angesteuert. Die Ausgänge der UND-Gatter AR22 und AR12 führen jeweils über die XOR-Gatter X2 und Xt zu den Eingängen D der FLIP-FLOPs R2 bzw. Rt.
[0026] Vom Ausgang Q des FLIP-FLOPs Rt führt schließlich eine Leitung zu dem UND-Gatter ARn. Der zweite Eingang ist mit dem lookup-table-Manager verbunden und wird von dessen Ausgangssignal cpn angesteuert. Der Ausgang des UND-Gatters ARn führt über das XORGatter Xt zu dem Eingang D des FLIP-FLOPs R^ [0027] Wenn ein Ausgangssignal φΜ HIGH ist, dann wird das Rückkopplungssignal über das entsprechende UND-Gatter AR,, zum XOR-Gatter X, geführt, die Rückkopplung ist aktiv. Wenn das Ausgangssignal φ0 LOW ist, dann liefert das entsprechende UND-Gatter ARj immer LOW zum entsprechenden XOR-Gatter X,, sodass die Rückkopplung inaktiv ist.
[0028] Zwischen den FLIP-FLOPS Ri und R2 ist nicht nur das XOR-Gatter X2 geschaltet, welches das Signal am Ausgang Q des FLIP-FLOPS R! mit den Rückkopplungssignalen verknüpft und das Ergebnis an den Eingang D des FLIP-FLOPS R2 liefert, sondern zusätzlich noch ein UND-Gatter AF2 und ein ODER-Gatter OF2. Im Normalfall wird das UND-Gatter AF2 vom Lookup-table-manager mit o2=HIGH angesteuert und das ODER-Gatter OF2 mit 52=LOW, sodass das Signal vom Ausgang Q des FLIP-FLOPs Rt unverändert bleibt. Wenn das FLIP-FLOP
3/8
AT516 290 B1 2019-09-15 österreichisches
Patentamt aber eine zu lange Serie von O-Werten liefert (was der Lookup-table-manager über das Signal η erkennt) dann steuert er das ODER-Gatter OF2 mit 52=HIGH an, sodass am entsprechenden Eingang des XOR-Gatters X2 vorgetäuscht wird, der Ausgang Q des FLIP-FLOPs Rt wäre 1. Die Serie von O-Werten wird somit unterbrochen. Wenn das FLIP-FLOP R! eine zu lange Serie von 1-Werten liefert (was der Lookup-table-manager wiederum über das Signal r1 erkennt) dann steuert er das UND-Gatter AF2 mit o2=LOW an, sodass am entsprechenden Eingang des XOR-Gatters X2 vorgetäuscht wird, der Ausgang D des FLIP-FLOPs Rt wäre 0. Die Serie von 1-Werten wird somit unterbrochen.
[0029] Analog dazu ist zwischen den FLIP-FLOPS R2 und R3 nicht nur das XOR-Gatter X3 geschaltet, welches das Signal am Ausgang Q des FLIP-FLOPS R2 mit dem Rückkopplungssignal verknüpft und das Ergebnis an den Eingang D des FLIP-FLOPS R3 liefert, sondern zusätzlich noch ein UND-Gatter AF3 und ein ODER-Gatter OF3, deren Funktion ganz analog ist zu der eben beschriebenen Funktion der Gatter AF2 und OF2. Es soll darauf hingewiesen werden, dass in der Praxis die Gatter AF und OF nicht zwischen allen aufeinanderfolgenden FLIPFLOPs vorgesehen sein müssen; um eine zu lange Serie von 0-Werten oder 1-Werten zu unterbrechen genügt es, an einer oder an einigen wenigen Stellen im Schieberegister solche Gatter AF und OF vorzusehen.
[0030] Vor dem ersten FLIP-FLOP R! befindet sich ein XOR-Gatter X^ welches nicht nur die exklusiv-oder-Verknüpfung der drei Rückkopplungssignale vornimmt, sondern zusätzlich noch ein Eingangssignal Eingang berücksichtigen kann. Dieses Eingangssignal wird dem XORGatter Xt über ein UND-Gatter IG zugeführt, dessen zweiter Eingang von einem Signal LA2 angesteuert wird, das gleich erläutert werden wird.
[0031] Der Schaltung werden zwei Signale zugeführt: ein Eingangssignal Eingang und ein Taktsignal LE^ Das Taktsignal LEt und ein Beispiel für ein Eingangssignal sind in Fig. 2 dargestellt. Der Zustand des Eingangssignals wird jeweils bei der positiven Flanke des Tatksignals LEt abgetastet, die positive Flanke ist daher verstärkt dargestellt, und die entsprechenden Punkte im Eingangssignal sind durch kleine Kreisscheiben markiert. Die Eingangssignalfolge ist daher 0-1-1-0-0-0-1-0-1.
[0032] Aus dem Taktsignal LEt wird ein Taktsignal LA2 erzeugt, das dieselbe Frequenz hat, aber gegenüber LEt invertiert und um etwas mehr als eine Viertel Taktperiode (z.B. um 3/8) phasenverschoben ist. Weiters wird ein Taktsignal LAt erzeugt, das die doppelte Frequenz wie LEt hat. Schließlich wird noch ein Taktsignal LA3 für das Ausgangssignal erzeugt, das in den ersten Taktperioden konstant LOW ist ab einem Zeitpunkt t3 mit dem Taktsignal LEt bis auf eine Phasenverschiebung übereinstimmt.
[0033] Die Schaltung funktioniert wie folgt:
[0034] Zum Zeitpunkt L, der positiven Flanke von LE^ ist LA2 HIGH und LAt hat ebenso eine positive Flanke. Das Signal LA2 wird über einen Inverter einem UND-Gatter SG zugeführt, dessen Ausgang mit dem Takt-Eingang C aller FLIP-FLOPs mit Ausnahme des ersten, also mit dem Takt-Eingang C von R2 und R3, verbunden ist. Am zweiten Eingang des UND-Gatters IG liegt LA2 an.
[0035] Infolge des invertierten Signals LA2 am Eingang von SG ist dessen Ausgang LOW, d.h. das Taktsignal LAt an seinem anderen Eingang wird blockiert, die FLIP-FLOPs R2 und R3 takten nicht.
[0036] Das Signal LAt liegt direkt am Takteingang C des ersten FLIP-FLOPs Rt an, daher taktet zum Zeitpunkt L nur das erste FLIP-FLOP Rr [0037] Zu diesem Zeitpunkt setzt der Loopup-table-manager q>n=1, ψι2=0 und φ13=0. Da LA2 HIGH ist, wird das Eingangssignal vom UND-Gatter IG durchgeschaltet und wird mit dem Ausgangssignal Q des ersten FLIP-FLOPs Rt im XOR-Gatter Xt verknüpft, d.h. wenn das Eingangssignal HIGH ist, dann wird der Zustand des ersten FLIP-FLOPs Rt invertiert.
[0038] Zum Zeitpunkt t2, bei der negativen Flanke des Taktsignals LE^ ist LA2 LOW und LAt
4/8
AT516 290 B1 2019-09-15 österreichisches
Patentamt hat wiederum eine positive Flanke. Da LA2 LOW ist, blockiert IG nun das Eingangssignal, aber SG lässt das Taktsignal LAt durch. Zum Zeitpunkt t2 takten also alle FLIP-FLOPs F^, R2 und R3. Das Ausgangssignal von SG ist in Fig. 2 dargestellt, es wird also jede zweite positive Flanke von LAt durchgelassen. Zum Zeitpunkt t2 setzt der Lookup-table-manager die Signale φ0 entsprechend der aus dem Satz von Lookup-tables ausgewählten Lookup-table. Da das Eingangssignal vom UND-Gatter IG blockiert wird, führt die Schaltung bei diesem Takt die Funktion des linearen rückgekoppelten Schieberegisters durch, wobei die Art der Rückkopplung durch die gewählte Lookup-table bestimmt ist.
[0039] Die Sequenz dieser zwei Arbeitsschritte wiederholt sich so lange, bis die voreingestellte Länge der Ausgangsbitfolge erreicht wird. Danach wird der Codegenerator in den Anfangszustand zurück versetzt und er kann für die gleiche Transformation einer anderen Eingangsbitfolge verwendet werden.
[0040] In der Praxis wird man in jeder Lookup-table nur ein oder einige wenige φ0 auf 1 setzten, da eine oder einige wenige Rückkopplungen genügen, um das Ausgangssignal für Dritte praktisch unvorhersagbar zu machen. Es sollten aber genügend Rückkopplungen vorgesehen sein, damit man aus vielen Möglichkeiten wählen kann, d.h. viele unterschiedliche Lookup-tables erstellen kann.
[0041] Die Kontrolle über die zusammengeschalteten und rückgekoppelten FLIP-FLOPs übernimmt ein Steuerungssystem, welches als Lookup-Table-Manager (LUT-Manager) bezeichnet wird. Dieses Steuerungssystem kontrolliert die Transformation einer Eingangsbitfolge und die Ausgabe der Resultate.
[0042] Zu diesem Zweck schaltet das Steuerungssystem nicht nur wie beschrieben die Signale q>ij zwischen den Zeitpunkten L und t2 um, sondern es überprüft auch (z.B. nach dem Zeitpunkt L) die Werte η, r2, r3 der Schieberegister; wenn eines der Schieberegister eine zu lange Folge von 0-Werten oder 1-Werten liefert, wird der Eingang des entsprechenden ODER-Gatters OF bzw. des entsprechenden UND-Gatters AF rechtzeitig vor t2 angesteuert, damit die Folge unterbrochen wird.
[0043] Der aktuelle Wert des letzten FLIP-FLOPs R3 wird als ein laufendes Bit des Ausgangssignals ausgegeben, dessen Takt durch das Taktsignal LA3 angegeben wird. LA3 entspricht LEt, ist aber etwas (z.B. um einen halben Takt) phasenverschoben, damit das FLIP-FLOP R3 genug Zeit zum Schalten hat. Außerdem kann das Taktsignal LA3 für die ersten Taktperioden auf LOW gesetzt werden, z.B. für zumindest so viele Taktperioden, wie das Schieberegister FLIP-FLOPs hat. Dadurch wird sichergestellt, dass sich das Eingangssignal von Anfang an auf das Ausgangssignal auswirkt.
[0044] Die Länge des Ausgangssignals ist unabhängig von der Länge des Eingangssignals. Wenn das Eingangssignal vollständig eingespeist ist, kann man es entweder neuerlich einspeisen (periodische Wiederholung), oder man kann die Schaltung ohne Eingangssignal weiter laufen lassen.

Claims (3)

1. Code-Generator mit einer Mehrzahl von zu einer codeproduzierenden Reihe geschalteten FLIP-FLOPs (Rt, R2, R3), wobei der Ausgang (Q) des in der Reihe letzten FLIP-FLOPs (R3) mit dem Eingang (D) des in der Reihe ersten FLIP-FLOPs (R^ zu einem Kreis zusammengeschlossen ist und zusätzlich eine Rückkopplung vorgesehen ist, bei der ein Ausgang (Q) und ein Eingang (D) der FLIP-FLOPS (Ri, R2) unter Zwischenschaltung eines XOR-Gatters (XF2) rekursiv verschaltet sind, wobei dessen erster Eingang mit dem Ausgang (Q) eines in der codeproduzierenden Reihe befindlichen FLIP-FLOPS (Ri) und dessen zumindest ein weiterer Eingang mit dem Ausgang (Q) eines weiteren, in der codeproduzierenden Reihe weiter hinten befindlichen FLIP-FLOPS (R2, R3) und dessen Ausgang mit dem Eingang (D) des in der codeproduzierenden Reihe dem mit dem ersten Eingang des XOR-Gatters (XF2) verbundenen FLIP-FLOP (Ri) nachfolgenden FLIP-FLOP (R2) verbunden ist, wobei der Ausgang (Q) des letzten FLIP-FLOPs (R3) in der codeproduzierenden Reihe, welcher den Ausgang des Codegenerators bildet, mit dem Eingang (D) eines XOR-Gatters (XF^ verbunden ist, dessen Ausgang mit dem Eingang (D) des ersten FLIP-FLOPs (R^ in der codeproduzierenden Reihe verbunden ist und an dessen zweiten Eingang ein Eingangssignal anliegt, dadurch gekennzeichnet, dass mehrere derartige Rückkopplungen vorgesehen sind und dass bei zumindest zwei Rückkopplungen zwischen dem weiteren, in der codeproduzierenden Reihe weiter hinten befindlichen FLIP-FLOP (R2, R3) und dem XORGatter (XF2) ein UND-Gatter (UR23; UR22) vorgesehen ist, dessen zweiter Eingang über Lookup-Tables ansteuerbar ist.
2. Codegenerator nach Anspruch 1, dadurch gekennzeichnet, dass zwischen dem Ausgang (Q) eines FLIP-FLOPs (R^ R2) und dem Eingang (D) des in der Reihe nachfolgenden FLIP-FLOPs (R2, R3) ein UND-Gatter (UF2, UF3) vorgesehen ist, dessen zweiter Eingang von einem Lookup-Table-Manager ansteuerbar ist.
3. Codegenerator nach Anspruch 1 oder 2, dadurch gekennzeichnet, dass zwischen dem Ausgang (Q) eines FLIP-FLOPs (R^ R2) und dem Eingang (D) des in der Reihe nachfolgenden FLIP-FLOPs (R2, R3) ein ODER-Gatter (OF2, OF3) vorgesehen ist, dessen zweiter Eingang von einem Lookup- Table-Manager ansteuerbar ist.
ATA50661/2014A 2014-09-19 2014-09-19 Codegenerator AT516290B1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
ATA50661/2014A AT516290B1 (de) 2014-09-19 2014-09-19 Codegenerator

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
ATA50661/2014A AT516290B1 (de) 2014-09-19 2014-09-19 Codegenerator

Publications (2)

Publication Number Publication Date
AT516290A1 AT516290A1 (de) 2016-04-15
AT516290B1 true AT516290B1 (de) 2019-09-15

Family

ID=55656479

Family Applications (1)

Application Number Title Priority Date Filing Date
ATA50661/2014A AT516290B1 (de) 2014-09-19 2014-09-19 Codegenerator

Country Status (1)

Country Link
AT (1) AT516290B1 (de)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0887728A2 (de) * 1997-05-21 1998-12-30 Nec Corporation Pseudozufallszahlenreihengenerator
US20030063741A1 (en) * 2001-09-28 2003-04-03 Bedros Hanounik Cipher block chaining mode in encryption/decryption processing
AT412747B (de) * 2002-03-05 2005-06-27 Rene-Michael Mag Cordes Codegenerator und vorrichtung zur synchronen oder asynchronen sowie permanenten identifikation oder ver- und endschlüsselung von daten beliebiger länge
AT510730A1 (de) * 2010-12-02 2012-06-15 Rene-Michael Mag Cordes Verfahren und vorrichtung zur durchführung einer symmetrischen stromverschlüsselung von daten

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0887728A2 (de) * 1997-05-21 1998-12-30 Nec Corporation Pseudozufallszahlenreihengenerator
US20030063741A1 (en) * 2001-09-28 2003-04-03 Bedros Hanounik Cipher block chaining mode in encryption/decryption processing
AT412747B (de) * 2002-03-05 2005-06-27 Rene-Michael Mag Cordes Codegenerator und vorrichtung zur synchronen oder asynchronen sowie permanenten identifikation oder ver- und endschlüsselung von daten beliebiger länge
AT510730A1 (de) * 2010-12-02 2012-06-15 Rene-Michael Mag Cordes Verfahren und vorrichtung zur durchführung einer symmetrischen stromverschlüsselung von daten

Also Published As

Publication number Publication date
AT516290A1 (de) 2016-04-15

Similar Documents

Publication Publication Date Title
EP3028140B1 (de) Konstruieren einer schaltung geeignet zur erzeugung von zufallsbits und schaltung zur erzeugung von zufallsbits
DE1537062C3 (de) Schlüsselgenerator
DE3618865A1 (de) Maximallaengen-schieberegister-schaltfolge-generator
DE102013111844A1 (de) Hochauflösende Steuerung für einen Multimodus-Schaltnetzwandler und hochauflösender Flankengenerator
EP2446580B1 (de) Vorrichtung und verfahren zur bildung einer signatur
DE2154019C3 (de) Zufallskodegenerator
DE2158013A1 (de) Tastatur-Eingabewerk
WO2010083911A2 (de) Nichtlinear rückgekoppeltes schieberegister sowie verfahren zur nichtlinearen signaturbildung
DE102005029819B4 (de) Sigma-Delta-Umsetzer und Verwendung desselben
AT516290B1 (de) Codegenerator
DE2359997C3 (de) Binäruntersetzerstufe
DE1947555A1 (de) Impuls-Generator fuer aus Impulsen zusammengesetzte Daten-Worte
WO2017177243A1 (de) Code-generator
DE1107431B (de) Programm-UEberspringungs- und Wiederholungsschaltung
DE10231186B4 (de) Frequenzteiler
DE1212142B (de) Schaltungsanordnung zur Erzeugung mehrerer phasenverschobener Impulszuege
DE2114766A1 (de) Eingabevorrichtung
DE1182296B (de) Schaltungsanordnung zur Realisierung logischer Funktionen
DE2042638A1 (de) Treiberstufe in Großintegrations techmk fur bipolare Einrichtungen
DE1286088B (de) Impulsgenerator fuer die Erzeugung von Impulsfolgen mit wahlweise einstellbarer Betriebsart
DE102014202077A1 (de) Digitale Schaltung zur Erzeugung eines pulsweitenmodulierten Signals, insbesondere zur Regelung einer analogen Größe
DE102004010405A1 (de) Frequenzteilerschaltung mit steuerbarem Frequenzteilerverhältnis und Verfahren zur Frequenzteilung in einer Frequenzteilerschaltung
DE1591820B1 (de) Leistungsverstaerker mit mindestens zwei von einer tastbaren Steuerspannungsquelle abwechselnd geoeffneten Schalttransistoren
CH647366A5 (de) Kodiereinrichtung fuer binaere datensignale und dekodiereinrichtung fuer diese datensignale.
DE102018119978A1 (de) Ultraschallgenerator und Verfahren zum Betreiben desselben