WO2013110103A2 - Verfahren zum schreiben und lesen von daten - Google Patents

Verfahren zum schreiben und lesen von daten Download PDF

Info

Publication number
WO2013110103A2
WO2013110103A2 PCT/AT2013/000010 AT2013000010W WO2013110103A2 WO 2013110103 A2 WO2013110103 A2 WO 2013110103A2 AT 2013000010 W AT2013000010 W AT 2013000010W WO 2013110103 A2 WO2013110103 A2 WO 2013110103A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
input
memory element
code
output
Prior art date
Legal status (The legal status 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 status listed.)
Ceased
Application number
PCT/AT2013/000010
Other languages
English (en)
French (fr)
Other versions
WO2013110103A3 (de
Inventor
René-Michael Cordes
Ernesto Schobesberger
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Individual
Original Assignee
Individual
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
Family has litigation
First worldwide family litigation filed litigation Critical https://patents.darts-ip.com/?family=47721875&utm_source=google_patent&utm_medium=platform_link&utm_campaign=public_patent_search&patent=WO2013110103(A2) "Global patent litigation dataset” by Darts-ip is licensed under a Creative Commons Attribution 4.0 International License.
Application filed by Individual filed Critical Individual
Priority to RU2014134714A priority Critical patent/RU2014134714A/ru
Priority to EP13704705.6A priority patent/EP2807788A2/de
Priority to US14/374,423 priority patent/US20150046416A1/en
Publication of WO2013110103A2 publication Critical patent/WO2013110103A2/de
Publication of WO2013110103A3 publication Critical patent/WO2013110103A3/de
Anticipated expiration legal-status Critical
Ceased legal-status Critical Current

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/22—Indexing; Data structures therefor; Storage structures
    • G06F16/2228—Indexing structures
    • G06F16/2272—Management thereof
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06F—ELECTRIC DIGITAL DATA PROCESSING
    • G06F5/00—Methods or arrangements for data conversion without changing the order or content of the data handled
    • G06F5/01—Methods or arrangements for data conversion without changing the order or content of the data handled for shifting, e.g. justifying, scaling, normalising
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06—Cryptographic 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/065—Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662—Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08—Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0894—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage
    • H04L9/0897—Escrow, recovery or storing of secret information, e.g. secret key escrow or cryptographic key storage involving additional devices, e.g. trusted platform module [TPM], smartcard or USB
    • H—ELECTRICITY
    • H04—ELECTRIC COMMUNICATION TECHNIQUE
    • H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12—Details relating to cryptographic hardware or logic circuitry
    • H04L2209/127—Trusted platform modules [TPM]

Definitions

  • the invention relates to a method for writing and reading data into or from an indexed database, which comprises a data structure and an associated index structure, wherein a processing unit receives data to be written in plain text and writes into the data structure by means of a write access and index data updated in the index structure and wherein the processing unit to be read data or their storage location determined by access to the index data and read the data to be read by means of a read access from the data structure and provides in plain text.
  • the invention further relates to an apparatus for writing and reading data in or from an indexed database, comprising a data structure and an associated index structure, comprising a processing unit in which data to be written can be received in plain text and which has a write access to the Has data structure to write the data in the data structure, and which cooperates with the index structure to update index data in the index structure, and having an access to the index data to determine the data or their location to be read, and a read access to has the data structure to read the data to be read from the data structure and to provide in plain text.
  • an indexed database is a mass storage that has an index store attached to speed up access.
  • a database index is a data structure separated index structure in a database, which accelerates the search and sorting for specific fields.
  • An index consists of a collection of pointers (references) that define an ordering relation to one or more columns in a table. If an indexed column is used as a search criterion in a query, a processing unit, ie usually a database management system, searches for the desired data records on the basis of these pointers. Without an index, the column would have to be searched sequentially, which takes a long time even with fast hardware.
  • the invention therefore aims to provide a method and a device with which the confidentiality of the data structure and the index structure of a data set can be protected, without the access to the data using the index being impaired by authorized users is. It should maintain the full functionality of an indexed database.
  • the data in the data structure and the index data in the index structure are stored encrypted and that the read / write access of the processing unit to the index structure and to the data structure via at least one Decryption unit takes place, with which the data by means of a Strortichiffr mich be encrypted or decrypted.
  • the fact that the data to be written and read is encrypted or decrypted by means of a stream cipher ensures that the image of the encrypted data and the unencrypted data on the storage medium has exactly the same dimensions (bit length), so that they are also encrypted Form can be found bit accurate and can be sent to the requesting üser in ignorance of the content.
  • each individual information has exactly the same dimensions (bit length) as the unencrypted also, the position of the encrypted data can be accurately accessed by an index made in unencrypted form, so that the content of the encrypted data need not be recognized by the processing unit of the database and no consideration is given to the circumstance of the encryption in the storage space search got to .
  • the procedure is such that the generation of the keystream is carried out using at least one feedback shift register, which is filled with a defined bit sequence for its initialization.
  • Linear feedback shift registers can be efficiently implemented both directly in hardware such as FPGAs and in software. Feedback shift registers are fast and produce pseudo-random sequences with good statistical properties.
  • a feedback shift register is implemented in digital technology as a shift register with n memory elements. The individual memory elements are typically D flip-flops, which can each store one bit. In contrast to a conventional shift register exist between certain D flip-flops Branches representing the feedbacks.
  • an XOR function is usually used in each case. Instead of the XOR link, however, an XNOR link can also be used.
  • the shift register can be filled with XOR feedback with arbitrary values that determine the key stream generated by the shift register in the sequence.
  • the feedback shift register also has a clock input: each clock pulse is changed to the next state, i. if a bit is to be output, all bits in the shift register are shifted by one memory location; the new bit at the end of the shift register is calculated depending on the other bits. This process counts as one bar. For a complete run of all combinations are
  • Such a code sequence thus has a length of 2 n -l bits ⁇ n - number of code-generating series-connected memory elements of the shift register).
  • a plurality of linear feedback shift registers are generally used, which are usually of different lengths and have different feedback polynomials. This combines linear feedback shift registers to non-linear generators.
  • any code that is not repeated before the end of the information to be encrypted is considered to be infinite.
  • a functionally infinite code has the disadvantage that it can not be transmitted; it has to be generated.
  • a disadvantage of code generators in the form of herculean feedback shift registers is the fact that it is easy to deduce the structure of the generator from the code sequence, so that it can be regenerated with an identically constructed generator.
  • An increase in the Si ⁇ reliability is achieved according to a preferred procedure within the scope of the invention in that for each write access by the processing unit to the struk- structure or the index structure of another key stream is used.
  • the procedure is preferably such that in each case at least one first bit sequence and one second bit sequence are used to initialize the feedback shift register or feedback signals. This is done in particular when only a single feedback shift ⁇ beregister is used to generate the key stream, such that the first and the second bit sequence are linked by means of an XOR function, and the resulting from the combination of bit string for initializing the feedback shift register is supplied.
  • the procedure is that at least a first feedback shift register is filled to its initialization with the first bit sequence and at least a two ⁇ tes fed back Shift register is filled to its initialization with the second bit sequence.
  • the encryption of a section of the database such as a record of the database and the decryption of the same section or record are synchronized with each other, ie that the encryption and the decryption is done with the same keystream.
  • the synchronization preferably takes place using the indices of the data records.
  • the procedure is such that an index number assigned to the data set to be encrypted or decrypted is selected as the first bit sequence, or that the first bit success 3.11 ⁇ is generated.
  • the primary index is preferably used here.
  • the second bit sequence is preferably a unique identifier of the database or is generated from this.
  • a third bit sequence is used for initializing the feedback shift register (s).
  • the third bit sequence is advantageously a unique identifier of the respective user or is generated from this.
  • the third bit sequence is preferably fed to a third feedback shift register for initialization.
  • a further advantage of the method according to the invention is that the generation of the keystream can already begin as soon as at least one of the feedback shift registers is filled with the first bit from the respective bit sequence.
  • the feedback shift registers are filled simultaneously with the respective bit sequence.
  • the structure of the key-current generator is preferably such that at least one XOR gate is used for the feedback of the shift register or registers.
  • the Complexity of the generator can be increased in a simple manner in that the feedback shift registers are interconnected in such a way that, depending on the state of a shift register, the at least one XOR gate of the other shift register is switched on or off.
  • a highly preferred embodiment results when a code generator is used, as described in WO 03/075507 AI, reference being made to claims 15 and 16 and 33 to 38 of the present application.
  • the encryption can not be broken even if both the structure of the code generator and the algorithm running in it are known.
  • the structure of the generator is such that it is capable of generating such a large number of different codes in such a large length that the discovery of the code just used as well as the currently produced position in the code sequence is extremely small Probability is possible.
  • the code can not be regenerated if the generator can create so many different codes that one section of the single code can not conclude its continuation.
  • the access of a user computer to the database or the database is usually from a remote location via a data communication connection, in particular via a computer network.
  • the access of a user's computer to the data structure and the index structure is carried out via the processing unit. Since the data in the processing unit is in plain text, it is advantageous to provide provisions to prevent user computers Gain access to this plain text data.
  • the invention preferably provides that the data transmitted between the processing unit and a user computer is transmitted in encrypted form.
  • the procedure is such that the encrypted transmission of the data between the processing unit and the user computer takes place using in each case one user computer and one data storage unit associated with the encryption and decryption unit with which the data is encrypted or decrypted by means of a stream cipher.
  • a particularly safe execution is characterized ⁇ represents townge that all communication of data to and from the processing unit via at least one encryption and decryption unit takes place, with which the data be encrypted using a stream cipher and decrypted.
  • the processing unit thus does not have an unencrypted input or output to / from the surrounding network, thus ensuring that the file memory of the processing unit in which the data is in plain text can not be viewed.
  • a device of the aforementioned type for writing and reading data in or from an indexed database is proposed.
  • the device according to the invention is characterized in that the processing unit is connected to the data structure and to the index structure via at least one encryption and decryption unit with which the data can be encrypted or decrypted by means of a stream cipher so that the read / write access of the processing unit on the index structure and on the Data structure on the at least one encryption and decryption unit.
  • the processing unit is preferably designed as a CPU assigned to the data structure and the index structure.
  • FIG. 2 shows the encryption and decryption process
  • FIGS. 3, 4 and 5 show different embodiments of a key-flow generator used in the context of the invention.
  • FIG. 1 shows a database 1 comprising a data structure 2 and an index structure 3.
  • Denoted at 4 is a processing unit in the form of a CPU which has an outgoing and incoming data interface 5 and which controls write and read access to the index structure 3 and the data structure 2.
  • the processing unit 4 is connected via an encryption and decryption unit 6 to the data structure 2 and via an encryption and decryption unit 7 to the index structure 3, so that the read or write access to the data structure 2 and the index structure 3 via the encryption and decryption unit 6 or 7 takes place.
  • the data to be written into the data structure 2 or the index structure 3 and the data to be read from the data structure 2 or the index structure 3 are present in plain text, so that the for indexing and for the Locating records required operations can be performed.
  • the data structure 2 and in the index structure 3 however, the data are available only in encrypted form.
  • the processing unit 4 can access the encrypted data, the access takes place via the encryption and decryption unit 6 or 7.
  • FIG. 1 the transmission of the data in plain text is represented by a solid line and the transmission of encrypted data by a dashed line ,
  • the encryption and decryption units 6 and 7 encrypt and decrypt the respective data by means of stream ciphering and accordingly comprise a keystream generator, which will be explained in greater detail with reference to the various embodiments in FIGS. 2 to 5.
  • a keystream generator which will be explained in greater detail with reference to the various embodiments in FIGS. 2 to 5.
  • Each of the embodiments described below can be used in the context of the encryption and decryption unit 6 or 7 or the encryption and decryption unit 10 or 11 (see below).
  • a user computer 8 can access the database 1 via a communication connection 9.
  • the data is transmitted via the Kirunikationsverbindimg 9 in encrypted form, wherein the encryption and decryption by means of the encryption and decryption units 10 and 11 takes place.
  • the encryption and decryption are preferably carried out by means of a ciphering.
  • the encryption and decryption units 6, 7, 10 and 11 may each comprise a code generator according to WO 03/075507 AI, wherein the code generators of the encryption and decryption units 6 and 7 for the encryption and the subsequent decryption of data must be synchronized. Furthermore, for example, the code generators of the encryption and decryption units 10 and 11 must be synchronized with each other.
  • a user searches for specific information among the data stored by him in the database 1, he enters corresponding search words in the user computer 8. This encrypts this input and transmits it to the database 1.
  • this search term is decrypted by the encryption and decryption unit 11 and the processing unit 4 provided in plain text.
  • the processing unit 4 searches for the search term in the index structure 3, wherein the index structure 3 of the processing unit 4 is cleartext available due to the real-time access via the encryption and decryption unit 7.
  • the index structure 3 indicates the exact location of the searched data in the encrypted data structure 2. Then the encrypted data in the data structure 2 are visited and forwarded in unchanged encrypted form to the user's computer 8 of the user.
  • the user computer 8 decrypts the data using the encryption and decryption unit 10, so that they are displayed there as requested plain text data.
  • the encrypted data can be read from the data structure 2 via the encryption and decryption unit 6, these data then being present in plaintext in the processing unit 4 and being encrypted again with the encryption and decryption unit 11 for transmission to the user computer 8 have to .
  • the synchronization of the encryption and decryption units 6 and 7 will be explained in more detail with reference to FIG. Fig. 2 shows a schematic circuit of a keystream generator 12 with a shift register 13, which consists of a plurality of to a Godeprodufugden series interconnected memory elements, namely flip-flops FF1, FF2, ... FF9 consists.
  • An XOR gate XORpl is connected so that one input of the XOR gate XORpl is connected to the output of the code-producing line memory element FF2, and the other input of the XOR gate XORpl is connected to the output of the memory element in the code-producing line FF5 and the output of the XOR gate XORPL to the input of the downstream in the flow direction to the one input of the XOR gate XORPL connected memory element FF2 in the series memory element FF3 - thus recursively - is connected. It can also be seen that the last memory element FF9 is connected to the first memory element FF1 via an inverter INV.
  • bit sequences 14, 15 and 16 are supplied to the shift register 13 for its initialization in such a way that first the bit sequences 14 and 15 are generated by means of a XOR gate 17 are linked together and then the linked bit sequence with the bit string 16 by means of the XOR gate 18 is linked.
  • bit sequence generated from the bit sequences 14, 15 and 16 and fed to the shift register 13 is not longer than corresponds to the number of memory elements in the shift register 13, since the bit sequence otherwise differs from that via the inverter INV from the Memory elements FF9 would be superimposed coming bit sequence.
  • the first bit sequence 14 corresponds to the index number of the relevant data record.
  • the second bit sequence 15 corresponds to the database ID.
  • the third bit sequence 16 corresponds to the "Own ID" of the user.
  • the keystream generator 12 generates a keystream 19a.
  • An incoming stream 19b of plaintext data is encrypted so that the bits of the plaintext bitstream 19b are individually linked to the bits of a keystream 19a by means of an XOR gate 20. If the plaintext data represent a dataset of the database 1, the index of this dataset is determined according to the structure inherent in the database and supplied as a bit sequence 14 to the keystream generator 12 as an initialization sequence.
  • the stream 19b is a stream of encrypted data
  • it is decrypted so that the bits of the bitstream 19b of the encrypted data are individually linked to the bits of the keystream 19a by means of an XOR gate 20.
  • the encrypted data represent an encrypted data set of the database 1
  • the index of this data record is determined in accordance with the inherent structuring of the database and supplied as a bit sequence 14 to the keystream generator 12 as an initialization sequence.
  • a total of three shift registers 21, 22 and 23 are used.
  • the shift elements of the individual shift registers are interconnected recursively in this example in the same way as in Fig. 2.
  • the shift registers are further interconnected such that, depending on the state of the second shift register 22, the function of the XOR gate of the recursive interconnection of the first Shift register 21 is turned on and off.
  • the function of the XOR gate XORppl the recursive connection of the second shift register 22 is in turn turned on and off in response to the state of the third shift register 23.
  • a code generator 12 with three levels, wherein the code generation is influenced on each level by initializing the respective shift register 21, 22 and 23 with the bit sequence 14, 15 and 16.
  • the initialization can preferably take place in such a way that the first bit sequence 14 is supplied to the shift register 21 of the first level, the second bit sequence 15 to the shift register 22 of the second level, and the third bit sequence 16 to the shift register 23 of the third level, the bit sequences 14, 15 and 16 are preferably defined as described in FIG.
  • the structure shown in FIG. 3 is made even more complex and, in particular, longer code-producing series and a plurality of recursive interconnections are provided.
  • a number of uninterrupted series-connected memory elements in the form of shift registers SRG1, SRG2,... are implemented, which functionally together form a shift register 24 in the sense of the invention. It doubles the length of the code per added memory element, so the length of the code is calculated as follows
  • the code will run for more than a year without the sequence repeating so that a signal to be encrypted can be sent encrypted and decrypted simultaneously over a similar period of time so that broadcasts live over an equally long period of time are possible.
  • an XO gate XORpl, 2, p3 is connected to a plurality of locations of this shift register 24 between a memory element FF1, 2, 3, 4 and the next in-line memory element FF2, 3, 4, 5 4 and then feeds it with the signal from a third memory element FF8, 15, 20, 23, the respective code thus generated is changed (FIG. 5).
  • FF4, 23 each has a number of 7, 13, 17 and 19 (prime numbers) memory elements. If one of the two inputs of the respective XOR gate XORpl or XORpl, p2, p3, p4, the output of an AND gate ÜNDpl or ANDP1, p2, p3, p4 whose one input at the output of the memory element FF3 or FF8, 15,20,23, then one can connect this XOR gate XORpl or XORpl, p2, p3, p4 in its code-changing action via the second input of the AND gate ANDpl or 2, p3, p4.
  • the code-programming memory elements FFpl, p2, p3, p4 can be combined to form a shift register 25.
  • the code-programming memory elements FFpl, p2, p3, p4 of the shift register 25 can in turn be recursively interconnected with the aid of an XOR gate XORppl.
  • Nc 2 pn - 1
  • ⁇ Nc number of possible different codes
  • pn number of programmable XOR gates XORpl, p2, ... pn)

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Data Mining & Analysis (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Description

Verfahren zum Schreiben und Lesen von Daten
Die Erfindung betrifft ein Verfahren zum Schreiben und Lesen von Daten in einen bzw. aus einem indizierten Datenbestand, der eine Datenstruktur und eine zugehörige Indexstruktur um- fasst, wobei eine Verarbeitungseinheit zu schreibende Daten im Klartext empfängt und mittels eines Schreibzugriffs in die Datenstruktur schreibt und Indexdaten in der Indexstruktur aktualisiert und wobei die Verarbeitungseinheit auszulesende Daten oder deren Speicherort mittels eines Zugriffs auf die Indexdaten ermittelt und die auszulesenden Daten mittels eines Lesezugriffs aus der Datenstruktur ausliest und im Klartext zur Verfügung stellt.
Die Erfindung betrifft weiters eine Vorrichtung zum Schreiben und Lesen von Daten in einen bzw. aus einem indizierten Datenbestand, der eine Datenstruktur und eine zugehörige Indexstruktur umfasst, umfassend eine Verarbeitungseinheit, in der zu schreibende Daten im Klartext empfangen werden können und die einen Schreibzugriff auf die Datenstruktur aufweist, um die Daten in die Datenstruktur zu schreiben, und die mit der Indexstruktur zusammenwirkt, um Indexdaten in der Indexstruktur zu aktualisieren, und die einen Zugriff auf die Indexdaten aufweist, um auszulesende Daten oder deren Speicherort zu ermitteln, und die einen Lesezugriff auf die Datenstruktur aufweist, um die auszulesenden Daten aus der Datenstruktur auszulesen und im Klartext zur Verfügung zu steilen.
Gegenwärtig stellen indizierte Datenbestände, insbesondere indizierte Datenbanken die meist verbreitete Massenspeiche- rung von Daten dar. Aus hardwaretechnischer Sicht ist eine indizierte Datenbank ein Massenspeicher, welcher einen Indexspeicher zur Beschleunigung des Zugriffs angeschlossen hat. Ein Datenbankindex ist eine von der Datenstruktur getrennte Indexstruktur in einer Datenbank, welche die Suche und das Sortieren nach bestimmten Feldern beschleunigt. Ein Index besteht aus einer Ansammlung von Zeigern (Verweisen) , die eine Ordnungsrelation auf eine oder mehrere Spalten in einer Tabelle definieren. Wird bei einer Abfrage eine indizierte Spalte als Suchkriterium herangezogen, sucht eine Verarbeitungseinheit, d.i. in der Regel ein Datenbankmanagementsystem, die gewünschten Datensätze anhand dieser Zeiger. Ohne Index müsste die Spalte sequentiell durchsucht werden, was selbst mit schneller Hardware viel Zeit in Anspruch nimmt. Es gibt eine Vielzahl unterschiedlicher Indexstrukturen. In der Regel finden jedoch B+-Bäume Anwendung.
Es ist wünschenswert, Datenbanken zu verschlüsseln, um den Zugriff auf den Inhalt der Datenbank vor unbefugten Zugriffen zu schützen. Dabei soll der schnelle Zugriff auf die verschlüsselten Daten aber erhalten bleiben, d.h. es soll vermieden werden, die gesamte Datenbank entschlüsseln zu müssen, bevor mittels einer Suchabfrage nur auf einen oder mehrere bestimmte Datensätze zugegriffen wird. Es wäre daher wünschenswert, dass jeweils nur die auszulesenden Datensätze entschlüsselt bzw. die zu schreibenden Datensätze verschlüsselt werden.
Ein sicherer Schutz der Datenbank ist nur dann gewährleistet, wenn nicht nur die in der Datenstruktur abgelegten Daten, sondern auch die in der Indexstruktur gespeicherten Indexdaten verschlüsselt vorliegen.
Wenn Daten verschlüsselt werden, ist eine funktionelle Anforderung, dass diese in einen eindeutigen Zusammenhang zu dem zur Verschlüsselung verwendeten Code gestellt werden können. Beim Indizieren von verschlüsselten Daten treten folgende Probleme auf: Beim Verschlüsseln der Daten muss der Inhalt der Daten von der Verarbeitungseinheit erkannt werden können. Weiters muss berücksichtigt werden,, ob bei der Verschlüsselung der Daten deren Größe auf dem Speichermedium verändert wird. Beim Entschlüsseln der Daten ist sicherzustellen, dass der zur Verschlüsselung verwendete Schlüssel wieder zur Verfügung steht.
Die Erfindung zielt daher darauf ab, ein Verfahren und eine Vorrichtung zu schaffen, mit dem bzw. der die Vertraulichkeit der Datenstruktur und der Indexstruktur eines Datenbestandes geschützt v/erden kann, ohne dass der Zugriff auf die Daten unter Verwendung des Index durch berechtigte Benutzer beeinträchtigt ist. Es soll die uneingeschränkte Funktionalität einer indizierten Datenbank aufrechterhalten werden.
Zur Lösung dieser Aufgabe ist gemäß einem ersten Aspekt der Erfindung vorgesehen, dass die Daten in der Datenstruktur und die Indexdaten in der Indexstruktur verschlüsselt gespeichert werden und dass der Schreib-/Lesezugriff der Verarbeitungseinheit auf die Indexstruktur und auf die Datenstruktur über mindestens eine Ver- und Entschlüsselungseinheit erfolgt, mit der die Daten mittels einer Strortichiffrierung ver- bzw. entschlüsselt werden. Dadurch, dass die zu schreibenden und zu lesenden Daten mittels einer Stromchiffrierung ver- bzw. entschlüsselt werden, ist sichergestellt, dass das Abbild der verschlüsselten Daten und der unverschlüsselten Daten auf dem Speichermedium exakt dieselben Ausmaße (Bitlänge) hat, so dass sie auch in verschlüsselter Form bitgenau aufgefunden werden und an den anfordernden üser in Unkenntnis des Inhalts übermittelt werden können. Da jede einzelne Information exakt dieselben Ausmaße (Bitlänge) wie die unverschlüsselte auf- weist, kann von einem in unverschlüsselter Form angefertigten Index auch auf die Position der verschlüsselten Daten exakt zugegriffen werden, so dass der Inhalt der verschlüsselten Daten von der Verarbeitungseinheit der Datenbank nicht erkannt werden muss und auf den Umstand der Verschlüsselung bei der Speicherplatzdurchsuchung keine Rücksicht genommen werden muss .
Als Stromverschlüsselung bezeichnet man einen kryptographi- schen 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 Systems.
Bevorzugt wird im Rahmen der Erfindung so vorgegangen, dass die Generierung des Schlüsselstroms unter Verwendung wenigstens eines rückgekoppelten Schieberegisters erfolgt, das zu seiner Initialisierung mit einer definierten Bitfolge gefüllt wird. Linear rückgekoppelte Schieberegister können effizient sowohl direkt in Hardware, wie beispielsweise FPGAs, als auch in Software implementiert werden. Rückgekoppelte Schieberegister sind schnell und produzieren Pseudozu- fallsfolgen 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ückkopplung mit beliebigen Werten gefüllt v/erden, 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
2n-l Taktimpulse notwendig. Eine derartige Codesequenz hat somit eine Länge von 2n-l 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 nicht linearen 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öiranlichen rückgekoppelten Schiebregistern ist die Tatsache, dass von der Codesequenz leicht auf die Struktur des Generators ge- schlössen werden kann, so dass sie mit einem gleichgebauten Generator nachgeneriert werden kann. Eine Erhöhung der Si¬ cherheit wird gemäß einer bevorzugten Verfahrensweise im Rahmen der Erfindung dadurch erreicht, dass für jeden Schreibzugriff der Verarbeitungseinheit auf die Datenstruk- tur oder die Indexstruktur ein anderer Schlüsselstrom verwendet wird. Dies bedeutet, dass das bzw. die rückgekoppeltein) Schieberegister für die Verschlüsselung jedes Datenpa¬ kets neu initialisiert wird bzw. werden. Bevorzugt wird hierbei so vorgegangen, dass zur Initialisierung des bzw. der rückgekoppelten Schieberegister jeweils wenigstens eine erste Bitfolge und eine zweite Bitfolge verwendet wird. Dies erfolgt insbesondere dann, wenn zur Generierung des Schlüsselstroms lediglich ein einziges rückgekoppeltes Schie¬ beregister verwendet wird, derart, dass die erste und die zweite Bitfolge mit Hilfe einer XOR-Funktion verknüpft werden und die sich aus der Verknüpfung ergebende Bitfolge zur Initialisierung dem rückgekoppelten Schieberegister zugeführt wird. Alternativ, und zwar insbesondere für den Fall, dass wenigstens zwei miteinander verschaitete rückgekoppelte Schieberegister für die Generierung des Schlüsselstroms verwendet werden, wird so vorgegangen, dass wenigstens ein erstes rückgekoppeltes Schieberegister zu seiner Initialisierung mit der ersten Bitfolge gefüllt wird und wenigstens ein zwei¬ tes rückgekoppeltes Schieberegister zu seiner Initialisierung mit der zweiten Bitfolge gefüllt wird.
Im Rahmen der Erfindung muss sichergestellt sein, dass die Verschlüsselung eines Abschnitts des Datenbestandes, wie z.B. eines Datensatzes der Datenbank und die Entschlüsselung desselben Abschnitts bzw. Datensatzes miteinander synchronisiert sind, d.h. dass die Verschlüsselung und die Entschlüsselung mit dem selben Schlüsselstrom erfolgt. Dies bedeutet,, dass der Codegenerator an die Stelle des Verschlüsselungsanfangs gerückt werden muss. Die Synchronisation erfolgt bevorzugt unter Verwendung der Indices der Datensätze. Insbesondere wird so vorgegangen, dass als erste Bitfolge eine dem zu verschlüsselnden oder entschlüsselnden Datensatz zugeordnete Indexnummer gewählt wird oder dass die erste BitfolgS 3.11 Ξ dieser generiert wird. Bevorzugt kommt hierbei der Primärindex zum Einsatz. Die zweite Bitfolge ist bevorzugt eine eindeutige Kennung der Datenbank oder wird aus dieser generiert. Eine noch höhere Sicherheit ergibt sich, wenn, wie dies einer weiteren bevorzugten Verfahrensweise entspricht, zur Initialisierung des bzw. der rückgekoppelten Schieberegister weiters eine dritte Bitfolge verwendet wird. Die dritte Bitfolge ist dabei mit Vorteil eine eindeutige Kennung des jeweiligen Benutzers oder wird aus dieser generiert. Die dritte Bit folge wird bevorzugt zur Initialisierung einem dritten rückgekoppelten Schieberegister zugeführt.
Ein weiterer Vorteil des erfindungsgemäßen Verfahrens ist, dass die Generierung des Schlüsselstroms schon beginnen kann, sobald wenigstens eines der rückgekoppelten Schieberegister mit dem ersten Bit aus der jeweiligen Bitfolge gefüllt wird. Insbesondere werden die rückgekoppelten Schieberegister gleichzeitig mit der jeweiligen Bitfolge gefüllt.
Die Struktur des Schlüsselstromgenerators ist wie an sich bekannt bevorzugt so, dass zur Rückkoppelung des bzw. der Schieberegister 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 15 und 16 sowie 33 bis 38 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 geringen 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.
Der Zugriff eines Benutzerrechners auf den Datenbestand bzw. die Datenbank erfolgt in der Regel von einem entfernten Ort über eine Datenkommunikationsverbindung, insbesondere über ein Computernetzwerk. Der Zugriff eines Benutzerrechners auf die Datenstruktur und die Indexstruktur erfolgt hierbei über die Verarbeitungseinheit. Da die Daten in der Verarbeitungseinheit im Klartext vorliegen, ist es vorteilhaft, Vorkehrungen zu schaffen, um zu verhindern, dass Benutzerrechner Zugriff auf diese Klartextdaten erlangen. Die Erfindung sieht in diesem Zusammenhang bevorzugt vor, dass die zwischen der Verarbeitungseinheit und einem Benutzerrechner übermittelten Daten verschlüsselt übermittelt werden. Insbesondere wird so vorgegangen, dass die verschlüsselte Übermittlung der Daten zwischen der Verarbeitungseinheit und dem Benutzerrechner unter Verwendung jeweils einer dem Benutzerrechner und einer dem Datenbestand zugeordneten Ver- und Entschlüsselungseinheit erfolgt, mit der die Daten mittels einer Stromchiffrierung ver- bzw. entschlüsselt werden.
Eine besonders sichere Ausführung wird dadurch sicherge¬ stellt, dass jegliche Übermittlung von Daten von und zu der Verarbeitungseinheit über wenigstens eine Ver- und Entschlüsselungseinheit erfolgt, mit der die Daten mittels einer Stromchiffrierung ver- bzw. entschlüsselt werden. Die Verarbeitungseinheit verfügt somit über keinen unverschlüsselten Eingang oder Ausgang in/aus das/dem umgebende/n Netzwerk, sodass sichergestellt ist, dass die Dateispeicher der Verarbeitungseinheit, in denen die Daten im Klartext vorliegen, nicht eingesehen werden können.
Gemäß einem weiteren Aspekt der vorliegenden Erfindung wird eine Vorrichtung der eingangs genannten Art zum Schreiben und Lesen von Daten in einen bzw. aus einem indizierten Datenbestand vorgeschlagen. Die erfindungsgemäße Vorrichtung zeichnet sich dadurch aus, dass die Verarbeitungseinheit mit der Datenstruktur und mit der Indexstruktur über mindestens eine Ver- und Entschlüsselungseinheit verbunden ist, mit der die Daten mittels einer Stromchiffrierung ver- bzw. entschlüsselbar sind, sodass der Schreib-/Lesezugriff der Verarbeitungseinheit auf die Indexstruktur und auf die Datenstruktur über die mindestens eine Ver- und Entschlüsselungseinheit erfolgt.
Die Verarbeitungseinheit ist bevorzugt als eine der Datenstruktur und der Indexstruktur zugeordnete CPU ausgebildet.
Bevorzugte Weiterbildungen der erfindungsgemäßen Vorrichtung ergeben sich aus den Unteransprü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 Datenbank, Fig. 2 den Verschlüsselungs- und Entschlüsselungsvorgang und Fig. 3, Fig. 4 und Fig. 5 verschiedene Ausbildungen eines im Rahmen der Erfindung verwendeten Schlüsselstromgenerators.
In Fig. 1 ist eine Datenbank 1 dargestellt, die eine Datenstruktur 2 und eine Indexstruktur 3 umfasst. Mit 4 ist eine Verarbeitungseinheit in der Form einer CPU bezeichnet, welche eine Schnittstelle 5 für aus- und eintreffende Daten aufweist und die den Schreib- und den Lesezugriff auf die Indexstruktur 3 und die Datenstruktur 2 steuert. Die Verarbeitungseinheit 4 ist über eine Ver- und Entschlüsselungseinheit 6 mit der Datenstruktur 2 und über eine Ver- und Entschlüsselungseinheit 7 mit der Indexstruktur 3 verbunden, sodass der Schreib- bzw. Lesezugriff auf die Datenstruktur 2 und die Indexstruktur 3 über die Ver- und Entschlüsselungseinheit 6 bzw. 7 erfolgt.
In der Verarbeitungseinheit 4 liegen die in die Datenstruktur 2 oder die Indexstruktur 3 zu schreibenden und die aus der Datenstruktur 2 oder der Indexstruktur 3 auszulesenden Daten im Klartext vor, sodass die für das Indizieren und für das Auffinden von Datensätzen erforderlichen Operationen durchgeführt werden können. In der Datenstruktur 2 und in der Indexstruktur 3 liegen die Daten hingegen ausschließlich in verschlüsselter Form vor. Damit die Verarbeitungseinheit 4 auf die verschlüsselten Daten zugreifen kann, erfolgt der Zugriff über die Ver- und Entschlüsselungseinheit 6 bzw. 7. In Fig. 1 ist die Übertragung der Daten im Klartext hierbei mit durchgezogener Linie und die Übertragung von verschlüsselten Daten mit strichlierter Linie dargestellt.
Die Ver- und Entschlüsselungseinheiten 6 und 7 ver- und entschlüsseln die jeweiligen Daten mittels einer Stromchiffrierung und umfassen dementsprechend einen Schlüsselstromgenerator, der anhand der verschiedenen Ausführungsformen in Fig. 2 bis 5 näher erläutert wird. Jede der nachfolgend beschriebenen Ausführungsformen kann im Rahmen der Ver- und Entschlüsselungseinheit 6 bzw. 7 oder der Ver- und Entschlüsselungseinheit 10 bzw. 11 (siehe unten) zum Einsatz gelangen.
Ein Benutzerrechner 8 kann über eine Kommunikationsverbindung 9 auf die Datenbank 1 zugreifen. Die Daten werden über die Kommunikationsverbindimg 9 in verschlüsselter Form übertragen, wobei die Ver- und die Entschlüsselung mittels der Ver- und Entschlüsselungseinheiten 10 und 11 erfolgt. Die Ver- und die Entschlüsselung erfolgt bevorzugt mittels einer Strom- chiffrierung .
Die Ver- und Entschlüsselungseinheiten 6 , 7, 10 und 11 können jeweils einen Codegenerator gemäß WO 03/075507 AI umfassen, wobei die Codegeneratoren der Ver- und Entschlüsselungseinheiten 6 und 7 für die Verschlüsselung und die spätere Entschlüsselung von Daten synchronisiert werden müssen. Weiters müssen die Codegeneratoren der Ver- und Entschlüsselungseinheiten 10 und 11 miteinander synchronisiert sein.
Wenn nun ein Benutzer eine bestimmte Information unter den von ihm in der Datenbank 1 abgelegten Daten sucht, gibt er entsprechende Suchworte in den Benutzerrechner 8 ein. Dieser verschlüsselt diese Eingabe und übermittelt sie an die Datenbank 1. In der Datenbank 1 wird dieser Suchbegriff mittels der Ver- und Entschlüsselungseinheit 11 entschlüsselt und der Verarbeitungseinheit 4 im Klartext zur Verfügung gestellt. Die Verarbeitungseinheit 4 sucht den Suchbegriff in der Indexstruktur 3, wobei die Indexstruktur 3 der Verarbeitungseinheit 4 auf Grund des Echt zeit-Zugriffs über die Ver- und Entschlüsselungseinheit 7 klartextlich zur Verfügung steht. Die Indexstruktur 3 gibt den genauen Standort der gesuchten Daten in der verschlüsselten Datenstruktur 2 bekannt. Daraufhin werden die verschlüsselten Daten in der Datenstruktur 2 aufgesucht und in unverändert verschlüsselter Form an den Benutzerrechner 8 des Benutzers weitergeleitet. Der Benutzer- rechner 8 entschlüsselt die Daten mit Hilfe der Ver- und Entschlüsselungseinheit 10, sodass diese als angeforderte Klartextdaten dort angezeigt werden. Alternativ kann das Auslesen der verschlüsselten Daten aus der Datenstruktur 2 über die Ver- und Entschlüsselungseinheit 6 erfolgen, wobei diese Da- ten in der Verarbeitungseinheit 4 dann im Klartext vorliegen und zwecks Übertragung an den Benutzerrechner 8 mit der Ver- und Entschlüsselungseinheit 11 wieder verschlüsselt werden müssen . Die Synchronisierung der Ver- und Entschlüsselungseinheiten 6 und 7 wird anhand der Fig. 2 näher erläutert. Fig. 2 zeigt eine Prinzipschaltung eines Schlüsselstromgenerators 12 mit einem Schieberegister 13, das aus einer Mehrzahl von zu einer Godeproduzierenden 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 codeproduzieren- den 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 des XOR-Gatters XORpl mit dem Eingang des in Flussrichtung mit dem einen Eingang des XOR-Gatters XORpl verbundenen Speicherelements FF2 in der Reihe nachfolgenden Speicherelements FF3 - sohin rekursiv - verbunden ist. Weiters ist ersichtlich, dass das letzte Speicherelement FF9 über einen Inverter INV mit dem ersten Speicherelement FFl verbunden ist. Sobald man das Schieberegister 13 mit einer Bitfolge befüllt, erhält man mit dieser Schaltung eine Codesequenz. Wenn, wie dies bei der Ausbildung gemäß Fig. 2 der Fall ist, nur ein einziges Schieberegister zum Einsatz gelangt, werden die Bitfolgen 14, 15 und 16 dem Schieberegister 13 zu dessen Initialisierung derart zugeführt, dass zunächst die Bitfolgen 14 und 15 mit Hilfe eines XOR-Gatters 17 miteinander verknüpft werden und dann die verknüpfte Bitfolge mit der Bitfolge 16 mit Hilfe des XOR-Gatters 18 verknüpft wird. Dabei ist es bevorzugt, dass die aus den Bitfolgen 14, 15 und 16 generierte, dem Schieberegister 13 zugeführte Bit- folge nicht länger ist als dies der Anzahl der Speicherelemente im Schieberegister 13 entspricht, da die Bitfolge andernfalls von der über den Inverter INV aus dem Speicherelemente FF9 kommenden Bitfolge überlagert würde. Die erste Bitfolge 14 entspricht dabei der Indexnummer des betreffenden Datensatzes. Die zweite Bitfolge 15 entspricht dabei der Datenbank ID. Die dritte Bitfolge 16 entspricht der "Own ID" des Benutzers. Der Schlüsselstromgenerator 12 erzeugt einen Schlüsselstrom 19a. Ein eingehender Strom 19b von Klartextdaten wird so verschlüsselt, dass die Bits des Bitstroms 19b des Klartextes mit den Bits eines Schlüsselstroms 19a einzeln mit Hilfe ei- nes XOR-Gatters 20 verknüpft werden. Wenn die Klartextdaten einen Datensatz der Datenbank 1 repräsentieren, wird der Index dieses Datensatzes gemäß der der Datenbank innewohnenden Strukturierung ermittelt und als Bitfolge 14 dem Schlüsselstromgenerator 12 als Initialisierungssequenz zugeführt.
Wenn der Strom 19b ein Strom von verschlüsselten Daten ist, wird dieser so entschlüsselt, dass die Bits des Bitstroms 19b der verschlüsselten Daten mit den Bits des Schlüsselstroms 19a einzeln mit Hilfe eines XOR-Gatters 20 verknüpft v/erden. Wenn die verschlüsselten Daten einen verschlüsselten Datensatz der Datenbank 1 repräsentieren, wird der Index dieses Datensatzes gemäß der der Datenbank innewohnenden Strukturierung ermittelt und als Bitfolge 14 dem Schlüsselstromgenerator 12 als Initialisierungssequenz zugeführt.
Bei der abgewandelten Ausbildung gemäß Fig. 3 gelangen insgesamt drei Schieberegister 21, 22 und 23 zum Einsatz. Die Speicherelemente der einzelnen Schieberegister sind in diesem Beispiel jeweils auf gleiche Weise rekursiv verschaltet wie in Fig. 2. Die Schieberegister sind weiters derart miteinander verschaltet, dass in Abhängigkeit vom Zustand des zweiten Schieberegisters 22 die Funktion des XOR-Gatters XORpl der rekursiven Verschaltung des ersten Schieberegisters 21 an- und abgeschaltet wird. Die Funktion des XOR-Gatters XORppl der rekursiven Verschaltung des zweiten Schieberegisters 22 wird wiederum in Abhängigkeit vom Zustand des dritten Schieberegisters 23 an- und abgeschaltet. Zu diesem Zweck ist der Ausgang des Flip-Flops FFp2 bzw. FFpp2 des einen Schiebregisters 22 bzw. 23 mit dem Eingang eines UND-Gatters UNDpl bzw. UNDppl verbunden, das in die jeweilige rekursive Funktion XORpl bzw. XORppl der Schieberegister 21 bzw. 22 eingefügt ist .
Es entsteht somit ein Codegenerator 12 mit drei Ebenen, wobei die Codegenerierung auf jeder Ebene durch Initialisieren des jeweiligen Schieberegisters 21, 22 und 23 mit der Bitfolge 14, 15 und 16 beeinflusst wird. Die Initialisierung kann dabei bevorzugt so erfolgen, dass dem Schieberegister 21 der ersten Ebene die erste Bitfolge 14, dem Schieberegister 22 der zweiten Ebene die zweite Bitfolge 15 und dem Schieberegister 23 der dritten Ebene die dritte Bitfolge 16 zugeführt wird, wobei die Bitfolgen 14, 15 und 16 bevorzugt so definiert sind wie in Fig. 2 beschrieben.
Bei der Ausbildung gemäß Fig. 4 ist die in Fig. 3 gezeigte Struktur noch komplexer ausgestaltet und es sind insbesondere längere codeproduzierende Reihen und eine Mehrzahl von rekursiven Verschaltungen vorgesehen. Dabei ist eine Anzahl ununterbrochener in Reihe geschalteter Speicherelemente in Form von Schieberegister SRGl, SRG2, ... verwirklicht, die funktionell gesehen gemeinsam ein Schieberegister 24 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
Figure imgf000017_0001
(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:
2n - 1
Tc =
fc
(Tc = Dauer bis sich der Code wiederholt; fc = Codegenerierungstakt frequenz )
Mit weniger als 50 Speicherelementen bei einer Codegenerie- rungstakxfrequenz 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 Zeitraum verschlüsselt über eine Standleitung übersendet und entschlüsselt werden kann, so dass Übertragungen live über einen ebenso langen Zeitraum möglich sind.
Wenn man nun bei entsprechender Länge des Schieberegisters 24 an mehren Stellen dieses Schieberegisters 24 zwischen einem Speicherelement FF1,2,3,4 und dem nächsten in der Reihe befindlichen Speicherelement FF2,3,4,5 ein XO -Gatter XORpl, 2 , p3 , 4 einfügt und dieses dann mit dem Signal von einem dritten Speicherelement FF8,15,20,23 speist, so verän- dert 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 , p4 , 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 Beeinflussung der Codesequenz zu keinen codesequenz- verkü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 ÜNDpl 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, 2,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 25 zusammengeschaitet sein. In weiterer Folge können die codeprogrammierenden Speicherelemente FFpl , p2 , p3 , p4 des Schieberegisters 25 selbst wiederum mit Hilfe eines XOR-Gatters XORppl rekursiv verschaltet werden.
Die Anzahl der programmierbaren unterschiedlichen Codes berechnet sich wie folgt: Nc = 2pn - 1
{Nc = Anzahl der möglichen unterschiedlichen Codes; pn = Anzahl der programmierbaren XOR - Gatter XORpl,p2, ...pn)
Wenn man nun im Besitz eines identen Codegenerators ist, und an Hand einer bestimmten Anzahl von Bits den weiteren Verlauf der Codesequenz erschließen möchte so hängt die Wahrschein- lichkeit, mit der man die richtige Fortsetzung der Codesequenz erkennt, sowohl von der Anzahl der in der Codegenerie- rung verwendeten Speicherelemente FFl,2,...n als auch jener der programmierbaren, codeverändernden XOR-Gatter
XORpl,p2, ...pn ab. Daraus ergibt sich eine Wahrscheinlichkeit, die dem. Code zugrunde liegende Programmierung zu entdecken und sohin den v/eiteren Verlauf des Codes vorauszusagen von:
Nb
W = ——
(2n - 1) * (2pn - 1)
(Nb = Anzahl der beobachteten Bits der Codesequenz; n = Anzahl der codegenerierenden in Reihe geschalteten Speicherelemente FFl,2,...n; pn = Anzahl der programmierbar den Code verändernden XOR-Gatter XORpl,p2, ...pn)
233 ist die 52. Primzahl. Wenn man die 1 nicht nützt und die 233 die Gesamtzahl der in Reihe geschalteten Speichereiemente ausdrückt, so befinden sich auf dieser Strecke 50 unterschiedliche Speicherelemente, welche sich jeweils in Entfernung von einem Ausgangs-Speicherelement befinden, die einer Primzahl entspricht (np = 50) . Da jedes rekursive XOR-Gatter 1-50 jeweils zwischen einem nächsten Speicherelement 1-50 beginnend vom ersten in Reihe eingeschaltet ist, verlängert sich die Gesamtlänge der Speicherelemente auf (n = 233 + 50 = 283) .
Daraus folgt:
Nb Nb
w = = .
(2n - 1) * (2pn - 1 ) (2283 - 1) * (250 - 1 )
Nb
W =
(1, 5541351138 * 1085 - 1) * (1, 1258999068 * 1015 - 1)
Nb
w „.
1, 7498005798 * 101G0
Mit anderen Worten rauss man die Codesequenz 1,7498005798 * 10100 Taktschritte lang beobachten, damit man mit der Wahrscheinlichkeit 1 eine bestimmte Sequenz entdeckt. Wenn die Taktfrequenz 384000 Hz beträgt ergibt dies eine notwendige Beobachtungszeit von 1, 4449430312*1087 Jahren.
Indem man die codeprogrammierenden Speicherelemente (FFpl,p2,p3,p4,p5,p6) des Schieberegisters 25 rekursiv miteinander verschaltet, so dass sie innerhalb des Zeitintervalls
(T pn - Durchlaufzeit aller möglichen Programmierzustände/ pn = Anzahl der Programm-Speicherelemente; fp = Programmiertaktfrequenz ) sämtliche mögliche Zustandskombinationen durchlaufen, ergibt sich die Programmierung aus einer bestimmten Zeitspanne, in der die codeprogrammierenden Speicherelemente mit einem Programmtakt versorgt werden.
Damit aus der Programmierdauer auch nicht annähernd die Programmierung erschiießbar ist kann die Programmierung zweistufig erfolgen. Hierzu kann eine weitere Programmierungs-Ebene hinzugefügt werden, indem das codeprogrammierende XOR-Gatter XORppl selbst wiederum unter Zwischenschaltung eines UND- Gatters UNDppi mit einer Speicherelemente-Reihe RRR verbunden und somit programmierbar gemacht wird, wobei wiederum ein XOR-Gatter XORpppl zur rekursiven Verschaltung des Schieberegisters 26 verwendet wird (Fig.6) .
Ausgehend von obigem Rechenbeispiel wird dadurch gewährleistet, dass die (2283-l ) * (20-l } verschiedenen Zustände in 250-l verschiedene Abschnitte zergliedert werden, von welchen einer in der ersten Programmierphase ausgewählt wird. Dieser Auswahlvorgang erfolgt in maximal 2ppn - 1 Schritten (ppn = Anzahl der Primzahlen, die in der Anzahl der bei der Programmierung verwendeten Primzahlen (50) enthalten sind, also 16). Dies bedeutet, dass maximal 216 Schritte erfolgen müssen, ehe sämtliche Abschnitte aufgesucht sind. Bei einer Programmiertaktfrequenz von 1 MHz ist dieser Vorgang in 0,065 Sekunden abgeschlossen. Ein Zeitraum, der wohl bei jeder Programmierung durchmessen wird, da er unter der Reaktionszeit des Menschen liegt, weshalb gewährleistet ist, dass aus der tatsächlich verstrichenen Programmierzeit keine Rückschlüsse auf die Programmierung der Schlüssel gezogen werden können.

Claims

Patentansprüche :
1. Verfahren zum Schreiben und Lesen von Daten in einen bzw. aus einem indizierten Datenbestand (1), der eine Datenstruktur (2) und eine zugehörige Indexstruktur (3) umfasst, wobei eine Verarbeitungseinheit (4) zu schreibende Daten im Klartext empfängt und mittels eines Schreibzugriffs in die Datenstruktur (2) schreibt und Indexdaten in der Indexstruk- tur (3) aktualisiert und wobei die Verarbeitungseinheit (4) auszulesende Daten oder deren Speicherort mitteis eines Zugriffs auf die Indexdaten (3) ermittelt und die auszulesenden Daten mittels eines Lesezugriffs aus der Datenstruktur (2) ausliest und im Klartext zur Verfügung stellt, dadurch gekennzeichnet, dass die Daten in der Datenstruktur (2) und die Indexdaten in der Indexstruktur (3) verschlüsselt gespeichert werden und dass der Schreib-/Lesezugriff der Verarbeitungseinheit (4) auf die Indexstruktur (3) und auf die Datenstruktur (2) über mindestens eine Ver- und Entschlüsselungs- einheit (6, 7) erfolgt, mit der die Daten mittels einer Stromchiffrierung ver- bzw. entschlüsselt werden.
2. Verfahren nach Anspruch 1, dadurch gekennzeichnet, dass die Generierung des Schlüsselstroms unter Verwendung wenigs- tens eines rückgekoppelten Schieberegisters (13; 21, 22, 23; 24, 25; 24, 25, 26) erfolgt, das zu seiner Initialisierung mit einer definierten Bitfolge gefüllt wird.
3. Verfahren nach Anspruch 1 oder 2, dadurch gekennzeich- net, dass für jeden Schreibzugriff ein anderer Schlüsselstrom verwendet wird .
4. Verfahren nach Anspruch 1, 2 oder 3, dadurch gekennzeichnet, dass zur Initialisierung des bzw. der rückgekoppelten Schieberegister {13; 21, 22, 23; 24, 25; 24, 25, 26) jeweils wenigstens eine erste Bitfolge (14) und eine zweite Bitfolge (15) verwendet wird.
5. Verfahren nach Anspruch 4, dadurch gekennzeichnet, dass die erste und die zweite Bitfolge (14, 15) mit Hilfe einer XOR-Funktion (17) verknüpft werden und die sich aus der Verknüpfung ergebende Bitfolge zur Initialisierung dem rückgekoppelten Schieberegister (13) zugeführt wird.
6. Verfahren nach Anspruch 4 oder 5 , dadurch gekennzeichnet, dass wenigstens ein erstes rückgekoppeltes Schieberegis- ter (21, 24) zu seiner Initialisierung mit der ersten Bitfolge (14) gefüllt wird und wenigstens ein zweites rückgekoppeltes Schieberegister (22, 25) zu seiner Initialisierung mit der zweiten Bitfolge (15) gefüllt wird.
7. Verfahren nach Anspruch 4, 5 oder 6, dadurch gekennzeichnet, dass als erste Bitfolge (14) eine dem zu verschlüsselnden oder entschlüsselnden Datensatz zugeordnete Indexnummer gewählt wird.
8. Verfahren nach einem der Ansprüche 4 bis 7, dadurch gekennzeichnet, dass die zweite Bitfolge (15) aus einer eindeutigen Kennung der Datenbank generiert wird.
9. Verfahren nach einem der Ansprüche 4 bis 8, dadurch gekennzeichnet, dass zur Initialisierung des bzw. der rückgekoppelten Schieberegister (13; 21, 22, 23; 24, 25; 24, 25, 26) weiters eine dritte Bitfolge (16) verwendet wird.
10. Verfahren nach Anspruch 9, dadurch gekennzeichnet, dass die dritte Bitfolge (16) aus einer eindeutigen Kennung des jeweiligen Benutzers generiert wird.
11. Verfahren nach Anspruch 9 oder 10, dadurch gekennzeichnet, dass die dritte Bitfolge (16) zur Initialisierung einem dritten rückgekoppelten Schieberegister (23, 26) zugeführt wird.
12. Verfahren nach einem der Ansprüche 4 bis 11, dadurch gekennzeichnet, dass die rückgekoppelten Schieberegister (13; 21, 22, 23; 24, 25; 24, 25, 26) gleichzeitig mit der jeweiligen Bitfolge (14, 15, 16) gefüllt werden.
13. Verfahren nach einem der Ansprüche 2 bis 12, dadurch gekennzeichnet, dass zur Rückkoppelung des bzw. der Schieberegister {13; 21, 22, 23; 24, 25; 24, 25, 26) wenigstens ein XOR-Gatter (XORpl, XORp2, XORp3, X0Rp4, XORppl, XORpppl) verwendet wird.
14. Verfahren nach einem der Ansprüche 2 bis 13, dadurch gekennzeichnet, dass die rückgekoppelten Schieberegister {13; 21, 22, 23; 24, 25; 24, 25, 26) derart miteinander verschaltet sind, dass in Abhängigkeit vom Zustand des einen Schiebe- registers das wenigstens eine XOR-Gatter (XORpl, XORp2, X0Rp3f XORp4, XORppl, XORpppl) des anderen Schieberegister an- oder abgeschaltet wird.
15. Verfahren nach einem der Ansprüche 2 bis 14, dadurch gekennzeichnet, dass das wenigstens eine rückgekoppelte
Schieberegister (13; 21, 22, 23; 24, 25; 24, 25, 26) eine Mehrzahl von zu einer codeproduzierenden Reihe geschalteten Speicherelementen (FF1, FF2, ... ; FFpl, FFp2, ... ; FFppl, FFpp2,...) 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 (XORpl, XORp2, XORp3, XORp4, XORppl, XORpppl) derart erfolgt, dass der erster 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 Spei™ cherelements (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.
16. Verfahren nach Anspruch 15, dadurch gekennzeichnet, dass in die den zweiten Eingang des wenigstens einen XOR-Gatters (XORpl) und den Ausgang des weiteren in der codeproduzierenden Reihe (21, 24) 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 befindlichen Speicherelements (FF5) und der zweite Eingang des UND-Gatters (UNDpl) mit dem Ausgang eines codeprogrammierenden Speicherelements (FFp2) verbunden ist, wobei als codeprograroirderendes Speicherelement ein Speicherelement eines weiteren rückgekoppelten Schieberegisters (22, 25) verwendet wird, und dass bevorzugt der Ausgang eines in der codeproduzierenden Reihe (21, 24) befindlichen Speicher- elements (FF9) mit dem Eingang eines Inverters (INV) und der Ausgang des Inverters (INV) mit dem Eingang eines anderen in der codeproduzierenden Reihe (21, 24) angeordneten Speicherelements (FF1) verbunden ist.
17. Verfahren nach einem der Ansprüche 1 bis 16, dadurch gekennzeichnet, dass der Datenbestand (1) eine Datenbank ist.
18. Verfahren nach einem der Ansprüche 1 bis 17, dadurch gekennzeichnet, dass die zwischen der Verarbeitungseinheit (4) und einem Benutzerrechner (8) übermittelten Daten verschlüsselt übermittelt werden.
19. Verfahren nach Anspruch 18, dadurch gekennzeichnet, dass die verschlüsselte Übermittlung der Daten zwischen der Verarbeitungseinheit (4) und dem Benutzerrechner (8) unter Verwendung jeweils einer dem Benutzerrechner (8) und einer dem Da- tenbestand (1) zugeordneten Ver- und Entschlüsselungseinheit (11) erfolgt, mit der die Daten mittels einer Stromchiffrierung ver- bzw. entschlüsselt werden.
20. Verfahren nach einem der Ansprüche 1 bis 19, dadurch gekennzeichnet, dass jegliche Übermittlung von Daten von und zu der Verarbeitungseinheit (4) über wenigstens eine Ver- und Entschlüsselungseinheit (6, 7, 11) erfolgt, mit der die Daten mittels einer Stromchiffrierung ver- bzw. entschlüsselt werden .
21. Vorrichtung zum Schreiben und Lesen von Daten in einen bzw. aus einem indizierten Datenbestand (1), der eine Datenstruktur (2) und eine zugehörige Indexstruktur (3) umfasst, umfassend eine Verarbeitungseinheit (4), in der zu schreibende Daten im Klartext empfangen werden können und die einen Schreibzugriff auf die Datenstruktur (2) aufweist, um die Daten in die Datenstruktur (2) zu schreiben, und die mit der Indexstruktur (3) zusammenwirkt, um Indexdaten in der Indexstruktur (3) zu aktualisieren, und die einen Zugriff auf die Indexdaten aufweist, um auszulesende Daten oder deren Speicherort zu ermitteln, und die einen Lesezugriff auf die Datenstruktur (2) aufweist, um die auszulesenden Daten aus der Datenstruktur (2) auszulesen und im Klartext zur Verfügung zu stellen, dadurch gekennzeichnet, dass die Verarbeitungseinheit (4) mit der Datenstruktur (2) und mit der Indexstruktur (3) über mindestens eine Ver- und Entschlüsselungseinheit (6,7) verbunden ist, mit der die Daten mittels einer Strom- chiffrierung ver- bzw. entschlüsselbar sind, sodass der Schreib-/Lesezugriff der Verarbeitungseinheit (4) auf die Indexstruktur (3) und auf die Datenstruktur (2) über die mindestens eine Ver- und Entschlüsselungseinheit (6,7) erfolgt.
22. Vorrichtung nach Anspruch 21, dadurch gekennzeichnet, dass die Ver- und Entschlüsselungseinheit (6,7) zur Generierung eines Schlüsselstroms wenigstens ein rückgekoppeltes Schieberegister (13; 21,22,23; 24,25; 24,25,26) aufweist, dem zu seiner Initialisierung jeweils eine definierte Bitfolge zugeführt ist.
23. Vorrichtung nach Anspruch 22, dadurch gekennzeichnet, dass Mittel zum Generieren und/oder Speichern wenigstens einer ersten Bitfolge (14) und einer zweiten Bitfolge (15) vorgesehen sind, die mit dem bzw. den Schieberegister (n) (13; 21,22,23; 24,25; 24,25,26) derart zusammenwirken, dass wenigstens die erste Bitfolge (14) und die zweite Bitfolge (15) zur Initialisierung des bzw. der rückgekoppelten Schieberegister (13; 21,22,23; 24,25; 24,25,26) verwendet werden.
24. Vorrichtung nach Anspruch 23, dadurch gekennzeichnet, dass die erste Bitfolge (14) wenigstens einem ersten rückgekoppelten Schieberegister (21; 24) zu dessen Initialisierung zugeführt ist und die zweite Bitfolge (15) wenigstens einem zweiten rückgekoppelten Schieberegister (22; 25) zu dessen Initialisierung zugeführt ist.
25. Vorrichtung nach Anspruch 23 oder 24, dadurch gekenn- zeichnet, dass die Mittel zum Generieren und/oder Speichern der ersten Bitfolge (14) ausgebildet sind, um die erste Bitfolge (14) aus einer dem zu verschlüsselnden oder entschlüsselnden Datensatz zugeordneten Indexnummer zu generieren.
26. Vorrichtung nach einem der Ansprüche 23 bis 25, dadurch gekennzeichnet, dass die Mittel zum Generieren und/oder Speichern der zweiten. Bitfolge (15) ausgebildet sind, um die zweite Bitfolge (15) aus einer eindeutigen Kennung der Datenbank (1) zu generieren.
27. Vorrichtung nach einem der Ansprüche 23 bis 26, dadurc gekennzeichnet, dass Mittel zum Generieren und/oder Speichern wenigstens einer dritten Bitfolge (16) vorgesehen sind, die mit dem bzw. den Schieberegister (n) (13; 21,22,23; 24,25; 24,25,26) derart zusammenwirken, dass auch die dritte Bitfolge (16) zur Initialisierung des bzw. der rückgekoppelten Schieberegister (13; 21,22,23; 24,25; 24,25,26) verwendet wird.
28. Vorrichtung nach Anspruch 27, dadurch gekennzeichnet, dass die dritte Bitfolge (16) aus einer eindeutigen Kennung des jeweiligen Benutzers generiert wird.
29. Vorrichtung nach Anspruch 27 oder 28, dadurch gekenn- zeichnet, dass die dritte Bitfolge (16) zur Initialisierung einem dritten rückgekoppelten Schieberegister (23,26) zugeführt ist.
30. Vorrichtung nach einem der Ansprüche 23 bis 29, dadurch gekennzeichnet, dass die rückgekoppelten Schieberegister (13; 21,22,23; 24,25; 24,25,26) gleichzeitig mit der jeweiligen Bitfolge gefüllt werden.
31. Vorrichtung nach einem der Ansprüche 22 bis 30, dadurch gekennzeichnet, dass zur Rückkoppelung des bzw. der Schieberegister (13; 21,22,23; 24,25; 24,25,26) wenigstens ein XOR-Gatter {XORpl, XORp2, XORp3, XORp4, XORppl, XORpppl) eingesetzt ist.
32. Vorrichtung nach Anspruch 31, dadurch gekennzeichnet, dass die rückgekoppelten Schieberegister (13; 21,22,23; 24,25; 24,25,26) derart miteinander verschaltet sind, dass in Abhängigkeit vom. Zustand des einen Schieberegisters das wenigstens eine XOR-Gatter (XORpl, XORp2 , XORp3, X0Rp4, XORppl) des anderen Schieberegister an- oder abgeschaltet wird.
33. Vorrichtung nach Anspruch 31 oder 32, dadurch gekenn- zeichnet, dass das wenigstens eine rückgekoppelte Schieberegister (13; 21,22,23; 24,25; 24,25,26) eine Mehrzahl von zu einer codeproduzierenden Reihe geschalteten Speicnereleiuenten (FF1, FF2 , ... ; FFpl, FFp2,...; FFppl, FFpp2,...) aufweist, wobei der Ausgang des in der Reihe letzten Speichereiements 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 (XORpl, XORp2, XORp3, XORp4, XORppl, XORpppl) derart erfolgt, dass der erster Eingang des XOR-Gatters mit dem Ausgang eines in der co- deproduzierenden 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.
34. Vorrichtung nach Anspruch 33, dadurch gekennzeichnet, dass in die den zweiten Eingang des wenigstens einen XOR- Gatters (XORpl) und den Ausgang des weiteren in der codeproduzierenden Reihe (21; 24) 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 (21; 24) befindlichen Speicherelements (FF5) und der zweite Eingang des UND-Gatters (UNDpl) mit dem Aus- gang eines codeprogrammierenden Speicherelements (FFp2) verbunden ist und dass bevorzugt der Ausgang eines in der codeproduzierenden Reihe (21; 24) befindlichen Speicherelements (FF9) mit dem Eingang eines Inverters (INV) und der Ausgang des Inverters (INV) mit dem Eingang eines anderen in der co- deproduzierenden Reihe (21;24) angeordneten Speicherelements (FF1) verbunden ist, wobei als codeprogrammierendes Speicherelement ein Speicherelement eines weiteren rückgekoppelten Schieberegisters (22;25) verwendet wird.
35. Vorrichtung nach Anspruch 33 oder 34, dadurch gekennzeichnet, dass eine Mehrzahl von XOR-Gattern (XORpl , p2 , 3 , ) vorgesehen ist, deren erster Eingang jeweils von einem Ausgang eines in der codeproduzierenden Reihe (21; 24) befindlichen Speicherelements (FF1,2,3,4) gespeist wird und deren zweiter Eingang jeweils vom Ausgang eines weiteren in der codeproduzierenden Reihe (21; 24) befindlichen Speicherelements ( FF8 , 15, 20 , 23 ) gespeist wird, welches eine Anzahl von Speicherelementen in Flussrichtung der Reihe (21; 24) 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 (21; 24) geschalteten Spei- cherelemente (FFl,2,...n) ist.
36. Vorrichtung nach einem der Ansprüche 33 bis 35, dadurch gekennzeichnet, dass eine Mehrzahl von codeprogrammierenden, jeweils einem UND-Gatter (UNDpl, p2 , 3 , p4 ) und einem XOR~ Gatter (XORpl,p2,p3,p ) zugeordneten Speicherelementen (FFpl , p2 , p3 , p4 , ... n) vorgesehen und in einer zu einem Kreis geschlossenen Reihe (22;25) geschalten ist und wenigstens ein XOR-Gatter (XORppl) angeordnet ist, dessen erster Eingang mit dem Ausgang eines in der codeprogrammierenden Reihe (22;25) befindlichen Speicherelements (FFp6) , dessen zweiter Eingang mit dem Ausgang eines weiteren in der codeprogrammierenden Reihe (22;25) befindlichen Speicherelements (FFp5) und dessen Ausgang mit dem Eingang des in der codeprogrammierenden Reihe (22; 25) dem mit dem ersten Eingang des XOR-Gatters {XORppl) verbundenen Speicherelement (FFp6) nachfolgenden Speicherelements (FFpl) verbunden ist.
37. Vorrichtung nach einem der Ansprüche 33 bis 36, dadurch gekennzeichnet, dass in die den zweiten Eingang des wenigs- tens einen XOR-Gatters (XORppl) und den Ausgang des weiteren in der codeprogrammierenden Reihe (22,-25) befindlichen Speicherelements (FFp3) verbindende Leitung ein UND-Gatter (UNDppl) derart geschalten ist, dass der Ausgang des UND- Gatters (UNDppl) mit dem zweiten Eingang des XOR-Gatters (XORppl), der erste Eingang des UND-Gatters (UNDppl) mit dem Ausgang des weiteren in der codeprogrammierenden Reihe (22;25) befindlichen Speicherelements (FFp3) und der zweite Eingang des UND-Gatters (UNDppl) mit dem Ausgang eines der Programmierung der codeprogrammierenden Reihe (22; 25) dienenden Speichereiements (FFpp5) verbunden ist.
38. Vorrichtung nach einem der Ansprüche 33 bis 37, dadurch gekennzeichnet, dass eine Mehrzahl von der Programmierung der codeprogrammierenden Reihe (22;25) dienenden, jeweils einem UND-Gatter (UNDppl) und einem XOR-Gatter (XORppl) zugeordneten Speicherelementen ( FFppl , pp2, pp3 , pp , ... pn) vorgesehen und in einer zu einem Kreis geschlossenen Reihe (23;26) geschalten ist und wenigstens ein XOR-Gatter (XORpppi) angeordnet ist, dessen erster Eingang mit dem Ausgang eines in der Reihe (23;26) befindlichen Speicherelements (FFppl), dessen zweiter Eingang mit dem Ausgang eines weiteren in der Reihe (23; 26) befindlichen Speicherelements (FFpp3) und dessen Ausgang mit dem Eingang des in der Reihe (23; 26) dem mit dem ersten Eingang des XOR-Gatters (XORpppi) verbundenen Speicherelement (FFppl) nachfolgenden Speicherelements (FFpp2) verbunden ist.
39. Datenbestand, insbesondere Datenbank (1), umfassend eine Daten enthaltende Datenstruktur (2) und eine zugehörige Indexdaten enthaltende Indexstruktur (3) , wobei die Daten in der Datenstruktur (2) und die Indexdaten in der Indexstruktur (3) mittels einer Stromchiffrierung verschlüsselt gespeichert sind .
PCT/AT2013/000010 2012-01-26 2013-01-22 Verfahren zum schreiben und lesen von daten Ceased WO2013110103A2 (de)

Priority Applications (3)

Application Number Priority Date Filing Date Title
RU2014134714A RU2014134714A (ru) 2012-01-26 2013-01-22 Способ записи и считывания данных
EP13704705.6A EP2807788A2 (de) 2012-01-26 2013-01-22 Verfahren zum schreiben und lesen von daten
US14/374,423 US20150046416A1 (en) 2012-01-26 2013-01-22 Method for writing and reading data

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
ATA106/2012 2012-01-26
ATA106/2012A AT511842B1 (de) 2012-01-26 2012-01-26 Verfahren zum schreiben und lesen von daten

Publications (2)

Publication Number Publication Date
WO2013110103A2 true WO2013110103A2 (de) 2013-08-01
WO2013110103A3 WO2013110103A3 (de) 2013-09-19

Family

ID=47721875

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/AT2013/000010 Ceased WO2013110103A2 (de) 2012-01-26 2013-01-22 Verfahren zum schreiben und lesen von daten

Country Status (5)

Country Link
US (1) US20150046416A1 (de)
EP (1) EP2807788A2 (de)
AT (1) AT511842B1 (de)
RU (1) RU2014134714A (de)
WO (1) WO2013110103A2 (de)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9449178B2 (en) * 2012-07-24 2016-09-20 ID Insight System, method and computer product for fast and secure data searching
US10114850B1 (en) * 2014-09-17 2018-10-30 EMC IP Holding Company LLC Data stream generation using prime numbers
US10114832B1 (en) * 2014-09-17 2018-10-30 EMC IP Holding Company LLC Generating a data stream with a predictable change rate
EP3428665B1 (de) * 2017-07-11 2020-03-25 Nxp B.V. Fehlererkennung in registern

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003075507A1 (de) 2002-03-05 2003-09-12 Cordes Rene-Michael Codegenerator und vorrichtung zur synchronen oder asynchronen sowie permanenten identikation oder ver- und entschlüsselung von daten beliebiger lange

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5050213A (en) * 1986-10-14 1991-09-17 Electronic Publishing Resources, Inc. Database usage metering and protection system and method
TW490611B (en) * 2000-03-31 2002-06-11 Jian-Tsz Hou Encryption and decryption memory and access control method
US7043017B2 (en) * 2001-09-13 2006-05-09 Freescale Semiconductor, Inc. Key stream cipher device
US7519835B2 (en) * 2004-05-20 2009-04-14 Safenet, Inc. Encrypted table indexes and searching encrypted tables
JP4750105B2 (ja) * 2005-03-23 2011-08-17 Kddi株式会社 キーストリーム暗号化装置および方法ならびにプログラム
DE102006006057B4 (de) * 2006-02-09 2007-12-27 Infineon Technologies Ag Datenverschlüsselungsvorrichtung und Verfahren zum Verschlüsseln von Daten
US7734969B2 (en) * 2007-10-30 2010-06-08 Infineon Technologies Ag Feedback shift register control
US7945049B2 (en) * 2008-02-28 2011-05-17 Red Hat, Inc. Stream cipher using multiplication over a finite field of even characteristic
US9015181B2 (en) * 2008-09-26 2015-04-21 Commvault Systems, Inc. Systems and methods for managing single instancing data

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003075507A1 (de) 2002-03-05 2003-09-12 Cordes Rene-Michael Codegenerator und vorrichtung zur synchronen oder asynchronen sowie permanenten identikation oder ver- und entschlüsselung von daten beliebiger lange

Also Published As

Publication number Publication date
AT511842A4 (de) 2013-03-15
EP2807788A2 (de) 2014-12-03
WO2013110103A3 (de) 2013-09-19
US20150046416A1 (en) 2015-02-12
RU2014134714A (ru) 2016-03-20
AT511842B1 (de) 2013-03-15

Similar Documents

Publication Publication Date Title
EP2240848B1 (de) Schaltung und verfahren zur generierung einer echten, schaltungsspezifischen und zeitinvarianten zufallszahl
DE69728465T2 (de) Nichtparalleler Mehrzyklus-Verschlüsselungsapparat
DE102009001719B4 (de) Verfahren zur Erzeugung von asymmetrischen kryptografischen Schlüsselpaaren
EP1133849B1 (de) Verfahren und vorrichtung zum erzeugen eines verschlüsselten nutzdatenstroms und verfahren und vorrichtung zum entschlüsseln eines verschlüsselten nutzdatenstroms
DE112017006020T5 (de) Verfahren und System für suchmusterblinde dynamische symmetrische durchsuchbare Verschlüsselung
DE10319435A1 (de) Verfahren zur Verarbeitung von Daten
AT510730B1 (de) Verfahren und vorrichtung zur durchführung einer symmetrischen stromverschlüsselung von daten
DE102010029735A1 (de) Verfahren zum Generieren eines Bitvektors
DE102004042826B4 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
DE102015103251B4 (de) Verfahren und System zum Verwalten von Nutzerdaten eines Nutzerendgeräts
EP2807788A2 (de) Verfahren zum schreiben und lesen von daten
EP3552344B1 (de) Bidirektional verkettete blockchainstruktur
DE19831346A1 (de) Codierdatengenerator
AT515097B1 (de) Verschlüsselungsverfahren und Pseudo-Zufallszahlengenerator
EP1481509B1 (de) Kodegenerator und vorrichtung zur synchronen oder asynchronen sowie permanenten identifikation oder ver- und entschlüsselung von daten beliebiger länge
EP1887458A1 (de) Pseudo-Zufallszahlengenerator für eine Chipkarte
DE112021007711B4 (de) Suchausführungseinrichtung, suchausführungsverfahren, suchausführungsprogramm, und durchsuchbares verschlüsselungssystem
EP3964974A1 (de) Suche in einer datenbank mit abgestuften suchberechtigungen
EP3734486B1 (de) Computerimplementiertes verfahren zum ersetzen eines datenstrings
EP3958157B1 (de) Verschlüsselte suche in einer datenbank
DE10162991A1 (de) Verfahren zum rechnergestützten Ver- und Entschlüsseln von Daten
DE102004010666A1 (de) Schlüsselbitstromerzeugung
WO2015176087A1 (de) Verfahren und vorrichtung zur durchführung einer symmetrischen stromverschlüsselung von daten
EP3251281B1 (de) Intrinsische authentifizierung von programcode
EP2288073A1 (de) Vorrichtung zur Verschlüsselung von Daten

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13704705

Country of ref document: EP

Kind code of ref document: A2

WWE Wipo information: entry into national phase

Ref document number: 2013704705

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 2014134714

Country of ref document: RU

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 14374423

Country of ref document: US