DE69721439T2 - Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels - Google Patents

Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels Download PDF

Info

Publication number
DE69721439T2
DE69721439T2 DE69721439T DE69721439T DE69721439T2 DE 69721439 T2 DE69721439 T2 DE 69721439T2 DE 69721439 T DE69721439 T DE 69721439T DE 69721439 T DE69721439 T DE 69721439T DE 69721439 T2 DE69721439 T2 DE 69721439T2
Authority
DE
Germany
Prior art keywords
block
sub
key
blocks
data
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.)
Expired - Lifetime
Application number
DE69721439T
Other languages
English (en)
Other versions
DE69721439D1 (de
Inventor
Huibert Den Boer
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.)
Irdeto BV
Original Assignee
Koninklijke Philips Electronics NV
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 Koninklijke Philips Electronics NV filed Critical Koninklijke Philips Electronics NV
Publication of DE69721439D1 publication Critical patent/DE69721439D1/de
Application granted granted Critical
Publication of DE69721439T2 publication Critical patent/DE69721439T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime 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
    • 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
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/24Key scheduling, i.e. generating round keys or sub-keys for block encryption

Description

  • Die vorliegende Erfindung bezieht sich auf ein Verfahren zur Umwandlung eines digitalen Eingangsblocks in einen digitalen Ausgangsblock; wobei diese Umwandlung den Schritt umfasst der Zusammenfügung eines selektierten Teils M1 des genannten digitalen Eingangsblocks mit einem ersten Schlüssel K1 und der Erzeugung eines Datenblocks B1, der nicht linear abhängig ist von dem selektierten Teil M1 und dem genannten ersten Schlüssel K1, und wobei ein selektierter Teil des genannten digitalen Ausgangsblocks von dem genannten Datenblock B1 hergeleitet wird.
  • Die vorliegende Erfindung bezieht sich weiterhin auf eine Anordnung zur kryptographischen Umwandlung eines digitalen Blocks in einen digitalen Ausgangsblock; wobei die genannte Anordnung erste Eingangsmittel aufweist zum Erhalten des genannten digitalen Eingangsblocks; zweite Eingangsmittel zum Erhalten eines ersten Schlüssels K1; kryptographische Verarbeitungsmittel zum Umwandeln des digitalen Eingangsblocks in den digitalen Ausgangsblock; wobei die genannte Umwandlung das Zusammenfügen eines selektierten Teils M1 des genannten digitalen Eingangsblocks mit dem genannten ersten Schlüssel K1 und das Erzeugen eines Datenblocks B1, der von dem genannten selektierten Teil M1 und dem genannten ersten Schlüssel nicht linear abhängig ist und wobei ein selektierter Teil des genannten digitalen Ausgangsblocks von dem genannten Datenblock B1 hergeleitet wird; und Ausgangsmittel zum Ausliefern des genannten digitalem Ausgangsblocks.
  • Der "Data Encryption Standard" (DES) des nationalen Normbüros [FIPS Veröffentlichung 46, den 15. Januar 1977] beschreibt einen weitgehend verwendeten Algorithmus zum Umwandeln eines digitalen Eingangsblocks in einen digitalen Ausgangsblock. Ein derartiger Algorithmus wird im Allgemeinen als Blockzeichen bezeichnet. Der DES-Algorithmus wird benutzt zum Verschlüsseln und Entschlüsseln binär codierter Information. Verschlüsselung verwandelt verständliche Daten, die als Klartext bezeichnet werden, in eine unverständliche Form, die als Schlüsseltext bezeichnet wird. Entschlüsselung des Schlüsseltextes verwandelt die Daten zurück in die ursprüngliche Form. In der sog. elektronischen Codebuchmode wird DES verwendet zum Verschlüsseln von Blöcken von 64 Bits Klartext in entsprechende Blöcke von 64 Bits Schlüsseltext. In dieser Mode benutzt die Verschlüsselung Schlüssel, die von einem 64 Bit Schlüssel hergeleitet werden, von denen 56 Bits frei selektiert werden können. 1 zeigt die Gesamtstruktur von DES während der Verschlüsselung. In der Verschlüsselungsberechnung wird zunächst der Eingang (64 Bit Klartext) von 64 Bits in 64 Bits permutiert, und zwar unter Anwendung einer festen Permutation IP. Das Ergebnis wird in 32 linke Bits L0 und 32 rechte Bits R0 aufgeteilt. Die rechten Bits werden unter Anwendung einer Verschlüsselungsfunktion f(R0,K1) transformiert, wobei K1 ein Subschlüssel ist. Das Ergebnis f(R0,K1) wird zu den linken Bits hinzugefügt (bitweise Modulo 2), wonach die zwei resultierenden 32 Bit Blöcke L0⊕ f(R0,K1) ausgetauscht werden. Diese Prozedur wird insgesamt 16 Runden wiederholt. Am Ende der letzten Runde wird die invertierte Permutation der Ausgangspermutation 1P angewandt.
  • In der Berechnung von f(Ri,Ki+1) werden zunächst die 32 rechten Bits Ri zunächst auf 48 Bits in dem Box E erweitert, wie in 2 dargestellt. Entsprechend einer bestimmten Tabelle erfolgt diese Erweiterung dadurch, dass einige Eingangsbits zweimal als Ausgangsbit genommen werden und andere nur einmal. Danach werden die erweiterten 48 Bits den 48 Schlüsselbits Ki hinzugefügt (bitweise Modulo 2). Die resultierenden 48 Bits werden in 8 Gruppen zu je 6 Bits aufgeteilt. Jede dieser Gruppen wird von einer S Box (Si) verarbeitet, was die 6 Bits in einem nicht linearen Vorgang zu 4 Bits reduziert. Die acht Si Boxen gibt es in Form einer Tafel. Der gesamte Ausgang ist 32 Bits, was in der Box P permutiert wird. P ist ebenfalls in Form einer Tafel.
  • 3 zeigt die Schlüsselplanberechnung. Der Schlüssel besteht aus 64 Bits, von denen nur 56 in dem Algorithmus verwendet werden. Diese 56 Bits sollen beliebig gewählt werden. Acht komplementierende Fehlerdetektionsbits werden verwendet um die Parität jedes Bytes des Schlüssels ungerade zu machen. Die Wahl der 56 Bits erfolgt in der Box PC1, zusammen mit einer Permutation . Das Ergebnis wird in zwei 28 Bit Worte C0 und D0 aufgeteilt. Zum Erhalten der 48 Schlüsselbits für jede Runde werden zunächst die Worte C0 und D0 ein- oder zweimal verschoben. Eine Wahl und eine Permutation PC2 werden danach auf das Ergebnis angewandt. Der Ausgang von PC2 ist der 48 Bit Subschlüssel K1, der in f(R0,K1) verwendet wird. Der Prozess der Verschiebung, der Wahl und der Permutation wird wiederholt zum Erzeugen eines Subschlüssels für jede Runde. Eine Tafel spezifiziert, wie viele Verschiebungen durchgeführt werden müssen zum Erhalten der nächsten 48 Bits des Subschlüssels für die nächste Runde.
  • Derselbe Algorithmus und derselbe Schlüssel können verwendet werden zum Entschlüsseln eines Schlüsseltextes. Die Ausgangspermutation für die Entschlüsselung macht die inverse Permutation der Verschlüsselung rückgängig. Jede Runde besteht aus einem sog. Feistel-Cipher. Es ist durchaus bekannt, dass für Feistel-Ciphers der inverse Vorgang aus der Verwendung derselben Runden besteht, die auch zum Verschlüsseln verwendet werden, wobei aber die Subschlüssel in umgekehrter Reihenfolge angewandt werden. An sich muss die erste Entschlüsselungsrunde mit demselben Subschlüssel versehen werden, der für die sechzehnte Verschlüsselungsrunde verwendet wurde, die zweite Entschlüsselungsrunde muss mit demselben Subschlüssel versehen werden, der für die fünfzehnte Verschlüsselungsrunde verwendet wurde, usw. Es ist ebenfalls durchaus bekannt, wie der DES-Algorithmus in anderen Verschlüsselungsmoden verwendet werden kann, wie in der Cipher-Rückkopplungsmode. In dieser Mode wird der DES-Algorithmus verwendet zum Erzeugen eines Stromes statistisch beliebiger binärer Bits, die mit dem Klartext kombiniert werden, und zwar unter Anwendung beispielsweise eines logischen Exklusiv-Oder-Vorgangs.
  • Der DES-Algorithmus umfasst im Wesentlichen eine Ausgangspermutation, der sechzehn schlüsselabhängige Berechnungen an einem Teil der Daten folgen die durch eine inverse Permutation abgeschlossen wird. Jede schlüsselabhängige Berechnung umfasst das Addieren (Modulo 2) schlüsselabhängiger Bits zu dem Datenteil, wonach ein nicht linearer Vorgang an Subblöcken Drain-Elektrode Datenteils folgt, der durch eine Permutation (linearen Vorgang) des Datenteils abgeschlossen wird.
  • Im Allgemeinen wird DES als ein gutes Verschlüsselungs/Entschlüsselungswerkzeug betrachtet. Es ist aber eine offene Frage, ob DES in den vergangenen Jahren nach wie vor sicher ist, insbesondere im Hinblick auf die jüngsten sehr kraftvollen differenziellen kryptoanalytischen Attacken.
  • Es ist nun u. a. eine Aufgabe der vorliegenden Erfindung ein kryptographisches Verfahren und eine Anordnung der beschriebenen Art zu schaffen, die mehr beständig ist gegen kryptoanalytische Attacken.
  • Um diese Aufgabe zu erfüllen weist das kryptographische Verfahren nach der vorliegenden Erfindung das Kennzeichen auf, dass der genannte Zusammenfügungsschritt dadurch durchgeführt wird, dass eine nicht lineare Funktion g durchgeführt wird zur nicht linearen Zusammenfügung des genannten selektierten Teils M1 und des genannten ersten Schlüssels K1 in einem einzigen, sequentiell untrennbaren Schritt. In dem DES-System, wie in 2 dargestellt, werden in einem ersten Verarbeitungsschritt die R-Daten bitweise zu dem Schlüssel hinzugefügt, wonach ein zweiter Verarbeitungsschritt einer nicht linearen Verarbeitung des Ergebnisses (S-Boxen) folgt. Nach der vorliegenden Erfindung wird ein Algorithmus verwendet, der nicht linear Daten mit einem Schlüssel in einem einzigen Schritt zusammenfügt (d. h. in einem einzigen sequentiellen nicht trennbaren Schritt). An sich ist das Hinzufügen der Schlüsselbits zu den Daten ein integraler Teil des nicht linearen Vorgangs, wodurch das System mehr immun gemacht wird gegen modernen Attacken, wie eine differenzielle Kryptoanalyse.
  • In einer Ausführungsform des Verfahrens nach der vorliegenden Erfindung, wie in dem abhängigen Patentanspruch 2 definiert, werden in jeder Runde die beiden Teile des digitalen Eingangsblocks verarbeitet, was ein besseres Verschlüsselungsergebnis liefert als für herkömmliche Feistel Ciphers, wie DES, wobei während jeder Runde nur die Hälfte des digitalen Eingangsblocks verarbeitet wird. Um zu gewährleisten, dass dasselbe System für Verschlüsselung und Entschlüsselung angewandt werden kann, wird ein Teil der Daten unter Anwendung eines Vorgangs g verarbeitet, während die andere Hälfte unter Anwendung des inversen Vorgangs g–1 verarbeitet wird. Unter Anwendung dieses Schemas wird Entschlüsselung unter Anwendung desselben Systems durchgeführt, wobei aber die Schlüssel in umgekehrter Reihenfolge den Runden zugeführt werden (während der Entschlüsselung wird der erste nicht lineare Schritt mit einem Schlüssel versehen, der während der Verschlüsselung dem letzten nicht linearen Schritt zugeführt wurde usw.). Im Vergleich zu einer herkömmlichen Implementierung einer Feistel Cipher mit zweimal soviel Runden, ist das System nach der vorliegenden Erfindung schneller.
  • Die Maßnahme, wie in dem Unteranspruch 3 definiert, wobei ein relativ großer Datenblock und Schlüssel von beispielsweise 64 Bits in kleinere Subblöcke und Subschlüssel aufgeteilt wird, vereinfacht nicht lineare Echtzeit-Verarbeitung.
  • Bei einer Ausführungsform des Verfahrens nach der vorliegenden Erfindung, wie in dem Unteranspruch 5 definiert, wird eine Konstante verwendet zur Verbesserung der Qualität der Verschlüsselung. Auf vorteilhafte Weise wird die Konstante je System vorbestimmt, wobei beispielsweise eine kundenspezifische Konstante gebildet wird. Auf alternative Weise wird die Konstante unter Verwendung eines pseudo beliebigen Generators erzeugt.
  • Die Maßnahme, definiert in dem Unteranspruch 6, schafft eine Möglichkeit einer nicht linearen Zusammenfügung des Datensubblocks und des Subschlüssels in einem einzigen Schritt. Zusätzlich führen verschiedene Eingänge alle zu verschiedenen Ausgängen. Dies vergrößert die Immunität des Systems gegen kryptoanalytische Attacken im Vergleich zu DES, wo der nicht lineare Vorgang den 6-Bit Eingangssubblock zu einem 4-Bit Ausgangssubblock reduziert, was mit sich bringt, dass derselbe Ausgang für vier verschiedene Eingänge erzeugt wird.
  • In einer Ausführungsform des Verfahrens nach der vorliegenden Erfindung, wie in dem Unteranspruch 7 definiert, wird eine Konstante verwendet zur Verbesserung der Qualität der Verschlüsselung. Auf vorteilhafte Weise wird die Konstante je System vorbestimmt, wobei beispielsweise eine kundenspezifische Konstante gebildet wird. Auf alternative Weise wird die Konstante unter Verwendung eines pseudo beliebigen Generators erzeugt.
  • Die Maßnahme, wie in dem Unteranspruch 8 definiert, steigert die Qualität der Verschlüsselung noch weiter.
  • In einer Ausführungsform des Verfahrens nach der vorliegenden Erfindung, wie in dem Unteranspruch 10 definiert, werden einzelne Subblöcke, die verschiedenen Teilen des digitalen Eingangsblocks entsprechen, zur Verbesserung der Qualität der Verschlüsselung umgetauscht.
  • Vorzugsweise umfasst der Subblock mi acht Datenbits. Dies verbessert weiterhin die Qualität des nicht linearen Vorgangs im Vergleich zu DES, wobei der nicht lineare Vorgang sechs zu vier Bits verwandelt.
  • Die Maßnahme, wie in dem Unteranspruch 11 definiert, hat den Vorteil der Reduktion der Multiplikation in GF(28) zu Vorgängen in GF(24), wodurch es möglich gemacht wird, eine einfachere oder kosteneffektivere Implementierung zu erhalten.
  • Die Maßnahme, wie in dem Unteranspruch 12 definiert, bietet eine effektive Weise der Reduktion der Multiplikation in GF(28) zu Vorgängen in GF(24).
  • Eine Ausführungsform des Verfahrens nach der vorliegenden Erfindung weist das Kennzeichen auf, dass β eine Wurzel eines nicht reduziblen Polynoms h(x) = x4 + x3 + x2 + x + 1 über GF(2) ist. Dies ist eine bevorzugte Wahl für β , wodurch die Verwendung der sog. verschobenen polynomischen Basis ermöglicht wird.
  • Eine Ausführungsform des Verfahrens nach der vorliegenden Erfindung weist das Kennzeichen auf, dass Berechnung des invertierten Wertes eines Elementes von GF(28) die Durchführung einer Reihe von Berechnungen in GF(24) umfasst. Durch Reduktion des inversen Vorgangs in GF(28) zu Vorgängen in GF(24) kann eine einfachere und kosteneffektivere Implementierung erhalten werden.
  • Eine Ausführungsform des Verfahrens nach der vorliegenden Erfindung weist das Kennzeichen auf, dass Berechnung des invertierten Wertes des genannten Elementes b die folgende Berechnung umfasst: (a 2 / 0 + a0a1, + a 2 / 1β)–1 ((a0 + a1) + a1D). Dies ist eine effektive Weise der Reduktion des invertierten Vorgangs in GF(28) zu Vorgängen in GF(24).
  • Eine Ausführungsform des Verfahrens nach der vorliegenden Erfindung weist das Kennzeichen auf, dass der erste Schlüssel K1 64 Datenbits aufweist und wobei jeder der genannten Subschlüssel ki acht Datenbits aufweist. Durch Verwendung eines großen Schlüssels wird die Qualität der Verschlüsselung gesteigert.
  • Um die Aufgabe der vorliegenden Erfindung zu erfüllen weist die Anordnung nach der vorliegenden Erfindung das Kennzeichen auf, dass die genannten kryptographischen Verarbeitungsmittel vorgesehen sind zum Durchführen der genannten Zusammenfügung dadurch, dass eine nicht lineare Funktion g für nicht lineare Zusammenfügung des genannten Selektierten Teils M1 und des genannten ersten Schlüssels K1 in einem einzigen sequentiell untrennbaren Schritt durchgeführt wird.
  • Ausführungsbeispiele der Erfindung sind in der Zeichnung dargestellt und werden im vorliegenden Fall näher beschrieben. Es zeigen:
  • 1 die Verarbeitungsschritte für das DES-System,
  • 2 Einzelheiten der Zusammenfügung der Daten mit dem Schlüssel und des nicht linearen Vorgangs in DES,
  • 3 Einzelheiten der Schlüsselberechnung in DES,
  • 4 ein Blockschaltbild der kryptographischen Anordnung,
  • 5 eine einzelne Verarbeitung zweier Teile des digitalen Eingangsblocks,
  • 6 die Verarbeitung eines Teils des digitalen Eingangsblocks in Form von Subblöcken,
  • 7 die Verarbeitung zweier Teile in Form von Subblöcken und
  • 8 ein gesamtes Verschlüsselungssystem.
  • 4 zeigt ein Blockschaltbild der kryptographischen Anordnung 400 nach der vorliegenden Erfindung. Zwecks der Erläuterung der vorliegenden Erfindung wird das System in der elektronischen Codebuch-Mode beschrieben. Der Fachmann wird imstande sein, das System auch in anderen Moden anzuwenden. Die Anordnung 400 umfasst erste Eingangsmittel 410 zum Erhalten eines digitalen Eingangsblocks M. Der digitale Eingangsblock M kann jede beliebige Größe haben. Vorzugsweise ist M groß genug, beispielsweise 128 Bits, zum Erhalten eines ziemlich genaues Verschlüsselungsergebnisses. Die Anordnung 400 umfasst weiterhin kryptographische Verarbeitungsmittel 420 zum Umwandeln des digitalen Eingangsblocks in einen digitalen Ausgangsblock. Auf vorteilhafte Weise hat der digitale Ausgangsblock im Wesentlichen dieselbe Länge wie der digitale Eingangsblock. Die Anordnung 400 umfasst Ausgangsmittel 430 zum Ausliefern des digitalen Ausgangsblocks. Im Grunde verwandeln die kryptographischen Verarbeitungsmittel 420 den digitalen Eingangsblock M in den digitalen Ausgangsblock durch Zusammenfügung eines selektierten Teils M1 des digitalen Eingangsblocks M mit einem ersten Schlüssel K1, wodurch ein Datenblock B1 erzeugt wird, der von M1 und K1 nicht-linear abhängig ist. Das Zusammenfügen erfolgt in einem sequentiell untrennbaren Schritt. Der digitale Ausgangsblock wird von B1 hergeleitet und dem restlichen Teil von M, der keinen Teil von M1 ist. Zum Erhalten des ersten Schlüssels K1 umfasst die kryptographische Anordnung 400 zweite Eingangsmittel 440. Wie nachher noch detailliert beschrieben wird, kann ein zweiter Teil M2 des digitalen Eingangsblocks vorzugsweise mit einem zweiten Schlüssel K2 zusammengefügt werden, und zwar unter Anwendung eines Vorgangs, der umgekehrt ist gegenüber dem Vorgang zum Zusammenfügen von M1 und K1, wodurch ein Datenblock B2 gebildet wird. In diesem Fall ist der digitale Ausgangsblock auch abhängig von B2. Zum Erhalten des zweiten Schlüssels K2 umfasst die kryptographische Anordnung 400 dritte Eingangsmittel 450.
  • Es dürfte einleuchten, dass die kryptographische Anordnung 400 unter Verwendung eines herkömmlichen Computer, wie eines PCs, oder unter Verwendung einer speziellen Verschlüsselungs/Entschlüsselungsanordnung implementiert werden kann. Der digitale Eingangsblock kann verschiedenartig erhalten werden, wie über ein Kommunikationsnetzwerk, von einem Datenspeichermittel, wie einer Festplatte oder von einer Floppy, oder aber unmittelbar vom Benutzer eingegeben. Auf gleiche Weise kann der digitale Ausgangsblock verschiedenartig ausgeliefert werden, wie über ein Kommunikationsnetzwerk, gespeichert auf einem Datenspeichermedium, oder wiedergegeben für einen Benutzer. Vorzugsweise werden dazu sichere Mittel verwendet. Die kryptographischen Verarbeitungsmittel 420 können ein herkömmlicher Prozessor sein, wie beispielsweise verwendet in PCs, sie können aber auch einem kryptographischen Prozessor gewidmet sein. Die kryptographische Anordnung 400 kann teilweise oder völlig auf einer Chip-Karte implementiert sein.
  • In dem restlichen Teil der Beschreibung werden Einzelheiten der kryptographischen Umwandlung für Verschlüsselungsblöcke von 128 Bit Klartext in entsprechende Blöcke von 128 Bit Schlüsseltext gegeben. Der Fachmann wird imstande sein, das System auch für andere Blockgrößen anzuwenden. Datengrößen in den Figuren werden der Deutlichkeit halber gegeben und sollen nur als Beispiel betrachtet werden. Die Beschreibung fokussiert sich auf die nicht lineare Verwendung der Daten und die Zusammenfügung des Schlüssels mit den Daten, wie in einer einzigen Runde durchgeführt. An sich kann die vorliegende Erfindung in einem System angewandt werden, wie in 1 dargestellt, das viele Runden umfasst und auch einen linearen Vorgang an dem Datenblock in jeder Runde aufweist.
  • Wie in 5 dargestellt, ist der Nachrichtenblock M von 128 Bits in einen ersten Teil M1 und einen zweiten Teil M2 aufgeteilt (einen linken und einen rechten Block). Vorzugsweise sind beide Teil gleicher Größe, 64 Bit. Es dürfte einleuchten, das M1 und M2 auch von M hergeleitet werden können, und zwar unter Anwendung eines komplizierteren Selektionsverfahrens. M1 wird verarbeitet unter Verwendung einer nicht linearen Funktion g. Im Grunde ist es nicht erforderlich, M2 während derselben Runde zu verarbeiten. Auf vorteilhafte Weise wird M2 in derselben Runde verarbeitet, und zwar unter Verwendung der inversen Funktion g–1. Jede der Funktionen g und g–1 fügt M1 oder M2 mit einem Schlüssel K1 bzw. K2 zusammen. Vorzugsweise haben die Datenteile und die Schlüssel die gleiche Größe. Da es schwer ist, einen guten nicht linearen Vorgang an einem großen Datenblock zu implementieren und eine nicht lineare Verarbeitung eines großen Datenblocks zeitaufwendig ist, werden die Datenteile M1 und M2 in Subblöcke aufgeteilt. 6 zeigt dies für M1. 7 zeigt die Aufteilung von M1 und M2. Unter Verwendung von 64 Bit Datenteile M1 und M2 werden die Teile vorzugsweise in acht 8 Bit Elemente aufgeteilt, wobei M1 = (m0, m1 ,..., m7) und M2 = (m8, m9 ,..., m1 5) ist. Die zwei Schlüssel K1 und K2 können von einem größeren Schlüssel hergeleitet werden, beispielsweise durch Aufteilung eines 128 Bit Schlüssels in zwei 64 Bit Schlüssel K1 und K2. Die zwei Schlüssel K1 und K2 können weiter aufgeteilt werden. Unter Verwendung von 64 Bit Schlüsseln wird vorzugsweise jeder Schlüssel in 8 Bit Subschlüssel aufgeteilt, was insgesamt sechzehn 8 Bit Subschlüssel kj ergibt, j = 0 .... 15. Jeder der Subschlüssel kj ist mit dem entsprechenden Subblock mj assoziiert. Jeder Subblock wird einzeln verarbeitet. Vorzugsweise werden die Subblöcke parallel verarbeitet. Falls bevorzugt können die Subblöcke, die sich auf eine einzige Runde beziehen, seriell verarbeitet werden. Die erste Gruppe Subblöcke, die M1 bilden, werden je von einer Cipherfunktion f verarbeitet. Die zweite Gruppe Subblöcke werden je von der inversen Funktion f1 verarbeitet.
  • Für die kryptographischen Vorgänge wird vorausgesetzt, dass ein n Bit Subblock oder Subschlüssel ein Element von GF(2n) darstellt (Galois Field). Alle Vorgänge sind dadurch in GF(2n).
  • In der Basisform hat die Cipherfunktion f zwei Eingänge mj und kj und einen Ausgang tj, wie auch in den 6 und 7 dargestellt, wobei tj = f(mj, kj) für j = 0 bis 7. In der Basisform betrifft die Cipherfunktion f einen Vorgang h(bj, kj) mit einem Ausgang nahezu gleicher Größe wie bj. Die Funktion h hat einen Daten-Subblock bj und einen Subschlüssel kj als Eingang, wobei bj = mj für die Basisform der Cipherfunktion f. Die Funktion f (in dieser Ausführungsform dieselbe wie die Funktion h) wird für j = 0 ... 7 wie folgt definiert:
    Figure 00100001
  • Auf gleiche Weise hat in der Basisform die inverse Cipherfunktion f1 zwei Eingänge mj und kj und einen Ausgang tj, wie auch in den 6 und 7 dargestellt, wobei tj = f1(mj, kj) für j = 8 bis 15. Die inverse Cipherfunktion f1 betrifft ebenfalls nur einen Vorgang h–1(bj· kj) mit einem Ausgang im Wesentlichen gleicher Größe wie bj. Die Funktion h–1 ist die inverse Form von h. Wie oben ist bj = mj in der Basisform der Cipherfunktion f1. Die Funktion f1 (in dieser Ausführungsform dieselbe wie die Funktionen h–1) wird für j = 8 .. 15 wie folgt definiert:
    Figure 00100002
  • In einer weiteren Ausführungsform werden die Ausgänge tj der Cipherfunktionen f(tj = f(mj, kj), für j = 0 bis 7) und die Ausgänge der inversen Cipherfunktion f1 (tj – f1(mj, kj) für j = 8 bis 15) auf die nachfolgende Weise ausgetauscht: tj < - > t15–j für j = 0 bis 7. Dies ist in 7 dargestellt.
  • Bei einer weiteren Ausführungsform wird jedem Daten-Subblock mj vor der Durchführung der Funktion h eine Konstante hinzugefügt (bitweise Modulo 2). Vorzugsweise werden acht unabhängige Konstanten pj (j = 0 ... 7) verwendet, die je dem betreffen den Daten-Subblock mj hinzugefügt werden. Dieselbe Funktion h wird wie oben verwendet, nun arbeitend an bj = mj ⊕ pj. Die Cipherfunktion f wird nun wie folgt definiert:
    Figure 00110001
  • Auf gleiche Weise wird für die inverse Cipherfunktion f1 jedem Daten-Subblock mj auch eine Konstante hinzugefügt (bitweise Modulo 2). Um zu ermöglichen, dass die inverse Funktion f1 benutzt wird zum Entschlüsseln eines verschlüsselten Textes, werden dieselben acht unabhängigen Konstanten pj (j = 0 .. 7) verwendet, wie diese für die Cipherfunktion f verwendet wurden. Nun werden die Konstanten Pj zu dem 15–j. Strom hinzugefügt (j = 0 .. 7). Dadurch betrifft die inverse Cipherfunktion f1 die nachfolgenden zwei Vorgänge (j = 8 .. 15):
    Figure 00110002
  • Zum Schluss, werden tj und t15–j ausgetauscht (j = 0 .. 7).
  • Bei einer weiteren Ausführungsform wird jedem Daten-Subblock mj nach der Durchführung der Funktion h eine weitere Konstante hinzugefügt (bitweise modulo 2). Vorzugsweise werden acht unabhängige Konstanten dj (j = 0 ... 7) verwendet, die je dem entsprechenden Daten-Subblock mj hinzugefügt werden. Dieselbe Funktion h wie oben wird verwendet. Die Cipherfunktion f wird nun wie folgt definiert:
    Figure 00110003
    Figure 00120001
  • Auf dieselbe Weise wird für die inverse Cipherfunktion f1 jedem Daten-Subblock mj auch eine Konstante hinzugefügt (bitweise modulo 2). Um zu ermöglichen, dass die inverse Funktion f1 unter Verwendung der Cipherfunktion f zum Entschlüsseln eines verschlüsselten Textes verwendet wird, wird die Konstante vor der Durchführung der Funktion h hinzugefügt. Vorzugsweise werden dieselben acht unabhängigen Konstanten dj (j = 0 ... 7) verwendet, wie für die Cipherfunktion f verwendet. Nun werden die Konstanten dj zu dem 15–j. Strom hinzugefügt (j = 0 ... 7). Dieselbe Funktion h–1 wird wie oben verwendet, nun an bj = mj ⊕ d15–j arbeitend. Dadurch betrifft die inverse Cipherfunktion f1 die nachfolgenden drei Vorgänge (j = 8 ... 15):
    Figure 00120002
  • Zum Schluss werden tj und t15–j ausgetauscht (j = 0 ... 7).
  • Es dürfte einleuchten, dass es ebenfalls möglich ist, die Konstanten dj ohne Verwendung von Konstanten pj zu verwenden.
  • Bei einer weiteren Ausführungsform erhebt die Cipherfunktion f das Ergebnis der Funktion h in eine Zweierpotenz. Dieselbe Funktion h wie oben wird verwendet. Die Cipherfunktion wird nun wie folgt definiert:
    Figure 00120003
    Figure 00130001
  • Auf gleiche Weise erhebt die inverse Cipherfunktion f1 auch einen Daten-Subblock in eine Zweierpotenz. Um zu ermöglichen, dass die inverse Funktion f1 verwendet wird zum Entschlüsseln eines verschlüsselten Textes unter Verwendung der Cipherfunktion f wird der zusätzliche Vorgang vor der Durchführung der Funktion h durchgeführt. Dieselbe Funktion h–1 wie oben wird verwendet, nun an bj = mj ⊕ d15–j arbeitend. Dadurch betrifft die inverse Cipherfunktion f1 die nachfolgenden vier Vorgänge (j = 8 ... 15):
    Figure 00130002
  • Zum Schluss werden tj und t15–j vertauscht (j = 0 ... 7).
  • Es dürfte einleuchten, dass es ebenfalls möglich ist, den Vorgang der Erhebung in eine Zweierpotenz ohne Verwendung einer oder der beiden Konstanten dj und pj zu verwenden. Zum Entschlüsseln wird derselbe Algorithmus verwendet wie zum Verschlüsseln, aber die Subschlüssel werden vertauscht: anstelle von kj wird k15–j verwendet, j = 0 .. 15.
  • Die Multiplikation in GF(28)
  • Im Grunde kann für die vorliegende Erfindung jede beliebige Multiplikation in GF(28) verwendet werden. Ein Beispiel einer VLSI-Implementierung von Multiplikationen in GF(2m) ist gegeben in [P. A. Scott: "A fast VLSI multiplier for GF(2m)", "IEEE Jounal on selected areas in Communcations", Heft SAC-4, Nr. 1 Januar 1986, Seiten 62–66].
  • Auf vorteilhafte Weise wird der nachfolgende Mechanismus verwendet zum Reduzieren der Multiplikation in GF(28) auf eine Reihe von Multiplikationen und Addierungen zu GF(24).
  • Es wird vorausgesetzt, dass in GF(24) β die nicht triviale Wurzel von β5 = 1 ist (nicht trivial bedeutet β ≠ 1, oder mit anderen Worten, β ist die Wurzel des unzerlegbaren Polynoms h(x) = x4 + x3 + x2 + x + 1 über GF(2), da: x5 + 1 = (x + 1)(x4 + x3 + x2 + x + 1). Die normale Basis β, β2, β4, β5 wird als die Basis in GF(24) genommen. Da entsprechend dem Polynom β8 = β3 ist, ist dies dasselbe wie die sog. verschobene Polynombasis β, β2 β3 β4.
  • Es wird vorausgesetzt, dass D ein Element von GF(28) ist, definiert als eine Wurzel des unzerlegbaren Polynoms k(x) = x2 + x + β über GF(24). Jedes Element von GF(28) kann als a0 + a1·D dargestellt werden, wobei a0 und a1 Elemente von GF(24) sind. In binärer Sprache kann die Zahl b von GF(28) unter Verwendung von acht Bits dargestellt werden, gegliedert als ein Vektor (a0, a1), wobei a0, a1 vier Bits haben, die Zahlen von GF(24) darstellen. An sich ist die Basis in GF(28): β, β2, β3 β4, Dβ, Dβ2, Dβ3, Dβ4. Zwei Elemente b und c von GF(28), dargestellt als b = a0 + a1·D und c = a2 + a3·D, wobei ai ∊ GF(24) ist, kann wie folgt multipliziert werden: b·c = (a0 + a1·D)·(a2 + a3·D) = a0a2 + (a0a3).D + a1a3·D2 .
  • Unter Anwendung der Tatsache, dass D eine Wurzel von k(x) ist, was bedeutet, dass D2 = D + β ist, ergibt dies das nachfolgende Multiplikationsergebnis: b·c = (a0a2 + a1a3β) + (a1a3 + a0a3 + a1a3).D.
  • Dies hat die Multiplikation von zwei Elementen von GF(28) auf eine Reihe von Multiplikationen und Addierungen in GF(24) reduziert.
  • Die Inverse in GF(28)
  • Im Grunde kann jedes bekannte Verfahren benutzt werden zum Berechnen der Inverse eines Elementes in GF(28). Auf vorteilhafte Weise wird, wenn das oberstehende Verfahren angewandt wurde zum Reduzieren der Multiplikation in GF(28) zu einer Mul tiplikation in GF(24), dann das nachfolgende Verfahren angewandt zum Reduzieren des inversen Vorgangs in GF(28) zu einem inversen Vorgang in GF(24).
  • Die Inverse b–1 eines Elementes b in GF(28), wobei b als b = a0 + a1·D dargestellt wird, wobei ai∊ GF(24) ist, wird gegeben durch:
    Figure 00150001
    und da D2 + D = β ist, ergibt dies: b–1.b = 1.
  • Auf diese Weise wird der inverse Vorgang in GF(28) auf einen inversen Vorgang in GF(24) und auf eine Reihe von Multiplikationen und Addierungen in GF(24) reduziert.
  • Multiplikation in GF(24)
  • Im Grunde kann jede beliebige Multiplikation in GF(24) verwendet werden. Auf vorteilhafte Weise wird, wie oben beschrieben, die verschobene Polynombasis β, β2, β3, β4 als Basis in GF(24) genommen, wobei β die Wurzel des untrennbaren Polynoms h(x) = x4 + x3 + x2 + x + 1 über GF(2) ist, und β5 = 1 ist in GF(24). Da β eine Wurzel von h ist, bedeutet dies: β4 + β3 + β2 + β = 1. Wenn nun vorausgesetzt wird, dass die Basiselemente wie folgt genannt werden: e1, e2, e3 und e4, wobei e1 = β1 ist, werden die Basiselemente auf die nachfolgende Weise multipliziert, und zwar unter Anwendung der Definition von β: e1·e2 = β·β = β2 – e2 e1·e2 = β·β2 = β3=e3 e1·e3 = β·β3 = β4 = e4 e1·e4 = β·β4 = β5 = 1 = e1 + e2 + e3 + e4 e2·e2 = β2·β2 = β4 = e4 e2·e3= β2·β3 = β5 = 1 = e1 + e2 + e3+ e4 e2·e4 = β2·β4 = β6 = β = e1 e3·e3= β3·β3 = β6 = β =e1 e3·e4= β3·β4 = β7 = β2 =e2 e4·e4 = β4·β4 = β8 = β3 =e3
  • Dies definiert im Grunde die Multiplikation in GF(24). In binären Termen kann die Multiplikation wie folgt gesehen werden. In Bezug auf die Basis kann jedes Element b in GF(24) wie folgt dargestellt werden: b = b0e1 + b1e2 + b2e3 + b3e4, wobei bi ? GF(2) ist. An sich kann das Element b durch einen 4-dimensionalen Vektor mit binären Elementen (b0, b1, b2, b3) dargestellt werden. Auf einem Mikroprozessor kann dies unter Verwendung eines Häppchens. In binären Termen kann die Multiplikation zweier Elemente b und c in GF(24) wie folgt gesehen werden, wobei vorausgesetzt wird, dass die zwei Elemente dargestellt werden durch: b = (b0, b1, b2, b3) und c = (c0, c1, c2, c3). Multiplikation der zwei Elemente auf die normale Art und Weise ergibt:
    Figure 00160001
  • Die Anwendung der Definition von β zur Ersetzen von β5 durch β4 + β3 + β2 + β, β6 durch β, β7 durch β2 und β8 durch β3 ergibt die nachfolgenden vier Elemente: b.c. = (b1c3 + b2c2 + b3c1 + b0c3 + b1c2 + b2c1 + b3c0)β + (b0c0 + b2c3 + b3c2 + b0c3 + b1c2 + b2c1 + b3c02 + (b0c1 + b1c0 + b3c3 + b0c3 + b1c2 + b2c1 + b3c03 + (b0c2 + b1c1 + b2c0 + b0c3 + b1c3 + b1c2 + b2c1 + b3c04 Das Ergebnis der Multiplikation in binären Termen wird gegeben durch:
    Figure 00160002
  • Inverser Vorgang in GF(24)
  • Unter Verwendung der normalen Basis β, β2, β4, β8 kann jedes Element x von GF(24) geschrieben werden als b = a·β + b·β2 + c·β4 + d·β8, wobei a, b, c, d ? GF(2) ist. An sich kann jedes Element durch einen 4-dimensionalen Vektor (1, b, c, d) dargestellt werden.
  • Zum Erhalten der Inverse von b (b–1)
    • – berechne die nachfolgenden Zwischenergebnisse: ab, ab, ab, bc, bc, bc, cd, cd, cd, da, da, da, wobei ab das binäre UND von a und b (a UND b) und a das binäre Komplement von a (NICHT a) ist.
    • - berechne das erste Bit von b–1 durch Verwendung von cd, cd, cd, ab, bc, und da wie folgt: (cd) ODER (a UND cd) ODER (cd UND ab) ODER (bc UND da)
    • – berechne das zweite Bit von b–1 durch Verwendung von da, da, da, bc, cd, ab wie folgt: (da) ODER (b UND da) ODER (da UND bc) ODER (cd UND ab)
    • – berechne das dritte Bit von b-1- unter Verwendung von ab, ab, ab, cd, da, bc wie folgt: (ab) ODER c UND ab) ODER (ab UND cd) ODER (da UND bc)
    • – berechne das vierte Bit von b–1 durch Verwendung von bc, bc, bc, da, ab, cd wie folgt: (bc) ODER (d UND bc) ODER (bc UND da) ODER (ab UND cd)
  • Nebst der Verwendung in einem DES-artigen System , wie in l dargestellt, kann ein spezielles System um den nicht linearen Algorithmus nach der vorliegenden Erfindung gebaut werden. Ein derartiges System ist in 8 dargestellt. In diesem System werden die Blöcke unter Verwendung des nicht linearen Vorgangs NL nach der vorliegenden Erfindung und eines linearen Vorgangs LIN verarbeitet. Der erste Schritt ist der nicht lineare Vorgang. Dem folgt eine Wiederholung des linearen Vorgangs, dem ein nicht linearer Vorgang folgt. Es wird erwartet, dass ein ausreichend sicheres System dadurch erhalten werden kann, dass sechs nicht lineare Vorgänge (d. h. unter Verwendung von fünf Runden) durchgeführt werden, unter der Bedingung, dass der lineare Vorgang die Datenbits sehr gut vermischt. Vorzugsweise werden 15 Runden verwendet. Alle linearen Vorgänge sind gleich. Auch sind alle nicht linearen Vorgänge gleich, aber jeder nicht lineare Vorgang benutzt einen anderen Schlüssel von 128 Bits. Auf vorteilhafte Weise werden Schlüssel von einem einzigen globalen Schlüssel von beispielsweise 256 Bits hergeleitet, und zwar unter Anwendung einer Schlüsselplanberechnung. Für Verschlüsselung sowie Entschlüsselung wird derselbe Schlüssel verwendet. Im den meisten Fällen wird der Schlüssel geliefert unter Verwendung einer Chip-Karte. Für den linearen Vorgang wird auf vorteilhafte Weise statt einer Permutation eine komplexere Matrix verwendet. Wie oben beschrieben, kann zusätzlich zu dem Schlüssel jeder nicht lineare Vorgang eventuell eine Konstante C von 128 Bits verwenden, die in die Konstanten pj und dj aufgeteilt wird. Die Konstante kann für jeden Vorgang der gleiche sein. Auf vorteilhafte Weise wird jeder nicht lineare Vorgang mit einer einzelnen Konstanten versehen. Die Konstanten können je System vorbestimmt werden (beispielsweise eine Kundenspezifische Konstante). Auf alternative Weise wird die Konstante unter Verwendung eines pseudo beliebigen Generators erzeugt.
  • Text in der Zeichnung
  • 1
  • Eingang
    Anfangspermutation
    Permutierter Eingang
    Vor-Ausgang
    Invertierter Anfangspermutation
    Ausgang
  • 3
  • Schlüssel
    Permutierte Wahl 1
    Links-Verschiebung
    Permutierte Wahl 2
    Links-Verschiebungen
  • 8
  • Eingang
    Schlüsselberechnung
    Schlüssel
    Ausgang

Claims (20)

  1. Verfahren zur kryptographischen Umwandlung eines digitalen Eingangsblocks in einen digitalen Ausgangsblock; wobei diese Umwandlung den Schritt umfasst der Zusammenfügung eines selektierten Teils M1 des genannten digitalen Eingangsblocks mit einem ersten Schlüssel K1 und der Erzeugung eines Datenblocks B1, der nicht linear abhängig ist von dem selektierten Teil M1 und dem genannten ersten Schlüssel K1, und wobei ein selektierter Teil des genannten digitalen Ausgangsblocks von dem genannten Datenblock B1 hergeleitet wird, dadurch gekennzeichnet, dass der genannte Zusammenfügungsschritt dadurch durchgeführt wird, dass eine nicht lineare Funktion g durchgeführt wird zur nicht linearen Zusammenfügung des genannten selektierten Teils M1 und des genannten ersten Schlüssels K1 in einem einzigen, sequentiell untrennbaren Schritt.
  2. Verfahren nach Anspruch 1, wobei das genannte Verfahren die nachfolgenden Verfahrensschritte umfasst: – das Spalten des genannten digitalen Eingangsblocks in den genannten selektierten Teil M1 und einen zweiten Teil M2 vor der Durchführung des genannten Zusammenfügungsschrittes; – das Durchführen einer nicht linearen Funktion g–1 zum Zusammenfügen des genannten zweiten Blocks M2 mit einem zweiten Schlüssel K2 in einem einzigen, sequentiell untrennbaren Schritt, wobei ein Datenblock B2 als Ausgang erzeugt wird; wobei die genannte nicht lineare Funktion g–1 die Inverse der genannten nicht linearen Funktion g ist; und – das Bilden kombinierter Daten aus Daten in dem genannten Datenblock B1 und in dem genannten Datenblock B2; wobei der genannte digitale Datenblock von den genannten kombinierten Daten hergeleitet wird.
  3. Verfahren nach Anspruch 1, wobei der genannte Zusammenfügungsschritt die nachfolgenden Schritte umfasst: – das Spalten des genannten selektierten Teils M1 in eine erste Anzahl n Subblöcke m0 ,..., mn–1 einer im Wesentlichen gleichen Länge; – das Spalten des genannten ersten Schlüssels K1 in die genannte erste Anzahl n Subschlüssel k0 ,..., kn–1 einer im Wesentlichen gleichen Länge, wobei der Subschlüssel ki dem Subblock m; entspricht, für i = 0 bis n–1; und – das einzelne Verarbeiten jedes Blocks der genannten Subblöcke m; dadurch, dass für jeden der genannten Subblöcke mi eine gleiche nicht lineare Funktion h durchgeführt wird zur nicht linearen Zusammenfügung eines Subblocks bi, hergeleitet von dem genannten Subblock mi, mit dem genannten entsprechenden Subschlüssel ki in einem einzigen sequentiell untrennbaren Schritt, und wobei die genannte erste Anzahl Ausgangssubblöcke h(bi, ki) erzeugt wird; und – das Kombinieren von Subblöcken ti hergeleitet von der genannten ersten Anzahl der genannten Ausgangssubblöcke h(bi, ki) zum Bilden des genannten Datenblocks B1.
  4. Verfahren nach Anspruch 2 und 3, wobei der genannte Schritt der Durchführung der genannten nicht linearen Funktion g–1 die nachfolgenden Verfahrensschritte umfasst: – das Spalten des genannten zweiten Teils M2 in die genannte erste Anzahl n Subblöcke mn ,..., m2–1 im Wesentlichen mit der gleichen Länge. – das Spalten des genannten Schlüssels K2nzahl n Subschlüssel kn ,..., k2n–1, im Wesentlichen mit der gleichen Länge, wobei der Subschlüssel ki dem Subblock mi entspricht für i = n bis 2n–1; – das für jeden Subblock der genannten Subblöcke mi Durchführen einer gleichen nicht linearen Funktion h–1 zur nicht linearen Zusammenfügung eines Subblocks bi, hergeleitet von dem genannten Subblock mi, mit dem genannten entsprechenden Subschlüssel ki und das Erzeugen der genannten ersten Anzahl Ausgangssubblöcke h–1(bi, ki); wobei die genannte Funktion h–1 die Inverse der genannten Funktion h ist; und – das Kombinieren von Subblöcken ti, hergeleitet von der genannten ersten Anzahl Ausgangssubblöcke h–1(bi, ki) zum Bilden des genannten Datenblocks B2.
  5. Verfahren nach Anspruch 3, wobei der genannte Subblock bi von dem genannten Subblock mi hergeleitet wird, und zwar durch bitweise Addierung einer Konstanten pi zu dem genannten Subblock mi, wobei die genannte Konstante pi im Wesentlichen eine gleiche Länge hat wie der genannte Subblock mi.
  6. Verfahren nach Anspruch 3, dadurch gekennzeichnet, dass die genannte Funktion h(bi,ki) wie folgt definiert wird:
    Figure 00220001
    wobei die Multiplikation und die inversen Vorgänge eine vorbestimmte GF-Multiplikation (Galois Field) und inverse Vorgänge sind.
  7. Verfahren nach Anspruch 6, wobei das Herleiten der genannten Subblöcke ti von den genannten Ausgangssubblöcken h(bi, ki) das bitweise Addieren einer Konstanten di zu dem genannten Ausgangssubblock h(bi, ki) umfasst, wobei die genannte Konstante di im Wesentlichen die gleiche Länge hat wie der genannte Subblock mi.
  8. Verfahren nach Anspruch 7, wobei das Herleiten der genannten Subblöcke ti von den genannten Ausgangssubblöcken h(bi, ki) weiterhin das Erhöhen von h(bi ki) ⊕ d; zu einer Potenz 21 umfasst, und zwar unter Anwendung der oben genannten vorbestimmten GF-Multiplikation.
  9. Verfahren nach Anspruch 6, wobei das Herleiten der genannten Subblöcke ti aus den genannten Ausgangssubblöcken h(bi, ki) das Erhöhen des Ausgangssubblocks h(bi ki) zu einer Potenz 21 umfasst, und zwar unter Anwendung der genannten vorbestimmten GF-Multiplikation.
  10. Verfahren nach Anspruch 4, wobei die genannten kombinierten Daten wie folgt gebildet werden: – durch Austausch der Subblöcke ti und t2n–1–i, für i = 0 bis n–1; und – durch Verkettung der übergelagerten Subblöcke.
  11. Verfahren nach Anspruch 6, wobei der genannte Subblock mi acht Datenbits umfasst und wobei die genannte Multiplikation zweier Elemente b und k von GF(28) das Durchführen einer Reihe von Multiplikationen und Addierungen in GF(24) umfasst.
  12. Verfahren nach Anspruch 11, wobei die genannte Multiplikation der genannten zwei Elemente b und k Folgendes umfasst: – das Darstellen von b als a0 + a1·D und von k als a2 + a3·D, wobei a0, a1, a2 und a3 Elemente von GF(24) sind, und wobei D ein Element von GF(28) ist, definiert als eine Wurzel eines nicht reduziblen Polynoms k(x) = x2 + x + β über GF(24), wobei β ein Element von GF(24) ist; und – das Berechnen von (a0a2 + a1a3β) + (a1a2 + a1a3 + a1a3)·D.
  13. Verfahren nach Anspruch 12, wobei β eine Wurzel eines nicht reduziblen Polynoms h(x) = x4 + x3 + x2 + x + 1 über GF(2) ist.
  14. Verfahren nach Anspruch 6, wobei der genannte Subblock mi acht Datenbits enthält und wobei das Berechnen der Inverse eines Elementes b von GF(28) das Durchführen einer Reihe von Berechnungen in GF(24) umfasst.
  15. Verfahren nach Anspruch 14, wobei das Berechnen der Inverse des genannten Elementes b Folgendes umfasst: – das Darstellen von b als a0 + a1·D, wobei a0 und a1 Elemente von GF(24) sind und wobei D ein Element von GF(28) ist, definiert als die Wurzel eines nicht reduziblen Polynoms k(x) = x2 + x + β über GF(24) ist, wobei β ein Element von GF(24) ist; und - das Berechnen von (a 2 / 0 + a0a1, + a 2 / 1 β)–1 ((a0 + a1 ) + a1D).
  16. Anordnung zur kryptographischen Umwandlung eines digitalen Eingangsblocks in einen digitalen Ausgangsblock; wobei die genannte Anordnung die nachfolgenden Elemente umfasst: – erste Eingangsmittel zum Erhalten des genannten digitalen Eingangsblocks; – zweite Eingangsmittel zum Erhalten eines ersten Schlüssels K1; – kryptographische Verarbeitungsmittel zum Umwandeln des digitalen Eingangsblocks in den digitalen Ausgangsblock; wobei die genannte Umwandlung das Zusammenfügen eines selektierten Teils M1 des genannten digitalen Eingangsblocks mit dem genannten ersten Schlüssel K1 umfasst und das Erzeugen eines Datenblocks B1, der nicht linear von dem genannten selektierten Teil M1 und dem genannten ersten Schlüssel K1 abhängig ist, und wobei ein selektierter Teil des genannten digitalen Ausgangsblocks von dem genannten Datenblock B1 hergeleitet wird; und – Ausgangsmittel zum Ausliefern des genannten digitalen Ausgangsblocks, dadurch gekennzeichnet, dass die genannten kryptographischen Verarbeitungsmittel dazu vorgesehen sind, das genannte Zusammenfügen durchzuführen, und zwar dadurch, dass eine nicht lineare Funktion g durchgeführt wird zwecks einer nicht linearen Zusammenfügung des genannten selektierten Teils M1 und des genannten ersten Schlüssels K1 in einem einzigen sequentiell untrennbaren Schritt.
  17. Anordnung nach Anspruch 16, wobei die genannte Anordnung dritte Eingangsmittel aufweist zum Erhalten eines zweiten Schlüssels K2 und wobei die genannte Umwandlung Folgendes umfasst: – das Spalten des genannten digitalen Eingangsblocks in den genannten selektierten Teil M1 und einen zweiten Teil M2 vor der Durchführung der genannten Zusammenfügung; – das Durchführen einer nicht linearen Funktion g–1 zum Zusammenfügen des genannten zweiten Blocks M2 mit dem genannten zweiten Schlüssel K2 in einem einzigen, sequentiell nicht trennbaren Schritt, wobei ein Datenblock B2 als Ausgang erzeugt wird; wobei die genannte nicht lineare Funktion g–1 die Inverse der genannten nicht linearen Funktion g ist; und – das Bilden kombinierter Daten aus Daten in dem genannten Datenblock B1 und in dem genannten Datenblock B2; wobei der genannte digitale Ausgangsblock von den genannten kombinierten Daten hergeleitet wird.
  18. Anordnung nach Anspruch 16, wobei der genannte Zusammenfügungsschritt die nachfolgenden Verfahrensschritte umfasst: – das Spalten des genannten selektierten Teils M1 in eine erste Anzahl n Subblöcke m0 ,..., mn–1, im Wesentlichen gleicher Länge; – das Spalten des genannten ersten Schlüssels K1 in die genannte erste Anzahl n Subschlüssel k0 ,..., kn–1, im Wesentlichen gleicher Länge, wobei der Subschlüssel ki dem Subblock mi entspricht für i = 0 bis n–1; und – das einzelne Verarbeiten jedes Subblocks der genannten Subblöcke m; dadurch, dass für jeden Subblock der genannten Subblöcke mi eine gleiche nicht lineare Funktion h durchgeführt wird zur nicht linearen Zusammenfügung eines Subblocks bi, hergeleitet von dem genannten Subblock mi mit dem genannten entsprechenden Subschlüssel ki in einem einzigen, sequentiell nicht trennbaren Schritt und dass die genannte Anzahl Ausgangssubblöcke h(bi, ki) erzeugt wird; und – das Kombinieren von Subblöcken ti, hergeleitet von der ersten Anzahl der genannten Ausgangssubblöcke h(bi, ki) zum Bilden des genannten Ddatenblocks B1.
  19. Anordnung nach Anspruch 18, dadurch gekennzeichnet, dass die genannte Funktion h(bi, ki) wie folgt definiert wird:
    Figure 00250001
    wobei die Multiplikation und die inversen Vorgänge eine vorbestimmte GF-Multiplikation und inverse Vorgänge sind.
  20. Anordnung nach Anspruch 19, wobei der genannte Subblock mi acht Datenbits umfasst und wobei das genannte Multiplizieren zweier Elemente b und k von GF(28) Folgendes umfasst: – das Darstellen von b als a0 + a1·D und von k als a2 + a3·D, wobei a0, a1, a2 und a3 Elemente von GF(24) sind, und wobei D ein Element von GF(28) ist, definiert als eine Wurzel eines nicht reduziblen Polynoms k(x) = x2 + x + β über GF(24), wobei β ein Element von GF(24) ist; und – das Berechnen von (a0a2 + a1a3β) + (a1a2 + a0a3 + a1a3)·D; und wobei das Berechnen der Inverse eines Elementes b von GF(28) das Berechnen von (a 2 / 0 + a0a1, + a 2 / 1 β)–1 ((a0 + a1 ) + a1D) umfasst.
DE69721439T 1996-05-20 1997-05-13 Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels Expired - Lifetime DE69721439T2 (de)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
NL1003159 1996-05-20
NL1003159 1996-05-20
PCT/IB1997/000544 WO1997044935A1 (en) 1996-05-20 1997-05-13 Cryptographic method and apparatus for non-linearly merging a data block and a key

Publications (2)

Publication Number Publication Date
DE69721439D1 DE69721439D1 (de) 2003-06-05
DE69721439T2 true DE69721439T2 (de) 2004-03-18

Family

ID=19762893

Family Applications (1)

Application Number Title Priority Date Filing Date
DE69721439T Expired - Lifetime DE69721439T2 (de) 1996-05-20 1997-05-13 Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels

Country Status (5)

Country Link
US (2) US6298136B1 (de)
EP (1) EP0839418B1 (de)
JP (1) JP3992742B2 (de)
DE (1) DE69721439T2 (de)
WO (1) WO1997044935A1 (de)

Families Citing this family (68)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1997044935A1 (en) * 1996-05-20 1997-11-27 Philips Electronics N.V. Cryptographic method and apparatus for non-linearly merging a data block and a key
RU2103829C1 (ru) * 1997-04-02 1998-01-27 Государственное унитарное предприятие "Специализированный центр программных систем "Спектр" Способ шифрования информации, представленной двоичным кодом
WO1999000930A1 (fr) * 1997-11-28 1999-01-07 Otkrytoe Aktsionernoe Obschestvo 'moskovskaya Goro Procede de transformation cryptographique de blocs d'entree de donnees numeriques a l bits en blocs de sortie a l bits
JPH11225138A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 暗号処理装置、暗号処理方法及びその方法を記録した記録媒体
DE19820422A1 (de) * 1998-05-07 1999-11-11 Giesecke & Devrient Gmbh Verfahren zur Authentisierung einer Chipkarte innerhalb eines Nachrichtenübertragungs-Netzwerks
ATE360866T1 (de) 1998-07-02 2007-05-15 Cryptography Res Inc Leckresistente aktualisierung eines indexierten kryptographischen schlüssels
US7292693B1 (en) * 1998-08-13 2007-11-06 Teledyne Technologies Incorporated Deterministically generating block substitution tables which meet a given standard of nonlinearity
US6578061B1 (en) * 1999-01-19 2003-06-10 Nippon Telegraph And Telephone Corporation Method and apparatus for data permutation/division and recording medium with data permutation/division program recorded thereon
FR2789535B1 (fr) * 1999-02-04 2001-09-28 Bull Cp8 Procede de securisation d'un ensemble electronique de cryptographie a cle secrete contre les attaques par analyse physique
US6760440B1 (en) * 1999-12-11 2004-07-06 Honeywell International Inc. One's complement cryptographic combiner
US6807649B1 (en) * 2000-05-23 2004-10-19 Hewlett-Packard Development Company, L.P. Encryption keys for multiple drive fault tolerance
US20020021801A1 (en) * 2000-07-13 2002-02-21 Takeshi Shimoyama Computing apparatus using an SPN structure in an F function and a computation method thereof
US7366300B2 (en) * 2000-12-13 2008-04-29 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7142671B2 (en) * 2000-12-13 2006-11-28 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
US7502463B2 (en) * 2000-12-13 2009-03-10 Broadcom Corporation Methods and apparatus for implementing a cryptography engine
JP4787434B2 (ja) * 2001-08-24 2011-10-05 富士通コンポーネント株式会社 暗号化方法、通信システム、データ入力装置
US7269615B2 (en) 2001-12-18 2007-09-11 Analog Devices, Inc. Reconfigurable input Galois field linear transformer system
US7283628B2 (en) * 2001-11-30 2007-10-16 Analog Devices, Inc. Programmable data encryption engine
US7508937B2 (en) * 2001-12-18 2009-03-24 Analog Devices, Inc. Programmable data encryption engine for advanced encryption standard algorithm
US7076059B1 (en) * 2002-01-17 2006-07-11 Cavium Networks Method and apparatus to implement the data encryption standard algorithm
KR100583635B1 (ko) * 2003-01-24 2006-05-26 삼성전자주식회사 다수의 동작 모드들을 지원하는 암호화 장치
KR100800468B1 (ko) * 2004-01-29 2008-02-01 삼성전자주식회사 저전력 고속 동작을 위한 하드웨어 암호화/복호화 장치 및그 방법
KR20050087271A (ko) * 2004-02-26 2005-08-31 삼성전자주식회사 가변 키 길이를 가지는 초기 라운드 키에 대응하는 암호라운드 키와 복호 라운드 키를 선택적으로 발생하는 키스케쥴 장치
FR2871969B1 (fr) * 2004-06-18 2006-12-01 Sagem Procede et dispositif d'execution d'un calcul cryptographique
US8312551B2 (en) * 2007-02-15 2012-11-13 Harris Corporation Low level sequence as an anti-tamper Mechanism
US7937427B2 (en) * 2007-04-19 2011-05-03 Harris Corporation Digital generation of a chaotic numerical sequence
US8611530B2 (en) * 2007-05-22 2013-12-17 Harris Corporation Encryption via induced unweighted errors
US7921145B2 (en) * 2007-05-22 2011-04-05 Harris Corporation Extending a repetition period of a random sequence
US7995757B2 (en) * 2007-05-31 2011-08-09 Harris Corporation Closed galois field combination
US7974413B2 (en) * 2007-06-07 2011-07-05 Harris Corporation Spread spectrum communications system and method utilizing chaotic sequence
US7962540B2 (en) * 2007-06-07 2011-06-14 Harris Corporation Mixed radix number generator with chosen statistical artifacts
US7970809B2 (en) * 2007-06-07 2011-06-28 Harris Corporation Mixed radix conversion with a priori defined statistical artifacts
US8005221B2 (en) * 2007-08-01 2011-08-23 Harris Corporation Chaotic spread spectrum communications system receiver
US7873828B2 (en) * 2007-08-07 2011-01-18 Optica Technologies, Inc. Method and apparatus for encrypting and decrypting data to/from an ESCON tape system
IL185285A0 (en) * 2007-08-14 2008-01-06 Yeda Res & Dev A method and apparatus for implementing a novel one-way hash function on highly constrained devices such as rfid tags
US7995749B2 (en) 2007-10-30 2011-08-09 Harris Corporation Cryptographic system configured for extending a repetition period of a random sequence
US8189792B2 (en) * 2007-12-28 2012-05-29 Intel Corporation Method and apparatus for performing cryptographic operations
US8180055B2 (en) * 2008-02-05 2012-05-15 Harris Corporation Cryptographic system incorporating a digitally generated chaotic numerical sequence
US8363830B2 (en) 2008-02-07 2013-01-29 Harris Corporation Cryptographic system configured to perform a mixed radix conversion with a priori defined statistical artifacts
US8040937B2 (en) * 2008-03-26 2011-10-18 Harris Corporation Selective noise cancellation of a spread spectrum signal
US8139764B2 (en) * 2008-05-06 2012-03-20 Harris Corporation Closed galois field cryptographic system
US8320557B2 (en) 2008-05-08 2012-11-27 Harris Corporation Cryptographic system including a mixed radix number generator with chosen statistical artifacts
US8145692B2 (en) * 2008-05-29 2012-03-27 Harris Corporation Digital generation of an accelerated or decelerated chaotic numerical sequence
US8200728B2 (en) * 2008-05-29 2012-06-12 Harris Corporation Sine/cosine generator
US8064552B2 (en) * 2008-06-02 2011-11-22 Harris Corporation Adaptive correlation
US8068571B2 (en) * 2008-06-12 2011-11-29 Harris Corporation Featureless coherent chaotic amplitude modulation
US8325702B2 (en) * 2008-08-29 2012-12-04 Harris Corporation Multi-tier ad-hoc network in which at least two types of non-interfering waveforms are communicated during a timeslot
US8165065B2 (en) * 2008-10-09 2012-04-24 Harris Corporation Ad-hoc network acquisition using chaotic sequence spread waveform
US8406276B2 (en) * 2008-12-29 2013-03-26 Harris Corporation Communications system employing orthogonal chaotic spreading codes
US8351484B2 (en) * 2008-12-29 2013-01-08 Harris Corporation Communications system employing chaotic spreading codes with static offsets
US8457077B2 (en) * 2009-03-03 2013-06-04 Harris Corporation Communications system employing orthogonal chaotic spreading codes
US8428102B2 (en) * 2009-06-08 2013-04-23 Harris Corporation Continuous time chaos dithering
US8509284B2 (en) * 2009-06-08 2013-08-13 Harris Corporation Symbol duration dithering for secured chaotic communications
US8428103B2 (en) * 2009-06-10 2013-04-23 Harris Corporation Discrete time chaos dithering
US8385385B2 (en) 2009-07-01 2013-02-26 Harris Corporation Permission-based secure multiple access communication systems
US8428104B2 (en) 2009-07-01 2013-04-23 Harris Corporation Permission-based multiple access communications systems
US8363700B2 (en) 2009-07-01 2013-01-29 Harris Corporation Rake receiver for spread spectrum chaotic communications systems
US8379689B2 (en) * 2009-07-01 2013-02-19 Harris Corporation Anti-jam communications having selectively variable peak-to-average power ratio including a chaotic constant amplitude zero autocorrelation waveform
US8406352B2 (en) 2009-07-01 2013-03-26 Harris Corporation Symbol estimation for chaotic spread spectrum signal
US8369376B2 (en) * 2009-07-01 2013-02-05 Harris Corporation Bit error rate reduction in chaotic communications
US8340295B2 (en) * 2009-07-01 2012-12-25 Harris Corporation High-speed cryptographic system using chaotic sequences
US8369377B2 (en) 2009-07-22 2013-02-05 Harris Corporation Adaptive link communications using adaptive chaotic spread waveform
US8848909B2 (en) * 2009-07-22 2014-09-30 Harris Corporation Permission-based TDMA chaotic communication systems
US9544133B2 (en) * 2009-12-26 2017-01-10 Intel Corporation On-the-fly key generation for encryption and decryption
US8345725B2 (en) 2010-03-11 2013-01-01 Harris Corporation Hidden Markov Model detection for spread spectrum waveforms
EP2553863A1 (de) * 2010-03-29 2013-02-06 Intel Corporation Verfahren und vorrichtung für administratorbetriebene profilaktualisierung
US9584310B2 (en) * 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
US11310043B2 (en) * 2019-01-03 2022-04-19 Rolls-Royce Corporation Frequency encryption for communication signals

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3244537A1 (de) * 1982-12-02 1984-06-07 Ant Nachrichtentech Verfahren zur ver- und entschluesselung von datenbloecken
US4947447A (en) * 1986-04-24 1990-08-07 Hitachi, Ltd. Method for data coding
EP0406457A1 (de) * 1989-07-03 1991-01-09 Matthias Zahn Verfahren zum Verschlüsseln und Entschlüsseln von Daten
US5003596A (en) * 1989-08-17 1991-03-26 Cryptech, Inc. Method of cryptographically transforming electronic digital data from one form to another
DE4016203A1 (de) * 1990-05-19 1991-11-21 Rolf Prof Dr Trautner Verfahren zur blockweisen chiffrierung von digitalen daten
JP2862030B2 (ja) * 1991-06-13 1999-02-24 三菱電機株式会社 暗号化方式
US5398284A (en) * 1993-11-05 1995-03-14 United Technologies Automotive, Inc. Cryptographic encoding process
US5778074A (en) * 1995-06-29 1998-07-07 Teledyne Industries, Inc. Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes
US5757923A (en) * 1995-09-22 1998-05-26 Ut Automotive Dearborn, Inc. Method of generating secret identification numbers
WO1997044935A1 (en) * 1996-05-20 1997-11-27 Philips Electronics N.V. Cryptographic method and apparatus for non-linearly merging a data block and a key

Also Published As

Publication number Publication date
US7079651B2 (en) 2006-07-18
DE69721439D1 (de) 2003-06-05
US20020034295A1 (en) 2002-03-21
JP3992742B2 (ja) 2007-10-17
EP0839418A1 (de) 1998-05-06
EP0839418B1 (de) 2003-05-02
WO1997044935A1 (en) 1997-11-27
US6298136B1 (en) 2001-10-02
JPH11509940A (ja) 1999-08-31

Similar Documents

Publication Publication Date Title
DE69721439T2 (de) Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels
DE69929251T2 (de) Verschlüsselungssystem mit einem schlüssel veränderlicher länge
DE69916160T2 (de) Vorrichtung und Verfahren zur kryptographischen Verarbeitung sowie Aufzeichnungsmedium zum Aufzeichnen eines kryptographischen Verarbeitungsprogramms zur Ausführung einer schnellen kryptographischen Verarbeitung ohne Preisgabe der Sicherheit
DE19827904C2 (de) Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung
DE69931606T2 (de) Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE69728465T2 (de) Nichtparalleler Mehrzyklus-Verschlüsselungsapparat
DE60111746T2 (de) Lineartransformation für symmetrische verschlüsselungssysteme
DE60024739T2 (de) Generator eines erweiterten Schlüssels, Verschlüsselungs/Entschlüsselungsvorrichtung, Verfahren zur Erzeugung eines erweiterten Schlüssels und Speichermedium
DE60119410T2 (de) Vorrichtung und Verfahren zur Blockverschlüsselung und zur Entschlüsselung
DE69736148T2 (de) Verfahren und Einrichtung zur Datenverschlüsselung
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE69433257T2 (de) Verfahren und Kommunikationssystem unter Verwendung einer Verschlüsselungseinrichtung
EP1298834B1 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE60315700T2 (de) Verfahren zum erzeugen einer stromverschlüsselung mit mehreren schlüsseln
WO1996032791A1 (de) Verfahren zum rechnergestützten austausch kryptographischer schlüssel zwischen einer benutzercomputereinheit u und einer netzcomputereinheit n
CH660822A5 (de) Zufallsprimzahlen-erzeugungsmittel in einer mit oeffentlichem schluessel arbeitenden daten-verschluesselungsanlage.
DE69838258T2 (de) Public-Key-Datenübertragungssysteme
EP1105998B1 (de) Verfahren und anordnung zur bildung eines geheimen kommunikationsschlüssels zu einem zuvor ermittelten asymmetrischen kryptographischen schlüsselpaar
DE69933108T2 (de) Synchrone bitstromverschlüsselung
DE60221850T2 (de) Verfahren und vorrichtung zur datenverschlüsselung
DE69729297T2 (de) Verschlüsselungsvorrichtung für binärkodierte nachrichten
DE602004007904T2 (de) Verschlüsselungsverfahren und -system
DE69333257T2 (de) Anlage für Signalschaltung und -verarbeitung
DE60301750T2 (de) Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8327 Change in the person/name/address of the patent owner

Owner name: IRDETO B.V., HOOFDDORP, NL

8328 Change in the person/name/address of the agent

Representative=s name: VIERING, JENTSCHURA & PARTNER, 81675 MUENCHEN