Login| Sign Up| Help| Contact|

Patent Searching and Data


Title:
METHOD AND DEVICE FOR PERFORMING A SYMMETRIC STREAM ENCYPTION OF DATA
Document Type and Number:
WIPO Patent Application WO/2015/176087
Kind Code:
A1
Abstract:
With a method for performing a symmetric stream encryption of data by using a key stream and for transferring encrypted data, wherein the key stream is generated by using at least one feedback shift register filled for the initialisation of same with a defined bit sequence, the data to be encrypted are divided up into data packets, wherein each data packet is encrypted separately. The respective feedback shift register(s) is/are respectively re-initialised for the encryption of each data packet, wherein at least one first bit sequence and one second bit sequence are used to initialise each respective feedback shift register, wherein the first bit sequence is added to each encrypted data packet in plain text or in encoded form and the second bit sequence displays a secret key, said second bit sequence not being added to the encrypted data packets. The encrypted data packets are transferred together with the respective added bit sequences and, if necessary, the header data, in a packet-communicated manner. The first bit sequence is generated using a non-deterministic random number generator.

Inventors:
SCHOBESBERGER ERNESTO (AT)
CORDES RENÉ-MICHAEL (AT)
KOTSCH LESZEK A (AT)
Application Number:
PCT/AT2015/000077
Publication Date:
November 26, 2015
Filing Date:
May 20, 2015
Export Citation:
Click for automatic bibliography generation   Help
Assignee:
LOGODYNAMIC UNIT GMBH (AT)
International Classes:
H04L9/06
Domestic Patent References:
WO2012071597A12012-06-07
WO2012071597A12012-06-07
WO2003075507A12003-09-12
Foreign References:
US20040019619A12004-01-29
US20090110137A12009-04-30
Attorney, Agent or Firm:
KESCHMANN, Marc (AT)
Download PDF:
Claims:
Patentansprüche :

1. Verfahren zur Durchführung einer symmetrischen Stromverschlüsselung von Daten unter Verwendung eines Schlüsselstroms und zur Übertragung der verschlüsselten Daten, wobei die Generierung des Schlüsselstroms unter Verwendung wenigstens eines rückgekoppelten Schieberegisters erfolgt, das zu seiner Initialisierung mit einer definierten Bitfolge gefüllt wird, wobei die zu verschlüsselnden Daten in Datenpakete aufgeteilt werden und jedes Datenpaket gesondert verschlüsselt wird, wobei das bzw. die rückgekoppelte (n) Schieberegister für die Verschlüsselung jedes Datenpakets neu initialisiert wird bzw. werden, wobei zur Initialisierung des bzw. der rückgekoppelten Schieberegister jeweils wenigstens eine erste Bitfolge und eine zweite Bitfolge verwendet wird, wobei die erste Bitfolge dem jeweils verschlüsselten Datenpaket im Klartext oder in codierter Form hinzugefügt wird und die zweite Bitfolge einen geheimen Schlüssel darstellt, die den verschlüsselten Datenpaketen nicht hinzugefügt wird, und wobei die verschlüsselten Datenpakete samt der jeweiligen hinzugefügten Bitfolge und ggf. Kopfdaten paketvermittelt übertragen werden, dadurch gekennzeichnet, dass die erste Bitfolge unter Verwendung eines nichtdeterministischen Zufallszahlengenerators generiert wird. 2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass der nichtdeterministische Zufallszahlengenerator einen Pseudo- zufallsgenerator umfasst, der eine pseudozufällige Zeichenfolge generiert, aus welcher zu zufälligen Zeitpunkten jeweils ein Teilabschnitt genommen und als erste Bitfolge verwendet wird.

3. Verfahren nach Anspruch 2, dadurch gekennzeichnet, dass die pseudozufällige Zeichenfolge in einen Ringpuffer geschrie- ben wird und die erste Bitfolge aus dem Ringpuffer ausgelesen wird .

4. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass der Ringpuffer eine Speicherkapazität aufweist, die einem Vielfachen der Länge der ersten Bitfolge entspricht.

5. Verfahren nach Anspruch 2, 3 oder 4, dadurch gekennzeichnet, dass als zufälliger Zeitpunkt der Zeitpunkt des Eintref- fens bzw. Detektierens eines zu verschlüsselnden Datenpakets gewählt wird.

6. Verfahren nach einem der Ansprüche 1 bis 5, dadurch gekennzeichnet, dass wenigstens ein erstes rückgekoppeltes Schie- beregister zu seiner Initialisierung mit der ersten Bitfolge gefüllt wird und wenigstens ein zweites rückgekoppeltes Schieberegister zu seiner Initialisierung mit der zweiten Bitfolge gefüllt wird. 7. Verfahren nach einem der Ansprüche 1 bis 6, dadurch gekennzeichnet, dass die Generierung des Schlüsselstroms beginnt, sobald alle rückgekoppelten Schieberegister mit jeweiligen Bitfolgen gefüllt sind. 8. Verfahren nach einem der Ansprüche 1 bis 7, dadurch gekennzeichnet, dass wenigstens zwei rückgekoppelte Schieberegister gleichzeitig mit der jeweiligen Bitfolge gefüllt werden.

9. Verfahren nach einem der Ansprüche 1 bis 8, dadurch ge- kennzeichnet, dass zur Rückkoppelung des bzw. der Schieberegister wenigstens ein XOR-Gatter verwendet wird.

10. Verfahren nach einem der Ansprüche 1 bis 9, dadurch gekennzeichnet, dass die rückgekoppelten Schieberegister derart miteinander verschaltet sind, dass in Abhängigkeit vom Zustand des einen Schieberegisters das wenigstens eine XOR-Gatter des anderen Schieberegister an- oder abgeschaltet wird.

11. Verfahren nach einem der Ansprüche 1 bis 10, dadurch gekennzeichnet, dass das wenigstens eine rückgekoppelte Schieberegister eine Mehrzahl von zu einer codeproduzierenden Reihe geschalteten Speicherelementen aufweist, wobei der Ausgang des in der Reihe letzten Speicherelements mit dem Eingang des in der Reihe ersten Speicherelements zu einem Kreis zusammengeschlossen ist, wobei die Rückkoppelung mit Hilfe des wenigstens einen XOR-Gatters derart erfolgt, dass der erste Eingang des XOR-Gatters mit dem Ausgang eines in der codeproduzierenden Reihe befindlichen Speicherelements, der zweite Eingang mit dem Ausgang eines weiteren in der codeproduzierenden Reihe befindlichen Speicherelements und der Ausgang mit dem Eingang des in der codeproduzierenden Reihe dem mit dem ersten Eingang des XOR-Gatters verbundenen Speicherelement nachfolgenden Speicherelements verbunden ist.

12. Verfahren nach Anspruch 11, dadurch gekennzeichnet, dass in die den zweiten Eingang des wenigstens einen XOR-Gatters und den Ausgang des weiteren in der codeproduzierenden Reihe befindlichen Speicherelements verbindende Leitung ein UND-Gatter derart geschalten ist, dass der Ausgang des UND-Gatters mit dem zweiten Eingang des XOR-Gatters, der erste Eingang des UND- Gatters mit dem Ausgang des weiteren in der codeproduzierenden Reihe befindlichen Speicherelements und der zweite Eingang des UND-Gatters mit dem Ausgang eines codeprogrammierenden Speicherelements verbunden ist, wobei als codeprogrammierendes Speicherelement ein Speicherelement eines weiteren rückgekop- pelten Schieberegisters verwendet wird, und dass bevorzugt der Ausgang eines in der codeproduzierenden Reihe befindlichen Speicherelements mit dem Eingang eines Inverters und der Ausgang des Inverters mit dem Eingang eines anderen in der code- produzierenden Reihe angeordneten Speicherelements verbunden ist .

13. Vorrichtung zum Verschlüsseln von Daten mit Hilfe einer symmetrischen Stromverschlüsselung unter Verwendung eines Schlüsselstroms (3) , insbesondere zur Durchführung des Verfahrens nach einem der Ansprüche 1 bis 12, wobei zur Generierung des Schlüsselstroms (3) wenigstens ein rückgekoppeltes Schieberegister (27; 30,31; 33, 34) vorgesehen ist, das zu seiner Initialisierung jeweils mit einer definierten Bitfolge gefüllt wird, wobei die Daten in Datenpakete (1) aufgeteilt vorliegen, wobei Mittel (9,10) zum Speichern wenigstens einer ersten Bitfolge (6) und einer zweiten Bitfolge (7) vorgesehen sind, die mit dem bzw. den Schieberegister (n) (27; 30,31; 33, 34) derart zusammenwirken, dass wenigstens die erste Bitfolge (6) und die zweite Bitfolge (7) zur Initialisierung des bzw. der rückgekoppelten Schieberegister (27; 30,31; 33,34) verwendet werden, wobei das bzw. die rückgekoppelte (n) Schieberegister (27; 30,31; 33,34) für die Verschlüsselung jedes Datenpakets (1) neu initialisiert wird bzw. werden, wobei Datenpaketverarbeitungs- mittel (15) vorgesehen sind, mit denen die Mittel (9,10) zum Speichern der ersten (6) und der zweiten (7) Bitfolge derart zusammenwirken, dass die erste Bitfolge (6) dem jeweils verschlüsselten Datenpaket im Klartext (17) oder in codierter Form hinzugefügt wird und die zweite Bitfolge (7) einen geheimen Schlüssel darstellt, die den verschlüsselten Datenpaketen nicht hinzugefügt wird, und wobei Datenübertragungsmittel (19) zum paketvermittelten Versenden der verschlüsselten Datenpakete samt der jeweiligen hinzugefügten Bitfolge (17) und ggf. Kopf- daten (16) vorgesehen sind, dadurch gekennzeichnet, dass die Mittel zum Generieren der ersten Bitfolge einen nichtdeterministischen Zufallszahlengenerator (9) umfassen. 14. Vorrichtung nach Anspruch 13, dadurch gekennzeichnet, dass der nichtdeterministische Zufallszahlengenerator (9) einen Pseudozufallsgenerator (40) umfasst, der eine pseudozufällige Zeichenfolge (41) generiert, wobei Mittel zum Detektieren eines zufälligen Ereignisses vorgesehen sind, die mit der pseudozu- fälligen Zeichenfolge (41) derart zusammenwirken, dass bei De- tektion des zufälligen Ereignisses jeweils ein Teilabschnitt (44) aus der pseudozufälligen Zeichenfolge genommen und als erste Bitfolge (6) verwendet wird. 15. Vorrichtung nach Anspruch 14, dadurch gekennzeichnet, dass ein mit dem Pseudozufallsgenerator (40) verbundener Ringpuffer (42) vorgesehen ist, um die pseudozufällige Zeichenfolge (41) in den Ringpuffer (42) zu schreiben und dass Mittel zum Auslesen der ersten Bitfolge aus dem Ringpuffer vorgesehen sind.

16. Vorrichtung nach Anspruch 15, dadurch gekennzeichnet, dass der Ringpuffer (42) eine Speicherkapazität aufweist, die einem Vielfachen der Länge der ersten Bitfolge (6) entspricht. 17. Vorrichtung nach Anspruch 14, 15 oder 16, dadurch gekennzeichnet, dass die Mittel zum Detektieren eines zufälligen Ereignisses von einem Datenpaketdetektor (38) gebildet sind, der den Zeitpunkt des Eintreffens eines zu verschlüsselnden Datenpakets (1) detektiert.

18. Vorrichtung nach einem der Ansprüche 13 bis 17, dadurch gekennzeichnet, dass die Mittel (9,10; 20,21,24) zum Speichern bzw. Auslesen der ersten (6) und der zweiten (7) Bitfolge mit einem XOR-Gatter (28) derart zusammenwirken, dass die erste Bitfolge (6) und die zweite Bitfolge (7) mit Hilfe einer XOR-

Funktion verknüpft werden, wobei die sich aus der Verknüpfung ergebende Bitfolge zur Initialisierung dem rückgekoppelten Schieberegister (27) zugeführt ist.

19. Vorrichtung nach einem der Ansprüche 13 bis 18, dadurch gekennzeichnet, dass die erste Bitfolge (6) wenigstens einem ersten rückgekoppelten Schieberegister (30; 33) zu dessen Initi- alisierung zugeführt ist und die zweite Bitfolge (7) wenigstens einem zweiten rückgekoppelten Schieberegister (31;34) zu dessen Initialisierung zugeführt ist.

20. Vorrichtung nach einem der Ansprüche 13 bis 19, dadurch gekennzeichnet, dass die Generierung des Schlüsselstroms (3) beginnt, sobald alle rückgekoppelten Schieberegister (27; 30,31; 33,34) mit der jeweiligen Bitfolge gefüllt sind.

21. Vorrichtung nach einem der Ansprüche 13 bis 20, dadurch gekennzeichnet, dass wenigstens zwei rückgekoppelte Schieberegister (30,31; 33,34) gleichzeitig mit der jeweiligen Bitfolgen gefüllt werden.

22. Vorrichtung nach einem der Ansprüche 13 bis 21, dadurch gekennzeichnet, dass zur Rückkoppelung des bzw. der Schieberegister (27; 30,31; 33,34) wenigstens ein XOR-Gatter (XORpl, XORp2, XORp3, XORp4, XORppl, XORpppl) eingesetzt ist.

23. Vorrichtung nach einem der Ansprüche 13 bis 22, dadurch gekennzeichnet, dass die rückgekoppelten Schieberegister

(30,31; 33,34) derart miteinander verschaltet sind, dass in Abhängigkeit vom Zustand des einen Schieberegisters das wenigs- tens eine XOR-Gatter (XORpl, XORp2, XORp3, XORp4, XORppl) des anderen Schieberegister an- oder abgeschaltet wird.

24. Vorrichtung nach einem der Ansprüche 12 bis 23, dadurch gekennzeichnet, dass das wenigstens eine rückgekoppelte Schieberegister (30,31; 33,34) eine Mehrzahl von zu einer codeproduzierenden Reihe geschalteten Speicherelementen (FF1, FF2,...; FFpl, FFp2,...) aufweist, wobei der Ausgang des in der Reihe letzten Speicherelements mit dem Eingang des in der Reihe ers- ten Speicherelements zu einem Kreis zusammengeschlossen ist, wobei die Rückkoppelung mit Hilfe des wenigstens einen XOR- Gatters (XORpl, XORp2, XORp3, XORp4, XORppl) derart erfolgt, dass der erste Eingang des XOR-Gatters mit dem Ausgang eines in der codeproduzierenden Reihe befindlichen Speicherelements (FF2), der zweite Eingang mit dem Ausgang eines weiteren in der codeproduzierenden Reihe befindlichen Speicherelements (FF5) und der Ausgang mit dem Eingang des in der codeproduzierenden Reihe dem mit dem ersten Eingang des XOR-Gatters verbundenen Speicherelement nachfolgenden Speicherelements (FF3) verbunden ist.

25. Vorrichtung nach Anspruch 24, dadurch gekennzeichnet, dass in die den zweiten Eingang des wenigstens einen XOR-Gatters (XORpl) und den Ausgang des weiteren in der codeproduzierenden Reihe (30; 33) befindlichen Speicherelements (FF5) verbindende Leitung ein UND-Gatter (UNDpl) derart geschalten ist, dass der Ausgang des UND-Gatters (UNDpl) mit dem zweiten Eingang des XOR-Gatters (XORpl), der erste Eingang des UND-Gatters (UNDpl) mit dem Ausgang des weiteren in der codeproduzierenden Reihe (30; 33) befindlichen Speicherelements (FF5) und der zweite Ein¬ gang des UND-Gatters (UNDpl) mit dem Ausgang eines codeprogram¬ mierenden Speicherelements (FFp2) verbunden ist und dass bevor¬ zugt der Ausgang eines in der codeproduzierenden Reihe (30; 33) befindlichen Speicherelements (FF9) mit dem Eingang eines In- verters (INV) und der Ausgang des Inverters (INV) mit dem Eingang eines anderen in der codeproduzierenden Reihe (30; 33) angeordneten Speicherelements (FF1) verbunden ist, wobei als co- deprogrammierendes Speicherelement ein Speicherelement eines weiteren rückgekoppelten Schieberegisters (31; 34) verwendet wird.

26. Vorrichtung nach Anspruch 24 oder 25, dadurch gekennzeich- net, dass eine Mehrzahl von XOR-Gattern (XORpl , p2 , p3 , p4 ) vorgesehen ist, deren erster Eingang jeweils von einem Ausgang eines in der codeproduzierenden Reihe (30; 33) befindlichen Speicherelements (FF1,2,3,4) gespeist wird und deren zweiter Eingang jeweils vom Ausgang eines weiteren in der codeproduzieren- den Reihe (30; 33) befindlichen Speicherelements ( FF8 , 15 , 20 , 23 ) gespeist wird, welches eine Anzahl von Speicherelementen in Flussrichtung der Reihe (30; 33) von dem jeweils mit dem ersten Eingang verbundenen Speicherelement (FF1,2,3,4) entfernt ist, welche jeweils einer unterschiedlichen Primzahl entspricht, die größer als 1 und kein Teilbetrag der Gesamtzahl der in Reihe (30;33) geschalteten Speicherelemente (FFl,2,...n) ist.

27. Vorrichtung nach einem der Ansprüche 24 bis 26, dadurch gekennzeichnet, dass eine Mehrzahl von codeprogrammierenden, jeweils einem UND-Gatter (ÜNDpl , p2 , p3 , p4 ) und einem XOR-Gatter (XORpl , p2 , p3 , p4 ) zugeordneten Speicherelementen (FFpl,p2,p3, p4,...pn) vorgesehen und in einer zu einem Kreis geschlossenen Reihe (31; 34) geschalten ist und wenigstens ein XOR-Gatter (XORppl) angeordnet ist, dessen erster Eingang mit dem Ausgang eines in der codeprogrammierenden Reihe (31;34) befindlichen Speicherelements (FFp6), dessen zweiter Eingang mit dem Ausgang eines weiteren in der codeprogrammierenden Reihe (31;34) befindlichen Speicherelements (FFp5) und dessen Ausgang mit dem Eingang des in der codeprogrammierenden Reihe (31; 34) dem mit dem ersten Eingang des XOR-Gatters (XORppl) verbundenen Spei¬ cherelement (FFp6) nachfolgenden Speicherelements (FFpl) ver¬ bunden ist.

Description:
Verfahren und Vorrichtung zur Durchführung einer symmetrischen Stromverschlüsselung von Daten

Die Erfindung betrifft ein Verfahren zur Durchführung einer symmetrischen Stromverschlüsselung von Daten unter Verwendung eines Schlüsselstroms und zur Übertragung der verschlüsselten Daten, wobei die Generierung des Schlüsselstroms unter Verwendung wenigstens eines rückgekoppelten Schieberegisters erfolgt, das zu seiner Initialisierung mit einer definierten Bitfolge gefüllt wird, wobei die zu verschlüsselnden Daten in Datenpakete aufgeteilt werden und jedes Datenpaket gesondert verschlüsselt wird, wobei das bzw. die rückgekoppelte (n) Schieberegister für die Verschlüsselung jedes Datenpakets neu initialisiert wird bzw. werden, wobei zur Initialisierung des bzw. der rück- gekoppelten Schieberegister jeweils wenigstens eine erste Bitfolge und eine zweite Bitfolge verwendet wird, wobei die erste Bitfolge dem jeweils verschlüsselten Datenpaket im Klartext oder in codierter Form hinzugefügt wird und die zweite Bitfolge einen geheimen Schlüssel darstellt, die den verschlüsselten Datenpaketen nicht hinzugefügt wird, und wobei die verschlüsselten Datenpakete samt der jeweiligen hinzugefügten Bitfolge und ggf. Kopfdaten paketvermittelt übertragen werden.

Die Erfindung betrifft weiters eine Vorrichtung zum Verschlüs- sein von Daten mit Hilfe einer symmetrischen Stromverschlüsselung unter Verwendung eines Schlüsselstroms, wobei zur Generierung des Schlüsselstroms wenigstens ein rückgekoppeltes Schieberegister vorgesehen ist, das zu seiner Initialisierung jeweils mit einer definierten Bitfolge gefüllt wird, wobei die Daten in Datenpakete aufgeteilt vorliegen, wobei Mittel zum Generieren und/oder Speichern wenigstens einer ersten Bitfolge und einer zweiten Bitfolge vorgesehen sind, die mit dem bzw. den Schieberegister (n) derart zusammenwirken, dass wenigstens die erste Bitfolge und die zweite Bitfolge zur Initialisierung des bzw. der rückgekoppelten Schieberegister verwendet werden, wobei das bzw. die rückgekoppelte (n) Schieberegister für die Verschlüsselung jedes Datenpakets neu initialisiert wird bzw. werden, wobei Datenpaketverarbeitungsmittel vorgesehen sind, mit denen die Mittel zum Generieren bzw. Speichern der ersten und der zweiten Bitfolge derart zusammenwirken, dass die erste Bitfolge dem jeweils verschlüsselten Datenpaket im Klartext oder in codierter Form hinzugefügt wird und die zweite Bitfolge einen geheimen Schlüssel darstellt, die den verschlüsselten Datenpaketen nicht hinzugefügt wird, und wobei Datenübertragungsmittel zum paketvermittelten Versenden der verschlüsselten Datenpakete samt der jeweiligen hinzugefügten Bitfolge und ggf. Kopfdaten vorgesehen sind.

Ein solches Verfahren und eine solche Vorrichtung sind in der WO 2012/071597 AI beschrieben.

Als Stromverschlüsselung bezeichnet man einen kryptographischen Algorithmus, bei dem Zeichen des Klartextes mit den Zeichen eines Schlüsselstroms einzeln verknüpft werden. Im Fall der Stromverschlüsselung von digitalen Daten - es kommen nur die Zeichen 0 und 1 zum Einsatz - erfolgt die Verknüpfung des Klartextstroms mit dem Schlüsselstrom mit Hilfe der XOR-Funktion . Der Schlüsselstrom ist eine pseudozufällige Zeichenfolge. Die meisten Stromchiffrierungen benutzen einen symmetrischen Schlüssel. Der Schlüssel bestimmt den Initialzustand des Sys ¬ tems . Zur Erzeugung des Schlüsselstroms wird in der Regel wenigstens ein rückgekoppeltes Schieberegister verwendet. Linear rückgekoppelte Schieberegister können effizient sowohl direkt in Hardware, wie beispielsweise FPGAs, als auch in Software imple- mentiert werden. Rückgekoppelte Schieberegister sind schnell und produzieren Pseudozufallsfolgen mit guten statistischen Eigenschaften. Ein rückgekoppeltes Schieberegister ist in der Digitaltechnik als ein Schieberegister mit n Speicherelementen realisiert. Die einzelnen Speicherelemente sind typischerweise D-Flipflops, welche je ein Bit speichern können. Im Gegensatz zu einem herkömmlichen Schieberegister bestehen zwischen bestimmten D-Flipflops Abzweigungen, welche die Rückkopplungen darstellen. Zur Rückkoppelung wird in der Regel jeweils eine XOR-Funktion verwendet. Statt der XOR-Verknüpfung kann aber auch eine XNOR-Verknüpfung eingesetzt werden.

Zur Initialisierung kann das Schieberegister mit XOR-Rück- kopplung mit beliebigen Werten gefüllt werden, die den vom Schieberegister in der Folge generierten Schlüsselstrom bestimmen. Wie jedes andere Schieberegister verfügt auch das rückgekoppelte Schieberegister über einen Takteingang: Bei jedem Taktimpuls wird in den Folgezustand gewechselt, d.h. wenn ein Bit ausgegeben werden soll, werden alle Bits im Schieberegister um einen Speicherplatz verschoben; das neue Bit am Ende des Schieberegisters wird abhängig von den anderen Bits berechnet. Dieser Vorgang zählt als ein Takt. Für einen vollständigen Durchlauf aller Kombinationen sind 2 n_1 Taktimpulse notwendig. Eine derartige Codesequenz hat somit eine Länge von 2 n-1 bit (n = Anzahl der codegenerierenden in Reihe geschalteten Speicherelemente des Schieberegisters). Als Schlüsselstromgenerator werden in der Regel mehrere lineare rückgekoppelte Schieberegister eingesetzt, die meist unterschiedlich lang sind und unterschiedliche Rückkopplungspolynome haben. Damit kombiniert man lineare rückgekoppelte Schieberegister zu nichtlinearen Generatoren . Je größer die Länge der Codesequenz des Schlüsselstroms bzw. des Codes ist, desto schwerer ist dieser zu entschlüsseln. Beispielsweise brauchte ein unendlicher Code gar nicht versteckt zu werden, da er ja nie ganz bekannt ist. Funktionell ist jeder Code als unendlich anzusehen, der sich nicht vor dem Ende der zu verschlüsselnden Information wiederholt. Ein funktionell unendlicher Code hat den Nachteil, dass er nicht übertragen werden kann; er muss generiert werden.

Nachteilig bei Codegeneratoren in der Form von herkömmlichen rückgekoppelten Schieberegistern ist die Tatsache, dass von der Codesequenz leicht auf die Struktur des Generators geschlossen werden kann, so dass sie mit einem gleichgebauten Generator nachgeneriert werden kann. Eine wesentliche Verbesserung wird in dieser Hinsicht durch den aus der WO 03/075507 AI bekannten Codegenerator erzielt.

Ein weiterer Nachteil bei der herkömmlichen Stromverschlüsselung von Daten ist der Umstand, dass sie bei der paketvermittelten Datenübertragung (z.B. im Internet über das IP- Protokoll) nur unter Verringerung der Verschlüsselungssicherheit verwendet werden kann. Bei der paketvermittelten Datenübertragung muss jedes Datenpaket gesondert verschlüsselt werden und der für die Verschlüsselung jedes Datenpakets verwendete Schlüssel muss beim Empfänger zum Zwecke der Entschlüsselung bekannt sein, um eine Entschlüsselung auch dann zu ermöglichen, wenn einzelne Datenpakete verloren gehen, Pakete doppelt beim Empfänger ankommen, Pakete verschiedene Wege nehmen oder Pakete fragmentiert beim Empfänger ankommen. Die einfachste Möglichkeit, auch unter den Bedingungen dieser Fehlfunktionen eine eindeutige Zuordnung von Daten mit dem Schlüssel bzw. Schlüsselstrom zu gewährleisten, ist es für jedes Datenpaket densel- ben Schlüsselstrom zu verwenden. Dies erleichtert es aber, die Verschlüsselung zu brechen.

In der WO 2012/071597 AI wurde daher ein Verfahren vorgeschla- gen, bei dem der Schlüsselstromgenerator für jedes Datenpaket neu initialisiert wird, wobei zur Initialisierung des bzw. der rückgekoppelten Schieberegister des Schlüsselstromgenerators jeweils wenigstens eine erste Bitfolge und eine zweite Bitfolge verwendet wird, wobei die erste Bitfolge dem jeweils verschlüs- selten Datenpaket im Klartext oder in codierter Form hinzugefügt wird und die zweite Bitfolge einen geheimen Schlüssel darstellt, die den verschlüsselten Datenpaketen nicht hinzugefügt wird. Sämtliche für die Entschlüsselung jedes einzelnen Datenpakets erforderliche Information mit Ausnahme des geheimen Schlüssels wird im jeweiligen Paket mitgeführt, sodass die Kommunikationspartner lediglich den geheimen Schlüssel bzw. die für die Generierung des geheimen Schlüssels erforderlichen Informationen vor der Datenübermittlung austauschen müssen. Dadurch, dass jedes Datenpaket die erste Bitfolge im Klartext oder in codierter Form enthält, die zur Verschlüsselung des jeweiligen Datenpakets verwendet wurde, kann diese erste Bitfolge vom Empfänger aus dem jeweiligen Datenpaket ausgelesen und zum Entschlüsseln herangezogen werden. Dies ermöglicht es, jedes Datenpaket mit einem anderen Schlüssel zu verschlüsseln, sodass ein Brechen der Verschlüsselung erschwert wird. Zu diesem Zweck wurde in der WO 2012/071597 AI vorgeschlagen, als erste Bitfolge eine für das zu verschlüsselnde Paket eindeutige Paketnummer zu wählen. Die vorliegende Erfindung zielt nun darauf ab, das Verfahren gemäß WO 2012/071597 AI noch weiter zu verbessern, um das Brechen der Verschlüsselung zu verunmöglichen. Zur Lösung dieser Aufgabe sieht die Erfindung bei einem Verfahren der eingangs genannten Art vor, dass die erste Bitfolge unter Verwendung eines nichtdeterministischen Zufallszahlengenerators generiert wird. Als nichtdeterministischer Zufallszahlengenerator kann zum Beispiel ein hardwarebasierter, physikalischer Zufallsgene- rator zum Einsatz kommen. Die zufällige Informationsquelle kann aber auch nicht vorhersehbare Zustände in bestimmten Prozessen des Systems sein. In besonders einfacher Weise kann der nichtdeterministische Zufallszahlengenerator einen Pseudozufallsge- nerator umfassen, der eine pseudozufällige Zeichenfolge gene- riert, aus welcher zu zufälligen Zeitpunkten jeweils ein Teilabschnitt genommen und als erste Bitfolge verwendet wird.

Eine bevorzugte Ausbildung sieht in diesem Zusammenhang vor, dass die pseudozufällige Zeichenfolge in einen Ringpuffer ge- schrieben wird und die erste Bitfolge aus dem Ringpuffer ausgelesen wird. Hierbei sollte der Ringpuffer eine Speicherkapazität aufweisen, die einem Vielfachen der Länge der ersten Bitfolge entspricht. Besonders bevorzugt wird als zufälliger Zeitpunkt der Zeitpunkt des Eintreffens bzw. Detektierens eines zu verschlüsselnden Datenpakets gewählt.

Was die Codegenerierung selbst betrifft, können die folgenden bevorzugten Ausbildung zum Einsatz gelangen.

Wie erwähnt werden die erste und die zweite Bitfolge im Rahmen der Ver- bzw. Entschlüsselung dazu verwendet, das oder die rückgekoppelte (n) Schieberegister zu initialisieren. Für den Fall, dass wenigstens zwei miteinander verschaltete rückgekoppelte Schieberegister für die Generierung des Schlüsselstroms verwendet werden, wird dabei bevorzugt so vorgegangen, dass wenigstens ein erstes rückgekoppeltes Schieberegister zu seiner Initialisierung mit der ersten Bitfolge gefüllt wird und wenigstens ein zweites rückgekoppeltes Schieberegister zu seiner Initialisierung mit der zweiten Bitfolge gefüllt wird. Diese Vorgehensweise erschwert es, auf Grundlage der im Klartext mit- übermittelten ersten Bitfolge die Struktur des Schlüsselstromgenerators und/oder den geheimen Schlüssel zu ermitteln.

Ein weiterer Vorteil des erfindungsgemäßen Verfahrens ist, dass die Generierung des Schlüsselstroms beginnen kann, sobald alle rückgekoppelten Schieberegister gleichzeitig mit der jeweiligen Bitfolge gefüllt werden.

Die Struktur des Schlüsselstromgenerators ist wie an sich bekannt bevorzugt so, dass zur Rückkoppelung des bzw. der Schie- beregister wenigstens ein XOR-Gatter verwendet wird. Die Komplexität des Generators kann dabei in einfacher Weise dadurch erhöht werden, dass die rückgekoppelten Schieberegister derart miteinander verschaltet sind, dass in Abhängigkeit vom Zustand des einen Schieberegisters das wenigstens eine XOR-Gatter des anderen Schieberegister an- oder abgeschaltet wird.

Eine überaus bevorzugte Weiterbildung ergibt sich, wenn ein Codegenerator zum Einsatz gelangt, wie er in der WO 03/075507 AI beschrieben ist, wobei auf die Ansprüche 10 bis 12 sowie 22 bis 27 der vorliegenden Anmeldung verwiesen wird. Bei einem derartigen Codegenerator kann die Verschlüsselung nicht einmal dann gebrochen werden, wenn sowohl die Struktur des Codegenerators als auch der in ihm ablaufende Algorithmus bekannt sind. Die Struktur des Generators ist nämlich so geartet, dass sie eine derartig hohe Anzahl an unterschiedlichen Codes in einer derartig großen Länge zu generieren im Stande ist, dass die Entdeckung des gerade verwendeten Codes so wie die aktuell produzierte Stelle in der Codesequenz nur mit einer extrem gerin- gen Wahrscheinlichkeit möglich ist. Der Code kann dann nicht nachgeneriert werden, wenn der Generator so viele verschiedene Codes erstellen kann, dass von einem Abschnitt des einzelnen Codes nicht auf dessen Fortsetzung geschlossen werden kann.

Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird eine Verschlüsselungsvorrichtung vorgeschlagen.

Die erfindungsgemäße Vorrichtung zum Verschlüsseln von Daten mit Hilfe einer symmetrischen Stromverschlüsselung unter Verwendung eines Schlüsselstroms, wobei zur Generierung des Schlüsselstroms wenigstens ein rückgekoppeltes Schieberegister vorgesehen ist, das zu seiner Initialisierung jeweils mit einer definierten Bitfolge gefüllt wird, wobei die Daten in Datenpa- kete aufgeteilt vorliegen, wobei Mittel zum Generieren und/oder Speichern wenigstens einer ersten Bitfolge und einer zweiten Bitfolge vorgesehen sind, die mit dem bzw. den Schieberegisterin) derart zusammenwirken, dass wenigstens die erste Bitfolge und die zweite Bitfolge zur Initialisierung des bzw. der rückgekoppelten Schieberegister verwendet werden, wobei das bzw. die rückgekoppelte (n) Schieberegister für die Verschlüsselung jedes Datenpakets neu initialisiert wird bzw. werden, wobei Datenpaketverarbeitungsmittel vorgesehen sind, mit denen die Mittel zum Generieren bzw. Speichern der ersten und der zweiten Bitfolge derart zusammenwirken, dass die erste Bitfolge dem jeweils verschlüsselten Datenpaket im Klartext oder in codierter Form hinzugefügt wird und die zweite Bitfolge einen geheimen Schlüssel darstellt, die den verschlüsselten Datenpaketen nicht hinzugefügt wird, und wobei Datenübertragungsmittel zum paketvermittelten Versenden der verschlüsselten Datenpakete samt der jeweiligen hinzugefügten Bitfolge und ggf. Kopfdaten vorgesehen sind, ist dadurch gekennzeichnet, dass die Mittel zum Generieren der ersten Bitfolge einen nichtdeterministischen Zufallszahlengenerator umfassen.

Bevorzugte Weiterbildungen ergeben sich aus den Unteransprü- 5 chen .

Die Erfindung wird in der Folge anhand von in der Zeichnung schematisch dargestellten Ausführungsbeispielen näher erläutert. In dieser zeigen Fig.l eine erfindungsgemäße Verschlüssele) lungsvorrichtung, Fig.2 eine zugehörige Entschlüsselungsvorrichtung, Fig.3, Fig.4 und Fig.5 verschiedene Ausbildungen eines in der Vorrichtung verwendeten Schlüsselstromgenerators und Fig.6 einen in der Verschlüsselungsvorrichtung eingesetzten Zufalls zahlengenerator .

15

In Fig. 1 ist ein zu verschlüsselndes Datenpaket mit 1 bezeichnet, wobei das Datenpaket 1 eine Vielzahl von Bits im Klartext umfasst. Die Verschlüsselung erfolgt grundsätzlich derart, dass die Bits des Bitstroms 2 des Klartextes mit den Bits eines 0 Schlüsselstroms 3 einzeln mit Hilfe eines XOR-Gatters 4 verknüpft werden. Der Erzeugung des Schlüsselstroms 3 dient ein Codegenerator 5, der an Hand der Fig. 3 bis 6 noch näher beschrieben werden wird. Der Codegenerator 5 erzeugt den Schlüsselstrom 3 auf Grundlage der Bitfolgen 6 und 7, die dem Codege- 5 nerator 5 als Initialwert und Schlüssel zugeführt werden. Eine erste Bitfolge 6 wird von einem Zufallszahlengenerator 9 für jedes Datenpaket 1 erzeugt. Zu diesem Zweck ist ein Paketdetektor 38 vorgesehen, der ein eintreffendes Datenpaket 1 detek- tiert und zum Zeitpunkt der Paketdetektion ein Triggersignal 39 0 erzeugt, das dem Zufallszahlengenerator 9 zugeführt wird. Der Zeitpunkt des Eintreffens eines Datenpakets 1 stellt hierbei ein zufälliges Ereignis dar, das sicherstellt, dass der Zufallszahlengenerator 9 tatsächlich nicht-deterministisch arbei- tet. Die zweite Bitfolge 7 ist in einem Speicher 10 gespeichert. Auf Grund der Verwendung der zweiten Bitfolge 7 als Schlüssel für die Erzeugung des Schlüsselstroms 3 wird sichergestellt, dass nur der Empfänger, dem ebenfalls die Bitfolge 7 bekannt sein muss, die verschlüsselten Datenpakete entschlüsseln kann.

Die verschlüsselten Daten des Datenpakets werden nun Datenpa- ketverarbeitungsmitteln 15 zugeführt, mit denen der Zufallszah- lengenerator 9 derart zusammenwirkt, dass die erste Bitfolge 6 dem verschlüsselten Datenpaket im Klartext hinzugefügt wird. Die zweite Bitfolge 7 hingegen wird dem verschlüsselten Datenpaket nicht hinzugefügt, sondern stellt geheime Schlüssel dar, die nur dem Sender und dem Empfänger bekannt sind. Die Datenpa- ketverarbeitungsmittel 15 sorgen weiters dafür, dass das verschlüsselte Datenpaket mit den üblichen Köpfdaten versehen wird, die für die paketvermittelte Übertragung in einem Computernetzwerk erforderlich sind. Das für die Versendung vorbereitete Datenpaket besteht somit aus Kopfdaten 16, der ersten Bit- folge als Paketkennung 17 und den verschlüsselten Nutzdaten 18. Die Datenübertragungsmittel zum paketvermittelten Versenden des Datenpakets sind mit 19 bezeichnet.

Die in Fig. 2 dargestellte Vorrichtung zum Entschlüsseln der verschlüsselten Datenpakete ist im Wesentlichen analog aufgebaut. Das die Kopfdaten 16, die erste Bitfolge als Paketkennung 17 und die verschlüsselten Nutzdaten 18 enthaltende Paket wird beim Eintreffen Auslesemitteln 20 zugeführt, in denen die erste Bitfolge 17 ausgelesen und einem Speicher 21 zugeführt wird. Die verschlüsselten Nutzdaten 18 werden in der Folge einem XOR- Gatter 22 zugeführt, in dem die Bits des verschlüsselten Bitstroms 23 und die Bits des Schlüsselstroms 3 miteinander ver- knüpft werden, um auf diese Weise das entschlüsselte Datenpaket 1 zu erhalten.

Der Schlüsselstrom 3, der für die Entschlüsselung eines be- stimmten Datenpakets verwendet wird, muss der gleiche sein wie der Schlüsselstrom, der für die Verschlüsselung dieses Datenpakets verwendet wurde. Zu diesem Zweck werden dieselben Bitfolgen 6 und 7 dem Generator 5 als Schlüssel zugeführt und der für die Entschlüsselung verwendete Generator 5 ist baugleich mit dem für die Verschlüsselung verwendeten Generator 5. Der Speicher für die zweite Bitfolge 7 ist mit 24 bezeichnet.

Fig. 3 zeigt eine Prinzipschaltung eines Schlüsselstromgenerators 5 mit einem Schieberegister 27, das aus einer Mehrzahl von zu einer codeproduzierenden Reihe zusammengeschalteten Speicherelementen, nämlich Flip-Flops FF1, FF2, ... FF9 besteht. Ein XOR-Gatter XORpl ist so verschaltet, dass der eine Eingang des XOR-Gatters XORpl mit dem Ausgang des in der codeproduzierenden Reihe befindlichen Speicherelements FF2 und der andere Eingang des XOR-Gatters XORpl mit dem Ausgang des in der codeproduzierenden Reihe befindlichen Speicherelements FF5 und der Ausgang der XOR-Gatters XORpl mit dem Eingang des in Flussrichtung dem mit dem einen Eingang des XOR-Gatters XORpl verbundenen Speicherelements FF2 in der Reihe nachfolgenden Spei- cherelements FF3 - sohin rekursiv - verbunden ist. Weiters ist ersichtlich, dass das letzte Speicherelement FF9 über einen Inverter INV mit dem ersten Speicherelement FF1 verbunden ist. Sobald man das Schieberegister 27 mit einer Bitfolge befüllt, erhält man mit dieser Schaltung eine Codesequenz. Wenn, wie dies bei der Ausbildung gemäß Fig. 3 der Fall ist, nur ein einziges Schieberegister zum Einsatz gelangt, werden die Bitfolgen 6 und 7 dem Schieberegister 27 derart zugeführt, dass zunächst die Bitfolgen 6 und 7 mit Hilfe eines XOR-Gatters 28 miteinan- der verknüpft werden. Dabei ist es bevorzugt, dass die aus den Bitfolgen 6 und 7 generierte, dem Schieberegister 27 zugeführte Bitfolge nicht länger ist als dies der Anzahl der Speicherelemente im Schieberegister 27 entspricht, da die Bitfolge andern- falls von der über den Inverter INV aus dem Speicherelemente FF9 kommenden Bitfolge überlagert würde.

Bei der abgewandelten Ausbildung gemäß Fig. 4 gelangen insgesamt zwei Schieberegister 30 und 31 zum Einsatz. Die Spei- cherelemente der einzelnen Schieberegister sind in diesem Beispiel jeweils auf gleiche Weise rekursiv verschaltet wie in Fig. 3. Die Schieberegister sind weiters derart miteinander verschaltet, dass in Abhängigkeit vom Zustand des zweiten Schieberegisters 31 die Funktion des XOR-Gatters XORpl der re- kursiven Verschaltung des ersten Schieberegisters 30 an- und abgeschaltet wird. Zu diesem Zweck ist der Ausgang des Flip- Flops FFp2 des Schiebregisters 31 mit dem Eingang eines UND- Gatters UNDpl verbunden, das in die jeweilige rekursive Funktion XORpl bzw. der Schieberegister 30 eingefügt ist.

Es entsteht somit ein Codegenerator 5 mit zwei Ebenen, wobei die Codegenerierung auf jeder Ebene durch Initialisieren des jeweiligen Schieberegisters 30, 31 mit der Bitfolge 6 und 7 beeinflusst wird. Die Initialisierung kann dabei bevorzugt so erfolgen, dass dem Schieberegister 30 der ersten Ebene die erste Bitfolge 6 und dem Schieberegister 31 der zweiten Ebene die zweite Bitfolge 7 zugeführt wird, wobei die Bitfolgen 6 und 7 bevorzugt so definiert sind wie in den Fig. 1 und 2 beschrieben .

Bei der Ausbildung gemäß Fig. 5 ist die in Fig. 4 gezeigte Struktur noch komplexer ausgestaltet und es sind insbesondere längere codeproduzierende Reihen und eine Mehrzahl von rekursi- ven Verschaltungen vorgesehen. Dabei ist eine Anzahl ununterbrochen in Reihe geschalteter Speicherelemente in Form von Schieberegister SRG1, SRG2, ... verwirklicht, die funktionell gesehen gemeinsam ein Schieberegister 33 im Sinne der Erfindung bilden. Es verdoppelt sich die Länge des Codes pro hinzugefügtem Speicherelement, so dass sich die Länge des_ Codes wie folgt berechnet

Lc = 2 n -l

(Lc = Länge der Codesequenz; n = Anzahl der

codegenerierenden in Reihe geschalteten

Speicherelemente) Wenn diese Einheit mit einem bestimmten Takt betrieben wird gilt für die Dauer des Codes:

2 n - 1

Tc =

fc

(Tc = Dauer bis sich der Code wiederholt; fc =

Codegenerierungstaktfrequenz ) Mit weniger als 50 Speicherelementen bei einer Codegenerie- rungstaktfrequenz von 384.000 Bit/s läuft der Code länger als ein Jahr ohne dass sich die Sequenz wiederholt, so dass ein zu verschlüsselndes Signal simultan über einen ebenso langen Zeit ¬ raum verschlüsselt über eine Standleitung übersendet und ent- schlüsselt werden kann, so dass Übertragungen live über einen ebenso langen Zeitraum möglich sind. Wenn man nun bei entsprechender Länge des Schieberegisters 33 an mehren Stellen dieses Schieberegisters 33 zwischen einem Speicherelement FF1,2,3,4 und dem nächsten in der Reihe befindlichen Speicherelement FF2,3,4,5 ein XOR-Gatter XORpl , p2 , p3, p4 einfügt und dieses dann mit dem Signal von einem dritten Speicherelement FF8,15,20,23 speist, so verändert man jeweils den dadurch erzeugten Code (Fig. 5) .

Bei einer Mehrzahl von codeverändernden XOR-Gattern XORpl, p2,p3,p4, siehe Fig. 5, soll sichergestellt sein, dass die verschiedenen codeverändernden XOR-Gatter XORpl , p2 , p3 , p , deren erster Eingang von einem Ausgang eines Speicherelements FF1,2,3,4 gespeist wird, ihren zweiten Eingang jeweils vom Ausgang eines Speicherelements FF8, 15,20,23 gespeist erhalten, welches eine Anzahl von Speicherelementen in Flussrichtung vom erstgenannten Speicherelement FF1,2,3,4 entfernt ist, welche jeweils einer unterschiedlichen Primzahl entspricht, die größer als 1 aber kein Teilbetrag der Gesamtzahl der in Reihe R geschalteten Speicherelemente ist, sodass es bei der Beeinflus- sung der Codesequenz zu keinen codesequenzverkürzenden Resonanzeffekten kommt. Zwischen den entsprechenden Speicherelementpaaren FF1,8; FF2,15; FF3,20; FF4,23 liegt also jeweils eine Anzahl von 7, 13, 17 und 19 (Primzahlen) Speicherelementen .

Wenn man an einen der beiden Eingänge des jeweiligen XOR- Gatters XORpl bzw. XORpl , p2 , p3 , p4 den Ausgang eines UND-Gatters UNDpl bzw. UNDpl,p2,p3,p4 dessen einer Eingang am Ausgang des Speicherelements FF3 bzw. FF8,15,20,23 hängt, anschließt, dann kann man dieses XOR-Gatter XORpl bzw. XORpl , p2 , p3 , p4 in seiner codeverändernden Wirkung über den zweiten Eingang des UND- Gatters UNDpl bzw. UNDpl , p2 , p3 , p4 an- und abschalten und wenn man daran jeweils ein weiteres Speicherelement FFpl bzw. FFpl,p2,p3,p4 anschließt, das An- und Abschalten der codebeeinflussenden Wirkung des XOR-Gatters XORpl bzw. XORpl , p2 , p3 , p4 programmierbar machen. Die codeprogrammierenden Speicherelemente FFpl , p2 , p3, p4 können dabei zu einem Schieberegister 34 zu- sammengeschaltet sein. In weiterer Folge können die codeprogrammierenden Speicherelemente FFpl , p2 , p3 , p4 des Schieberegisters 34 selbst wiederum mit Hilfe eines XOR-Gatters XORppl rekursiv verschaltet werden. In Fig. 6 ist nun der nicht-deterministische Zufallszahlengenerator 9 dargestellt. Der Zufallszahlengenerator umfasst einen Codegenerator 40, der eine pseudozufällige Zeichenfolge 41 generiert. Der Codegenerator 40 kann grundsätzlich beliebig ausgestaltet sein. Bevorzugt handelt es sich um einen Codegenera- tor wie anhand von Fig. 3, 4 oder 5 bzw. in der WO 03/075507 AI beschrieben. Die pseudozufällige Zeichenfolge 41 wird ununterbrochen in den Ringpuffer 42 geschrieben. Dem Ringpuffer 42 ist ein Controller 43 zugeordnet, der das Auslesen einer Zufallszeichenfolge 44 veranlasst. Zu diesem Zweck ist dem Controller ein von dem Paketdetektor 38 generiertes Triggersignal 39 zugeführt, das den Controller 43 veranlasst, einen Gateöffnungsbefehl 45 an den Ringpuffer 42 zu senden, worauf die Zufallszeichenfolge 44 ausgelesen wird. Die Zufallszeichenfolge 44 hat hierbei nicht-deterministischen Charakter, weil die Frequenz der Triggersignale 39 vom Zufall bestimmt ist. Aus dem Ringpuffer 42 wird somit diejenige Teilsequenz 44 ausgelesen, die sich zum Zeitpunkt des Triggersignals 39 bzw. des Gateöffnungsbefehls 45 zufällig im Ringpuffer 42 befindet, wobei die Speicherkapazität des Ringpuffers 42 wesentlich größer ist als die Länge der aus dem Ringpuffer 42 ausgelesenen Zufallszeichenfolge 44. Der Controller 43 gibt die Zufallszeichenfolge 44 als binäre Zufallszahl aus, die als erste Bitfolge 6 dem Codegene- rator 5 als Schlüssel zugeführt wird, um diesen zu initialisieren .




 
Previous Patent: INSERT ELEMENT FOR FRAMEWORKS

Next Patent: ECG DEVICE