DE60301750T2 - Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem - Google Patents

Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem Download PDF

Info

Publication number
DE60301750T2
DE60301750T2 DE60301750T DE60301750T DE60301750T2 DE 60301750 T2 DE60301750 T2 DE 60301750T2 DE 60301750 T DE60301750 T DE 60301750T DE 60301750 T DE60301750 T DE 60301750T DE 60301750 T2 DE60301750 T2 DE 60301750T2
Authority
DE
Germany
Prior art keywords
data
key
unit
input data
expansion
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
DE60301750T
Other languages
English (en)
Other versions
DE60301750D1 (de
Inventor
Kaoru Ashiya-shi Yokota
Motoji Hirakata-shi Ohmori
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.)
Panasonic Corp
Original Assignee
Matsushita Electric Industrial Co 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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Application granted granted Critical
Publication of DE60301750D1 publication Critical patent/DE60301750D1/de
Publication of DE60301750T2 publication Critical patent/DE60301750T2/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
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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

Landscapes

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

Description

  • HINTERGRUND DER ERFINDUNG
  • (1) Gebiet der Erfindung
  • Die vorliegende Erfindung betrifft ein Verschlüsselungssystem, insbesondere ein Verschlüsselungssystem, das eine geringere Differenz zwischen der Verschlüsselungszeit und der Entschlüsselungszeit hat und einen hochzufälligen Erweiterungsschlüssel erzeugen kann.
  • (2) Beschreibung des Standes der Technik
  • Durch eine rasche Verbreitung der digitalen Datenübertragung in den letzten Jahren wird ein Datenverschlüsselungsverfahren zur Gewährleistung des Datengeheimnisses bei der Datenübertragung im Hinblick auf den Schutz der Privatsphäre und der Entwicklung der Ton-Industrien dringend benötigt. Zur Realisierung eines Verschlüsselungsverfahrens sind ein schneller Verschlüsselungsprozess und eine einfache Implementierung sowie ein hohes Sicherheitsniveau des Prozesses erforderlich. Bei einer generischen Struktur eines solchen Verschlüsselungsverfahrens werden zu verschlüsselnde Daten in Blöcke mit einer bestimmten Größe unterteilt, an jedem Block wird aufgrund eines festgelegten Verschlüsselungsschlüssels ein Datenverwürfelungsprozess durchgeführt, und dann wird ein chiffrierter Text erzeugt.
  • Erster Stand der Technik
  • Eines dieser Verschlüsselungsverfahren ist die Rijndael-Verschlüsselung, die als Advanced Encryption Standard (AES; Moderner Verschlüsselungsstandard) etabliert ist und in den Vereinigten Staaten eine Standard-Verschlüsselung der nächsten Generation ist. 16 ist ein Diagramm, das die innere Struktur einer Verschlüsselungsvorrichtung zeigt, die das Rijndael-Verschlüsselungsverfahren verwendet. Eine Verschlüsselungsvorrichtung 1300 weist eine Erweiterungsschlüssel-Erzeugungseinheit 6, die 128-Bit-Erweiterungsschlüssel SK0–SK10 aus einem 128-Bit-Erweiterungsschlüssel EK erzeugt und sie ausgibt, und eine Datenverwürfelungseinheit 5 auf, die mit der Erweiterungsschlüssel-Erzeugungseinheit 6 verbunden ist, die Erweiterungsschlüssel SK0–SK10 von der Erweiterungsschlüssel-Erzeugungseinheit 6 empfängt, eine Datenverwürfelung durch Wiederholen eines bestimmten Datenumwandlungsprozesses für einen Klartext PT aus 128-Bit-Daten unter Verwendung der Erweiterungsschlüssel SK0–SK10 durchführt und einen 128-Bit-Chiffriertext CT erzeugt.
  • Die Erweiterungsschlüssel-Erzeugungseinheit 6 weist folgende Elemente auf: eine Datenteilungseinheit 600, die den Verschlüsselungsschlüssel EK empfängt, den Verschlüsselungsschlüssel EK in vier 32-Bit-Blöcke D0, D1, D2 und D3 unterteilt und sie ausgibt; eine Schlüsselumwandlungseinheit 60, die mit der Datenteilungseinheit 600 verbunden ist, die Datenblöcke D0–D3 von der Datenteilungseinheit 600 empfängt, an diesen eine bestimmte Operation ausführt, die später erläutert wird, und den Erweiterungsschlüssel SK1 und vier 32-Bit-Datenblöcke erzeugt und sie ausgibt; und Schlüsselumwandlungseinheiten 6169, die jeweils mit der vorhergehenden Schlüsselumwandlungseinheit verbunden sind, vier 32-Bit-Datenblöcke von der Schlüsselumwandlungseinheit empfangen, an diesen eine bestimmte Operation ausführen, die später erläutert wird, den Erweiterungsschlüssel erzeugen und vier 32-Bit-Datenblöcke erzeugen und sie ausgeben.
  • Die von den Schlüsselumwandlungseinheiten 6169 ausgegebenen Erweiterungsschlüssel sind entsprechend als Erweiterungsschlüssel SK2–SK10 definiert. Die Schlüsselumwandlungseinheit 69 gibt zwar vier Datenblöcke aus, aber diese werden nicht für andere Prozesse verwendet. Außerdem gibt die Erweiterungsschlüssel-Erzeugungseinheit 6 den Verschlüsselungsschlüssel EK als Erweiterungsschlüssel SK0 aus.
  • Die Datenverwürfelungseinheit 5 weist die folgenden Elemente auf: eine Schlüsseladdiereinheit 500, die mit der Erweiterungsschlüssel-Erzeugungseinheit 6 verbunden ist, den Erweiterungsschlüssel SK0 empfängt, eine exklusives-ODER-Operation je Bit zwischen einem Klartext PT und dem Erweiterungsschlüssel SK0 durchführt und sie ausgibt; eine Datenumwandlungseinheit 50, die mit der Schlüsseladdiereinheit 500 und der Schlüsselumwandlungseinheit 60 verbunden ist und die von der Schlüsseladdiereinheit 500 ausgegebenen Daten aufgrund des Erweiterungsschlüssels SK1 umwandelt; Datenumwandlungseinheiten 5158, die mit den Schlüsselumwandlungseinheiten 6168 entsprechend verbunden sind und die von der vorhergehenden Datenumwandlungseinheit ausgegebenen Daten aufgrund der Erweiterungsschlüssel SK2–SK9 entsprechend umwandeln; und eine letzte Datenumwandlungseinheit 59, die mit der Datenumwandlungseinheit 58 und der Schlüsselumwandlungseinheit 69 verbunden ist, die von der Datenumwandlungseinheit 58 ausgegebenen Daten aufgrund des Erweiterungsschlüssels SK10 umwandelt und einen Chiffriertext CT ausgibt.
  • 17 ist ein Diagramm, das die innere Struktur der einzelnen Schlüsselumwandlungseinheiten 6069 zeigt. Jede der Schlüsselumwandlungseinheiten 6069 führt einen Schlüsselumwandlungsprozess, der später erläutert wird, aufgrund von ersten bis vierten Eingangsdaten X0–X3 mit jeweils 32 Bit aus und gibt erste bis vierte Ausgangsdaten Y0–Y3 und den 128-Bit-Erweiterungsschlüssel SK aus.
  • Jede der Schlüsselumwandlungseinheiten 6069 weist die folgenden Elemente auf: eine Datendreheinheit 601, die die vierten Eingangsdaten X3 empfängt, eine Bit-Drehverschiebung um 8 Bit an den Eingangsdaten X3 in Richtung des oberen Bits (nach links) durchführt und ihr Ergebnis ausgibt; eine Datensubstitutionseinheit 602, die mit der Datendreheinheit 601 verbunden ist, das Operationsergebnis von der Datendreheinheit 601 empfängt, einen bestimmten Substitutionsprozess an dem Operationsergebnis ausführt und sein Ergebnis ausgibt; und eine exklusives-ODER-Operationseinheit 603, die mit der Datensubstitutionseinheit 602 verbunden ist, das Substitutionsergebnis von der Datensubstitutionseinheit 602 empfängt, eine exklusives-ODER-Operation je Bit zwischen dem Substitutionsergebnis und einer festgelegten 32-Bit-Konstante Rcon ausführt und Daten T ausgibt.
  • Jede der Schlüsselumwandlungseinheiten 6069 weist weiterhin die folgenden Elemente auf: eine exklusives-ODER-Operationseinheit 604, die mit der exklusives-ODER-Operationseinheit 603 verbunden ist, die ersten Eingangsdaten X0 und die von der exklusives-ODER-Operationseinheit 603 ausgegebenen Daten T empfängt, eine exklusives-ODER-Operation je Bit zwischen den ersten Eingangsdaten X0 und den Daten T ausführt und die ersten Ausgangsdaten Y0 ausgibt; und eine exklusives-ODER-Operationseinheit 605, die mit der exklusives-ODER-Operationseinheit 604 verbunden ist, die zweiten Eingangsdaten X1 und das Operationsergebnis der exklusives-ODER-Operationseinheit 604 empfängt, eine exklusives-ODER-Operation je Bit zwischen den zweiten Eingangsdaten X1 und dem Operationsergebnis ausführt und die zweiten Ausgangsdaten Y1 ausgibt.
  • Jede der Schlüsselumwandlungseinheiten 6069 weist weiterhin Folgendes auf: eine exklusives-ODER-Operationseinheit 606, die mit der exklusives-ODER-Operationseinheit 605 verbunden ist, die dritten Eingangsdaten X2 und das Operationsergebnis der exklusives-ODER-Operationseinheit 605 empfängt, eine exklusives-ODER-Operation je Bit zwischen den dritten Eingangsdaten X2 und dem Operationsergebnis ausführt und die dritten Ausgangsdaten Y2 ausgibt; eine exklusives-ODER-Operationseinheit 607, die mit der exklusives-ODER-Operationseinheit 606 verbunden ist, die vierten Eingangsdaten X3 und das Operationsergebnis der exklusives-ODER-Operationseinheit 606 empfängt, eine exklusives-ODER-Operation je Bit zwischen den vierten Eingangsdaten X3 und dem Operationsergebnis ausführt und die vierten Ausgangsdaten Y3 ausgibt; und eine Datenverknüpfungseinheit 608, die mit den exklusives-ODER-Operationseinheiten 604607 verbunden ist, die ersten bis vierten Ausgangsdaten Y0–Y3 verknüpft und den Erweiterungsschlüssel SK ausgibt. Einzelheiten des in jeder Einheit ausgeführten Prozesses werden in der nachstehenden Beschreibung des Verschlüsselungsprozesses beschrieben.
  • Nachstehend wird der Verschlüsselungsprozess des mit der Verschlüsselungsvorrichtung 1300 ausgeführten Rijndael-Verschlüsselungsverfahrens kurz beschrieben. Wie in 16 angegeben, gibt die Erweiterungsschlüssel-Erzeugungseinheit 6 den Verschlüsselungsschlüssel EK als Erweiterungsschlüssel SK0 an die Schlüsseladdiereinheit 500 in der Datenverwürfelungseinheit 5 aus. Die Schlüsseladdiereinheit 500 führt eine exklusives-ODER-Operation je Bit zwischen dem Klartext PT und dem Erweiterungsschlüssel SK0 aus und gibt ihr Ergebnis an die Datenumwandlungseinheit 50 aus. Die Datenteilungseinheit 600 teilt den Verschlüsselungsschlüssel EK jeweils durch 32 Bit von seinem oberen Bit aus in vier Datenblöcke D0, D1, D2 und D3.
  • In die Datenumwandlungseinheit 50 eingegebene Daten werden nacheinander für die Datenumwandlung in jeder Datenumwandlungseinheit in der Reihenfolge von der Datenumwandlungseinheit 50 zur Datenumwandlungseinheit 58 verarbeitet, und das Ergebnis, das am Ende in der letzten Datenumwandlungseinheit 59 verarbeitet wird, wird als Chiffriertext CT ausgegeben.
  • Die einzelnen Datenumwandlungseinheiten 5058 führen den Datenumwandlungsprozess aufgrund der Erweiterungsschlüssel SK1–SK9 durch. Außerdem führt die letzte Datenumwandlungseinheit 59 den Datenumwandlungsprozess aufgrund des Erweiterungsschlüssels SK10 durch. Die einzelnen Erweiterungsschlüssel SK1–SK10 werden entsprechend in den Schlüsselumwandlungseinheiten 6069 in der Erweiterungsschlüssel-Erzeugungseinheit 6 erzeugt und für die Datenumwandlungseinheiten 5058 und die letzte Datenumwandlungseinheit 59 in der Datenverwürfelungseinheit 5 entsprechend bereitgestellt.
  • In jedem Schritt gibt es eine Verarbeitungsgruppe, die aus den folgenden Prozessen (1) und (2) als Paar besteht, und die Datenverwürfelungseinheit 5 führt zehn dieser Schritte aus und erzeugt den Chiffriertext CT.
  • Die einzelnen Schlüsselumwandlungseinheiten 6069 empfangen die ersten bis vierten Eingangsdaten X0–X3 (jeweils 32 Bit), führen den Schlüsselumwandlungsprozess aus und geben den Erweiterungsschlüssel SK (128 Bit) und die ersten bis vierten Ausgangsdaten Y0–Y3 aus. Die Datendreheinheit 601, die Datensubstitutionseinheit 602 und die exklusives-ODER-Operationseinheit 603 berechnen die Daten T durch Ausführen der durch die folgende Formel (1) dargestellten Operation an den vierten Eingangsdaten X3: T = Rcon (+) Perm(ROTL8(X3)) (1).
  • Hierbei ist ROTL8 das Ergebnis der Bit-Drehverschiebung um 8 Bit, die an den Daten X in Richtung des oberen Bits (nach links) ausgeführt wird. Perm(X) ist das Ergebnis eines bestimmten Substitutionsprozesses, der an den Daten X ausgeführt wird. Der Operator „(+)" bezeichnet die exklusives-ODER-Operation je Bit. Die Konstante Rcon umfasst 32-Bit-Festwertdaten, die in jeder Schlüsselumwandlungseinheit 6069 unterschiedlich sind.
  • Die exklusives-ODER-Operationseinheiten 604607 führen jeweils die in den folgenden Formeln (2)–(5) angegebenen Operationen unter Verwendung der resultierenden Daten T aus und ermitteln jeweils die ersten bis vierten Ausgangsdaten Y0–Y3: Y0 = T (+) X0 (2) Y1 = Y0 (+) X1 (3) Y2 = Y1 (+) X2 (4) Y3 = Y2 (+) X3 (5).
  • Die Datenverknüpfungseinheit 608 ermittelt den Erweiterungsschlüssel SK, der eine Relation enthält, die in der folgenden Formel (6) ausgedrückt ist. Der Operator „||" bezeichnet eine Datenverknüpfung. Die nachstehende Formel (6) zeigt, dass der 128-Bit-Erweiterungsschlüssel SK durch Verknüpfen der ersten bis vierten Ausgangsdaten Y0–Y3 von jeweils 32 Bit ermittelt werden kann: SK = Y0||Y1||Y2||Y3 (6).
  • Jede der Schlüsselumwandlungseinheiten 6069 gibt den Erweiterungsschlüssel SK und die ersten bis vierten Ausgangsdaten Y0–Y3 aus, die als Ergebnis des vorstehenden Prozesses erhalten wurden.
  • 18 ist ein Diagramm, das die innere Struktur der das Rijndael-Verschlüsselungsverfahren verwendenden Entschlüsselungsvorrichtung zeigt. Eine Entschlüsselungsvorrichtung 1400 weist die folgenden Elemente auf: eine Erweiterungsschlüssel-Umkehrerzeugungseinheit 8, die die Erweiterungsschlüssel SK10–SK0 von jeweils 128 Bit in umgekehrter Reihenfolge der Verschlüsselung erzeugt, die aufgrund des 128-Bit-Verschlüsselungsschlüssels EK erfolgt; und eine Daten-Umkehrverwürfelungseinheit 7, die mit der Erweiterungsschlüssel-Umkehrerzeugungseinheit 8 verbunden ist, die Erweiterungsschlüssel SK10–SK0 von der Erweiterungsschlüssel-Umkehrerzeugungseinheit 8 empfängt, einen bestimmten Daten-Umkehrverwürfelungsprozess an dem 128-Bit-Chiffriertext unter Verwendung der Erweiterungsschlüssel SK10–SK0 durchführt und einen Entschlüsselungstext DT ausgibt.
  • Die Erweiterungsschlüssel-Umkehrerzeugungseinheit 8 weist die folgenden Elemente auf: eine Datenteilungseinheit 800, die den Verschlüsselungsschlüssel EK empfängt und ihn durch jeweils 32 Bit von oben in vier Datenblöcke teilt; eine Schlüsselumwandlungseinheit 80, die mit der Datenteilungseinheit 800 verbunden ist, die vier Blöcke empfängt, eine bestimmte Operation an ihnen ausführt und vier 32-Bit-Datenblöcke ausgibt; Schlüsselumwandlungseinheiten 8188, die jeweils mit der vorhergehenden Schlüsselumwandlungseinheit verbunden sind, vier 32-Bit-Datenblöcke von der vorhergehenden Schlüsselumwandlungseinheit empfangen, eine bestimmte Operation an ihnen ausführen, vier 32-Bit-Datenblöcke erzeugen und sie an die nächste Schlüsselumwandlungseinheit ausgeben; und eine Schlüsselumwandlungseinheit 89, die mit der Schlüsselumwandlungseinheit 88 verbunden ist, vier 32-Bit-Datenblöcke von der Schlüsselumwandlungseinheit 88 empfängt, eine bestimmte Operation an ihnen ausführt und den Erweiterungsschlüssel SK10 und vier 32-Bit-Datenblöcke erzeugt und sie ausgibt.
  • Da die von den Schlüsselumwandlungseinheiten 8089 ausgeführte bestimmte Operation die Gleiche wie die von den Schlüsselumwandlungseinheiten 6069 ausgeführte bestimmte Operation ist, hat jede der Schlüsselumwandlungseinheiten 8089 den gleichen Aufbau wie die in 17 gezeigte Schlüsselumwandlungseinheit. Daher werden sie hier nicht näher beschrieben.
  • Die Schlüsselumwandlungseinheiten 8088 geben jedoch nicht die Erweiterungsschlüssel SK1–SK9 aus, die sich von denen der Schlüsselumwandlungseinheiten 6068 unterscheiden. Daher kann jede der Schlüsselumwandlungseinheiten 8088 den Aufbau der in 17 gezeigten Schlüsselumwandlungseinheit haben, die keine Datenverknüpfungseinheit 608 hat.
  • Die Erweiterungsschlüssel-Umkehrerzeugungseinheit 8 weist weiterhin die folgenden Elemente auf: eine Schlüssel-Umkehrumwandlungseinheit 90, die mit der Schlüsselumwandlungseinheit 89 verbunden ist, die von der Schlüsselumwandlungseinheit 89 ausgegebenen vier 32-Bit-Datenblöcke empfängt, an diesen einen Schlüssel-Umkehrumwandlungsprozess ausführt, der später erläutert wird, den Erweiterungsschlüssel SK9 und vier 32-Bit-Datenblöcke erzeugt und sie ausgibt; und Schlüssel-Umkehrumwandlungseinheiten 9199, die jeweils mit der vorhergehenden Schlüssel-Umkehrumwandlungseinheit verbunden sind, vier 32-Bit-Datenblöcke von der vorhergehenden Schlüssel-Umkehrumwandlungseinheit empfangen, an diesen den Schlüssel-Umkehrumwandlungsprozess ausführen, der später erläutert wird, den Erweiterungsschlüssel und vier 32-Bit-Datenblöcke erzeugen und sie ausgeben.
  • Die Erweiterungsschlüssel, die von den Schlüssel-Umkehrumwandlungseinheiten 9099 ausgegeben werden, sind jeweils die Erweiterungsschlüssel SK9–SK0. Die Schlüssel-Umkehrumwandlungseinheit 99 gibt vier Datenblöcke aus, aber diese werden nicht für andere Prozesse verwendet.
  • Die Daten-Umkehrverwürfelungseinheit 7 weist die folgenden Elemente auf: eine letzte Daten-Umkehrumwandlungseinheit 70, die mit der Schlüsselumwandlungseinheit 89 verbunden ist, den Erweiterungsschlüssel SK10 von der Schlüsselumwandlungseinheit 89 empfängt, einen umgekehrten Umwandlungsprozess des von der letzten Datenumwandlungseinheit 59 ausgeführten Umwandlungsprozesses unter Verwendung des Chiffriertextes CT und des Erweiterungsschlüssels SK10 ausführt und sein Prozess-Ergebnis ausgibt; und eine Daten-Umkehrumwandlungseinheit 71, die mit der letzten Daten-Umkehrumwandlungseinheit 70 und der Schlüssel-Umkehrumwandlungseinheit 90 verbunden ist, jeweils das Prozess-Ergebnis und den Erweiterungsschlüssel SK9 von der letzten Daten-Umkehrumwandlungseinheit 70 und der Schlüssel-Umkehrumwandlungseinheit 90 empfängt, den umgekehrten Umwandlungsprozess des von der Datenumwandlungseinheit 58 ausgeführten Umwandlungsprozesses ausführt und sein Prozess-Ergebnis ausgibt.
  • Die Daten-Umkehrverwürfelungseinheit 7 weist weiterhin die folgenden Elemente auf: Daten-Umkehrumwandlungseinheiten 7279, die jeweils mit der vorhergehenden Daten-Umkehrumwandlungseinheit sowie mit den Schlüssel-Umkehrumwandlungseinheiten 9198 verbunden sind, die Erweiterungsschlüssel SK8–SK1 von den Schlüssel-Umkehrumwandlungseinheiten 9198 empfangen, den umgekehrten Umwandlungsprozess des von den Datenumwandlungseinheiten 5750 ausgeführten Umwandlungsprozesses ausführen und sein Prozess-Ergebnis ausgeben; und eine Schlüsseladdiereinheit 700, die mit der Daten-Umkehrumwandlungseinheit 79 und der Schlüssel-Umkehrumwandlungseinheit 99 verbunden ist, das Prozess-Ergebnis und den Erweiterungsschlüssel SK0 von der Daten-Umkehrumwandlungseinheit 79 bzw. der Schlüssel-Umkehrumwandlungseinheit 99 empfängt, den umgekehrten Umwandlungsprozess des von der Schlüsseladdiereinheit 500 ausgeführten Umwandlungsprozesses ausführt und den Entschlüsselungstext DT ausgibt.
  • 19 ist ein Diagramm, das den inneren Aufbau der einzelnen Schlüssel-Umkehrumwandlungseinheiten 9099 zeigt. Jede der Schlüssel-Umkehrumwandlungseinheiten 9099 führt den Schlüssel-Umkehrumwandlungsprozess aus, der der umgekehrten Umwandlung beim Schlüsselumwandlungsprozess entspricht, der in den einzelnen Schlüssel-Umkehrumwandlungseinheiten 6069 und 8089 aufgrund der ersten bis vierten Eingangsdaten Y0–Y3 von jeweils 32 Bit ausgeführt wird, und gibt die ersten bis vierten Ausgangsdaten Z0–Z3 und den 128-Bit-Erweiterungsschlüssel SK aus.
  • Jede der Schlüssel-Umkehrumwandlungseinheiten 9099 weist folgende Einheiten auf: eine exklusives-ODER-Operationseinheit 901, die eine exklusives-ODER-Operation je Bit zwischen den dritten Eingangsdaten Y2 und den vierten Eingangsdaten Y3 ausführt und die vierten Ausgangsdaten Z3 ausgibt; eine exklusives-ODER-Operationseinheit 902, die eine exklusives-ODER-Operation je Bit zwischen den zweiten Eingangsdaten Y1 und den dritten Eingangsdaten Y2 ausführt und die dritten Ausgangsdaten Z2 ausgibt; und eine exklusives-ODER-Operationseinheit 903, die eine exklusives-ODER-Operation je Bit zwischen den ersten Eingangsdaten Y0 und den zweiten Eingangsdaten Y1 ausführt und die zweiten Ausgangsdaten Z1 ausgibt.
  • Jede der Schlüssel-Umkehrumwandlungseinheiten 9099 weist weiterhin die folgenden Elemente auf: eine Datendreheinheit 905, die mit der exklusives-ODER-Operationseinheit 901 verbunden ist, ein Ausgangssignal der exklusives-ODER-Operationseinheit 901 empfängt, eine Bit-Drehverschiebung um 8 Bit an dem Ausgangssignal in Richtung des oberen Bits (nach links) durchführt und das Ergebnis ausgibt; und eine Datensubstitutionseinheit 906, die mit der Datendreheinheit 905 verbunden ist, das Operationsergebnis von der Datendreheinheit 905 empfängt, einen bestimmten Substitutionsprozess an dem Operationsergebnis ausführt und das Ergebnis ausgibt.
  • Jede der Schlüssel-Umkehrumwandlungseinheiten 9099 weist weiterhin die folgenden Elemente auf: eine exklusives-ODER-Operationseinheit 907, die mit der Datensubstitutionseinheit 906 verbunden ist, das Substitutionsergebnis von der Datensubstitutionseinheit 906 empfängt, eine exklusives-ODER-Operation je Bit zwischen dem Substitutionsergebnis und einer 32-Bit-Konstante Rcon, die in den einzelnen Schlüssel-Umkehrumwandlungseinheiten 9099 festgelegt wird, ausführt und Ausgangsdaten T ausgibt; eine exklusives-ODER-Operationseinheit 904, die mit der exklusives-ODER-Operationseinheit 907 verbunden ist, die Daten T von der exklusives-ODER-Operationseinheit 907 empfängt, eine exklusives-ODER-Operation je Bit zwischen den ersten Eingangsdaten Y0 und den Daten T ausführt und die ersten Ausgangsdaten Z0 ausgibt; und eine Datenverknüpfungseinheit 908, die mit den exklusives-ODER-Operationseinheiten 904901 verbunden ist, die ersten bis vierten Ausgangsdaten Z0–Z3 verknüpft und den Erweiterungsschlüssel SK ausgibt. Einzelheiten der in den einzelnen Einheiten ausgeführten Prozesse werden in der nachstehenden Beschreibung des Entschlüsselungsprozesses beschrieben.
  • Nachstehend wird der Entschlüsselungsprozess des mit der Entschlüsselungsvorrichtung 1400 ausgeführten Rijndael-Verschlüsselungsverfahrens beschrieben. Wie in 18 gezeigt, teilt die Datenteilungseinheit 800 den 128-Bit-Erweiterungsschlüssel EK durch jeweils 32 Bit von ihrem oberen Bit in vier 32-Bit-Datenblöcke. Anschließend wird ein Datenumwandlungsprozess aufgrund dieser vier Datenblöcke in den Schlüsselumwandlungseinheiten 8089 ausgeführt. Wie vorstehend dargelegt, ist der Schlüsselumwandlungsprozess, der in den Schlüsselumwandlungseinheiten 8089 ausgeführt wird, der Gleiche wie der Schlüsselumwandlungsprozess, der in den in 16 gezeigten Schlüsselumwandlungseinheiten 6069 ausgeführt wird. Die Erweiterungsschlüssel SK1–SK9, die jeweils in den Schlüsselumwandlungseinheiten 8088 erzeugt werden, werden jedoch nicht für einen nachfolgenden Prozess verwendet.
  • Eine Schlüsselumwandlungseinheit 89 gibt den erzeugten Erweiterungsschlüssel SK an die letzte Daten-Umkehrumwandlungseinheit 70 als Erweiterungsschlüssel SK10 aus. Dann erzeugen die einzelnen Schlüssel-Umkehrumwandlungseinheiten 9099 die einzelnen Erweiterungsschlüssel SK9–SK0 in der genannten Reihenfolge. Parallel zu den in der Schlüsselumwandlungseinheit 89 und den Schlüssel-Umkehrumwandlungseinheiten 9099 ausgeführten Prozessen führen die letzte Daten-Umkehrumwandlungseinheit 70, die Daten-Umkehrumwandlungseinheiten 7179 und die Schlüsseladdiereinheit 700 jeweils einen bestimmten Prozess aufgrund der Erweiterungsschlüssel SK10–SK0 aus. Die Schlüsseladdiereinheit 700 erzeugt schließlich den Entschlüsselungstext DT und gibt ihn aus.
  • Nachstehend wird der in der Daten-Umkehrverwürfelungseinheit 7 ausgeführte Prozess näher beschrieben. Der in der Daten-Umkehrverwürfelungseinheit 7 ausgeführte Prozess entspricht der umgekehrten Umwandlung des Prozesses, der in der Datenverwürfelungseinheit 5 der Verschlüsselungsvorrichtung 1300 von 16 ausgeführt wird. Und zwar führt zunächst die letzte Daten-Umkehrumwandlungseinheit 70 den umgekehrten Prozess des Prozesses aus, der von der letzten Datenumwandlungseinheit 59 mit dem Erweiterungsschlüssel SK10 ausgeführt wird. Anschließend führen die Daten-Umkehrumwandlungseinheiten 7179 jeweils den umgekehrten Umwandlungsprozess des Prozesses in den Datenumwandlungseinheiten 5850 unter Verwendung der einzelnen Erweiterungsschlüssel SK9–SK1 aus. Schließlich führt die Schlüsseladdiereinheit 700 den umgekehrten Umwandlungsprozess des Prozesses aus, der in der Schlüsseladdiereinheit 500 unter Verwendung des Erweiterungsschlüssels SK0 ausgeführt wird, und erzeugt den Entschlüsselungstext DT und gibt ihn aus. Wie vorstehend dargelegt, muss bei der Entschlüsselung der Erweiterungsschlüssel in umgekehrter Reihenfolge des Verschlüsselungsprozesses erzeugt werden.
  • Nachstehend wird der Schlüssel-Umkehrumwandlungsprozess beschrieben, der in den einzelnen Schlüssel-Umkehrumwandlungseinheiten 9099 von 19 ausgeführt wird.
  • Jede der exklusives-ODER-Operationseinheiten 901903 ermittelt die einzelnen zweiten bis vierten Ausgangsdaten Z1–Z3 durch Ausführen der Operationen, die in den folgenden Formeln (7)–(9) dargestellt sind: Z1 = Y0 (+) Y1 (7) Z2 = Y1 (+) Y2 (8) Z3 = Y2 (+) Y3 (9).
  • Die Datendreheinheit 905, die Datensubstitutionseinheit 906 und die exklusives-ODER-Operationseinheit 907 berechnen die Daten T durch Ausführen der in der folgenden Formel (10) angegebenen Operation für die vierten Ausgangsdaten Z3: T = Rcon (+) Perm(ROTL8(Z3)) (10).
  • Die exklusives-ODER-Operationseinheit 904 ermittelt die ersten Ausgangsdaten Z0 mit einer exklusives-ODER-Operation je Bit zwischen den Daten T und den ersten Eingangsdaten Y0 nach der folgenden Formel (11): Z0 = T (+) Y0 (11).
  • Die Datenverknüpfungseinheit 908 verknüpft die ersten bis vierten Ausgangsdaten Z0–Z3 nach der folgenden Formel (12) und erzeugt den 128-Bit-Erweiterungsschlüssel SK: SK = Z0||Z1|Z2||Z3 (12).
  • Die einzelnen Schlüssel-Umkehrumwandlungseinheiten 9099 geben den aus dem vorstehenden Prozess resultierenden Erweiterungsschlüssel SK und die ersten bis vierten Ausgangsdaten Z0–Z3 aus.
  • Wie in 17 gezeigt, führt die Datensubstitutionseinheit 602 einen nichtlinearen Prozess bei der Verschlüsselung nach diesem Verfahren aus. Dieser beeinflusst den Erweiterungsschlüssel SK und alle Ausgangsdaten von den Daten, die mit dem nichtlinearen Prozess durch die exklusives-ODER-Operationseinheiten 604607 verarbeitet werden. Daher kann mit diesem Verfahren ein hochzufälliger Erweiterungsschlüssel erzeugt werden, obwohl es ein einfacher Schlüsselumwandlungsprozess ist.
  • Zweiter Stand der Technik
  • Als zweiten Stand der Technik gibt es den als Data Encryption Standard (DES; Datenverschlüsselungsstandard) bezeichneten US-Standard. 20 ist ein Diagramm, das den Aufbau einer Schlüsselumwandlungseinheit 10 zeigt, die von einer Verschlüsselungsvorrichtung im DES-Verfahren verwendet wird. Die Schlüsselumwandlungseinheit 10 weist Drehverschiebungseinheiten 101 und 102, eine Datenverknüpfungseinheit 103, die mit den Drehverschiebungseinheiten 101 und 102 verbunden ist, und eine mit der Datenverknüpfungseinheit 103 verbundene Datendegenerationseinheit 104 auf.
  • Nachstehend werden die Operationen der Schlüsselumwandlungseinheit 10 beschrieben. Die Drehverschiebungseinheit 101 führt eine Bit-Drehverschiebung um eine bestimmte Anzahl von Bits an ersten 28-Bit-Eingangsdaten aus und erzeugt erste Drehverschiebungsdaten. Die Drehverschiebungseinheit 102 führt eine Bit-Drehverschiebung um eine bestimmte Anzahl von Bits an zweiten 28-Bit-Eingangsdaten aus und erzeugt zweite Drehverschiebungsdaten. Die ersten Drehverschiebungsdaten und die zweiten Drehverschiebungsdaten werden als erste Ausgangsdaten bzw. zweite Ausgangsdaten von der Schlüsselumwandlungseinheit 10 ausgegeben. Die Datenverknüpfungseinheit 103 verknüpft die ersten Drehverschiebungsdaten und die zweiten Drehverschiebungsdaten, sodass 56-Bit-Daten entstehen, und gibt die Daten an die Datendegenerationseinheit 104 aus. Die Datendegenerationseinheit 104 gewinnt Daten mit 48 Bit an einer festgelegten Bitstelle aus den Eingangsdaten und gibt den Erweiterungsschlüssel aus.
  • Da mit der Verschlüsselungsvorrichtung beim DES-Verfahren die Erzeugung des Erweiterungsschlüssels grundsätzlich mit einem Datenverschiebungsprozess und einem Datengewinnungsprozess realisiert wird, kann der gleiche Erweiterungsschlüssel-Erzeugungsprozess verwendet werden, um den Erweiterungsschlüssel sowohl in dem Verschlüsselungsprozess als auch in dem Entschlüsselungsprozess zu erzeugen. Dadurch gibt es keinen Unterschied bei der zur Erzeugung des Erweiterungsschlüssels erforderlichen Verarbeitungsauslastung zwischen dem Verschlüsselungs- und dem Entschlüsselungsprozess.
  • Diese Stände der Technik haben jedoch folgende Probleme. Bei dem Verschlüsselungsverfahren des ersten Standes der Technik wird mehr Zeit zum Ausführen des Erzeugungsprozesses für den Erweiterungsschlüssel bei der Entschlüsselung als bei der Verschlüsselung benötigt. Das hat folgende Ursachen. Wie in 16 gezeigt, wird der Verschlüsselungsschlüssel EK in der Datenverwürfelungseinheit 5 der Entschlüsselungsvorrichtung 1300 wie in der Schlüsseladdiereinheit 500 verwendet, die den ersten Prozess ausführt. Daher kann der Prozess in der Datenverwürfelungseinheit 5 parallel zu dem Prozess in der Erweiterungsschlüssel-Erzeugungseinheit 6 ausgeführt werden.
  • Andererseits muss, wie in 18 gezeigt, in der Daten-Umkehrverwürfelungseinheit 7 der Entschlüsselungsvorrichtung 1400 die letzte Daten-Umkehrumwandlungseinheit 70, die den Prozess zuerst ausführt, den Erweiterungsschlüssel SK10 verwenden, der von der Erweiterungsschlüssel-Umkehrerzeugungseinheit 8 bereitgestellt wird. Um den Erweiterungsschlüssel SK10 zu erhalten, muss ein Schlüsselumwandlungsprozess in den Schlüsselumwandlungseinheiten 8089 ausgeführt werden. Und zwar kann die letzte Daten-Umkehrumwandlungseinheit 70 ihren Prozess erst beginnen, wenn der Schlüsselumwandlungsprozess zehnmal ausgeführt worden ist. Der Entschlüsselungsprozess dauert länger als der Verschlüsselungsprozess, da diese Schlüsselumwandlungsprozesse stattfinden müssen.
  • Wenn die Zeitdifferenz zwischen dem Verschlüsselungsprozess und dem Entschlüsselungsprozess extrem groß ist, besteht folgendes Problem. Nehmen wir beispielsweise an, dass es ein Datenübertragungssystem gibt, in dem Daten in Echtzeit zwischen einer Empfangsvorrichtung und einer Sendevorrichtung ausgetauscht werden. Wenn die Verschlüsselungsvorrichtung 1300 und die Entschlüsselungsvorrichtung 1400, die beim ersten Stand der Technik beschrieben worden sind, in einem solchen Datenübertragungssystem verwendet werden, kann die Sendevorrichtung Daten verschlüsseln und sie in Echtzeit senden. Die Empfangsvorrichtung kann die verschlüsselte Nachricht jedoch nicht in Echtzeit entschlüsseln, da die Entschlüsselung Zeit erfordert. Daher muss ein Spielraum gelassen werden, um die in der Empfangsvorrichtung empfangenen verschlüsselten Daten zwischenzuspeichern, und das führt zu einem Kostenanstieg bei der Empfangsvorrichtung.
  • Wenn, wie in 21 gezeigt, ein elektronisches Maut-Erfassungssystem (ETC-System) 1800 an einer Mautschranke einer Schnellstraße installiert ist, findet eine Datenübertragung zwischen einer Mautschranken-Antenne 1804 und einer in einem Fahrzeug 1801 angebrachten Fahrzeug-Einbauvorrichtung 1802 statt und eine Authentisierung wird durchgeführt. Da normalerweise das Fahrzeug 1801 die Schranke des ETC-Systems 1800 passiert, ohne an der Schranke anzuhalten, muss das ETC-System schnell reagieren. Wenn die herkömmliche Verschlüsselungsvorrichtung 1300 und die herkömmliche Entschlüsselungsvorrichtung 1400 in dem ETC-System 1800 verwendet werden, muss daher Hochleistungs-Hardware zum Einsatz kommen.
  • Das Problem des ersten Standes der Technik, das darin besteht, dass die Zeit, die zum Erzeugen des Erweiterungsschlüssels bei der Entschlüsselung benötigt wird, länger als die Zeit bei der Verschlüsselung ist, wird zwar beim zweiten Stand der Technik gelöst, aber es besteht noch immer das Problem, dass der Erweiterungsschlüssel nicht ausreichend zufällig ist.
  • Beim zweiten Stand der Technik werden Daten, bei denen eine bestimmte Anzahl von Bits an einer bestimmten Stelle aus den verknüpften Daten nach Anwendung der Bit-Drehverschiebung gewonnen wird, als Erweiterungsschlüssel behandelt. Da ein Datenverknüpfungsprozess oder ein Substitutionsprozess nicht für einen Prozess zum Erzeugen des Erweiterungsschlüssels verwendet wird, hat der Erweiterungsschlüssel keine ausreichende Zufälligkeit. Beim Erzeugungsprozess für den Erweiterungsschlüssel beim zweiten Stand der Technik kann der Schlüssel kein hohes Sicherheitsniveau halten, und er wird daher als „schwacher Schlüssel" bezeichnet. Der schwache Schlüssel beim DES-Verfahren wird beispielsweise in Alfred J. Menezes, Paul C. van Oorschot, Scott A. Vanstone, „Handbook of Applied Cryptography" („Handbuch der angewandten Kryptographie"), CRC Press, 1997, S. 256–259, beschrieben.
  • KURZE DARSTELLUNG DER ERFINDUNG
  • Angesichts der vorstehenden Probleme will die vorliegende Erfindung ein Verschlüsselungssystem zur Verfügung stellen, das die Differenz zwischen der Verschlüsselungszeit und der Entschlüsselungszeit verringert.
  • Ein weiteres Ziel der vorliegenden Erfindung ist es, ein Verschlüsselungssystem zur Verfügung zu stellen, das einen Erweiterungsschlüssel mit einem hohen Maß an Zufälligkeit und Sicherheit erzeugen kann. Um die vorgenannten Ziele zu erreichen, weist eine erfindungsgemäße Erweiterungsschlüssel-Erzeugungsvorrichtung, die Verschlüsselungsschlüsseldaten als Eingangssignal empfängt und mehrere Verschlüsselungsschlüsseldaten ausgibt, eine Datenteilungseinheit, die so betreibbar ist, dass sie die Verschlüsselungsschlüsseldaten in mehrere Teilschlüsseldaten unterteilt; und mehrere in Reihe geschaltete Schlüsselumwandlungseinheiten, die so betreibbar sind, dass sie die mehreren Teilschlüsseldaten als Eingangssignal empfangen und die mehreren Erweiterungsschlüsseldaten ausgeben, auf, wobei jede der mehreren Schlüsselumwandlungseinheiten Folgendes aufweist: eine Ausgangsdaten-Berechnungseinheit, die so betreibbar ist, dass sie die mehreren Teilschlüsseldaten oder mehreren Ausgangsdaten von einer vorhergehenden Schlüsselumwandlungseinheit als mehrere Eingangsdaten empfängt, einen festen Umwandlungsprozess an den einzelnen Eingangsdaten so durchführt, dass kein Bitwert der einzelnen Eingangsdaten einen anderen Bitwert der Eingangsdaten beeinträchtigt, und mehrere Ausgangsdaten an eine nachfolgende Schlüsselumwandlungseinheit ausgibt; und eine Erweiterungsschlüssel-Berechnungseinheit, die so betreibbar ist, dass sie die mehreren Eingangsdaten verknüpft und die Erweiterungsschlüsseldaten erzeugt.
  • Da die Ausgangsdaten-Berechnungseinheit, wie vorstehend dargelegt, von der Erweiterungsschlüssel-Berechnungseinheit getrennt werden kann und der Prozess in der Ausgangsdaten-Berechnungseinheit ein fester Umwandlungsprozess an den einzelnen Eingangsdaten ist, in dem kein Bitwert der einzelnen Eingangsdaten einen anderen Bitwert der Eingangsdaten beeinträchtigt, kann man eine Verarbeitungseinheit verwenden, die dem äquivalent ist, was durch die Ausführung von Prozessen in einer bestimmten Anzahl von Schritten in der Ausgangsdaten-Berechnungseinheit entsteht. Nachdem die Daten in der vorgenannten äquivalenten Verarbeitungseinheit bei der Entschlüsselung erzeugt worden sind, ist es daher möglich, die Erweiterungsschlüssel, die zum Entschlüsseln der Chiffriertextdaten verwendet werden, nacheinander dadurch zu erzeugen, dass die umgekehrten Umwandlungsprozesse der von der Schlüsselumwandlungseinheit ausgeführten Prozesse nacheinander ausgeführt werden. Dadurch brauchen die Prozesse nicht in einer bestimmten Anzahl von Schritten in der Ausgangsdaten-Berechnungseinheit bei der Entschlüsselung ausgeführt zu werden, sodass die Differenz zwischen der Verschlüsselungszeit und der Entschlüsselungszeit verringert werden kann.
  • Außerdem kann die Erweiterungsschlüssel-Berechnungseinheit einen hochzufälligen und sicheren Erweiterungsschlüssel bereitstellen, da sie die mehreren Teilschlüsseldaten verknüpft, um die Erweiterungsschlüsseldaten zu berechnen.
  • Beispielsweise führt die Ausgangsdaten-Berechnungseinheit eine Drehverschiebungsoperation um eine bestimmte Anzahl von Bits an mindestens einer Einheit der mehreren Eingangsdaten aus, und die bestimmte Anzahl von Bits ist kein Teiler der Anzahl der Bits der Eingangsdaten, an denen die Drehverschiebungsoperation ausgeführt wird.
  • Da die Anzahl von Bits für die Drehverschiebungsoperation kein Teiler der Eingangsdaten ist, an denen die Drehverschiebungsoperation ausgeführt wird, wird es schwer, diese Eingangsdaten als Original-Eingangsdaten auch dann zu erzeugen, wenn mehrere Drehverschiebungen an den Eingangsdaten ausgeführt werden. Daher kann ein hochgradig zufälliger und sicherer Erweiterungsschlüssel bereitgestellt werden.
  • Außerdem führt die Erweiterungsschlüssel-Berechnungseinheit einen Substitutionsprozess an mindestens einer Einheit der mehreren Eingangsdaten aufgrund einer bestimmten Substitutionstabelle in einem Zwischenprozess des Verknüpfens der mehreren Eingangsdaten aus.
  • Der Erweiterungsschlüssel mit einem hohen Maß an Zufälligkeit und Sicherheit kann durch Integrieren eines nichtlinearen Prozesses, wie etwa eines Substitutionsprozesses, bereitgestellt werden.
  • Die vorliegende Erfindung kann nicht nur als derartige Erweiterungsschlüssel-Erzeugungsvorrichtung verkörpert werden, sondern sie kann auch als Verschlüsselungsvorrichtung, die mit dieser Erweiterungsschlüssel-Erzeugungsvorrichtung versehen ist, und als Entschlüsselungsvorrichtung, die Chiffriertextdaten entschlüsselt, die unter Verwendung dieser Erweiterungsschlüssel-Erzeugungsvorrichtung verschlüsselt werden, verkörpert werden. Die vorliegende Erfindung kann auch als Verschlüsselungssystem mit einer Verschlüsselungsvorrichtung und einer Entschlüsselungsvorrichtung sowie als Erweiterungsschlüssel-Erzeugungsverfahren oder als Programm mit einer Computerfunktion als Erweiterungsschlüssel-Erzeugungsvorrichtung verkörpert werden. Dieses Programm kann über ein Aufzeichnungsmedium, wie etwa eine CD-ROM, oder ein Übertragungsmedium wie das Internet breit verteilt werden.
  • KURZE BESCHREIBUNG DER ZEICHNUNGEN
  • Diese und weitere Ziele, Vorzüge und Merkmale der Erfindung dürften aus der nachstehenden Beschreibung in Verbindung mit den beigefügten Zeichnungen hervorgehen, die eine bestimmte Ausführungsform der Erfindung erläutern. In den Zeichnungen sind:
  • 1 ein Blockdiagramm, das einen exemplarischen Aufbau einer Verschlüsselungsvorrichtung 1100 nach der Ausführungsform der vorliegenden Erfindung zeigt;
  • 2 ein Blockdiagramm, das einen exemplarischen Aufbau von Datenumwandlungseinheiten 1118 nach der Ausführungsform der vorliegenden Erfindung zeigt;
  • 3 ein Blockdiagramm, das einen exemplarischen Aufbau von Schlüsselumwandlungseinheiten 2127 nach der Ausführungsform der vorliegenden Erfindung zeigt;
  • 4 ein Blockdiagramm, das einen exemplarischen Aufbau einer letzten Schlüsselumwandlungseinheit 28 nach der Ausführungsform der vorliegenden Erfindung zeigt;
  • 5 ein Diagramm, das eine Substitutionstabelle Sbox darstellt;
  • 6 ein Blockdiagramm, das einen exemplarischen Aufbau einer Entschlüsselungsvorrichtung 1200 nach der Ausführungsform der vorliegenden Erfindung zeigt;
  • 7 ein Blockdiagramm, das einen exemplarischen Aufbau von Daten-Umkehrumwandlungseinheiten 3138 nach der Ausführungsform der vorliegenden Erfindung zeigt;
  • 8 ein Blockdiagramm, das einen exemplarischen Aufbau einer Schlüsselmodifikationseinheit 40 nach der Ausführungsform der vorliegenden Erfindung zeigt;
  • 9 ein Blockdiagramm, das einen exemplarischen Aufbau von Schlüssel-Umkehrumwandlungseinheiten 4147 nach der Ausführungsform der vorliegenden Erfindung zeigt;
  • 10 ein Diagramm, das eine Umkehrsubstitutionstabelle InvSbox darstellt;
  • 11 ein Diagramm, das ein konkretes Beispiel zur Beschreibung der Relation zwischen der Substitutionstabelle Sbox und der Umkehrsubstitutionstabelle InvSbox zeigt;
  • 12 ein Blockdiagramm, das einen exemplarischen Aufbau einer Schlüsselmodifikationseinheit 160 zeigt;
  • 13 ein Diagramm, das eine Bit-Ersetzungseinheit 1500 beschreibt;
  • 14 ein Diagramm, das eine Bit-Umkehrungseinheit 1520 und eine exklusives-ODER-Operationseinheit 1540, die dieser entspricht, beschreibt;
  • 15 ein Diagramm, das die Außenansicht eines DVD-Players zeigt, der als praktisches Beispiel für das Verschlüsselungssystem der Ausführungsform dient;
  • 16 ein Blockdiagramm, das den Aufbau der Verschlüsselungsvorrichtung 1300 des ersten Standes der Technik zeigt;
  • 17 ein Blockdiagramm, das den Aufbau der Schlüsselumwandlungseinheiten 6069 des ersten Standes der Technik zeigt;
  • 18 ein Blockdiagramm, das den Aufbau der Entschlüsselungsvorrichtung 1400 des ersten Standes der Technik zeigt;
  • 19 ein Blockdiagramm, das den Aufbau der Schlüssel-Umkehrumwandlungseinheiten 9099 des ersten Standes der Technik zeigt;
  • 20 ein Blockdiagramm, das den Aufbau der Schlüsselumwandlungseinheit 10 des zweiten Standes der Technik zeigt; und
  • 21 ein Diagramm, das ein ETC-System beschreibt.
  • BESCHREIBUNG EINER BEVORZUGTEN AUSFÜHRUNGSFORM
  • Nachstehend wird ein erfindungsgemäßes Verschlüsselungssystem anhand einer Ausführungsform unter Bezugnahme auf die Zeichnungen näher beschrieben. Das Verschlüsselungssystem besteht aus einer Verschlüsselungsvorrichtung und einer Entschlüsselungsvorrichtung, die später erläutert werden.
  • 1 ein Blockdiagramm, das einen exemplarischen Aufbau der Verschlüsselungsvorrichtung nach der Ausführungsform der vorliegenden Erfindung zeigt.
  • Eine Datenverschlüsselungseinheit 1100 weist die folgenden Elemente auf: eine Erweiterungsschlüssel-Erzeugungseinheit 2, die acht Erweiterungsschlüssel SK0–SK7 mit jeweils 64 Bit aufgrund eines 128-Bit-Verschlüsselungsschlüssels EK erzeugt; und eine Datenverwürfelungseinheit 1, die mit der Erweiterungsschlüssel-Erzeugungseinheit 2 verbunden ist, die Erweiterungsschlüssel SK0–SK7 von der Erweiterungsschlüssel-Erzeugungseinheit 2 empfängt, eine Datenverwürfelung durch Wiederholen eines bestimmten Datenumwandlungsprozesses an einem Klartext PT unter Verwendung der Erweiterungsschlüssel SK0–SK7 durchführt und einen 64-Bit-Chiffriertext CT erzeugt.
  • Die Datenverwürfelungseinheit 1 besteht aus acht Datenumwandlungseinheiten 1118, die vertikal verknüpft sind. Die Erweiterungsschlüssel-Erzeugungseinheit 2 besteht aus einer Datenteilungseinheit 20, sieben Schlüsselumwandlungseinheiten 2127 und einer letzten Schlüsselumwandlungseinheit 28, die vertikal verknüpft sind.
  • 2 ein Blockdiagramm, das den inneren Aufbau der Datenumwandlungseinheiten 1118 zeigt. Jede der Datenumwandlungseinheiten 1118 weist die folgenden Elemente auf: eine exklusives-ODER-Operationseinheit 111, die mit einer der Schlüsselumwandlungseinheiten 2127 oder der letzten Schlüsselumwandlungseinheit 28 verbunden ist, den Erweiterungsschlüssel SK (einer der Schlüssel SK0–SK7) von einer dieser Schlüsselumwandlungseinheiten empfängt, eine exklusives-ODER-Operation je Bit zwischen dem Erweiterungsschlüssel SK und Eingangsdaten X ausführt und Daten A ausgibt; und eine Datenteilungseinheit 112, die mit der exklusives-ODER-Operationseinheit 111 verbunden ist, die Daten A von der exklusives-ODER-Operationseinheit 111 empfängt und die Daten A in vier Datenblöcke B0–B3 unterteilt.
  • Jede der Datenumwandlungseinheiten 1118 weist weiterhin die folgenden Elemente auf: Datensubstitutionseinheiten 113116, die mit der Datenteilungseinheit 112 verbunden sind, die einzelnen Datenblöcke B0–B3 von der Datenteilungseinheit 112 empfangen und in einem später beschriebenen Verfahren die einzelnen Datenblöcke B0–B3 durch die einzelnen Datenblöcke C0–C3 ersetzen; und eine Datenverknüpfungseinheit 117, die mit den Datensubstitutionseinheiten 113116 verbunden ist, die Datenblöcke C0–C3 entsprechend von den Datensubstitutionseinheiten 113116 empfängt, die Datenblöcke C0–C3 in einem später beschriebenen Verfahren verknüpft und Daten Y ausgibt.
  • 3 ein Blockdiagramm, das den inneren Aufbau der Schlüsselumwandlungseinheiten 2127 zeigt. Jede der Schlüsselumwandlungseinheiten 2127 weist weiterhin die folgenden Elemente auf: eine Erweiterungsschlüssel-Berechnungseinheit 210, die erste bis vierte Eingangsdaten X0–X3 mit jeweils 32 Bit von der Datenteilungseinheit 20 oder der vorhergehenden Schlüsselumwandlungseinheit empfängt und einen 64-Bit-Erweiterungsschlüssel SK aus den ersten bis vierten Eingangsdaten X0–X3 berechnet; und eine Ausgangsdaten-Berechnungseinheit 230, die die ersten bis vierten Ausgangsdaten Y0–Y3, die als Eingangssignal für eine nachfolgende Schlüsselumwandlungseinheit oder die letzte Schlüsselumwandlungseinheit 28 verwendet werden, aus den ersten bis vierten Eingangsdaten X0–X3 berechnet.
  • Die Erweiterungsschlüssel-Berechnungseinheit 210 weist die folgenden Elemente auf: eine exklusives-ODER-Operationseinheit 211, die eine exklusives-ODER-Operation je Bit zwischen den zweiten Eingangsdaten X1 und den vierten Eingangsdaten X3 ausführt und 32-Bit-Daten A berechnet; eine Datensubstitutionseinheit 212, die mit der exklusives-ODER-Operationseinheit 211 verbunden ist, die Daten A von der exklusives-ODER-Operationseinheit 211 empfängt und in einem später beschriebenen Verfahren die Daten A durch Daten B ersetzt; und eine exklusives-ODER-Operationseinheit 213, die mit der Datensubstitutionseinheit 212 verbunden ist, die Daten B von der Datensubstitutionseinheit 212 empfängt, eine exklusives-ODER-Operation je Bit zwischen den Daten B und den dritten Eingangsdaten X2 ausführt und Daten C berechnet.
  • Die Erweiterungsschlüssel-Berechnungseinheit 210 weist weiterhin die folgenden Elemente auf: eine exklusives-ODER-Operationseinheit 214, die mit der exklusives-ODER-Operationseinheit 213 verbunden ist, die Daten C von der exklusives-ODER-Operationseinheit 213 empfängt, eine exklusives-ODER-Operation je Bit zwischen den Daten C und den zweiten Eingangsdaten X1 ausführt und Daten D berechnet; eine exklusives-ODER-Operationseinheit 215, die mit der exklusives-ODER-Operationseinheit 214 verbunden ist, die Daten D von der exklusives-ODER-Operationseinheit 214 empfängt, eine exklusives-ODER-Operation je Bit zwischen den Daten D und den ersten Eingangsdaten X0 ausführt und Daten E berechnet; und eine Datenverknüpfungseinheit 216, die mit den exklusives-ODER-Operationseinheiten 213 und 215 verbunden ist, die Daten C und die Daten E von der exklusives-ODER-Operationseinheit 213 bzw. 215 empfängt, die Daten C und die Daten E verknüpft und sie als 64-Bit-Erweiterungsschlüssel SK ausgibt.
  • Die Ausgangsdaten-Berechnungseinheit 230 weist die folgenden Elemente auf: eine Datendreheinheit 217, die eine Bit-Drehverschiebung um 1 Bit an den ersten Eingangsdaten X0 in Richtung des unteren Bits (nach rechts) ausführt und die Daten als vierte Ausgangsdaten Y3 ausgibt; eine Datendreheinheit 218, die eine Bit-Drehverschiebung um 5 Bit an den zweiten Eingangsdaten X1 in Richtung des unteren Bits (nach rechts) ausführt und die Daten als erste Ausgangsdaten Y0 ausgibt; eine Datendreheinheit 219, die eine Bit-Drehverschiebung um 9 Bit an den dritten Eingangsdaten X2 in Richtung des unteren Bits (nach rechts) ausführt und die Daten als zweite Ausgangsdaten Y1 ausgibt; und eine Datendreheinheit 220, die eine Bit-Drehverschiebung um 13 Bit an den vierten Eingangsdaten X3 in Richtung des unteren Bits (nach rechts) ausführt und die Daten als dritte Ausgangsdaten Y2 ausgibt.
  • 4 ein Blockdiagramm, das den inneren Aufbau einer letzten Schlüsselumwandlungseinheit 28 zeigt. Die letzte Schlüsselumwandlungseinheit 28 hat die Konfiguration der Schlüsselumwandlungseinheit von 3, die keine Ausgangsdaten-Berechnungseinheit 230 enthält. Die letzte Schlüsselumwandlungseinheit 28 weist die Erweiterungsschlüssel-Berechnungseinheit 280 auf.
  • Die Erweiterungsschlüssel-Berechnungseinheit 280 weist die folgenden Elemente auf: eine exklusives-ODER-Operationseinheit 281; eine Datensubstitutionseinheit 282, die mit der exklusives-ODER-Operationseinheit 281 verbunden ist; eine exklusives-ODER-Operationseinheit 283, die mit der Datensubstitutionseinheit 282 verbunden ist; eine exklusives- ODER-Operationseinheit 284, die mit der exklusives-ODER-Operationseinheit 283 verbunden ist; eine exklusives-ODER-Operationseinheit 285, die mit der exklusives-ODER-Operationseinheit 284 verbunden ist; und eine Datenverknüpfungseinheit 286, die mit den exklusives-ODER-Operationseinheiten 283 und 285 verbunden ist.
  • Die exklusives-ODER-Operationseinheiten 281 und 283285, die Datensubstitutionseinheit 282 und die Datenverknüpfungseinheit 286 haben jeweils den gleichen Aufbau wie die exklusives-ODER-Operationseinheiten 211 und 213215, die Datensubstitutionseinheit 212 und die Datenverknüpfungseinheit 216 der Erweiterungsschlüssel-Berechnungseinheit 210 von 3. Daher werden sie hier nicht näher beschrieben.
  • Nachstehend werden die von der Verschlüsselungsvorrichtung 1100 ausgeführten Operationen unter Bezugnahme auf die 15 beschrieben.
  • Nachstehend wird der Gesamtprozessablauf der in 1 gezeigten Verschlüsselungsvorrichtung beschrieben.
  • Die Datenteilungseinheit 20 in der Erweiterungsschlüssel-Erzeugungseinheit 2 teilt den 128-Bit-Verschlüsselungsschlüssel EK jeweils durch 32 Bit von seinem oberen Bit aus in vier Datenblöcke und gibt sie an eine Schlüsselumwandlungseinheit 21 aus. Die Schlüsselumwandlungseinheit 21 führt den Schlüsselumwandlungsprozess, der später beschrieben wird, für die vier eingegeben Blöcke aus und berechnet einen 64-Bit-Erweiterungsschlüssel SK0 und vier 32-Bit-Datenblöcke. Die Schlüsselumwandlungseinheit 21 gibt den Erweiterungsschlüssel SK0 an eine Datenumwandlungseinheit 11 aus und gibt die berechneten vier Datenblöcke an eine nachfolgende Schlüsselumwandlungseinheit 22 aus.
  • Die Datenumwandlungseinheit 11 führt den Datenumwandlungsprozess, der später beschrieben wird, an einem 64-Bit-Klartext PT aufgrund des eingegebenen Erweiterungsschlüssels SK0 aus und berechnet 64-Bit-Daten. Die Datenumwandlungseinheit 11 gibt die berechneten Daten an eine nachfolgende Datenumwandlungseinheit 12 aus.
  • Die Schlüsselumwandlungseinheit 22 führt den gleichen Schlüsselumwandlungsprozess wie die Schlüsselumwandlungseinheit 21 an den vier von der vorhergehenden Schlüsselumwandlungseinheit 21 eingegebenen 32-Bit-Datenblöcken aus und berechnet den Erweiterungsschlüssel SK1 und die vier 32-Bit-Datenblöcke. Die Schlüsselumwandlungseinheit 22 gibt den Erweiterungsschlüssel SK1 an die Datenumwandlungseinheit 12 aus und gibt die berechneten vier Datenblöcke an eine nachfolgende Schlüsselumwandlungseinheit 23 aus.
  • Die Datenumwandlungseinheit 12 führt den gleichen Datenumwandlungsprozess wie die Datenumwandlungseinheit 11 an den von der vorhergehenden Datenumwandlungseinheit 11 eingegebenen Daten aufgrund des eingegebenen Erweiterungsschlüssels SK1 aus und berechnet 64-Bit-Daten. Die Datenumwandlungseinheit 12 gibt die berechneten Daten an eine nachfolgende Datenumwandlungseinheit 13 aus.
  • Die gleichen Prozesse werden in den Schlüsselumwandlungseinheiten 2327 und den Datenumwandlungseinheiten 1317 ausgeführt. Die letzte Schlüsselumwandlungseinheit 28 führt den letzten Schlüsselumwandlungsprozess, der später beschrieben wird, an den vier von der Schlüsselumwandlungseinheit 27 eingegebenen Datenblöcken aus, ermittelt den Erweiterungsschlüssel SK7 und gibt ihn an die Datenumwandlungseinheit 18 aus.
  • Die Datenumwandlungseinheit 18 führt den gleichen Datenumwandlungsprozess wie die Datenumwandlungseinheit 11 für die von der Datenumwandlungseinheit 17 eingegebenen Daten aufgrund des Erweiterungsschlüssels SK7 aus, berechnet einen 64-Bit-Chiffriertext CT und gibt ihn aus.
  • Nachstehend wird der Datenumwandlungsprozess beschrieben, der von den einzelnen Datenumwandlungseinheiten 118 in 2 ausgeführt wird. Jede der Datenumwandlungseinheiten 118 führt den Datenumwandlungsprozess an den 64-Bit-Eingangsdaten X aufgrund des 64-Bit-Erweiterungsschlüssels SK aus und gibt 64-Bit-Ausgangsdaten Y aus. Die Eingangsdaten X sind entweder der Klartext PT oder die von der vorhergehenden Datenumwandlungseinheit ausgegebenen Daten. Der Erweiterungsschlüssel SK ist einer der Schlüssel SK0–SK7, die von den einzelnen Schlüsselumwandlungseinheiten 2128 ausgegeben werden.
  • Die exklusives-ODER-Operationseinheit 111 führt eine exklusives-ODER-Operation je Bit zwischen den Eingangsdaten X und dem Erweiterungsschlüssel SK aus, wie in der folgenden Formel (13) angegeben, und ermittelt die 64-Bit-Daten A: A = X (+) SK (13).
  • Die Datenteilungseinheit 112 empfängt die Daten A von der exklusives-ODER-Operationseinheit 111 und teilt die Daten A in vier Datenblöcke B0, B1, B2 und B3 von den ersten vier oberen Bits her. Zwischen den Daten A und den Datenblöcken B0–B3 besteht die in der folgenden Formel (14) angegebene Relation: A = B0||B1||B2||B3 (14).
  • Die Datenteilungseinheit 112 gibt die vier Datenblöcke B0–B3 nacheinander an die Datensubstitutionseinheiten 113116 aus.
  • Die Datensubstitutionseinheit 113 ermittelt nach der folgenden Formel (15) 16-Bit-Daten C0 aufgrund der von der Datenteilungseinheit 112 eingegebenen 16-Bit-Daten C0: C0 = Sbox[B0h]||Sbox[B0l] (15).
  • Sbox bezeichnet hier eine Substitutionstabelle. Wie in 5 gezeigt, besteht die Substitutionstabelle Sbox aus Arrays mit 256 Elementen, und jedes Element besteht aus 8-Bit-Daten. B0h bezeichnet 8 Bit auf der oberen Ebene der Daten B0, während B0l 8 Bit auf der unteren Ebene der Daten B0 bezeichnet.
  • Sbox[B0h] gibt das B0h-te Element in der Substitutionstabelle Sbox an, während Sbox[B0l] das B0l-te Element der Substitutionstabelle Sbox angibt. Die Daten C0 sind Daten, die durch Verknüpfen dieser beiden Elemente erzeugt werden.
  • Die hier verwendete Substitutionstabelle Sbox ist die Substitutionstabelle, die in „S-box design considering the security against known attacks on block ciphers" („S-box-Gestaltung unter Berücksichtigung der Sicherheit gegen bekannte Angriffe auf Blockchiffren"), Technical Report of IEICE, Bd. 98, Nr. 48, ISEC98-13 (auf Japanisch; Juli 1998), von Shiho Moriai, Kazumaro Aoki, Masayuki Kanda, Youichi Takashima und Kazuo Ohta, beschrieben ist. Die Substitutionstabelle Sbox ist jedoch nicht auf diese Substitutionstabelle beschränkt und kann von dieser Substitutionstabelle abweichen.
  • Die Datensubstitutionseinheiten 114116 empfangen die einzelnen Datenblöcke B1–B3 von der Datenteilungseinheit 112, ermitteln entsprechend die Datenblöcke C1–C3 und geben sie aus. Da der in den einzelnen Datensubstitutionseinheiten 114116 ausgeführte Prozess der Gleiche wie der Prozess ist, der von der Datensubstitutionseinheit 113 ausgeführt wird, wird dieser hier nicht noch einmal beschrieben.
  • Eine Datenverknüpfungseinheit 117 empfängt die Datenblöcke C0–C3 entsprechend von den einzelnen Datensubstitutionseinheiten 113116, verknüpft die Datenblöcke C0–C3 nach der folgenden Formel (16), ermittelt 64-Bit-Daten Y und gibt sie aus: Y = C0||C1||C2||C3 (16).
  • Nachstehend wird der Schlüsselumwandlungsprozess beschrieben, der in den einzelnen in 3 gezeigten Schlüsselumwandlungseinheiten 2127 ausgeführt wird. Jede der Schlüsselumwandlungseinheiten 2127 führt den Erweiterungsschlüssel-Berechnungsprozess und den Ausgangsdaten-Berechnungsprozess, die später beschrieben werden, an den ersten bis vierten Eingangsdaten X0–X3 aus, berechnet den Erweiterungsschlüssel SK und die ersten bis vierten Ausgangsdaten Y0–Y3 und gibt sie aus. Die ersten bis vierten Eingangsdaten X0–X3 sind vier 32-Bit-Datenblöcke, die von der Datenteilungseinheit 20 oder der vorhergehenden Schlüsselumwandlungseinheit ausgegeben werden. Der Erweiterungsschlüssel SK ist einer der Schlüssel SK0–SK6, die von den einzelnen Datenumwandlungseinheiten 1117 eingegeben werden.
  • Nachstehend wird der Erweiterungsschlüssel-Berechnungsprozess erläutert, der in der Erweiterungsschlüssel-Berechnungseinheit 210 ausgeführt wird.
  • Die exklusives-ODER-Operationseinheit 211 führt eine exklusives-ODER-Operation je Bit zwischen den zweiten Eingangsdaten X1 und den vierten Eingangsdaten X3 nach der folgenden Formel (17) aus und ermittelt 32-Bit-Daten A: A = X1 (+) X3 (17).
  • Die Datensubstitutionseinheit 212 empfängt die Daten A von der exklusives-ODER-Operationseinheit 211 und ermittelt 32-Bit-Daten B, die durch die folgende Formel (18) dargestellt werden, unter Verwendung der gleichen Substitutionstabelle Sbox wie die Substitutionstabelle, die in den Datenumwandlungseinheiten 1118 verwendet wird: B = Sbox[A0]||Sbox[A1]||Sbox[A2]||Sbox[A3] (18).
  • Datenwerte, die durch Teilen der Daten A durch jeweils 8 Bit von oben erhalten werden, werden entsprechend als A0, A1, A2 und A3 verarbeitet.
  • Die exklusives-ODER-Operationseinheit 213 empfängt die Daten B von der Datensubstitutionseinheit 212, führt eine exklusives-ODER-Operation je Bit zwischen den Daten B und den dritten Eingangsdaten X2 nach der folgenden Formel (19) aus und erhält 32-Bit-Daten C: C = B (+) X2 (19).
  • Die exklusives-ODER-Operationseinheit 214 empfängt die Daten C von der exklusives-ODER-Operationseinheit 213, führt eine exklusives-ODER-Operation je Bit zwischen den Daten C und den zweiten Eingangsdaten X1 nach der folgenden Formel (20) aus und erhält 32-Bit-Daten D: D = C (+) X1 (20).
  • Die exklusives-ODER-Operationseinheit 215 empfängt die Daten D von der exklusives-ODER-Operationseinheit 214, führt eine exklusives-ODER-Operation je Bit zwischen den Daten D und den ersten Eingangsdaten X0 nach der folgenden Formel (21) aus und erhält 32-Bit-Daten E: E = D (+) X0 (21).
  • Die Datenverknüpfungseinheit 216 empfängt die Daten C und E von der exklusives-ODER-Operationseinheit 213 bzw. 215, verknüpft die Daten C und E nach der folgenden Formel (22) und gibt sie als 64-Bit-Erweiterungsschlüssel SK aus: SK = C||E (22).
  • Nachstehend wird ein Prozess (ein Ausgangsdaten-Berechnungsprozess) zur Berechnung der ersten bis vierten Ausgangsdaten Y0–Y3 in der Ausgangsdaten-Berechnungseinheit 230 beschrieben.
  • Die Datendreheinheiten 217220 berechnen die vierten Ausgangsdaten Y3, die ersten Ausgangsdaten Y0, die zweiten Ausgangsdaten Y1 und die dritten Ausgangsdaten Y2 entsprechend nach den folgenden Formeln (23)–(26): Y3 = ROTR1(X0) (23), Y0 = ROTR5(X1) (24), Y1 = ROTR9(X2) (25), Y2 = ROTR13(X3) (26).
  • ROTR1(X), ROTR5(X), ROTR9(X) und ROTR13(X) geben jeweils die Ergebnisse der Daten X an, bei denen eine Bit-Drehverschiebung um 1, 5, 9 bzw. 13 Bit nach unten (nach rechts) durchgeführt worden ist.
  • Nachstehend wird der letzte Schlüsselumwandlungsprozess beschrieben, der von der letzten Schlüsselumwandlungseinheit 28 in 4 ausgeführt wird. Die Erweiterungsschlüssel-Berechnungseinheit 280 der letzten Schlüsselumwandlungseinheit 28 berechnet den Erweiterungsschlüssel SK7, indem sie die gleichen Operationen wie die Erweiterungsschlüssel-Berechnungseinheit 210 von 3 ausführt. Daher wird dieser Prozess hier nicht noch einmal näher beschrieben.
  • 6 ist ein Blockdiagramm, das den exemplarischen Aufbau der Entschlüsselungsvorrichtung nach der Ausführungsform der vorliegenden Erfindung zeigt.
  • Die Datenverschlüsselungsvorrichtung 1200 weist die folgenden Elemente auf: eine Erweiterungsschlüssel-Umkehrerzeugungseinheit 4, die acht Erweiterungsschlüssel SK7–SK0 von jeweils 64 Bit in umgekehrter Reihenfolge der Verschlüsselung aufgrund des 128-Bit-Verschlüsselungsschlüssels EK erzeugt; und eine Daten-Umkehrverwürfelungseinheit 3, die mit der Erweiterungsschlüssel-Umkehrerzeugungseinheit 4 verbunden ist, die Erweiterungsschlüssel SK7–SK0 von der Erweiterungsschlüssel-Umkehrerzeugungseinheit 4 empfängt und den Entschlüsselungstext DT durch Wiederholen des umgekehrten Datenumwandlungsprozesses, der später beschrieben wird, an dem Chiffriertext CT unter Verwendung der Erweiterungsschlüssel SK7–SK0 erzeugt.
  • Die Daten-Umkehrverwürfelungseinheit 3 besteht aus acht Daten-Umkehrumwandlungseinheiten 3138, die vertikal verknüpft sind. Die Erweiterungsschlüssel-Umkehrerzeugungseinheit 4 besteht aus einer Schlüsselmodifikationseinheit 40, sieben Schlüssel-Umkehrumwandlungseinheiten 4147 und einer letzten Schlüsselumwandlungseinheit 48, die vertikal verknüpft sind.
  • 7 ist ein Blockdiagramm, das den inneren Aufbau der Daten-Umkehrumwandlungseinheiten 3138 zeigt. Jede der Daten-Umkehrumwandlungseinheiten 3138 weist Folgendes auf: eine Datenteilungseinheit 311, die 64-Bit-Eingangsdaten Y (der Chiffriertext CT oder die Ausgangsdaten der vorhergehenden Daten-Umkehrumwandlungseinheit) empfängt und die Daten Y in vier Datenblöcke A0–A3 teilt; und Daten-Umkehrsubstitutionseinheiten 312315, die mit der Datenteilungseinheit 311 verbunden sind, die entsprechenden Datenblöcke A0–A3 von der Datenteilungseinheit 311 empfangen und in einem später beschriebenen Verfahren die einzelnen Datenblöcke A0–A3 durch Datenblöcke B0–B3 ersetzen.
  • Jede der Daten-Umkehrumwandlungseinheiten 3138 weist weiterhin die folgenden Elemente auf: eine Datenverknüpfungseinheit 316, die mit den Daten-Umkehrsubstitutionseinheiten 312315 verbunden ist, die Datenblöcke B0–B3 von den Daten-Umkehrsubstitutionseinheiten 312315 empfängt, die Datenblöcke B0–B3 verknüpft und sie ausgibt; und eine exklusives-ODER-Operationseinheit 317, die mit der Datenverknüpfungseinheit 316 verbunden ist, das von der Datenverknüpfungseinheit 316 ausgegebene Verknüpfungsergebnis empfängt, eine exklusives-ODER-Operation je Bit zwischen dem Verknüpfungsergebnis und dem Erweiterungsschlüssel SK ausführt und Daten Z ausgibt.
  • 8 ist ein Blockdiagramm, das den inneren Aufbau der Schlüsselmodifikationseinheit 40 zeigt. Die Schlüsselmodifikationseinheit 40 empfängt die ersten bis vierten Eingangsdaten I0–I3 von jeweils 32 Bit, führt einen Prozess aus, der später beschrieben wird, und berechnet die ersten bis vierten Ausgangsdaten J0–J3. Die Schlüsselmodifikationseinheit 40 weist weiterhin die folgenden Elemente auf: eine Datendreheinheit 401, die eine Bit-Drehverschiebung um 51 Bit an den ersten Eingangsdaten I0 in Richtung des unteren Bits (nach rechts) ausführt und sie als zweite Ausgangsdaten J1 ausgibt; eine Datendreheinheit 402, die eine Bit-Drehverschiebung um 47 Bit an den zweiten Eingangsdaten 11 in Richtung des unteren Bits (nach rechts) ausführt und sie als dritte Ausgangsdaten J2 ausgibt; eine Datendreheinheit 403, die eine Bit-Drehverschiebung um 43 Bit an den dritten Eingangsdaten 12 in Richtung des unteren Bits (nach rechts) ausführt und sie als vierte Ausgangsdaten J3 ausgibt; und eine Datendreheinheit 404, die eine Bit-Drehverschiebung um 55 Bit an den vierten Eingangsdaten 13 in Richtung des unteren Bits (nach rechts) ausführt und sie als erste Ausgangsdaten J0 ausgibt.
  • 9 ist ein Blockdiagramm, das den inneren Aufbau der Schlüssel-Umkehrumwandlungseinheiten 4147 zeigt. Jede der Schlüssel-Umkehrumwandlungseinheiten 4147 weist die folgenden Elemente auf: eine Erweiterungsschlüssel-Berechnungseinheit 410, die die ersten bis vierten Eingangsdaten Y0–Y3 von jeweils 32 Bit von der Schlüsselmodifikationseinheit 40 oder der vorhergehenden Schlüssel-Umkehrumwandlungseinheit empfängt und einen 64-Bit-Erweiterungsschlüssel SK aus den ersten bis vierten Eingangsdaten Y0–Y3 berechnet; und eine Ausgangsdaten-Umkehrberechnungseinheit 430, die die ersten bis vierten Ausgangsdaten Z0–Z3, die ein Eingangssignal in die nachfolgende Schlüssel-Umkehrumwandlungseinheit oder die letzte Schlüsselumwandlungseinheit 48 sind, aus den ersten bis vierten Eingangsdaten Y0–Y3 berechnet.
  • Die Erweiterungsschlüssel-Berechnungseinheit 410 weist die folgenden Elemente auf: eine exklusives-ODER-Operationseinheit 411, die eine exklusives-ODER-Operation je Bit zwischen den zweiten Eingangsdaten Y1 und den vierten Eingangsdaten Y3 ausführt und 32-Bit-Daten A berechnet; eine Datensubstitutionseinheit 412, die mit der exklusives-ODER-Operationseinheit 411 verbunden ist, die Daten A von der exklusives-ODER-Operationseinheit 411 berechnet und in einem später beschriebenen Verfahren die Daten A durch die Daten B ersetzt; und eine exklusives-ODER-Operationseinheit 413, die mit der Datensubstitutionseinheit 412 verbunden ist, die Daten B von der Datensubstitutionseinheit 412 empfängt, eine exklusives-ODER-Operation je Bit zwischen den Daten B und den dritten Eingangsdaten Y2 ausführt und Daten C berechnet.
  • Die Erweiterungsschlüssel-Berechnungseinheit 410 weist weiterhin die folgenden Elemente auf: eine exklusives-ODER-Operationseinheit 414, die mit der exklusives-ODER-Operationseinheit 413 verbunden ist, die Daten C von der exklusives-ODER-Operationseinheit 413 empfängt, eine exklusives-ODER-Operation je Bit zwischen den Daten C und den zweiten Eingangsdaten Y1 ausführt und Daten D berechnet; eine exklusives-ODER-Operationseinheit 415, die mit der exklusives-ODER-Operationseinheit 414 verbunden ist, die Daten D von der exklusives-ODER-Operationseinheit 414 empfängt, eine exklusives-ODER-Operation je Bit zwischen den Daten D und den ersten Eingangsdaten Y0 ausführt und Daten E berechnet; und eine Datenverknüpfungseinheit 416, die mit den exklusives-ODER-Operationseinheiten 413 und 415 verbunden ist, die Daten C und die Daten E von der exklusives-ODER-Operationseinheit 413 bzw. 415 empfängt, die Daten C und die Daten E verknüpft und sie als 64-Bit-Erweiterungsschlüssel SK ausgibt.
  • Die Ausgangsdaten-Umkehrberechnungseinheit 430 weist die folgenden Elemente auf: eine Datendreheinheit 417, die eine Bit-Drehverschiebung um 5 Bit an den ersten Eingangsdaten Y0 nach oben (nach links) ausführt und sie als zweite Ausgangsdaten Z1 ausgibt; eine Datendreheinheit 418, die eine Bit-Drehverschiebung um 9 Bit an den zweiten Eingangsdaten Y1 nach oben (nach links) ausführt und sie als dritte Ausgangsdaten Z2 ausgibt; eine Datendreheinheit 419, die eine Bit-Drehverschiebung um 13 Bit an den dritten Eingangsdaten Y2 nach oben (nach links) ausführt und sie als vierte Ausgangsdaten Z3 ausgibt; und eine Datendreheinheit 420, die eine Bit-Drehverschiebung um 1 Bit an den vierten Eingangsdaten Y3 nach oben (nach links) ausführt und sie als erste Ausgangsdaten Z0 ausgibt.
  • Die in 6 gezeigte letzte Schlüsselumwandlungseinheit 48 hat den gleichen Aufbau wie die letzte Schlüsselumwandlungseinheit 28 in 4. Daher wird sie hier nicht noch einmal näher beschrieben.
  • Nachstehend werden die von der Entschlüsselungsvorrichtung 1200 ausgeführten Operationen unter Bezugnahme auf die 612 beschrieben.
  • Nachstehend wird der Gesamtprozessablauf der in 6 gezeigten Entschlüsselungsvorrichtung 1200 beschrieben.
  • Die Schlüsselmodifikationseinheit 40 in der Erweiterungsschlüssel-Umkehrerzeugungseinheit 4 führt nach der internen Teilung eines 128-Bit-Verschlüsselungsschlüssels EK in vier 128-Bit-Datenblöcke einen Schlüsselmodifikationsprozess aus, der später beschrieben wird, und berechnet vier 32-Bit-Datenblöcke. Die Schlüsselmodifikationseinheit 40 gibt die berechneten vier Datenblöcke an die Schlüssel-Umkehrumwandlungseinheit 41 aus.
  • Die Schlüssel-Umkehrumwandlungseinheit 41 führt einen Schlüssel-Umkehrumwandlungsprozess, der später beschrieben wird, aufgrund der eingegebenen vier Datenblöcke aus und berechnet einen 64-Bit-Erweiterungsschlüssel SK7 und vier 32-Bit-Datenblöcke. Die Schlüssel-Umkehrumwandlungseinheit 41 gibt den Erweiterungsschlüssel SK7 an die Daten-Umkehrumwandlungseinheit 31 aus und gibt die vier Datenblöcke an die nächste Schlüssel-Umkehrumwandlungseinheit 42 aus.
  • Die Daten-Umkehrumwandlungseinheit 31 führt einen umgekehrten Datenumwandlungsprozess, der später beschrieben wird, an einem 64-Bit-Chiffriertext CT aufgrund des eingegebenen Erweiterungsschlüssels SK7 aus, berechnet 64-Bit-Daten und gibt sie an die nächste Daten-Umkehrumwandlungseinheit 32 aus.
  • Die Schlüssel-Umkehrumwandlungseinheit 42 führt den gleichen Prozess wie die Schlüssel-Umkehrumwandlungseinheit 41 aufgrund der vier von der vorhergehenden Schlüssel-Umkehrumwandlungseinheit 41 eingegebenen Datenblöcke aus und berechnet den Erweiterungsschlüssel SK6 und vier Datenblöcke. Die Schlüssel-Umkehrumwandlungseinheit 42 gibt den Erweiterungsschlüssel SK6 an die Daten-Umkehrumwandlungseinheit 32 aus und gibt die berechneten vier Datenblöcke an die Schlüssel-Umkehrumwandlungseinheit 43 aus.
  • Die Daten-Umkehrumwandlungseinheit 32 führt den gleichen umgekehrten Datenumwandlungsprozess wie die Daten-Umkehrumwandlungseinheit 31 an den von der vorhergehenden Daten-Umkehrumwandlungseinheit 31 eingegebenen Daten aufgrund des Erweiterungsschlüssels SK6 aus, berechnet 64-Bit-Daten und gibt sie an die nachfolgende Daten-Umkehrumwandlungseinheit 33 aus.
  • Die gleiche Operation wird in den Schlüssel-Umkehrumwandlungseinheiten 4347 und den Daten-Umkehrumwandlungseinheiten 3337 ausgeführt. Die letzte Schlüsselumwandlungseinheit 48 führt den gleichen Prozess wie den letzten Schlüsselumwandlungsprozess, der in der letzten Schlüsselumwandlungseinheit 28 in 4 verwendet wird, an den vier von der Schlüssel-Umkehrumwandlungseinheit 47 eingegebenen Datenblöcken aus, ermittelt den Erweiterungsschlüssel SK0 und gibt ihn an die Daten-Umkehrumwandlungseinheit 38 aus.
  • Die Daten-Umkehrumwandlungseinheit 38 führt den gleichen umgekehrten Datenumwandlungsprozess wie die Daten-Umkehrumwandlungseinheit 31 an den von der Daten-Umkehrumwandlungseinheit 37 eingegebenen Daten aufgrund des Erweiterungsschlüssels SK0 aus, berechnet einen 64-Bit-Entschlüsselungstext DT und gibt ihn aus.
  • Nachstehend wird der umgekehrte Datenumwandlungsprozess beschrieben, der in den einzelnen Daten-Umkehrumwandlungseinheiten 3138 von 7 ausgeführt wird.
  • Die Datenteilungseinheit 311 teilt die 64-Bit-Daten Y (den Chiffriertext CT oder die von der vorhergehenden Daten-Umkehrumwandlungseinheit ausgegebenen Daten Z) durch jeweils 16 Bit von oben in vier Datenblöcke A0, A1, A2 und A3. Zwischen den Daten Y und den Datenblöcken A0–A3 besteht die mit der folgenden Formel (27) angegebene Relation: Y = A0||A1||A2||A3 (27).
  • Die Datenteilungseinheit 311 gibt die Datenblöcke A0–A3 entsprechend an die Daten-Umkehrsubstitutionseinheiten 312315 aus.
  • Die Daten-Umkehrsubstitutionseinheit 312 ermittelt einen 16-Bit-Datenblock B0 nach der folgenden Formel (28) aufgrund der von der Datenteilungseinheit 311 eingegebenen 16-Bit-Daten A0: B0 = InvSbox[A0h]||InvSbox[A0l] (28).
  • InvSbox bezeichnet hier eine Umkehrsubstitutionstabelle, die eine umgekehrte Substitution der vorstehend beschriebenen Substitutionstabelle Sbox ausführt. Die Umkehrsubstitutionstabelle besteht aus Arrays mit 256 Elementen, wie in 10 gezeigt, und jedes Element hat 8-Bit-Daten. A0h bezeichnet die ersten 8 Bit des Datenblocks A0, während A0l die letzten 8 Bit des Datenblocks A0 bezeichnet.
  • InvSbox[A0h] gibt das A0h-te Element in der Umkehrsubstitutionstabelle InvSbox an, während InvSbox[A0l] das A0l-te Element der Umkehrsubstitutionstabelle InvSbox angibt. Der Datenblock B0 umfasst Daten, die durch Verknüpfen dieser beiden Elemente entstehen.
  • Die hier verwendete Umkehrsubstitutionstabelle InvSbox ist die Substitutionstabelle, die aufgrund der Substitutionstabelle Sbox erzeugt wird, die von den Datensubstitutionseinheiten 113116 in 2 bei der Verschlüsselung verwendet wird.
  • Kurz gesagt, besteht zwischen der Substitutionstabelle Sbox und der Umkehrsubstitutionstabelle InvSbox die in der folgenden Formel (29) angegebene Relation: InvSbox[Sbox[l]] = i (= 0–255) (29).
  • 11 ist ein Diagramm, das ein konkretes Beispiel für die Darstellung der Relation zwischen der Substitutionstabelle Sbox und der Umkehrsubstitutionstabelle InvSbox zeigt. Nehmen wir beispielsweise an, dass der Wert von Sbox [79] „00110100" in Binärdarstellung ist. „00110100" ist in Dezimaldarstellung „52". Außerdem ist „79" in Dezimaldarstellung „01001111" in Binärdarstellung. Daher ist der Wert von InvSbox [52] „01001111" in Binärdarstellung.
  • Jede der Daten-Umkehrsubstitutionseinheiten 313315 empfängt entsprechend die Datenblöcke A1–A3 von der Datenteilungseinheit 311, ermittelt entsprechend die Datenblöcke B1–B3 und gibt sie aus. Da der in den einzelnen Daten-Unkehrsubstitutionseinheiten 313315 ausgeführte Prozess der Gleiche wie der Prozess ist, der von den Daten-Umkehrsubstitutionseinheit 312 ausgeführt wird, wird dieser hier nicht noch einmal beschrieben.
  • Die Datenverknüpfungseinheit 316 empfängt die einzelnen Datenblöcke B0–B3 von den Daten-Umkehrsubstitutionseinheiten 312315, verknüpft die Datenblöcke B0–B3 nach der folgenden Formel (30), ermittelt die 64-Bit-Daten Z und gibt sie aus: Z = B0||B1||B2||B3 (30).
  • Nachstehend wird der Schlüsselmodifikationsprozess beschrieben, der von der Schlüsselmodifikationseinheit 40 in 8 ausgeführt wird. Die Schlüsselmodifikationseinheit 40 führt den Prozess mit einem Eingangssignal des 128-Bit-Verschlüsselungsschlüssels EK aus und macht jeweils 32 Bit des Verschlüsselungsschlüssels EK von oben zu den ersten bis vierten Eingangsdaten I0–I3.
  • Die einzelnen Datendreheinheiten 401404 berechnen die zweiten Ausgangsdaten J1, die dritten Ausgangsdaten J2, die vierten Ausgangsdaten J3 bzw. die ersten Ausgangsdaten J0 nach den folgenden Formeln (31) bis (34): J1 = ROTR51(I0) (31), J2 = ROTR47(I1) (32), J3 = ROTR43(I2) (33), Y0 = ROTR55(I3) (34).
  • ROTR51(I), ROTR47(I), ROTR43(I) und ROTR55(I) geben jeweils die Ergebnisse der Bit-Drehverschiebung an, bei der die Daten I um 51, 47, 53 bzw. 55 Bit nach unten (nach rechts) verschoben werden.
  • Schließlich gibt die Schlüsselmodifikationseinheit 40 die ersten bis vierten Ausgangsdaten J0–J3 aus.
  • Nachstehend wird die Bedeutung des Verschiebungsumfangs in der Datendreheinheit 401 der Schlüsselmodifikationseinheit 40 beschrieben. Der Datendrehprozess wird in der Ausgangsdaten-Berechnungseinheit 230 in 3 an den in die Schlüsselumwandlungseinheit 21 eingegebenen ersten bis vierten Eingangsdaten X0–X3 ausgeführt, und ROTR5(X1), ROTR9(X2), ROTR13(X3) und ROTR1(X0) werden entsprechend als erste bis vierte Ausgangsdaten Y0–Y3 erhalten, wie in Tabelle 1 angegeben.
  • Unterstellt man, dass die in der Schlüsselumwandlungseinheit 21 erhaltenen ersten bis vierten Ausgangsdaten Y0–Y3 jeweils die ersten bis vierten Eingangsdaten X0–X3 in der Schlüsselumwandlungseinheit 22 sind, so wird der gleiche Datendrehprozess ausgeführt, und ROTR14(X2), ROTR22(X3), ROTR14(X0) und ROTR6(X1) werden als erste bis vierte Ausgangsdaten Y0–Y3 in der Schlüsselumwandlungseinheit 22 erhalten, wie in Tabelle 1 angegeben.
  • Wenn dieser Prozess in den Schlüsselumwandlungseinheiten 2327 ausgeführt wird, kann das in Tabelle 1 dargestellte Ergebnis erhalten werden. Wenn die Schlüsselmodifikationseinheit 40 den in 8 gezeigten Aufbau hat, kann daher das entsprechende Ergebnis für einen der Prozesse bis zu den Schlüsselumwandlungseinheiten 2127 erhalten werden.
  • Tabelle 1
    Figure 00330001
  • 8 zeigt zwar ein Beispiel für eine Schlüsselmodifikationseinheit 40 mit sieben Schlüsselumwandlungseinheiten, aber es kann auch eine Schlüsselmodifikationseinheit mit einer anderen Anzahl von Schlüsselumwandlungseinheiten verwendet werden. Wenn sie beispielsweise sechs Schlüsselumwandlungseinheiten hat, kann die Schlüsselmodifikationseinheit 160 in 12 anstelle der Schlüsselmodifikationseinheit 40 verwendet werden. Die Schlüsselmodifikationseinheit 160 ist nach der Tabelle 1 gestaltet. Die Datendreheinheiten 16011604 der Schlüsselmodifikationseinheit 160 führen eine Bit-Drehverschiebung um 42 Bit, 34 Bit, 42 Bit bzw. 50 Bit an den Eingangsdaten nach unten (nach rechts) aus. Die Bit-Drehverschiebung um 32 Bit gleicht jedoch der Bit-Drehverschiebung um 0 Bit (d. h., es findet kein Prozess statt). Daher kann die Anzahl der Bit-Drehverschiebungen durch Festlegen der Bit-Anzahl für die Bit-Drehverschiebungen auf 10 Bit, 2 Bit, 10 Bit bzw. 18 Bit in den Datendreheinheiten 16011604 verringert werden.
  • Außerdem kann die Bit-Anzahl für die Bit-Drehverschiebungen in den Datendreheinheiten 401404 der in 8 gezeigten Schlüsselmodifikationseinheit 40 auf 19 Bit, 15 Bit, 11 Bit bzw. 23 verringert werden.
  • Nachstehend wird der Schlüssel-Umkehrumwandlungsprozess beschrieben, der von den in 9 gezeigten Schlüssel-Umkehrumwandlungseinheiten 41476 ausgeführt wird. Jede der Schlüssel-Umkehrumwandlungseinheiten 4147 führt einen Erweiterungsschlüssel-Berechnungsprozess und einen Datenumwandlungsprozess, die später beschrieben werden, an den ersten bis vierten Eingangsdaten Y0–Y3 durch, berechnet den Erweiterungsschlüssel SK und die ersten bis vierten Ausgangsdaten Z0–Z3 und gibt sie aus. Die ersten bis vierten Ausgangsdaten Y0–Y3 sind die vier 32-Bit-Datenblöcke, die von der Schlüsselmodifikationseinheit 40 oder der vorhergehenden Schlüssel-Umkehrumwandlungseinheit ausgegeben werden. Der Erweiterungsschlüssel SK ist einer der Schlüssel SK7–SK1, die in die einzelnen Daten-Umkehrumwandlungseinheiten 3137 eingegeben werden.
  • Nachstehend wird der in der Erweiterungsschlüssel-Berechnungseinheit 410 ausgeführte Erweiterungsschlüssel-Berechnungsprozess beschrieben.
  • Die exklusives-ODER-Operationseinheit 411 führt eine exklusives-ODER-Operation je Bit zwischen den zweiten Eingangsdaten Y1 und den vierten Eingangsdaten Y3 nach der folgenden Formel (35) aus und erhält 32-Bit-Daten A: A = Y1 (+) Y3 (35).
  • Die Datensubstitutionseinheit 412 empfängt die Daten A von der exklusives-ODER-Operationseinheit 411 und erhält 32-Bit-Daten B, die in der in der folgenden Formel (36) angegebenen Relation stehen, unter Verwendung der gleichen Substitutionstabelle Sbox wie die in den Datenumwandlungseinheiten 1118 bei der Verschlüsselung verwendete Substitutionstabelle: B = Sbox[A0]||Sbox[A1]||Sbox[A2]||Sbox[A3] (36).
  • Die Daten werden durch jeweils 8 Bit von oben geteilt, und es wird unterstellt, dass die Daten A A0, A1, A2 bzw. A3 sind.
  • Die exklusives-ODER-Operationseinheit 413 empfängt die Daten B von der Datensubstitutionseinheit 412, führt eine exklusives-ODER-Operation je Bit zwischen den Daten B und den dritten Eingangsdaten Y2 nach der folgenden Formel (37) aus und erhält 32-Bit-Daten C: C = B (+) Y2 (37).
  • Die exklusives-ODER-Operationseinheit 414 empfängt die Daten C von der exklusives-ODER-Operationseinheit 413, führt eine exklusives-ODER-Operation je Bit zwischen den Daten C und den zweiten Eingangsdaten Y1 nach der folgenden Formel (38) aus und erhält 32-Bit-Daten D: D = C (+) Y1 (38).
  • Die exklusives-ODER-Operationseinheit 415 empfängt die Daten D von der exklusives-ODER-Operationseinheit 414, führt eine exklusives-ODER-Operation je Bit zwischen den Daten D und den ersten Eingangsdaten Y0 nach der folgenden Formel (39) aus und erhält 32-Bit-Daten E: E = D (+) Y0 (39).
  • Die Datenverknüpfungseinheit 416 empfängt die Daten C und die Daten E von der exklusives-ODER-Operationseinheit 413 bzw. der exklusives-ODER-Operationseinheit 415, verknüpft die Daten C und die Daten E nach der folgenden Formel (40) und gibt sie als 64-Bit-Erweiterungsschlüssel SK aus: SK = C||E (40).
  • Nachstehend wird ein Prozess (ein Datenumwandlungsprozess) beschrieben, der die ersten bis vierten Ausgangsdaten Z0–Z3 in der Ausgangsdaten-Umkehrberechnungseinheit 430 berechnet.
  • Die Datendreheinheiten 417420 berechnen die zweiten Ausgangsdaten Z1, die dritten Ausgangsdaten Z2, die vierten Ausgangsdaten Z3 bzw. die ersten Ausgangsdaten Z0 nach den folgenden Formeln (41)–(44): Z1 = ROTL5(Y0) (41), Z2 = ROTL9(Y1) (42), Z3 = ROTL13(Y2) (43), Z0 = ROTL1(Y3) (44).
  • ROTL5(Y), ROTL9(Y), ROTL13(Y) und ROTL1(Y) geben hier die Ergebnisse der Bit-Drehverschiebung um 5 Bit, 9 Bit, 13 Bit bzw. 1 Bit an, die an den Daten Y in Richtung des oberen Bits (nach links) ausgeführt wird.
  • Nachstehend wird eine Wirkung des Verschlüsselungssystems in der vorstehend beschriebenen Ausführungsform im Vergleich zu herkömmlichen Technologien beschrieben.
  • Wie in 17 gezeigt, muss beim ersten Stand der Technik der Prozess in der Schlüsselumwandlungseinheit 9-mal als Overhead ausgeführt werden, um den Erweiterungsschlüssel SK10 zu erhalten, der in der letzten Daten-Umkehrumwandlungseinheit 70 in der Entschlüsselungsvorrichtung 1400 verwendet wird. Dadurch besteht bei der Entschlüsselung beim ersten Stand der Technik das Problem, dass im Vergleich zu der für die Verschlüsselung benötigten Zeit sehr viel Verarbeitungszeit benötigt wird.
  • Wie in 6 gezeigt, ist jedoch der Prozess, der dem vorgenannten Overhead entspricht, nur der Prozess in der Schlüsselmodifikationseinheit 40 in der erfindungsgemäßen Entschlüsselungsvorrichtung 1200. Das entspricht der 7-fachen Wiederholung des Prozesses in der Ausgangsdaten-Berechnungseinheit 230 der in 3 gezeigten Schlüsselumwandlungseinheit. Beim Datendrehprozess entspricht der Prozess für die 7-fache Wiederholung des Datendrehprozesses mit r Bit (r ist eine ganze Zahl) einem einmaligen Datendrehprozess mit (7·r) Bit. Dadurch entspricht die 7-fache Wiederholung des Prozesses der Ausgangsdaten-Berechnungseinheit 230 der 4-fachen Ausführung des Datendrehprozesses, wie in der Schlüsselmodifikationseinheit 40 gezeigt. Nachstehend werden die beiden Fälle hinsichtlich des Overhead-Verarbeitungsumfangs verglichen.
  • Beim ersten Stand der Technik erfordert ein einmaliger Prozess der Schlüsselumwandlungseinheit die 5-malige Ausführung der exklusives-ODER-Operation, die einmalige Ausführung des Substitutionsprozesses und die einmalige Ausführung des Datendrehprozesses. Wenn dies 9-mal ausgeführt wird, müssen also die exklusives-ODER-Operation 45-mal, der Substitutionsprozess 9-mal und der Datendrehprozess 9-mal als Overhead ausgeführt werden. Bei der erfindungsgemäßen Entschlüsselungsvorrichtung 1200 ist hingegen der Umfang des Prozesses, der als Overhead erforderlich ist, nur 4-mal so groß wie der Datendrehprozess.
  • Das heißt, die Overheads der vorliegenden Erfindung sind viel kleiner als die des ersten Standes der Technik. Das wird dadurch realisiert, dass die Erweiterungsschlüssel-Berechnungseinheit 210, die den als Eingangssignal für die nachfolgende Schlüsselumwandlungseinheit dienenden Erweiterungsschlüssel berechnet, in der in 3 gezeigten Schlüsselumwandlungseinheit von der Ausgangsdaten-Berechnungseinheit 230 getrennt wird und dass die Ausgangsdaten-Berechnungseinheit 230 nur den Datendrehprozess ausführt.
  • Da der Datendrehprozess beim Einrichten in der Hardware durch Anordnen eines Verteilungsmusters von Signalleitungen realisiert werden kann, verursacht er keine Datenverzögerung. Dadurch kann der Overhead im Wesentlichen als null angesehen werden, wenn die in 6 gezeigte Entschlüsselungsvorrichtung 1200 in der Hardware realisiert wird. Wenn die Entschlüsselungsvorrichtung 1200 in der Software realisiert wird, kann die Bit-Drehverschiebung in den meisten Prozessoren mit hoher Geschwindigkeit durchgeführt werden. Daher kann behauptet werden, dass der Overhead so klein ist, dass er vernachlässigt werden kann.
  • Nachstehend wird die Zufälligkeit des in dem System erzeugten Erweiterungsschlüssels untersucht. Bei der Verschlüsselung beeinflusst das Ausgangssignal der Datensubstitutionseinheit 212 in den in 3 gezeigten Schlüsselumwandlungseinheiten 2127 durch den Datenverknüpfungsprozess mit den exklusives-ODER-Operationseinheiten 213215 alle Erweiterungsschlüssel. Das heißt, der nichtlineare Prozess unter Verwendung der Substitutionstabelle der Datensubstitutionseinheit 212 beeinflusst durch den Datenverknüpfungsprozess mit den exklusives-ODER-Operationseinheiten 213215 die gesamte Palette der Erweiterungsschlüssel. Das heißt, es kommt zu dem gleichen Effekt wie bei den Schlüsselumwandlungseinheiten 6069 beim ersten Stand der Technik. Außerdem werden alle ersten bis vierten Eingangsdaten X0–X3 in dem von den exklusives-ODER-Operationseinheiten 211 und 213215 ausgeführten Datenverknüpfungsprozess als Eingangsdaten verwendet. Daher kann behauptet werden, dass alle vom Datenverknüpfungsprozess erzeugten Erweiterungsschlüssel SK0–SK7 auch dann geändert werden, wenn nur ein Bit des Verschlüsselungsschlüssels EK geändert wird. Aufgrund des Vorstehenden kann behauptet werden, dass der erzeugte Erweiterungsschlüssel eine ausreichende Zufälligkeit aufweist.
  • Die Datendreheinheiten 217220 in der Ausgangsdaten-Berechnungseinheit 230 verwenden 1, 5, 9 bzw. 13 Bit als Häufigkeit für ihre Datendrehung. Diese Bit-Anzahlen sind kein Teiler der Bit-Anzahl (32 Bit), die jeweils in die Datendreheinheit 217 eingegeben werden. Demgegenüber wird beim zweiten Stand der Technik die Bit-Anzahl 8, also ein Teiler von 32, als Bit-Anzahl für die Datendrehung in der in 17 gezeigten Datendreheinheit 601 verwendet. Diese Differenz hat die nachstehend erläuterte Wirkung in der Datendreheinheit der vorliegenden Ausführungsform. Auch wenn die Datendrehung von 8 Bit beispielsweise für 32-Bit-Daten 33333333 in Hexadezimalschreibweise ausgeführt wird, ist sie 33333333. Es erfolgt keine Änderung durch die Datendrehung. Das Gleiche gilt für Daten wie 11111111 und 55555555. Bei der vorliegenden Ausführungsform geschieht das jedoch nur mit den Daten FFFFFFFF und 00000000 in Hexadezimalschreibweise bei der Datendrehung um die Bit-Anzahl, die kein Teiler von 32 ist. Für alle anderen Eingangsdaten als die Vorgenannten werden andere Ausgangsdaten als ihre Eingangsdaten erhalten. Das heißt, es wird eine höhere Datenverwürfelungsleistung in der Datendreheinheit der vorliegenden Ausführungsform realisiert. Da die Datendreheinheit mit einer Anzahl von Drehungen, die kein Teiler der Anzahl von Bits der Eingangsdaten ist, in der Ausgangsdaten-Berechnungseinheit 230 in den Schlüsselumwandlungseinheiten 2127 bei der vorliegenden Ausführungsform verwendet wird, wird eine hohe Datenverwürfelungsleistung auch in der Ausgangsdaten-Berechnungseinheit 230 realisiert.
  • Der Datendrehprozess wird an allen 32-Bit-Datenblöcken in der Ausgangsdaten-Berechnungseinheit 230 ausgeführt, aber er ist nicht auf diese Gestaltung beschränkt. Es ist ausreichend, wenn der Datendrehprozess an mindestens einem der vier Datenblöcke ausgeführt wird. Außerdem ist die Anzahl der Datendrehungen nicht auf die in der vorliegenden Ausführungsform angegebenen Werte beschränkt. Solange sie kein Teiler der Datenblockgröße ist, kann sie eine andere Anzahl von Drehungen sein.
  • Anstelle des Datendrehprozesses kann die Ausgangsdaten-Berechnungseinheit 230 einen festen Umwandlungsprozess an den ersten bis vierten Eingangsdaten X0–X3 so ausführen, dass kein Bitwert der einzelnen Eingangsdaten einen anderen Bitwert beeinträchtigt. Anstelle der Datendreheinheit 217 kann beispielsweise eine in 13 gezeigte Bit-Ersetzungseinheit 1500 verwendet werden. Die Bit-Ersetzungseinheit 1500 empfängt die ersten Eingangsdaten X0 mit 32 Bit, ersetzt die Bitstellen, um zu vermeiden, dass ein Bitwert von einem anderen Bitwert beeinträchtigt wird, und gibt sie als vierte Ausgangsdaten Y3 aus.
  • Da bei einer solchen Umwandlung kein Bitwert einen anderen Bitwert beeinträchtigt, kann die Schlüsselmodifikationseinheit wie in 8 gezeigt gestaltet werden.
  • Es kann auch eine in 14A gezeigte Bitreservierungseinheit 1520, die nur einen bestimmten Bitwert reserviert, anstelle der Datendreheinheit 217 verwendet werden. Die in 14A gezeigte Bitreservierungseinheit 1520 entspricht der in 14B gezeigten exklusives-ODER-Operationseinheit 1540.
  • Mit einer solchen Umwandlung kann die in 8 gezeigte Schlüsselmodifikationseinheit geschaffen werden, da wie bei der Bit-Ersetzungseinheit 1500 kein Bitwert einen anderen Bitwert beeinträchtigt.
  • Die vorliegende Ausführungsform verwendet zwar den in 2 gezeigten Aufbau für die Datenumwandlungseinheit, aber sie ist nicht auf diesen Aufbau beschränkt.
  • Bei der vorliegenden Ausführungsform ist die Größe des Klartextes und des Chiffriertextes auf 64 Bit festgelegt, die Größe des Verschlüsselungsschlüssels beträgt 128 Bit, und die Größe des Erweiterungsschlüssels beträgt 64 Bit, aber sie sind nicht auf diese Datengrößen beschränkt. Die Anzahl von Schritten für den Datenumwandlungsprozess in der in 1 gezeigten Datenverwürfelungseinheit 1 ist auf acht festgelegt, aber sie ist nicht auf diese Anzahl von Schritten beschränkt.
  • Die exklusives-ODER-Operationseinheit 211 der in 3 gezeigten Schlüsselumwandlungseinheiten führt eine exklusives-ODER-Operation an zwei der vier 32-Bit-Daten aus, aber sie ist nicht auf diese Gestaltung beschränkt. Solange die exklusives-ODER-Operationseinheit 211 so konfiguriert ist, dass sie eine exklusives-ODER-Operation an mindestens zwei diskreten Teildaten ausführt, die aus 128 Bit von verknüpften ersten bis vierten Eingangsdaten X0–X3 erhalten werden, kann sie jede Konfiguration haben.
  • Die exklusives-ODER-Operationseinheit 213 führt eine exklusives-ODER-Operationseinheit zwischen den Daten B, die von der Datensubstitutionseinheit 212 substituiert und umgewandelt werden, und einer Einheit der ersten bis vierten Eingangsdaten X0–X3 aus, aber sie ist nicht auf die Gestaltung beschränkt. Die exklusives-ODER-Operationseinheit 213 kann so konfiguriert sein, dass sie eine exklusives-ODER-Operation zwischen den Daten B und mindestens einer Einheit der diskreten Teildaten ausführt, die aus den 128 Bit von verknüpften ersten bis vierten Eingangsdaten X0–X3 erhalten werden.
  • Die exklusives-ODER-Operationseinheiten 211 und 213215 verwenden eine exklusives-ODER-Operation als Verfahren zum Verknüpfen von Daten, aber es ist jedes Verfahren möglich, solange es ein Verfahren ist, das eine Ausgangsdateneinheit aus zwei oder mehr Eingangsdaten berechnet, wie etwa Addition, Subtraktion und Multiplikation.
  • 15 ist eine Außenansicht eines DVD-Players, der eine praktische Anwendungsmöglichkeit für das Verschlüsselungssystem der vorliegenden Ausführungsform zeigt. Der DVD-Player 1700 kann die in 6 gezeigte Entschlüsselungsvorrichtung 1200 enthalten, wenn sie den Inhalt einer eingelegten DVD 1702 authentisiert. Da dieser Authentisierungsprozess mit hoher Geschwindigkeit ausgeführt werden kann, kann er die Zeit verkürzen, die vom Einlegen der DVD 1702 bis zur Wiedergabe des Inhalts der DVD 1702 tatsächlich benötigt wird.
  • Wie aus der vorstehenden Beschreibung hervorgeht, werden die Prozesse in dem erfindungsgemäßen Verschlüsselungssystem in der Erweiterungsschlüssel-Berechnungseinheit und der Ausgangsdaten-Berechnungseinheit getrennt ausgeführt, anstatt das Verfahren des ersten Standes der Technik zu verwenden, bei dem der Erweiterungsschlüssel-Erzeugungsprozess und der Prozess zum Erhalten von Eingangsdaten für den nachfolgenden Erweiterungsschlüssel-Erzeugungsprozess durch gemeinsame Verwendung eines Teils derselben Verarbeitungsschaltung ausgeführt werden.
  • Die Erweiterungsschlüssel-Berechnungseinheit verknüpft mehrere Daten und berechnet den Erweiterungsschlüssel. Die Ausgangsdaten-Berechnungseinheit verwendet einen Datendrehprozess, der einen Prozess, der n-mal (n ist eine natürliche Zahl) wiederholt wird, in einen einfachen äquivalenten Prozess umwandeln kann. Auf diese Weise wird der Overhead-Prozess bei der Entschlüsselung nicht so viel größer als der Prozess bei der Verschlüsselung wie beim ersten Stand der Technik. Daher ist es möglich, dass die Zeit, die für den Entschlüsselungsprozess benötigt wird, keine so große Differenz zu der Zeit hat, die für den Verschlüsselungsprozess benötigt wird.
  • Die Erweiterungsschlüssel-Berechnungseinheit verwendet ein kompliziertes Verfahren eines nichtlinearen Substitutionsprozesses in Verbindung mit einem Datenverknüpfungsprozess über eine Substitutionstabelle anstatt eines einfachen Bit-Ersetzungsprozesses wie beim zweiten Stand der Technik. Dadurch beeinflusst der nichtlineare Prozess, der die Substitutionstabelle verwendet, alle Erweiterungsschlüssel. Und wenn der Verschlüsselungsschlüssel geändert wird, sind alle Erweiterungsschlüssel von der Änderung betroffen. Daher kann ein hochzufälliger Erweiterungsschlüssel-Erzeugungsprozess realisiert werden.
  • Wie vorstehend dargelegt, können bei dem erfindungsgemäßen Verschlüsselungssystem die Probleme des ersten und des zweiten Standes der Technik gelöst werden.
  • Mit dem erfindungsgemäßen Verschlüsselungssystem können ein Verschlüsselungsprozess, ein Authentisierungsprozess usw. bereitgestellt werden, die eine hohe Geschwindigkeit haben und ein hohes Sicherheitsniveau erreichen. Daher ist der praktische Wert des erfindungsgemäßen Verschlüsselungssystems extrem hoch, wenn es beispielsweise von einem System verwendet wird, das hohe Anforderungen an die Abarbeitungsgeschwindigkeit und das Sicherheitsniveau erfüllen muss.

Claims (21)

  1. Erweiterungsschlüssel-Erzeugungsvorrichtung (2, 4), die Verschlüsselungsschlüsseldaten als Eingangssignal empfängt und mehrere Verschlüsselungsschlüsseldaten ausgibt, mit: einer Datenteilungseinheit (20, 40), die so betreibbar ist, dass sie die Verschlüsselungsschlüsseldaten in mehrere Teilschlüsseldaten unterteilt; und mehreren in Reihe geschalteten Schlüsselumwandlungseinheiten (2128, 4148), die so betreibbar sind, dass sie die mehreren Teilschlüsseldaten als Eingangssignal empfangen und die mehreren Erweiterungsschlüsseldaten ausgeben, dadurch gekennzeichnet, dass jede der mehreren Schlüsselumwandlungseinheiten Folgendes aufweist: eine Ausgangssignal-Berechnungseinheit (230, 430), die so betreibbar ist, dass sie die mehreren Teilschlüsseldaten oder mehreren Ausgangsdaten von einer vorhergehenden Schlüsselumwandlungseinheit als mehrere Eingangsdaten empfängt, einen festen Umwandlungsprozess an den einzelnen Eingangsdaten so durchführt, dass kein Bitwert der einzelnen Eingangsdaten einen anderen Bitwert der mehreren Eingangsdaten beeinträchtigt, und mehrere Ausgangsdaten an eine nachfolgende Schlüsselumwandlungseinheit ausgibt; und eine Erweiterungsschlüssel-Berechnungseinheit (210, 410), die so betreibbar ist, dass sie die mehreren Eingangsdaten verknüpft und die Erweiterungsschlüsseldaten erzeugt.
  2. Erweiterungsschlüssel-Erzeugungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Ausgangssignal-Berechnungseinheit (230, 430) eine Bitstelle von mindestens einer Einheit der mehreren Eingangsdaten nach einer festgelegten Regel ändert.
  3. Erweiterungsschlüssel-Erzeugungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass der in der Ausgangssignal-Berechnungseinheit (230, 430) durchgeführte Umwandlungsprozess ein Umkehrprozess an einem Wert an einer festgelegten Stelle in den Eingangsdaten ist.
  4. Erweiterungsschlüssel-Erzeugungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Ausgangssignal-Berechnungseinheit (230, 430) eine Drehverschiebungsoperation um eine bestimmte Anzahl von Bits an mindestens einer Einheit der mehreren Eingangsdaten ausführt.
  5. Erweiterungsschlüssel-Erzeugungsvorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass die bestimmte Anzahl von Bits kein Maß für eine Anzahl von Bits der Eingangsdaten ist, an denen die Drehverschiebungsoperation ausgeführt wird.
  6. Erweiterungsschlüssel-Erzeugungsvorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass die Ausgangssignal-Berechnungseinheit (230, 430) eine Stelle der mehreren Eingangsdaten nach einer festgelegten Regel ersetzt, nachdem die Drehverschiebungsoperation ausgeführt worden ist, und die mehreren Ausgangsdaten ausgibt.
  7. Erweiterungsschlüssel-Erzeugungsvorrichtung nach Anspruch 4, dadurch gekennzeichnet, dass die Erweiterungsschlüssel-Berechnungseinheit (210, 410) einen Substitutionsprozess an mindestens einer Einheit der mehreren Eingangsdaten aufgrund einer bestimmten Substitutionstabelle in einem Zwischenprozess des Verknüpfens der mehreren Eingangsdaten ausführt.
  8. Erweiterungsschlüssel-Erzeugungsvorrichtung nach Anspruch 1, dadurch gekennzeichnet, dass die Erweiterungsschlüssel-Berechnungseinheit (210, 410) einen Substitutionsprozess an mindestens einer Einheit der mehreren Eingangsdaten aufgrund einer bestimmten Substitutionstabelle in einem Zwischenprozess des Verknüpfens der mehreren Eingangsdaten ausführt.
  9. Erweiterungsschlüssel-Erzeugungsvorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass die Erweiterungsschlüssel-Berechnungseinheit (210, 410) Folgendes aufweist: eine erste Verknüpfungseinheit (211, 411), die so betreibbar ist, dass sie mindestens zwei Eingangsdaten von den mehreren Eingangsdaten verknüpft und erste verknüpfte Daten erzeugt; eine Datensubstitutionseinheit (212, 412), die so betreibbar ist, dass sie einen Substitutionsprozess an den ersten verknüpften Daten aufgrund der bestimmten Substitutionstabelle ausführt und substituierte Daten ausgibt; eine zweite Verknüpfungseinheit (213, 413), die so betreibbar ist, dass sie die substituierten Daten und mindestens eine Einheit der Eingangsdaten, die aus den mehreren Eingangsdaten gewonnen wurden, verknüpft und zweite verknüpfte Daten erzeugt; und eine Erweiterungsschlüssel-Erzeugungseinheit (216, 416), die so betreibbar ist, dass sie Daten empfängt, die mindestens die zweiten verknüpften Daten als Eingangssignal enthalten, und die Erweiterungsschlüsseldaten erzeugt.
  10. Erweiterungsschlüssel-Erzeugungsvorrichtung nach Anspruch 8, dadurch gekennzeichnet, dass die Erweiterungsschlüssel-Berechnungseinheit (210, 410) Zwischen- und Endergebnisse des Verknüpfens der mehreren Eingangsdaten verkettet und die Erweiterungsschlüsseldaten erzeugt.
  11. Verschlüsselungsvorrichtung, die Klartextdaten unter Verwendung von Verschlüsselungsschlüsseldaten verschlüsselt, mit: einer Erweiterungsschlüssel-Erzeugungsvorrichtung (2), die so betreibbar ist, dass sie Verschlüsselungsschlüsseldaten als Eingangssignal empfängt und mehrere Erweiterungsschlüsseldaten ausgibt; und einer Einheit (1), die so betreibbar ist, dass sie den Klartext aufgrund der von der Erweiterungsschlüssel-Erzeugungsvorrichtung erzeugten mehreren Erweiterungsschlüsseldaten verschlüsselt und Chiffriertextdaten erzeugt, dadurch gekennzeichnet, dass die Erweiterungsschlüssel-Erzeugungsvorrichtung Folgendes aufweist: eine Datenteilungseinheit (20), die so betreibbar ist, dass sie die Verschlüsselungsschlüsseldaten in mehrere Teilschlüsseldaten unterteilt; und mehrere in Reihe geschaltete Schlüsselumwandlungseinheiten (2128), die so betreibbar sind, dass sie die mehreren Teilschlüsseldaten als Eingangssignal empfangen und die mehreren Erweiterungsschlüsseldaten ausgeben, und jede der mehreren Schlüsselumwandlungseinheiten Folgendes aufweist: eine Ausgangssignal-Berechnungseinheit (230), die so betreibbar ist, dass sie die mehreren Teilschlüsseldaten oder mehreren Ausgangsdaten von einer vorhergehenden Schlüsselumwandlungseinheit als mehrere Eingangsdaten empfängt, einen festen Umwandlungsprozess an den einzelnen Eingangsdaten so durchführt, dass kein Bitwert der einzelnen Eingangsdaten einen anderen Bitwert der mehreren Eingangsdaten beeinträchtigt, und mehrere Ausgangsdaten an eine nachfolgende Schlüsselumwandlungseinheit ausgibt; und eine Erweiterungsschlüssel-Berechnungseinheit (210), die so betreibbar ist, dass sie die mehreren Eingangsdaten verknüpft und die Erweiterungsschlüsseldaten erzeugt.
  12. Verschlüsselungsvorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass die Ausgangssignal-Berechnungseinheit (230) eine Drehverschiebungsoperation um eine bestimmte Anzahl von Bits an mindestens einer Einheit der mehreren Eingangsdaten ausführt.
  13. Verschlüsselungsvorrichtung nach Anspruch 12, dadurch gekennzeichnet, dass die bestimmte Anzahl von Bits kein Maß für eine Anzahl von Bits der Eingangsdaten ist, an denen die Drehverschiebungsoperation ausgeführt wird.
  14. Verschlüsselungsvorrichtung nach Anspruch 11, dadurch gekennzeichnet, dass die Erweiterungsschlüssel-Berechnungseinheit (210) einen Substitutionsprozess an mindestens einer Einheit der mehreren Eingangsdaten aufgrund einer bestimmten Substitutionstabelle in einem Zwischenprozess des Verknüpfens der mehreren Eingangsdaten ausführt.
  15. Entschlüsselungsvorrichtung, die Chiffriertextdaten unter Verwendung von Verschlüsselungsschlüsseldaten entschlüsselt, mit: einer Erweiterungsschlüssel-Umkehrerzeugungsvorrichtung (4), die so betreibbar ist, dass sie die Verschlüsselungsschlüsseldaten empfängt und mehrere Erweiterungsschlüsseldaten in einer umgekehrten Reihenfolge einer Erweiterungsschlüssel-Erzeugungsvorrichtung (2) erzeugt; und einer Daten-Umkehrverwürfelungseinheit (3), die so betreibbar ist, dass sie die Chiffriertextdaten aufgrund der mehreren Erweiterungsschlüsseldaten entschlüsselt, dadurch gekennzeichnet, dass die Erweiterungsschlüssel-Erzeugungsvorrichtung (2) Folgendes aufweist: eine Datenteilungseinheit (20), die so betreibbar ist, dass sie die Verschlüsselungsschlüsseldaten in mehrere Teilschlüsseldaten unterteilt; und mehrere in Reihe geschaltete Schlüsselumwandlungseinheiten (2128), die so betreibbar sind, dass sie die mehreren Teilschlüsseldaten als Eingangssignal empfangen und die mehreren Erweiterungsschlüsseldaten ausgeben, jede der mehreren Schlüsselumwandlungseinheiten Folgendes aufweist: eine Ausgangssignal-Berechnungseinheit (230), die so betreibbar ist, dass sie die mehreren Teilschlüsseldaten oder mehreren Ausgangsdaten von einer vorhergehenden Schlüsselumwandlungseinheit als mehrere Eingangsdaten empfängt, einen festen Umwandlungsprozess an den mehreren Eingangsdaten so durchführt, dass kein Bitwert der einzelnen Eingangsdaten einen anderen Bitwert der mehreren Eingangsdaten beeinträchtigt, und mehrere Ausgangsdaten an eine nachfolgende Schlüsselumwandlungseinheit ausgibt; und eine Erweiterungsschlüssel-Berechnungseinheit (210), die so betreibbar ist, dass sie die mehreren Eingangsdaten verknüpft und die Erweiterungsschlüsseldaten erzeugt, und die Erweiterungsschlüssel-Umkehrerzeugungsvorrichtung (4) Folgendes aufweist: eine Schlüsselmodifikationseinheit (40), die so betreibbar ist, dass sie bestimmte Stufen der Verarbeitung in den Schlüsselumwandlungseinheiten in der Erweiterungsschlüssel-Erzeugungsvorrichtung mit einer Verarbeitungsstufe durchführt; und mehrere in Reihe geschaltete Schlüssel-Umkehrumwandlungseinheiten (4148), und dass jede der mehreren Schlüssel-Umkehrumwandlungseinheiten jeweils Ausgangsdaten von der Schlüsselmodifikationseinheit oder Ausgangsdaten von einer vorhergehenden Schlüssel- Umkehrumwandlungseinheit als Eingangsdaten empfängt, die Erweiterungsschlüsseldaten erzeugt und Daten an eine nachfolgende Schlüssel-Umkehrumwandlungseinheit von den Eingangsdaten ausgibt und die erzeugten Erweiterungsschlüsseldaten in einer umgekehrten Reihenfolge von der Erweiterungsschlüssel-Erzeugungsvorrichtung erzeugt werden.
  16. Entschlüsselungsvorrichtung nach Anspruch 15, dadurch gekennzeichnet, dass die Ausgangssignal-Berechnungseinheit (430) eine Drehverschiebungsoperation um eine bestimmte Anzahl von Bits an mindestens einer Einheit der mehreren Eingangsdaten ausführt.
  17. Entschlüsselungsvorrichtung nach Anspruch 16, dadurch gekennzeichnet, dass die bestimmte Anzahl von Bits kein Maß für eine Anzahl von Bits der Eingangsdaten ist, an denen die Drehverschiebungsoperation ausgeführt wird.
  18. Entschlüsselungsvorrichtung nach Anspruch 15, dadurch gekennzeichnet, dass die Erweiterungsschlüssel-Berechnungseinheit (410) einen Substitutionsprozess an mindestens einer Einheit der mehreren Eingangsdaten aufgrund einer bestimmten Substitutionstabelle in einem Zwischenprozess des Verknüpfens der mehreren Eingangsdaten ausführt.
  19. Verschlüsselungssystem mit: einer Verschlüsselungsvorrichtung (1100), die Klartextdaten unter Verwendung von Verschlüsselungsschlüsseldaten verschlüsselt und Chiffriertextdaten erzeugt; und einer Entschlüsselungsvorrichtung (1200), die die Chiffriertextdaten unter Verwendung der Verschlüsselungsschlüsseldaten entschlüsselt, dadurch gekennzeichnet, dass die Verschlüsselungsvorrichtung Folgendes aufweist: eine Erweiterungsschlüssel-Erzeugungsvorrichtung (2), die so betreibbar ist, dass sie die Verschlüsselungsschlüsseldaten als Eingangssignal empfängt und mehrere Erweiterungsschlüsseldaten ausgibt; und eine Daten-Verwürfelungseinheit (1), die so betreibbar ist, dass sie den Klartext aufgrund der mehreren Erweiterungsschlüsseldaten verschlüsselt, die Erweiterungsschlüssel-Erzeugungsvorrichtung Folgendes aufweist: eine Datenteilungseinheit (20), die so betreibbar ist, dass sie die Verschlüsselungsschlüsseldaten in mehrere Teilschlüsseldaten unterteilt; und mehrere in Reihe geschaltete Schlüsselumwandlungseinheiten (2128), die so betreibbar sind, dass sie die mehreren Teilschlüsseldaten als Eingangssignal empfangen und die mehreren Erweiterungsschlüsseldaten ausgeben, und jede der mehreren Schlüsselumwandlungseinheiten Folgendes aufweist: eine Ausgangssignal-Berechnungseinheit (230), die so betreibbar ist, dass sie die mehreren Teilschlüsseldaten oder mehreren Ausgangsdaten von einer vorhergehenden Schlüsselumwandlungseinheit als mehrere Eingangsdaten empfängt, einen festen Umwandlungsprozess an den einzelnen Eingangsdaten so durchführt, dass kein Bitwert der mehreren Eingangsdaten einen anderen Bitwert der mehreren Eingangsdaten beeinträchtigt, und mehrere Ausgangsdaten an eine nachfolgende Schlüsselumwandlungseinheit ausgibt; und eine Erweiterungsschlüssel-Berechnungseinheit (210), die so betreibbar ist, dass sie die mehreren Eingangsdaten verknüpft und die Erweiterungsschlüsseldaten erzeugt.
  20. Erweiterungsschlüssel-Erzeugungsverfahren zum Empfangen von Verschlüsselungsschlüsseldaten als Eingangssignal und zum Ausgeben von mehreren Verschlüsselungsschlüsseldaten mit: einem Schritt des Unterteilens der Verschlüsselungsschlüsseldaten in mehrere Teilschlüsseldaten und mehreren Schlüsselumwandlungsschritten zum Empfangen der mehreren Teilschlüsseldaten als Eingangssignal und zum Ausgeben der mehreren Erweiterungsschlüsseldaten, dadurch gekennzeichnet, dass jeder der mehreren Schlüsselumwandlungsschritte Folgendes aufweist: einen Schritt des Empfangens der mehreren Teilschlüsseldaten oder der mehreren Ausgangsdaten in einem vorhergehenden Schlüsselumwandlungsschritt als mehrere Eingangsdaten, des Ausführens eines festen Umwandlungsprozesses an den einzelnen Eingangsdaten in einer Weise, dass kein Bitwert der einzelnen Eingangsdaten einen anderen Bitwert der einzelnen Eingangsdaten beeinträchtigt, und des Ausgebens mehrerer Ausgangsdaten, die in einem nachfolgenden Schlüsselumwandlungsschritt verwendet werden; und einen Schritt des Verknüpfens der mehreren Eingangsdaten und des Erzeugens der Erweiterungsschlüsseldaten.
  21. Computerprogramm, das beim Laden in ein Computersystem und beim Abarbeiten das Computersystem so konfiguriert, dass es das im Anspruch 20 definierte Erweiterungsschlüssel-Erzeugungsverfahren durchführt.
DE60301750T 2002-04-03 2003-03-20 Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem Expired - Lifetime DE60301750T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002101074 2002-04-03
JP2002101074 2002-04-03

Publications (2)

Publication Number Publication Date
DE60301750D1 DE60301750D1 (de) 2005-11-10
DE60301750T2 true DE60301750T2 (de) 2006-07-06

Family

ID=28035928

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60301750T Expired - Lifetime DE60301750T2 (de) 2002-04-03 2003-03-20 Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem

Country Status (3)

Country Link
US (1) US7212633B2 (de)
EP (1) EP1351430B1 (de)
DE (1) DE60301750T2 (de)

Families Citing this family (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100456599B1 (ko) * 2002-11-12 2004-11-09 삼성전자주식회사 병렬 디이에스 구조를 갖는 암호 장치
JP2004361986A (ja) * 2003-04-08 2004-12-24 Sharp Corp スクランブル回路
JP2005103771A (ja) 2003-09-26 2005-04-21 Fuji Photo Film Co Ltd インクジェットヘッドとその製造方法及びインクジェット記録装置
KR20070042511A (ko) * 2004-06-14 2007-04-23 디 유니버시티 오브 노스 캐롤라이나 앳 그린스보로 디지털 콘텐트 보안 시스템 및 방법
US7783037B1 (en) * 2004-09-20 2010-08-24 Globalfoundries Inc. Multi-gigabit per second computing of the rijndael inverse cipher
US7873166B2 (en) 2005-09-13 2011-01-18 Avaya Inc. Method for undetectably impeding key strength of encryption usage for products exported outside the U.S
CN100485708C (zh) * 2007-08-07 2009-05-06 江雨 一种输入数据的安全处理方法及装置
WO2009104827A1 (en) * 2008-02-20 2009-08-27 Industry-Academic Cooperation Foundation, Yonsei University Method and apparatus for generating key stream for stream cipher, s-box for block cipher and method for substituting input vector using the s-box
JP4764932B2 (ja) 2009-02-03 2011-09-07 株式会社日立製作所 再生信号の評価方法および光ディスク装置
JP4764939B2 (ja) * 2009-04-14 2011-09-07 株式会社日立製作所 記録条件の調整方法及び光ディスク装置
JP4812881B2 (ja) * 2010-01-20 2011-11-09 日立コンシューマエレクトロニクス株式会社 記録条件の調整方法及び光ディスク装置
US8611540B2 (en) * 2010-06-23 2013-12-17 Damaka, Inc. System and method for secure messaging in a hybrid peer-to-peer network
JP5682526B2 (ja) * 2011-03-28 2015-03-11 ソニー株式会社 データ処理装置、およびデータ処理方法、並びにプログラム
US9684580B2 (en) * 2013-11-05 2017-06-20 Ixia Methods, systems, and computer readable media for efficient scrambling of data for line rate transmission in high speed communications networks

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003596A (en) * 1989-08-17 1991-03-26 Cryptech, Inc. Method of cryptographically transforming electronic digital data from one form to another
US6304657B1 (en) * 1999-05-26 2001-10-16 Matsushita Electric Industrial Co., Ltd. Data encryption apparatus using odd number of shift-rotations and method
TW556111B (en) * 1999-08-31 2003-10-01 Toshiba Corp Extended key generator, encryption/decryption unit, extended key generation method, and storage medium
JP3505482B2 (ja) * 2000-07-12 2004-03-08 株式会社東芝 暗号化装置、復号装置及び拡大鍵生成装置、拡大鍵生成方法並びに記録媒体
US20030198345A1 (en) * 2002-04-15 2003-10-23 Van Buer Darrel J. Method and apparatus for high speed implementation of data encryption and decryption utilizing, e.g. Rijndael or its subset AES, or other encryption/decryption algorithms having similar key expansion data flow

Also Published As

Publication number Publication date
US7212633B2 (en) 2007-05-01
EP1351430A1 (de) 2003-10-08
US20030190041A1 (en) 2003-10-09
EP1351430B1 (de) 2005-10-05
DE60301750D1 (de) 2005-11-10

Similar Documents

Publication Publication Date Title
DE69721439T2 (de) Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels
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
DE19827904C2 (de) Blockchiffrier- oder -dechiffrierverfahren und Blockchiffrier- oder -dechiffriervorrichtung
DE60301750T2 (de) Vorrichtung zur Erzeugung eines erweiterten Schlüssels, Verschlüsselungsvorrichtung und Verschlüsselungssystem
DE60222052T2 (de) Verschlüsselung gesichert gegen Angriffe durch die Analyse der Leistungsaufnahme (DPA)
DE69936024T2 (de) Vorrichtung zur Verschlüsselung/Entschlüsselung
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE60024739T2 (de) Generator eines erweiterten Schlüssels, Verschlüsselungs/Entschlüsselungsvorrichtung, Verfahren zur Erzeugung eines erweiterten Schlüssels und Speichermedium
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
EP1298834B1 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
DE60221850T2 (de) Verfahren und vorrichtung zur datenverschlüsselung
DE102008010789B4 (de) Verfahren zur zugriffs- und kommunikationsbezogenen Zufallsver- und Entschlüsselung von Daten
DE102004042826B4 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
DE69729297T2 (de) Verschlüsselungsvorrichtung für binärkodierte nachrichten
EP0923826B1 (de) Anordnung und verfahren zur kryptographischen bearbeitung eines digitalen datenstroms, der eine beliebige anzahl von daten aufweist
DE60038042T2 (de) Einserkomplement-verschlüsselungskombinator
DE602004003675T2 (de) Sicherheitsgegenmassnahmen gegen Angriffe durch Stromverbrauchsanalysen
DE10324422B4 (de) Verfahren und Vorrichtung zur Abbildung eines abzubildenden Eingangswertes auf einen verschlüsselten abgebildeten Ausgangswert
DE10345378B4 (de) Verfahren und Vorrichtung zur Ver-/Entschlüsselung
DE60022974T2 (de) Vorrichtung zur Ausführung eines Blockverschlüsselungsalgorithmus mit Wiederholungsrunden
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
DE102004038594B4 (de) Verschlüsselungsverfahren und -vorrichtung
DE10352680A1 (de) Verschlüsselungsvorrichtung und Verschlüsselungsverfahren
DE69829566T2 (de) Verschlüsselungsgerät

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: PANASONIC CORP., KADOMA, OSAKA, JP