DE60117345T2 - Verfahren und Vorrichtung zur Vorbereitung eines erweiterten Schlüssels, Aufzeichnungsmedium und Computerprogramm - Google Patents

Verfahren und Vorrichtung zur Vorbereitung eines erweiterten Schlüssels, Aufzeichnungsmedium und Computerprogramm Download PDF

Info

Publication number
DE60117345T2
DE60117345T2 DE60117345T DE60117345T DE60117345T2 DE 60117345 T2 DE60117345 T2 DE 60117345T2 DE 60117345 T DE60117345 T DE 60117345T DE 60117345 T DE60117345 T DE 60117345T DE 60117345 T2 DE60117345 T2 DE 60117345T2
Authority
DE
Germany
Prior art keywords
bit
intermediate data
data
preparing
key
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
DE60117345T
Other languages
English (en)
Other versions
DE60117345D1 (de
Inventor
Takeshi Nakahara-ku Kawasaki Shimoyama
Koichi Nakahara-ku Kawasaki Ito
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.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
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 Fujitsu Ltd filed Critical Fujitsu Ltd
Application granted granted Critical
Publication of DE60117345D1 publication Critical patent/DE60117345D1/de
Publication of DE60117345T2 publication Critical patent/DE60117345T2/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/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/12Details relating to cryptographic hardware or logic circuitry

Description

  • Die vorliegende Erfindung betrifft eine Vorrichtung und ein Verfahren zum Vorbereiten von erweiterten Schlüsseln sowie ein Aufzeichnungsmedium und ein Computerprogramm, und im besonderen eine Vorrichtung zum Vorbereiten von erweiterten Schlüsseln, um einen erweiterten Schlüssel sicher und mit hoher Geschwindigkeit vorzubereiten, zur Verwendung in dem Fall, wenn ein Kryptosystem mit Gemeinschaftsschlüssel zur Anwendung kommt; einen Prozeß zum Vorbereiten solch eines erweiterten Schlüssels; und ein Aufzeichnungsmedium und ein Computerprogramm, die dafür verwendet werden.
  • Ein Kryptosystem mit Gemeinschaftsschlüssel ist bekannt, bei dem ein kryptographischer Schlüssel sowohl auf der Sende- als auch auf der Empfangsseite gemeinsam genutzt wird. 8 ist eine erläuternde Ansicht zum Erläutern einer kryptographischen Verarbeitung gemäß solch einem System. Die kryptographische Einrichtung umfaßt, wie in 8 gezeigt, ein Vorbereitungsmittel von erweiterten Schlüsseln zum Vorbereiten eines erweiterten Schlüssels als kryptographischen Schlüssel und ein Mittel zur kryptographischen Verarbeitung zum Verschlüsseln eines Klartextes unter Verwendung von solch einem erweiterten Schlüssel.
  • Genauer gesagt, da n kryptographische Verarbeitungsstufen, d. h. kryptographische Verarbeitung 1 bis kryptographische Verarbeitung n, in der Einrichtung zur kryptographischen Verarbeitung implementiert werden, werden alle Schlüssel vom erweiterten Schlüssel 1 bis zum erweiterten Schlüssel n, die für die n Stufen der kryptographischen Verarbeitung erforderlich sind, in dem Vorbereitungsmittel von erweiterten Schlüsseln sukzessive vorbereitet.
  • Daher ist es sehr wichtig, wie schnell ein sicherer erweiterter Schlüssel durch das Vorbereitungsmittel von erweiterten Schlüsseln im Falle des Einsatzes eines Kryptosystems mit Gemeinschaftsschlüssel vorbereitet wird.
  • Diesbezüglich werden gemäß einem DES-(Data Encryption Standard: Datenverschlüsselungsnorm)-Kryptographen erweiterte Schlüssel 1 bis n von einem kryptographischen Schlüssel lediglich durch zyklische Verschiebung und Bit-Umstellung vorbereitet, wodurch eine Vorbereitung von erweiterten Schlüsseln mit hoher Geschwindigkeit realisiert wird, wie in 9 gezeigt.
  • Ferner ist ein Prozeß zum Vorbereiten von erweiterten Schlüsseln durch MARS als Prozeß zum Vorbereiten von sichereren erweiterten Schlüsseln bekannt gewesen ("A candidate cipher for AES", The First AES Conference, 1998, Seiten 1–9).
  • Gemäß dem oben beschriebenen DES-Kryptographen wird jedoch ein erweiterter Schlüssel nur durch zyklische Verschiebung und Bit-Umstellung vorbereitet, wie es durch das Zeichen ※ in 9 gekennzeichnet ist, so daß es Probleme hinsichtlich der Sicherheit gibt. Genauer gesagt, selbst wenn Informationen bezüglich eines Schlüssels von der Anzahl n von erweiterten Schlüsseln, die durch die Vorbereitungseinrichtung von erweiterten Schlüsseln vorbereitet wurden, nach außen gedrungen sind, wird über einen kryptographischen Schlüssel selbst, der einer Vorbereitungseinrichtung von erweiterten Schlüsseln einzugeben ist, in diesem DES-Kryptosystem Klarheit erlangt, wodurch Sicherheitsprobleme auftreten.
  • Andererseits können gemäß der oben beschriebenen MARS-Vorbereitungsvorrichtung von erweiterten Schlüsseln Informationen über kryptographische Schlüssel nicht einfach aus Informationen über erweiterte Schlüssel gewonnen werden, so daß es kein Problem mit der Sicherheit wie in dem DES-Kryptosystem gibt. Allerdings müssen bei dem Prozeß zum Vorbereiten eines erweiterten Schlüssels viele Berechnungen wiederholt werden, so daß eine längere Verarbeitungszeit erforderlich ist.
  • Somit liegt das Problem darin, wie die Verarbeitungszeit bei dem Prozeß zum Vorbereiten eines sicheren erweiterten Schlüssels verringert werden kann, der zur Anwendung eines Kryptosystems mit Gemeinschaftsschlüssel erforderlich ist.
  • EP-A-1001398 offenbart eine Verschlüsselungsvorrichtung, die versehen ist mit einem Teil zur schlüsselabhängigen linearen Transformation, der Eingangsdaten der nichtlinearen Funktion auf der Basis von Schlüsseldaten, die in einem Schlüsselspeicherteil gespeichert sind, linear transformiert; einem Trennungsteil, der die Ausgangsdaten des Teils zur schlüsselabhängigen linearen Transformation in eine Vielzahl von Bitketten trennt; ersten Teilen zur nichtlinearen Transformation, die diese getrennten Bitketten jeweilig nichtlinear transformieren; einem ersten Teil zur linearen Transformation, der die jeweiligen ausgegebenen Bitketten der ersten Teile zur nichtlinearen Transformation in Zuordnung zueinander linear transformiert; zweiten Teilen zur nichtlinearen Transformation, die einige oder alle der ausgegebenen Bitketten des ersten Teils zur linearen Transformation nichtlinear transformieren; und einem Kombinationsteil, der die ausgegebenen Bitketten der zweiten Teile zur nichtlinearen Transformation zu Ausgangsdaten des Teils der nichtlinearen Funktion kombiniert. Mit anderen Worten: die Verschlüsselungsvorrichtung transformiert Eingangsdaten linear, trennt die Daten, die linear transformiert sind, in eine Vielzahl von Bitketten, transformiert jede Bitkette nichtlinear, transformiert die nichtlinear transformierten Bitketten linear, transformiert ferner die linear transformierte Bitkette nichtlinear und kombiniert das Resultat. Hierbei umfaßt ein Objekt, das nichtlinear und linear zu transformieren ist, Eingangsdaten entsprechend einem Klartext.
  • XP001060386: AES PROPOSAL: RIJNDAEL von DAEMEN J; RIJMEN V, Seiten 1–45, veröffentlicht am 03.09.1999, offenbart ein Schema zum Vorbereiten von erweiterten Schlüsseln, bei dem eine Bitkette eines Verschlüsselungsschlüssels in Bitgruppen geteilt wird, jede Bitgruppe unter Verwendung von verschiedenen Konstanten bearbeitet wird, Zwischendatengruppen vorbereitet werden, ein Item von Zwischendaten auf der Basis der Nummer einer gegenwärtigen Stufe selektiert wird und der erweiterte Schlüssel durch irreversible Konvertierung der Zwischendaten erhalten wird. Jedoch hängt gemäß diesem Schema die Zeit, die zum Vorbereiten jedes erweiterten Schlüssels benötigt wird, von der Zeit ab, die zum Vorbereiten der erweiterten Schlüssel von vorhergehenden Stufen nötig ist. Somit ist die Geschwindigkeit des Erhaltens der erweiterten Schlüssel begrenzt.
  • Eine Überlegung der vorliegenden Erfindung ist das Vorsehen einer Vorrichtung zum Vorbereiten von erweiterten Schlüsseln, um einen erweiterten Schlüssel sicher und mit hoher Geschwindigkeit vorzubereiten, zur Verwendung in dem Fall, wenn ein Kryptosystem mit Gemeinschaftsschlüssel zur Anwendung kommt; eines Verfahrens zum Vorbereiten solch eines erweiterten Schlüssels; und eines Aufzeichnungsmediums und eines Programms, die dafür verwendet werden.
  • Gemäß einem ersten Aspekt der vorliegenden Erfindung ist eine Vorrichtung zum Vorbereiten von erweiterten Schlüsseln vorgesehen, bei der erweiterte Schlüssel in einem Kryptosystem mit Gemeinschaftsschlüssel in sukzessiven Stufen von einem eingegebenen kryptographischen Schlüssel vorbereitet werden, mit:
    einer Teilungseinheit, die eine Bitkette des kryptographischen Schlüssels in eine Vielzahl von Bitgruppen teilt, wobei jede Bitgruppe eine vorbestimmte Bitlänge hat;
    einer Zwischendatenvorbereitungseinheit, die eine Vielzahl von Zwischendatengruppen von den Bitgruppen durch eine vorbestimmte Operation vorbereitet, wobei verschiedene Konstanten gemäß dem Wert einer ganzen Zahl für jede Bitgruppe angewendet werden, bei der jede der Zwischendatengruppen aus einer Kombination aus einer Vielzahl von ersten Zwischendaten gebildet ist, die jeweils drei verschiedene Werte haben;
    einer Selektionseinheit, die in jeder Stufe einen der drei verschiedenen Werte jeweils von den ersten Zwischendaten in Abhängigkeit von einer Nummer der gegenwärtigen Stufe selektiert, um zweite Zwischendaten zu bestimmen; und
    einer Vorbereitungseinheit von erweiterten Schlüsseln, die in jeder Stufe den erweiterten Schlüssel vorbereitet, der eine Bitlänge hat, die länger als die Bitkette des kryptographischen Schlüssels ist, indem die zweiten Zwischendaten irreversibel konvertiert werden.
  • Gemäß der Erfindung wird entsprechend dem ersten Aspekt die Binärzeichenkette des kryptographischen Schlüssels in eine Vielzahl von Elementen oder Gruppen geteilt, die jeweils eine vorbestimmte Bitlänge umfassen, und eine Vielzahl von Zwischendaten wird vorbereitet, indem viele Male eine Operation zur Anwendung kommt, bei der eine vorbestimmte Konstante bei den jeweiligen Elementen verwendet wird. Dann wird für jede Stufe eine Vielzahl von Zwischendaten entsprechend der Nummer der gegenwärtigen Stufe, die bei der Vorbereitung der erweiterten Schlüssel erreicht wurde, von der vorbereiteten Vielzahl der Zwischendaten selektiert; und der erweiterte Schlüssel für jene Stufe wird vorbereitet, indem die selektierte Vielzahl der Zwischendaten irreversibel konvertiert wird, wodurch solche erweiterten Schlüssel, die in dem Fall erforderlich sind, wenn ein Kryptosystem mit Gemeinschaftsschlüssel zum Einsatz kommt, mit hoher Geschwindigkeit sicher vorbereitet werden können.
  • Gemäß einem zweiten Aspekt der vorliegenden Erfindung ist ein Verfahren zum Vorbereiten von erweiterten Schlüsseln vorgesehen, bei dem erweiterte Schlüssel in einem Kryptosystem mit Gemeinschaftsschlüssel in sukzessiven Stufen von einem kryptographischen Schlüssel vorbereitet werden, mit den Schritten:
    Teilen einer Bitkette des kryptographischen Schlüssels in eine Vielzahl von Bitgruppen, wobei jede Bitgruppe eine vorbestimmte Bitlänge hat; und
    Vorbereiten einer Vielzahl von Zwischendatengruppen von den Bitgruppen durch eine vorbestimmte Operation, wobei verschiedene Konstanten gemäß dem Wert einer ganzen Zahl für jede Bitgruppe angewendet werden, bei dem jede der Zwischendatengruppen aus einer Kombination aus einer Vielzahl von ersten Zwischendaten gebildet ist, die jeweils drei verschiedene Werte haben; und in jeder Stufe:
    Selektieren eines der drei verschiedenen Werte jeweils von den ersten Zwischendaten in Abhängigkeit von einer Nummer der gegenwärtigen Stufe, um zweite Zwischendaten zu bestimmen; und
    Vorbereiten des erweiterten Schlüssels, der eine Bitlänge hat, die länger als die Bitkette des kryptographischen Schlüssels ist, indem die zweiten Zwischendaten irreversibel konvertiert werden.
  • Gemäß dem zweiten Aspekt wird eine Binärzeichen-(Bit)-Kette des kryptographischen Schlüssels in eine Vielzahl von Elementen oder Gruppen geteilt, die jeweils eine vorbestimmte Bitlänge umfassen, und eine Vielzahl von Zwischendaten wird vorbereitet, indem viele Male eine vorbestimmte Konstante auf die jeweiligen Elementen angewendet wird. Dann wird in jeder sukzessiven Stufe zum Vorbereiten von erweiterten Schlüsseln eine Vielzahl von Zwischendaten entsprechend der Nummer der erreichten Stufe (der gegenwärtigen Stufe) von der vorbereiteten Vielzahl der Zwischendaten selektiert; und der erweiterte Schlüssel von jener Stufe wird vorbereitet, indem die selektierte Vielzahl der Zwischendaten irreversibel konvertiert wird, wodurch solche erweiterten Schlüssel, die in dem Fall erforderlich sind, wenn ein Kryptosystem mit Gemeinschaftsschlüssel zum Einsatz kommt, mit hoher Geschwindigkeit sicher vorbereitet werden können.
  • Gemäß einem dritten Aspekt der vorliegenden Erfindung ist ein computerlesbares Aufzeichnungsmedium vorgesehen, in dem ein Programm zum Vorbereiten von erweiterten Schlüsseln aufgezeichnet ist, worin erweiterte Schlüssel in einem Kryptosystem mit Gemeinschaftsschlüssel in sukzessiven Stufen von einem eingegebenen kryptographischen Schlüssel vorbereitet werden, welches Programm ein Programmcodemittel umfaßt, das dann, wenn es ausgeführt wird, folgendes vollzieht.
  • Teilen einer Bitkette des kryptographischen Schlüssels in eine Vielzahl von Bitgruppen, wobei jede Bitgruppe eine vorbestimmte Bitlänge hat; und
    Vorbereiten einer Vielzahl von Zwischendatengruppen von den Bitgruppen durch eine vorbestimmte Operation, wobei verschiedene Konstanten gemäß dem Wert einer ganzen Zahl für jede Bitgruppe angewendet werden, bei dem jede der Zwischendatengruppen aus einer Kombination aus einer Vielzahl von ersten Zwischendaten gebildet ist, die jeweils drei verschiedene Werte haben; und in jeder Stufe:
    Selektieren eines der drei verschiedenen Werte jeweils von den ersten Zwischendaten in Abhängigkeit von der Nummer der gegenwärtigen Stufe, um zweite Zwischendaten zu bestimmen; und
    Vorbereiten des erweiterten Schlüssels, der eine Bitlänge hat, die länger als die Bitkette des kryptographischen Schlüssels ist, indem die zweiten Zwischendaten irreversibel konvertiert werden.
  • Gemäß der Erfindung wird entsprechend dem dritten Aspekt eine Binärzeichenkette des kryptographischen Schlüssels in eine Vielzahl von Elementen (Gruppen) geteilt, die jeweils eine vorbestimmte Bitlänge umfassen, und eine Vielzahl von Zwischendaten wird vorbereitet, indem eine Operation viele Male zur Anwendung kommt, bei der eine vorbestimmte Konstante bei den jeweiligen Elementen verwendet wird. In jeder Stufe wird eine Vielzahl von Zwischendaten entsprechend der Nummer der gegenwärtigen Stufe von der vorbereiteten Vielzahl der Zwischendaten selektiert; und der erweiterte Schlüssel der gegenwärtigen Stufe wird vorberei tet, indem die vorbestimmte Bitlänge irreversibel konvertiert wird; eine Vielzahl von Zwischendaten wird vorbereitet, indem eine Operation viele Male angewendet wird, bei der eine vorbestimmte Konstante bei den jeweiligen Elementen verwendet wird; eine Vielzahl von Zwischendaten entsprechend einer Stufennummer der erweiterten Schlüssel wird von der vorbereiteten Vielzahl der Zwischendaten selektiert; und die erweiterten Schlüssel entsprechend der Nummer der Stufen werden vorbereitet, indem die selektierte Vielzahl von Zwischendaten irreversibel konvertiert wird, wodurch solche erweiterten Schlüssel, die in dem Fall erforderlich sind, wenn das Kryptosystem mit Gemeinschaftsschlüssel zum Einsatz kommt, mit hoher Geschwindigkeit sicher vorbereitet werden können.
  • Ein anderer Aspekt der Erfindung ist ein Programm, wie es in dem unabhängigen Anspruch 18 definiert ist.
  • Unter Bezugnahme auf die beiliegenden Zeichnungen folgt nun beispielhaft eine eingehende Beschreibung einer bevorzugten Ausführungsform der vorliegenden Erfindung, in denen:
  • 1 ein Blockdiagramm ist, das die gesamte Konstruktion einer kryptographischen Einrichtung zeigt, die in einer Ausführungsform der Erfindung verwendet wird;
  • 2 ein Flußdiagramm ist, das Verarbeitungsschritte zum Vorbereiten eines erweiterten Schlüssels von einem kryptographischen Schlüssel mittels der in 1 gezeigten Einrichtung zum Verarbeiten von erweiterten Schlüsseln darstellt;
  • 3 ein erläuterndes Diagramm zum Erläutern eines Konzeptes zum Vorbereiten von Zwischendaten mittels der in
  • 1 gezeigten Einrichtung zum Vorbereiten von Zwischendaten ist;
  • 4(a) und 4(b) erläuternde Diagramme jeweils zum Erläutern eines Konzeptes zum Vorbereiten eines erweiterten Schlüssels von den Zwischendaten mittels der in 1 gezeigten Vorrichtung zum Vorbereiten von erweiterten Schlüsseln sind;
  • 5(a), 5(b) und 5(c) erläuternde Diagramme jeweils zum Erläutern der Selektion von Daten mittels einer Einrichtung zum Bestimmen eines Selektionswertes sowie der Neuanordnung von Daten mittels einer Datenneuanordnungsverarbeitungseinrichtung sind, die in 4(a) und 4(b) gezeigt sind;
  • 6(a), 6(b) und 6(c) erläuternde Diagramme (Nr. 1) jeweils zum Erläutern eines Beispiels für Operationen für eine Funktion des nichtlinearen Typs sind, die durch die in 1 gezeigte Zwischendatenvorbereitungseinrichtung durchgeführt werden;
  • 7(d) und 7(e) erläuternde Diagramme (Nr. 2) jeweils zum Erläutern eines anderen Beispiels für Operationen für die Funktion des nichtlinearen Typs sind, die durch die in 1 gezeigte Zwischendatenvorbereitungseinrichtung durchgeführt werden;
  • 8 ein erläuterndes Diagramm zum Erläutern der kryptographischen Verarbeitung mittels Kryptographie mit gewöhnlichem Gemeinschaftsschlüssel ist; und
  • 9 ein Blockdiagramm ist, das einen herkömmlichen Algorithmus auf der Basis der DES-Kryptographie zeigt. Zunächst wird die gesamte Konstruktion der kryptographischen Einrichtung beschrieben, die in der vorliegenden Ausführungsform verwendet wird. 1 ist ein Blockdia gramm, das die gesamte Konstruktion der kryptographischen Einrichtung 1 zeigt, die in der vorliegenden Ausführungsform verwendet wird. Die kryptographische Einrichtung 1 ist solch ein Typ, wie in 1 gezeigt, bei dem n erweiterte Schlüssel 1 bis n von einem einzelnen kryptographischen Schlüssel in dem Fall vorbereitet werden, wenn ein Klartext oder der kryptographische Schlüssel eingegeben wird, und der Klartext unter Verwendung der n erweiterten Schlüssel verschlüsselt wird.
  • Die kryptographische Einrichtung 1 umfaßt eine Einrichtung zur kryptographischen Verarbeitung 2 zum Bewirken der kryptographischen Verarbeitung eines Klartextes und eine Einrichtung zur Verarbeitung von erweiterten Schlüsseln 3 zum Vorbereiten von erweiterten Schlüsseln 1 bis n, die in der Einrichtung zur kryptographischen Verarbeitung 2 zur Verschlüsselung erforderlich sind.
  • Die Einrichtung zur kryptographischen Verarbeitung 2 führt eine kryptographische Verarbeitung (1) bis (n) in n Stufen unter Verwendung der erweiterten Schlüssel 1 bis n aus, um einen verschlüsselten Text vorzubereiten, der dem Klartext entspricht, und der resultierende verschlüsselte Text wird ausgegeben. Bei der n-stufigen kryptographischen Verarbeitung (1) bis (n) wird jede kryptographische Verarbeitung ausgeführt, nachdem die erweiterten Schlüssel 1 bis n empfangen sind, die in der Einrichtung zur Verarbeitung von erweiterten Schlüsseln 3 vorbereitet wurden, und der verschlüsselte Text wird von der letzten Stufe ausgegeben, in der die kryptographische Verarbeitung (n) ausgeführt wird.
  • Die Einrichtung zur Verarbeitung von erweiterten Schlüsseln 3 bereitet die erweiterten Schlüssel 1 bis n vor, die der Einrichtung zur kryptographischen Verarbeitung 2 zuzuführen sind, und zwar von einem kryptographischen Schlüssel, der eingegeben worden ist, und ist versehen mit einer Zwischendatenvorbereitungseinrichtung 4 und einer Einrichtung zur Vorbereitung von erweiterten Schlüsseln 5. Es sei erwähnt, daß die vorliegende Ausführungsform der Erfindung dadurch gekennzeichnet ist, daß ein erweiterter Schlüssel vorbereitet wird, indem zuerst Zwischendaten unter Verwendung der Zwischendatenvorbereitungseinrichtung 4 vorbereitet werden und dann die erweiterten Schlüssel unter Verwendung der Zwischendaten vorbereitet werden, anders als bei der herkömmlichen Technik, bei der ein erweiterter Schlüssel einfach von einem kryptographischen Schlüssel vorbereitet wird.
  • Die Zwischendatenvorbereitungseinrichtung 4 ist eine Verarbeitungssektion zum Vorbereiten von Zwischendaten, die aus jeweiligen Elementen ai, bi, ci und di gebildet sind (i = 0, 1 und 2), zu der Zeit, wenn ein kryptographischer Schlüssel eingegeben wird. In der vorliegenden Ausführungsform wird der Einfachheit halber der Fall beschrieben, bei dem Zwischendaten a0 bis a2, b0 bis b2, c0 bis c2 und d0 bis d2 in dem Fall vorbereitet werden, wenn "i = 0, 1 und 2" ist. Während später eine eingehendere Erläuterung erfolgt, werden Zwischendaten mittels einer Funktion des nichtlinearen Typs, einer Exklusiv-ODER-Operation, der Addition und der Multiplikation in der Zwischendatenvorbereitungseinrichtung 4 vorbereitet.
  • Die Einrichtung zur Vorbereitung von erweiterten Schlüsseln 5 ist eine Verarbeitungssektion zum Vorbereiten von erweiterten Schlüsseln in einer Anzahl, die der spezifizierten Nummer r von Stufen entspricht, von den Zwischen daten, die durch die Zwischendatenvorbereitungseinrichtung 4 vorbereitet worden sind. Genauer gesagt, jeweils eines der Elemente (zum Beispiel a1, b0, c1 und d2) wird von den jeweiligen Elementen a0 bis a2, b0 bis b2, c0 bis c2 und d0 bis d2 selektiert; die so selektierten jeweiligen Elemente werden neu angeordnet (zum Beispiel in der Ordnung b0, a1, d2 und c1); und eine vorbestimmte Berechnung wird an den neu angeordneten Elementen vorgenommen, um die erweiterten Schlüssel 1 bis n vorzubereiten.
  • Als nächstes werden unten Verarbeitungsschritte zum Vorbereiten von erweiterten Schlüsseln von einem kryptographischen Schlüssel mittels der Einrichtung zur Verarbeitung von erweiterten Schlüsseln 3 beschrieben, die in 1 gezeigt ist. Diesbezüglich ist 2 ein Flußdiagramm, das Verarbeitungsschritte zum Vorbereiten von erweiterten Schlüsseln von einem kryptographischen Schlüssel unter Verwendung der in 1 gezeigten Einrichtung zur Verarbeitung von erweiterten Schlüsseln 3 zeigt.
  • Wenn Klartext zusammen mit einem kryptographischen Schlüssel (Benutzerschlüssel) durch einen Nutzer eingegeben wird (Schritt S1), wie in 2 gezeigt, wird der kryptographische Schlüssel in der Zwischenvorbereitungseinrichtung 4 inkorporiert (aufgenommen).
  • Danach teilt die Zwischenverarbeitungseinrichtung 4 Binärzeichenketten des kryptographischen Schlüssels in Daten k0 bis k7 von acht Gruppen, und eine Operation, bei der eine Funktion des nichtlinearen Typs M zur Anwendung kommt, wird an den Daten k0 bis k7 ausgeführt, um Daten k0' bis k7' zu erlangen (Schritt S2).
  • Dann wird eine Konstante jeweilig zu den geradzahligen Daten k0', k2', k4' und k6' addiert (Schritt S3), während die ungeradzahligen Daten k1', k3', k5' und k7' jeweilig mit der Konstante multipliziert werden (Schritt S4), wonach eine Exklusiv-ODER-Operation bezüglich der Resultate der Schritte S3 und S4 implementiert wird (Schritt S5), und dann wird die Funktion des nichtlinearen Typs M auf die Resultate der Schritte angewendet (Schritt S6), wodurch Zwischendaten ai bis di vorbereitet werden. Da i Werte von 0, 1 und 2 annimmt, werden bei diesem Beispiel Zwischendaten a0 bis a2, b0 bis b2, c0 bis c2 und d0 bis d2 erhalten.
  • Wenn danach die Nummer r von Stufen von erweiterten Schlüsseln eingegeben wird (Schritt S7), werden entsprechende Daten von den Zwischendaten selektiert, die bereits vorbereitet worden sind (Schritt S8), wodurch die selektierten Daten gemäß der Nummer r umgestellt werden (Schritt S9). Dann wird eine irreversible Konvertierung G auf die Zwischendaten nach der Umstellung angewendet (Schritt S10), um einen erweiterten Schlüssel der r-ten Stufe auszugeben (Schritt S11).
  • In dem Fall, wenn ein anderer erweiterter Schlüssel vorzubereiten ist (Schritt S12; JA), kehrt der Prozeß zu dem oben beschriebenen Schritt S7 zurück, und dieselbe Verarbeitung wird wiederholt, während der Vorbereitungsprozeß des erweiterten Schlüssels in dem Fall vollendet ist, wenn eine Vorbereitung der erforderlichen erweiterten Schlüssel abgeschlossen ist (Schritt S12; NEIN).
  • Wenn die Verarbeitung bei den obigen Schritten S1 bis S6 erfolgt, können die Zwischendaten von ai bis di vorbereitet werden, wie oben beschrieben, wobei i = 0, 1 und 2 ist. Wenn die Verarbeitung bei den Schritten S7 bis S12 implementiert wird, können ferner erweiterte Schlüssel, auf die eine irreversible Konvertierung angewendet worden ist, mit hoher Geschwindigkeit unter Verwendung der Zwischendaten vorbereitet werden, die bei den Schritten S1 bis S6 vorbereitet wurden.
  • Als nächstes wird ein Konzept zum Vorbereiten von Zwischendaten mittels der in 1 gezeigten Zwischendatenvorbereitungseinrichtung 4 eingehender beschrieben. Diesbezüglich ist 3 ein erläuterndes Diagramm zum Erläutern des Konzeptes zum Vorbereiten von Zwischendaten mittels der in 1 gezeigten Zwischendatenvorbereitungseinrichtung 4. In 3 bezeichnen die Symbole "k0 bis k7" Binärzeichenketten, die erhalten werden, indem Bitketten eines kryptographischen Schlüssels jeweilig in acht Gruppen geteilt werden, ist "M" eine Operation einer Funktion des nichtlinearen Typs, bedeutet "+" Addition einer Konstante, bedeutet "×" Multiplikation einer Konstante und kennzeichnen die Symbole "ai bis di" Zwischendaten.
  • Die Zwischendatenvorbereitungseinrichtung 4 teilt Binärzeichenketten des kryptographischen Schlüssels in Daten k0 bis k7 von acht Gruppen, wie in 3 gezeigt. Wenn der kryptographische Schlüssel zum Beispiel 128 (32 × 4) Bits umfaßt, entsprechen die ersten 32 Bits k0, entsprechen die nächsten 32 Bits k1, werden die folgenden 32 Bits durch k2 identifiziert und werden die nächstfolgenden 32 Bits durch k3 identifiziert, wobei die folgenden Beziehungen gelten: k4 = k0, k5 = k1, k6 = k2 bzw. k7 = k3. Somit werden jeweils 32 Bits der Daten k0 bis k7 erhalten.
  • Wenn der kryptographische Schlüssel ferner 192 (32 × 6) Bits umfaßt, werden k0 bis k5 vorbereitet, wobei Beziehungen k6 = 0 und k7 = k1 gelten. Des weiteren wird, wenn der kryptographische Schlüssel 256 (32 × 8) Bits umfaßt, der krypto graphische Schlüssel in jeweils 32 Bits geteilt, um jeweils 32 Bits der Daten k0 bis k7 zu erhalten. Auf die oben beschriebene Weise kann ein kryptographischer Schlüssel in jeweils 32 Bits der Daten k0 bis k7 geteilt werden, auch wenn der kryptographische Schlüssel eine Länge von 128 Bits, 192 Bits oder 256 Bits hat.
  • Daher wird, wie in 3 gezeigt, eine Funktion des nichtlinearen Typs M auf die jeweiligen Daten von k0 bis k7 angewendet, um 32-Bit-Daten von k0' bis k7' zu erhalten, die jeweilig den Daten k0 bis k7 entsprechen. Dann wird eine Konstante jeweilig zu geradzahligen Daten k0', k2', k4' und k6' addiert, während ungeradzahlige Daten k1', k3', k5' und k7' jeweilig mit der Konstante multipliziert werden.
  • Danach werden die Bitkette der geradzahligen Daten, zu denen eine Konstante addiert wurde (z. B. k0' + M(4i)), und die ungeradzahlige Bitkette, die mit der Konstante multipliziert wurde (z. B. k1' × (i + 1)), einer Exklusiv-ODER-Operation unterzogen, und ferner wird die Funktion des nichtlinearen Typs M auf das Resultat angewendet, um die Zwischendaten ai bis di vorzubereiten.
  • Hierbei sei erwähnt, daß Konstanten, die bei den oben beschriebenen Schritten S4 bis S6 verwendet werden, M(4i) und (i + 1) sind, wie in 3 gezeigt, wobei i einen Wert von 0, 1 oder 2 annimmt, wodurch Zwischendaten a0 bis a2, b0 bis b2, c0 bis c2 und d0 bis d2 erhalten werden.
  • Als nächstes wird ein Konzept zum Vorbereiten eines erweiterten Schlüssels von Zwischendaten mittels der in 1 gezeigten Einrichtung zur Vorbereitung von erweiterten Schlüsseln 5 eingehender beschrieben. Diesbezüglich sind 4(a) und 4(b) erläuternde Diagramme jeweils zum Erläutern eines Konzeptes zum Vorbereiten eines erweiterten Schlüssels von Zwischendaten unter Verwendung der Einrichtung zur Vorbereitung von erweiterten Schlüsseln 5, die in 1 gezeigt ist.
  • Die Einrichtung zur Vorbereitung von erweiterten Schlüsseln 5 ist versehen, wie in 4(a) gezeigt, mit einer Selektorwertbestimmungsanordnung, Selektoren, einer Datenneuanordnungsverarbeitungsanordnung und einer G-(X, Y, Z, W)-Berechnungsanordnung (Einheit zur irreversiblen Konvertierung). Die Selektionswertbestimmungsanordnung wird zum Bestimmen von xr, yr, zr und wr verwendet, die jeweilige Elemente a, b, c und d angeben, die von den jeweiligen Zwischendaten ai, bi, ci und di (i = 0, 1 oder 2) auf der Basis der Nummer von Stufen r eines vorzubereitenden erweiterten Schlüssels zu selektieren sind.
  • Ein Selektor selektiert jeweilig Zwischendaten a(Xr), b(Yr), c(Zr) und d(Wr) gemäß xr, yr, zr und wr, die durch die Selektorwertbestimmungsanordnung bestimmt wurden.
  • Die Datenneuanordnungsverarbeitungsanordnung ordnet die Daten a(Xr), b(Yr), c(Zr) und d(Wr) auf der Basis der Nummer der Stufen r neu an (stellt sie um). Genauer gesagt, es werden Umstellungen entsprechend der Nummer der Stufen r implementiert, wie in 5(c) gezeigt, die später beschrieben wird.
  • Die G-(X, Y, Z, W und r)-Berechnungsanordnung bereitet einen erweiterten Schlüssel ExKeyr auf der Basis der Daten (X, Y, Z und W) nach der Neuanordnung vor. Die Konstruktion der G-(X, Y, Z, W und r)-Berechnungsanordnung ist so wie in 4(b) gezeigt. In derselben Figur verkörpert die Darstellung "<<< 1" ein Mittel zum zyklischen Verschieben einer Bitkette von Daten um 1 Bit nach links, bezeichnet "+" in einem Quadrat ein Mittel für die Addition zweier Daten (Ketten), bezeichnet "–" in einem Quadrat ein Mittel für die Subtraktion von gewissen Daten von anderen Daten und bezeichnet "+" in einem Kreis ein Mittel für eine Exklusiv-ODER-Operation.
  • Nun werden Verfahrensschritte zum Vorbereiten eines erweiterten Schlüssels mittels der Einrichtung zur Vorbereitung von erweiterten Schlüsseln 5 beschrieben. Wenn die Nummer der Stufen r eingegeben wird, wie in 4(a) gezeigt, werden die entsprechenden Daten von Zwischendaten selektiert, und die selektierten Daten werden gemäß der Nummer r umgestellt. Genauer gesagt, ein Datum (eine Datenkette) wird von jedem Element auf solch eine Weise selektiert, daß a1 von a0 bis a2 selektiert wird, während b0 von b0 bis b2 selektiert wird.
  • Wenn im Falle von 4 zum Beispiel "a1, b0, c1 und d2" selektiert werden, werden sie umgestellt zu "b0, a1, d2 und c1", wobei jeweilig X = b0, Y = a1, Z = d2 und W = c1 ist.
  • Dann wird die irreversible Konvertierung (irreversible Konvertierung G) auf die Zwischendaten nach deren Umstellung angewendet, um einen erweiterten Schlüssel in der r-ten Stufe auszugeben. Genauer gesagt, die Daten X werden zyklisch um 1 Bit nach links verschoben und zu den Daten Y addiert; und gleichzeitig werden die Daten Z zyklisch um 1 Bit nach links verschoben, werden die Daten W davon subtrahiert und wird das Resultat zyklisch um 1 Bit nach links verschoben. Dann werden die Resultate beider Daten einer Exklusiv-ODER-Operation unterzogen, um den erweiterten Schlüssel r in der r-ten Stufe zu erzeugen.
  • Als nächstes werden die Selektion von Daten mittels der Selektionswertbestimmungseinrichtung sowie die Neuanordnung von Daten mittels der Datenneuanordnungsverarbeitungseinrichtung von 4(a) eingehender beschrieben. Diesbezüglich sind 5(a), 5(b) und 5(c) erläuternde Diagramme jeweils zum Erläutern der Selektion von Daten mittels der Selektionswertbestimmungseinrichtung sowie der Neuanordnung von Daten mittels der Datenneuanordnungsverarbeitungseinrichtung, die in 4(a) gezeigt sind.
  • 5(a) drückt Gleichungen (1) aus, die zu der Zeit angewendet werden, wenn Zwischendaten, die zu selektieren sind, durch die Selektionswertbestimmungseinrichtung selektiert werden, und zwar wie folgt: xr = zr = r mod 3; yr = wr = r + [r/3] mod 3,wie bei den Gleichungen (1) ausgedrückt.
  • 5(b) ist ein Diagramm, das die Gleichungen (1) von 5(a) schematisch zeigt, wobei Zahlenwerte, die jenen entsprechen, die von einer der drei Zahlen 0, 1 und 2 zu selektieren sind, in dem Fall angegeben sind, wenn die Nummer der Stufen r ist und eine Gruppe zirkuliert, die neun Nummern umfaßt.
  • Wenn ein Wert entsprechend der Stufennummer r (eine der drei Zahlen i = 0, 1 und 2) gemäß 5(a) oder 5(b) bestimmt wird, können die Werte (Xr, Yr, Zr und Wr) entsprechend der Stufennummer r von der Zahl i jeweils von den in 4(a) gezeigten Zwischendaten selektiert werden.
  • 5(c) zeigt eine Ordnungstabelle, die in dem Fall verwendet wird, wenn die Neuanordnung mittels der Datenneuanordnungsverarbeitungseinrichtung implementiert wird. Diese Ordnungstabelle dient dazu, eine Ordnung in dem Fall zu bestimmen, wenn die Zwischendaten (Xr, Yr, Zr und Wr) der Stufennummer r, die in 5(a) oder 5(b) selektiert wurden, neu angeordnet (umgestellt) werden. Genauer gesagt, die Neuanordnung erfolgt gemäß der Ordnungstabelle, wobei die Stufennummer r auf der linken Seite Ordnungen für die Neuanordnung auf der rechten Seite der Figur entsprechen kann.
  • Wenn zum Beispiel "a1, b0, c1 und d2" selektiert werden, lautet die Ordnung "a1, b0, c1 und d2" in dem Fall, wenn die Stufennummer 0 ist, "b0, a1, d2 und c1" in dem Fall, wenn die Stufennummer 1 ist, und ferner "d2, c1, b0 und a1" in dem Fall, wenn die Stufennummer 2 ist.
  • Als nächstes wird ein Beispiel für eine Operation einer Funktion des nichtlinearen Typs beschrieben, die durch die in 1 gezeigte Zwischendatenvorbereitungseinrichtung 4 ausgeführt wird. Es sei erwähnt, daß die vorliegende Erfindung nicht auf diese Operation des nichtlinearen Typs begrenzt ist, sondern eine Vielfalt an Operationen des nichtlinearen Typs zum Einsatz kommen kann. 6(a), 6(b) und 6(c) sowie 7(d) und 7(e) sind erläuternde Diagramme jeweils zum Erläutern eines Beispiels für eine Operation einer Funktion des nichtlinearen Typs, die durch die in 1 gezeigte Zwischendatenvorbereitungseinrichtung 4 ausgeführt wird.
  • 6(a) zeigt ein Beispiel für die gesamte Struktur der Operation bei der Funktion des nichtlinearen Typs M in dem Fall, wenn mit der Funktion des nichtlinearen Typs M unter Einsatz eines Benutzerschlüssels (eines kryptographischen Schlüssels) m von 32 Bits operiert wird, um ein Resultat w von 32 Bits vorzubereiten.
  • Wie gezeigt, wird ein Benutzerschlüssel von 32 Bits hierbei in m0, m1, m2, m3, m4 und m5 von 6, 5, 5, 5, 5 bzw. 6 Bits geteilt. Dann werden Werte x in jene von S5(x) gemäß den jeweiligen 5-Bit-werten m1, m2, m3 und m4 entsprechend der Tabelle von S5(x) von 6(b) konvertiert.
  • Ebenfalls werden Werte von x in Werte von S6(x) gemäß den jeweiligen 6-Bit-Werten m0 und m6 entsprechend S6(x) von 6(c) konvertiert, wodurch Daten v vorbereitet werden, die in 6(a) gezeigt sind.
  • Danach werden Werte von MDS(x), die in 7(d) gezeigt sind, an jeweilige Positionen einer in 7(e) gezeigten Determinante gesetzt, wobei gleichzeitig Daten v in einer anderen Determinante (Matrix) angeordnet werden, die auch in 7(e) gezeigt ist, und beide Sätze der werte werden einer Matrixberechnung unterzogen, um Werte w zu berechnen. Somit werden Resultate (Operationsresultate der Funktion des nichtlinearen Typs M) mittels einer XOR-Berechnungsanordnung erhalten, wobei MDS von 6(a) verwendet wird.
  • Als nächstes werden die Verarbeitung in der ersten Stufe zum Vorbereiten von Zwischendaten von einem kryptographischen Schlüssel, der bereits erläutert worden ist, sowie die Verarbeitung in der zweiten Stufe zum Vorbereiten von erweiterten Schlüsseln der Stufennummer r, die durch die Zwischendaten zugeordnet ist, unter Verwendung von mathematischen Modellen und Zeichen beschrieben.
    • (1) Verarbeitung in der ersten Stufe (Verarbeitung zum Vorbereiten von Zwischendaten von einem kryptographischen Schlüssel):
    • (1-1) Ein kryptographischer Schlüssel von 256 Bits wird in acht Items von Daten k0, k1, ..., k7 von jeweils 32 Bits geteilt (siehe 3).
    • (1-2) Zwischendaten ai, bi, ci und di (i = 0, 1, 2) werden gemäß den Berechnungen der folgenden Abschnitte (1-3) bis (1-6) unter Einsatz der Funktion des nichtlinearen Typs M vorbereitet, der die in Abschnitt (1-1) erhaltenen 32-Bit-Daten eingegeben werden; M wird auch auf die ausgegebenen 32-Bit-Daten angewendet (siehe 3). Ferner werden Prozeßschritte (3-1) bis (3-6) bezüglich der Funktion des nichtlinearen Typs M ausgeführt.
    • (1-3) ai = M (Ta (k0, i) XOR Ua (k1, i), wobei Ta (k0, i) = M (k0) + M (4i), Ua (k1, i) = M (k1) × (i + 1) ist, wird berechnet. XOR stellt eine Exklusiv-ODER-Operation dar.
    • (1-4) bi = M (Tb (k2, i) XOR Ub (k3, i), wobei Tb (k3, i) = M (k2) + M (4i + 1), Ub (k3, i) = M (k3) × (i + 1) ist, wird berechnet.
    • (1-5) ci = M (Tc (k4, i) XOR Uc (k5, i), wobei Tc (k4, i) = M (k4) + M (4i + 2), Uc (k5, i) = M (k5) × (i + 1) ist, wird berechnet.
    • (1-6) di = M (Td (k6, i) XOR Ud (k7, i), wobei Td (k6, i) = M (k6) + M (4i + 3), Ud (k7, i) = M (k7) × (i + 1) ist, wird berechnet.
    • (2) Verarbeitung in der zweiten Stufe (Verarbeitung zum Vorbereiten von erweiterten Schlüsseln der Stufennummer r von Zwischendaten):
    • (2-1) Es erfolgt die Berechnung bezüglich der erweiterten Schlüssel ExKeyr der Stufennummer r (r = 0, 1 und 2) gemäß den folgenden Abschnitten (2-2) bis (2-4) (siehe 4(a)).
    • (2-2) Eine Reihe X, Y, Z, W, die durch Xr = Zr = r mod 3, Yr = Wr = r + [r/3] mod 3 (Gleichung (1)) dargestellt wird, wird verwendet, um (X, Y, Z, W) = (a (Xr), b (Yr), c (Zr), d (Wr)) zu erhalten.
    • (2-3) Eine Datenneuanordnung, die dargestellt wird durch (X, Y, Z, W) = ORDER_12(X, Y, Z, W, r'), wobei ORDER_12(X, Y, Z, W, r') so wie in 5(c) ist, erfolgt in bezug auf r', wobei r' = (r + [r/36]) mod 12 erfüllt wird.
    • (2-4) Erweiterte Schlüssel der Stufennummer r werden durch ExKeyr = G (X, Y, Z, W) berechnet, wobei G (X, Y, Z, W) = ((x <<< 1) + Y) XOR (((Z <<< 1) – W) <<< 1) ist und <<< 1 eine zyklische Verschiebung um 1 Bit nach links angibt (siehe 4(b)).
    • (3) Operationsverarbeitung der Funktion des nichtlinearen Typs M:
    • (3-1) Gemäß den folgenden Abschnitten (3-2) bis (3-6) wird ein Resultat w von 32 Bits von einer Eingabe m von 32 Bits ausgegeben (siehe 6(a)).
    • (3-2) Die Eingabe m wird bitgeteilt, um Werte m0, ..., m5 in folgenden Formen zu erlangen: m0 = (5. Bit ab dem 0. Bit, d. h., Bits 0 bis 5, von m) m1 = (10. Bit ab dem 6. Bit von m) m2 = (15. Bit ab dem 11. Bit von m) m3 = (20. Bit ab dem 16. Bit von m) m4 = (25. Bit ab dem 21. Bit von m) m5 = (31. Bit ab dem 26. Bit von m)
    • (3-3) Eine Transformationsfunktion S5 des nichtlinearen Typs, die 5 Bits als Antwort auf eine Eingabe von 5 Bits ausgibt, sowie eine Konvertierungsfunktion S6 des nichtlinearen Typs, die 6 Bits als Antwort auf eine Eingabe von 6 Bits ausgibt, wobei S5 und S6 jene sind, die in 6(b) bzw. 6(c) gezeigt sind, werden zum Erlangen der folgenden Resultate verwendet: s0 = S6 (m0) s1 = S5 (m1) s2 = S5 (m2) s3 = S5 (m3) s4 = S5 (m4) s5 = S6 (m5)
    • (3-4) Eine Gleichung v = s0|s1|s2|s3|s4|s5, wobei "|" eine Verknüpfung von Werten darstellt, wird berechnet.
    • (3-5) Eine Gleichung w = (v0 × MDS (0)) XOR (v1 × MDS (1)) XOR ... XOR (v31 × MDS (31)), wobei vi × MDS (i) 0 ist, falls vi = 0 ist, während es MDS (i) ist, falls vi = 1 ist, wird mittels der MDS-Konvertierungstabelle berechnet, von der 32 Bits von dem Bitwert vi ausgegeben werden, der das i-te v ist, und die Eingabe von 5 Bits, und MDS so ist, wie in 7(d) gezeigt.
    • (3-6) Das System gibt w aus.
  • Die vorliegende Ausführungsform ist so strukturiert, daß Zwischendaten ai, bi, ci und di, wie oben erwähnt, durch die Zwischendatenvorbereitungseinrichtung 4 von einem kryptographischen Schlüssel durch eine Operation einer Funktion des nichtlinearen Typs und dergleichen vorbereitet werden, die Einrichtung zur Vorbereitung von erweiterten Schlüsseln 5 a [Xr], b [Yr], c [Zr] und d [Wr] entsprechend der Stufennummer r von den Zwischendaten selektiert und die Daten neu anordnet, sowie eine Bitoperation implementiert, um erweiterte Schlüssel vorzubereiten. Als Resultat können sichere erweiterte Schlüssel von einem kryptographischen Schlüssel mit hoher Geschwindigkeit vorbereitet werden.
  • Genauer gesagt, die vorliegende Erfindung hat solch eine Struktur, daß Zwischendaten von einem kryptographischen Schlüssel in der ersten Stufe vorbereitet werden, und von den Zwischendaten werden beliebige Daten selektiert, um eine irreversible Konvertierung in der zweiten Stufe auszuführen, wodurch erweiterte Schlüssel in beliebiger Anzahl vorbereitet werden. Somit wird es möglich, die erweiterten Schlüssel mit hoher Geschwindigkeit durch irreversible Konvertierung vorzubereiten, wodurch die Sicherheit bei einem Gemeinschaftsschlüsselsystem verbessert werden kann.
  • Als Resultat sieht die vorliegende Erfindung die folgenden Vorteile vor:
    • (1) Obwohl eine signifikante Zeitperiode zum Vorbereiten von einem (einzelnen) Zwischendatum erforderlich ist, kann die Anzahl (Menge) von Zwischendaten, die erforderlich ist, durch die Einrichtung zur Vorbereitung von erweiterten Schlüsseln 5 reduziert werden, wodurch erweiterte Schlüssel jeweils mit hoher Sicherheit mit hoher Geschwindigkeit vorbereitet werden können.
    • (2) In dem Fall, wenn nur die erweiterten Schlüssel, die erforderlich sein werden, im Laufe der Verarbeitung zur Verschlüsselung oder Entschlüsselung vorbereitet werden, ohne alle vorbereiteten erweiterten Schlüssel ExKey0, ExKey1, ..., ExKeyn-1 zu speichern, müssen nur die erweiterten Schlüssel vorbereitet werden, die der zugeordneten Stufennummer r entsprechen.
  • Hierzu folgt eine weitere Erläuterung. In einem Kryptosystem mit Gemeinschaftsschlüssel werden im allgemeinen, wenn erweiterte Schlüssel in der Ordnung ExKey0, ExKey1, ..., ExKeyn-1 beim Verschlüsseln verwendet werden, die erweiterten Schlüssel bei der Entschlüsselung in umgekehrter Reihenfolge eingesetzt, nämlich ExKeyn-1, ..., ExKey1, ExKey0 bei der Entschlüsselung. In diesem Fall kann dann, wenn die sukzessive Vorbereitung gemäß einer Vorrichtung zum vorbereiten von erweiterten Schlüsseln erfolgt, bei der ein Wert von ExKey0 zum Vorbereiten von ExKey1 erforderlich ist (siehe 9, die bereits erwähnt wurde), ExKey1 nicht direkt vorbereitet werden; sondern es wird zuerst ExKey0 vorbereitet, und dann wird ExKey1 unter Verwendung von ExKey0 vorbereitet. Daher dauert das Vorbereiten eines erweiterten Schlüssels bei der Entschlüsselung länger als bei der Verschlüsselung (und zwar um einen Betrag, der der oben erläuterten Zeit entspricht).
  • Da andererseits in der vorliegenden Ausführungsform erweiterte Schlüssel vorbereitet werden können, indem eine beliebige Stufennummer r unabhängig von den anderen erweiterten Schlüsseln zugeordnet wird, ist sowohl in dem Fall, wenn erweiterte Schlüssel in einer Ordnung von ExKey0, ExKey1, ..., ExKeyn-1 vorbereitet werden, als auch in dem Fall, wenn erweiterte Schlüssel in einer Ordnung von ExKeyn-1, ..., ExKey1, ExKey0 vorbereitet werden, dieselbe Zeitperiode erforderlich.
  • Die vorliegende Ausführungsform gemäß der Erfindung weist solch einen beträchtlichen Vorteil auf, daß auch dann, wenn erweiterte Schlüssel sukzessive vorbereitet werden, wie oben beschrieben, Zeitperioden zum Verarbeiten der Verschlüsselung und Entschlüsselung einander gleich sein können, wodurch eine Verzögerung bei der Entschlüsselung vermieden werden kann.
  • Während zur Vereinfachung der Erläuterung in der vorliegenden Ausführungsform nur der Fall beschrieben worden ist, bei dem i = 0, 1 und 2 ist, ist die vorliegende Erfindung nicht darauf begrenzt; sondern sie ist auch auf den Fall anwendbar, wenn i 3 oder mehr beträgt. Obwohl hierin ferner ein Beispiel für eine Operation einer Funktion des nichtlinearen Typs beschrieben worden ist, ist die Erfindung nicht darauf begrenzt; sondern es sind andere Einwegfunktionen wie etwa die sogenannten Hash-Funktionen und dergleichen anwendbar.
  • Gemäß der beanspruchten Erfindung wird entsprechend dem ersten Aspekt eine Binärzeichenkette eines kryptographischen Schlüssels, wie oben beschrieben, in eine Vielzahl von Elementen geteilt, die jeweils eine vorbestimmte Bitlänge umfassen; wird eine Vielzahl von Zwischendaten unter Einsatz einer vielmaligen Operation vorbereitet, wobei eine vorbestimmte Konstante bei den jeweiligen Elementen verwendet wird; wird eine Vielzahl von Zwischendaten entsprechend einer Stufennummer von erweiterten Schlüsseln von der vorbereiteten Vielzahl der Zwischendaten selektiert; und werden erweiterte Schlüssel, die in der Zahl der Stufennummer entsprechen, durch irreversible Konvertierung der selektierten Vielzahl der Zwischendaten vorbereitet, wodurch erweiterte Schlüssel, die in dem Fall erforderlich sind, wenn ein Kryptosystem mit Gemeinschaftsschlüssel zum Einsatz kommt, mit hoher Geschwindigkeit sicher vorbereitet werden können.
  • Vorzugsweise wird eine Operation des nichtlinearen Typs bezüglich der jeweiligen geteilten Elemente ausgeführt, wodurch Bits, die einen kryptographischen Schlüssel bilden, verstreut werden, so daß die Sicherheit der Kryptographie verbessert werden kann.
  • Ferner wird es bevorzugt, wenn der kryptographische Schlüssel in acht Elemente von 32 Bits geteilt wird, das Mittel für die Operation des nichtlinearen Typs die Elemente in 6, 5, 5, 5, 5 und 6 Bits trennt, um dieselben jeweilig zu anderen Daten umzustellen, und die Daten nach der Umstellung einer Operation des nichtlinearen Typs unter Verwendung einer Determinante unterzogen werden, wodurch die Operation des nichtlinearen Typs mit hoher Geschwindigkeit effektiv ausgeführt werden kann.
  • Ferner ist es zu bevorzugen, daß eine Konstante zu einem ungeradzahligen Element addiert wird, das der Operation des nichtlinearen Typs unterzogen worden ist; gleichzeitig ein geradzahlig numeriertes Element, das der Operation des nichtlinearen Typs unterzogen worden ist, mit der Konstante multipliziert wird; und eine Exklusiv-ODER-Operation von ungeradzahligen und geradzahligen Elementen ausgeführt wird, wodurch Zwischendaten effektiv vorbereitet werden können.
  • Vorzugsweise wird das Resultat der Exklusiv-ODER-Operation der Operation des nichtlinearen Typs unterzogen, um Zwischendaten vorzubereiten, wodurch Bits, die das Resultat der Exklusiv-ODER-Operation bilden, weiter verstreut werden, so daß die Sicherheit der Kryptographie sehr verbessert werden kann.
  • Vorzugsweise werden Additionen und Multiplikationen jeweilig unter Verwendung der Zahl i mit verschiedenen Konstanten viele Male wiederholt, um die Zahl i von Daten in jedem Element vorzubereiten; werden die Exklusiv-ODER-Operationen mit den ungeradzahligen und geradzahligen Elementen unter Verwendung derselben Konstanten i-mal wiederholt; und wird die Zahl i von Zwischendaten in jedem Element vorbereitet, wodurch eine Vielzahl von Zwischendaten in jedem jeweiligen Element durch eine einfache Prozedur vorbereitet werden kann.
  • Vorzugsweise wird ein Item von Zwischendaten entsprechend der Stufennummer eines erweiterten Schlüssels von der Zahl i von Zwischendaten selektiert, die in den jeweiligen vorbereiteten Elementen enthalten sind, wodurch die Unabhängigkeit eines gewissen erweiterten Schlüssels bezüglich der anderen Schlüssel beibehalten werden kann.
  • Vorzugsweise wird eine Vielzahl von selektierten Zwi schendaten neu angeordnet; und die Vielzahl von Zwischendaten, die neu angeordnet worden sind, wird irreversibel konvertiert, wodurch eine unidirektionale Eigenschaft eines gewissen kryptographischen Schlüssels hin zu erweiterten Schlüsseln beibehalten werden kann, so daß auch dann, wenn ein gewisser erweiterter Schlüssel nach außen dringt, der kryptographische Schlüssel geheimgehalten werden kann.
  • Wenn Zwischendaten in einer Ordnung von Elementen X, Y, Z und W durch das Neuanordnungsmittel neu angeordnet werden, werden erste Daten vorzugsweise durch das Addieren des Elementes Y zu Daten vorbereitet, die durch zyklisches Verschieben des Elementes X um 1 Bit nach links erhalten wurden; werden zweite Daten durch zyklisches Verschieben der Daten um 1 weiteres Bit nach links vorbereitet, welche Daten erhalten worden sind, indem das Element W von Daten subtrahiert wurde, die durch zyklisches Verschieben des Elementes Z um 1 Bit nach links erhalten wurden; und wird eine Exklusiv-ODER-Operation mit den ersten Daten und den zweiten Daten ausgeführt, wodurch eine irreversible Konvertierung mit hoher Geschwindigkeit effektiv implementiert werden kann.
  • Vorzugsweise wird ein kryptographischer Schlüssel von 128 Bits, 192 Bits oder 256 Bits in acht Elemente von 32 Bits geteilt, wodurch der erweiterte Schlüssel unter Verwendung derselben Logik vorbereitet werden kann, auch wenn sich die Anzahl von eingegebenen Bits bei dem erweiterten Schlüssel unterscheidet.
  • Gemäß der beanspruchten Erfindung wird entsprechend dem zweiten Aspekt eine Binärzeichenkette eines kryptographischen Schlüssels in eine Vielzahl von Elementen geteilt, die jeweils eine vorbestimmte Bitlänge umfassen; wird eine Vielzahl von Zwischendaten unter Einsatz einer vielmaligen Operation vorbereitet, wobei eine vorbestimmte Konstante bei den jeweiligen Elementen verwendet wird; wird eine Vielzahl von Zwischendaten entsprechend einer Stufennummer von erweiterten Schlüsseln von der vorbereiteten Vielzahl der Zwischendaten selektiert; und werden erweiterte Schlüssel, die in der Zahl der Stufennummer entsprechen, durch irreversible Konvertierung der selektierten Vielzahl der Zwischendaten vorbereitet, wodurch solche erweiterten Schlüssel, die in dem Fall erforderlich sind, wenn ein Kryptosystem mit Gemeinschaftsschlüssel zum Einsatz kommt, mit hoher Geschwindigkeit sicher vorbereitet werden können.
  • Vorzugsweise wird eine Operation des nichtlinearen Typs bezüglich der jeweiligen geteilten Elemente ausgeführt, wodurch Bits, die einen kryptographischen Schlüssel bilden, verstreut werden, so daß die Sicherheit der Kryptographie verbessert werden kann.
  • Wenn der kryptographische Schlüssel in acht Elemente von 32 Bits geteilt wird, trennt das Mittel für die Operation des nichtlinearen Typs die Elemente vorzugsweise in 6, 5, 5, 5, 5 und 6 Bits, um dieselben jeweilig zu anderen Daten umzustellen, und die Daten nach der Umstellung werden der Operation des nichtlinearen Typs unter Verwendung einer Determinante unterzogen, wodurch die Operation des nichtlinearen Typs mit hoher Geschwindigkeit effektiv ausgeführt werden kann.
  • Vorzugsweise wird eine Konstante zu einem ungeradzahligen Element addiert, das der Operation des nichtlinearen Typs unterzogen worden ist; gleichzeitig wird ein geradzahliges Element, das der Operation des nichtlinearen Typs unterzogen worden ist, mit der Konstante multipliziert; und eine Exklusiv-ODER-Operation sowohl mit den ungeradzahligen als auch mit den geradzahligen Elementen wird bewirkt, wodurch Zwischendaten effektiv vorbereitet werden können.
  • Vorzugsweise wird das Resultat der Exklusiv-ODER-Operation der Operation des nichtlinearen Typs unterzogen, um Zwischendaten vorzubereiten, wodurch Bits, die das Resultat der Exklusiv-ODER-Operation bilden, weiter verstreut werden, so daß die Sicherheit der Kryptographie verbessert werden kann.
  • Vorzugsweise werden die Additionen und Multiplikationen jeweilig unter Verwendung der Zahl i mit verschiedenen Konstanten viele Male wiederholt, um die Zahl i von Daten in jedem Element vorzubereiten; werden Exklusiv-ODER-Operationen mit den ungeradzahligen und geradzahligen Elementen, die unter Verwendung derselben Konstanten bearbeitet worden sind, i-mal wiederholt; und wird die Zahl i von Zwischendaten in jedem Element vorbereitet, wodurch eine Vielzahl von Zwischendaten in jedem jeweiligen Element durch eine einfache Prozedur vorbereitet werden kann.
  • Vorzugsweise wird ein Element von Zwischendaten entsprechend der Stufennummer eines erweiterten Schlüssels von der Zahl i von Zwischendaten selektiert, die in den jeweiligen vorbereiteten Elementen enthalten sind, wodurch die Unabhängigkeit eines gewissen erweiterten Schlüssels bezüglich der anderen Schlüssel beibehalten werden kann.
  • Vorzugsweise wird eine selektierte Vielzahl von Zwischendaten neu angeordnet; und die Vielzahl von Zwischendaten, die neu angeordnet worden sind, wird irreversibel konvertiert, wodurch eine unidirektionale Eigenschaft eines gewissen kryptographischen Schlüssels hin zu erweiterten Schlüsseln beibehalten werden kann, so daß der kryptographische Schlüssel geheimgehalten werden kann, auch wenn ein gewisser erweiterter Schlüssel nach außen dringt.
  • Wenn Zwischendaten in einer Ordnung von Elementen X, Y, Z und W durch das Neuanordnungsmittel neu angeordnet werden, werden vorzugsweise erste Daten vorbereitet, indem das Element Y zu Daten addiert wird, die durch zyklisches Verschieben des Elementes X um 1 Bit nach links erhalten wurden; werden zweite Daten durch zyklisches Verschieben der Daten um 1 weiteres Bit nach links vorbereitet, welche Daten durch Subtrahieren des Elementes W von Daten erhalten worden sind, die durch zyklisches Verschieben des Elementes Z um 1 Bit nach links erhalten wurden; und wird eine Exklusiv-ODER-Operation an den ersten Daten und den zweiten Daten ausgeführt, wodurch eine irreversible Konvertierung mit hoher Geschwindigkeit effektiv implementiert werden kann.
  • Vorzugsweise wird ein kryptographischer Schlüssel von 128 Bits, 192 Bits oder 256 Bits in acht Elemente (Gruppen) von 32 Bits geteilt, wodurch der erweiterte Schlüssel unter Verwendung derselben Logik vorbereitet werden kann, auch wenn sich die Anzahl von eingegebenen Bits bei dem erweiterten Schlüssel unterscheidet.
  • Gemäß der beanspruchten Erfindung wird entsprechend dem dritten Aspekt eine Binärzeichenkette des kryptographischen Schlüssels in eine Vielzahl von Elementen (Gruppen) geteilt, die jeweils eine vorbestimmte Länge umfassen; wird eine Vielzahl von Zwischendaten durch vielmaliges Anwenden einer Operation vorbereitet, bei der eine vorbestimmte Konstante bei den jeweiligen Elementen verwendet wird; wird eine Vielzahl von Zwischendaten entsprechend einer Stufennummer von erweiterten Schlüsseln von der vorbereiteten Vielzahl der Zwischendaten selektiert; und werden erweiterte Schlüssel, die in der Zahl der Stufennummer entsprechen, durch irreversibles Konvertieren der Vielzahl der selektierten Zwischendaten vorbereitet, wodurch solche erweiterten Schlüssel, die in dem Fall erforderlich sind, wenn ein Kryptosystem mit Gemeinschaftsschlüssel zum Einsatz kommt, mit hoher Geschwindigkeit sicher vorbereitet werden können.

Claims (18)

  1. Vorrichtung (3) zum Vorbereiten von erweiterten Schlüsseln, bei der erweiterte Schlüssel ExKeyr in einem Kryptosystem mit Gemeinschaftsschlüssel in sukzessiven Stufen r: r = 1 ... n von einem eingegebenen kryptographischen Schlüssel vorbereitet werden, mit: einer Teilungseinheit (4), die dafür ausgelegt ist, um eine Bitkette des kryptographischen Schlüssels in eine Vielzahl von Bitgruppen k0, k1, ... zu teilen, wobei jede Bitgruppe eine vorbestimmte Bitlänge hat; einer Zwischendatenvorbereitungseinheit (4), die dafür ausgelegt ist, um eine Vielzahl von Zwischendatengruppen a, b, ... von den Bitgruppen k0, k1, ... durch eine vorbestimmte Operation vorzubereiten, wobei verschiedene Konstanten gemäß dem Wert einer ganzen Zahl i für jede Bitgruppe k0, k1, ... angewendet werden, bei der jede der Zwischendatengruppen a, b, ... aus einer Kombination aus einer Vielzahl von ersten Zwischendaten a[i], b[i], ... gebildet ist, die jeweils drei verschiedene Werte i = 0, 1 oder 2 haben; einer Selektionseinheit (5), die dafür ausgelegt ist, um in jeder Stufe einen der drei verschiedenen Werte a[i], b[i], ... jeweils von den ersten Zwischendaten in Abhängigkeit von einer Nummer r der gegenwärtigen Stufe zu selektieren, um zweite Zwischendaten a[Xr], b[Yr], ... zu bestimmen; und einer Vorbereitungseinheit von erweiterten Schlüsseln (5), die dafür ausgelegt ist, um in jeder Stufe den erweiterten Schlüssel ExKeyr vorzubereiten, der eine Bitlänge hat, die länger als die Bitkette des kryptographischen Schlüssels ist, indem die zweiten Zwischendaten a[Xr], b[Yr], ... irreversibel konvertiert werden.
  2. Vorrichtung zum Vorbereiten von erweiterten Schlüsseln nach Anspruch 1, bei der die Zwischendatenvorbereitungseinheit (4) mit einer Einheit zur nichtlinearen Operation versehen ist, die dafür ausgelegt ist, um eine nichtlineare Operation bezüglich jeder Bitgruppe k0, k1, ... zu bewirken, um die Zwischendatengruppen a, b, ... vorzubereiten.
  3. Vorrichtung zum Vorbereiten von erweiterten Schlüsseln nach Anspruch 2, bei der die Teilungseinheit (4) dafür ausgelegt ist, um die Bitkette des kryptographischen Schlüssels in acht Bitgruppen k0, k1, ... k7 zu teilen, die vorbestimmte Bitlänge 32 Bits beträgt und die Einheit zur nichtlinearen Operation dafür ausgelegt ist, um jede Bitgruppe in 6, 5, 5, 5, 5 und 6 Bits m0, m1, m2, m3, m4, m5 zu trennen, die vier 5-Bit-Gruppen in vier erste Werte S1–S4 unter Verwendung einer ersten nichtlinearen Transformationsfunktion zu transformieren, die zwei 6-Bit-Gruppen in zwei zweite Werte S0, S5 unter Verwendung einer zweiten nichtlinearen Transformationsfunktion zu transformieren, die vier ersten werte S1–S4 mit den zwei zweiten Werten S0, S5 zu verknüpfen, um einen dritten Wert V zu erhalten, und die ersten Zwischendaten a[i], b[i], c[i], d[i] durch eine Logikoperation unter Verwendung jedes Bits des dritten Wertes Vi und eines vierten Wertes MDS(i) vorzubereiten, der von der Position i des Bits abhängt und aus einer vorbestimmten Tabelle erhalten wird.
  4. Vorrichtung zum Vorbereiten von erweiterten Schlüsseln nach Anspruch 2 oder 3, bei der die Zwischendatenvorbereitungseinheit (4) versehen ist mit: einer Additionseinheit, die dafür ausgelegt ist, um eine erste Konstante zu einer geradzahligen Bitgruppe k0', k2', ..., die der nichtlinearen Operation unterzogen worden ist, zu addieren, um ein erstes Resultat Ta (k0, i), Tb (k2, i), ... zu erhalten; einer Multiplikationseinheit, die dafür ausgelegt ist, um eine ungeradzahlige Bitgruppe k1', k3', ..., die der nichtlinearen Operation unterzogen worden ist, mit einer zweiten Konstante zu multiplizieren, um ein zweites Resultat Ua (k1, i), Ub (k3, i), ... zu erhalten, bei der die ungerade Zahl die gerade Zahl plus eins ist; und einer Exklusiv-ODER-Operationseinheit, die dafür ausgelegt ist, um eine Exklusiv-ODER-Operation des ersten Resultats und des zweiten Resultats zu bewirken.
  5. Vorrichtung zum Vorbereiten von erweiterten Schlüsseln nach Anspruch 4, bei der die Zwischendatenvorbereitungseinheit (4) ferner mit einer Vorbereitungseinheit zum nichtlinearen Operieren mit einem Resultat der Exklusiv-ODER-Operation versehen ist, um die Zwischendatengruppen zu erhalten.
  6. Vorrichtung zum Vorbereiten von erweiterten Schlüsseln nach irgendeinem vorhergehenden Anspruch, bei der die Vorbereitungseinheit von erweiterten Schlüsseln (5) versehen ist mit: einer Neuanordnungseinheit, die dafür ausgelegt ist, um die zweiten Zwischendaten a[Xr], b[Yr], ... neu anzuordnen, um neu angeordnete Zwischendaten zu erhalten; und einer Einheit zur irreversiblen Konvertierung, die dafür ausgelegt ist, um die neu angeordneten Daten irreversibel zu konvertieren.
  7. Vorrichtung zum Vorbereiten von erweiterten Schlüsseln nach Anspruch 6, bei der die zweiten Zwischendaten a[Xr], b[Yr], c[Zr], d[Wr] vier Items enthalten, die durch vier Elemente X, Y, Z bzw. W dargestellt werden, die Neuanordnungseinheit die vier Items neu anordnet und die Einheit zur irreversiblen Konvertierung: dafür ausgelegt ist, um erste Daten vorzubereiten, durch das Addieren des Elementes Y zu Daten, die erhalten werden, indem das Element X um 1 Bit zyklisch nach links verschoben wird; dafür ausgelegt ist, um zweite Daten vorzubereiten, die bestimmt werden, indem die Daten um 1 weiteres Bit zyklisch nach links verschoben werden, welche Daten durch Subtrahieren des Elementes W von Daten erhalten worden sind, die durch zyklisches Verschieben des Elementes Z um 1 Bit nach links erhalten wurden; und dafür ausgelegt ist, um eine Exklusiv-ODER-Operation an den ersten Daten und den zweiten Daten auszuführen.
  8. Vorrichtung zum Vorbereiten von erweiterten Schlüsseln nach irgendeinem vorhergehenden Anspruch, bei der die Teilungseinheit dafür ausgelegt ist, um einen kryptographischen Schlüssel von 128 Bits, 192 Bits oder 256 Bits in acht Gruppen k0, k1, ..., k7 von 32 Bits zu teilen.
  9. Verfahren zum Vorbereiten von erweiterten Schlüsseln, bei dem erweiterte Schlüssel ExKeyr in einem Kryptosystem mit Gemeinschaftsschlüssel in sukzessiven Stufen r: r = 1, 2, ... n von einem kryptographischen Schlüssel vorbereitet werden, mit den Schritten: Teilen einer Bitkette des kryptographischen Schlüssels in eine Vielzahl von Bitgruppen k0, k1, ... k7, wobei jede Bitgruppe eine vorbestimmte Bitlänge hat; und Vorbereiten (S2–S6) einer Vielzahl von Zwischendatengruppen a, b, ... von den Bitgruppen k0, k1, ... durch eine vorbestimmte Operation, wobei verschiedene Konstanten gemäß dem Wert einer ganzen Zahl i für jede Bitgruppe k0, k1, ... angewendet werden, bei dem jede der Zwischendatengruppen a, b, ... aus einer Kombination aus einer Vielzahl von ersten Zwischendaten a[i], b[i], ... gebildet ist, die jeweils drei verschiedene Werte i = 0, 1 oder 2 haben; und in jeder Stufe: Selektieren (S8) eines der drei verschiedenen werte a[i], b[i], ... jeweils von den ersten Zwischendaten in Abhängigkeit von einer Nummer r der gegenwärtigen Stufe, um zweite Zwischendaten a[Xr], b[Yr], ... zu bestimmen; und Vorbereiten (S9–S11) des erweiterten Schlüssels ExKeyr, der eine Bitlänge hat, die länger als die Bitkette des kryptographischen Schlüssels ist, indem die zweiten Zwischendaten a[Xr], b[Yr], ... irreversibel konvertiert werden.
  10. Verfahren zum Vorbereiten von erweiterten Schlüsseln nach Anspruch 9, bei dem der Vorbereitungsschritt (S2–S6) einen Schritt zum nichtlinearen Operieren enthält, zum Bewirken einer nichtlinearen Operation bezüglich jeder Bitgruppe k0, k1, ..., um die Zwischendatengruppen a, b, ... vorzubereiten.
  11. Verfahren zum Vorbereiten von erweiterten Schlüsseln nach Anspruch 10, bei dem der Teilungsschritt die Bitkette des kryptographischen Schlüssels in acht Bitgruppen k0, k1, ... k7 teilt, die vorbestimmte Bitlänge 32 Bits beträgt und der Schritt zum nichtlinearen Operieren enthält: Trennen jeder Bitgruppe in 6, 5, 5, 5, 5 und 6 Bits m0, m1, m2, m3, m4, m5; Transformieren der vier 5-Bit-Gruppen in vier erste Werte S1–S4 unter Verwendung einer ersten nichtlinearen Transformationsfunktion; Transformieren der zwei 6-Bit-Gruppen in zwei zweite Werte S0, S5 unter Verwendung einer zweiten nichtlinearen Transformationsfunktion; Verknüpfen der vier ersten werte S1–S4 mit den zwei zweiten Werten S0, S5, um einen dritten Wert V zu erhalten; und Vorbereiten der ersten Zwischendaten a[i], b[i], c[i] oder d[i] durch eine Logikoperation unter Verwendung jedes Bits des dritten wertes Vi und eines vierten Wertes MDS(i), der von der Position i des Bits abhängt und aus einer vorbestimmten Tabelle erhalten wird.
  12. Verfahren zum Vorbereiten von erweiterten Schlüsseln nach Anspruch 10 oder 11, bei dem der Zwischendatenvorbereitungsschritt (S2–S6) enthält: einen Additionsschritt (S3) zum Addieren einer ersten Konstante zu einer geradzahligen Bitgruppe k0', k2', ..., die der nichtlinearen Operation unterzogen worden ist, um ein erstes Resultat Ta (k0, i), Tb (k2, i), ... zu erhalten; einen Multiplikationsschritt (S4) zum Multiplizieren einer ungeradzahligen Bitgruppe k1', k3', ..., die der nicht-linearen Operation unterzogen worden ist, mit einer zweiten Konstante i + 1, um ein zweites Resultat Ua (k1, i), Ub (k3, i), ... zu erhalten, bei dem die ungerade Zahl die gerade Zahl plus eins ist; und einen Exklusiv-ODER-Operationsschritt (S3) zum Bewirken einer Exklusiv-ODER-Operation des ersten Resultats und des zweiten Resultats.
  13. 3. Verfahren zum Vorbereiten von erweiterten Schlüsseln nach Anspruch 12, bei dem der Zwischendatenvorbereitungsschritt ferner einen Schritt zum Vorbereiten der Zwischendatengruppe durch nichtlineares Operieren mit einem Resultat des Exklusiv-ODER-Operationsschrittes (S5) umfaßt.
  14. Verfahren zum Vorbereiten von erweiterten Schlüsseln nach irgendeinem der Ansprüche 9–13, bei dem der Schritt zum Vorbereiten von erweiterten Schlüsseln (S9–S11) enthält: einen Neuanordnungsschritt (S9) zum Neuanordnen der zweiten Zwischendaten a[Xr], b[Yr], ..., um neu angeordnete Zwischendaten zu erhalten; und einen Schritt zum irreversiblen Konvertieren (S10), zum irreversiblen Konvertieren der neu angeordneten Daten.
  15. Verfahren zum Vorbereiten von erweiterten Schlüsseln nach Anspruch 14, bei dem die zweiten Zwischendaten a[Xr], b[Yr], c[Zr], d[Wr] vier Items enthalten, die durch vier Elemente X, Y, Z bzw. W dargestellt werden, der Neuanordnungsschritt (S9) das Neuanordnen der vier Items enthält und der Schritt zum irreversiblen Konvertieren (S10) enthält: Vorbereiten von ersten Daten durch das Addieren des Elementes Y zu Daten, die erhalten werden, indem das Element X um 1 Bit zyklisch nach links verschoben wird; Vorbereiten von zweiten Daten, die bestimmt werden, indem die Daten um 1 weiteres Bit zyklisch nach links verschoben werden, welche Daten durch Subtrahieren des Elementes W von Daten erhalten worden sind, die durch zyklisches Verschieben des Elementes Z um 1 Bit nach links erhalten wurden; und Ausführen einer Exklusiv-ODER-Operation an den ersten Daten und den zweiten Daten.
  16. Verfahren zum Vorbereiten von erweiterten Schlüsseln nach irgendeinem der Ansprüche 9–15, bei dem der Teilungsschritt das Teilen eines kryptographischen Schlüssels von 128 Bits, 192 Bits oder 256 Bits in acht Bitgruppen k0, k1, ..., k7 von 32 Bits enthält.
  17. Computerlesbares Aufzeichnungsmedium, in dem ein Programm zum Vorbereiten von erweiterten Schlüsseln aufgezeichnet ist, worin erweiterte Schlüssel ExKeyr in einem Kryptosystem mit Gemeinschaftsschlüssel in sukzessiven Stufen r: r = 1, 2, ... n von einem eingegebenen kryptographischen Schlüssel vorbereitet werden, welches Programm ein Programmcodemittel umfaßt, das dann, wenn es ausgeführt wird, folgendes vollzieht: Teilen einer Bitkette des kryptographischen Schlüssels in eine Vielzahl von Bitgruppen k0, k1, ..., wobei jede Bitgruppe eine vorbestimmte Bitlänge hat; und Vorbereiten (S2–S6) einer Vielzahl von Zwischendatengruppen a, b, ... von den Bitgruppen k0, k1, ... durch eine vorbestimmte Operation, wobei verschiedene Konstanten gemäß dem Wert einer ganzen Zahl i für jede Bitgruppe k0, k1, ... angewendet werden, bei dem jede der Zwischendatengruppen a, b, ... aus einer Kombination aus einer Vielzahl von ersten Zwischendaten a[i], b[i], ... gebildet ist, die jeweils drei verschiedene Werte i = 0, 1 oder 2 haben; und in jeder Stufe: Selektieren (S8) eines a[i], b[i], ... mit den drei verschiedenen Werten jeweils von den ersten Zwischendaten in Abhängigkeit von der Nummer r der gegenwärtigen Stufe, um zweite Zwischendaten a[Xr], b[Yr], ... zu bestimmen; und Vorbereiten (S9–S11) des erweiterten Schlüssels ExKeyr, der eine Bitlänge hat, die länger als die Bitkette des kryptographischen Schlüssels ist, indem die zweiten Zwischendaten a[Xr], b[Yr], ... irreversibel konvertiert werden.
  18. Programm zum Vorbereiten von erweiterten Schlüsseln, bei dem erweiterte Schlüssel ExKeyr in einem Kryptosystem mit Gemeinschaftsschlüssel in sukzessiven Stufen r: r = 1, 2, ... n von einem eingegebenen kryptographischen Schlüssel vorbereitet werden, welches Programm ein Programmcodemittel umfaßt, das dann, wenn es ausgeführt wird, folgendes vollzieht: Teilen einer Bitkette des kryptographischen Schlüssels in eine Vielzahl von Bitgruppen k0, k1, ..., wobei jede Bitgruppe eine vorbestimmte Bitlänge hat; und Vorbereiten (S2–S6) einer Vielzahl von Zwischendatengruppen a, b, ... von den Bitgruppen k0, k1, ... durch eine vorbestimmte Operation, wobei verschiedene Konstanten gemäß dem Wert einer ganzen Zahl i für jede Bitgruppe k0, k1, ... angewendet werden, bei dem jede der Zwischendatengruppen a, b, ... aus einer Kombination aus einer Vielzahl von ersten Zwischendaten a[i], b[i], ... gebildet ist, die jeweils drei verschiedene Werte i = 0, 1 oder 2 haben; und in jeder Stufe: Selektieren (S8) eines der drei verschiedenen Werte a[i], b[i], ... jeweils von den ersten Zwischendaten in Abhängigkeit von einer Nummer r der gegenwärtigen Stufe, um zweite Zwischendaten a[Xr], b[Yr], ... zu bestimmen; und Vorbereiten (S9–S11) des erweiterten Schlüssels ExKeyr, der eine Bitlänge hat, die länger als die Bitkette des kryptographischen Schlüssels ist, indem die zweiten Zwischendaten a[Xr], b[Yr], ... irreversibel konvertiert werden.
DE60117345T 2000-07-13 2001-06-01 Verfahren und Vorrichtung zur Vorbereitung eines erweiterten Schlüssels, Aufzeichnungsmedium und Computerprogramm Expired - Lifetime DE60117345T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000212482 2000-07-13
JP2000212482 2000-07-13

Publications (2)

Publication Number Publication Date
DE60117345D1 DE60117345D1 (de) 2006-04-27
DE60117345T2 true DE60117345T2 (de) 2006-08-03

Family

ID=18708401

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60117345T Expired - Lifetime DE60117345T2 (de) 2000-07-13 2001-06-01 Verfahren und Vorrichtung zur Vorbereitung eines erweiterten Schlüssels, Aufzeichnungsmedium und Computerprogramm

Country Status (3)

Country Link
US (1) US6956951B2 (de)
EP (1) EP1172964B1 (de)
DE (1) DE60117345T2 (de)

Families Citing this family (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7287269B2 (en) * 2002-07-29 2007-10-23 International Buiness Machines Corporation System and method for authenticating and configuring computing devices
JP2004245988A (ja) * 2003-02-13 2004-09-02 Sony Corp データ処理装置、その方法およびそのプログラムと線形変換回路および暗号化回路
US10572824B2 (en) 2003-05-23 2020-02-25 Ip Reservoir, Llc System and method for low latency multi-functional pipeline with correlation logic and selectively activated/deactivated pipelined data processing engines
AU2004290281A1 (en) 2003-05-23 2005-05-26 Washington University Intelligent data storage and processing using FPGA devices
US8090105B2 (en) * 2004-11-24 2012-01-03 International Business Machines Corporation Broadcast encryption with dual tree sizes
WO2007121035A2 (en) 2006-03-23 2007-10-25 Exegy Incorporated Method and system for high throughput blockwise independent encryption/decryption
JP4909018B2 (ja) * 2006-11-16 2012-04-04 富士通株式会社 共通鍵暗号のための暗号化装置
EP2186250B1 (de) 2007-08-31 2019-03-27 IP Reservoir, LLC Verfahren und vorrichtung für hardware-beschleunigte verschlüsselung/entschlüsselung
KR101252549B1 (ko) * 2008-11-21 2013-04-08 한국전자통신연구원 보안 도메인 환경에서의 암/복호화 프로그램 및 대칭키의 안전 배포 방법 및 이를 위한 데이터 분할 및 주입 장치
CN103188219A (zh) * 2011-12-28 2013-07-03 北大方正集团有限公司 一种数字版权管理方法、设备及系统
US9591099B1 (en) 2012-12-21 2017-03-07 EMC IP Holding Company LLC Server connection establishment over fibre channel using a block device access model
US9647905B1 (en) 2012-12-21 2017-05-09 EMC IP Holding Company LLC System and method for optimized management of statistics counters, supporting lock-free updates, and queries for any to-the-present time interval
US9514151B1 (en) 2012-12-21 2016-12-06 Emc Corporation System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9531765B1 (en) * 2012-12-21 2016-12-27 Emc Corporation System and method for maximizing system data cache efficiency in a connection-oriented data proxy service
US9563423B1 (en) 2012-12-21 2017-02-07 EMC IP Holding Company LLC System and method for simultaneous shared access to data buffers by two threads, in a connection-oriented data proxy service
US9473590B1 (en) 2012-12-21 2016-10-18 Emc Corporation Client connection establishment over fibre channel using a block device access model
US9712427B1 (en) 2012-12-21 2017-07-18 EMC IP Holding Company LLC Dynamic server-driven path management for a connection-oriented transport using the SCSI block device model
US9407601B1 (en) 2012-12-21 2016-08-02 Emc Corporation Reliable client transport over fibre channel using a block device access model
JP2015130580A (ja) * 2014-01-07 2015-07-16 富士通株式会社 データスクランブル装置、セキュリティ装置、セキュリティシステム及びデータスクランブル方法
JP6677967B2 (ja) * 2014-12-18 2020-04-08 Nok株式会社 水素化ニトリルゴム組成物及びドライブトレイン用オイルシール
EP3560135A4 (de) 2016-12-22 2020-08-05 IP Reservoir, LLC Rohrleitungen zum hardware-beschleunigten maschinellen lernen

Family Cites Families (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
JP3782210B2 (ja) * 1997-06-30 2006-06-07 日本電信電話株式会社 暗号装置
US6570989B1 (en) * 1998-04-27 2003-05-27 Matsushita Electric Industrial Co., Ltd. Cryptographic processing apparatus, cryptographic processing method, and storage medium storing cryptographic processing program for realizing high-speed cryptographic processing without impairing security

Also Published As

Publication number Publication date
US20020006196A1 (en) 2002-01-17
EP1172964A3 (de) 2002-10-16
EP1172964B1 (de) 2006-02-22
DE60117345D1 (de) 2006-04-27
EP1172964A2 (de) 2002-01-16
US6956951B2 (en) 2005-10-18

Similar Documents

Publication Publication Date Title
DE60117345T2 (de) Verfahren und Vorrichtung zur Vorbereitung eines erweiterten Schlüssels, Aufzeichnungsmedium und Computerprogramm
DE19827904C2 (de) Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung
DE69635651T2 (de) Vorrichtung und Verfahren zur Datenumwandlung
DE2231849C3 (de) Verschlüsselungsverfahren zur Erhöhung der Entschlüsselungsfestigkeit von blockweise zu verschlüsselnden Binärdaten und Anordnung zur Durchführung des Verfahrens
DE69721439T2 (de) Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels
DE69731470T2 (de) Spiral-verwürfelungsverfahren
DE69433257T2 (de) Verfahren und Kommunikationssystem unter Verwendung einer Verschlüsselungseinrichtung
DE3228018C2 (de) Schlüsselsystem für RSA-Kryptographie
DE60024941T2 (de) Verschlüsselungsverfahren und -Vorrichtung, Entschlüsselungsverfahren und -Vorrichtung
DE60105788T2 (de) AES Verschlüsselungsschaltung
DE2231835C3 (de) Verfahren zur in mehreren Stufen erfolgenden Ver- und Entschlüsselung binärer Daten
DE602005002632T2 (de) Schlüsselmaskierung für kryptographische Prozesse mittels einer Kombination von Zufallsmaskenwerten
EP3218893B1 (de) Gehärtete white box implementierung
DE10201449C1 (de) Rechenwerk, Verfahren zum Ausführen einer Operation mit einem verschlüsselten Operanden, Carry-Select-Addierer und Kryptographieprozessor
DE69931606T2 (de) Datenwandler und aufzeichnungsmedium zur aufnahme eines programms zur datenumwandlung
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
DE10148415C2 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
WO1991018459A2 (de) Vorrichtung für das umwandeln eines digitalblockes und verwendung derselben
EP0012974B1 (de) Verfahren zur Chiffrierung von Datenblöcken einer vorgegebenen Länge
DE19758079A1 (de) Verfahren und Vorrichtung zur Galoisfeld-Multiplikation
DE112006001221T5 (de) Pseudozufallszahlenerzeugungssystem, Verschlüsselungssystem und Entschlüsselungssystem
DE69333257T2 (de) Anlage für Signalschaltung und -verarbeitung
DE69729297T2 (de) Verschlüsselungsvorrichtung für binärkodierte nachrichten
DE69834296T2 (de) Verschlüsselungsvorrichtung und rechnerlesbares Aufzeichnungsmedium mit Ausführungsprogramm
DE60311507T2 (de) Verfahren zur elliptische-kurven-verschlüsselung

Legal Events

Date Code Title Description
8364 No opposition during term of opposition
8328 Change in the person/name/address of the agent

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE