[go: up one dir, main page]

DE19707288A1 - Cipher system for enciphering data - Google Patents

Cipher system for enciphering data

Info

Publication number
DE19707288A1
DE19707288A1 DE1997107288 DE19707288A DE19707288A1 DE 19707288 A1 DE19707288 A1 DE 19707288A1 DE 1997107288 DE1997107288 DE 1997107288 DE 19707288 A DE19707288 A DE 19707288A DE 19707288 A1 DE19707288 A1 DE 19707288A1
Authority
DE
Germany
Prior art keywords
character
password
key
text
zgt
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.)
Withdrawn
Application number
DE1997107288
Other languages
German (de)
Inventor
Andreas Kuehnl
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
Application filed by Individual filed Critical Individual
Priority to DE1997107288 priority Critical patent/DE19707288A1/en
Publication of DE19707288A1 publication Critical patent/DE19707288A1/en
Withdrawn legal-status Critical Current

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/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/24Key scheduling, i.e. generating round keys or sub-keys for block encryption
    • 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/26Testing cryptographic entity, e.g. testing integrity of encryption key or encryption algorithm

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Storage Device Security (AREA)

Abstract

The system splits a data block and joins the single characters in a different sequence. Preferably, each character of the data block is cyclically shifted according to an individual key in a character table. The necessary keys are generated by a mathematical function which uses the single characters of the password and the data as parameters. The used function is composed from mathematical terms which does not permit an explicit representation of the parameters.

Description

Die Erfindung betrifft eine Vorrichtung entsprechend dem Oberbegriff des Anspruchs 1.The invention relates to a device according to the preamble of claim 1.

Um eine möglichst sichere Datenübertragung zu gewährleisten, werden die zu sichernden Informationen mit Hilfe von Pseudo-Zufallsschlüsseln codiert.To ensure the safest possible data transmission, the data to be backed up Information encoded using pseudo-random keys.

Es ist bekannt, geheimzuhaltende Informationen mit speziellen mathematischen Funktionen zu chiffrieren. So verwendet z. B. RSA (U.S. Patent Nr.: 4 405 829) einen Algorithmus, der zu einer gewissen Durchmischung des Klartextes führt. Auch viele weitere Verfahren, darunter auch DES, verwenden zur Verschlüsselung eine mathematisch umkehrbare Funktion, die zu einer relativen Sicherheit des Geheimtextes führt.It is known to keep confidential information with special mathematical functions encrypt. So z. B. RSA (U.S. Patent No. 4,405,829) an algorithm that results in a certain mixing of the plain text leads. Many other processes, including DES, use a mathematically reversible function for encryption that leads to a relative Security of the ciphertext leads.

Die Nachteile dieser Systeme liegen in der unbedingt benötigten Umkehrbarkeit der Funktion zur Chiffrierung, da sonst eine Decodierung nicht durchführbar wäre. Natürlich ist dadurch die Funktion nicht nur für den berufenen, sondern auch für den unberufenen Entzifferer umkehrbar. Eine Beschränkung der Paßwörter auf eine maximale Länge von 32 Zeichen läßt die sukzessive Exhaustion nicht vollständig aus dem Effizienzbereich professioneller Entzifferer kommen. Auch wird bei manchen etablierten Systemen ein besonderer Wert auf Geheimhaltung gewisser Systemteile gelegt. Diese Einschränkung ist für den professionellen Einsatz jedoch nicht akzeptabel, da durch "reverse engineering", also durch Decompilierung die angesprochenen Systemteile analysierbar sind. Wegen der hohen Kosten für Decompilierprogramme ist diese Methode der Systemanalyse natürlich für Privatpersonen höchst ineffizient. Dadurch wird es erst möglich diese Codierprogramme ohne größere Gefahr für das System einer breiten Bevölkerungsschicht zur Verfügung zu stellen. Die Sicherheit des Geheimtextes ist also vom Equipment des unbefugten Entzifferers abhängig und damit werden die oben angesprochenen Algorithmen, bei denen z. B. ein Systemteil geheimgehalten werden muß für Großfirmen nicht anwendbar.The disadvantages of these systems lie in the reversibility of the function that is absolutely necessary Encryption, otherwise decoding would not be possible. Of course this is the Function not only reversible for the appointed but also for the uninitiated decipherer. A restriction of the passwords to a maximum length of 32 characters leaves the successive Exhaustion does not come completely from the efficiency range of professional decipherers. Also In some established systems, particular importance is attached to secrecy System parts laid. However, this limitation is not for professional use acceptable, because by "reverse engineering", ie by decompiling those mentioned System parts can be analyzed. Because of the high cost of decompilation programs, this is System analysis method, of course, highly inefficient for private individuals. This is the only way possible these coding programs without major danger to the system of a wide To provide population strata. The security of the ciphertext is therefore from Equipment of the unauthorized decipherer and thus the above mentioned Algorithms in which e.g. B. a system part must not be kept secret for large companies applicable.

Auch führen ungünstig gewählte Ausgangsparameter für die Codierung oft zu einer Gefährdung des Geheimtextes. Wenn man von Chiffrierfehlern absieht ist die geringe Periodenlänge bei den meisten etablierten Systemen die Haupteinbruchsmöglichkeit für Kryptanalytiker.In addition, poorly chosen output parameters for the coding often endanger the Ciphertext. If you ignore ciphering errors, the short period length is the Most established systems are the main break-in point for cryptanalysts.

Aufgabe der Erfindung ist es die Verwendung eines beliebig langen Paßworts zu ermöglichen, das erstens nicht aus einem unbefugt entzifferten Text hergeleitet werden kann und zweitens sämtliche Zeichen des ASCII Zeichensatzes enthalten darf. Zusätzlich darf ein kurzes Paßwort die Sicherheit des Systems nicht gefährden. Ebenso ist es Aufgabe der Erfindung, daß die Komplexität des Chiffriersystems der Rechenleistung der jeweiligen Zeit angepaßt werden kann. Damit ist es Hauptaufgabe der Erfindung jegliche Art von computergestützten Daten sicher und unbrechbar zu verschlüsseln.The object of the invention is to enable the use of an arbitrarily long password that firstly, cannot be derived from an unauthorized deciphered text and secondly, all of them Characters of the ASCII character set may contain. In addition, a short password may allow security of the system. It is also an object of the invention that the complexity of the Encryption system can be adapted to the computing power of the respective time. So that's it Main object of the invention to secure any type of computerized data and unbreakable encrypt.

Diese Aufgabe wird durch eine Vorrichtung mit den Merkmalen des Anspruchs 1 gelöst. This object is achieved by a device with the features of claim 1.  

Das Paßwort darf eine variable Länge besitzen (ein bis 1'457'664 Zeichen) und kann nicht aus den Teilschlüsseln abgeleitet werden. Ein Paßwort dessen Länge sehr kurz ist, darf die Sicherheit des Systems nicht gefährden. Bei der Bildung des Paßworts darf der gesamte ASCII-Zeichensatz verwendet werden. Die Komplexität der Teilschlüssel kann den Rechenleistungen der jeweiligen Zeit angepaßt werden und soll so gut wie möglich einer stochastischen Zufallsfolge gleichen.The password can have a variable length (one to 1,457,664 characters) and cannot be from the Sub keys are derived. A password the length of which is very short may compromise the security of the Do not endanger the system. When creating the password, the entire ASCII character set may be used be used. The complexity of the subkey can affect the computing power of each Time should be adjusted and should be as close as possible to a stochastic random sequence.

Vom unberufenen Entzifferer aufgezeichnetes Material verschafft diesem keinen Vorteil. Der komplette Systemaufbau darf öffentlich bekannt sein.Material recorded by the uncalled decipherer does not give it an advantage. The complete system structure may be publicly known.

Dem unberufenen Entzifferer bleibt nur das Durchprobieren der Paßwörter, um den Code zu knacken. Der Geheimtext ist nicht länger als der Klartext. Es findet eine Überprüfung statt, die den Kommunikationspartner eindeutig identifizieren kann. All that remains for the uninitiated decipherer is to try out the passwords to get the code crack. The ciphertext is no longer than the plaintext. There is a review that the Can clearly identify communication partners.  

Das Chiffriersystem Enigma MMThe Enigma MM encryption system 1. Aufbau der Enigma MM1. Structure of the Enigma MM

Die Enigma MM setzt sich aus einer einleitenden polyalphabetischen Chiffrierung PS0 und 32 TpaC-Codierungsblöcken zusammen. Die Chiffrierung PS0 verwendet dabei den Schlüssel S0 und dient dazu, den Klartext in 4-Kilobyte großen Blöcken einer Eingangschiffrierung zu unterziehen. Auf die Bildung der Schlüssel und den genauen Ablauf von PS0 komme ich nach der Erklärung der TpaC's zu sprechen. Als Inputs brauchen diese Transpositions- polyalphabetischen-Codierungsblöcke einen Eingangszwischengeheimtext (Tn), einen Schlüssel der Länge 1024 Byte (Bn) und einen Schlüssel der Länge 4 kB (Sn). Als Output liefern sie einen Ausgangszwischengeheimtext (Tn+1), der solange als Input an den TpaC (n+1) übergeben wird, bis n den Wert 32 erreicht hat. Der Output des TpaC (32) ist der endgültige Geheimtext.The Enigma MM consists of an introductory polyalphabetic cipher PS 0 and 32 TpaC coding blocks. The encryption PS 0 uses the key S 0 and serves to subject the plain text in 4-kilobyte blocks to an input encryption. I will talk about the formation of the keys and the exact sequence of PS 0 after the explanation of the TpaC's. As inputs, these transposition polyalphabetic coding blocks require an input intermediate secret text (T n ), a key with a length of 1024 bytes (B n ) and a key with a length of 4 kB (S n ). As output, they provide an intermediate output secret text (T n + 1 ), which is passed as input to the TpaC (n + 1) until n has reached the value 32. The output of the TpaC (32) is the final ciphertext.

Ein TpaC besteht im wesentlichen aus drei Teilen: Erstens dem Splitter, der den Eingangstext, in Abhängigkeit der Häufigkeit, der im Schlüssel Bn vorkommenden Bitübergänge, in drei Teile zerlegt, zweitens dem Rekonjugator, der diese drei Teilstücke wiederum in Abhängigkeit des Schlüssels Bn ineinanderfügt und drittens der polyalphabetischen Chiffrierung PSn, die dafür sorgt, daß nicht durch Permutieren des Ausgangstextes der Schlüssel Bn herausgefunden werden kann.A TpaC essentially consists of three parts: first, the splitter, which divides the input text into three parts depending on the frequency, the bit transitions occurring in the key B n , and second, the reconjugator, which in turn depends on the key B n , these three parts and thirdly, the polyalphabetic cipher PS n , which ensures that the key B n cannot be found out by permuting the original text.

1.1 Der Splitter1.1 The splinter

Der Splitter analysiert zuerst den Teilschlüssel Bn, indem er abzählt, wieviel Bitübergänge (01,10,11,00) jeweils vorhanden sind. Dabei darf ein Bit nur Element eines Überganges sein, und natürlich müssen dessen Bits benachbart sein. Bsp.: (010) ist nicht [01] und [10] sondern nur [01] (Abarbeitung von Links). Sind nun die Häufigkeiten (|[01]| = a; |[11]|+|[00]| = b; |[10]| = c) bekannt, wird der Eingangstext in drei Gruppen T1 bis T3 zerschnitten. Der Schnitt zwischen T1 und T2 erfolgt nach der a-ten Stelle (Zählbeginn am Blockanfang), der zwischen T2 und T3 an der (a+b)-ten Stelle.The splitter first analyzes the subkey B n by counting how many bit transitions (01, 10, 11, 00) there are in each case. A bit can only be an element of a transition, and of course its bits must be adjacent. Example: (010) is not [01] and [10] but only [01] (processing of links). If the frequencies (| [01] | = a; | [11] | + | [00] | = b; | [10] | = c) are now known, the input text is cut into three groups T 1 to T 3 . The cut between T 1 and T 2 occurs after the a-th position (start of counting at the beginning of the block), and between T 2 and T 3 at the (a + b) -th position.

Zur Fehlererkennung wird nun der Wahrheitswert der Gleichung (a+b+c)-4096 = 0 überprüft. Ist er 1, war die Zerlegung korrekt, ist er allerdings 0, so ist bei der Berechnung ein Fehler aufgetreten und die Zerlegung muß erneut durchgeführt werden. Die Länge des Teilschlüssels Bn ergibt sich aus folgender Überlegung: Der Klartext wird in 4 Kilobyte großen Blöcken an den Splitter übergeben. Folglich brauchen wir 4096 Übergänge, um jedes Zeichen einem Teiltext zuzuordnen. Für jeden Übergang benötigen wir 2 Bits, also für den gesamten Block 8192 Bits. Um nun Speicherplatz zu sparen, speichert man diese Bits nicht als dezimalen Wert, sondern in Bytes zusammengefaßt. Z.B. [10],[01],[11],[00] würde als 10011100 = 156 = £ (siehe ASCII-Tabelle) gespeichert werden. In einem Byte können wir also 4 Übergänge unterbringen und damit die Länge des binären Schlüssels mit
The truth value of the equation (a + b + c) -4096 = 0 is now checked for error detection. If it is 1, the decomposition was correct, but if it is 0, an error occurred during the calculation and the decomposition must be carried out again. The length of the subkey B n results from the following consideration: The plain text is transferred to the splitter in blocks of 4 kilobytes. So we need 4096 transitions to map each character to a subtext. We need 2 bits for each transition, i.e. 8192 bits for the entire block. In order to save storage space, these bits are not saved as decimal values, but rather in bytes. Eg [10], [01], [11], [00] would be saved as 10011100 = 156 = £ (see ASCII table). We can accommodate 4 transitions in one byte and thus the length of the binary key

festhalten. hold tight.  

1.2 Der Rekonjugator1.2 The Reconjugator

Nachdem der Klartext in drei Teiltexten Tn1, Tn2 und Tn3 vorliegt, beginnt die Arbeit des Rekonjugators, indem er jeweils einen Zeiger auf das erste Zeichen jedes Teiltextes und des noch leeren Zwischengeheimtextes (Zgtn) setzt, und anschließend den ersten Bitübergang von Bn analysiert. Ist dieser [01], so schreibt der Rekonjugator das erste Zeichen von Tn1 an die erste Stelle von Zgtn und schiebt anschließend die Zeiger auf Zgtn und Tn1 um jeweils ein Zeichen weiter. Damit wird verhindert, daß ein Zeichen aus einem Teiltext im Zwischengeheimtext zweimal vorkommt oder daß zwei Zeichen (z. B. aus Tn2 und Tn3) an die selbe Stelle in Zgtn geschrieben werden.After the plaintext is available in three partial texts T n1 , T n2 and T n3 , the work of the reconjugator begins by placing a pointer to the first character of each partial text and the still empty intermediate secret text (Zgt n ), and then the first bit transition from B n analyzed. If this is [01], the reconjugator writes the first character from T n1 to the first position of Zgt n and then shifts the pointers to Zgt n and T n1 by one character each. This prevents a character from a partial text from appearing twice in the intermediate secret text or from two characters (e.g. from T n2 and T n3 ) being written to the same position in Zgt n .

Nun wird der zweite Bitübergang betrachtet: Ist dieser wieder [01], so wird das Zeichen, auf das der Zeiger *Tn1 zeigt (mittlerweile zeigt dieser auf das zweite Zeichen), an die Stelle in Zgtn geschrieben, auf die *Zgtn (also auf die Stelle 2) zeigt. Nachfolgend werden die Zeiger *Tn1 und *Zgtn wieder um je ein Zeichen weitergeschoben.Now consider the second bit transition: If this is again [01], the character to which the pointer * T n1 points (meanwhile this points to the second character) is written to the position in Zgt n to the * Zgt n (i.e. to position 2) shows. The pointers * T n1 and * Zgt n are then moved forward by one character each.

Folgt jetzt z. B. ein Übergang [10], so wird das erste Zeichen von Tn3 (*Tn3 zeigt immer noch auf das erste Zeichen) an die Stelle geschrieben, auf die *Zgtn (hier: dritte Stelle) zeigt.Now follows z. For example, a transition [10], the first character of T n3 (* T n3 still points to the first character) is written to the position to which * Zgt n (here: third position) points.

Diese Prozedur wird solange wiederholt, bis *Zgtn auf das 4097-ste Zeichen (Abschluß NULL-Byte) gesetzt wurde. Jetzt haben wir wieder eine Zeichenkette der Länge 4096 Byte, die nun an die polyalphabetische Chiffrierung PSn übergeben wird. Zur Überprüfung der Rekonjugation werden die Zeigerpositionen von *Tn1, *Tn2 und *Tn3 analysiert. Diese müssen je auf das a-te Zeichen von Tn1, das b-te Zeichen von Tn2 und das c-te Zeichen von Tn3 zeigen.This procedure is repeated until * Zgt n is set to the 4097th character (termination NULL byte). Now we have a character string with a length of 4096 bytes, which is now passed to the polyalphabetic encryption PS n . To check the conjugation, the pointer positions of * T n1 , * T n2 and * T n3 are analyzed. These must each point to the a-th character of T n1 , the b-th character of T n2 and the c-th character of T n3 .

Nun bleibt noch die Frage offen, warum gerade die Übergänge [00] und [11] zusammengefaßt werden. Alle möglichen Übergänge haben durchschnittlich die gleichen Häufigkeiten. Werden aber [00] und [11] kombiniert erhält man eine gewisse Asymmetrie, die, wenn die Übergänge [00] und [11] zusätzlich dem Teiltext Tn2 zugewiesen werden, für den unberufenen Entzifferer ein schwer zu nehmendes Hindernis darstellt. Befinden sich im Schlüssel Bn b Übergänge [00] und [11], so folgt daraus, daß es 2b Schlüssel gibt, die zum gleichen Ergebnis führen würden.Now the question remains why the transitions [00] and [11] are combined. All possible transitions have the same frequencies on average. If, however, [00] and [11] are combined, a certain asymmetry is obtained which, if the transitions [00] and [11] are additionally assigned to the partial text T n2 , represents a difficult obstacle for the uninitiated decipherer. If there are transitions [00] and [11] in the key B n , it follows that there are 2 b keys that would lead to the same result.

Insgesamt gibt es auf den 4096 Positionen drei Zustände: [01]; ([00],[11]) oder [10]; die Anzahl aller Möglichkeiten = ZuständePositionen = 34096 mögliche Schlüssel. Nun betrachten wir alle Positionen an denen [00] oder [11] steht (Anzahl ist b). An diesen Plätzen können nur zwei Zustände, entweder [00] oder [11] angenommen werden. Da obige Regel auch hier gilt, kann man sagen, daß ZuständePositionen = 2b verschiedene Schlüssel zum gleichen Ergebnis führen. Bei einem Erwartungswert für b von ca.
In total there are three states on the 4096 positions: [01]; ([00], [11]) or [10]; the number of all possibilities = status positions = 3 4096 possible keys. Now we consider all positions where [00] or [11] is (number is b). At these locations, only two states, either [00] or [11], can be assumed. Since the above rule also applies here, one can say that states positions = 2 b different keys lead to the same result. With an expected value for b of approx.

würde das zu 21365 möglichen Schlüsseln führen, von denen nur einer einen Schluß auf das richtige Paßwort zuläßt.this would lead to 2 1365 possible keys, of which only one allows a conclusion to the correct password.

Dieser Trick bewirkt zwar keine Verbesserung der Sicherheit des Geheimtextes, sondern sogar eine Verminderung der Möglichkeiten um den Faktor 21365, aber erreicht eine enorme Erschwerung, aus einem unbefugt decodierten Geheimtext den richtigen Schlüssel abzuleiten, um damit auf den nächsten Teilschlüssel oder gar auf das Paßwort zu schließen. Der tiefere Zusammenhang zwischen Bn, Sn und Paßwort wird nach der Erklärung der abschließenden polyalphabetischen Chiffrierung PSn erörtert. Zum Rekonjugator ist noch folgende Definition anzumerken:
Def.: Bei [01] wird aus Tn1 das aktuelle (auf das *Tn1 zeigt) Zeichen genommen und an die nächste Stelle in Zgtn gesetzt.
Bei [00] oder [11] wird aus Tn2 das aktuelle Zeichen genommen und an die nächste Stelle in Zgtn gesetzt.
Bei [10] wird aus Tn3 das aktuelle Zeichen genommen und an die nächste Stelle in Zgtn gesetzt.
This trick does not improve the security of the ciphertext, but even reduces the possibilities by a factor of 2 1365 , but it makes it extremely difficult to derive the correct key from an unauthorized decoded ciphertext in order to find the next partial key or even the password close. The deeper connection between B n , S n and password is discussed after the explanation of the final polyalphabetic cipher PS n . The following definition should be noted for the reconjugator:
Def .: In [01] the current character (pointed to by * Tn1) is taken from T n1 and placed in the next position in Zgt n .
At [00] or [11] the current character is taken from T n2 and placed in the next position in Zgt n .
In [10] the current character is taken from T n3 and placed in the next position in Zgt n .

1.3. Die abschließende polyalphabetische Chiffrierung PSn 1.3. The final polyalphabetic cipher PS n

Nachdem der Rekonjugator seine Arbeit verrichtet hat, übergibt er den Zwischengeheimtext Zgtn an das Modul PSn. Das erhält als Input den 4096 Byte langen Text Zgtn und den Schlüssel Sn. Als Output liefert sie einen 4096 Byte langen String, der als Input an TpaC (n+1) übergeben wird, solange die Bedingung n<32 erfüllt ist. Ist n=32 wird der Output an ein Modul übergeben, das die einzelnen 4096 Byte langen Strings zum Gesamtgeheimtext zusammenfügt und mit Prüfbytes versieht. Die eigentliche polyalphabetische Chiffrierung verläuft mathematisch gesehen relativ einfach. Es werden die dezimalen Werte von Zgtn und Sn untereinandergeschrieben und modulo 256 addiert. Anschließend wird das dezimale Ergebnis wieder in ein ASCII Zeichen umgewandelt. Um eine Codierung im stochastischen Sinne unbrechbar zu machen, muß der Schlüssel folgende Bedingungen erfüllen, wie sie schon von A. N. Kolmogorov formuliert wurden:
"Für jede endliche Teilfolge [des Schlüssels Sn] gibt es keine kürzere algorithmische Beschreibung als die Auflistung der Teilfolge - keine Teilfolge ist in eine kürzere Beschreibung komprimierbar".
After the reconjugator has done his work, he transfers the intermediate secret text Zgt n to the module PS n . This receives the 4096 byte long text Zgt n and the key S n as input. As output it delivers a 4096 byte long string which is passed as input to TpaC (n + 1) as long as the condition n <32 is fulfilled. If n = 32, the output is transferred to a module that combines the individual 4096 byte strings to form the overall secret text and provides them with check bytes. The actual polyalphabetic encryption is relatively simple mathematically. The decimal values of Zgt n and S n are written together and modulo 256 added. The decimal result is then converted back into an ASCII character. In order to make coding in the stochastic sense unbreakable, the key must meet the following conditions, as already formulated by AN Kolmogorov:
"For every finite substring [of the key S n ] there is no shorter algorithmic description than the listing of the substring - no substring can be compressed into a shorter description".

Die Teilschlüssel bilden also eine Art "Schablone", die zum eigentlichen Geheimtext hinzuaddiert wird. Die Länge dieser individuellen "Schablone" entspricht der des Geheimtextes. Soll dieser unberufen entziffert werden, müssen bei Unkenntnis des Paßwortes sämtliche mögliche Schablonen durchprobiert werden. Das bedeutet, daß man jedes Zeichen um alle möglichen Werte (256 Stück) verschieben muß, um zum richtigen Ergebnis zu kommen. Damit ist bei einer Blocklänge von 4096 Byte die Zahl der möglichen individuellen Schlüssel gleich 2564096. Die unbefugte Entzifferung ist ohne gewisse Hilfestellungen unmöglich, da man aus einem Geheimtext und einem beliebigen individuellen Schlüssel jeden möglichen Klartext generieren kann. Eine Entzifferung mittels einer Analyse von Zeichenhäufigkeiten oder der Analyse von periodischem Auftreten von Zeichenpaaren ist damit wirkungslos. Selbst bei einer teilweisen Klartext-Geheimtext- Kompromitierung führt das nicht sofort zu einer Offenlegung des gesamten Klartextes. Mittels der Chiffrierung mit individuellen Schlüsseln wird eine unberufene Entzifferung enorm erschwert, wenn nicht unmöglich gemacht. Die Trennung von Schlüssel und Paßwort durch eine Einwegfunktion führt noch zu einer zusätzlichen Sicherheit.The subkeys thus form a kind of "template" that is added to the actual secret text. The length of this individual "template" corresponds to that of the secret text. If this is to be deciphered without being called, all possible templates must be tried out if the password is unknown. This means that you have to shift each character by all possible values (256 pieces) to get the correct result. With a block length of 4096 bytes, the number of possible individual keys is 256 4096 . Unauthorized deciphering is impossible without certain help, because you can generate any possible plain text from a secret text and any individual key. Decoding by means of an analysis of character frequencies or the analysis of periodic occurrence of character pairs is therefore ineffective. Even in the case of a partial compromise of plain text / cipher text, this does not immediately lead to the disclosure of the entire plain text. Encrypting with individual keys makes it extremely difficult, if not impossible, to decipher unrequested. The separation of key and password by a one-way function leads to additional security.

2. Das Schlüsselerzeugungsmodul Sem2. The key generation module Sem 2.1 Forderungen an das Sem2.1 Demands on the semester

Im folgenden Absatz möchte ich auf die Bildung der einzelnen Teilschlüssel Bn (1024 Byte) und Sn (4096 Byte) eingehen. Alle Schlüssel werden durch eine Funktion erzeugt, die es ermöglicht die Schlüssel leicht aus dem Paßwort, dieses aber nicht aus ihnen herzuleiten. Zudem muß die Funktion einen Schlüssel produzieren, der in der Folge seiner Einzelzeichen obigen Forderungen (Kolmogorov) so weit wie möglich entspricht, also aus den übergebenen Parametern (Paßwort) eine fast zufällige Zahlenfolge herstellt, die jedoch in starkem Maße vom Paßwort und vom Datum abhängt. Die letzte Forderung an das Schlüsselerzeugungsmodul (Sem) ist:
Bei einer geringfügigen Änderung der Ausgangsparameter wird ein völlig anderer Schlüssel (und Teilschlüssel) hervorgebracht, der an mindestens 98% der Stellen andere Werte aufweist als sein Vorgänger.
In the following paragraph, I would like to go into the formation of the individual subkeys B n (1024 bytes) and S n (4096 bytes). All keys are generated by a function that enables the keys to be easily derived from the password, but not from them. In addition, the function must produce a key that, in the sequence of its individual characters, corresponds as far as possible to the above requirements (Kolmogorov), i.e. produces an almost random sequence of numbers from the parameters (password) that are transferred, but this depends to a large extent on the password and the date . The last requirement for the key generation module (sem) is:
If the output parameters are changed slightly, a completely different key (and partial key) is produced, which has different values than its predecessor in at least 98% of the places.

2.2. Der Aufbau des Sem2.2. The structure of the sem

Als Input benötigt das Sem ein Paßwort in Form einer beliebig langen Zeichenkette Pw und das Datum. Es liefert als Output, die Schlüssel Sn und Bn. Da der Klartext bei der Enigma MM nicht mit einer Funktion verschlüsselt wird, die dann echt involutorisch sein müßte, sondern mit einem individuellen Schlüssel, brauchen wir auf die Umkehrbarkeit der Funktion, die den Schlüssel herstellt nicht zu achten (sie ist sogar nicht erwünscht), jedoch muß sichergestellt sein, daß der berufene Entzifferer, die Bildung jedes Teilschlüssels nachvollziehen kann. Daraus folgt, daß die Bildung der Schlüssel für die Chiffrierung und für die Dechiffrierung identisch sein muß.As an input, the sem requires a password in the form of an arbitrarily long string Pw and the date. It provides the keys S n and B n as output. Since the plain text is not encrypted with the Enigma MM with a function that should be really involved, but with an individual key, we do not have to pay attention to the reversibility of the function that produces the key (it is even not desired), however, it must be ensured that the appointed decipherer can understand the formation of each partial key. It follows that the formation of the keys for the encryption and for the decryption must be identical.

Da der Benutzer der Enigma MM die Möglichkeit besitzt, ein beliebig langes Paßwort zu verwenden, muß Pw eingangs auf eine geeignete Form gebracht werden. Aus praktischen Gründen schränken wir dieses "beliebig lange" auf eine Länge von 1'457'664 Zeichen ein. Diese Länge wurde gewählt, weil sie der Länge der größten Zeichenkette entspricht, die noch auf einer 3,5'' Diskette gespeichert werden kann. Die Anzahl der möglichen Paßwörter kann man mit folgender Überlegung ausrechnen: Ist das Paßwort ein Zeichen lang, so haben wir 256 Möglichkeiten für die Belegung. Hat das Paßwort die Länge zwei, so stehen uns schon 2562 Möglichkeiten plus die 256 Möglichkeiten zur Verfügung, die wir hätten, wenn es nicht zwei, sondern nur ein Zeichen lang wäre. Daraus ergibt sich die Reihe:
Since the user of the Enigma MM has the option of using an arbitrarily long password, Pw must be brought into a suitable form at the beginning. For practical reasons, we restrict this "any length" to a length of 1,457,664 characters. This length was chosen because it corresponds to the length of the largest character string that can still be stored on a 3.5 '' floppy disk. The number of possible passwords can be calculated with the following consideration: If the password is one character long, we have 256 options for the assignment. If the password has a length of two, we already have 256 2 options available plus the 256 options that we would have if it were not just two characters but one. This results in the series:

Wir haben nun das Paßwort in Form einer Zeichenkette vorliegen, deren Länge variabel ist. Da wir als Output aber Strings fester Länge brauchen, müssen wir versuchen, Pw so zu verändern, daß es Ergebnisse fester Länge liefert, ohne dabei Informationen zu verlieren. Dies ist möglich, wenn man das Paßwort zerlegt, und die Bruchstücke als Parameter an eine Funktion übergibt, die mit einer variablen Parameteranzahl umgehen kann. Die Zerlegung des Paßwortes funktioniert auf folgende Art: Zuerst wird die Länge n von Pw festgehalten und analysiert. Anschließend wird der dezimale Wert jedes Zeichens dez(Pw)x berechnet, durch 255 geteilt (damit gilt: 0 < = uk < = 1; Dk = {1,2, . . ., n}), in u1, u2, . . ., un gespeichert und an folgenden Funktion übergeben. Zusätzlich wird das Datum in seine Einzelbestandteile zerlegt und entsprechend folgendem Beispiel ebenfalls an die Funktion übergeben:
We now have the password in the form of a character string, the length of which is variable. However, since we need fixed-length strings as output, we have to try to change Pw so that it delivers fixed-length results without losing information. This is possible if you break down the password and pass the fragments as parameters to a function that can handle a variable number of parameters. The password is broken down as follows: First, the length n of Pw is recorded and analyzed. Then the decimal value of each character dec (Pw) x is calculated, divided by 255 (hence: 0 <= u k <= 1; D k = {1,2,..., N}), in u 1 , u 2,. . ., u n saved and transferred to the following function. In addition, the date is broken down into its individual components and also transferred to the function according to the following example:

dn ist damit aus dem Intervall D = [0; 9];
d n is thus from the interval D = [0; 9];

Diese Funktion ist in sich fortführbar und kann somit beliebig viele Parameter aufnehmen. x, u1 bis un sowie d1 bis d8 werden von der Funktion als Gradmaß angesehen. Der Anfangsterm ist nötig, um bei kurzen Paßwörtern, also bei kleinem n, eine möglichst starke Durchmischung zu bewahren. Als Ergebnis liefert die Funktion immer einen Wert zwischen 0 und 1 zurück. Um für x den Startwert q0 zu ermitteln, bilden wir die Quersummen von u1 bis un, berechnen daraus den Mittelwert und multiplizieren ihn mit 10. q wird mit einer Genauigkeit von 15 Nachkommastellen übergeben. Nun kommt die Funktion Sf[l,q1, f(x, u1, u2, . . ., un)] an die Reihe, die wie folgt definiert ist:
This function can be continued in itself and can therefore take any number of parameters. x, u 1 to u n and d 1 to d 8 are considered by the function as a degree. The initial term is necessary in order to maintain as much mixing as possible with short passwords, i.e. with a small n. As a result, the function always returns a value between 0 and 1. In order to determine the starting value q 0 for x, we form the checksums from u 1 to u n , calculate the mean value from it and multiply it by 10. q is passed with an accuracy of 15 decimal places. Now comes the function Sf [l, q 1 , f (x, u 1 , u 2 ,..., U n )], which is defined as follows:

Um den Ablauf der Schlüsselerzeugung zu vervollständigen wird die Prozedur ProcSB[n] wie folgt definiert:
To complete the key generation process, the ProcSB [n] procedure is defined as follows:

ProcSB[n] wird 32 mal durchgeführt (für n=1 bis n=32). Danach stehen uns B1 bis B32 und S1 bis S32 zu Verfügung. ProcSB [n] is carried out 32 times (for n = 1 to n = 32). Then we have B 1 to B 32 and S 1 to S 32 available.

Daraus ergeben sich die Leistungsmerkmale des Sem's:
This results in the performance characteristics of the sem:

  • - Es gibt ein effizientes Verfahren zur Berechnung der Teilschlüssel Bn, Sn, Em und Sm aus dem Paßwort Pw.- There is an efficient method for calculating the sub-keys B n , S n , E m and S m from the password Pw.
  • - Es gibt kein effizientes Verfahren zur Berechnung von Pw aus den Teilschlüsseln Bn, Sn, Em oder Sm.- There is no efficient method for calculating Pw from the sub-keys B n , S n , E m or S m .
  • - Die aus Pw erzeugten Zeichenfolgen der Schlüssel Bn, Sn, Em und Sm können nicht in effizienter Zeit von heutigen Rechnern auf ihre Gleichung und ihre Parameter (Paßwort) reduziert werden und sollen die Bedingung von Kolmogorov, soweit es mit mathematischen Mitteln möglich ist erfüllen.- The strings of the keys B n , S n , E m and S m generated from Pw cannot be reduced in efficient time by today's computers to their equation and their parameters (password) and should be the condition of Kolmogorov, as far as it can be done by mathematical means is possible to fulfill.
  • - Geringfügige Änderungen des Paßworts führen zu einer Modifikation bei mindestens 98% der Zeichen des Geheimtextes.- Minor changes in the password result in a modification at least 98% of the characters in the ciphertext.
  • - Die erzeugten Schlüssel sind vom Datum abhängig.- The keys generated depend on the date.
3. Die Decodierung3. The decoding

Für die Dechiffrierung benötigt man die Schlüssel S0 bis S32 und B1 bis B32. Zusätzlich benötigt man den 4096 Byte langen Eingansgeheimtext Egt. Das in 1.3 angesprochene Modul, das bei der Verschlüsselung zum Zusammenfügen der einzelnen Ausgangsgeheimtextblöcke dient, wird hier zum Zerlegen des Gesamtgeheimtextes verwendet. Dazu müssen erst gewisse Prüfbytes entfernt und anschließend der Text in 4096 Byte große Eingangsgeheimtexte (Egt) zerlegt werden.The keys S 0 to S 32 and B 1 to B 32 are required for decoding. In addition, you need the 4096 byte input text Egt. The module mentioned in 1.3, which is used for the encryption to merge the individual source secret text blocks, is used here to decompose the overall secret text. To do this, certain check bytes must first be removed and then the text broken down into 4096 byte input secret texts (Egt).

Die Dechiffrierung verläuft auf folgende Weise: Zunächst werden die Inversen von S0 bis S32 bezüglich der Addition modulo 256 bestimmt. Die Definition des Inversen lautet wie folgt:
Jedes Element des Schlüssels Sn verknüpft mit seinem Inversen ergibt das neutrale Element der Addition modulo 256.
The decryption proceeds in the following way: First, the inverses from S 0 to S 32 with respect to the addition modulo 256 are determined. The definition of the inverse is as follows:
Each element of the key S n linked with its inverse results in the neutral element of the addition modulo 256.

(Sn)x + ((Sn)⁻1)x = 0 = 256 modulo 256.(S n ) x + ((S n ) ⁻ 1 ) x = 0 = 256 modulo 256.

Daraus folgt:
It follows:

((Sn)⁻1)x = (256 - (Sn)x) modulo 256.((S n ) ⁻ 1 ) x = (256 - (S n ) x ) modulo 256.

Da die Differenz aus 256 und (Sn)x immer kleiner 256 und größer gleich Null ist (alle Elemente von Sn sind aus der Menge {0, 1, 2, . . ., 255} kann das abschließende modulo 256 weggelassen werden. Damit lautet die Formel für ((Sm)⁻1)x:
Since the difference between 256 and (S n ) x is always less than 256 and greater than or equal to zero (all elements of S n are from the set {0, 1, 2,..., 255}), the final modulo 256 can be omitted. The formula for ((S m ) ⁻ 1 ) x is :

((Sn)⁻1)x = 256 - (Sn)x.((S n ) ⁻ 1 ) x = 256 - (S n ) x .

Nun werden die Module der TpaCs in umgekehrter Reihenfolge abgearbeitet. Zunächst legt man den Schlüssel (Sn)⁻1 über den Eingangsgeheimtext Egt und addiert diesen modulo 256 hinzu. Es ergibt sich bei korrekter Ausführung der Zwischengeheimtext Zgt(n).
Now the modules of the TpaCs are processed in reverse order. First you put the key (S n ) ⁻ 1 over the input secret text Egt and add this modulo 256. If correctly executed, the intermediate secret text Zgt (n) results.

Nun werden die Bitübergänge des Schlüssels Bn analysiert und anschließend drei Stringketten der Länge a (Tn1), b (Tn2) und c (Tn3) angelegt. Die Analyse von Bn verläuft analog zu der in 1.1 besprochenen. Nun wird der Schlüssel Bn auf die Zeichenkette Zgt(n) gelegt, so daß jedem Bitübergang aus Bn ein Zeichen aus Zgt(n) zugewiesen werden kann, z. B.: Zgt(n) = "Hallo_!"
Now the bit transitions of the key B n are analyzed and then three string chains of length a (T n1 ), b (T n2 ) and c (T n3 ) are created. The analysis of B n is analogous to that discussed in 1.1. Now the key B n is placed on the character string Zgt (n), so that each bit transition from B n can be assigned a character from Zgt (n), e.g. E.g .: Zgt (n) = "Hallo_!"

Im Anschluß daran wird jedes Zeichen, das einem [01]-Übergang zugewiesen wurde, der Reihe nach (Abarbeitung von Links), in Tn1 geschrieben. Das gleiche geschieht mit den Zeichen, die einem [00]- oder [11]- bzw. [10]-Übergang zugewiesen wurden, allerdings werden sie nach Tn2 bzw. Tn3 geschrieben. Im Anschluß daran hängt man die Zeichenketten Tn1, Tn2 und Tn3 der Reihe nach aneinander und erhält dadurch den Zwischengeheimtext Zgt(n-1), der an das TpaC⁻1(n-1) übergeben wird.Subsequently, each character assigned to a [01] transition is written in turn (processing of links) in T n1 . The same happens with the characters that have been assigned to a [00] or [11] or [10] transition, but they are written after T n2 or T n3 . The strings T n1 , T n2 and T n3 are then connected to one another in succession, and the interim secret text Zgt (n-1) is obtained, which is passed on to the TpaC⁻ 1 (n-1).

Abschließend sorgt ein Modul wieder dafür, daß die 4096 Byte langen Klartexte aneinandergehängt und mit Prüfbits versehen werden.Finally, a module again ensures that the 4096 byte long plain texts are attached to one another and provided with test bits.

Claims (4)

1. Chiffriersystem zum Verschlüsseln jeglicher Art von Daten, dadurch gekennzeichnet, daß der Datenblock erst aufgespaltet und anschließend die einzelnen Zeichen in anderer Reihenfolge wieder zusammengefügt werden (siehe Zeichnung).1. Encryption system for encrypting all types of data, characterized in that the data block is first split and then the individual characters are reassembled in a different order (see drawing). 2. Vorrichtung nach Anspruch 1, dadurch gekennzeichnet, daß jedes Zeichen des Datenblocks entsprechend eines individuellen Schlüssels in einer Zeichentabelle zyklisch verschoben wird (Zeichnung: PSn).2. Device according to claim 1, characterized in that each character of the data block is cyclically shifted according to an individual key in a character table (drawing: PS n ). 3. Vorrichtung nach Anspruch 1 oder 2, dadurch gekennzeichnet, daß die benötigten Schlüssel (Bn und Sn) durch eine mathematische Funktion erzeugt werden, die die einzelnen Zeichen des Paßworts, und das Datum als Parameter verwendet.3. Apparatus according to claim 1 or 2, characterized in that the required keys (B n and S n ) are generated by a mathematical function that uses the individual characters of the password and the date as a parameter. 4. Vorrichtung nach Anspruch 3, dadurch gekennzeichnet, daß sich die unter Anspruch 3 verwendete Funktion aus mathematischen Termen zusammensetzt, die eine explizite Darstellung der Parameter nicht erlauben.4. The device according to claim 3, characterized in that the function used in claim 3 mathematical terms that do not explicitly represent the parameters allow.
DE1997107288 1997-02-24 1997-02-24 Cipher system for enciphering data Withdrawn DE19707288A1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE1997107288 DE19707288A1 (en) 1997-02-24 1997-02-24 Cipher system for enciphering data

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1997107288 DE19707288A1 (en) 1997-02-24 1997-02-24 Cipher system for enciphering data

Publications (1)

Publication Number Publication Date
DE19707288A1 true DE19707288A1 (en) 1998-08-27

Family

ID=7821273

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1997107288 Withdrawn DE19707288A1 (en) 1997-02-24 1997-02-24 Cipher system for enciphering data

Country Status (1)

Country Link
DE (1) DE19707288A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1322062A3 (en) * 2001-12-20 2003-10-15 Siemens Aktiengesellschaft Method for computer assisted encryption and decryption of data

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT382474B (en) * 1979-08-21 1987-02-25 Stockburger H DEVICE FOR SECURING DATA TO BE RECORDED ON A DATA CARRIER BY ENCRYPTION AND DEVICE FOR DECRYLING DATA
EP0202989B1 (en) * 1985-05-15 1990-02-07 Thomson-Csf Enciphering apparatus using substitutions and permutations
DE3905667C2 (en) * 1989-02-24 1991-01-03 Ant Nachrichtentechnik Gmbh, 7150 Backnang, De
WO1991018460A1 (en) * 1990-05-19 1991-11-28 Rolf Trautner Process for the blockwise coding of digital data
WO1993001578A1 (en) * 1991-07-01 1993-01-21 Securicrypto Ab Ciphering device
JPH05344118A (en) * 1992-06-05 1993-12-24 Matsushita Electric Ind Co Ltd Data distributing device
WO1995025392A1 (en) * 1994-03-14 1995-09-21 Shaw William Y Variable-key cryptography system

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AT382474B (en) * 1979-08-21 1987-02-25 Stockburger H DEVICE FOR SECURING DATA TO BE RECORDED ON A DATA CARRIER BY ENCRYPTION AND DEVICE FOR DECRYLING DATA
EP0202989B1 (en) * 1985-05-15 1990-02-07 Thomson-Csf Enciphering apparatus using substitutions and permutations
DE3905667C2 (en) * 1989-02-24 1991-01-03 Ant Nachrichtentechnik Gmbh, 7150 Backnang, De
WO1991018460A1 (en) * 1990-05-19 1991-11-28 Rolf Trautner Process for the blockwise coding of digital data
WO1993001578A1 (en) * 1991-07-01 1993-01-21 Securicrypto Ab Ciphering device
JPH05344118A (en) * 1992-06-05 1993-12-24 Matsushita Electric Ind Co Ltd Data distributing device
WO1995025392A1 (en) * 1994-03-14 1995-09-21 Shaw William Y Variable-key cryptography system

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1322062A3 (en) * 2001-12-20 2003-10-15 Siemens Aktiengesellschaft Method for computer assisted encryption and decryption of data

Similar Documents

Publication Publication Date Title
DE69929251T2 (en) ENCRYPTION SYSTEM WITH A KEY OF CHANGING LENGTH
DE69031736T2 (en) ENCRYPTION METHOD
DE69222090T2 (en) Device and method for block-by-block encryption of data
CH660822A5 (en) RANDOM PRIME GENERATOR IN A DATA ENCRYPTION SYSTEM WORKING WITH PUBLIC KEY.
DE2715631C2 (en) Encryption and protection of data
DE69433257T2 (en) Method and communication system using an encryption device
DE69721439T2 (en) CRYPTOGRAPHIC METHOD AND DEVICE FOR THE NON-LINEAR ASSEMBLY OF A DATA BLOCK AND A KEY
DE60315700T2 (en) METHOD FOR GENERATING ENERGY ENCODING WITH SEVERAL KEYS
DE60222052T2 (en) Encryption secured against attacks through the analysis of power consumption (DPA)
DE19744961A1 (en) Generate clear and unpredictable values
DE60223337T3 (en) METHOD FOR SECURE ENCRYPTION AND COMPONENT FOR CARRYING OUT SUCH A COATING METHOD
DE69937007T2 (en) METHOD AND DEVICE FOR ENCRYPTION AND DECOMPOSITION OF DATA
EP1298834B1 (en) Method and apparatus for encrypting and decrypting data
DE69911815T2 (en) SELF-CORRECTING RANDOM ENCRYPTION SYSTEM AND METHOD
EP2605445A1 (en) Method and apparatus for securing block ciphers against template attacks
DE19733829A1 (en) Method for encrypting or decrypting a data sequence
EP3218893A1 (en) Hardened white box implementation
DE10304451B3 (en) Modular exponentiation with randomized exponent
DE69729297T2 (en) ENCRYPTION DEVICE FOR BINARY CODED MESSAGES
DE69333257T2 (en) System for signal switching and processing
EP0189734A1 (en) Method and apparatus for converting a digital data sequence into an enciphered form
DE102015001847A1 (en) One-time encryption of meter data
DE69733424T2 (en) DATA GRAPHIC RELATIONS PROCESS
EP3369205B1 (en) Alternative representation of the crypto algorithm des
DE19707288A1 (en) Cipher system for enciphering data

Legal Events

Date Code Title Description
OM8 Search report available as to paragraph 43 lit. 1 sentence 1 patent law
8139 Disposal/non-payment of the annual fee