DE102004006570A1 - Session keying method for microprocessor-based coding system, involves placing selection functions in field of functions so that next randomly selected function is accessed via pointer of functions, where function access byte field contents - Google Patents

Session keying method for microprocessor-based coding system, involves placing selection functions in field of functions so that next randomly selected function is accessed via pointer of functions, where function access byte field contents Download PDF

Info

Publication number
DE102004006570A1
DE102004006570A1 DE200410006570 DE102004006570A DE102004006570A1 DE 102004006570 A1 DE102004006570 A1 DE 102004006570A1 DE 200410006570 DE200410006570 DE 200410006570 DE 102004006570 A DE102004006570 A DE 102004006570A DE 102004006570 A1 DE102004006570 A1 DE 102004006570A1
Authority
DE
Germany
Prior art keywords
key
functions
byte
field
selection
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.)
Granted
Application number
DE200410006570
Other languages
German (de)
Other versions
DE102004006570B4 (en
Inventor
Herbert Golawski
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.)
Golawski Herbert Dipl-Ing
Original Assignee
Golawski Herbert Dipl-Ing
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 Golawski Herbert Dipl-Ing filed Critical Golawski Herbert Dipl-Ing
Priority to DE200410006570 priority Critical patent/DE102004006570B4/en
Publication of DE102004006570A1 publication Critical patent/DE102004006570A1/en
Application granted granted Critical
Publication of DE102004006570B4 publication Critical patent/DE102004006570B4/en
Anticipated expiration legal-status Critical
Expired - Fee Related 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • 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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/005Countermeasures against attacks on cryptographic mechanisms for timing attacks
    • 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
    • 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
    • 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/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Landscapes

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

Abstract

The method involves calculating a byte field based on fractal calculation methods, where the field arranges a byte sequence for a basic key by a selection function in a field of functions. The function accessing the field contents is selected from the field based on a current numerical value of a pseudo random number generator. A next randomly selected function is accessed via a pointer of the functions.

Description

1 Einführung1. Introduction

Im Zusammenhang mit der steigenden Anzahl von Datenübertragungsstrecken und dem wachsenden Aufkommen von persönlichen Daten, die nicht in Hände Dritter gelangen sollen, nimmt die sichere Verschlüsselung von Daten einen besonderen Platz ein und besitzt ein großes Entwicklungspotential. Dabei spielt nicht nur die gesicherte Übertragung, sondern auch die gesicherte Speicherung von Daten eine wichtige Rolle.in the Related to the increasing number of data links and the growing advent of personal Data not in hands Third party, takes the secure encryption Of data has a special place and has a great development potential. It not only plays the secure transmission, but also the Secured storage of data plays an important role.

1.1 Projektidee und Prototyp1.1 Project idea and prototype

Es wurde vorgeschlagen ein abgewandeltes und in der Sicherheitsstufe skalierbares Verfahren zur Verschlüsselung von Daten auf einer uPSD-Plattform zu realisieren. Für ein symmetrisches Verschlüsselungsverfahren sollte ein Verfahren implementiert werden, das den schnellen Wechsel der Schlüssel oder Blockgrößen ermöglicht und den neuen Verschlüsselungsstandard AES benutzt.It was proposed a modified and at the security level Scalable process for encrypting data on one to realize uPSD platform. For a symmetric encryption method should be implemented a method that allows quick change the key or block sizes allows and the new encryption standard AES used.

Aus den Vorgaben der Projektidee wurden die folgenden Anteile im Prototypen umgesetzt:

  • – Aufbau und Funktion des Standard AES-Rijndael-Algorithmus auf uPSD
  • – Erstellen eines Verfahrens für einen dynamisch wechselnden Einmalschlüssel
  • – Implementieren eines physikalischen Schutzes mit uPSD-Funktionen
From the specifications of the project idea, the following parts were implemented in the prototype:
  • - Structure and function of the standard AES-Rijndael algorithm on uPSD
  • - Create a procedure for a dynamically changing one-time key
  • Implement physical protection with uPSD functions

Alle Softwaremodule des zugrunde liegenden Verschlüsselungsalgorithmus (AES-Rijndael) werden von der Modifikation benutzt jedoch nicht verändert.All Software modules of the underlying encryption algorithm (AES-Rijndael) are used by the modification but not changed.

In Erweiterung zum Standard AES-Rijndael wurde ein Einmalschlüsselverfahren entwickelt, das anstelle des festen Schlüssels im Standard-Rijndael einen wechselnden, in quasi zufälliger Weise sich ändernden Schlüssel benutzt.In Extension to the standard AES-Rijndael became a one-time-key-procedure designed that instead of the fixed key in the standard Rijndael a changing, almost random Way changing key used.

Im Rahmen der Sitzungseröffnung zur Übermittlung von verschlüsselten Daten werden anstelle eines Sitzungsschlüssels, Parameter für das Schlüsseländerungsverfahren im Rahmen dieser Sitzung zwischen Sender und Empfänger ausgetauscht. Im Unterschied zu den gängigen Blockverschlüsselungsverfahren wird im Verlauf der gesicherten Datenübermittlung der Schlüssel in kurzen Zeiträumen geändert.in the Frame of session opening for transmission from encrypted Data is used instead of a session key, parameter for the key change process exchanged between sender and receiver during this session. Unlike the usual ones Block encryption method During the secure transfer of data, the key in short periods changed.

Der Einmalschlüssel wird aus einem Datenfeld erstellt, das auf der Basis von Funktionen zur Berechnung von Fraktalen aufgebaut ist. Aus diesem Feld werden mittels Selektionsfunktionen die Zufallsschlüssel der Sitzung ermittelt. Die Auswahl der Selektionsfunktionen wird durch einen Pseudo Zufallszahlengenerator gesteuert, der in Sender und Empfänger während der Sitzungseröffnung synchronisiert werden muß.Of the once key is created from a data field based on functions constructed for the calculation of fractals. Become from this field Using selection functions, determine the random keys of the session. The selection of the selection functions is controlled by a pseudo random number generator, in the transmitter and receiver while the session opening must be synchronized.

Der Einmalschlüssel besteht aus mehreren Komponenten

  • – einem Datenfeld, dass mit Hilfe von Funktionen berechnet wird, die für die Berechnung von Fraktalen wie Mandelbrot- oder Juliamengen benutzt wird
  • – einer festgelegten Anzahl von Selektionsfunktionen mit denen die für die gewünschte Schlüsselläge notwendige Bytefolge aus dem Datenfeld entnommen wird
  • – einem pseudo Zufallszahlengenerator, dessen Wert bei jeder Berechnung eines neuen Basisschlüssels geändert wird. Der Zufallszahlenwert regelt die Auswahl der Selektionsfunktion und liefert zusätzlich Wertvorgaben bei der Datenauswahl innerhalb der Selektionsfunktionen.
The one-time key consists of several components
  • A data field calculated using functions used to calculate fractals such as mandelbrot or julienne
  • A defined number of selection functions with which the byte sequence necessary for the desired key saw is taken from the data field
  • A pseudo-random number generator whose value is changed each time a new base key is calculated. The random number value controls the selection of the selection function and additionally provides value specifications for data selection within the selection functions.

Werden Daten zwischen einem Sender und Empfänger ausgetauscht, so ist es notwendig, dass beide Systeme die gleichen Informationen über die Startwerte zur Initialisierung des Zufallszahlengenerators besitzen.Become Data exchanged between a sender and receiver, so it is necessary that both systems have the same information about the Have initial values for initialization of the random number generator.

Der physikalische Schutz ist ein Vorschlag die im uPSD vorhandenen Analog/Digital-Schnittstellen zu nutzen, um sogenannten Power-Attacks und Timing-Attacks auf Mikroprozessorbasierte Verschlüsselungssysteme vorzubeugen.Of the physical protection is a suggestion to use the existing in the uPSD analog / digital interfaces, to so-called power attacks and timing attacks on microprocessor-based encryption systems submissions.

2 Verschlüsselung mit AES-Rijndael und Aufbau der Einmalschlüsselerweiterung2 encryption with AES-Rijndael and setting up the one-time key extension

Im folgenden Kapitel wird eine kurze Erläuterung zur Basisfunktion und den implementierten Erweiterungen beschrieben. Grundlagen für die Randbedingungen der Implementation wurden den Büchern und Dokumenten der Literaturliste entnommen [1,3,4,5].in the The following chapter gives a brief explanation of the basic function and described the implemented extensions. Basics for the boundary conditions the implementation became the books and documents in the bibliography [1,3,4,5].

2.1 Standard Rijndael Funktion2.1 Standard Rijndael function

Die Kernfunktionalität des AES Rijndael ist in [1], [4] ausführlich beschrieben.The core functionality of the AES Rijndael is described in detail in [1], [4].

Der Blockchiffrieralgorithmus Rijndael wurde im Rahmen des Wettbewerbs zum neuen amerikanischen Verschlüsselungsstandard AES (Advanced Encryption Standard) entwickelt. Bei der Entwicklung wurde insbesondere auf einen kleinen Code, eine Verarbeitbarkeit auf 8-Bit Prozessoren und mikrokontrollerfreundliche Verarbeitungsalgoritmen geachtet.Of the Block ciphering algorithm Rijndael was part of the competition to the new American encryption standard AES (Advanced Encryption Standard). In the development has been designed especially for a small code, a processability on 8-bit processors and microcontroller-friendly processing algorithms respected.

Der Algorithmus arbeitet mit drei Basisschlüssellängen von 128, 192 und 256 Bit. Die zulässigen Blocklängen entsprechen den drei Schlüssellängen. Aus dem Basisschlüssel werden zu Beginn einer Verschlüsselung – abhängig von der Schlüssellänge – 10 bis 14 Rundenschlüssel generiert. Für jede Runde wird aus einem Basisschlüssel ein eigener Rundenschlüssel erstellt. Mit dem generierten Rundenschlüssel werden beim Rijndael einzelne Datenblöcke in 10 bis 14 Runden verschlüsselt. Galoisfelder ermöglichen eine elegante Implementierung zur Durchführung von Entschlüsselungen bei gleichbleibendem Basisschlüssel.Of the Algorithm works with three basic key lengths of 128, 192 and 256 bits. The permissible block lengths correspond the three key lengths. Out the basic key be at the beginning of encryption - depending on the key length - 10 to 14 round keys generated. For Each round is made from a base key a separate round key. With the generated round key At Rijndael, individual data blocks are encrypted in 10 to 14 rounds. Galois fields enable an elegant implementation for performing decryption with the same base key.

Ablauf einer Verschlüsselung mit dem AES-RijndaelExpiration of an encryption with the AES-Rijndael

1) Erstellen des Rundenschlüssels:1) Create the round key:

Aus einem Basisschlüssel werden abhängig von der Schlüssellänge bzw. der Blocklänge weitere Rundenschlüssel erzeugt. Die Rundenanzahl steigt mit der Schlüssellänge an. Der erstellte Rundenschlüssel bleibt für Verschlüsselung und Entschlüsselung gleich.Out a base key become dependent from the key length or the block length more round keys generated. The number of laps increases with the key length. The created round key remains for encryption and decryption equal.

2) Verschlüsselung2) encryption

Der Datenstrom wird in Blöcke mit festgelegter Länge unterteilt. Die Blocklängen variieren zwischen 128, 192 und 256 Bit und richten sich nicht nach der Schlüssellänge. Jeder einzelne Block wird mit den Funktionen des AES-Rijndael (ADDKEYS, SHIFTROWS, SUBSTITUTION, MIXCOLUMNS, INVMIXCOLUMNS) in einer festgelegten Reihenfolge über maximal 14 Runden verschlüsselt.Of the Data stream is in blocks with fixed length divided. The block lengths vary between 128, 192 and 256 bits and do not follow up the key length. Everyone single block is combined with the functions of AES-Rijndael (ADDKEYS, SHIFTROWS, SUBSTITUTION, MIXCOLUMNS, INVMIXCOLUMNS) in a fixed Order over maximum 14 rounds encrypted.

Lediglich der erste Block wird im Verschlüsselungsmodus der Datenstromverschlüsselung (CBC = Cipher Block Chaining, vgl [1]) abweichend behandelt.Only the first block is in encryption mode the stream encryption (CBC = cipher block chaining, see [1]) treated differently.

Die in der vorliegenden Implementation benutzte Referenzinstallation des AES-Rijndael V2.0 entstammt [1] bzw. [5] und wurde von Joan Deamen erstellt. Die Vorlagen dazu sind auf der beiliegenden CD im Unterverzeichnis AES_SRC_2 enthalten.The reference installation used in the present implementation The AES-Rijndael V2.0 comes from [1] or [5] and was designed by Joan Deamen created. The templates are on the enclosed CD in subdirectory AES_SRC_2.

2.2 AES-Rijndael Erweiterung durch den Einmalschlüssel auf der Basis eines fraktal berechneten Feldes2.2 AES-Rijndael extension through the one-time key on the basis of a fractally calculated field

Auf der Plattform uPSD wurde eine erweiterte Schlüsselgenerierung mit dem Ziel implementiert, zusätzlich einen generischen, sitzungsspezifischen Einmalschlüssel für den AES-Rijndael bereitzustellen.On The platform uPSD became an extended key generation with the goal implemented, in addition A generic, session-specific, one-time key for AES-Rijndael provide.

Aus einem initialen Schlüsselfeld werden Startwerte für einen Zufallszahlengenerator (Pseudo Random Generator) und Basisdaten zur Berechnung eines Bytefeldes mittels fraktalen Funktionen ermittelt. Das auf diese Weise erzeugte fraktale Feld basiert auf speziellen, in der Sitzungseröffnung festgelegten Startwerten und bleibt als Schlüsselbasis für die Sitzung erhalten. Die fraktale Berechnungsbasis wurde gewählt, um sicherzustellen, dass keine schlechten Schlüssel möglich sind.Out an initial key field will be starting values for a random number generator (pseudo random generator) and basic data to calculate a byte field using fractal functions. The fractal field generated in this way is based on special, in the session opening set starting values and remains as the key base for the session. The fractal calculation base was chosen to ensure that no bad keys possible are.

Im Rahmen der Entwicklung wurden fraktale Berechnungsmethoden für Mandelbrot- und Juliamengen herangezogen. Fraktale Funktionen sind einerseits stetig, andererseits jedoch nirgends differenzierbar [8]. Abhängig von festen Startpunkten in der komplexen Gausschen Ebene werden weitere Folgepunkte in der komplexen Ebene mit unterschiedlicher Dynamik sowie Konvergenz- bzw. Divergenzeigenschaften errechnet. Bekannte Fraktale Bilder geben die Dynamik der Berechnung von Punktefolgen anschaulich wieder. Die größte Dynamik findet sich in den Randbereichen der Mandelbrot- und Juliamengen. Die berechneten Punkte in der komplexen Ebene sind eindeutig reproduzierbare Folgen von Wertepaaren. Die Startwerte für die Berechnung sollten wegen der besonderen Divergenzeigenschaften der Punktefolgen in den Randbereichen der Mandelbrot- bzw. Juliamengen liegen. Aus diesem Grund ist der Startwert der Implementation als Defaultparameter hinterlegt und wird derzeit nur in einer Umgebung dazu variiert.During the development, fractal calculation methods were used for Mandelbrot and Juliamengen. Fractal functions are both continuous and not differentiable [8]. Depending on fixed starting points in the complex Gaussian plane, further follow-up points in the complex plane with different dynamics as well as convergence and divergence properties are calculated. Known fractal images vividly illustrate the dynamics of calculating point sequences. The greatest dynamics can be found in the margins of the Mandelbrot and Juliamengen. The calculated points in the complex plane are uniquely reproducible sequences of value pairs. The starting values for the calculation should be due to the special divergence properties of the points sequences in the margins of the Mandelbrot or Juliamen gene. For this reason, the start value of the implementation is the default parameter deposited and is currently only being varied in one environment.

Die aus der fraktalen Berechnung erhaltenen Wertepaare werden als 4-Byte lange Fließkommazahlen in einem 1024-Byte großen Datenfeld abgelegt. Dazu sind 64 Punkte in der komplexen Ebene zu bestimmen. Dies erfolgt mit einer Mischung von Berechnungen zu Mandelbrot- und Juliamengen. Nach jeweils 4 Punkten werden die Startwerte für die Berechnung weiterer Punkte mit den Vorgaben aus dem Initialen Schlüsselfeld sprunghaft verändert. Dieses Verfahren schützt vor dem Überlauf von Variablen während der Berechnung.The value pairs obtained from the fractal calculation are called 4-byte long floating-point numbers in a 1024-byte large Filed data field. There are 64 points in the complex layer too determine. This is done with a mix of Mandelbrot's calculations. and Juliamengen. After 4 points each, the starting values for the calculation further points with the specifications from the initials key field leaps and bounds changed. This procedure protects before the overflow of variables during the calculation.

Wegen der Selbstähnlichkeit der Abbildungen in der komplexen Ebene werden die berechneten absoluten Werte miteinander und in Bezug auf den Abstand zum Ursprung der komplexen Ebene verknüpft. Dies erfolgt mit dem Hintergrund, die Wertefolgen weiter für die Benutzung als Einmalschlüssel zu durchmischen. Das Nachbilden des Einmalschlüssels soll möglichst nur unter Kenntnis aller Parameter und Berechnungsschritte und niemals aufgrund der Ausgangsdaten der Verschlüsselung möglich sein.Because of the self-similarity The mappings in the complex plane become the calculated absolute ones Values with each other and with respect to the distance to the origin of the linked to complex level. This is done with the background, the value sequences continue for use as a one-time key to mix. The replication of the disposable key should be as possible only with knowledge of all parameters and calculation steps and never be possible due to the output data of the encryption.

Das so entstandene Bytefeld wird im Weiteren mit dem Begriff Fraktales Feld bezeichnet.The The resulting byte field will be referred to as fractals Field designates.

Der letztendlich gültige Pseudozufallsschlüssel wird mit Hilfe von Selektionsfunktionen aus dem Fraktalen Feld entnommen. Diese Selekttionsfunktionen können über ein Funktiospointerarray aufgerufen werden. Es sind bis zu 256 Selektionsfunktionen möglich. Derzeit ist die Anzahl auf 8 beschränkt. Gesteuert wird die Auswahl der Selektionsfunktion durch eine Bitfolge aus dem aktuellen Wert eines Pseudozufallsgenerators, die durch Maskierung des aktuellen Zufallswertes erhalten wird. Die Maskierung stellt eine der wartbaren Parametrisierungen dar.Of the ultimately valid Pseudo-random key is taken from the fractal field using selection functions. These selection functions can be activated via a Functiospointerarray be called. There are up to 256 selection functions possible. Currently the number is limited to 8. The selection is controlled the selection function by a bit sequence from the current value a pseudo-random generator, which is masked by the current one Random value is obtained. The masking represents one of the most maintainable Parametrizations represent.

Die so erhaltene Bytefolge wird als Basisschlüssel für das anschließend aufgerufene Standard-Schlüsselerweiterungsverfahren (Rijndael-KeyScheduler) des AES-Rijndael vor der Verschlüsselung eines Datenblocks behandelt.The The sequence of bytes thus obtained is used as the base key for the subsequently called Default key expansion process (Rijndael-KeyScheduler) of AES-Rijndael before encryption of a data block.

Figure 00050001
Figure 00050001

Zusammenfassend kann die Prozedur zur Bestimmung eine Einmalschlüssels wie folgt beschrieben werden:
Für jeden Datenblock der AES-Rijndaelverschlüsselung wird ein Basisschlüssel aus dem Fraktalen Feld über eine zufällig ausgewählte Selektionsfunktion ermittelt. Es werden so viele Bytes aus dem Fraktalen Feld selektiert, bis die Vorgabe für die gewählte Schlüssellänge zur Rijndael-Verschüsselung der Sitzung erfüllt ist. Die Auswahl der Selektionsfunktion wird von dem für jeden Datenblock neu berechneten Pseudo Zufallszahlenwert gesteuert. Dazu wird aus dem Zufallszahlenwert eine Bitfolge durch eine festgelegte Maskierung ausgekoppelt, die die Adresse der Selektionsfunktion aus dem Funktionspointerarray festlegt. Zusätzlich wird über eine weitere Schablone aus dem gleichen Pseudo Zufallszahlenwert ein Offset festgelegt, der den Anfangswert der Selektion durch die Selektionsfunktion innerhalb des berechneten fraktalen Bytefeldes bestimmt. So werden auch bei gleicher Funktionsselektion über das fraktale Feld unterschiedliche Bytefolgen für den Einmalschlüssel gewonnen. Die Abfolge von Funktionsaufrufen kann als Zufallsschlüsselgenerator bezeichnet werden.
In summary, the procedure for determining a one-time key can be described as follows:
For each AES-Rijndael encryption data block, a base key is obtained from the fractal field via a randomly selected selection function. As many bytes from the fractal field are selected until the default for the selected key length to the Rijndael key of the session is met. Selection of the selection function is controlled by the pseudo random number value recalculated for each data block. For this purpose, a bit sequence is coupled out of the random number value by a defined masking, which specifies the address of the selection function from the function pointer array. In addition, another offset from the same pseudo random number value is used to determine the initial value of the selection by the selection function within the calculated fractal byte field. Thus, even with the same function selection via the fractal field, different byte sequences for the one-time key are obtained. The sequence of function calls can be referred to as a random key generator.

Alle benutzten Algorithmen erzeugen eineindeutiges, reproduzierbares Zahlenmuster, sodaß bei identischen Anfangsbedingungen gleiche Zahlenmuster und dementsprechend gleiche Einmalschlüsselfolgen erhalten werden.All algorithms used generate a unique, reproducible number pattern, so that at iden identical initial pattern and corresponding one-time key sequences are obtained.

Die oben beschriebene Konstruktion ermöglicht eine Vielfalt an Parametrisierungen zur Steuerung der Berechnung der Zahlenmuster für den Basisschlüssel. Die Parameter und Selektionsfunktionen können auf der uPSD-Plattform in einen eigenen Speicherbereich des Flash-Eprom gelegt werden. Dadurch besteht die Möglichkeit, die Parametersätze und Selektionsfunktionen in Wartungsintervallen auszutauschen.The The construction described above allows a variety of parameterizations for controlling the calculation of the number patterns for the base key. The Parameters and selection functions can be found on the uPSD platform placed in a separate memory area of the flash eprom. This makes it possible the parameter sets and to exchange selection functions in maintenance intervals.

Die Selektionsfunktionen wurden als Funktionspointer entwickelt und lassen sich über ein Array von Funktionspointern ansprechen (selektieren). Die Struktur und Komplexität der Selektionsfunktionen wurde bewusst ähnlich gehalten, damit die Angriffsmöglichkeit durch gemessene Laufzeitunterschiede möglichst gering ist. Die Selektionsfunktionen können genau wie die Defaultparameter, in das wartbare Codesegment gelegt werden und gehören damit zum wartbaren Anteil des Einmalschlüsselverfahrens.The Selection functions were developed as function pointers and can be over address (select) an array of function pointers. The structure and complexity The selection functions were deliberately kept similar so that the of attack is minimized by measured transit time differences. The selection functions can just as the default parameters are placed in the maintainable code segment and belong thus to the serviceable portion of the one-time-key procedure.

Die vorliegende Implementation verfügt lediglich über 8 verschiedene Selektionsfunktionen. Die Anzahl kann problemlos auf bis zu 256 erhöht werden.The present implementation has only about 8 different selection functions. The number can easily increased up to 256 become.

Auf der Basis der Werte eines Zufallszahlengenerators wird zu jedem neu zu verschlüsselnden Block jeweils ein neuer Basisschlüssel mittels der Selektionsfunktionen aus dem fraktalen Feld entnommen. Die gewählte Blocklänge steuert die Anzahl der selektierten Bytes für den Basisschlüssel. Der selektierte Basisschlüssel wird mit der Schlüsselerweiterungsfunktion des Rijndael auf die für eine Verschlüsselung mit dem AES-Rijndael-Algorithmus notwendige Anzahl von Rundenschlüsseln erweitert.On the base of the values of a random number generator becomes each to be re-encrypted Block each a new base key using the selection functions taken from the fractal field. The selected block length controls the number of selected bytes for the basic key. The selected base key comes with the key extension function of the Rijndael on the for an encryption expanded with the AES-Rijndael algorithm necessary number of round keys.

Die Verwendung des oben beschriebenen Einmalschlüsselverfahrens gibt zusätzliche Sicherheit, da die jeweils generierten Schlüssel sowohl auf Basisdaten der Sitzung (Intiales Schlüsselfeld) als auch auf den implementierten Selektionsfunktionen und fest eingestellten Parametern, sowie einem intrinsischen Schlüssel basieren. Damit ist eine OneTimePad-Verschlüsselung erreicht, die eine erweiterte Schutzfunktion gegenüber festen Schlüsseln bewirkt.The Use of the one-time-key method described above gives additional Security, since the generated keys are based on basic data the meeting (Intiales key field) as well as on the implemented selection functions and fixed Parameters, as well as an intrinsic key based. This is one OneTimePad encryption achieved, which has an extended protection against fixed keys causes.

Folgende neue Anteile wurden eingerichtet:

  • – Ein Schlüsselwechselverfahren mit dem Ziel eines sitzungsabhängigen Einmalschlüssels für eine OneTimePad-Verschlüsselung
  • – Das Schlüsselwechselverfahren basiert auf
  • – einem bei der Sitzungseröffnung berechnetem fraktalem Bytefeld, das für jede Sitzung in Abhängigkeit vom übermittelten Initialen Schlüsselfeld variiert.
  • – Selektionsfuntionen, die aus dem fraktalen Feld sprunghaft ausgewählte, zufällige Bytefolgen als neue Basisschlüssel für die Verschlüsselung jedes Blocks mit dem AES-Rijndael auswählen.
  • – einer Steuerung der Auswahl der benutzten Selektionsfunktion über einen Pseudozufallszahlengenerator, dessen Startwerte aus dem initialen Datenfeld entnommen werden.
  • – einem 128 Byte grosses initialen Datenfeld mit zufälligen Bytefolgen, das die Startwerte für den Zufallszahlengenerator und die Sprungwerte beinhaltet, mit denen die Berechnung des fraktalen Feldes um einen parametergesteuerten Basispunkt in der
The following new shares have been set up:
  • - A key exchange procedure with the goal of a session-dependent one-time key for OneTimePad encryption
  • - The key exchange method is based on
  • A fractal byte field calculated at the session opening, which varies for each session depending on the transmitted initial key field.
  • Selection functions that select randomly selected random byte sequences from the fractal field as new base keys for the encryption of each block with AES Rijndael.
  • - A control of the selection of the selected selection function via a pseudo-random number generator whose starting values are taken from the initial data field.
  • A 128-byte initial random-field data field that contains the seeds for the random number generator and the grade rules used to calculate the fractal field around a parameter-driven base point in the

Figure 00080001
Figure 00080001

Figure 00080002
Figure 00080002

2.3 Physikalischer Schutz2.3 Physical protection

Es wird in der Literatur [1], [7] darauf hingewiesen, dass eine neuere Angriffsmethode auf mikroprozessorbasierte Verschlüsselungssysteme darin besteht, aus dem gemessenen zeitlichen Verlauf der Versorgungsspannung auf die Durchführung von bekannten Codesequenzen zurückzuschließen und daraus Vorteile beim Angriff auf das Verschlüsselungssystem und den benutzten Schlüssel zu gewinnen. Die Versorgungsspannung variiert dabei je nach ausgeführter Codesequenz und kann gemessen werden. Ein entsprechender Angriff auf den AES-Rijndael wurde in [7] beschrieben.It is noted in the literature [1], [7] that a newer Attack method on microprocessor-based encryption systems It consists of the measured time course of the supply voltage on the implementation to deduce from known code sequences and from it advantages in the attack on the coding system and the used key to win. The supply voltage varies depending on the executed code sequence and can be measured. A corresponding attack on the AES Rijndael was described in [7].

Das Design des Kryptoencoders/decoders benötigt keinerlei externe Komponenten, außer der weiter unten beschriebenen sehr eng am gehäuse anliegenden Schutzbeschaltung zum Schutz vor physikalischen Angriffen.The Design of the crypto-coder / decoder needs no external components, except the described below very close to the housing voltage protective circuit for protection against physical attacks.

Durch Nutzung des Pulsweitenmodulators (PWM) und der Analog-Digital-Wandlereinheit (ADC) in Verbindung mit einer externen, energiespeichernden Beschaltung mit Sensoreigenschaften kann ein wirkungsvoller Schutz gegen derartige Angriffe aufgebaut werden.By Use of Pulse Width Modulator (PWM) and Analog to Digital Converter Unit (ADC) in conjunction with an external, energy-storing circuit with sensor properties can be an effective protection against such Attacks are built.

Mit Hilfe eines unabhängigen zweiten Zufallszahlengenerators wird im vorliegendes Design des AES-MOD die Pulsbreite des Ausgangssignals quasizufällig verändert. Das PWM-Signal wird über eine niederohmige Komponente ausgekoppelt und belastet so in zufälligen, periodischen Mustern die Versorgungsspannung. Auf diese Weise werden periodische Versorgungsspannungsschwankungen am Mikrokontroller, die durch Funktionsaufrufe des Verschlüsselungsalgorithmus hervorgerufen werden, wirkungsvoll überlagert und unkenntlich gemacht.With Help of an independent second random number generator is used in the present design of the AES-MOD the pulse width of the output signal changes quasi-randomly. The PWM signal is sent via a low-impedance component coupled and thus loaded in random, periodic patterns the supply voltage. That way periodic supply voltage fluctuations on the microcontroller, the caused by function calls of the encryption algorithm be superimposed, effectively and defaced.

Der zweite Schritt unter zusätzlichem Einsatz des Analog-Digital-Wandlers ist derzeit noch nicht implementiert vollständig implementiert.Of the second step under additional Use of the analog-to-digital converter is currently not implemented Completely implemented.

2.4 Errreichte Anforderungen an einen Verschlüsselungsalgorithmus2.4 Achieved requirements to an encryption algorithm

Die nachfolgende Auflistung von Anforderungen an einen Verschlüsselungsalgorithmus entstammt der benutzten Literatur ([1] S.269 ff). Die einzelnen Überschriften enthalten die Kernaussagen. Darunter ist jeweils beschrieben, inwieweit die Anforderung im AES-MOD berücksichtigt wurden.

  • – „Er muss Konfusion realisieren, d.h. die Beziehung zwischen Klartext und Geheimtext darf nicht erkennbar sein.": Diese Anforderung ist Bestandteil der AES-Rijndael-Kernfunktionalität. Durch die Berechnung eines Fraktalen Feldes und die zugehörige pseudozufallszahlengesteuerte, sprunghafte Auswahl von Schlüsselanteilen wird die Anforderung auch für den ECB-Modus in der AES-Rijndael Erweiterung erreicht.
  • – „Er muss Diffusion realisieren, d.h. Strukturen im Klartext sollen so gut wie möglich verwischt werden." Diese Anforderung ist Bestandteil der AES-Rijndael-Kernfunktionalität.
  • – „Die Schlüssellänge sollte so groß gewählt sein, daß Brute Force für den Wert der Nachricht einen zu hohen Aufwand bedeutet." Diese Anforderung wird beim AES-MOD durch die Einmalschlüsselfunktionalität erweitert. Bekannte Brute Force Angriffsmethoden auf den AES-Rijndael können in der AES-Extention jeweils nur den Schlüssel für einen einzenen, verschlüsselten Klartextblock von maximal 32 Bytes Längeermitteln. Das Entschlüsseln des gesamten Klartextes oder sogar aller bisher aufgezeichneten Informationen bedeutet einen erheblich grösseren Aufwand unter Einsatz von Brute Force Angriffsmethoden.
  • – „Gleiche oder ähnliche Klartexte dürfen niemals gleiche oder ähnliche Geheimtexte erzeugen." Diese Anforderung ist Bestandteil der AES-Rijndael-Kernfunktionalität im CBC-Modus und wird in der AES-Rijndael-Erweiterung auch im ECB-Modus erreicht.
  • – „Ein Geheimtext darf sich nicht von einer Folge zufälliger Zahlen unterscheiden." Diese Anforderung ist Bestandteil der AES-Rijndael-Kernfunktionalität
  • – „Es dürfen bei konstantem, periodischem oder anders auffällig strukturiertem Klartext keine verwertbaren Zyklen auftreten, d.h. der Geheimtext darf sich nicht ab einer Stelle wiederholen." Diese Forderung ist bei der Einmalschlüsselberechnung berücksichtigt. Der Zyklus des Pseudo Zufallsgenerators liegt bei 2^60. Die Werte des Zufallszahlengenerators sind außerhalb des mikrokontrollers niemals zugänglich und werden nur zur Laufzeit lediglich im flüchtigen Speicher abgelegt. Die Strukturen der berechneten Werte des Fraktalen Feldes werden durch sprunghafte Selektionen in einem Bytefeld unkenntlich gemacht.
  • – „Der Algorithmus darf keine gefährlichen oder schwachen Schlüssel haben, und falls doch, dann müssen diese leicht zu ermitteln sein."
  • – Diese Anforderung ist Bestandteil der AES-Rijndael-Kernfunktionalität.
  • – „Die Implementierung muss einen hinreichend grosse Schlüsselraum garantieren." Diese Anforderung ist Bestandteil der AES-Rijndael-Kernfunktionalität. Inwieweit der Schlüsselraum auf der fraktale Berechnungsbasis in sich eine hinreichende Sicherheit bietet ist noch zu beweisen. In jedem Fall gilt, daß es für jeden Punkt der Mandelbrotmenge eine eigene Juliamenge gibt, also unendlich viele Berechnungsergebnisse von denen wiederum nur ein Bruchteil für einen Schlüssel benutzt wird. Die grosse Vielfalt von denkbaren Selektionsfunktionen sollte eine sich niemals wiederholende Schlüsselfolge ermöglichen.
  • – „Ebenso dürfen sich Initialisierungsvektoren nicht wiederholen"
  • – Beim Einsatz eines sicheren Einmalschlüssels ist der Initialisierungsvektor und die Nutzung des CBC-Modus nicht unbedingt notwendig. Dennoch wurde auch für die Rijndael-Modifikation die Nutzung des CBC-Modus vorgesehen. Der Initialisierungsvektor ist im Prototypen des AES-MOD fest vorgegeben, damit die Unterschiede der verschiedenen Verschlüsselungstypen und -modi mit Hilfe der Testfunktionen des AES-MOD besser demonstriert werden können.
  • – „Die Angriffsmöglichkeiten für Timing oder Power-Attacken sollten nach Möglichkeit eingeschränkt werden." Der Schutz vor Power- und Timingattacken kann durch den Ausbau der vorgeschlagenen Lösung eines physikalischen Schutzes über die Nutzung des Zufallszahlen gesteuerten Pulsweitenmodulators und der Analog- und Digitalkanäle des uPSD-Mikrokontrollers verbessert werden. Weitere sensorische Eigenschaften der externen Beschaltung im Sinne eines Sensorfeldes sind denkbar.
The following list of requirements for an encryption algorithm comes from the literature used ([1] p.269 ff). The individual headlines contain the key messages. Below this is described in each case to what extent the requirements were taken into account in the AES-MOD.
  • - "It has to realize confusion, ie the relationship between plaintext and ciphertext must not be recognizable.": This requirement is part of the AES-Rijndael core functionality.The computation of a fractal field and the associated pseudo-random number-controlled, erratic selection of key shares becomes the requirement also achieved for the ECB mode in the AES-Rijndael extension.
  • - "It has to realize diffusion, ie clear text structures should be blurred as much as possible." This requirement is part of the AES-Rijndael core functionality.
  • - "The key length should be chosen so large that Brute force for the value of the message is too much effort." This requirement is extended in the AES-MOD by the one-off key functionality known Brute Force attack methods on the AES Rijndael can in the AES Extracting the entire plaintext or even all previously recorded information means a considerably greater effort using brute force attack methods.
  • - "Same or similar plain texts may never produce the same or similar ciphertext." This requirement is part of the core AES-Rijndael functionality in CBC mode and is also achieved in ECB mode in the AES-Rijndael extension.
  • - "A ciphertext should not be different from a sequence of random numbers." This requirement is part of the AES Rijndael core functionality
  • - "There must be no usable cycles with constant, periodic or otherwise conspicuously structured plain text, ie the ciphertext must not repeat itself from one place." This requirement is taken into account in the one - time key calculation The cycle of the pseudo random number generator is 2 ^ 60 Values of the random number generator are never accessible outside the microcontroller and are only stored in volatile memory at runtime The structures of the calculated values of the fractal field are rendered unrecognizable by sudden selections in a byte field.
  • - "The algorithm must not have dangerous or weak keys, and if they do, they must be easy to identify."
  • - This requirement is part of the AES Rijndael core functionality.
  • - "The implementation must guarantee a sufficiently large key space." This requirement is part of the AES-Rijndael core functionality.The extent to which the key space on the fractal basis of calculation offers sufficient security in itself remains to be proven The Mandelbrot set has its own july set, that is, an infinite number of computational results, of which only a fraction is used for a key.The large variety of conceivable selection functions should allow a never repeating key sequence.
  • - "Likewise, initialization vectors must not repeat"
  • - When using a secure disposable key, the initialization vector and the use of the CBC mode is not absolutely necessary. Nevertheless, the use of the CBC mode was also provided for the Rijndael modification. The initialization vector is fixed in the prototype of the AES-MOD, so that the differences between the various types and modes of encryption can be better demonstrated using the test functions of the AES-MOD.
  • - "The possibilities for attacking timing or power attacks should be limited if possible." Protection against power and timing attacks can be improved by extending the proposed physical protection solution through the use of the random number controlled pulse width modulator and the analog and digital channels of the μPSD microcontroller. Further sensory properties of the external circuitry in terms of a sensor field are conceivable.

Die Sicherheit von Verschlüsselungssystemen ist zusätzlich durch Verteiltung der Kenntnis von Schlüsselanteilen deutlich zu steigern, da die Sicherheit eines Verschlüsselungssystems in nachhaltigem Maß von der Gewissenhaftigkeit des oder der Benutzer abhängig ist. Man denke hier nur an Passworte, die unter die Tastaturen von Arbeitsplatzrechnern zu finden sind.The Security of encryption systems is additional by significantly increasing the knowledge of key shares, because the security of an encryption system in a sustainable way the conscience of the user or the user is dependent. Just think here to passwords under the keyboards of workstations can be found.

Darum wurde im AES-MOD darauf geachtet, daß nur die Kenntnissen von aktuellen Schlüsselinformationen und unzugänglichen, änderbaren Berechnungsverfahren die Entschlüsselung von Informationen ermöglicht.Therefore In the AES-MOD care was taken to ensure that only the knowledge of current key information and inaccessible, changeable Calculation method the decryption of information.

Der Benutzer erhält den intrinsischen Schlüssel, oder Teile aus diesem Schlüssel. Zusätzlich existiert ein Parametersatz und Berechnungsfunktionen, die fest im System verankert sind. Die Weitergabe dieser Information ist einem Anwender nicht möglich. Zusätzlich besteht die Möglichkeit diese Parameteranteile in Zyklen zu ändern, ohne daß der Schlüsselanteil des Anwenders (Intrinsicher Schlüssel) verändert werden muss. Nur alle Informationen gemeinsam ermöglichen das Ver- und Entschlüsseln der Information In der nachfolgenden Grafik sind die Verschlüsselungsverfahren des Standard AES-Rijndael und der AES-Rindael-Modifikation mit Pseudo Zufallsschlüssel als Nassi-Schneidermann-Diagramme dargestellt.Of the User receives the intrinsic key, or parts of this key. additionally exists a parameter set and calculation functions, the fixed anchored in the system. The passing on of this information is not possible for a user. additionally it is possible to change these parameter parts in cycles without the key part of the user (intrinsically secure key) changed must become. Only allow all information together the encryption and decryption the information The graphics below show the encryption methods the standard AES-Rijndael and the AES-Rindael modification with pseudo random key as Nassi-Schneidermann diagrams shown.

3 AES-Modifikation – Erweiterte Verschlüsselungsfunktion mit Einmalschlüssel3 AES Modification - Advanced encryption function with one-time key

Wie in Kapitel 2 beschrieben besteht die AES-Modifikation (Rijndael-Erweiterung) darin, dass zusätzlich zur Rijndaelkernfunktionalität die Verwendung eines Einmalschlüssels unterstützt wird. Zusätzlich wurden weitere Anteile wie Wartbarkeit, Verteilung der Kenntnis von Schlüsselanteilen auf verschiedene Verantwortlichkeiten in untereinander nicht einfach zugängliche Bereiche eingerichtet.As described in chapter 2 is the AES modification (Rijndael extension) in that, in addition to the Rijndaelkern functionality the use of a disposable key supports becomes. additionally were further shares such as maintainability, distribution of knowledge of key shares not easy on different responsibilities in each other accessible Areas set up.

Der Einmalschlüssel basiert auf drei Grundfunktionen

  • 1) Das initiale Schlüsselfeld verbirgt verschlüsselte Informationen zu den Basiswerten für die Berechnung eines fraktalen Datenfeldes, sowie die Initialwerte für einen Pseudozufallszahlengenerator.
  • 2) Der Pseudozufallszahlengenerator steuert den Zugriff auf die Selektionsfunktionen und den Startwert bei der Selektion von Bytes durch die Selektionsfunktionen.
  • 3) Die Selektionsfunktionen dienen zur Auswahl von Bytefolgen aus dem fraktalen Datenfeld. Die selektierten Bytefolgen stellen die Basisschlüsselfolge dar. Jeder jedem Basisschlüssel wird mit der Schlüsselerweiterungsfunktion des Standard Rijndaelalgorithmus bearbeitet und wird anschliessend zur Verschlüsselung eines Klartextdatenblocks benutzt.
The one-time key is based on three basic functions
  • 1) The initial key field hides encrypted information on the base values for the calculation of a fractal data field, as well as the initial values for a pseudo-random number generator.
  • 2) The pseudo-random number generator controls the access to the selection functions and the start value in the selection of bytes by the selection functions.
  • 3) The selection functions are used to select byte sequences from the fractal data field. The selected byte sequences represent the basic key sequence. Each basic key is processed with the key expansion function of the standard rule algorithm and is then used to encrypt a plain text data block.

Der Einmalschlüssel beinhaltet alle fortlaufend erzeugten Basisschlüssel, mit denen jeder zu verschlüsselnde Datenblock in einen Geheimtextblock mit der Standardfunktionalität des Rijndael-Algorithmus umgewandelt wird.Of the once key includes all consecutively generated base keys with which each one to be encrypted Data block converted into a ciphertext block with the standard functionality of the Rijndael algorithm becomes.

3.1 Aufbau des initialen Schlüsselfeldes3.1 Structure of the initial key field

Initiale Schlüsselfeld besteht aus 128 Bytes. Dieses Bytefeld beinhaltet mit dem intrinsischen Schlüssel verschlüsselt vier Basiswerte mit jeweils 4 Byte, die als Startwerte für die Berechnung des Einmalschlüssels benötigt werden. Das Initale Schlüsselfeld besteht aus zufälligen Bytefolgen. Dadurch kann bei einem „Brute Force" Angriff (Ausprobieren aller möglichen Schlüssel) eine automatisierte Prüfung auf sinnvolle Prüfmuster und somit auf ein korrektes Ergebnis der Entschlüsselung nicht angewendet werden.initial key field consists of 128 bytes. This byte field contains the intrinsic key encoded four base values each with 4 bytes, which are used as starting values for the calculation the one-time key are needed. The initial key field consists of random Byte sequences. This can be during a "brute force" attack (try all possible Key) an automated test on meaningful test samples and thus not be applied to a correct result of the decryption.

Die versteckten Werte sind:

  • – Zwei Variationswerte für die Berechnung des fraktalen Feldes: delta x0 und delta y0
  • – Zwei Startwerte für die Initialisierung des Pseudozufallszahlengenerators: rval_0 und rval_1
The hidden values are:
  • - Two variation values for the calculation of the fractal field: delta x0 and delta y0
  • - Two initial values for the initialization of the pseudo-random number generator: rval_0 and rval_1

Die Werte können mit eigenen Selektionsfunktionen als Bytefolgen aus dem Feld extrahiert werden. Die gewonnenen Daten sind die Basisdaten zur Verschlüsselung/Entschlüsselung mit dem Einmalschlüssel.The Values can extracted with its own selection functions as byte sequences from the field become. The data obtained are the basic data for encryption / decryption with the one-time key.

3.2 Erzeugen des fraktalen Feldes3.2 Generating the fractal field

Für die Erzeugung des fraktalen Feldes mit einer willkuerliche gewählten Menge von 1024 Byte-Werten, werden die Berechnungsverfahren zu Mandelbrot- und Julia-Mengen benutzt:

Figure 00140001
For the generation of the fractal field with an arbitrarily chosen set of 1024 byte values, the calculation methods for Mandelbrot and Julia sets are used:
Figure 00140001

Generell gilt z = x + iy mit x = Realteil und y = Imaginärteil eines Punktes in der komplexen Gausschen Zahlenebene. Ein Punkt entspricht einem Wertepaar bei der Berechnung des Fraktalen Feldes.As a general rule z = x + iy with x = real part and y = imaginary part of a point in the complex Gaussian number plane. One point corresponds to a value pair in the calculation of the fractal field.

Durch Variation der Konstanten c (Mandelbrot) oder durch Variation des Startpunktes z0 (x0 + iy0) (Julia) über einen vorgegebenen Bereich der Gauschen Komplexen Ebene können Punktefolgen als Basis für die Berechnung des fraktalen Feldes gewonnen werden. Es gibt zu jeder Konstanten c eine eigene Juliamenge und damit unendlich viele Punkte. Die grosse Menge an möglichen Punktefolgen, sowie die sprunghafte Abfolge der aufeinanderfolgenden, berechneten Punkte ist der Grund für die Auswahl eines fraktal berechneten Feldes als Basis für die neue Einmalschüsselfunktionalität.By Variation of the constant c (Mandelbrot) or by variation of the Starting point z0 (x0 + iy0) (Julia) over a given range the Gauschen complex level can Score sequences as basis for the calculation of the fractal field can be obtained. There is too every constant c has its own amount of july and thus infinitely many Points. The big amount of possible Scores, as well as the erratic sequence of successive, Calculated points is the reason for choosing a fractal calculated field as a basis for the new one-off-key functionality.

Weitere Detailinformationen zu Fraktalen können der Literatur [9, 10] entnommen werden. Insbesondere Divergenz-, Konvergenz- und Zufallseigenschaften (Bifurkationen) erhöhen die Eignung fraktaler Berechnungen für die Erzeugung von Zufallszahlenfolen.Further Detailed information on fractals can be found in the literature [9, 10] be removed. In particular, divergence, convergence and random properties Increase (bifurcations) the suitability of fractal calculations for the generation of random number sequences.

Die Kombination von Mandelbrot und Julia-Mengen in der vorliegenden AES-Modifikation bedeutet, daß sowohl die Konstante c als auch die Werte fuer x0 und y0 im Laufe der Berrechnung des fraktalen Feldes variiert werden.The Combination of Mandelbrot and Julia quantities in the present AES modification means that both the constant c as well as the values for x0 and y0 in the course of the calculation of the fractal field can be varied.

Die Variablentiefe bei der Berechnung wurde im uPSD Design auf Float-Variablen (4 Bytes) eingeschränkt. Die berechneten Wertepaare des fraktalen Feldes werden zusätzlich mathematisch behandelt und somit weiter verschleiert (Konfusion). Dadurch sollen Selbstähnlichkeiten und sich wiederholende relative Konvergenzeigenschaften der berechneten Punktefolgen in der komplexen Zahlenebene unkenntlich gemacht werden, sodaß sich ein Feld mit möglichst zufälligen, sich nicht wiederholenden Werten ergibt. Ziel ist die Schaffung von zufälligen Werten als Schlüsselbasis und der konsequente Ausschluß von schlechten, leicht zu erratenden Schlüsseln.The Variable depth in the calculation was in uPSD design on float variables (4 bytes) restricted. The calculated value pairs of the fractal field additionally become mathematical treated and thus further disguised (confusion). This should even similarities and repetitive relative convergence properties of the calculated Point sequences are blurred in the complex number plane, so that a field with as possible random, results in non-repetitive values. The goal is creation from random Values as a key basis and the consistent exclusion of bad, easy to guess keys.

Besonders günstige dynamische Eigenschaften ergeben sich bei Startwerten der Berechning in den Randbereichen der Mandelbrot- und Juliamengen.Especially favorable dynamic properties arise at starting values of the calculation in the margins of the Mandelbrot and Juliamengen.

In der vorliegenden Implementierung des AES-MOD wurden lediglich zwei Beispiele für Startwerte eingerichtet. Die Startwerte gehören zu den in Wartungsintervallen veränderbaren freien Parametern der Implementation. Weiterhin können neue Startwerte für die Berechnung des Fraktalen Feldes explizit vorgegeben werden.In The present implementation of the AES-MOD has only been two examples for Start values set up. The starting values belong to the ones in maintenance intervals changeable free parameters of the implementation. Furthermore, new ones Start values for the calculation of the fractal field can be explicitly specified.

Die Berechnung des Fraktalen Feldes im Detail:The calculation of the fractal Field in detail:

In drei Schleifen werden 256 Werte mit dem Variablentyp Float (4-Byte) berechnet. Daraus ergeben sich 1024 Byte-Werte. Die erste Schleife mit 4 Durchläufen ändert den Startwert um den im Initialen Schlüsselfeld übermittelten x-Sprungwert im Realteil (x-Richtung). In der folgenden Schleife mit 4 Durchläufen wird der im Imaginärteil (y-Richtung) um den y-Sprungwert geändert. Und in der innersten Schleife werden jeweils vier aufeinanderfolgende Iterationen berechnet. Aus zwei aufeinanderfolgenden Punkten der jeweiligen Iteration werden jeweils 4 neue Werte für das fraktale Feld berechnet. Die berechneten Werte sind jeweils 4 Byte lang. Daraus ergeben sich 1024 Bytes für das fraktale Feld.In three loops become 256 values with the variable type Float (4-Byte) calculated. This results in 1024 byte values. The first loop with 4 passes changes that Start value around the x-jump value transmitted in the initials key field in Real part (x-direction). In the following 4-pass loop, the in the imaginary part (y-direction) around the y-grade changed. And in the innermost loop are four consecutive each Iterations calculated. From two consecutive points of respective iteration will each have 4 new values for the fractal Calculated field. The calculated values are each 4 bytes long. This results in 1024 bytes for the fractal field.

Als Vorgabe für die Berechnung der Punktefolge mit den Funktionen zur Berechnung von Fraktalen wird ein Startpunkt in der komplexen Ebene festgelegt. Im Rahmen der Berechung wird die Variation dieses Punktes nur in einer Umgebung des Startwertes zugelassen. Hier sind jedoch auch andere Vorgaben oder Verfahren möglich. Der Startwert kann jedoch in Wartungsintervallen geändert werden.When Default for the calculation of the score with the functions for the calculation Fractals set a starting point in the complex plane. As part of the calculation, the variation of this point is only in an environment of the starting value allowed. Here are, too other guidelines or procedures possible. However, the starting value can be changed during maintenance intervals.

Der Startwert der Berechnung für das fraktale Feld ist in der vorliegenden Implementation festgelegt. Ausgehend von diesem Startwert werden die im initalen Schlüsselfeld transportierten Sprungwerte auf eine festgelegte, wartbare Sprungtiefe (Änderung der Grössenordnung) reduziert. Es werden nach jeder Änderung des Startwertes vier Wertepaare ermittelt. Zu jeweils zwei Wertepaaren werden die Realteile und Imaginaerteile mittels XOR verknüpft, zusätzlich wird der Abstand zum Ursprung (Radius) berechnet und durch Verknüpfung mit dem berechneten Radius zwei weitere Werte für das Fraktale Feld bestimmt. Danach wird der Startwert durch Addition des Offsetwertes geändert. Auf diese Weise werden aus 64 fraktal berechneten Punkten durch Manipulation 256 Floatingpoint-Werte, also insgesamt 1024 Bytes für das Feld generiert.The starting value of the calculation for the fractal field is defined in the present implementation. Starting from this starting value, the grade rules transported in the inital key field are reduced to a specified, maintainable jump depth (change in the order of magnitude). It will be after every change of the starting value, four value pairs are determined. For each two pairs of values, the real parts and imaginary parts are linked by XOR, in addition, the distance to the origin (radius) is calculated and determined by linking with the calculated radius two more values for the fractal field. Thereafter, the starting value is changed by adding the offset value. In this way, 256 floating point values, ie a total of 1024 bytes for the field, are generated from 64 fractal calculated points by manipulation.

Nachfolgend beschriebene Abfolge von Zuweisungen erzeugt den Kern des fraktalen Feldes. Weitere feste, parametrisierbare Offsetverschiebungen sind zusätzlich in übergeordneten Schleifen enthalten.following described sequence of assignments generates the core of the fractal Field. Other fixed, parameterizable offset shifts are additionally in parent Loops included.

Details zur Berechnung:Details for the calculation:

  • /* Offset zur Konstanten addieren, Die Offsetwerte dcx und dcy werden aus dem initialen Schlüsselfeld gewonnen *// * Add offset to the constant, the offset values dcx and dcy are won from the initial key field * /
  • cx = cx + dcx;cx = cx + dcx;
  • cy = cy + dcy;cy = cy + dcy;
  • /* Fraktalen Real- und Imaginaerteil berechnen *// * Calculate fractal real and imaginary part * /
  • x2 = x1*x1 – y1*y1 + cx;x2 = x1 * x1 - y1 * y1 + cx;
  • y2 = 2*x1*y1 + cy;y2 = 2 * x1 * y1 + cy;
  • /* Werte für die Berechnung kopieren *// * Values for copy the calculation * /
  • x[0].f = x1;x [0] .f = x1;
  • x[1].f = x2;x [1] .f = x2;
  • y[0].f = y1;y [0] .f = y1;
  • y[1].f = y2;y [1] .f = y2;
  • /* Radius zum Ursprung berechnen *// * Calculate radius to origin * /
  • r.f = sqrt(x2*x2 + y2*y2);r.f = sqrt (x2 * x2 + y2 * y2);
  • /* Berechnete Werte durchmischen und verzerren *// * Mix and distort calculated values * /
  • xr = (x[0].ul^y[1].ul);xr = (x [0] .ul ^ y [1] .ul);
  • yr = (x[1].ul^y[0].ul);yr = (x [1] .ul ^ y [0] .ul);
  • ror = xr^(-yr);ror = xr ^ (- yr);
  • xor = (x[1].ul ^ y[1].ul);xor = (x [1] .ul ^ y [1] .ul);
  • dix = (x[0].ul + y[1].ul)^r.ul;dix = (x [0] .ul + y [1] .ul) ^ r.ul;
  • pix = (x[1].ul + y[0].ul)^r.ul;pix = (x [1] .ul + y [0] .ul) ^ r.ul;
  • fval = i*4 + j*16 + k*64;fval = i * 4 + j * 16 + k * 64;
  • fracfield[fval].ul = ror; /* Bytefolgen in das fraktale Feld schreiben */fracfield [fval] .ul = ror; / * Byte sequences in the fractal field write */
  • fracfield[fval+1].ul = xor;fracfield [fval + 1] .ul = xor;
  • fracfield[fval+2].ul = dix;fracfield [fval + 2] .ul = dix;
  • fracfield[fval+3].ul = pix;fracfield [fval + 3] .ul = pix;

3.3 Initialisieren des Pseudo Zufallszahlengenerators zur Schlüsselberechnung3.3 Initializing the Pseudo random number generator for key calculation

Aus dem initialen Schlüsselfeld werden bei Sitzungseröffnung die neuen Startwerte für den Pseudo Zufallszahlengenerator ermittelt. Zwei Zahlen von jeweils 4 Byte Länge werden als Basis für die weitere Berechnung der 4-Byte grossen Zufallswerte benutzt.Out the initial key field be at session opening the new starting values for determines the pseudo random number generator. Two numbers from each 4 bytes in length be used as the basis for used the further calculation of the 4-byte random values.

Als Pseudo Zufallszahlengenerator wird folgender Algorithmus eingesetzt [6]: RAND(a,b)(((a = 36969 * (a & 65535) + (a >> 16)) << 16) + \ (b = 18000 * (b & 65535) + (b >> 16)) ) The following algorithm is used as the pseudo random number generator [6]: RAND (a, b) (((a = 36969 * (a & 65535) + (a >> 16)) << 16) + \ (b = 18000 * (b & 65535) + (b >> 16)) )

Die Startwerte von a uns b stammen aus dem initialen Schlüsselfeld und werden fortlaufend verändert (rval[0] und rval[1]). Der aktuelle Wert des Zufallszahlengenerators ist unter randval gespeichert. Alle Daten im Umfeld der Zufallszahlen sind in der Struktur „randkey_t randkey" gespeichert. Um eine einwandfreie Entschlüsselung zu gewährleisten, müssen die Startwerte des Zufallszahlengenerators vor dem Beginn einer Verschlüsselung unbedingt gesichert und vor der Entschlüsselung wieder hergestellt werden.The Starting values of a and b are from the initial key field and are changed continuously (rval [0] and rval [1]). The current value of the random number generator is stored under randval. All data in the environment of random numbers are in the structure "randkey_t randkey "saved. To a perfect decryption to ensure, have to the seeds of the random number generator before the start of a encoding necessarily secured and restored before decryption become.

Der Wert des Zufallszahlengenerators wird nach jeder Verschlüsselung/Entschlüsselung eines Datenblockes verändert.Of the Value of the random number generator will be after each encryption / decryption changed a data block.

Der benutzte Pseudo Zufallszahlengenerator mit einer Periode von ca 2^60 stammt aus [6]. Die damit generierten Zufallszahlenfolgen sind nicht sicher genug, um allein damit einen sicheren Strom von Zufallszahlen für einen Verschlüsselungsalgorithmus zu erstellen [3,6]. Die damit erzeugten Sequenzen von Zufallszahlen werden jedoch nur als Zeiger auf Berechnungsfunktionen für die Schlüsselwerte, sowie zur Ableitung von Offsetwerten in den Selektionsfunktionen bei der Auswahl des Startwertes innerhalb des fraktalen Feldes benutzt. Das Bestimmen des Algorithmus und des aktuellen Zufallswertes aus den Ausgangsdaten ist wegen der unterbrochenen Abhängigkeit und weil die Werte niemals ausserhalb des Kontrollers sichtbar werden nicht einfach möglich. Damit wird die Sicherheit des Pseudo Zufallsgenerators in der vorliegenden Applikation zunächst als ausreichend erachtet. Hier könnten gegebenfalls sicherere, rückgekoppelte lineare Schieberegister (LSFR, [3]) in Verbindung mit den internen PLD zum Aufbau eines Schieberegisters des uPSD benutzt werden. Eine ausschließliche Nutzung eines rückgekoppelten Schieberegisters auf der Basis der OMC-Zellen des uPSD ist nicht anzuraten, da diese in Wartungsintervallen nicht neu programmiert werden können.The used pseudo random number generator with a period of about 2 ^ 60 comes from [6]. The generated random number sequences are not secure enough to generate a secure stream of random numbers for an encryption algorithm alone [3,6]. The sequences of random numbers generated with it However, len are only used as pointers to computation functions for the key values, as well as for the derivation of offset values in the selection functions when selecting the start value within the fractal field. Determining the algorithm and the current random value from the output data is not easily possible because of the intermittent dependency and because the values are never visible outside of the controller. Thus, the security of the pseudo random number generator is initially considered sufficient in the present application. Safer, feedback linear shift registers (LSFR, [3]) in conjunction with the internal PLD could be used to construct a shift register of the uPSD. The exclusive use of a feedback shift register based on the OMC cells of the uPSD is not advisable, since these can not be reprogrammed during maintenance intervals.

3.4 Selektionsfunktionen und Funktionspointer-Array3.4 Selection functions and Function Pointer Array

Der dritte Kern der Pseudo Zufallsschlüssel Erzeugung wird durch den Aufruf von kleinen Selektionsfunktionen gebildet. Welche der bis zu 256 Funktionen aufgerufen wird, steuert ein Teil des aktuellen Zufallswertes. Die Selektionsfunktionen beinhalten beliebige mathematischen Anweisungen, mit denen aus dem zuvor berechneten Fraktale Feld sprunghaft einzelne Bytes ausgewählt werden. Die selektierte Anzahl der Bytes entspricht der vorgegebenen Schlüssellänge zum Basisschlüssels für die Rijndaelverschlüsselung (128, 192, 256 Bit).Of the third core of the pseudo random key generation is through the Call formed by small selection functions. Which of the up to 256 functions is called, controls part of the current Random value. The selection functions include any mathematical Instructions that leaps from the previously calculated fractal field single bytes selected become. The selected number of bytes corresponds to the given one Key length to base key for the Rijndaelverschlüsselung (128, 192, 256 bits).

Beispielsweise wird jedes 17. Byte aus dem fraktalen Feld in den nächsten Schlüssel aufgenommen. Die Selektionsfunktionen ermitteln weitere Werte auf der Basis eines Index über das fraktale Feld. Die Funktionen werden intern so begrenzt, daß der berechnete Index niemals die Größe des Maximal zulässigen Index überschreitet. Um die Durchmischung noch weiter zu erhöhen wird aus dem Zufallszahlenwert zusätzlich ein Offsetwert für die Indexberechnung hinzugefügt.For example every 17th byte is taken from the fractal field to the next key. The Selection functions determine further values on the basis of a Index over the fractal field. The functions are internally limited so that the calculated Index never the size of the maximum permissible Index exceeds. To increase the mixing even further is from the random number value additionally an offset value for added the index calculation.

Die Selektionsfunktionen liegen in dem Codebereich, der in Wartungsintervallen geändert werden kann. Damit sind diese Funktionen austauschbar. Weiterhin wurde darauf geachtet, daß die Auswahl der Funktion nicht über eine Case-Struktur im Programmlauf erfolgt, damit aus der Laufzeit der Selektion nicht auf die benutzte Funktion geschlossen werden kann (vgl. Angriffsmöglichkeiten für Verschlüsselungssysteme [1]).The Selection functions are in the code area, which is in maintenance intervals changed can be. This makes these functions interchangeable. Farther Care was taken that the Selection of the function is not over a case structure is executed in the program, thus from the runtime the selection can not be closed to the used function can (see Attacks for encryption systems [1]).

Die Funktionen können beispielsweise folgender Art sein:

  • – Suche von Bytes im Feld mit Modulo Operationen über den Index
  • – Forlaufend gelesene Werte mit einem Offset aus dem Zufallswert abgeleitet
  • – XOR zweiter von fortlaufend oder modulo gelesenen Bytes
  • – Links/Rechts Rotieren der Bits einzelner Bytes in Abhängigkeit vom Zufallswert
The functions may be, for example, the following type:
  • - Search bytes in the field with modulo operations via the index
  • - Forced read values with an offset derived from the random value
  • - XOR second of consecutive or modulo read bytes
  • - Left / Right Rotate the bits of individual bytes depending on the random value

Beispiel einer Selektionsfunktion aus dem vorliegenden Design:

Figure 00180001
Example of a selection function from the present design:
Figure 00180001

Figure 00190001
Figure 00190001

Die Selektionsfunktionen sind eine besonders wirksame Möglichkeit das Ermitteln von Schlüsselinformationen und Schlüsselberechnungsverfahren aus den verschlüsselten Daten zu erschweren, sodass aus einer Sammlung von bekannten Paaren von Klartext und Geheimtextdatenblöcken nicht einfach auf die Schlüsselgenerierungsverfahren zurückgeschlossen werden kann.The Selection functions are a particularly effective option determining key information and key calculation methods from the encrypted To complicate data, so from a collection of well-known pairs plain text and ciphertext data not easy on the Key generation method deduced can be.

Der gesamte, sicherheitsrelevante Schlüssel besteht aus dem Intrinsischen Schlüssel, dem initialen Schlüsselfeld, der Kenntnis der Funktion zur Ermittlung der Startwerte für die Berechnung des Einmalschlüssels. Dieser besteht seinerseits im Kern aus dem fraktal berechneten Datenfeld, dem Startwert des Zufallszahlengenerators, der Kenntnis der Auswahlvorschriften innerhalb der Selektionsfunktionen sowie weiterer festgeschriebener, jedoch ebenfalls in Wartungsintervallen änderbarer Parameter. Die Vielzahl von Abhängigkeiten und Parametrisierungen erlaubt es, bei teilweise gleichbleibenden Parametrisierungen spezielle Zielsysteme oder eine Gruppe von Zielsystemen sicherheitstechnisch voneinander anzugrenzen, ohne direkt intrinsische Schlüssel für jedes System neu vergeben zu müssen.Of the entire, security-relevant key consists of the intrinsic Key, the initial key field, the knowledge of the function for determining the starting values for the calculation of the disposable key. This, in turn, consists in essence of the fractal computed data field, the starting value of the random number generator, the knowledge of the selection rules within the selection functions as well as other specified, however also in maintenance intervals of changeable parameters. The variety of dependencies and parameterizations allow it, with partially consistent Parameterization special target systems or a group of target systems safety-related from each other, without directly intrinsic key for each To reassign the system.

3.5 Hinweise zur Verschlüsselung eines Datenstromes mit AES-MOD3.5 Notes on encryption a data stream with AES-MOD

Die Verschlüsselung eines Datenstroms erfolgt beim Standard Rijndaelverfahren im CBC-Modus. Dazu wird ein Initialvektor von der Größe eines Datenblocks aus einer zufälligen Bytefolge erstellt. Die Verschlüsselung erfolgt durch Verlknüpfung des ersten Datenblocks mit dem Initialvektor und anschliessende Rundenverschlüsselung. Der nachfolgende Datenblock wird jeweils vor der Verschlüsselung mit den vorhergehenden Datenblock verknüpft. Eine besondere Behandlung erfahren die letzten beiden Datenblöcke. (vgl [1,4]).The encoding a data stream is carried out in the standard Rijndaelverfahren in CBC mode. This will be an initial vector the size of one Data blocks from a random Byte sequence created. The encryption done by Verlknüpfung of the first data block with the initial vector and subsequent round encryption. The subsequent data block is in each case before the encryption linked to the previous data block. A special treatment learn the last two data blocks. (see [1,4]).

Die Verschlüsselung einer grösseren Datenmenge im CBC-Modus würde in der vorliegenden Implementation Veränderungen an den zugrundeliegenden Basisfunktionen der Referenzinstallation notwendig machen, worauf im vorliegenden Design soweit als möglich verzichtet wurde. Die Übertragung grösserer Mengen von zu verschlüsselnden Quelldaten kann nur blockweise über die serielle Schnittstelle erfolgen. Dadurch ergibt sich eine Beschränkung der Verschlüsselung im CBC-Modus auf Datenblocke in der Grösse des Transferpuffers von 960 Bytes.The encoding a bigger one Amount of data in CBC mode would in the present implementation changes to the underlying Basic functions of the reference installation necessitate what as far as possible was dispensed with in the present design. The transfer greater Amounts of encrypted Source data can only be transferred block by block the serial interface take place. This results in a restriction of encoding in CBC mode on data blocks in the size of the transfer buffer of 960 bytes.

Die Nachteile der Standard-Rijndael-Verschlüsselung im ECB-Mode wird bei gleichartigen Quelldaten sofort deutlich: Jeder Datenblock wird in einer identischen Weise verschlüsselt.The Disadvantages of standard Rijndael encryption in ECB mode is added identical source data immediately clear: every data block is encrypted in an identical way.

Dadurch sind strukturelle Informationen in den Quelldaten sichtbar, was bei Verschlüsselungssystemen unbedingt vermieden werden muß. (vgl. Testfunktionen Test Standard-Rijndael $TSR)Thereby structural information is visible in the source data, what in encryption systems absolutely must be avoided. (see test functions Test Standard-Rijndael $ TSR)

Diesen Nachteil besitzt die Verschlüsselung auf der Basis einer Pseudo Zufallsschlüsselfolge nicht. Gleiche Quelldaten in einem Block werden in vollkommen verschiedene verschlüsselte Datenblöcke übersetzt. Insofern eignet sich die Erweiterung durch die Rijndael-Erweiterung auch zur Nutzung im ECB-Modus. In der vorliegenden Implementation können die Verschlüsselungen mit der Rijndael-Erweiterung sowohl im CBC, als auch im ECB-Modus durchgeführt werden.this Disadvantage has the encryption based on a pseudo random key sequence. Same source data in a block are translated into completely different encrypted data blocks. insofar The extension through the Rijndael extension is also suitable for use in ECB mode. In the present implementation, the encryptions with the Rijndael extension in both the CBC and ECB modes carried out become.

3.6 Entwurf eines Sitzungsprotokolls3.6 Draft minutes of the meeting

Das Initialisieren einer Sitzung könnte nachfolgende Struktur besitzen (ist derzeit nicht implementiert):
Dem Sender ist der Intrinsische Schlüssel des Empfängers bekannt. Er verschlüsselt einen Initiales Schlüsselfeld mit zufällig gewählten Startwerten für den Pseudozufallsschlüssel der Sitzung. Weitere Informationen, wie die Kenntnis der Basisdaten zur Berechnung des fraktalen Schlüsselfeldes und die Schlüsselselektionsfunktionen inklusive der Parametrisierung werden nicht ausgetauscht. Diese Informationen sind fest in Sender und Empfänger gespeichert und können nur in speziell autorisierten Wartungssitzungen verändert werden.
Initializing a session might have the following structure (not currently implemented):
The sender is aware of the intrinsic key of the recipient. It encrypts an initial key field with randomly chosen seeds for the session's pseudo-random key. Further information, such as the knowledge of the basic data for the calculation of the fractal key field and the key selection functions including the parameterization are not exchanged. This information is stored permanently in the transmitter and receiver and can only be changed in specially authorized maintenance sessions.

Gegebenenfalls kann über das Initiale Schlüsselfeld zusätzlich auf Konsistenzinformationen zur Kontrolle der Übertragungsqualität der Übertragungsstrecke transportiert werden.Possibly can over the initial key field additionally on consistency information to control the transmission quality of the transmission link be transported.

Das verschlüsselte Initiale Schlüsselfeld wird an den Empfänger übermittelt und von diesem mit dem Intrinsischen Schlüssel entschlüsselt. Mit den Daten wird im Empfänger das Fraktale Feld berechnet und der Pseudozufallszahlengenerator initialisiert. Eine Autentifikation des Senders kann über den Intrinsischen Schlüssel erfolgen.The encrypted initial key field is transmitted to and from the recipient Decrypted intrinsic key. With the data, the fractal field is calculated in the receiver and the pseudo-random number generator is initialized. Authentication of the sender can be done via the intrinsic key.

Sender und Empfänger initialisieren den fortlaufenden Zufallsschlüssel mit Hilfe des jetzt beiderseits bekannten dekodierten Initialen Schlüsselfeldes. Dazu wird das fraktale Feld erstellt und der Pseudozufallsgenerators auf beiden Seiten initialisiert. Danach kann die blockweise Verschlüsselung der Klartextdaten auf dem Sender, der anschließende Transfer zum Empfänger und die blockweise Entschlüsselung der Quellinformationen auf dem Empfänger beginnen.transmitter and receiver initialize the continuous random key with the help of the now mutually known decoded initials key field. This is done by creating the fractal field and the pseudo-random generator initialized on both sides. After that, the blockwise encryption the plain text data on the transmitter, the subsequent transfer to the receiver and the blockwise decryption start the source information on the receiver.

Um den Datenstrom zu steuern, müssen zusätzlich Status- und Steuerungsinformationen zwischen Sender und Empfänger auf dem gleichen Kanal ausgestauscht werden. Dies ist insbesondere deshalb notwendig, weil die Entschlüsselung beim Rijndael-Algorithmus ca. 30% langsamer abläuft, als die Verschlüsselung.Around need to control the data stream additionally Status and control information between sender and receiver the same channel are exchanged. This is especially so necessary because the decryption The Rijndael algorithm is about 30% slower than the encryption.

In der vorliegenden Implementation erfolgt dazu eine Unterbrechung des Datenstromes durch das X-ON/X-OFF Protokoll der seriellen Schnittstelle.In the present implementation is interrupted of the data stream through the X-ON / X-OFF protocol of the serial interface.

Dadurch bedingt müssen die verschlüsselten Daten in einer speziellen Codierung übertragen werden, um Steuerinformationen von den verschlüsselten Daten zu unterscheiden. Diese Codierung ist die Umwandlung der einzelnen Zeichen in Hexadezimaläquivalente, die Darstellung eines Zeichens als zwei Zeichen aus dem Wertevorrat 0-9 und A-F. Entsprechende Funktionen sind auf dem uPSD AES-MOD implementiert.Thereby conditionally the encrypted Data is transmitted in a special encoding to control information from the encrypted To distinguish data. This encoding is the transformation of the individual Characters in hexadecimal equivalents, the representation of a character as two characters from the stock of values 0-9 and A-F. Corresponding functions are on the uPSD AES-MOD implemented.

4 Anhang4 Appendix

4.1 Literaturliste4.1 Bibliography

  • [1] Reinhard Wobst Abenteuer Kryptologie Addison Wessley, 3. Auflage 2001 ISBN 3-8273-1815-7[1] Reinhard Wobst Adventure Cryptology Addison Wessley, 3rd edition 2001 ISBN 3-8273-1815-7
  • [2] Rudolf Kippenhahn Verschlüsselte Botschaften Rororo, 3. Auflage 2003 ISBN 3-499-60807-3[2] Rudolf Kippenhahn Encrypted messages rororo, 3rd edition 2003 ISBN 3-499-60807-3
  • [3] Henk C.A. van Tilborg Fundamentals of Cryptology Kluver Academic Publishers, Second Printing 2001 ISBN 0-7923-8675-2[3] Henk C.A. van Tilborg Fundamentals of Cryptology Jib Academic Publishers, Second Printing 2001 ISBN 0-7923-8675-2
  • [4] Joan Daemen, Vincent Rijmen AES Proposal, The Rijndael Block Cipher Rijndael Documentation, Version 2, September 1999 http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndael.pdf[4] Joan Daemen, Vincent Rijmen AES Proposal, The Rijndael Block Cipher Rijndael Documentation, Version 2, September 1999 http://csrc.nist.gov/CryptoToolkit/aes/rijndael/Rijndael.pdf
  • [5] Joan Daemen Reference Implementation (+ KATs and MCTs) v2.0 AES-MOD CD-Dokumentation: AES_SRC_2[5] Joan Daemen Reference Implementation (+ KATs and MCTs) v2.0 AES-MOD CD Documentation: AES_SRC_2
  • [6] Brian Gladman <[email protected]> An AES (Rijndael) Implementation in C/C++ (as specified in FIPS 197) AES-MOD CD-Dokumentation: AES_SRC_1[6] Brian Gladman <[email protected]> To AES (Rijndael) Implementation in C / C ++ (as specified in FIPS 197) AES-MOD CD documentation: AES_SRC_1
  • [7] Stefan Mangard A Simple Power-Analysis (SPA) Attack on Implementations of the AES Key Expansion Institute for Applied Information Processing and Communications Graz University of Technology Algorithmica, 2002 AES-MOD CD-Dokumentation: Dokumentation/AES_Power_Attack.pdf[7] Stefan Mangard A Simple Power Analysis (SPA) Attack on Implementations of the AES Key Expansion Institute for Applied Information Processing and Communications Graz University of Technology Algorithmica, 2002 AES-MOD CD Documentation: Documentation / AES_Power_Attack.pdf
  • [8] Die deutsche Bibliothek Lexikon der Physik Spektrum Akademischer Verlag, 1999 ISBN 3-86025-292-5[8] The German library Lexicon of physics spectrum Academic publishing house, 1999 ISBN 3-86025-292-5
  • [9] Steffen Polster Mathematik 2003, Mathematikprogramm, Bereich Chaostheorie Mathematische Grundlagen zur Chaostheorie sind It. St. Polster dem Buch Algorithmen für Chaos und Fraktale, Herrmann, Addison Wesley Publishing Company Bonn 1994 entnommen.[9] Steffen Polster Mathematics 2003, Mathematics, Chaos Theory Mathematical foundations for chaos theory are taken from It. St. Polster in the book Algorithms for Chaos and Fractals, Herrmann, Addison Wesley Publishing Company Bonn 1994.
  • [10] J. Dufner, A. Roser, F. Unseld Fraktale und Juliamengen Verlag Harri Deutsch, 1998 ISBN 3-8171-1564-4[10] J. Dufner, A. Roser, F. Unseld Fractals and julia publishing company Harri German, 1998 ISBN 3-8171-1564-4

Claims (1)

Das im Patent zu schützende Verfahren ist ein Vorschlag für ein Einmalschlüsselverfahren, das im Zusammenhang mit einem beliebigen Blockverschlüsselungsalgorithmus eingesetzt werden kann. Details sind auch der 1 zu entnehmen. Das zu schützende Einmalschlüsselverfahren ersetzt den festen Basisschlüssels beim symmetrischen Blockverschlüsselungsverfahren durch eine Schlüsselsequenz. Für jeden Klartextdatenblock einer Verschlüsselungssitzung wird mit dem Verfahren ein unabhängiger Basisschlüssel erzeugt und mit diesem verschlüsselt. Die Schlüsselsequenz ist für jede Sitzung einmalig und hängt allein von den Sitzungsparametern ab. Das zu schützende Einmalschlüsselverfahren basiert auf drei Hauptmerkmalen, die im folgenden beschrieben werden. 1. Das erste Hauptmerkmal ist die Berechnung und Aufbereitung eines Bytefeldes (Bytematrix) über fraktale Berechnungsmethoden, dessen Einzelwerte mit Hilfe der Indizierung des Bytefeldes zu Bytegruppen zusammengestellt werden können, dadurch gekennzeichnet, daß 1.1. mit Hilfe von iterierten Funktionensystemen vom Grad >=2 (im Folgenden als fraktale Funktionen bezeichnet) eine Folge von Punkten in der komplexen, Gaußschen Zahlenebene berechnet, byteweise manipuliert und in einer Matrix abgelegt werden. Unter anderem können Funktionen zur Berechnung von Mandelbrot- und Julia-Mengen dazu benutzt werden. 1.2. die so berechneten Punkte bei der byteweisen Manipulation mit einfachen, mathematischen Verfahren zueinander in Relation gesetzt werden, sodaß eine erste Konfusion und Diffusion der entstandenen Punktfolgen gegenüber dem benutzten Berechnungsverfahren erreicht wird. Die so errechnete Liste von Punkten wird anschließend als ein indexbehaftetes Feld von Bytes (Bytematrix, Bytefeld, Fraktales Feld) behandelt. Das Bytefeld dient als Basis für das anschließende Zusammenstellen einer Bytefolge zu einem Basisschlüssel mit Hilfe einer Selektionsfunktion. 1.3. die mit iterierten Funktionensystemen in der komplexen Zahlenebene berechnete Punktefolge wird für jede neue Sitzung im Sender und Empfänger in Abhängigkeit von den Sitzungsparametern neu erzeugt und als Bytefeld gespeichert. 2. Das zweite Hauptmerkmal besteht darin, daß eine Gruppe von Selektionsfunktionen die Aufgabe hat, Bytefolgen aus dem fraktal berechneten Bytefeld zu selektieren, dadurch gekennzeichnet, daß 2.1. die Selektionsfunktionen mathematische Anweisungen beinhalten, die den Zugriff auf den Inhalt des Bytefeldes über den Feldindex erlauben. 2.2. eine dieser Selektionsfunktionen aus der Liste der möglichen Selektionsfunktionen aufgrund des aktuellen Zahlenwertes eines Pseudozufallszahlengenerators ausgewählt wird. 2.3. aus dem aktuellen Zahlenwert des Zufallszahlengenerators durch Maskierung ein Offsetwert entnommen wird. Dieser quasizufällige Offsetwert wird bei der Indexberechnung von der Selektionsfunktion berücksichtigt. 2.4. der nächste Teilschlüssel des Einmalschlüssels erhalten wird, indem aus der Bytematrix mittels der zufällig ausgewählten Selektionsfunktion die Anzahl von Bytes entnommen wird, die der aktuell eingestellten Schlüssellänge entspricht. 2.5. die Selektionsfunktionen in einem Feld von Funktionen abgelegt sind. Der Zugriff auf die nächste, zufällig ausgewählte Funktion erfolgt über Zeiger auf diese Funktionen. So können aus der Laufzeit zum Auffinden der Funktion im Code keine Rückschlüsse auf die benutzte Selektionsfunktion bei der Krypanalyse gezogen werden. 2.6. die mit der jeweiligen Selektionsfunktion zusammengestellte Bytefolge zum nächsten Basisschlüssel zusammengestellt wird. Mit Hilfe dieses Basisschlüssels wird der nächstfolgende Datenblock über das eingesetzte Blockverschlüsselungsverfahren ver- bzw. entschlüsselt. 2.7. alle in einer Schar gruppierten Selektionsfunktionen eine möglichst gleichlange Verarbeitungszeit aufweisen. Die Verarbeitungsdauer während der Auswahl einer Bytefolge aus dem Fraktalen Feld darf keinen Hinweis auf mathematische Einzelheiten der eingesetzten Selektionsfunktion für die Kryptanalyse liefern. 2.8. die Schar der Selektionsfunktionen als Ganzes im Rahmen von Wartungsarbeiten ferngesteuert ausgetauscht werden kann, und somit ein automatisierter Schlüsselwechsel möglich ist. 3. Das dritte Hauptmerkmal besteht im Einsatz eines unabhängig arbeitenden Pseudozufallszahlengenerator, der mindestens über eine Periode von 2^60 verfügt. Der Einsatz ist dadurch gekennzeichnet, daß 3.1. Aus den erzeugten Zufallszahlen durch Maskierung die Auswahl der nächsten Sekeltionsfunktions quasizufällig gesteuert wird. 3.2. über Maskierungen Werte aus der aktuellen Zufallszahl ausgekoppelt und zur quasizufälligen Initialisierung der Indexberechnungen durch die Selektionsfunktionen herangezogen werden. 3.3. Durch geeignete, dynamische Maskierung des Zufallszahlenwertes Gruppenfunktionen aufgebaut werden können. Das Einmalschlüsselverfahren besitzt Parameter, die vor jeder neuen Verschlüsselung initialisiert werden müssen. Dazu gehören der Ausgangspunkt und die Sprungoffsetwerte für die Berechnung von Punktepaaren mit fraktalen Berechnungsmethoden in der komplexen Ebene zur Bestimmung eines Bytefeldes, sowie die Startwerte für den Pseudozufallszahlengenerator. Diese Werte werden gegebenenfalls im Rahmen der Sitzungseröffnung zwischen Sender und Empfänger ausgehandelt. Das dabei zugrundeliegende Sitzungsprotokoll kann auf verschiedenen bekannten Verfahren beruhen und ist nicht Bestandteil des Patentanspruchs.The method to be protected in the patent is a one-shot method proposal that can be used in conjunction with any block encryption algorithm. Details are also the 1 refer to. The one-shot method to be protected replaces the fixed base key in the symmetric block encryption method with a key sequence. For each plaintext data block of an encryption session, the method generates and encrypts an independent base key. The key sequence is unique for each session and depends solely on the session parameters. The single-use key method to be protected is based on three main features, which are described below. 1. The first main feature is the calculation and processing of a byte array (byte matrix) via fractal calculation methods whose individual values can be compiled into byte groups by means of the indexing of the byte field, characterized in that 1.1. with the aid of iterated function systems of degree> = 2 (referred to as fractal functions in the following), a sequence of points in the complex, Gaussian number plane is calculated, manipulated byte by byte and stored in a matrix. Among other things, functions for calculating Mandelbrot and Julia quantities can be used. 1.2. the points thus calculated in byte-by-byte manipulation are related to one another by simple mathematical methods, so that a first confusion and diffusion of the resulting point sequences relative to the calculation method used is achieved. The resulting list of points is then treated as an indexed field of bytes (byte matrix, byte field, fractal field). The byte field serves as the basis for the subsequent compilation of a byte sequence to a base key with the help of a selection function. 1.3. the sequence of points calculated using iterated function systems in the complex number plane is recreated for each new session in the sender and receiver depending on the session parameters and stored as a byte field. 2. The second main feature is that a group of selection functions has the task to select byte sequences from the fractal computed byte field, characterized in that 2.1. the selection functions include mathematical instructions that allow access to the contents of the byte array via the field index. 2.2. one of these selection functions is selected from the list of possible selection functions based on the current numerical value of a pseudorandom number generator. 2.3. an offset value is taken from the current numerical value of the random number generator by masking. This quasi-random offset value is taken into account in the index calculation by the selection function. 2.4. the next partial key of the single-use key is obtained by taking from the byte matrix by means of the randomly selected selection function the number of bytes corresponding to the currently set key length. 2.5. the selection functions are stored in a field of functions. Access to the next, randomly selected function is via pointers to these functions. Thus, from the runtime to find the function in the code no conclusions can be drawn on the used selection function in the Krypanalyse. 2.6. the byte sequence compiled with the respective selection function is assembled to the next base key. With the help of this basic key, the next data block is encrypted or decrypted via the block encryption method used. 2.7. All selection functions grouped in a group have the same processing time as possible. The processing time during the selection of a byte sequence from the fractal field must not provide any indication of mathematical details of the cryptanalysis selection function used. 2.8. the flock of selection functions as a whole can be remotely replaced within the scope of maintenance work, and thus an automated key change is possible. 3. The third key feature is the use of an independently operating pseudo-random number generator with at least a period of 2 ^ 60. The insert is characterized in that 3.1. From the generated random numbers by masking the selection of the next Sekeltionsfunktions quasi is controlled randomly. 3.2. Using masking, values are extracted from the current random number and used for the quasi-random initialization of the index calculations by the selection functions. 3.3. By appropriate, dynamic masking of the random number value group functions can be established. The one-time-key method has parameters that must be initialized before each new encryption. These include the starting point and the step-off offset values for calculating point pairs with fractal calculation methods in the complex plane for determining a byte field, as well as the start values for the pseudo-random number generator. These values may be negotiated between the sender and the recipient as part of the session opening. The underlying session protocol can be based on various known methods and is not part of the patent claim.
DE200410006570 2004-02-11 2004-02-11 One-time key generation method on a fractal basis for block encryption algorithms Expired - Fee Related DE102004006570B4 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE200410006570 DE102004006570B4 (en) 2004-02-11 2004-02-11 One-time key generation method on a fractal basis for block encryption algorithms

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE200410006570 DE102004006570B4 (en) 2004-02-11 2004-02-11 One-time key generation method on a fractal basis for block encryption algorithms

Publications (2)

Publication Number Publication Date
DE102004006570A1 true DE102004006570A1 (en) 2005-09-29
DE102004006570B4 DE102004006570B4 (en) 2007-06-21

Family

ID=34894840

Family Applications (1)

Application Number Title Priority Date Filing Date
DE200410006570 Expired - Fee Related DE102004006570B4 (en) 2004-02-11 2004-02-11 One-time key generation method on a fractal basis for block encryption algorithms

Country Status (1)

Country Link
DE (1) DE102004006570B4 (en)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008086241A2 (en) * 2007-01-05 2008-07-17 John Almeida A method of two strings private key (symmetric) encryption and decryption algorithm
EP2288073A1 (en) * 2009-06-29 2011-02-23 CompuGroup Holding AG Apparatus for encrypting data
US9350544B2 (en) 2010-09-14 2016-05-24 CompuGroup Medical AG Apparatus for encrypting data
CN114008965A (en) * 2019-06-19 2022-02-01 脸谱科技有限责任公司 Cryptographic engine with random round of programming to prevent side channel attacks

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2019335414A1 (en) 2018-09-03 2021-03-25 Wolfgang Flatow Management system

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1292067A1 (en) * 2001-09-08 2003-03-12 Amphion Semiconductor Limited Block encryption/decryption apparatus for Rijndael/AES
EP1292066A1 (en) * 2001-09-08 2003-03-12 Amphion Semiconductor Limited An apparatus for generating encryption or decryption keys
US20030099352A1 (en) * 2001-10-04 2003-05-29 Chih-Chung Lu Apparatus for encryption and decryption, capable of use in encryption and decryption of advanced encryption standard
WO2003053001A1 (en) * 2001-12-18 2003-06-26 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US20030198345A1 (en) * 2002-04-15 2003-10-23 Van Buer Darrel J. Method and apparatus for high speed implementation of data encryption and decryption utilizing, e.g. Rijndael or its subset AES, or other encryption/decryption algorithms having similar key expansion data flow
WO2003101020A1 (en) * 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1292067A1 (en) * 2001-09-08 2003-03-12 Amphion Semiconductor Limited Block encryption/decryption apparatus for Rijndael/AES
EP1292066A1 (en) * 2001-09-08 2003-03-12 Amphion Semiconductor Limited An apparatus for generating encryption or decryption keys
US20030099352A1 (en) * 2001-10-04 2003-05-29 Chih-Chung Lu Apparatus for encryption and decryption, capable of use in encryption and decryption of advanced encryption standard
WO2003053001A1 (en) * 2001-12-18 2003-06-26 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US20030198345A1 (en) * 2002-04-15 2003-10-23 Van Buer Darrel J. Method and apparatus for high speed implementation of data encryption and decryption utilizing, e.g. Rijndael or its subset AES, or other encryption/decryption algorithms having similar key expansion data flow
WO2003101020A1 (en) * 2002-05-23 2003-12-04 Atmel Corporation Advanced encryption standard (aes) hardware cryptographic engine

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008086241A2 (en) * 2007-01-05 2008-07-17 John Almeida A method of two strings private key (symmetric) encryption and decryption algorithm
WO2008086241A3 (en) * 2007-01-05 2008-10-02 John Almeida A method of two strings private key (symmetric) encryption and decryption algorithm
EP2288073A1 (en) * 2009-06-29 2011-02-23 CompuGroup Holding AG Apparatus for encrypting data
US9350544B2 (en) 2010-09-14 2016-05-24 CompuGroup Medical AG Apparatus for encrypting data
CN114008965A (en) * 2019-06-19 2022-02-01 脸谱科技有限责任公司 Cryptographic engine with random round of programming to prevent side channel attacks
US12010205B2 (en) 2019-06-19 2024-06-11 Meta Platforms Technologies, Llc Encryption engine having randomized round scheduling to prevent side channel attacks

Also Published As

Publication number Publication date
DE102004006570B4 (en) 2007-06-21

Similar Documents

Publication Publication Date Title
DE60314055T2 (en) Encryption and decryption in a circuit that masks a non-linear transformation such as the SUBBYTE operation
EP3219042B1 (en) Hardened white box implementation 2
EP2605445B1 (en) Method and apparatus for securing block ciphers against template attacks
DE60121566T2 (en) Encryption method, encryption program, storage medium for recording the program, and encryption device as well as decryption method and decryption device
DE69031736T2 (en) ENCRYPTION METHOD
DE60222052T2 (en) Encryption secured against attacks through the analysis of power consumption (DPA)
CN110995411B (en) Encryption and decryption method and device, electronic equipment and storage medium
US10790962B2 (en) Device and method to compute a block cipher
CN106296561B (en) Image encryption method and device, decryption method and device based on hyperchaotic system
US8966285B2 (en) Securing implementation of a cryptographic process having fixed or dynamic keys
DE19827904A1 (en) Block encryption algorithm with robust security against a differential cryptanalysis, a linear cryptanalysis and a differential cryptanalysis of higher order
DE112011102765T5 (en) Apparatus and method for block encryption methods for unsafe environments
EP1298834A1 (en) Method and apparatus for encrypting and decrypting data
DE60116195T2 (en) Device and method for concealing input parameters
DE69729297T2 (en) ENCRYPTION DEVICE FOR BINARY CODED MESSAGES
CN109726565A (en) Whitepack is used in anti-leakage primitive
KR20110120837A (en) A cryptosystem with a discretized chaotic map
US20030210783A1 (en) Method and system of encryption
DE102004006570A1 (en) Session keying method for microprocessor-based coding system, involves placing selection functions in field of functions so that next randomly selected function is accessed via pointer of functions, where function access byte field contents
EP3369205B1 (en) Alternative representation of the crypto algorithm des
Datcu et al. New enciphering algorithm based on chaotic generalized Hénon map
Carter et al. Key schedule classification of the AES candidates
Wadi et al. A low cost implementation of modified advanced encryption standard algorithm using 8085A microprocessor
EP2288073B1 (en) Apparatus for encrypting data
US8817976B2 (en) Reversible cipher

Legal Events

Date Code Title Description
ON Later submitted papers
OP8 Request for examination as to paragraph 44 patent law
8364 No opposition during term of opposition
8320 Willingness to grant licenses declared (paragraph 23)
R119 Application deemed withdrawn, or ip right lapsed, due to non-payment of renewal fee

Effective date: 20130903