DE60009257T2 - Verfahren und Vorrichtung zum Entwurf einer Verschlüsselungslogik und zugehöriger Computer - Google Patents

Verfahren und Vorrichtung zum Entwurf einer Verschlüsselungslogik und zugehöriger Computer Download PDF

Info

Publication number
DE60009257T2
DE60009257T2 DE60009257T DE60009257T DE60009257T2 DE 60009257 T2 DE60009257 T2 DE 60009257T2 DE 60009257 T DE60009257 T DE 60009257T DE 60009257 T DE60009257 T DE 60009257T DE 60009257 T2 DE60009257 T2 DE 60009257T2
Authority
DE
Germany
Prior art keywords
input
output
boxes
encryption
box
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
DE60009257T
Other languages
English (en)
Other versions
DE60009257D1 (de
Inventor
Takeshi Kawasaki-shi Shimoyama
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Publication of DE60009257D1 publication Critical patent/DE60009257D1/de
Application granted granted Critical
Publication of DE60009257T2 publication Critical patent/DE60009257T2/de
Anticipated expiration legal-status Critical
Expired - Lifetime legal-status Critical Current

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • H04L9/0625Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation with splitting of the data block into left and right halves, e.g. Feistel based algorithms, DES, FEAL, IDEA or KASUMI
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Storage Device Security (AREA)

Description

  • Die vorliegende Erfindung betrifft im allgemeinen ein Verfahren und eine Vorrichtung zum Entwickeln einer Verschlüsselungslogik einer Verschlüsselungsanordnung, die ein Verschlüsseln oder Dechiffrieren pro Block unter Verwendung einer F-Funktion zum Konvertieren von Eingabebits in Ausgabebits mittels einer Vielzahl von S-Boxen bewirkt. Im besonderen betrifft diese Erfindung ein Verfahren und eine Vorrichtung, durch die ein rasches und effektives Selektieren einer optimalen S-Box möglich ist, die einer Computerleistung entspricht, wenn eine Blockverschlüsselung mit gemeinsamem Schlüssel (common key) mit S-Boxen entwickelt wird. Diese Erfindung betrifft auch ein Computerprogramm, das auf einem Aufzeichnungsmedium gespeichert werden kann und das dann, wenn es ausgeführt wird, das Verfahren gemäß der vorliegenden Erfindung auf einem Computer realisiert. Zusätzlich betrifft diese Erfindung eine Verschlüsselungsanordnung (Chiffriersystem), bei der das obige Verfahren, die Vorrichtung oder das Programm zum Einsatz kommt.
  • Bei dem heutigen Fortschritt auf dem Gebiet der Kommunikationsinformationstechnik werden wichtige Informationen durch verschiedene Typen von Kommunikationsmedien vorgesehen, die die verdrahtete, drahtlose und Satellitenkommunikation enthalten. Es ist jedoch erforderlich, solche wichtigen Informationen auf die sicherste Weise zu übertragen.
  • Verschiedene Arten von Verschlüsselungsprotokollen, wie beispielsweise ein Kryptosystem mit Geheimschlüssel (secret key) oder ein Kryptosystem mit öffentlichem Schlüssel (public key), sind entwickelt worden und zum übertragen der Informationen auf gesicherte Weise verwendet worden. Das Kryptosystem mit Geheimschlüssel, das ein Typ der Blockverschlüsselung mit gemeinsamem Schlüssel ist, hat sich hinsichtlich der Hochgeschwindigkeitsverschlüsselungskommunikation als das geeignetste erwiesen.
  • Eine Reihe von Verschlüsselungsalgorithmen ist als herkömmliche Blockverschlüsselung mit gemeinsamem Schlüssel vorgeschlagen worden. Die meisten derartigen Algorithmen verwenden eine einfache und sich wiederholende Struktur, die als Feistel-Struktur bezeichnet wird. In einem internen Abschnitt dieser Feistel-Struktur, die auch als F-Funktion bezeichnet wird, sind nichtlineare Funktionen ausgerichtet, die als S-Boxen bezeichnet werden, und in den meisten Fällen wird eine Kombination von Ausgaben durch eine lineare Funktion verteilt. Die interne Struktur, die als F-Funktion bezeichnet wird, ist im allgemeinen als SPN-(Substitution Permutation Network)-Struktur bekannt.
  • Es ist keineswegs leicht, die S-Boxen zu entwickeln, die den Sicherheitskern der Blockverschlüsselung mit gemeinsamem Schlüssel bilden. Wenn mehrere Arten von S-Boxen verwendet werden, ist ferner eine größere Speicherkapazität erforderlich, um die S-Boxen zu speichern. Daher wird bei der allgemeinen Blockverschlüsselung mit gemeinsamem Schlüssel, um die Entwicklungskosten von S-Boxen und Speicherkapazität zu reduzieren und dadurch die Struktur derselben zu vereinfachen, dieselbe S-Box wiederholt verwendet, oder die S-Boxen mit derselben Eingangsgröße oder Ausgangsgröße werden wiederverwendet.
  • Da die Eingabebitanzahl bei der Blockverschlüsselung mit gemeinsamem Schlüssel im allgemeinen 64 oder 128 beträgt, werden S-Boxen mit einem 2n-Bit-Eingang verwendet, wenn die S-Boxen mit derselben Größe ohne jegliche Duplizierung eingesetzt werden. Tatsächlich haben die S-Boxen jedoch entweder einen 4-Bit- oder einen 8-Bit-Eingang auf Grund der Implementierungseinschränkung.
  • Das heißt, da die S-Boxen die Abschnitte sind, die in der Verschlüsselungsvorrichtung am häufigsten konsultiert werden, beeinträchtigen sie höchstwahrscheinlich die Ver schlüsselungsrate. Aus diesem Grund ist es wünschenswert, die Entwicklung auf solch eine Weise vorzunehmen, daß die gesamte Tabelle, die die S-Boxen repräsentiert, in einer am schnellsten konsultierbaren Speichervorrichtung (im allgemeinen ein Primär-Cache-Speicher) in einem Computer enthalten ist. Falls die Eingabebitanzahl der S-Boxen jedoch zunimmt, nimmt die Tabellengröße allmählich exponentiell zu. Da eine obere Grenze der in der Praxis verwendbaren Tabellengröße vorhanden ist, fällt die Zugriffsrate mehr ab als der Zahlenwert, falls eine Tabelle konsultiert werden sollte, die die Speicherkapazität der Speicheranordnung überschreitet. Angesichts dessen sind nur der 4-Bit-Eingang oder der 8-Bit-Eingang realisierbare Alternativen für S-Boxen mit einem 2n-Eingang, um Nachteile in dem Zustand, wie er implementiert wird, zu vermeiden.
  • Die Speicherkapazität von heutigen Computern nimmt von Jahr zu Jahr zu. Obwohl es zu früh sein kann, S-Boxen mit einem 16-Bit-Eingang einzusetzen, kann nicht gesagt werden, daß die Speicherquelle der Computer durch S-Boxen mit einem 8-Bit-Eingang voll genutzt wird.
  • Mit anderen Worten, S-Boxen mit einem Eingang mit kleinerer Bitanzahl können in dem Primär-Cache-Speicher in Computern von fast jedem Typ enthalten sein. Auf diese Weise nimmt jedoch die Gesamtanzahl der S-Boxen zu, und damit auch die Anzahl der Male des Konsultierens der S-Boxen, wodurch sich das Problem ergibt, daß die Leistungsrate reduziert wird.
  • Demgegenüber kann durch S-Boxen mit einem Eingang mit größerer Bitanzahl die Anzahl der Male des Konsultierens der S-Boxen reduziert werden, aber die Größe der Tabelle, die die S-Boxen bildet, nimmt zu. Daher können die S-Boxen nicht in dem Primär-Cache-Speicher enthalten sein und müssen in einer anderen Speicheranordnung installiert werden, die eine niedrigere Konsultationsrate hat. Aus diesem Grund dauert jede Konsultation der Tabelle länger, wodurch das Problem verursacht wird, daß eine Gesamtleistungsrate reduziert wird.
  • Angesichts dessen ist es ziemlich wichtig, wie eine optimale S-Box, die der Computerleistung entspricht, selektiert werden sollte, wenn eine Blockverschlüsselung mit gemeinsamem Schlüssel mit S-Boxen entwickelt wird.
  • PRENEEL B ET AL: 'STATE OF THE ART IN APPLIED CRYPTOGRAPHY' COURSE ON COMPUTER SECURITY AND INDUSTRIAL CRYPTOGRAPHY. REVISED LECTURES, LEUVEN, BELGIEN, 3.–6. JUNI 1997, Seiten 105–130, XP000979891 1997, Deutschland, Springer-Verlag, ISBN: 3-540-65474-7, offenbart ein Verschlüsselungsentwicklungsverfahren gemäß der Präambel des unabhängigen Verfahrensanspruchs. Es ist auch offenbart, daß S-Boxen mit mehr Ausgabebit eine höhere Effektivität vorsehen können und daß die S-Boxen in den schnellen Cache-Speicher passen sollten. Gemäß diesem Dokument sind S-Boxen mit 8 Eingabebit und 32 oder 64 Ausgabebit für 32-Bit- oder 64-Bit-Architekturen besonders geeignet.
  • SCHNEIER B ET AL: 'Fast software encryption: designing encryption algorithms for optimal Software Speed on the Intel Pentium processor' FAST SOFTWARE ENCRYPTION, 4. INTERNATIONALER WORKSHOP, FSE '97 PROCEEDINGS, HAIFA, ISRAEL, 20.–22. JAN. 1997, Seiten 242–259, XP008002230 1997, Berlin, Deutschland, Springer-Verlag, Deutschland ISBN: 3-540-63247-6, offenbart, daß größere Tabellen für S-Boxen unter dem kryptographischen Gesichtspunkt besser sind, daß aber kleinere unter dem Gesichtspunkt der Softwaregeschwindigkeit besser sind. Es wird hervorgehoben, daß eine wesentliche Leistungsminderung eintreten kann, falls die Tabellen nicht in den chipintegrierten Daten-Cache der CPU passen.
  • Ausführungsformen der Erfindung können ein Verfahren und eine Vorrichtung zum Entwickeln einer Verschlüsselungslogik vorsehen, durch die ein rasches und effektives Selektieren einer optimalen S-Box möglich ist, die der Computerleistung entspricht, wenn eine Blockverschlüsselung mit gemeinsamem Schlüssel mit S-Boxen entwickelt wird. Eine Ausführungsform der vorliegenden Erfindung kann auch ein Computerprogramm vorsehen (das auf einem Aufzeichnungsmedium gespeichert werden kann), welches das Verfahren gemäß der vorliegenden Erfindung auf einem Computer realisiert.
  • Bei dem Verfahren und der Vorrichtung zum Entwickeln einer Verschlüsselungslogik der vorliegenden Erfindung wird eine Eingabe- und Ausgabebitanzahl einer Vielzahl von S-Boxen auf der Basis der Speicherkapazität des mit hoher Geschwindigkeit konsultierbaren Speichers selektiert, der in einer Verschlüsselungsanordnung vorgesehen ist, und wird eine Vielzahl von S-Boxen mit der selektierten Eingabe- und Ausgabebitanzahl erzeugt. Demzufolge kann eine optimale S-Box, die der Computerleistung entspricht, rasch und effektiv selektiert werden, wenn eine Blockverschlüsselung mit gemeinsamem Schlüssel mit S-Boxen entwickelt wird.
  • Das Computerprogramm der vorliegenden Erfindung kann auf einem Aufzeichnungsmedium gespeichert sein, und es kann das Verfahren gemäß der vorliegenden Erfindung auf einem Computer realisieren. Demzufolge kann das Verfahren gemäß der vorliegenden Erfindung leicht und automatisch auf dem Computer realisiert werden.
  • Das Verfahren, die Vorrichtung oder das Programm der vorliegenden Erfindung kann Teil eines Chiffriersystems sein, wie etwa eines Computers, der zur Übertragung von sicheren Informationen ausgelegt ist.
  • Nun wird beispielhaft Bezug auf die beiliegenden Zeichnungen genommen, in denen:
  • 1 ein Funktionsblockdiagramm ist, das eine Anordnung einer Verschlüsselungsentwicklungsvorrichtung gemäß einer Ausführungsform der vorliegenden Erfindung zeigt;
  • 2 ein Flußdiagramm ist, das eine Verarbeitungsprozedur der Verschlüsselungsentwicklungsvorrichtung von 1 zeigt;
  • 3 ein Flußdiagramm ist, das eine S-Box-Optimierungsprozedur zeigt, die bei Schritt S3 von 2 angeführt ist;
  • 4 ein Flußdiagramm ist, das eine S-Box-Erzeugungsprozedur einer S-Box-Erzeugungseinheit von 1 zeigt;
  • 5 ein Diagramm ist, das ein Beispiel für eine F-Funktion (wie entwickelt) zeigt, die durch eine F-Funktions-Erzeugungseinheit von 1 erzeugt wurde;
  • 6 ein Diagramm ist, das ein Beispiel für die Feistel-Struktur zeigt, wenn die in 5 gezeigte F-Funktion verwendet wird;
  • 7 ein Flußdiagramm ist, das eine Verarbeitungsprozedur zeigt, wenn die Verschlüsselungsentwicklungsvorrichtung von 1 auf einem Computer implementiert wird;
  • 8 ein Flußdiagramm ist, das eine S-Box-Extraktionsverarbeitungsprozedur zeigt, die bei Schritt S32 von 7 angeführt ist;
  • 9 ein Flußdiagramm ist, das eine Kombinationstabellenerzeugungsprozedur zeigt, die bei Schritt S33 von 7 angeführt ist;
  • 10 ein Flußdiagramm ist, das eine Prozedur zum Kombinieren der S-Boxen und eine lineare Transformation L zeigt; und
  • 11 ein Diagramm ist, das ein Beispiel für die F-Funktion (wie implementiert) gemäß einer Ausführungsform der vorliegenden Erfindung zeigt.
  • Eine bevorzugte Ausführungsform des Verfahrens und der Vorrichtung zum Entwickeln einer Verschlüsselungslogik und des Computerprogramms der vorliegenden Erfindung wird im folgenden unter Bezugnahme auf die beiliegenden Zeichnungen erläutert. Bei der folgenden Erläuterung wird der Fall angenommen, daß ein Pentium-II-Prozessor mit einem 16-kByte-Primär-Cache-Speicher verwendet wird.
  • Zunächst wird die Konfiguration der Verschlüsselungsentwicklungsvorrichtung gemäß der vorliegenden Ausführungsform erläutert. 1 ist ein Funktionsblockdiagramm, das die Konfiguration der Verschlüsselungsentwicklungsvorrichtung der vorliegenden Erfindung zeigt. Die Verarbeitungsanordnung 1 lädt Programme, die von einem nichtgezeigten Aufzeichnungsmedium gelesen werden, auf ihren nichtgezeigten Hauptspeicher herunter und startet den Ablauf jedes Prozesses, der im folgenden beschrieben ist. Die Verarbeitungsanordnung 1 umfaßt eine Eingabeeinheit 2, eine Optimierungsverarbeitungseinheit 3, eine S-Box-Erzeugungseinheit 4, eine F-Funktions-Erzeugungseinheit 5 und dergleichen.
  • Die Eingabeeinheit 2 wird verwendet, wenn Parameter eingegeben werden. Beispiele für die Parameter sind Speicherkapazität des Primär-Cache-Speichers in dem Computer, Eingabe- und Ausgabebitgesamtanzahl und kleinste Eingabe- und Ausgabeanzahl der S-Box.
  • Die Optimierungsverarbeitungseinheit 3 optimiert die Eingabe- und Ausgabebitanzahl der S-Box auf der Basis der von der Eingabeeinheit 2 eingegebenen Parameter.
  • Das heißt, die Optimierungsverarbeitungseinheit 3 dividiert einen Wert 32, der als Eingabe- und Ausgabebitgesamt anzahl gegeben ist, durch einen Wert 5, der als kleinste Eingabe- und Ausgabeanzahl gegeben ist, um einen Satz von "5 5 5 5 5 5" zu ergeben, und ordnet den Rest den am weitesten entfernten Positionen zu, um einen Satz von "6 5 5 5 5 6" zu ergeben, Anschließend kombiniert die Optimierungsverarbeitungseinheit 3 immer zwei oder drei benachbarte Bitketten, um einen Satz von "11 10 11" oder "16 16" zu ergeben. Dann beurteilt die Optimierungsverarbeitungseinheit 3, ob diese in dem Primär-Cache-Speicher enthalten sein können oder nicht, und selektiert diejenige als optimale Eingabe- und Ausgabebitanzahl, bei der beurteilt wurde, daß sie enthalten sein kann.
  • Der Grund dafür, daß der obige Prozeß ausgeführt wird, ist wie folgt. Durch das Verwenden der größten S-Box im Rahmen der Speicherkapazität des Primär-Cache-Speichers kann nicht nur der Primär-Cache-Speicher voll genutzt werden, auf den mit hoher Geschwindigkeit zugegriffen werden kann, sondern kann auch die Anzahl der Male des Zugreifens auf die S-Box reduziert werden, wodurch eine Hochgeschwindigkeitsverschlüsselung/-dechiffrierung (Chiffrierung/Dechiffrierung) realisiert wird.
  • Die S-Box-Erzeugungseinheit 4 erzeugt die S-Box gemäß der optimierten Eingabe- und Ausgabeanzahl der S-Box. Das heißt, die S-Box-Erzeugungseinheit 4 erzeugt eine S-Box mit der Eingabe- und Ausgabeanzahl, die durch die Optimierungsverarbeitungseinheit 3 optimiert wurde.
  • Die F-Funktions-Erzeugungseinheit 5 erzeugt die F-Funktion. Das heißt, die F-Funktions-Erzeugungseinheit 5 richtet eine Vielzahl von S-Boxen aus, die durch die S-Box-Erzeugungseinheit 4 erzeugt wurden, und erzeugt eine F-Funktion, die die Ausgabe von jeder S-Box kollektiv linear transformiert, indem jeder S-Box das Resultat einer Exklusiv-ODER-Operation der Eingabe und eines Schlüssels eingegeben wird.
  • Eine Eingabedatei 6 umfaßt eine Computerparameterdatei, die die Speicherkapazität des Primär-Cache-Speichers in dem Computer oder dergleichen speichert, und eine S-Box-Parameterdatei, die alle Arten von Daten bezüglich der S-Box und dergleichen speichert.
  • Eine Ausgabedatei 7 umfaßt eine Ausgabedatei der S-Box (wie entwickelt/wie implementiert), eine Ausgabedatei der F-Funktion (wie entwickelt/wie implementiert) und eine Ausgabedatei der Feistel-Struktur-Daten (wie entwickelt/wie implementiert). Diese Ausgabedatei 7 kann andere Dateien umfassen, die hier nicht erwähnt sind.
  • Die Anzeigeanordnung 8 ist eine CRT, eine Flüssigkristallplatte oder dergleichen. Diese Anzeigeanordnung 8 zeigt Bilder an. Die Eingabe- und Ausgabeanordnung 9 enthält solche Anordnungen wie Drucker, Plattenanordnungen, eine Anzeigeanordnung, eine Speicheranordnung, etc.
  • Als nächstes wird hier unter Bezugnahme auf 2 die Reihenfolge der Prozedur erläutert, die durch die in 1 gezeigte Verschlüsselungsentwicklungsvorrichtung ausgeführt wird. Bei der Verschlüsselungsentwicklungsvorrichtung wird zuerst die Speicherkapazität des Primär-Cache-Speichers in dem Computer, wie in 2 gezeigt, als Parameter eingegeben (Schritt S1). Zum Beispiel wird bei einem Pentium-II-Prozessor "16 kByte" eingegeben und wird bei einem PA-RISC-Prozessor "1 MByte" eingegeben.
  • Dann werden Parameter der S-Box und die Gesamteingabe und -ausgabe eingegeben (Schritt S2). Es wird angenommen, daß die Eingabe- und Ausgabebitanzahl der S-Box 5 oder größer ist und die Eingabe- und Ausgabebitgesamtanzahl 32 beträgt.
  • Dann wird die S-Box optimiert (Schritt S3). Das heißt, ein Wert 32, der als Eingabe- und Ausgabebitgesamtanzahl gegeben ist, wird durch einen Wert 5 dividiert, der als kleinste Eingabe- und Ausgabebitanzahl der S-Box gegeben ist, um einen Satz von sechs 5-Bit-Ketten, nämlich "5 5 5 5 5 5", und einen 2-Bit-Rest zu ergeben. Dann wird der 2-Bit-Rest den am weitesten entfernten Positionen zum Beispiel am linken Ende und am rechten Ende zugeordnet, um einen Satz von "6 5 5 5 5 6" zu ergeben.
  • Anschließend wird eine Kombinationszahl von Kombinationsbitketten auf der Basis der Speicherkapazität des Primär-Cache-Speichers bestimmt, und die S-Box wird durch das Kombinieren der obigen sechs Bitketten auf der Basis der Kombinationszahl optimiert. Wenn die Speicherkapazität des Primär-Cache-Speichers zum Beispiel 16 kByte beträgt, werden immer zwei Bitketten kombiniert, um einen Satz zu ergeben, der drei Kombinationen hat, nämlich "11 10 11". Wenn die Speicherkapazität des Primär-Cache-Speichers 1 MByte beträgt, werden immer drei Bitketten kombiniert, um einen Satz mit zwei Kombinationen zu ergeben, nämlich "16 16". Wie die Kombinationszahl auf der Basis der Speicherkapazität des Primär-Cache-Speichers bestimmt wird, wird unten beschrieben.
  • Im Anschluß daran wird die S-Box auf der Basis der optimierten Eingabe- und Ausgabebitanzahl der S-Box erzeugt (Schritt S4), und die F-Funktion (der Geheimschlüssel bezüglich der F-Funktion, ein Schlüssel mit derselben Bitanzahl wie die Eingabe- und Ausgabebitanzahl der F-Funktion, etc.) wird unter Verwendung der so erzeugten S-Box erzeugt (Schritt S5), wonach die Verschlüsselung unter Verwendung der so erzeugten F-Funktion erzeugt wird.
  • Durch die obige Serie von Prozessen kann die Eingabe- und Ausgabebitanzahl der S-Box nach Eingabe der Parameter (Speicherkapazität des Primär-Cache-Speichers und Eingabe- und Ausgabebitgesamtanzahl) des Computers oder dergleichen automatisch optimiert werden, wodurch es möglich wird, die optimierte S-Box, die F-Funktion und die Verschlüsselung zu erzeugen.
  • Als nächstes wird die bei Schritt S3 von 2 angeführte S-Box-Optimierungsprozedur eingehender erläutert. 3 ist ein Flußdiagramm, das die bei Schritt S3 von 2 angeführte S-Box-Optimierungsprozedur zeigt. Es wird angenommen, daß die Eingabe- und Ausgabebitanzahl der S-Box 5 oder größer ist und daß die Eingabe- und Ausgabebitgesamtanzahl 32 beträgt.
  • Wie in 3 gezeigt, werden zuerst 5-Bit-Ketten von insgesamt bis zu 32 Bit ausgerichtet (Schritt S11). Genauer gesagt, der kleinste Wert wird gemäß dem Eingabeparameter auf 5 Bit festgelegt (die Eingabe- und Ausgabebitanzahl der S-Box beträgt 5 oder mehr), und ein Wert 32, der als Eingabe- und Ausgabebitgesamtanzahl gegeben ist, wird durch einen Wert 5 dividiert, der als kleinste Eingabe- und Ausgabebitanzahl der S-Box festgelegt wurde. Dann werden dividierte Bitketten von insgesamt bis zu 32 Bit ausgerichtet, wodurch sich ein Satz von "5 5 5 5 5 5" (mit dem 2-Bit-Rest) ergibt.
  • Dann wird der 2-Bit-Rest beliebigen gewünschten Positionen zugeordnet (Schritt S12). Hierin werden die am weitesten entfernten Positionen selektiert, und die zwei Bit werden jeweilig dem linken Ende und rechten Ende zugeordnet, um einen Satz von "6 5 5 5 5 6" zu ergeben.
  • Anschließend wird solch eine Kombination ermittelt, die die Speichergröße des Primär-Cache-Speichers nicht überschreitet (Schritt S13). Genauer gesagt, immer zwei oder drei der Eingabe- und Ausgabebitzahlen der S-Boxen, die bei Schritt S12 ausgerichtet wurden, werden ab dem linken Ende kombiniert, um einen Satz von "11 10 11" (wenn immer zwei Eingabe- und Ausgabezahlen kombiniert werden) und einen Satz von "16 16" (wenn immer drei Eingabe- und Ausgabezahlen kombiniert werden) zu ergeben.
  • Dann wird a = ganzzahliger Abschnitt von ((Eingabe- und Ausgabebitgesamtanzahl)/log2 (Cache-Größe)) + 1 berechnet (Schritt S14). Wenn zum Beispiel 32 als Eingabe- und Ausgabebitgesamtanzahl und 16 kByte als Cache-Größe gegeben ist, ist dann
  • Figure 00120001
  • Anschließend wird die Kombinationszahl b, die nach dem Kombinationsprozeß bei Schritt S13 erhalten wird, mit dem bei Schritt S14 erhaltenen Wert a (Wert der endgültigen Kombinationszahl) verglichen (Schritt S15). Wenn b = a ist (wenn die Kombinationszahl b bei Schritt 13 dem endgültigen Wert a (zum Beispiel 3) gleich ist), ist der Optimierungsprozeß vollendet (Schritt S16). Wenn andererseits b > a ist, kehrt die Verschlüsselungsentwicklungsvorrichtung zu Schritt S11 zurück, um den Kombinationsprozeß zu wiederholen.
  • Auf diese Weise wird die Eingabe- und Ausgabegesamtanzahl (zum Beispiel 32 Bit) durch die kleinste Eingabe- und Ausgabeanzahl (zum Beispiel 5 Bit) der durch den Parameter spezifizierten S-Box dividiert, und die dividierten Bitketten werden ausgerichtet. Wenn ein Rest vorhanden ist, wird er den am weitesten entfernten Positionen zugeordnet, um einen Satz von Eingabe- und Ausgabeversuchsanzahlen der S-Box zu erzeugen. Die Eingabe- und Ausgabeanzahl wird durch wiederholtes Kombinieren der Eingabe- und Ausgabeanzahlen optimiert, bis die Kombinationszahl b dem endgültigen Wert a gleich wird, der gemäß der Eingabe- und Ausgabebitgesamtanzahl und der Cache-Größe ermittelt wurde. Somit wird die Anzahl der Male des Konsultierens der S-Boxen durch das Minimieren der Kombinationszahl der S-Boxen reduziert, um in dem Primär-Cache-Speicher enthalten zu sein, wodurch es möglich wird, die S-Box für jeden Computer separat zu optimieren.
  • Die folgende Beschreibung betrifft als nächstes die S-Box-Erzeugungsprozedur der S-Box-Erzeugungseinheit 4, die in 1 gezeigt ist. 4 ist ein Flußdiagramm, das die S-Box-Erzeugungsprozedur der S-Box-Erzeugungseinheit 4 von 1 zeigt.
  • Wie in 4 gezeigt, werden zuerst die Zuordnungszahlen nach der Optimierung extrahiert (Schritt S21). Im Fall der Optimierung mit drei Kombinationen, wie es bei Schritt S3 von 2 erläutert wurde, werden zum Beispiel die Werte 6 und 5 extrahiert.
  • Dann wird eine nichtlineare Tabelle mit der Eingabe-/ Ausgabebitanzahl entsprechend jeder Zuordnungszahl erzeugt (Schritt S22). Zum Beispiel wird, wie auf der rechten Seite der Zeichnung gezeigt, eine nichtlineare Tabelle erzeugt, die die 5-Bit-Eingabe als Adresse und eine 5-Bit-Ausgabe hat. Ferner wird eine nichtlineare Tabelle für 6 Bit erzeugt. Bei der obigen Prozedur können die nichtlinearen Tabellen in der Anzahl der Kombinationszahl der S-Boxen nach der Optimierung erzeugt werden.
  • Als nächstes folgt eine Beschreibung eines Beispiels für die F-Funktion, die durch die F-Funktions-Erzeugungseinheit 5 von 1 erzeugt wird. 5 ist eine Ansicht, die ein Beispiel für die F-Funktion (wie entwickelt) zeigt, die durch die F-Funktions-Erzeugungseinheit 5 von 1 erzeugt wird.
  • Wie in 5 gezeigt, werden die S-Boxen (nichtlineare Tabellen), die bei der ausführlich beschriebenen Verarbeitungsprozedur von 4 erzeugt wurden, ausgerichtet und miteinander verbunden, wobei jede mit dem Großbuchstaben S bezeichnet ist. Ein Exklusiv-ODER der Eingabe- und Ausgabegesamtanzahl von 32 Bit und eines 32-Bit-Schlüssels wird berechnet, und das Berechnungsresultat des XOR wird in 6 Bit, 5 Bit, 5 Bit, 5 Bit, 5 Bit und 6 Bit dividiert. Dann wird die Schaltung gebildet, um diese dividierten Bit ihren jeweiligen S-Boxen einzugeben. Ferner wird die Schaltung gebildet, um die Ausgabebit von allen S-Boxen zu addieren, um 32 Bit zu ergeben, um durch eine lineare Transformationsschaltung L ausgegeben zu werden. Gemäß der obigen Anordnung kann die F-Funktion unter Verwendung der S-Boxen, die jeweils die optimierte Eingabe- und Ausgabeanzahl haben, für jeden Computer erzeugt (entwickelt) werden.
  • Als nächstes folgt eine Beschreibung eines Beispiels für die Feistel-Struktur unter Verwendung der F-Funktion, die in 5 gezeigt ist. 6 ist ein Diagramm, das ein Beispiel für die Feistel-Struktur unter Verwendung der F-Funktion von 5 zeigt.
  • Die in 6 gezeigte Feistel-Struktur arbeitet als Verschlüsselungsschaltung oder Dechiffrierschaltung, und nach Eingabe von Klartext oder einem Verschlüsselungstext von dem oberen Abschnitt fließen Verarbeitungsresultate abwärts, wie durch Pfeile gezeigt, und unten wird ein Verschlüsselungstext oder Klartext ausgegeben. Da das Konsultieren der S-Boxen, die jeweils die F-Funktion innerhalb der gezeigten Struktur bilden, so optimiert wird, daß der Zugriff auf den Primär-Cache-Speicher in jedem Computer möglich ist, kann der Verschlüsselungsprozeß oder Dechiffrierprozeß mit hoher Geschwindigkeit ausgeführt werden, wobei der für jeden Computer einzigartige Primär-Cache-Speicher vollständig genutzt wird.
  • Als nächstes folgt eine Beschreibung der Verarbeitungsprozedur, wenn die Verschlüsselungsentwicklungsvorrichtung, die in 1 gezeigt ist, auf einem Computer implementiert wird. 7 ist ein Flußdiagramm, das die Verarbeitungsprozedur zeigt, wenn die Verschlüsselungsentwicklungsvorrichtung von 1 auf einem Computer implementiert wird.
  • Wie in 7 gezeigt, wird zuerst die Speicherkapazität des Primär-Cache-Speichers in dem Computer als Parameter eingegeben (Schritt S31). Im Falle des Pentium-II-Prozessors wird "16 kByte" eingegeben.
  • Dann wird ein optimaler Satz der S-Boxen extrahiert (Schritt S32). Genauer gesagt, auf dieselbe Weise wie bei dem vorherigen Entwicklungsprozeß wird zuerst ein Wert 32, der als Eingabe- und Ausgabegesamtanzahl gegeben ist, durch einen Wert 5 dividiert, der als kleinste Eingabe- und Ausgabeanzahl der S-Box gegeben ist, und falls ein Rest vorhanden ist, wird der Rest den am weitesten entfernten Positionen zugeordnet, wodurch sich ein Satz von "6 5 5 5 5 6" als Satz von Eingabe- und Ausgabeanzahlen der S-Boxen ergibt. Von dem zweiten an werden immer zwei oder drei Eingabe- und Ausgabezahlen gemäß dem in 3 eingehend beschriebenen Optimierungsprozeß wiederholt kombiniert, bis die optimale Kombination erhalten wird.
  • Dann wird eine Kombinationstabelle der S-Boxen erzeugt (Schritt S33). Genauer gesagt, wie auf der rechten Seite der Zeichnung gezeigt, wird eine Kombinationstabelle von jeder Eingabe- und Ausgabezahl der S-Box erzeugt. Zum Beispiel werden beim ersten Mal Kombinationstabellen 6 und 5 erzeugt, und beim zweiten Mal wird eine Kombinationstabelle (vergrößerte S-Box) von 11 Bit erzeugt, nämlich eine Kombination von 6 und 5, und diese Prozesse werden wiederholt.
  • Dann wird beurteilt, ob der Prozeß vollendet ist oder nicht (Schritt S34). Falls nicht (NEIN bei Schritt S34), kehrt die Verschlüsselungsentwicklungsvorrichtung zu Schritt S32 zurück und wiederholt den vorherigen Prozeß; anderenfalls (JA bei Schritt S34) werden jede vergrößerte S-Box und die lineare Transformationsschaltung L kombiniert (Schritt S35). Demzufolge wird die lineare Transformationsschaltung L in jede vergrößerte S-Box aufgenommen, und der durch die lineare Transformationsschaltung L erledigte Prozeß wird unnötig, wodurch es möglich wird, die Ausführung zu beschleunigen.
  • Anschließend werden, wie auf der rechten Seite der Zeichnung gezeigt, die anderen Komponenten implementiert, wie etwa eine Schlüsseladdiereinheit und eine Eingabe- und Ausgabeeinheit (Schritt S36), und die Implementierung der F-Funktion ist vollendet (Schritt S37).
  • Gemäß der obigen Prozedur werden die Parameter (Speicherkapazität des Primär-Cache-Speichers und dergleichen) in der Verschlüsselungsentwicklungsvorrichtung von dem Computer bei Implementierung auf dem Computer aufgenommen, und die F-Funktion kann automatisch erzeugt werden, indem die optimale Eingabe- und Ausgabeanzahl der S-Box auf der Basis des Cache-Speichers des Primär-Cache-Speichers und der Eingabe-/ Ausgabegesamtanzahl ermittelt wird. Demzufolge können Daten der obigen Feistel-Struktur, die in 6 gezeigt ist und die F-Funktion inkorporiert, erzeugt werden, und die Ausführungsrate kann beschleunigt werden, indem die Anzahl der Male des Konsultierens der in dem Primär-Cache-Speicher in dem Computer angeordneten Tabelle minimiert wird, wenn ein Klartext verschlüsselt/ein Verschlüsselungstext dechiffriert wird.
  • Als nächstes folgt eine eingehendere Beschreibung der S-Box-Extraktionsverarbeitungsprozedur, die bei Schritt S32 von 7 angeführt ist. 8 ist ein Flußdiagramm, das die S-Box-Extraktionsverarbeitungsprozedur zeigt, die bei Schritt S32 von 7 angeführt ist.
  • Wie in 8 gezeigt, wird zuerst ein Satz der optimierten S-Boxen extrahiert (Schritt S41). Zum Beispiel wird, wie auf der rechten Seite der Zeichnung gezeigt, ein Satz von "6 5 5 5 5 6" als Satz der Eingabe-/Ausgabebitanzahlen der optimierten S-Boxen extrahiert.
  • Dann wird die Kombination gemäß der Cache-Speicherkapazität des Primär-Cache-Speichers extrahiert (Schritt S42). Hier werden immer zwei oder drei Eingabe- und Ausgabeanzahlen in dem extrahierten Satz der Eingabe- und Ausgabeanzahlen der S-Boxen ab der linken Seite kombiniert, um einen neuen Satz wiederholt zu erzeugen, bis die Kombinationszahl dem obigen endgültigen Wert a, der bei Schritt S14 von 3 erhalten wurde, gleich wird, wie oben beschrieben. So wird ein Satz der Eingabe- und Ausgabeanzahlen der S-Boxen mit der optimalen Kombinationszahl bestimmt. Zum Beispiel wird ein Satz von "11 10 11" bestimmt (extrahiert).
  • Durch den obigen Prozeß können die Eingabe- und Ausgabebitanzahlen der optimalen S-Boxen entsprechend der Speicherkapazität des Primär-Cache-Speichers in dem Computer bei Implementierung auf dem Computer bestimmt werden.
  • Als nächstes folgt die Beschreibung der bei Schritt S33 von 7 angeführten Kombinationstabellenerzeugungsprozedur. 9 ist ein Flußdiagramm, das die bei Schritt S33 von 7 angeführte Kombinationstabellenerzeugungsprozedur zeigt.
  • Wie in der Zeichnung gezeigt, wird die Kombination der S-Boxen eingegeben (Schritt S51). Genauer gesagt, wie auf der rechten Seite der Zeichnung gezeigt, werden zum Beispiel Werte von 6 und 5 als Eingabe- und Ausgabeanzahlen der S-Boxen eingegeben.
  • Anschließend werden die S-Boxen kombiniert (Schritt S52). Genauer gesagt, wie auf der rechten Seite der Zeichnung gezeigt, werden die eingegebenen S-Boxen kombiniert, um eine vergrößerte S-Box zu erzeugen. Hier wird eine Eingabe anzahl von 11 Bit als Adresse verwendet, um eine nichtlineare Tabelle mit einer 11-Bit-Ausgabe zu erzeugen.
  • Durch den obigen Prozeß können Kombinationstabellen (nichtlineare Tabellen) in der Anzahl der Kombinationszahl der optimierten S-Boxen erzeugt werden.
  • Als nächstes folgt eine Beschreibung der Kombinationsprozedur zum Kombinieren der S-Box und der linearen Transformation L. 10 ist ein Flußdiagramm, das die Kombinationsprozedur zum Kombinieren der S-Box und der linearen Transformation L zeigt. Wie in der Zeichnung gezeigt, wird nach der Eingabe der vergrößerten S-Box (Schritt S61) und der linearen Transformation L (Schritt S62) das Resultat der linearen Transformation, das durch lineare Transformation einer Ausgabe der vergrößerten S-Box durch die lineare Transformation L erhalten wird, gespeichert (Schritt S63).
  • Genauer gesagt, wie auf der rechten Seite der Zeichnung gezeigt, wird das Resultat der linearen Transformation der Ausgabe der vergrößerten S-Box durch die lineare Transformation L in der auf der rechten Seite gezeigten Tabelle gespeichert, wodurch der Prozeß, der durch die lineare Transformation L erledigt wird, in die Tabelle der vergrößerten S-Box aufgenommen wird.
  • Durch den Ablauf des obigen Prozesses wird der durch die lineare Transformation L erledigte Prozeß in die vergrößerte S-Box aufgenommen. Dadurch wird es unnötig, daß die lineare Transformation L bei dem Verschlüsselungs-/Dechiffrierprozeß arbeitet, wodurch es möglich wird, die Ausführungsrate zu beschleunigen.
  • Als nächstes folgt eine Beschreibung eines Beispiels der F-Funktion (wie implementiert) in der vorliegenden Ausführungsform. 11 ist ein Diagramm, das ein Beispiel für die F-Funktion der vorliegenden Ausführungsform zeigt. Wie in der Zeichnung gezeigt, sind S11, nämlich die vergrö ßerte S-Box nach dem Kombinieren, das in 10 erläutert wurde (S-Box von 11), S10 (S-Box von 10) und S11 (S-Box von 11) angeordnet, und andere Schaltungen, wie etwa XOR, sind auch angeordnet.
  • Somit wird die in 6 gezeigte Feistel-Struktur auf der Basis der F-Funktion erzeugt, so daß ein Verschlüsselungstext durch das Chiffrieren von Klartext ausgegeben werden kann oder ein Klartext durch das Dechiffrieren eines Verschlüsselungstextes ausgegeben werden kann. Indessen kann die Anzahl der Male des Konsultierens der Tabelle minimiert werden, indem die Tabelle in dem Primär-Cache-Speicher im Computer angeordnet wird, wodurch es möglich wird, den Verschlüsselungs-/Dechiffrierprozeß mit hoher Geschwindigkeit ablaufen zu lassen.
  • Gemäß einem Aspekt der vorliegenden Erfindung wird die Eingabe- und Ausgabebitanzahl der Vielzahl von S-Boxen auf der Basis der Speicherkapazität des mit hoher Geschwindigkeit konsultierbaren Speichers selektiert, der für die Verschlüsselungsanordnung vorgesehen ist, wie erläutert worden ist, und wird eine Vielzahl von S-Boxen erzeugt, die die selektierte Eingabe- und Ausgabebitanzahl haben. Als Effekt können demzufolge ein Verfahren und eine Vorrichtung zum Entwickeln einer Verschlüsselungslogik erhalten werden, durch die ein rasches und effektives Selektieren einer optimalen S-Box möglich ist, die der Computerleistung entspricht, wenn die Blockverschlüsselung mit gemeinsamem Schlüssel mit S-Boxen entwickelt wird.
  • Da ferner die F-Funktion erzeugt wird, um die Vielzahl von S-Boxen zu haben, die auf die obige Weise erzeugt wurden, können ein Verfahren und eine Vorrichtung zum Entwickeln einer Verschlüsselungslogik erhalten werden, durch die als Effekt eine F-Funktion mit optimalen S-Boxen erzeugt werden kann, die der Computerleistung entsprechen.
  • Ferner wird die Eingabe- und Ausgabebitanzahl von jeder S-Box auf solch eine Weise selektiert, daß eine Summe der Größen der Vielzahl von S-Boxen innerhalb einer Speicherkapazität eines Primär-Cache-Speichers, der in einem in der Verschlüsselungsanordnung vorgesehenen Prozessor installiert ist, am größten wird. Dementsprechend können hier als Effekt ein Verfahren und eine Vorrichtung zum Entwickeln einer Verschlüsselungslogik erhalten werden, durch die der in einem Zyklus ausgelesene Primär-Cache-Speicher vollständig genutzt werden kann.
  • Ferner werden die Speicherkapazität des Primär-Cache-Speichers und eine Eingabe- und Ausgabebitgesamtanzahl des Blocks eingegeben, und über eine Eingabe- und Ausgabeanzahl von jeder S-Box wird versuchsweise entschieden, indem eine Eingabe- und Ausgabeanzahl von jeder S-Box erzeugt wird, indem die eingegebene Eingabe- und Ausgabebitgesamtanzahl des Blocks dividiert wird und ein Rest der Eingabe- und Ausgabeanzahl einer beliebigen S-Box zugeordnet wird, während die Eingabe- und Ausgabeanzahlen der S-Boxen, über die versuchsweise entschieden wurde, innerhalb der Speicherkapazität des Primär-Cache-Speichers kombiniert werden. Demzufolge können ein Verfahren und eine Vorrichtung zum Entwickeln einer Verschlüsselungslogik erhalten werden, durch die als Effekt ein rasches und effektives Selektieren der optimalen Eingabe- und Ausgabeanzahl der S-Box möglich ist.
  • Ferner wird der kleinste Eingabe- und Ausgabewert der Vielzahl von S-Boxen spezifiziert. Damit können als Effekt ein Verfahren und eine Vorrichtung zum Entwickeln einer Verschlüsselungslogik erhalten werden, durch die ein rasches Selektieren der Eingabe- und Ausgabeanzahl der S-Box möglich ist, indem die S-Box nicht mehr als nötig dividiert wird.
  • Ferner wird das Kombinieren der Eingabe- und Ausgabeanzahlen auf der Basis eines endgültigen Wertes vollendet, der durch die Eingabe- und Ausgabebitgesamtanzahl des Blocks und die Speicherkapazität des Primär-Cache-Speichers bestimmt wird. Somit können als Effekt ein Verfahren und eine Vorrichtung zum Entwickeln einer Verschlüsselungslogik erhalten werden, durch die der Prozeß vollendet werden kann, wenn die Kombinationszahl der optimalen Eingabe- und Ausgabeanzahl der S-Box gleich wird.
  • Ferner wird über die Eingabe- und Ausgabeanzahl von jeder S-Box versuchsweise entschieden, indem der Rest, falls vorhanden, den Eingabe- und Ausgabeanzahlen der S-Boxen zugeordnet wird, die an den am weitesten entfernten Positionen räumlich getrennt angeordnet sind. Daher können als Effekt ein Verfahren und eine Vorrichtung zum Entwickeln einer Verschlüsselungslogik erhalten werden, durch die die versuchsweise Entscheidung auf adäquate Weise effektiv getroffen werden kann.
  • Gemäß einem anderen Aspekt der vorliegenden Erfindung stellt ein Aufzeichnungsmedium oder ein Netz ein Computerprogramm zur Verfügung, welches das Verfahren gemäß der vorliegenden Erfindung auf einem Computer realisiert. Dadurch kann das Verfahren gemäß der vorliegenden Erfindung leicht und automatisch auf dem Computer realisiert werden. Auf diese Weise kann eine Verschlüsselungsanordnung (Chiffriersystem) erhalten werden, bei dem die vorliegende Erfindung zum Einsatz kommt.
  • Obwohl die Erfindung bezüglich einer spezifischen Ausführungsform zwecks einer vollständigen und klaren Offenbarung beschrieben worden ist, sind die beigefügten Ansprüche nicht darauf zu beschränken, sondern als alle Abwandlungen und alternativen Konstruktionen verkörpernd aufzufassen, auf die ein Fachmann kommen kann und die berechtigterweise unter die hierin enthaltene Grundlehre fallen.

Claims (15)

  1. Verschlüsselungsentwicklungsvorrichtung zum Entwickeln einer Verschlüsselungslogik einer Verschlüsselungsanordnung, die ein Chiffrieren oder Dechiffrieren pro Block unter Verwendung einer F-Funktion zum Konvertieren von Eingabebits in Ausgabebits mittels einer Vielzahl von S-Boxen bewirkt, welche Verschlüsselungsentwicklungsvorrichtung umfaßt: eine Selektionseinheit (2, 3), die eine Eingabe- und Ausgabebitanzahl der Vielzahl von S-Boxen auf der Basis einer Speicherkapazität eines konsultierbaren Hochgeschwindigkeitsspeichers selektiert, der in der Verschlüsselungsanordnung vorgesehen ist; und eine S-Boxen-Erzeugungseinheit (4), die eine Vielzahl von S-Boxen erzeugt, die jeweils die Eingabe- und Ausgabebitanzahl haben, die durch die Selektionseinheit (2, 3) selektiert wurde.
  2. Verschlüsselungsentwicklungsvorrichtung nach Anspruch 1, ferner mit einer F-Funktions-Erzeugungseinheit (5), die eine F-Funktion erzeugt, welche die Vielzahl von S-Boxen hat, die durch die S-Boxen-Erzeugungseinheit (4) erzeugt wurden.
  3. Verschlüsselungsentwicklungsvorrichtung nach Anspruch 1 oder 2, bei der die Selektionseinheit (2, 3) die Eingabe- und Ausgabebitanzahl von jeder S-Box auf solch eine Weise erzeugt, daß eine Summe von Größen der Vielzahl von S-Boxen innerhalb einer Speicherkapazität eines Primär-Cache-Speichers am größten wird, der in einem Prozessor installiert ist, der in der Verschlüsselungsanordnung vorgesehen ist.
  4. Verschlüsselungsentwicklungsvorrichtung nach Anspruch 3, bei der die Selektionseinheit enthält: eine Eingabeeinheit (2), welche die Speicherkapazität des Primär-Cache-Speichers und eine Eingabe- und Ausgabebitgesamtanzahl des Blocks eingibt) eine Versuchsentscheidungseinheit (3), die über eine Eingabe- und Ausgabeanzahl von jeder S-Box durch das Erzeugen einer Eingabe- und Ausgabeanzahl von jeder S-Box versuchsweise entscheidet, indem sie die Eingabe- und Ausgabebitgesamtanzahl des Blocks, die von der Eingabeeinheit eingegeben wurde, teilt und einen Rest der Eingabe- und Ausgabeanzahl wenigstens einer der S-Boxen zuordnet; und eine Kombinationseinheit (3), welche die Eingabe- und Ausgabeanzahlen der S-Boxen, über die durch die Versuchsentscheidungseinheit versuchsweise entschieden wurde, innerhalb der Speicherkapazität des Primär-Cache-Speichers kombiniert.
  5. Verschlüsselungsentwicklungsvorrichtung nach Anspruch 1, 2, 3 oder 4, ferner mit einer Spezifizierungseinheit der kleinsten Eingabe- und Ausgabeanzahl (2), die einen kleinsten Wert der Eingabe- und Ausgabeanzahl der Vielzahl von S-Boxen spezifiziert.
  6. Verschlüsselungsentwicklungsvorrichtung nach Anspruch 4, bei der die Kombinationseinheit (3) das Kombinieren der Eingabe- und Ausgabeanzahlen auf der Basis eines Endwertes vollendet, der durch die Eingabe- und Ausgabebitgesamtanzahl des Blocks und die Speicherkapazität des Primär-Cache-Speichers bestimmt wird.
  7. Verschlüsselungsentwicklungsvorrichtung nach Anspruch 4 oder 6, bei der die Versuchsentscheidungseinheit (3) über die Eingabe- und Ausgabeanzahl von jeder S-Box versuchsweise entscheidet, indem der Rest, falls vorhanden, den Eingabe- und Ausgabeanzahlen der S-Boxen zugeordnet wird, die an voneinander am weitesten entfernten Positionen angeordnet sind.
  8. Verschlüsselungsentwicklungsverfahren zum Entwickeln einer Verschlüsselungslogik einer Verschlüsselungsanordnung, die ein Chiffrieren oder Dechiffrieren pro Block unter Verwendung einer F-Funktion zum Konvertieren von Eingabebits in Ausgabebits mittels einer Vielzahl von S-Boxen bewirkt, welches Verfahren die folgenden Schritte umfaßt: Selektieren (S1 bis S3) einer Bitanzahl der Vielzahl von S-Boxen auf der Basis einer Speicherkapazität eines konsultierbaren Hochgeschwindigkeitsspeichers, der für die Verschlüsselungsanordnung vorgesehen ist und Erzeugen (S4) einer Vielzahl von S-Boxen, die jeweils die bei dem Eingabe- und Ausgabebitanzahlselektionsschritt selektierte Bitanzahl haben; dadurch gekennzeichnet, daß: der Selektionsschritt eine Eingabe- und Ausgabebitanzahl der S-Boxen selektiert.
  9. Verschlüsselungsentwicklungsverfahren nach Anspruch 8, ferner mit dem Schritt zum Erzeugen (S5) einer F-Funktion, welche die Vielzahl von S-Boxen hat, die bei dem S-Boxen-Erzeugungsschritt (S4) erzeugt wurden.
  10. Verschlüsselungsentwicklungsverfahren nach Anspruch 8 oder 9, wobei bei dem Eingabe- und Ausgabebitanzahlselektionsschritt (S1 bis S3) die Eingabe- und Ausgabebitanzahl von jeder S-Box auf solch eine Weise selek tiert wird, daß eine Summe von Größen der Vielzahl von S-Boxen innerhalb einer Speicherkapazität eines Primär-Cache-Speichers am größten wird, der in einem Prozessor installiert ist, der in der Verschlüsselungsanordnung vorgesehen ist.
  11. Verschlüsselungsentwicklungsverfahren nach Anspruch 10, wobei der Eingabe- und Ausgabebitanzahlselektionsschritt (S1 bis S3) die folgenden Schritte enthält: Eingeben (S1, S2) der Speicherkapazität des Primär-Cache-Speichers und einer Eingabe- und Ausgabebitgesamtanzahl des Blocks; versuchsweises (S11, S12, S41) Entscheiden über eine Eingabe- und Ausgabeanzahl von jeder S-Box durch Erzeugen einer Eingabe- und Ausgabeanzahl von jeder S-Box durch Teilen der Eingabe- und Ausgabebitgesamtanzahl des Blocks, die bei dem Speicherkapazitätseingabeschritt eingegeben wurde, und Zuordnen eines Restes zu der Eingabe- und Ausgabeanzahl wenigstens einer der S-Boxen; und Kombinieren (S13, S42) der Eingabe- und Ausgabeanzahlen der S-Boxen, über die bei dem Versuchsentscheidungsschritt versuchsweise entschieden wurde, innerhalb der Speicherkapazität des Primär-Cache-Speichers.
  12. Verschlüsselungsentwicklungsverfahren nach Anspruch 8, 9, 10 oder 11, ferner mit dem Schritt (S2, S51) zum Spezifizieren eines kleinsten Wertes der Eingabe- und Ausgabeanzahl der Vielzahl von S-Boxen.
  13. Verschlüsselungsentwicklungsverfahren nach Anspruch 11, bei dem das Kombinieren bei dem Kombinationsschritt (S13, S42) auf der Basis eines Endwertes (a) vollendet wird, der durch die Eingabe- und Ausgabebitgesamt anzahl des Blocks und die Speicherkapazität des Primär-Cache-Speichers bestimmt wird.
  14. Verschlüsselungsentwicklungsverfahren nach Anspruch 11 oder 13, wobei bei dem Versuchsentscheidungsschritt (S11, S12, S41) über die Eingabe- und Ausgabeanzahl von jeder S-Box versuchsweise entschieden wird, indem der Rest, falls vorhanden, den Eingabe- und Ausgabeanzahlen der S-Boxen zugeordnet wird, die an voneinander am weitesten entfernten Positionen angeordnet sind.
  15. Computerlesbares Medium zum Speichern von Instruktionen, wodurch bei Ausführung durch einen Computer bewirkt wird, daß der Computer ein Verschlüsselungsentwicklungsverfahren zum Entwickeln einer Verschlüsselungslogik einer Verschlüsselungsanordnung realisiert, die ein Chiffrieren oder Dechiffrieren pro Block unter Verwendung einer F-Funktion zum Konvertieren von Eingabebits in Ausgabebits mittels einer Vielzahl von S-Boxen bewirkt, welches Verfahren die folgenden Schritte umfaßt: Selektieren (S1 bis S3) einer Bitanzahl der Vielzahl von S-Boxen auf der Basis einer Speicherkapazität eines konsultierbaren Hochgeschwindigkeitsspeichers, der für die Verschlüsselungsanordnung vorgesehen ist; und Erzeugen (S4) einer Vielzahl von S-Boxen, die jeweils die bei dem Selektionsschritt selektierte Bitanzahl haben; dadurch gekennzeichnet, daß der Selektionsschritt eine Eingabe- und Ausgabebitanzahl der S-Boxen selektiert.
DE60009257T 2000-01-26 2000-12-20 Verfahren und Vorrichtung zum Entwurf einer Verschlüsselungslogik und zugehöriger Computer Expired - Lifetime DE60009257T2 (de)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2000016413 2000-01-26
JP2000016413 2000-01-26

Publications (2)

Publication Number Publication Date
DE60009257D1 DE60009257D1 (de) 2004-04-29
DE60009257T2 true DE60009257T2 (de) 2004-08-12

Family

ID=18543547

Family Applications (1)

Application Number Title Priority Date Filing Date
DE60009257T Expired - Lifetime DE60009257T2 (de) 2000-01-26 2000-12-20 Verfahren und Vorrichtung zum Entwurf einer Verschlüsselungslogik und zugehöriger Computer

Country Status (3)

Country Link
US (1) US7346161B2 (de)
EP (1) EP1120933B1 (de)
DE (1) DE60009257T2 (de)

Families Citing this family (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7292693B1 (en) * 1998-08-13 2007-11-06 Teledyne Technologies Incorporated Deterministically generating block substitution tables which meet a given standard of nonlinearity
CN1193537C (zh) * 2000-07-04 2005-03-16 皇家菲利浦电子有限公司 将输入数据块加密转换成输出数据块的方法和系统
KR100509489B1 (ko) * 2003-02-06 2005-08-22 삼성전자주식회사 가변 폭의 데이터 패킷을 암호화하는 장치 및 방법
JP4882598B2 (ja) * 2006-07-28 2012-02-22 ソニー株式会社 暗号処理装置、暗号処理アルゴリズム構築方法、および暗号処理方法、並びにコンピュータ・プログラム
US8498410B2 (en) * 2011-03-14 2013-07-30 Motorola Solutions, Inc. Methods for customizing a Rijndael block cipher
FR2974693B1 (fr) * 2011-04-26 2013-04-26 Cassidian Sas Procede pour appliquer une contre mesure de masquage haute entropie dans un algorithme de chiffrement par blocs, et circuit integre logique mettant en oeuvre un tel procede.
WO2012167231A1 (en) * 2011-06-03 2012-12-06 Exelis Inc. Method and system for a programmable parallel computation and data manipulation accelerator
KR101297322B1 (ko) * 2012-09-28 2013-09-16 주식회사 데이터스트림즈 가독 대칭형 복호화 방법
JP6890589B2 (ja) 2015-12-15 2021-06-18 コーニンクレッカ フィリップス エヌ ヴェKoninklijke Philips N.V. 計算デバイス及び方法
CN107425963A (zh) * 2017-05-09 2017-12-01 上海众人网络安全技术有限公司 一种密码墙的构建方法及系统
KR102565442B1 (ko) * 2018-10-26 2023-08-16 삼성에스디에스 주식회사 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
KR102565443B1 (ko) * 2018-10-26 2023-08-16 삼성에스디에스 주식회사 암호 알고리즘 생성 장치 및 방법, 암호화 장치 및 방법
CN112667994B (zh) * 2020-12-10 2023-01-20 山东大学 一种面向计算机的对称密码形式化描述方法及系统

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5003597A (en) * 1989-12-21 1991-03-26 Xerox Corporation Method and apparatus for data encryption
US5778074A (en) 1995-06-29 1998-07-07 Teledyne Industries, Inc. Methods for generating variable S-boxes from arbitrary keys of arbitrary length including methods which allow rapid key changes
KR0153758B1 (ko) * 1995-12-26 1998-11-16 양승택 입출력 변화 공격과 선형 공격에 안전한 대치회로 생성기 및 생성방법
US6031911A (en) * 1996-07-18 2000-02-29 Entrust Technologies, Ltd. Practical S box design
US6005944A (en) * 1997-02-14 1999-12-21 At&T Corp System and method for constructing block ciphers
US6182216B1 (en) * 1997-09-17 2001-01-30 Frank C. Luyster Block cipher method
JPH11225138A (ja) * 1998-02-06 1999-08-17 Matsushita Electric Ind Co Ltd 暗号処理装置、暗号処理方法及びその方法を記録した記録媒体

Also Published As

Publication number Publication date
EP1120933A3 (de) 2002-06-12
DE60009257D1 (de) 2004-04-29
EP1120933A2 (de) 2001-08-01
US20010019610A1 (en) 2001-09-06
EP1120933B1 (de) 2004-03-24
US7346161B2 (en) 2008-03-18

Similar Documents

Publication Publication Date Title
DE69736148T2 (de) Verfahren und Einrichtung zur Datenverschlüsselung
DE69532549T2 (de) Datenverarbeitungssystem mit Verifikation der Echtheitsprüfung von kryptographischen Algorithmen nach dem Challenge-Response-Prinzip
DE60009257T2 (de) Verfahren und Vorrichtung zum Entwurf einer Verschlüsselungslogik und zugehöriger Computer
DE69721439T2 (de) Kryptographisches verfahren und einrichtung zum nichtlinearen zusammenfugen eines datenblocks und eines schlussels
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE69728465T2 (de) Nichtparalleler Mehrzyklus-Verschlüsselungsapparat
DE60128785T2 (de) Aktivieren und Deaktivieren von Softwarefunktionen
EP1105998B1 (de) Verfahren und anordnung zur bildung eines geheimen kommunikationsschlüssels zu einem zuvor ermittelten asymmetrischen kryptographischen schlüsselpaar
DE19635115A1 (de) Verfahren zum Prüfen einer kryptographischen Einrichtung
DE10148415C2 (de) Verfahren und Vorrichtung zum Verschlüsseln und Entschlüsseln von Daten
EP1777913A1 (de) Verfahren zur Verschlüsselung bzw. Entschlüsselung von Datenpaketen eines Datenstroms
DE10240875B4 (de) Sicheres Referenzdrucken unter Verwendung persönlicher elektronischer Geräte
DE10393847T5 (de) Verfahren und Vorrichtung zum Auffinden einer gemeinsam genutzten vertraulichen Information ohne Beeinträchtigung nicht-gemeinsam genutzter vertraulicher Informationen
DE69834296T2 (de) Verschlüsselungsvorrichtung und rechnerlesbares Aufzeichnungsmedium mit Ausführungsprogramm
DE102017201142A1 (de) Verfahren zum Verschlüsseln und Entschlüsseln von Daten mit einem Einmalschlüssel
DE102004018874B4 (de) Verfahren und Vorrichtung zum Bestimmen eines Ergebnisses
DE10352680A1 (de) Verschlüsselungsvorrichtung und Verschlüsselungsverfahren
EP0384478A2 (de) Verfahren zum Ver- und Entschlüsseln eines Nachrichtenstromes
DE10324507A1 (de) Verfahren zum Laden von Daten in eine Speichereinrichtung
DE102005047133A1 (de) Verfahren zur Verarbeitung von Dokumentdaten zum Schutz vor Zugriff
WO2002102103A2 (de) Authentisierungsverfahren
DE60302249T2 (de) Aes mixcolumn transformation
DE4344280C2 (de) Verfahren zum Autorisieren von digitalisierten Daten aus Texten, Bildern und dergleichen
DE10158003B4 (de) Verfahren zur Erzeugung von Schlüsseln für die Datenverschlüsselung sowie Verfahren zur Datenverschlüsselung
WO1997032417A1 (de) Verfahren zum generieren eines prüfworts für eine bitfolge zur überprüfung der integrität und authentizität der bitfolge

Legal Events

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

Representative=s name: SEEGER SEEGER LINDNER PARTNERSCHAFT PATENTANWAELTE