WO2010149142A1 - System for producing randomized bit lists of any length on computers in normal operation - Google Patents

System for producing randomized bit lists of any length on computers in normal operation Download PDF

Info

Publication number
WO2010149142A1
WO2010149142A1 PCT/DE2010/000713 DE2010000713W WO2010149142A1 WO 2010149142 A1 WO2010149142 A1 WO 2010149142A1 DE 2010000713 W DE2010000713 W DE 2010000713W WO 2010149142 A1 WO2010149142 A1 WO 2010149142A1
Authority
WO
WIPO (PCT)
Prior art keywords
values
stock
length
key
random
Prior art date
Application number
PCT/DE2010/000713
Other languages
German (de)
French (fr)
Inventor
Robert Niggl
Original Assignee
Robert Niggl
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
Priority claimed from DE102009029749A external-priority patent/DE102009029749A1/en
Application filed by Robert Niggl filed Critical Robert Niggl
Publication of WO2010149142A1 publication Critical patent/WO2010149142A1/en

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • H04L9/0656Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher
    • H04L9/0662Pseudorandom key sequence combined element-for-element with data sequence, e.g. one-time-pad [OTP] or Vernam's cipher with particular pseudorandom sequence generator
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/08Randomization, e.g. dummy operations or using noise

Definitions

  • the present invention is concerned with a system for generating arbitrarily long randomized bit lists on computers in normal operation, as they are needed for secure encryption by ONE-TIME-PAD (OTP) method.
  • OTP ONE-TIME-PAD
  • the key is a one-time key and must be as long as plain text.
  • the present invention is primarily intended for "normal operation" computer systems, ie it relies solely on standard random generators and certain events which always and suitably occur during normal operation of a computer system Normal operation if it is not profoundly manipulated
  • the present invention can therefore be used immediately in practice.
  • the quantum mechanical methods and the present invention would complement each other very well. If the key generation is designed to be redundant, i. If keys are generated independently via two devices, one key can be securely encrypted with the other and thus a super key can be generated. A device could then still fail or be disturbed.
  • the system with any standard random number generator and a dynamic memory is characterized in that a bitmap is generated by reinitializing the random number generator piecewise in a bitmap module based on an arbitrary random number generator and based on suitably accumulated stock values in such a way that for each reinitialization step at least one randomly determined and then securely encrypted value from the collected stock of values is used, the At least part of the value stock is obtained by collecting address values of dynamically allocated objects, ie by evaluating certain address values of the dynamic memory area of the computer system and the time of collection or of a time associated with the allocation of the respective object.
  • the secure encryption is "information destroying", that is the encrypted plaintext (cipher) carries no information in the sense that, mathematically justified, no information can be obtained about the cipher alone.
  • one-time-pad (OTP) methods are information-destructive, because every bit of the plaintext K is associated with a random bit and is used only for this combination. The key must therefore be generated randomly for K (one-time key) and must be at least as long as K.
  • bit addition Since the bit addition has the properties of an "abelian group", you can, for example, calculate "as with integers". Bit addition in algebra is also known as "addition in the smallest field (
  • bit addition has also been carried out briefly and the characteristics relevant for the enciphering have been proven. It will be a practical one Instead of the + character, the A character is used for the corresponding bit operator, which is available in many programming languages.
  • the right side then delivers
  • K K ⁇ E, which is added component by component. If O is a bitmap of the same length with all zeros, then:
  • the inventive method is now based on a value store, which is obtained by collecting address values of allocated objects.
  • the triggering event is thus the allocation of an object in the dynamic memory by a program that is executed on the computer system.
  • a stock value is arbitrarily determined by expanding at least two pieces of information for generation. These are the address value of an object dynamically generated in the system according to the invention and the collection time or a time associated with the allocation, as shown in FIG. 1.
  • FIG. 1 the architecture of the system according to the invention is shown.
  • FIG. 1 shows how application programs running on the computer system generate a value store directly or indirectly via the new bit list module by collecting address values, which is then used later by the bit list module for the list generation. It is also recorded that the bitmap module itself (as an application program) is used to obtain the stock value.
  • Collecting can be easily implemented by, for example, writing a timer-controlled monitor program that constructs itself objects. Such a program would thus put itself in the "background operation" of the computer system.
  • a random generator is used to randomize both the timer setting and the object construction via subobjects, the collecting of the address values provides optimal starting values for the generation of the stored value from the address value x and the respective collection time t can be easily construct a value that is unpredictable from the outside in normal operation, for example, that with t as the initialization size for the standard random number generator generates a key and then x is encrypted with this key secure.
  • the collection of address values can therefore generate an arbitrarily large stock of values that can not be predicted from outside without massive manipulation of normal operation. Any value stock is possible and unlikely, without any reasonable additional assumptions, a kind of "white noise" that normal operation generates.
  • the present invention introduces a system that uses a computer-based randomization method which can deliver arbitrarily long bit lists in high randomization quality.
  • the method relies on standard random number generators and on inventory values obtained by collecting (and evaluating) certain events that provide address values.
  • This document describes a method for generating arbitrarily long randomized bit lists based on random number generators for bitlists.
  • An (elementary) random generator Z is described below as a tuple (f, g, m)
  • bit number (Z): m (read: bit number of Z)
  • list (X): list ((X u ..., XM-I)) XM for M> 1
  • a vector B (B 1 , ..., B n ), n> 0, is generated step by step by means of Bytelisten B 1 , which together give a sufficiently long total list, ie
  • B: (B 1 , ..., B n , b) Expand Il B by b
  • the stock values are generated on the computer system-technically conditioned and without connection with any technical data so that they are not externally foreseeable.
  • each sub-list of a subsequent step is randomly and randomly randomized, because:
  • step i + 1 the selected stock values are encrypted securely and independently. • It is virtually impossible to simulate the set of possible outcomes over the set of possible input values.
  • the first three rules can be read directly from the definition of ⁇ .
  • the so-defined encryption method is symmetrical, i. the encryption function / and the decryption function g use the same key y, i. it always applies:
  • Each file is a sequence of bytes, ie bit sequences of length 8. 3 generation of random numbers
  • Y is the set of bitlists of length n and if the key yE Y is calculated using a function F: X ⁇ Y, an attacker - if he knows F - only has to search through more F (X) by going through the x EX and the F (x) is calculated.
  • the search space X can obviously easily be screened with a notebook 23 .
  • the method presented here is a hybrid method that combines certain arithmetic techniques with technical elements to simulate ZZF in a quality sufficient for cryptographic application:
  • the starting value range is so large that it can not be scanned.
  • the task of the key generation can now be formulated as follows:
  • Recursive ZZG are calculated condition-based in a primitive recursive manner from a starting state, with each newly calculated number changing the current state.
  • the start state can be specified by specifying initial data in an initialization step. In this sense, a recursive ZZG is describable over
  • a high quality recursive ZZG such as e.g. MT19937 can not be used without further constraints for key generation, i.
  • MT19937 a high quality recursive ZZG
  • further demands are to be made:
  • Claim 3 is comparatively easy to fulfill by producing the output sequence centrally on a computer system located in a secure area.
  • Claim 1 throws us back to our initial problem, especially in combination with requirement 2.
  • this problem can be somewhat mitigated by calculating an output sequence of length m + n with a random m in the order of 10 ° in a warm-up phase and then only the last n numbers of the sequence are used.
  • the stocking process is of sufficient quality, i. provides values that can neither be predicted nor simulated externally (for the purpose of screening).
  • n t of the sections are within sufficient limits (eg 10 2 ⁇ Ti 1 ⁇ 10 5 ).
  • the ONE-TIME-PAD (OTP) encryption step in the calculation of x 1 can even be omitted if the stocking process is perfect, ie has no statistical abnormalities (see below). However, the encryption step also provides the output sequence with practically sufficient quality if the stocking process excludes deviating statistical hypotheses or if such hypotheses must be based on extreme additional assumptions 4 .
  • the value store is obtained on a computer system in normal operation by suitably evaluating certain operating events, i. We use technical features of a computer system in normal operation that can not be observed or predicted from the outside and evaluate it appropriately.
  • An operational event is basically a pair ⁇ time value ⁇ .
  • Allocation Event The allocation of memory in the dynamic memory area through a background process of the computer system controlled by timers, which in turn are set randomly (e.g., via a modulo calculation to the current timestamp).
  • the operational events can be designed to be unpredictable from the outside. This is especially true in a garbage collector system environment, e.g. in that the background process accumulates character buffers of randomly determined length in a table and gradually overwrites that table.
  • the stocking process ⁇ manages a record from «JGD 1 (stock data record), which can serve as an initial data record for MT19937 (see above).
  • This reserve data set is initialized appropriately and then continuously changed by AES encryption 0 .
  • an AES key r is generated via g without reinitialization - i. E. a key in length that AES demands - and then encrypted with r AES-.
  • a hash value is derived from the allocation event and g is reinitialized with this value.
  • Each stock request is treated like a stock update.
  • the supply set is doubly encrypted: First it is encrypted as described above AES- and then it is OTP-encrypted, whereby this key is generated via MT19937 (suitable warmed up) (without reinitialization).
  • the stock value w is continuously transformed via the background process as well as with each request. More precisely, the data record is initialized as an event (timestamp) and then cumulatively changed under event control! The stock process thus represents, as it were, typically a noise of the operating process.

Abstract

The present invention relates to a system that works with a computer-supported randomization method and that can provide bit lists of any length having high randomization quality. The method is based on standard random number generators and on supply values, which are obtained by collecting (and evaluating) certain results, which provide address values. In the normal operation of a computer system, a supply of values that has any size and that cannot be predicted externally can thus be produced; in other words, each supply is possible and equally probable without additional assumptions (a "white noise" of the normal operation, as it were). On the basis of such a supply of values and a standard random number generator, bit lists of any length can then be produced piece by piece by means of reinitialization using an iteration process, wherein each reinitialization step uses at least one randomly selected and then securely encrypted supply value.

Description

SYSTEM ZUR ERZEUGUNG BELIEBIG LANGER RANDOMISIERTER BITLISTEN AUF RECHNERN IM NORMALBRETRIEB SYSTEM FOR GENERATING ANY LONG RANDOMIZED BITLISTS ON COMPUTERS IN NORMAL OPERATION
Die vorliegende Erfindung befasst sich mit einem System zur Erzeugung beliebig langer randomisierter Bitlisten auf Rechnern im Normalbetrieb, wie sie für die sichere Verschlüsselung durch ONE-TIME-PAD (OTP-) Verfahren benötigt werden. Dort ist der Schlüssel ein Einmalschlüssel und muss lang sein wie der Klartext.The present invention is concerned with a system for generating arbitrarily long randomized bit lists on computers in normal operation, as they are needed for secure encryption by ONE-TIME-PAD (OTP) method. There, the key is a one-time key and must be as long as plain text.
Derartige mathematische Verschlüsselungen, wie z.B. das Mersenne- Twister- Verfahren sind im Stand der Technik bekannt. Als nachteilig an diesen Verfahren wird es empfunden, dass aufgrund des Berechnungsaufwandes nur sehr kleine Schlüssel erzeugt werden können bzw. dass die Startwerte für lange Listen entsprechend „riesig" sein müssten und - falls mit den jeweiligen Schnittstellen überhaupt vorgebbar -- nicht effizient bearbeitet werden könnten.Such mathematical encryptions as e.g. the Mersenne Twister method is known in the art. A disadvantage of this method, it is perceived that due to the calculation effort only very small keys can be generated or that the start values for long lists should be "huge" accordingly and - if at all with the respective interfaces specifiable - could not be processed efficiently ,
Abhilfe könnten technische Verfahren liefern, die im Rahmen der Quantenkryptographie entwickelt wurden, z.B. laserbasierte Verfahren mit Halbspiegeln. Entsprechende Geräte gibt es bisher aber nur in Form von Prototypen. Bis zum praxistauglichen kommerziellen Einsatz solcher Geräte sind vermutlich noch diverse Fragen zu klären, insb. Fragen der Qualitätssicherung in der Geräteproduktion und der Fragen der Störfallsicherheit.Remedy could be provided by technical methods developed in the context of quantum cryptography, eg laser-based methods with half-mirrors. However, such devices are only available in the form of prototypes. Until the practical commercial use Such devices are probably still several questions to clarify, especially questions of quality assurance in the production of equipment and the issues of accident safety.
Die vorliegende Erfindung hingegen ist vor allem bestimmt für Rechnersysteme im „Normalbetrieb", d.h. es stützt sich lediglich auf Standard-Zufallgeneratoren und bestimmte Ereignisse, die im Normalbetrieb eines Rechnersystems stets und geeignet anfallen. Im Einsatzkontext der sicheren Verschlüsselung ist das ausführende Rechnersystem aber stets im Normalbetrieb, wenn es nicht tiefgreifend manipuliert wird. Die vorliegende Erfindung ist daher sofort praxistauglich einsetzbar.The present invention, on the other hand, is primarily intended for "normal operation" computer systems, ie it relies solely on standard random generators and certain events which always and suitably occur during normal operation of a computer system Normal operation if it is not profoundly manipulated The present invention can therefore be used immediately in practice.
Selbstverständlich würden sich die quantenmechanischen Verfahren und die vorliegende Erfindung sehr gut ergänzen. Wird die Schlüsselgenerierung redundant ausgelegt, d.h. werden über zwei Geräte unabhängig Schlüssel generiert, kann ein Schlüssel mit dem anderen sicher verschlüsselt und somit ein Superschlüssel erzeugt werden. Ein Gerät könnte dann immer noch ausfallen oder gestört sein.Of course, the quantum mechanical methods and the present invention would complement each other very well. If the key generation is designed to be redundant, i. If keys are generated independently via two devices, one key can be securely encrypted with the other and thus a super key can be generated. A device could then still fail or be disturbed.
Daher ist es Aufgabe der vorliegenden Erfindung, ein System, das nach einem sicheren Verfahren mit beherrschbarem Rechenaufwand arbeitet, bereitzustellen, sodass Daten uneinsehbar von einem Ort zu einem anderen Ort sicher transportiert werden, ohne den Zugriff auf die transportierten Daten zu ermöglichen.Therefore, it is an object of the present invention to provide a system that operates according to a secure method with manageable computational effort, so that data can be safely transported unobtrusively from one location to another without allowing access to the transported data.
Diese Aufgabe wird mit den kennzeichnenden Merkmalen der Hauptansprüche gelöst.This object is achieved with the characterizing features of the main claims.
Erfindungsgemäß ist das System mit einem beliebigen Standard-Zufallsgenerator und einem dynamischen Speicher dadurch gekennzeichnet dass über ein Bitlistenmodul gestützt auf einen beliebigen Zufallsgenerator und gestützt auf geeignet gesammelte Vorratswerte eine Bitliste durch Reinitialisierung des Zufallsgenerators stückweise in der Form erzeugt wird, dass für jeden Reinitialisierungsschritt mindestens ein randomisiert bestimmter und dann sicher verschlüsselter Wert aus dem gesammelten Wertevorrat verwendet wird, wobei der Wertevorrat mindestens teilweise über das Sammeln von Adresswerten dynamisch allokierter Objekte gewonnen wird, d.h. durch die Auswertung von bestimmten Adresswerten des dynamischen Speicherbereichs des Rechnersystems und des Sammelzeitpunktes bzw. eines mit der Allokation des jeweiligen Objektes assoziierten Zeitpunktes.According to the invention, the system with any standard random number generator and a dynamic memory is characterized in that a bitmap is generated by reinitializing the random number generator piecewise in a bitmap module based on an arbitrary random number generator and based on suitably accumulated stock values in such a way that for each reinitialization step at least one randomly determined and then securely encrypted value from the collected stock of values is used, the At least part of the value stock is obtained by collecting address values of dynamically allocated objects, ie by evaluating certain address values of the dynamic memory area of the computer system and the time of collection or of a time associated with the allocation of the respective object.
Da eines der herausragenden Merkmale die Verwendbarkeit für die sichere Verschlüsselung ist - denn es können beliebig lange Schlüssel in hoher Randomisierungsqualität effizient erzeugt werden — , wird diese zunächst vorgestellt.Since one of the outstanding features is the usability for secure encryption - because arbitrarily long keys can be generated efficiently in high randomization quality - this is first presented.
Die sichere Verschlüsselung ist „informationsvernichtend", d.h. der verschlüsselte Klartext (Chiffre) trägt keine Information in dem Sinne, dass ~ mathematisch begründet — über die Chiffre allein keinerlei Information gewonnen werden kann.The secure encryption is "information destroying", that is the encrypted plaintext (cipher) carries no information in the sense that, mathematically justified, no information can be obtained about the cipher alone.
Es ist leicht einsehbar, dass One- Time-Pad-(OTP)- Verfahren informationsvernichtend sind, weil dort jedes Bit des Klartextes K mit einem zufälligen Bit verknüpft wird und nur für diese Verknüpfung verwendet wird. Der Schlüssel muss also randomisiert für K erzeugt werden (Einmalschlüssel) und muss mindestens so lang sein wie K.It is easy to see that one-time-pad (OTP) methods are information-destructive, because every bit of the plaintext K is associated with a random bit and is used only for this combination. The key must therefore be generated randomly for K (one-time key) and must be at least as long as K.
Beispielhaft sei als Bit-Verknüpfung die Bit-Addition genannt (auch bekannt als XOR- Verknüpfung): 0+1=1+0=1, 1+1=0+0=0. Ist dann E ein Einmalschlüssel für K in der Länge von K, dann ist K+E der verschlüsselte Klartext (V), wobei jeweils bitweise addiert wird. Da offenbar V+E=K, kann mit E auch wieder entschlüsselt werden.As an example, the bit addition is called the bit addition (also known as XOR operation): 0 + 1 = 1 + 0 = 1, 1 + 1 = 0 + 0 = 0. Then, if E is a one-time key for K in the length of K, then K + E is the encrypted plaintext (V), bit by bit being added. As evidently V + E = K, E can also be decrypted again.
Da die Bit- Addition die Eigenschaften einer „abelschen Gruppe" hat; man kann also z.B. rechnen „wie mit ganzen Zahlen". Die Bit-Addition ist in der Algebra auch bekannt als „Addition im kleinsten Körper (|F_2)".Since the bit addition has the properties of an "abelian group", you can, for example, calculate "as with integers". Bit addition in algebra is also known as "addition in the smallest field (| F_2)".
Der Vollständigkeit halber sei auch die Bit- Addition kurz ausgeführt und die für die Chiffrierung relevanten Eigenschaften nachgewiesen. Es wird eine praktische „programmiernahe Notation" verwendet. Anstelle des +Zeichens wird das AZeichen für den entsprechenden Bit-Operator verwendet, der in vielen Programmiersprachen zur Verfügung steht.For the sake of completeness, the bit addition has also been carried out briefly and the characteristics relevant for the enciphering have been proven. It will be a practical one Instead of the + character, the A character is used for the corresponding bit operator, which is available in many programming languages.
Definition: Sei !0=l, ! l=0 (Negation)Definition: Let! 0 = 1,! l = 0 (negation)
Es gilt dann offenbar ! !x =xIt obviously applies! ! x = x
Definition: Sei 0Λ0=lAl =0 und 0Al=lΛ0=l (Bit-Addtion bzw. XOR- Verknüpfung)Definition: Let 0 Λ 0 = l A l = 0 and 0 A l = l Λ 0 = l (bit addtion or XOR linkage)
Dann gilt stetsThen always applies
• xΛx=0 (klar)• x Λ x = 0 (clear)
• xA!x= 1 (klar)• x A ! X = 1 (clear)
• xA0=x (denn 1 A0= 1 , 0A0=0)• x A 0 = x (for 1 A 0 = 1 0 A 0 = 0)
• xAl=!x (denn lΛl=0, OAl=l)• x A l =! X (because l Λ l = 0, O A l = l)
Ferner gilt für zwei Bitvariable x, y stets:Furthermore, for two bit variables x, y, the following always holds:
• xAy=yAx (klar)• x A y = y A x (clear)
Wir betrachten nun beliebige Bitvariable x,y,z und zeigen:We now consider arbitrary bit variables x, y, z and show:
• xΛ(yAz) = (xAy)Az Annahme: y = z.• x Λ (y A z) = (x A y) A z Assumption: y = z.
Die rechte Seite liefert dannThe right side then delivers
• xΛ(yΛz) = xA0 =x• x Λ (y Λ z) = x A 0 = x
Für die linke Seite sind zwei Fälle möglich:For the left side two cases are possible:
• (xAx)Ax = 0Ax= x• (x A x) A x = 0 A x = x
• (xA!x)A!x = lA!x= ! !x=x• (x A ! X) A ! X = l A ! X =! ! X = x
Annahme: y ≠ z.Assumption: y ≠ z.
Für die linke Seite sind dann folgende Fälle möglich:The following cases are possible for the left side:
• xA(xΛ!x) = xAl= !x• x A (x Λ ! X) = x A l =! X
• xΛ(!xΛx) = xΛl= !x• x Λ (! X Λ x) = x Λ l =! X
Für die rechte Seite sind dann folgende Fälle möglich: • (xΛ!x)Λx = lΛx= !xThe following cases are possible for the right side: • (x Λ ! X) Λ x = l Λ x =! X
• (xΛx)Λ!x = 0Λ!x= !x• (x Λ x) Λ ! X = 0 Λ ! X =! X
Folglich gilt die Gleichung in allen Fällen.Consequently, the equation holds in all cases.
Sei also K, wie bisher, eine Bit-Liste, E ein gleichlanger Einmalschlüssel, und die Chiffre V sei definiert als V=KΛE, wobei komponentenweise addiert wird. Ist dann O eine gleichlange Bitliste mit lauter Nullen, dann gilt:So let K, as before, be a bit-list, E an equidistant one-time-key, and the cipher V be defined as V = K Λ E, which is added component by component. If O is a bitmap of the same length with all zeros, then:
VAE = (KAE)ΛE = KΛ(EΛE) = KΛO = K.V A E = (K A E) Λ E = K Λ (E Λ E) = K Λ O = K.
Das erfmdungsgemäße Verfahren stützt sich nun auf einen Wertevorrat, der über das Sammeln von Adresswerten allokierter Objekte gewonnen wird. Das auslösende Ereignis ist also die Allokation eines Objektes im dynamischen Speicher durch ein Programm, das auf dem Rechnersystem ausgeführt wird. Im Ergebnis wird also ein Vorratswert beliebig dadurch bestimmt, dass mindestens zwei Informationen zur Erzeugung ausgeweitet werden. Diese sind der Adresswert eines in dem erfindungsgemäßen System dynamisch erzeugten Objektes und der Sammelzeitpunkt bzw. ein mit der Allokation assoziierter Zeitpunkt, wie aus Fig. 1 hervorgeht. In Fig. 1 wird die Architektur des erfindungsgemäßen Systems dargestellt. Die Fig. 1 zeigt, wie Anwendungsprogramme, die auf dem Rechnersystem laufen, direkt bzw. indirekt über das neue Bitlistenmodul durch das Sammeln von Adresswerten einen Wertevorrat generieren, der dann vom Bitlistenmodul später für die Listenerzeugung verwendet wird. Erfasst ist auch, dass das Bitlistenmodul selbst (als Anwendungsprogramm) zur Vorratswertgewinnung eingesetzt wird.The inventive method is now based on a value store, which is obtained by collecting address values of allocated objects. The triggering event is thus the allocation of an object in the dynamic memory by a program that is executed on the computer system. As a result, a stock value is arbitrarily determined by expanding at least two pieces of information for generation. These are the address value of an object dynamically generated in the system according to the invention and the collection time or a time associated with the allocation, as shown in FIG. 1. In Fig. 1, the architecture of the system according to the invention is shown. FIG. 1 shows how application programs running on the computer system generate a value store directly or indirectly via the new bit list module by collecting address values, which is then used later by the bit list module for the list generation. It is also recorded that the bitmap module itself (as an application program) is used to obtain the stock value.
Das Sammeln lässt sich leicht dadurch implementieren, dass man z.B. ein timer-gesteuerters Monitor-Programm schreibt, das sich selbst Objekte konstruiert. So ein Programm würde sich also in den „Hintergrundbetrieb" des Rechnersystems einreihen. Wird dann mit einem Standard-Zufallsgenerator sowohl die timer- Setzung randomisiert als auch die Objekt- Konstruktion über Teilobjekte, so liefert das Sammeln der Adresswerte optimale Startgrößen für die Vorratswertgewinnung. Denn aus dem Adresswert x und dem jeweiligen Sammelzeitpunkt t lässt sich leicht ein Wert konstruieren, der von außen im Normalbetrieb nicht vorhersehbar ist, z.B. dadurch, dass mit t als Initialisierungsgröße für den Standard-Zufallsgenerator ein Schlüssel erzeugt und dann x mit diesem Schlüssel sicher verschlüsselt wird.Collecting can be easily implemented by, for example, writing a timer-controlled monitor program that constructs itself objects. Such a program would thus put itself in the "background operation" of the computer system.When a random generator is used to randomize both the timer setting and the object construction via subobjects, the collecting of the address values provides optimal starting values for the generation of the stored value from the address value x and the respective collection time t can be easily construct a value that is unpredictable from the outside in normal operation, for example, that with t as the initialization size for the standard random number generator generates a key and then x is encrypted with this key secure.
Das Sammeln von Adresswerten kann also einen beliebig großen Wertevorrat erzeugen, der ohne massive Manipulation des Normalbetriebs von außen nicht prognostizierbar ist. Jeder Wertevorrat ist möglich und ohne geeignete Zusatzannahmen gleichwahrscheinlich, gewissermaßen ein „weißes Rauschen", das der Normalbetrieb generiert.The collection of address values can therefore generate an arbitrarily large stock of values that can not be predicted from outside without massive manipulation of normal operation. Any value stock is possible and unlikely, without any reasonable additional assumptions, a kind of "white noise" that normal operation generates.
Gestützt auf einen solchen hinreichend großen Wertevorrat ~ und der Normalbetrieb kann wie beschrieben einen beliebig großen Wertevorrat liefern (!) — kann daher eine lange Bitliste mit einem Standard-Zufallsgenerator über Reinitialisierungsschritte „stückweise" erzeugt werden, wobei der Zufallsgenerator nach jedem Schritt mit randomisiert ausgewählten und dann sicher verschlüsselten Vorratswerten reinitialisiert wird, d.h. es wird (mindestens) ein Vorratswert randomisiert ausgewählt, dann sicher verschlüsselt und diese Chiffre dann für die Reinitialisierung verwendet. Denn im Ergebnis wird so eine Folge unabhängiger Zufallsexperimente simuliert.Based on such a sufficiently large stock of values and the normal operation can as described provide an arbitrarily large stock of values (!) - can therefore a long bitmap with a standard random generator on Reinitialisierungsschritte "piecewise" generated, the random number generator after each step with randomly selected and then securely encrypted stock values are reinitialized, ie (at least) one stock value is randomly selected, then securely encrypted, and then this cipher is used for reinitialization, because in the result a series of independent random experiments is simulated.
Hinweis: Eine mathematische Analyse der Randomisierungsqualität des Verfahrens - d.h. die Annäherung an den „absoluten Zufall" ~ ist sehr komplex und setzt entsprechende statistische Annahmen über die Qualität der Vorratswerte und Standard-Zufallsgeneratoren voraus. Sie ist selbst dann sehr anspruchsvoll, wenn man annimmt, dass alle Verfahrenskomponenten „ideal" realisiert sind.Note: A mathematical analysis of the randomization quality of the method - i. the approach to "absolute coincidence" ~ is very complex and requires corresponding statistical assumptions about the quality of stock levels and standard random number generators, and is very demanding even assuming that all process components are "ideally" realized.
Zusammenfassend kann festgestellt werden, dass sicher verschlüsselte Werte, die selbst nicht vorhersehbar sind, ideale Reinitialsierungswerte sind, so dass sich die Unabhängigkeit gewissermaßen „Schritt für Schritt vererbt". Mit der vorliegenden Erfindung wird ein System vorgestellt, das mit einem rechnergestützten Randomisierungsverfahren arbeitet und das beliebig lange Bitlisten in hoher Randomisierungsqualität liefern kann. Das Verfahren stützt sich dabei auf Standard-Zufallsgeneratoren und auf Vorratswerte, die über das Sammeln (und Auswerten) bestimmter Ereignisse, die Adresswerte liefern, gewonnen werden. Im Normalbetrieb eines Rechnersystems kann so ein beliebig großer Wertevorrat erzeugt werden, der extern nicht prognostizierbar ist, d.h. jeder Vorrat ist möglich und ohne Zusatzannahmen gleichwahrscheinlich, gewissermaßen ein „weißes Rauschen" des Normalbetriebs. Gestützt auf einen solchen Wertevorrat und einen Standard-Zufallsgenerator können dann beliebig lange Bitlisten über einen Iterationsprozess durch Reinitialisierung stückweise erzeugt werden, wobei jeder Reinitialisierungssschritt mindestens einen randomisiert ausgewählten und dann sicher verschlüsselten Vorratswert verwendet.In summary, it can be stated that securely encrypted values, which are themselves unpredictable, are ideal values for reinitialization, so that the independence is inherited "step by step." The present invention introduces a system that uses a computer-based randomization method which can deliver arbitrarily long bit lists in high randomization quality. The method relies on standard random number generators and on inventory values obtained by collecting (and evaluating) certain events that provide address values. During normal operation of a computer system, an arbitrarily large stock of values can thus be generated which can not be predicted externally, ie every supply is possible and without additional assumptions equally probable, a kind of "white noise" of the normal operation based on such a stock of values and a standard random number generator Any length of bit lists over an iteration process by piece reinitialization are generated, each Reinitialisierungssschritt at least one randomly selected and then securely encrypted stock value used.
Im nun Folgenden werden zwei vollständige unterschiedliche Ausführungen des Algorithmus für die randomisierte Erzeugung langer Bitlisten gegeben, die auch noch die Stücklängen randomisieren. In the following two completely different versions of the algorithm for the randomized generation of long bit lists are given, which also randomize the piece lengths.
ERSTE AUSFÜHRUNGFIRST VERSION
1 Zusammenfassung1. Summary
Dieses Dokument beschreibt ein Verfahren zur Erzeugung beliebig langer randomisierter Bitlisten auf Basis von Zufallsgeneratoren für Bitlisten mit begrenzter Bitzahl.This document describes a method for generating arbitrarily long randomized bit lists based on random number generators for bitlists.
Die Strategie besteht darin, einen entsprechenden Vektor B = (Bi, . . . , Bn) von hinreichend kurzen Teillisten B1 zu erstellen, die durch unabhängige Reinitiali- sierung gewonnen werden, und zwar so, dass der Reinitialisierungsprozess über eine variable Anzahl von Parametern (Vorratswerte genannt) gesteuert wird.The strategy is to construct a corresponding vector B = (Bi, ..., B n ) of sufficiently short sublists B 1 , obtained by independent reinitialization, such that the reinitialization process has a variable number of times Parameters (called stocks) is controlled.
Es wird gezeigt, dass unter bestimmten Voraussetzungen - insb. hinsichtlich der Zahl und der Gewinnung der Vorratswerte - die Gesamtliste hinreichend gut randomisiert ist.It is shown that under certain conditions - in particular with regard to the number and the collection of the stock values - the overall list is sufficiently well randomized.
2 Grundbegriffe, Notationen2 basic terms, notations
Definition 1. Ein (elementarer) Zufallgenerator Z wird nachfolgend beschrieben als Tu- pel (f, g, m) mitDefinition 1. An (elementary) random generator Z is described below as a tuple (f, g, m)
• / ist eine Initialisierungsfunktion• / is an initialization function
• g ist eine Produktionsfunktion die m Bits liefert• g is a production function that delivers m bits
Für einen Zufallsgenerator Z = (/, g, m) seiFor a random number generator let Z = (/, g, m) be
• Init(Z) := f (sprich: Initialisierungsfunktion von Z)• Init (Z): = f (read: initialization function of Z)
• Prod(Z) := g (sprich: Produktionsfunktion von Z)• Prod (Z): = g (read: production function of Z)
• Bit zahl (Z) := m (sprich: Bitzahl von Z)• bit number (Z): = m (read: bit number of Z)
• Inits(Z) := Anzahl der Parameter von Init(Z)• Inits (Z): = number of parameters of Init (Z)
Definition 2. Ist Z ein Zufallsgenerator, so sei Byte(Z) folgende Funktion: Definition 2. If Z is a random number generator, byte (Z) is the following function:
• Eingabe: Eine Zahl h• Input: A number h
• Ausgabe: h Byte, die durch wiederholten Aufruf von Prod(Z) erzeugt werden, d.h. Prod(Z) wird x-mal, Bitzahl(Z)*x > h*8, hintereinander aufgerufen, die erzeugten Bits verkettet und dann (die ersten) h Byte ausgegeben.Output: h bytes generated by repeatedly calling Prod (Z), i. Prod (Z) is called x times, bit number (Z) * x> h * 8, sequentially concatenated, the bits generated and then output (the first) h bytes.
Definition 3. Für eine Liste a = (αi, . . . ,αm) sei \a\ := m die Listenlänge. Sind α = (αi, . . . , αm), b = (61, . - . , δ„) Listen, so sei ab := (αl 5. .. , am, h, . . . , δ„) diejenige Liste, die sich durch Verkettung von α mit b ergibt. Ist X = (Xi, . . . , XM) ein Liste von Listen, so sei Liste(X) die Verkettung aller Elemente:Definition 3. For a list a = (αi, ..., α m ) let \ a \: = m be the list length. If α = (αi, ..., α m ), b = (6 1 ,. -., Δ ") lists, let: = (α l 5 .., A m , h,. , δ ") is the list resulting from the concatenation of α with b. If X = (Xi, ..., XM) is a list of lists, List (X) is the concatenation of all elements:
• Liste{X) := Xi für M = 1• List {X): = Xi for M = 1
• Liste(X) := Liste((Xu ..., XM-I))XM für M > 1• list (X): = list ((X u ..., XM-I)) XM for M> 1
Definition 4. Für ein Datenobjekt x sei nachfolgend dim(x) der Speicherbedarf von 2; in Byte.Definition 4. For a data object x, let dim (x) be the memory requirement of 2 ; in bytes.
3 Aufgabenstellung3 task
Mit einem Zufallsgenerator Z ist eine Byteliste der (Mindest) Länge M zu erzeugen.With a random number generator Z, a byte list of (minimum) length M is to be generated.
4 Lösung 4.1 Übersicht4 Solution 4.1 Overview
Es wird via Z schrittweise ein Vektor B = (B1, . . . ., Bn), n > 0, von Bytelisten B1 erzeugt, die insgesamt eine ausreichend lange Gesamtliste ergeben, d.h.A vector B = (B 1 , ..., B n ), n> 0, is generated step by step by means of Bytelisten B 1 , which together give a sufficiently long total list, ie
Figure imgf000011_0001
..., ß„_i))| < M < \Liste(B)\
Figure imgf000011_0001
..., ß "_i)) | <M <\ List (B) \
wobei vor jedem Schritt die Initialisierungsfunktion von Z aufgerufen wird:where before each step the initialization function of Z is called:
• Beim ersten Schritt (i=l) werden klassische Initialisierungswerte verwendet (z.B. aktuelle Zeitstempel).• The first step (i = 1) uses classic initialization values (for example, current timestamps).
• In jedem Schritt i werden die Reinitialisierungsparameter für den nächsten Schritt (i + 1) bestimmt dergestalt, dass aus einem Wertevorrat V = (Vi, . . . , V11) eine entsprechende Auswahl von Werten Vj randomisiert erfolgt und diese Parameter dann One-Time-Pad-verschlüsselt werden, wobei die Schlüssel jeweils via Byte(Z) neu erzeugt werden.• In each step i, the reinitialization parameters for the next step (i + 1) are determined such that from a value set V = (Vi, ..., V 11 ) a corresponding selection of values V j is randomized and these parameters then become One Time-pad-encrypted, the keys are each newly generated via byte (Z).
• Ferner wird die Länge von B1 im Schritt i randomisiert innerhalb einstellbarer Grenzen - eine Mindestlänge (L) bzw. Maximallänge (L') - bestimmt. 4.2 Algorithmus l: procedure RANDOMIZE(Z, B, M, L, L', V)• Furthermore, the length of B 1 in step i is randomized within adjustable limits - a minimum length (L) or maximum length (L ') - determined. 4.2 Algorithm l: procedure RANDOMIZE (Z, B, M, L, L ', V)
2: Il Berechnet B mit \Liste[B)\ > M via Z unter folgenden Voraussetzungen:2: Il Compute B with \ List [B] \> M via Z under the following conditions:
3: // M > 03: // M> 0
4: // 0 < L < L'4: // 0 <L <L '
5: // \V\ > 05: // \ V \> 0
6: // Anweisungen x := Byte[Z)[diτn[x)) setzen nachfolgend einen x-Typ voraus,6: // instructions x: = byte [Z) [diτn [x)] assume an x-type in the following,
7: // der mit beliebigen Bits belegt werden kann (z.B. unsigned int)7: // which can be allocated with arbitrary bits (for example, unsigned int)
8: B initialisieren // nun gilt: B = (B1, . . . , Bn), n = 0 also \B\ = 0, \Liste(B)\ = 08: B initialize // now: B = (B 1 ,..., B n ), n = 0 that is \ B \ = 0, \ list (B) \ = 0
9; Hilfsvektor W, \W\ = InUs[Z), mit Standardinitialisierungswerten belegen9; Auxiliary vector W, \ W \ = InUs [Z), with default initialization values
10: for |_Liste(5)| < M do // Schritt: 5 = (Bi, . .. , Bn) um ein Element erweitern10: for | _list (5) | <M do // Step: 5 = (Bi, .. .., B n ) to expand an element
11: InIt[Z) mit W aufrufen // Initialisierung von Z11: Call InIt [Z) with W // Initialize Z
12: for k = 1..InUs[Z) do // Wfe für die Reinitialisierung belegen12: for k = 1..InUs [Z) do // W fe for reinitialization
13: r := Byte[Z)[dim[r)) // Zufallszahl r bestimmen13: r: = byte [Z) [dim [r)] // Determine random number r
14: h := mod[r, \V\) //Vorrantsindex h bestimmen14: h: = mod [r, \ V \) // determine the precedence index h
15: S := Byte[Z)[dim[Vh)) //Schlüssel S bestimmen15: S: = Byte [Z) [dim [V h ]) // Determine key S
16: Wk := XOR(I^, S) Il Vh OTP-verschlüsseln16: W k : = XOR (I ^, S) Il V h OTP-encrypt
17: r := Byte[z)[dim[r)) // weitere Zufallszahl r bestimmen 17: r: = byte [z) [dim [r)] // determine further random number r
18: d := max[L, mod[r, L')) // Länge d des neuen Elementes festlegen 1 8 : d: = max [L, mod [r, L ')] // specify length d of the new element
19: b := Byte[Z)[d) // Byteliste b der Länge d berechnen1 9 : b: = byte [Z) [d] // calculate byte list b of length d
20: B := (B1, . . . , Bn, b) Il B um b erweitern20: B: = (B 1 , ..., B n , b) Expand Il B by b
21: // nun gilt: \B\ > 0, |Lt*te(£)| > M21: // now: \ B \> 0, | Lt * te (£) | > M
4.3 Bewertung4.3 rating
Annahmen:assumptions:
1. Die Teillisten sind kurz genug (zu steuern über L, U).1. The partial lists are short enough (to be controlled via L, U).
2. Die Anzahl der Vorratswerte ist groß genug (z.B. JVj = 10000).2. The number of stock values is large enough (e.g., JVj = 10,000).
3. Die Vorratswerte entstehen auf dem Rechner systemtechnisch bedingt und ohne Zusammenhang mit irgendwelchen Fachdaten so, dass sie extern nicht vorhersehbar sind.3. The stock values are generated on the computer system-technically conditioned and without connection with any technical data so that they are not externally foreseeable.
Unter diesen Voraussetzimg ist dann B hinreichend gut randomisiert:Under this assumption B is then randomized sufficiently well:
• Die erste Teilüste wird durch klassische Initialisierung gewonnen, ist also hinreichend gut randomisiert.• The first part of the coast is won by classical initialization, so it is sufficiently well randomized.
• In jedem Folgeschritt wird der Zufallsgenerator mit Werten reinitialisiert, die hinreichend gut randomisiert sind, also ist jede Teilliste eines Folgeschrittes hinreichend gut und unabhängig randomisiert, denn:• In each subsequent step, the random number generator is reinitialized with values that are sufficiently well-randomized, so each sub-list of a subsequent step is randomly and randomly randomized, because:
Werden im Schritt i die ausgewählten Vorratswerte sicher verschlüsselt, dann werden auch im Schritt i + 1 die ausgewählten Vorratswerte sicher und unabhängig verschlüsselt. • Es ist praktisch nicht möglich, die Menge möglicher Ergebnisse über die Menge möglicher Eingabewerte zu simulieren.If the selected stock values are securely encrypted in step i, then in step i + 1 the selected stock values are encrypted securely and independently. • It is virtually impossible to simulate the set of possible outcomes over the set of possible input values.
5 Vorratsbestimmung5 Stock determination
Implementiert :Implemented:
• Sammeln von Adressen von allokierten Objekten in einem Vektor.• Collect addresses of allocated objects in a vector.
• Ist die maximale Vektor länge erreicht, so werden die ältesten Einträge überschrieben, d.h. es wird eine Schreibposition geführt, die nach Erreichen der Maximallänge wieder auf 0 gesetzt wird. • If the maximum vector length is reached, the oldest entries are overwritten, ie a write position is maintained, which is reset to 0 after reaching the maximum length.
Zweite AusführungSecond execution
1 Vorbemerkungen1 preliminary remarks
Im Folgenden wird ein Verfahren zur randomisierten Erzeugung beliebig langer Schlüssel für die ONE-TIME-PAD-Kryptographie (s.u.) besprochen. Diese Vorbemerkungen enthalten Vereinbarungen zur später verwendeten Notation. Wir beginnen mit der wie folgt definierten Bitaddition ©:The following is a procedure for the randomized generation of arbitrary long keys for ONE-TIME-PAD cryptography (s.u.). These preliminary remarks contain agreements for the later used notation. We start with the following bitaddition ©:
• 1ΘO:=OΘ1 :=1• 1ΘO: = OΘ1: = 1
• 0 θ 0 := 1 θ 1 := 0• 0 θ 0: = 1 θ 1: = 0
Für Bits a, b, c gelten folgende, nachfolgend stillschweigend verwendete Rechenregeln:For bits a, b, c, the following tacitly used calculation rules apply:
• a@b = bQa• a @ b = bQa
• αθO = α • a@a = 0• αθO = α • a @ a = 0
• o (D (b CJ) c) = (α (J) b) (S) c• o (D (b CJ) c) = (α (J) b) (S) c
Die ersten drei Regeln kann man direkt aus der Definiton von © ablesen. Die vierte Regel ist sofort klar für α = 0 oder 6 = 0 oder c=0, denn z.B. gilt α©(6©0) = aθb = (α©6)©0. Ferner gilt 1 θ (1 θ 1) = 1 © 0 = 0 θ 1 = (1 Φ 1) θ 1.The first three rules can be read directly from the definition of ©. The fourth rule is immediately clear for α = 0 or 6 = 0 or c = 0, e.g. holds α © (6 © 0) = aθb = (α © 6) © 0. Further, 1 θ (1 θ 1) = 1 © 0 = 0 θ 1 = (1 Φ 1) θ 1.
Hinweis: Man rechnet also wie mit ganzen Zahlen, wobei nun aber — x = x (da x + x = 0).Hint: One calculates as with integers, but now - x = x (da x + x = 0).
Eine Liste x der Länge \x\ := n notieren wir wie üblich in der Form x = (xι, ...,Xn). Für Bitlisten x — (X1, .... xn), y = (y\, ..., yn) - d.h. die xu yz sind Bits -, wird die komponentenweise Bitaddition x © y von x und y wie üblich definiert:
Figure imgf000014_0001
As usual, we write down a list x of length \ x \: = n in the form x = (xι, ..., X n ). For bit lists x - (X 1 , .... x n ), y = (y \ , ..., y n ) - ie the x u y z are bits -, the componentwise bit addition x © y of x and y defined as usual:
Figure imgf000014_0001
Die für Bits geltenden Rechenregeln übertragen sich dann auf Bitlisten. z.B. gilt x ©y = (X1 @ Vu -.,xn Qyn) = (yi Qxι.-,ynQxn) = y@x. The calculation rules that apply to bits are then transferred to bitlists. For example, x © y = (X 1 @ Vu -., x n Qy n ) = (yi Qxι .-, y n Qx n ) = y @ x.
2 ONE-TIME-PAD (OTP) - Kyptographie2 ONE-TIME-PAD (OTP) - Kyptography
Wir wollen zunächst überlegen, wie perfekt zufällige Schlüssel, d.h. gleichverteilte Bitlisten, kryptographisch eingesetzt werden können.We will first consider how perfectly random keys, i. equally distributed bit lists can be used cryptographically.
Sei zunächst x := (x\, ..., Xn) ein als Bitliste dargestellter Klartext1 und sei y := (yι, ..., yn) ein (beliebiger) Schlüssel gleicher Länge. Bildet man daraus die Chiffre z := x φ y, so gilt z © y = x, d.h. y ist auch ein Schlüssel für z, um daraus x zurückzugewinnen, denn:Let x: = (x \ , ..., X n ) be a plaintext 1 shown as a bitmap and let y: = (yι, ..., y n ) be an (arbitrary) key of the same length. If one forms from this the cipher z: = x φ y, then z © y = x, ie y is also a key for z in order to recover x, because:
z © y = {x Φ y) © y = x 8 (y θ y) = x © (O, .... 0) = xz © y = {x Φ y) © y = x 8 (y θ y) = x © (O, .... 0) = x
Das so definierte Verschüsselungsverfahren ist symmetrisch, d.h. die Verschlüsselungsfunktion / und die Entschlüsselungsfunktion g verwenden den gleichen Schlüssel y, d.h. es gilt stets:The so-defined encryption method is symmetrical, i. the encryption function / and the decryption function g use the same key y, i. it always applies:
• g(f(χ, y), y) = χ • g (f ( χ , y), y) = χ
Ferner gilt hier sogar f = g = @. Ein Schlüsseltest, d.h. man prüft für einen Testschlüssel y'. ob f(g(z. y'), y') = z gilt, ist für dieses Verfahren sinnlos, denn es gilt stets:Furthermore, here even f = g = @. A key test, i. one checks for a test key y '. whether f (g (z y '), y') = z holds is meaningless for this method, because it always applies:
{z © y') © y' = z © (y1 © y') = z © (0, ..., 0) = z{z © y ') © y' = z © (y 1 © y ') = z © (0, ..., 0) = z
Angenommen, jemand kennt die Chiffre z = x © y, aber weder x noch y und sei ferner der Schlüssel y perfekt zufällig gewählt (s.o.). Könnte er dann trotzdem den Klartext x berechnen? Die Antwort ist nein, denn es gilt das folgende Lemma: Für jede x-Hypothese x' ist y' := z © x' der eindeutig bestimmte Schlüssel mit z © y' = x'. Beweis:Suppose someone knows the cipher z = x © y, but neither x nor y, and furthermore the key y is chosen perfectly random (see above). Could he still calculate the plaintext x anyway? The answer is no, because the following lemma holds: For every x-hypothesis x ', y': = z © x 'is the uniquely determined key with z © y' = x '. Proof:
• y' ist ein Schlüssel: z © y' = z © {z © x') — (z © z) © x' = (0, .... 0) © x' = x' .• y 'is a key: z © y' = z © {z © x ') - (z © z) © x' = (0, .... 0) © x '= x'.
• Eindeutigkeit: Aus z © y" = x' folgt y' = z © x' = z © (z © y") = (0, .... 0) θ y" = y".• Uniqueness: From z © y "= x 'follows y' = z © x '= z © (z © y") = (0, .... 0) θ y "= y".
Folglich ist jede der 2" Bitlisten x' der Länge n eine mögliche x-Hypothese und über den eindeutig bestimmten Schlüssel y' mit z © y' = x' können wir bzgl. der Frage, ob x' = x gilt, nichts lernen, denn x ist unbekannt und nach Voraussetzung (n.V.) sind je zwei Schlüssel y', y" gleichwahrscheinlich.Consequently, each of the 2 "bitlists x 'of length n is a possible x-hypothesis, and we can not learn about the uniquely determined key y' with z © y '= x' as to whether x '= x since x is unknown and according to the assumption (nV), two keys y ', y "are equally probable.
Für diese Argumentation spielt die Größe von n keine Rolle; sie gilt auch für n = 1. Eine dem Fall π = 1 analoge Situtation können wir im allgemeinen Fall durch extremes Zusatzwissen herstellen: Angenommen wir wüssten zusätzlich, dass x = a oder x = b gilt. Auch in diesem Extremfall - es gibt nur zwei Möglichkeiten! - können wir n.V. über die passenden Schlüssel z φ α bzw. z @ b keine Entscheidung treffen!For this reasoning, the size of n does not matter; it also holds for n = 1. A situation analogous to the case π = 1, we can in the general case by extreme additional knowledge: Suppose we also knew that x = a or x = b holds. Even in this extreme case - there are only two possibilities! - we can n.V. make no decision about the appropriate keys z φ α or z @ b!
Klar: Wir dürfen den wie auch immer erzeugten Schlüssel y nur einmal verwenden, d.h. pro Klartext ein neu erzeugter Schlüssel (Einmalschlüssel). In der Literatur ist die oben skizzierte Kryptographie daher als ONE-TIME-PAD (OTP)- Kryptographie bekannt.Clear: We may use the generated key y only once, i. one newly generated key per plaintext (one-time key). In the literature, the above outlined cryptography is therefore known as ONE-TIME-PAD (OTP) cryptography.
1Je(Ie Datei ist eine Folge von Bytes, d.h. Bitfolgen der Länge 8. 3 Erzeugung von Zufallszahlen 1 Each file is a sequence of bytes, ie bit sequences of length 8. 3 generation of random numbers
Wie kommt man nun an Zusfallszahlen(folgen) (ZZF). die statistisch perfekt sind. d.h.How do you get now Zusfallszahlen (to follow) (ZZF). that are statistically perfect. i.e.
• echte ZZF oder• real ZZF or
• ZZF, die von echten nicht unterscheiden sind?• ZZF, which are indistinguishable from real ones?
Auf Linux/Unix-Systemen stehen für eine physikalische Auswertung des Systemzustands bekanntlich unter /dev/random bzw. /dev/urandom entsprechende ZZG zur Verfügung: Sie zeigen praktisch keinerlei statistische Auffälligkeiten. Allerdings gibt es keine akzeptierte physikalische Begründung dafür, wieso das (zumindest im Normalfall) so sein müsste.On Linux / Unix systems, for a physical evaluation of the system state, it is known that corresponding ZZG are available under / dev / random or / dev / urandom: They show virtually no statistical abnormalities. However, there is no accepted physical justification for why (at least normally) this should be the case.
Perspektivisch: Im Rahmen der Quantenkryptographie wurden z.B. laserbasierte Verfahren entwickelt, die solche echten (!) ZZF liefern können. Solche Geräte stehen aber derzeit nur prototypisch zu Verfügung (vgl. Prototypen der Uni Wien).Perspectively: In the context of quantum cryptography, e.g. developed laser-based methods that can provide such genuine (!) ZZF. However, such devices are currently available only prototypically (see Prototypes of the University of Vienna).
In der Praxis werden üblicherweise Berechnungsverfahren angewendet, die sich auf Startwerte stützen sog. arithmetische (genauer: rekursive) Zufallszahlengeneratoren [ZZG). Diese Berechnungen liefern dann in jedem Fall Pseudo-ZZF, und im besten Falle solche, die von echten ZZF nicht unterscheidbar sind (s. Kriterien unten). Aber selbst wenn diese Pseudo-ZZF von echten nicht unterscheidbar sind, ergibt sich im Kontext einer krypto- graphischen Anwendung ein Fundamentalproblem (funktionale Falle):In practice, calculation methods based on starting values are usually used, so-called arithmetic (more precisely: recursive) random number generators [ZZG]. These calculations then provide in each case pseudo-ZZF, and at best those that are indistinguishable from true ZZF (see criteria below). But even if these pseudo-ZZFs are indistinguishable from real ones, there is a fundamental problem (functional trap) in the context of a cryptographic application:
Ist Y die Menge der Bitlisten der Länge n und wird der Schlüssel yE Y über eine Funktion F: X → Y berechnet, so muss ein Angreifer - sofern er F kennt - nur mehr F(X) durchmustern, indem er die x E X durchläuft und die F(x) berechnet.If Y is the set of bitlists of length n and if the key yE Y is calculated using a function F: X → Y, an attacker - if he knows F - only has to search through more F (X) by going through the x EX and the F (x) is calculated.
Lässt sich z.B. die Berechnung auf einen timestamp als Startwert zurückführen - d.h. ist X gleich der Menge möglicher Timestamps -, so kann man den Suchraum X offenbar leicht mit einem Notebook durchmustern23.If, for example, the calculation can be reduced to a timestamp as the starting value - that is, X is equal to the amount of possible timestamps - then the search space X can obviously easily be screened with a notebook 23 .
Für die OTP-Kryptographie sind Schlüsseltests zwar grundsätzlich sinnlos (s.o.). Die Einschränkung auf einen Schlüsselbereich, der durchmustert werden kann, eröffnet aber Angriffsmöglichkeiten selbst dann, wenn über die Schlüssel keine Entscheidung möglich ist: Ein Angreifer durchmustert die testweise entschlüsselte Chiffre daraufhin, ob sie inhaltlich sinnvoll ist - z.B. über eine Textanalyse.For OTP cryptography key tests are basically pointless (see above). However, the restriction to a key area that can be screened opens up possibilities of attack even if no decision is possible via the key: An attacker screens the test-decrypted cipher to determine whether it makes sense in terms of content - e.g. via a text analysis.
Das hier vorgestellte Verfahren ist ein Hybrid- Verfahren, das bestimmte arithmetische Verfahren mit technischen Elementen kombiniert, um ZZF in einer Güte zu simulieren, die für die kryptographische Anwendung ausreichen:The method presented here is a hybrid method that combines certain arithmetic techniques with technical elements to simulate ZZF in a quality sufficient for cryptographic application:
• Eine von der Gleichverteilung abweichende Startwertverteilung ist nicht begründbar.• A starting value distribution deviating from the equal distribution can not be justified.
• Der Startwertbereich ist so groß, dass er nicht durchmustert werden kann.• The starting value range is so large that it can not be scanned.
• Auch eine Teildurchmusterung ist sinnlos: Die Menge möglicher Nachrichten ist so groß, dass sie zu jeder vermuteten Nachricht tendenziell auch Nachrichten gegenteiligen Inhalts enthält. Man kann eine Durchmusterung daher nie abbrechen.• Even a partial screening is useless: The amount of possible news is so large that it tends to contain news of the opposite content for any suspected message. One can therefore never cancel a survey.
2Pro Jahr gibt es 365 * 24 * 60 * 60 * 1000 Millisek. Kann man sogar Tag und Stunde einigermaßen eingrenzen - z.B. bei einem Online-Angriff -. so verbleibt ein lächerlicher Suchraum! 2 There are 365 * 24 * 60 * 60 * 1000 millisec per year. Is it even possible to limit the day and hour to a certain extent - eg in an online attack? so remains a ridiculous search space!
3EiIi Schlüsselkauf verschiebt das Problem: Der Angreifer könnte den Anbieter ausforschen, erpressen, usw. 4 Rekursive ZZG 3 Eiii key buy shifts the problem: the attacker could seek out the provider, blackmail, etc. 4 Recursive ZZG
Ohne Einschränkung (o.E.) können Schlüssel als Sequenz t/ = (^1, ..., yn) von Bitwörtern yt fester Länge aufgefasst werden (z.B. Wörter mit 32 Bits). Diese Bitwörter repräsentieren dann Ganzzahlen aus einem entsprechenden Bereich D. Die Aufgabenstellung der Schlüsselerzeugung kann nun wie folgt formuliert werden:Without limitation (oE), keys can be interpreted as sequences t / = (^ 1 , ..., y n ) of bit words y t of fixed length (eg words with 32 bits). These bit words then represent integers from a corresponding region D. The task of the key generation can now be formulated as follows:
• Zu gegebenem n >0 erzeuge eine echte ZZF aus Dn.For given n> 0, create a real ZZF from D n .
Rekursive ZZG werden zustandsbasiert in primitiv rekursiver Weise aus einem Startzustand berechnet, wobei jede neu berechnete Zahl den aktuellen Zustand ändert. Der Startzustand kann durch Vorgabe von Initialdaten in einem Initialisierungsschritt festgelegt werden. In diesem Sinne ist ein rekursiver ZZG beschreibbar überRecursive ZZG are calculated condition-based in a primitive recursive manner from a starting state, with each newly calculated number changing the current state. The start state can be specified by specifying initial data in an initialization step. In this sense, a recursive ZZG is describable over
• eine Zustandsmenge Q und• a state quantity Q and
• eine Schrittfunktion f : Q → D x Q. die aus einem Zustand eine Zahl und einen neuen Zustand berechnet.• a step function f: Q → D x Q. which calculates a number and a new state from a state.
Initialdaten können wir o.E. als Zahlenfolgen fester Länge L = Lj aus D auffassen. Der Initialsierungsschritt kann dann formal als Funktion a; : DL — » Q beschrieben werden.Initial data we can see oE as a number sequences of fixed length L = L j from D. The initialization step can then formally be called function a; : D L - »Q are described.
Für Initialisierungsdaten x & ΩL und eine natürliche Zahl n > 0 werde dann φ(f, x, n) = (z1 : ...zn) £ W über folgende Rekursionsgleichungen berechnet:
Figure imgf000017_0001
(2t+1, st+1) := /(s.) für z < n.
For initialization data x & Ω L and a natural number n> 0 we calculate φ (f, x, n) = (z 1: ... z n ) £ W using the following recursion equations:
Figure imgf000017_0001
(2 t + 1 , s t + 1 ): = / (s.) For z <n.
Wir nennen φ(f, x, n) die mittels / und Initialisierungsdaten x berechnete Ausgabesequenz der Länge n.We call φ (f, x, n) the output sequence of length n calculated by / and initialization data x.
Wir schreiben ψ(f. x. m+n) auch als Konkatenation φ(f. X1 m)φ(f, *, n), wobei φ(f, *, n) als n weitere Zahlen gelesen werden kann. Dies trägt dem Umstand Rechnung, dass in der Implementierung eines ZZG die Zustände typischerschweise interne Größen sind.We also write ψ (fx m + n) as a concatenation φ (f.X 1 m) φ (f, *, n), where φ (f, *, n) can be read as n other numbers. This takes into account the fact that in the implementation of a ZZG the states are typically internal quantities.
Da rekursive ZZG Zahlenfolgen aus Initialdaten berechnen, liefern die entsprechenden Ausgabesequenzen Pseudo-ZZF, die bestenfalls von echten ZZF nicht unterscheidbar sind. In der Literatur werden daher verschiedene Kriterien für die Annäherung an diesen besten Fall formuliert (Güte eines rekursiven ZZG).Since recursive ZZG compute number sequences from initial data, the corresponding output sequences provide pseudo-ZZF which are at best indistinguishable from true ZZF. In the literature, therefore, various criteria for the approximation to this best case are formulated (quality of a recursive ZZG).
Neuere rekursive ZZG erfüllen diese Kriterien in hohem Maße. Für den Mersenne-Twister MTl 9937 ist z.B. bewiesen:More recent recursive ZZG fulfill these criteria to a high degree. For the Mersenne Twister MTI 9937 is e.g. proved:
• {Gleichverteilung): fc-dimensionale Gleichverteilung für k < 624, d.h. teilt man eine via MT19937 erzeugte Ausgabesequenz in Teilabschnitte der Länge k, so sind diese Teilabschnitte im fc-dimensionalen Raum gleichverteilt.• {equal distribution): fc-dimensional equal distribution for k <624, i. If an output sequence generated via MT19937 is divided into subsections of length k, these subsections are equally distributed in fc-dimensional space.
Auch die Bits einer Ausgabesequenz sind für sich gleichverteilt!Even the bits of an output sequence are equally distributed!
• (Periodenlänge) Eine beliebig lange Ausgabesequenz ist eine Wiederholung eines Anfangsabschnitts der Länge 219937 - 1 « 4, 3 • 106001. 5 Kryptographische Anwendung rekursiver ZZG• (Period length) An arbitrarily long output sequence is a repetition of an initial section of length 2 19937 - 1 «4, 3 • 10 6001 . 5 Cryptographic application of recursive ZZG
Auch ein rekursiver ZZG hoher Güte wie z.B. MT19937 kann nicht ohne weitere Auflagen für die Schlüsselgenerierung verwendet werden, d.h. für eine kryptographische Anwendung sind weitere Forderungen zu stellen:Also, a high quality recursive ZZG such as e.g. MT19937 can not be used without further constraints for key generation, i. For a cryptographic application further demands are to be made:
• Forderung 1 : Damit eine Ausgabesequenz eine brauchbare ZZF ist (im Sinne der formulierten Gütekriterien), müssen auch die Initialdaten brauchbare ZZF sein.• requirement 1: For an output sequence to be a usable ZZF (in the sense of the formulated quality criteria), the initial data must also be usable ZZF.
• Forderung 2: Die Initialdatenlänge L sowie die Periondenlänge müssen hinreichend groß sein, damit ein Durchprobieren bzw. Eingrenzen des Initialdatenraums praktisch nicht durchführbar ist.• Requirement 2: The initial data length L and the Periondenlänge must be sufficiently large, so that a trial and error or limiting the initial data space is practically not feasible.
• Forderung 3: Die Initialdaten müssen geheim sein.• Requirement 3: The initial data must be secret.
Forderung 3 ist vergleichsweise einfach zu erfüllen, indem die Ausgabesequenz denzentral auf einem Rechnersystem erzeugt wird, das sich in einem gesicherten Bereich befindet.Claim 3 is comparatively easy to fulfill by producing the output sequence centrally on a computer system located in a secure area.
Forderung 2 wird im Stand der Technik von MT19937 ausreichend erfüllt, da LMTI99S7 = 624. Strenge Zukunftssicherheit ist damit aber - mit Blick auf den Quantencomputer - noch nicht gegeben.Claim 2 is satisfactorily fulfilled in the prior art by MT19937, since L MTI99S7 = 624. However, with regard to the quantum computer, there is still no room for future certainty.
Forderung 1 wirft uns auf unser Ausgangsproblem zurück, insb. in Kombination mit Forderung 2. Für MT19937 kann man dieses Problem etwas entschärfen, indem man in einer Aufwärmphase eine Ausgabesequenz der Länge m + n mit einem zufälligen m in der Größenordnung 10° berechnet und dann nur die letzten n Zahlen der Sequenz benutzt. Claim 1 throws us back to our initial problem, especially in combination with requirement 2. For MT19937 this problem can be somewhat mitigated by calculating an output sequence of length m + n with a random m in the order of 10 ° in a warm-up phase and then only the last n numbers of the sequence are used.
6 Das Verfahren6 The procedure
Wir stellen nun das neue Verfahren vor. das die Forderungen 1 und 2 erfüllt.We now introduce the new procedure. that meets requirements 1 and 2.
Gegeben ein rekursiver ZZG mit Schrittfunktion / sowie ein Vorratsprozess ω, dann wird eine Pseudozufallszahlenfolge y = (yi, ..., y„) €Dra wie folgt berechnet:Given a recursive ZZG with step function / and a storage process ω, then a pseudorandom number sequence y = (yi, ..., y ") € D ra is calculated as follows:
• Es werden nacheinander Ausgabesequenzen u1 :— ψ(f. xι , riι), ..., uk := ψ(f, xh, nk) mit Initialdaten xι € DL und Längen nτ. so dass ∑, nt = n gilt, berechnet und in dieser Reihenfolge verkettet.• Output sequences u 1 : - ψ (f x ι , riι), ..., u k : = ψ (f, x h , n k ) are successively output with initial data x ι € D L and lengths n τ . such that Σ, n t = n is calculated and concatenated in this order.
Erfasst sei auch die Möglichkeit, dass die Funktion / selbst zufällig ausgetauscht wird, d.h. uι :— ψ(gι, xι, nι) für ein zufällig ausgewähltes gτ.Also included is the possibility that the function / itself is replaced at random, ie u ι : - ψ (g ι , x ι , n ι ) for a randomly selected g τ .
• Die Längen nt werden dabei zufällig bestimmt (mit Ausnahme des letzten Wertes Uk-, der über die o.g. Summenformel bestimmt ist).• The lengths n t are determined randomly (with the exception of the last value U k -, which is determined by the abovementioned empirical formula).
Ausführungshinweis: Man kann dazu / nutzen, indem man via φ(f. *, m) weitere Zufallszahlen berechnet. Vor dem ersten Schritt muss dabei / genügend aufgewärmt sein (s.o.).Execution note: You can do this by using φ (f. *, M) to calculate further random numbers. Before the first step, you have to warm up / enough (see above).
• Die Initialdaten xι G DL werden wie folgt bestimmt:• The initial data x ι GD L are determined as follows:
- ( Vorratsanfrage) Via ω wird ein x' € DL bestimmt (s.u.).- (supply request) Via ω an x '€ D L is determined (see below).
- (Schlüsselerzeugung) Es wird ein Hilfsschlüssel x" € DL erzeugt. Ausführungshinweis: Man kann dazu wieder / nutzen (s.o.).- (key generation) An auxiliary key x "€ D L is generated Execution note: You can do this again / use (see above).
- ( Verschlüsselung) Man setzt xι := x' Q) x". d.h. x' wird mit dem Hilfsschlüssel OTP- verschlüsselt.- (encryption) is reacted x ι: = x 'Q) x "ie x.' Encrypted with the auxiliary key OTP.
Angenommen:Accepted:
• / ist von ausreichender Güte und wird geeignet aufgewärmt (s.o.).• / is of sufficient quality and warmed up properly (see above).
• Der Vorratsprozess ist von ausreichender Güte, d.h. liefert Werte, die man extern weder vorhersehen noch simulieren kann (zum Zwecke der Durchmusterung).The stocking process is of sufficient quality, i. provides values that can neither be predicted nor simulated externally (for the purpose of screening).
• Die Längen nt der Teilabschnitte liegen innerhalb ausreichender Grenzen (z.B. 102 < Ti1 < 105) .• The lengths n t of the sections are within sufficient limits (eg 10 2 <Ti 1 <10 5 ).
Dann ist die Ausgabesequenz von ausreichender Güte, d.h. erfüllt die Ford. 1 und 2.Then the output sequence is of sufficient quality, i. meets Ford. 1 and 2.
Der ONE-TIME-PAD (OTP)-Verschlüsselungsschritt in der Berechnung von xι kann sogar entfallen, wenn der Vorratsprozess perfekt ist, d.h. keinerlei statistische Auffälligkeiten aufweist (s.u.). Durch den Verschlüsselungsschritt ist die Ausgabesequenz aber auch dann von praktisch ausreichender Güte, wenn der Vorratsprozess abweichende statistische Hypothesen ausschließt bzw. wenn sich solche Hypothesen auf extreme Zusatzannahmen stützen müssen4.The ONE-TIME-PAD (OTP) encryption step in the calculation of x 1 can even be omitted if the stocking process is perfect, ie has no statistical abnormalities (see below). However, the encryption step also provides the output sequence with practically sufficient quality if the stocking process excludes deviating statistical hypotheses or if such hypotheses must be based on extreme additional assumptions 4 .
Sicherheitstechnisch gewendet: Kennt ein Angreifer einen Rechner so gut, so könnte er vermutlich auch direkt an die Daten kommen. 7 Der Wertevorrat/VorratsprozessSecurity turned: If an attacker knows a computer so well, he could probably also come directly to the data. 7 The stock of value / stock process
7.1 Grundsatz7.1 Principle
Der Wertevorrat wird auf einem Rechnersystem im Normalbetrieb dadurch gewonnen, dass bestimmte Betriebsereignisse geeignet auswertet werden, d.h. wir nutzen technische Merkmale eineb Rechnersystem im Normalbetrieb, die man von außen nicht beobachten oder vorhersagen kann und werten sie geeignet aus.The value store is obtained on a computer system in normal operation by suitably evaluating certain operating events, i. We use technical features of a computer system in normal operation that can not be observed or predicted from the outside and evaluate it appropriately.
Ein Betriebsereignis ist grundsätzlich ein Paar {Zeit Wert). Wir verwenden ein Al- lokationsereignis: Die Allokation von Speicher im dynamischen Speicherbereich über einen Hintergrundprozess des Rechnersystems, der über Timer gesteuert wird, die wiederum zufällig gesetzt werden (z.B. über eine Modulo-Berechnung auf den aktuellen Zeitstempel).An operational event is basically a pair {time value}. We use an Allocation Event: The allocation of memory in the dynamic memory area through a background process of the computer system controlled by timers, which in turn are set randomly (e.g., via a modulo calculation to the current timestamp).
Bewertung: In einer normalen Multitasking-Umgebung lassen sich die Betriebsereignisse so gestalten, dass sie von außen nicht vorhersehbar .sind. Dies gilt insbesondere in einer Systemumgebung mit garbage collector, z.B. dadurch, dass der Hintergrundprozess Zeichenpuffer zufällig bestimmter Länge in einer Tabelle sammelt und diese Tabelle schrittweise überschreibt.Assessment: In a normal multitasking environment, the operational events can be designed to be unpredictable from the outside. This is especially true in a garbage collector system environment, e.g. in that the background process accumulates character buffers of randomly determined length in a table and gradually overwrites that table.
Es gibt dann grundsätzlich zwei Auswertungsstrategien:There are basically two evaluation strategies:
• {physikalische Auswertung) Es wird ein (zufälliges) physikalisches Merkmal des Rechner Systems ausgelesen (d.h. der Allokationsprozess dient nur der zeitlichen Steuerung des Ausleseprozesses).• {physical evaluation) A (random) physical feature of the computer system is read out (i.e., the allocation process is only for the timing of the readout process).
• {kryptographische Auswertung) Das Allokationsereignis {Zeit. Adresswert) wird entsprechend ausgewertet. z.B. ein Hashwert gebildet und verschlüsselt.• {cryptographic evaluation) The allocation event {time. Address value) is evaluated accordingly. e.g. a hash value is formed and encrypted.
Der jeweils so gewonnene Wert wird dann für die Vorratsbildung herangezogen.The value thus obtained is then used for the formation of inventories.
Für eine physikalische Vorratsbildung stehen auf Linux/ Unix-Systemen bekanntlich unter /dev/random bzw. /dev/urandom entsprechende ZZG zur Verfügung: Sie zeigen praktisch keinerlei statistische Auffälligkeiten, d.h. die Vorratsanfrage liefert dann echt zufällige Werte (perfekter Wertevorrat). Die Ereignisse steuern in diesem Falle lediglich den Zeittakt des Auslesens., stellen also sicher, dass das System seinen physikalischen Zustand (nicht vorhersehbar) ändert. For a physical stockpiling on Linux / Unix systems are known under / dev / random or / dev / urandom appropriate ZZG available: They show virtually no statistical abnormalities, ie the stock request then delivers really random values (perfect stock of values). The events in this case only control the timing of the readout, thus ensuring that the system changes its physical state (unpredictable).
7.2 Implementierung7.2 Implementation
Der Vorratsprozess ω verwaltet einen Datensatz aus «J G D1 (Vorratsdatensatz), der als Initialdatensatz für MT19937 dienen kann (s.o.). Dieser Vorratsdatensatz wird geeignet initialisiert und dann durch AES- Verschlüsselung0 laufend geändert.The stocking process ω manages a record from «JGD 1 (stock data record), which can serve as an initial data record for MT19937 (see above). This reserve data set is initialized appropriately and then continuously changed by AES encryption 0 .
7.2.1 Vorratsinitialisierung7.2.1 Inventory initialization
Der Vorratswert w wir klassisch initialisiert:The stock value w is classically initialized:
• (Initialbelegung) Es wird ein Standard-ZZG g mit einem timestamp initalisiert und anschließend w via g mit Peudozufallszahlen gefüllt.• (Initial assignment) A standard ZZG g is initialized with a timestamp and then filled with peudo random numbers via g.
• (Verschlüsselung) Schließlich wird via g ohne Reinitialisierung ein AES-Schlüssel r erzeugt - d.h. ein Schlüssel in der Länge, den AES fordert - und dann w mit r AES- verschlüsselt.• (Encryption) Finally, an AES key r is generated via g without reinitialization - i. E. a key in length that AES demands - and then encrypted with r AES-.
7.2.2 Vorratsaktualisierung7.2.2 Inventory update
Ein Hintergrundprozess wertet timergesteuert Allokationsereignisse wie folgt aus:A background process evaluates event-driven allocation events as follows:
• (Ereignisauswertung) Aus dem Allokationsereignis wird ein Hashwert abgeleitet und g mit diesem Wert reinitialisiert.• (event evaluation) A hash value is derived from the allocation event and g is reinitialized with this value.
• (Verschlüsselung) wie oben.• (encryption) as above.
7.2.3 Vorratsanfrage7.2.3 Stock request
Jede Vorratsanfrage wird wie eine Vorratsaktualisierung behandelt.Each stock request is treated like a stock update.
7.2.4 Optimierung7.2.4 Optimization
Der Vorratssatz wird doppelt verschlüsselt: Zuerst wird er wie oben beschrieben AES- verschlüsselt und danach wird er OTP-verschlüsselt, wobei dieser Schlüssel via MT19937 (geeignet aufgewärmt) generiert wird (ohne Reinitialisierung).The supply set is doubly encrypted: First it is encrypted as described above AES- and then it is OTP-encrypted, whereby this key is generated via MT19937 (suitable warmed up) (without reinitialization).
7.2.5 Bewertung7.2.5 Rating
Der Vorratswert w wird laufend über den Hintergrundprozess wie auch mit jeder Anfrage transformiert. Genauer: Der Vorratsdatensatz wird ereignisgesteuert (timestamp) initialisiert und dann ereignisgesteuert kumulativ verändert! Der Vorratsprozess repräsentiert damit gewissermaßen idealtypisch ein Rauschen des Betriebsprozesses.The stock value w is continuously transformed via the background process as well as with each request. More precisely, the data record is initialized as an event (timestamp) and then cumulatively changed under event control! The stock process thus represents, as it were, typically a noise of the operating process.
5AES=Advanced Encrypt. Stand. 5 AES = Advanced Encrypt. Was standing.

Claims

PATENTANSPRÜCHE
1. System zur Erzeugung beliebig langer Bitlisten zur Verschlüsselung von Daten mit mindestens einem beliebigen Standard-Zufallsgenerator und mindestens einem dynamischen Speicherbereich, DADURCH GEKENNZEICHNET, dass mit dem beliebigen Zufallsgenerator über ein Bitlistenmodul und gestützt auf gesammelte Vorratswerte Bitlisten in beliebiger Länge stückweise durch Reinitialisierung des Zufallsgenerators in der Form erzeugt wird, dass für jede Reinitialisierung mindestens ein randomisiert bestimmter und dann sicher verschlüsselter Wert aus dem gesammelten Wertevorrat verwendet wird.1. A system for generating arbitrarily long bit lists for encrypting data with at least one random standard generator and at least one dynamic memory area, characterized in that with the random generator via a bitmap module and based on collected stock values bitlists of arbitrary length piece by piece by reinitializing the random number generator is generated in such a way that for each reinitialization at least one randomly determined and then securely encrypted value from the collected value stock is used.
2. Verfahren zur randomisierten Erzeugung beliebig langer Bitlisten zur Verschlüsselung von Daten, DADURCH GEKENNZEICHNET, dass mit einem beliebigen Zufallsgenerator und gestützt auf Vorratswerte eine Bitliste beliebiger Länge stückweise durch Reinitialisierung des Zufallsgenerators in der Form erzeugt wird, dass für jede Reinitialisierung mindestens ein randomisiert bestimmter und dann sicher verschlüsselter Wert aus dem Wertevorrat verwendet wird.2. A method for the randomized generation of arbitrarily long bit lists for encrypting data, characterized in that with a random generator and based on stock values a bitlist of arbitrary length is generated piecemeal by reinitialization of the random number generator in such a way that at least one randomly determined and then securely encrypted value from the stock of values is used.
3. Verfahren nach Anspruch 2, DADURCH GEKENNZEICHNET, dass ein Wertevorrat mindestens teilweise über das Sammeln und Auswerten von Adresswerten dynamisch allokierter Objekte des Rechnersystems gewonnen wird, d.h. durch die Auswertung dieser Adresswerte und des Sammelzeitpunktes bzw. eines mit der Allokation assoziierten Zeitpunktes. 3. The method according to claim 2, characterized in that a stock of values is obtained at least in part by collecting and evaluating address values of dynamically allocated objects of the computer system, i. by evaluating these address values and the collection time or a time associated with the allocation.
PCT/DE2010/000713 2009-06-22 2010-06-22 System for producing randomized bit lists of any length on computers in normal operation WO2010149142A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE102009029749A DE102009029749A1 (en) 2008-02-29 2009-06-22 System for generating arbitrarily long randomized bit lists on computers in normal operation
DE102009029749.9 2009-06-22

Publications (1)

Publication Number Publication Date
WO2010149142A1 true WO2010149142A1 (en) 2010-12-29

Family

ID=42751528

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/DE2010/000713 WO2010149142A1 (en) 2009-06-22 2010-06-22 System for producing randomized bit lists of any length on computers in normal operation

Country Status (1)

Country Link
WO (1) WO2010149142A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778069A (en) * 1996-04-10 1998-07-07 Microsoft Corporation Non-biased pseudo random number generator
US20040162864A1 (en) * 2002-07-08 2004-08-19 Globespan Virata Inc. System and method for generating pseudo-random numbers
EP1840731A2 (en) * 2006-03-31 2007-10-03 Sap Ag A system and method for generating pseudo-random numbers
WO2007148244A1 (en) * 2006-06-20 2007-12-27 Nxp B.V. Random number generator system, method for generating random numbers

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5778069A (en) * 1996-04-10 1998-07-07 Microsoft Corporation Non-biased pseudo random number generator
US20040162864A1 (en) * 2002-07-08 2004-08-19 Globespan Virata Inc. System and method for generating pseudo-random numbers
EP1840731A2 (en) * 2006-03-31 2007-10-03 Sap Ag A system and method for generating pseudo-random numbers
WO2007148244A1 (en) * 2006-06-20 2007-12-27 Nxp B.V. Random number generator system, method for generating random numbers

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
GUTMANN P: "Software Generation of Practically Strong Random Numbers", INTERNET CITATION, 29 January 1998 (1998-01-29), XP002172158, Retrieved from the Internet <URL:http://www.usenix.org/publications/library/proceedings/sec98/full_papers/gutmann/gutmann.pdf> [retrieved on 20010716] *
KELSEY J ET AL: "YARROW-160: NOTES ON THE DESIGN AND ANALYSIS OF THE YARROW CRYPTOGRAPHIC PSEUDORANDOM NUMBER GENERATOR", SELECTED AREAS IN CRYPTOGRAPHY. ANNUAL INTERNATIONAL WORKSHOP, XX, XX, 1 August 1999 (1999-08-01), pages 13 - 33, XP001012490 *

Similar Documents

Publication Publication Date Title
DE102005012098B4 (en) Data cipher processor as well as AES cipher system and AES ciphers
DE69929251T2 (en) ENCRYPTION SYSTEM WITH A KEY OF CHANGING LENGTH
DE102019208032A1 (en) METHOD AND SYSTEM FOR FAULT-TOLERANT AND SAFE MULTIPARTY-PARTY CALCULATION WITH SPDZ
DE60313519T2 (en) A method for generating a key, content providing method, encrypted content deciphering method, illegal user recognition method, content providing system, user system, trace method, encryption device, decryption device, and computer program
DE69937007T2 (en) METHOD AND DEVICE FOR ENCRYPTION AND DECOMPOSITION OF DATA
DE60025401T2 (en) GENERATION OF A MATHEMATICALLY RESTRICTED KEY USING AN ONE-WAY FUNCTION
EP1777913A1 (en) Method to enciphering/deciphering data packets of a data steam
DE102009000869A1 (en) Method and device for tamper-proof transmission of data
DE10129285A1 (en) Encryption of random data divided in N blocks of arbitrary size
DE102013213354A1 (en) RANDOM BATTERY GENERATOR WITH GUARANTEED MINIMUM PERIOD
EP3552344B1 (en) Bidirectionally linked blockchain structure
DE60038042T2 (en) Ones complement-encryption combiner
DE102015001847A1 (en) One-time encryption of meter data
DE602004003675T2 (en) Security countermeasures against attacks by electricity consumption analyzes
DE102009029749A1 (en) System for generating arbitrarily long randomized bit lists on computers in normal operation
AT511842A4 (en) METHOD FOR WRITEING AND READING DATA
WO2010149142A1 (en) System for producing randomized bit lists of any length on computers in normal operation
DE102006037016B4 (en) Pseudo-random number generator for a chip card
EP3174239B1 (en) Encryption method and pseudo-random number generator
EP2288073B1 (en) Apparatus for encrypting data
EP3734486B1 (en) Computer implemented method for replacing a data string
DE602004004135T2 (en) METHOD FOR ENCRYPTING / DEACTIVATING A MESSAGE AND APPROPRIATE DEVICE
DE102022004784A1 (en) Method for encrypting and decrypting a data stream with a random block size in a communication system
EP1569089A2 (en) Random number generation method in a portable data carrier
DE102019216203A1 (en) Proof-of-work based on block encryption

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: 10739843

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 1120100026815

Country of ref document: DE

122 Ep: pct application non-entry in european phase

Ref document number: 10739843

Country of ref document: EP

Kind code of ref document: A1