DE112015006865T5 - Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, Verfahren zum Erzeugen eines Nachrichten-Authenticators und Programm zum Erzeugen eines Nachrichten-Authenticators - Google Patents

Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, Verfahren zum Erzeugen eines Nachrichten-Authenticators und Programm zum Erzeugen eines Nachrichten-Authenticators Download PDF

Info

Publication number
DE112015006865T5
DE112015006865T5 DE112015006865.1T DE112015006865T DE112015006865T5 DE 112015006865 T5 DE112015006865 T5 DE 112015006865T5 DE 112015006865 T DE112015006865 T DE 112015006865T DE 112015006865 T5 DE112015006865 T5 DE 112015006865T5
Authority
DE
Germany
Prior art keywords
value
message
bit
authenticator
input
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.)
Withdrawn
Application number
DE112015006865.1T
Other languages
English (en)
Inventor
Yusuke Naito
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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Publication of DE112015006865T5 publication Critical patent/DE112015006865T5/de
Withdrawn legal-status Critical Current

Links

Images

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
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

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

Abstract

Eine Vorrichtung (10) zum Erzeugen eines Nachrichten-Authenticators berechnet für jede ganze Zahl i einen Wert c[i] durch eine Blockverschlüsselung E, wobei als Eingabe ein Schlüssel K und ein Wert m'[i], der aus einer Nachricht M erzeugt wird, übernommen werden. Die Vorrichtung (10) zum Erzeugen eines Nachrichten-Authenticators berechnet einen Wert w[1], einen Wert w[2] und einen Wert w[3], die jeweils die Zufälligkeit des Wertes c[i] aufrechterhalten, wobei als Eingabe der Wert c[i] für jede ganze Zahl i übernommen wird. Die Vorrichtung (10) zum Erzeugen eines Nachrichten-Authenticators berechnet einen Wert K' durch eine Funktion e, die eine Substitutionsfunktion ist, wenn der Schlüssel K fest ist, wobei als Eingabe der Wert w[2] und der Schlüssel K übernommen werden, berechnet einen Wert c durch eine Blockverschlüsselung E, wobei als Eingabe der Wert w[1] und der Wert K' übernommen werden, und berechnet einen Authenticator T durch eine Funktion d, die eine Substitutionsfunktion ist, wenn der Wert w[3] fest ist, wobei als Eingabe der Wert w[3] und der Wert c übernommen werden.

Description

  • Technisches Gebiet
  • Die vorliegende Erfindung bezieht sich auf eine Technologie des Erzeugens eines Authenticators für eine Nachricht in sicherer und effizienter Weise unter Verwendung einer Blockverschlüsselung.
  • Stand der Technik
  • Wenn Nachrichten zwischen zwei Partien ausgetauscht werden, kann ein Empfänger bestätigen, ob eine Nachricht manipuliert wurde oder nicht, wobei ein Nachrichten-Authenticationsalgorithmus verwendet wird.
  • Wenn eine Manipulation unter Verwendung des Nachrichten-Authenticationsalgorithmus detektiert werden soll, wird ein Schlüssel K im Vorhinein von den zwei Parteien geteilt. Der Sender der Nachricht erzeugt einen Authenticator T für eine Nachricht M aus der Nachricht M und dem Schlüssel K und sendet die Nachricht M und den Authenticator T an den Empfänger. Der Empfänger der Nachricht erzeugt einen Authenticator T' aus der empfangenen Nachricht M und dem Schlüssel K. Wenn der empfangene Authenticator T und der erzeugte Authenticator T' übereinstimmen, urteilt der Empfänger, dass die Nachricht M nicht manipuliert wurde. Wenn der Authenticator T und der Authenticator T' nicht übereinstimmen, entscheidet der Empfänger, dass die Nachricht manipuliert wurde.
  • Die Sicherheit des Nachrichten- Authenticationsalgorithmus wird durch die Ununterscheidbarkeit von einer Zufallsfunktion ausgedrückt.
  • Es wird angenommen, dass ein Nachrichten-Authenticationsalgorithmus F die Ununterscheidbarkeit erfüllt. Das bedeutet, dass bei Betrachtung eines Distinguishers bzw. Unterscheiders D, der entweder mit der realen Welt oder mit der idealen Welt interagiert, es nicht vermutet oder geschätzt werden kann, mit welcher Welt der Unterscheider D interagiert.
  • In der realen Welt wird der Schlüssel K zufällig gewählt und der Unterscheider D kann die Nachricht M wählen und einen Nachrichten-Authenticator F(K, M) erhalten. In der idealen Welt kann für eine Zufallsfunktion R der Unterscheider D die Nachricht M wählen und einen Ausgangswert R(M) erhalten. Hier kann der Unterscheider D die Nachricht M so oft, wie er oder sie es wünschen, wählen und kann einen Ausgangswert F(K, M) oder R(M) entsprechend der ausgewählten Nachricht M erhalten.
  • Genauer wird ein Unterscheider D betrachtet, der einen 1-Bit Wert ausgibt. Die Ununterscheidbarkeit des Nachrichten-Authenticationsalgorithmus F wird aus dem Unterschied zwischen der Wahrscheinlichkeit, dass der Unterscheider D 1 in der realen Welt ausgibt, und der Wahrscheinlichkeit, dass der Unterscheider D 1 in der idealen Welt ausgibt, bestimmt werden.
  • Der Unterscheider D kann eine Mehrzahl von Ausgaben von dem Nachrichten-Authenticationsalgorithmus F in der realen Welt erhalten und kann eine Mehrzahl von Ausgaben von der Zufallsfunktion R in der idealen Welt erhalten. Wenn in diesem Fall der Unterschied zwischen den oben erwähnten Wahrscheinlichkeiten gleich oder weniger als p für jeden Unterscheider D ist und p ein vernachlässigbar kleiner Wert ist, erfüllt der Nachrichten-Authenticationsalgorithmus F die Ununterscheidbarkeit. Dieses p wird Unterscheidungswahrscheinlichkeit genannt.
  • Eine Blockverschlüsselung E liefert einen n-Bit Verschlüsselungstext bzw. Ciphertext c, wobei als Eingabe ein k-Bit Schlüssel K und ein n-Bit Klartext m übergeben wird. Das heißt, c=E(K, m). Es sei bemerkt, dass nachfolgend k ≥ n ist. Die Blockverschlüsselung E ist eine Substitutionsfunktion mit einer n-Bit Eingabe-/Ausgabelänge, wenn der Schlüssel fest ist.
  • Nichtpatentliteratur 4 bis 6 beschreibt eine Blockverschlüsselung.
  • Es gibt einen Nachrichten-Authenticationsalgorithmus basierend auf einer Blockverschlüsselung. Mit dem auf einer Blockverschlüsselung basierenden Nachrichten-Authenticationsalgorithmus wird eine Nachricht M in Nachrichtenblöcke zu n-Bit aufgeteilt und eine Blockverschlüsselungsberechnung wird für jeden geteilten Nachrichtenblock ausgeführt.
  • Die Effizienz des auf der Blockverschlüsselung basierenden Nachrichten-Authenticationsalgorithmus wird durch die Anzahl von Aufrufen, dem Parallelismus und der Schlüsselgröße, wie unten beschrieben, beeinflusst.
  • Die Anzahl von Aufrufen: Die Effizienz ändert sich abhängig davon, wievielmal die Verschlüsselung aufgerufen wird, um den n-Bit Nachrichtenblock zu berechnen. Wenn die Blockverschlüsselung x-mal für den n-Bit Nachrichtenblock aufgerufen werden muss, wird 1/x als Rate bezeichnet. Je näher an 1 die Rate ist, je kleiner ist die Anzahl von Blockverschlüsselungsaufrufen, wodurch eine große Effizienz geliefert wird.
  • Parallelismus: Wo eine parallele Algorithmusverarbeitung möglich ist, kann die Berechnungszeit dadurch verkürzt werden, dass Berechnungen durch Hardware oder einen Multicore in einer parallelen Weise durchgeführt werden, wodurch eine große Effizienz geliefert wird.
  • Schlüsselgröße: Die Schlüsselgröße des Nachrichten-Authenticationsalgorithmus ändert sich abhängig davon, wie viele innere Blockverschlüsselungsschlüssel verwendet werden. Die Schlüsselgröße ist am kleinsten, wenn nur ein Blockverschlüsselungsschlüssel K verwendet wird, das heißt, wenn die Verarbeitung unter Verwendung nur eines k-Bit Schlüssels K durchgeführt wird.
  • Durch Bestimmen der Unterscheidungswahrscheinlichkeit des blockverschlüsselungsbasierten Nachrichten-Authenticationsalgorithmus wird angenommen, dass die Blockverschlüsselung eine ideale Blockverschlüsselung ist oder eine Blockverschlüsselung E(K,·) mit festem Schlüssel K eine zufällige Substitution ist.
  • Die Unterscheidungswahrscheinlichkeit p wird von einer Größe n erhalten, die die Bitzählung des Ciphertextes (Verschlüsselungstext) c der Blockverschlüsselung E, die Anzahl q von Ausgaben von dem Nachrichten-Authenticationsalgorithmus, die für den Unterscheider D zugänglich sind, und ein Wert bmax, der durch Teilen der maximalen Länge der Eingabenachricht zu dem Nachrichtenalgorithmus durch n erhalten wird, ist. Wenn die maximale Länge der Eingangsnachricht durch Imax in Bit ausgedrückt wird, so ist bmax = Imax/n. Die Sicherheit des Nachrichten-Authenticationsalgorithmus wird aus dem Wert bmax x q festgelegt, wobei p = 1 ist. Je größer der Wert bmax xq ist, umso sicherer ist der Algorithmus.
  • Nichtpatentliteratur 1 und 2 beschreiben jeweils einen blockverschlüsselungsbasierten Nachrichten-Authenticationsalgorithmus, der eine k-Bit-Schlüsselgröße aufweist, mit dem eine Parallelverarbeitung möglich ist und der eine Rate von 1 liefert.
  • Es wird angegeben, dass der Nachrichten-Authenticationsalgorithmus, der in der Nichtpatentliteratur 1 beschrieben ist, p=(bmax×q)2/2n liefert, wenn die Blockverschlüsselung E mit dem festen Schlüssel K durch eine Zufallssubstitution ersetzt wird. Das heißt, wenn bmax × q=2n/2 ist, ist p = 1.
  • Nichtpatentliteratur 3 beschreibt einen blockverschlüsselungsbasierten Nachrichten-Authenticationsalgorithmus, dessen Sicherheit hinsichtlich der Nichtpatentliteratur 1 und 2 verbessert ist. Der Nachrichten-Authenticationsalgorithmus, der in der Nichtpatentliteratur 3 beschrieben wird, verwendet 3 (drei) k-Bit Schlüssel und hat somit eine 3k-Bit Schlüsselgröße, ermöglicht eine Parallelverarbeitung und sieht eine Rate von 1 vor.
  • Es wird angegeben, dass der Nachrichten-Authenticationsalgorithmus, der in der Nichtpatentliteratur 3 beschrieben ist, p=(bmax × q)3/22n liefert, wenn die Blockverschlüsselung E mit dem Schlüssel K, der fest ist, durch eine Zufallssubstitution ersetzt wird. Das heißt, wenn bmax × q = 22n/3 ist, ist p = 1.
  • Zitierungsliste
  • Patentliteratur
  • Nichtpatentliteratur
    • Nichtpatentliteratur 1: John Black and Philip Rogaway. A Block-Cipher Mode of Operation for Parallelizable Message Authentication. EUROCRYPT 2002. Seiten 384 - 397.
    • Nichtpatentliteratur 2: Phillip Rogaway. Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. ASIACRYPT 2004. Seiten 16 - 31.
    • Nichtpatentliteratur 3: Kan Yasuda. A New Variant of PMAC: Beyond the Birthday Bound. CRYPTO 2011. Seiten 596-609.
    • Nichtpatentliteratur 4: AES - Advanced Encryption Standard - FIPS PUB 197.
    • Nichtpatentliteratur 5: Camellia http://www.cryptrec.go.jp/cryptrec_03_ spec_cypherlist_files/PDF/06_01jspec.pdf
    • Nichtpatentliteratur 6: MISTY1 http://www.mitsubishielectric.co.jp/ corporate/randd/information_technology/security/ code/pdf/mistyj.pdf
  • Abriss der Erfindung
  • Technische Aufgabe
  • Der in Nichtpatentliteratur 3 beschriebene Nachrichten-Authenticationsalgorithmus liefert eine höhere Sicherheit als die in der Patentliteratur 1 und 2 beschriebenen Nachrichten-Authenticationsalgorithmen, aber er hat eine größere Schlüsselgröße.
  • Die vorliegende Erfindung weist als ihre Aufgabe auf, eine Implementation eines blockverschlüsselungsbasierten Nachrichten-Authenticationsalgorithmus zu ermöglichen, der die Effizienz nicht verschlechtert, während eine größere Sicherheit als der in der Nichtpatentliteratur beschriebene Nachrichten-Authenticationsalgorithmus geliefert wird.
  • Lösung der Aufgabe
  • Eine Vorrichtung zum Erzeugen eines Nachrichten-Authenticators nach der vorliegenden Erfindung umfasst:
    • eine Zufallseinheit, die für jede ganze Zahl i von i=1, ..., b einen n-Bit Wert c[i] mit einer Zufälligkeit durch eine Blockverschlüsselung berechnet, wobei als Eingabe ein k-Bit Schlüssel K und ein n-Bit Wert m'[i] übernommen wird, der von einer Nachricht M erzeugt wird;
    • eine Komprimierungseinheit, die einen n-Bit Wert w[1], einen k-Bit Wert w[2] und einen n-Bit Wert w[3] berechnet, die jeweils die Zufälligkeit des Werts c[i] aufrechterhalten, wobei als Eingabe der Wert c[i] für jede ganze Zahl i von i = 1, ..., b übernommen wird; und
    • eine Authenticator-Erzeugungseinheit, die einen k-Bit Wert K' durch eine Funktion e berechnet, die eine Substitutionsfunktion ist, wenn der Schlüssel K fest ist, wobei als Eingabe der Wert w[2] der Schlüssel K übernommen werden, die einen n-Bit Wert c durch eine Blockverschlüsselung berechnet, wobei als Eingabe der Wert w[1] und der Wert K' übernommen werden, und die einen Authenticator T der Nachricht M durch eine Funktion d, die eine Substitutionsfunktion ist, wenn der Wert w[3] fest ist, berechnet, wobei als Eingabe der Wert w[3] und der Wert c übernommen werden.
  • Vorteilhafte Wirkungen der Erfindung
  • Die vorliegende Erfindung kann einen Nachrichten-Authenticationsalgorithmus implementieren, der eine Effizienz desselben Niveaus wie das der Nichtpatentliteratur 1 aufweist, wobei er eine höhere Sicherheit als der in der Nichtpatentliteratur 1 beschriebene Nachrichten-Authenticationsalgorithmus liefert.
  • Figurenliste
    • 1 ist eine Darstellung des Aufbaus einer Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach dem Ausführungsbeispiel 1.
    • 2 ist ein Flussdiagramm, das eine Funktionsweise der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach dem Ausführungsbeispiel 1 darstellt.
    • 3 ist eine Darstellung des Aufbaus eines Nachrichten-Authenticationsalgorithmus, der durch die Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach dem Ausführungsbeispiel 1 implementiert wird.
    • 4 ist eine Darstellung eines Aufbaus der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators, dessen Merkmale durch Software implementiert werden.
    • 5 ist eine Darstellung eines Aufbaus eines Nachrichten-Authenticationsalgorithmus, der durch die Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators entsprechend Ausführungsbeispiel 2 implementiert wird.
    • 6 ist eine Darstellung eines Aufbaus eines Nachrichten-Authenticationsalgorithmus, der von einer Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach dem Ausführungsbeispiel 3 implementiert wird.
  • Beschreibung der Ausführungsbeispiele
  • Ausführungsbeispiel 1
  • *** Erläuterung des Aufbaus ***
  • 1 ist eine Darstellung eines Aufbaus einer Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach Ausführungsbeispiel 1.
  • Die Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators ist mit einem Verarbeitungskreis 11 versehen. Der Verarbeitungskreis 11 ist ein zugeordneter elektronischer Schaltkreis, der die Merkmale einer Padding-Einheit 110, einer Dividiereinheit 120, einer Subschlüssel-Berechnungseinheit 130, einer Anordnungseinheit 140, einer Zufallseinheit 150, einer Komprimierungseinheit 160, einer Authenticator-Erzeugungseinheit 170 und einer Steuereinheit 180 implementiert.
  • Es wird angenommen, dass die Verarbeitungseinheit 11 ein einziger Schaltkreis, ein Vielfachkreis, ein programmierter Prozessor, ein parallel programmierter Prozessor, ein logisches IC, ein GA, ein ASIC, ein GA oder ein FPGA ist. GA ist eine Abkürzung für Gate Array. ASIC ist eine Abkürzung für Application Specific Integrated Circuit. FPGA ist eine Abkürzung für Field-Programmable Gate Array.
  • Die Merkmale können durch einen einzigen Verarbeitungskreis 11 implementiert sein oder können durch eine Mehrzahl von Verarbeitungskreisen 11 in einer verteilten Weise implementiert sein.
  • Informationen, Daten, Signalwerte und verschiedene Werte, die die Ergebnisse der Prozesse der Merkmale darstellen, die in dem Bearbeitungskreis 11 implementiert sind, sind in einem Speicherbereich, wie einem Register, in dem Verarbeitungskreis 11 gespeichert.
  • *** Erläuterung der Funktionsweise ***
  • 2 ist ein Flussdiagramm, das eine Funktionsweise der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators entsprechend dem Ausführungsbeispiel 1 darstellt.
  • 3 ist eine Darstellung eines Aufbaus des Nachrichten-Authenticationsalgorithmus, der durch die Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators implementiert wird, entsprechend Ausführungsbeispiel 1. Prozesse, die in 3 durch gestrichelte Linien umgeben sind, sind durch die Merkmale, die an den gestrichelten Linien angefügten Bezugszeichen bezeichnet sind, implementiert.
  • Die Funktionsweise der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators entsprechend Ausführungsbeispiel 1 entspricht einem Verfahren zum Erzeugen eines Nachrichten-Authenticators entsprechend Ausführungsbeispiel 1. Die Funktionsweise der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators entsprechend Ausführungsbeispiel 1 entspricht auch der Verarbeitung eines Programms zur Erzeugung eines Nachrichten-Authenticators nach dem Ausführungsbeispiel 1.
  • In einem Padding-Verfahren nach Schritt S101 erzeugt die Padding-Einheit 110, die als Eingabe eine Nachricht M willkürlicher Länge übernimmt, einen b-mal-n-Bit Wert M' durch einen injektiven Funktionspad, wobei b eine ganze Zahl gleich oder größer als 1 ist.
  • In einem Dividiervorgang des Schritts S102 teilt die Dividiereinheit 120, die als Eingabe den im Schritt S101 erzeugten Wert M' erhält, den Wert M' von seinem Kopf jeweils bei n Bits, um einen Wert m[i] für jede ganze Zahl i von i = 1 ..., b zu erzeugen. Und zwar M'=m[1] || m[2]||...|| m[b], wobei || die Konkatenation (Verknüpfung) von Bitstrings (Bitfolgen) bedeutet.
  • In dem Schritt S103 des Vorgangs des Festlegens einer Variablen, setzt die Steuereinheit 180 1 als Ausgangswert in eine Variable i.
  • In dem Schritt S104 des Vorgangs des Bestimmens einer Variablen bestimmt die Steuereinheit 180, ob die Variable i gleich oder kleiner als b ist oder nicht.
  • Wenn die Variable i gleich oder kleiner als b ist (JA im Schritt S104), geht die Steuereinheit 180 zu dem Vorgang des Schritts S105. Wenn die Variable i größer ist als b (Nein im Schritt S104), geht die Steuereinheit 180 zu dem Vorgang des Schritts S109.
  • In einem Berechnungsvorgang eines Subschlüssels nach Schritt S105 berechnet die Subschlüssel-Berechnungseinheit 130 einen n-Bit Subschlüssel L[i] durch eine Funktion f, wobei als Eingabe ein Schlüssel K und die Variable i vorgesehen sind.
  • In einem Anordnungsprozess des Schritts S106 berechnet die Anordnungseinheit 140, die als Eingabe den Wert m[i], der bei Schritt S102 erzeugt wurde, und den Subschlüssel L[i], der bei Schritt S105 erzeugt wurde, übernimmt, einen n-Bit Wert m'[i] durch eine Funktion g, die eine Substitutionsfunktion ist, wenn der Subschlüssel L[i] fest ist.
  • In einem Zufallsprozess nach Schritt S107 berechnet die Zufallseinheit 150, die als Eingabe den k-Bit Schlüssel K und den n-Bit Wert m'[i], der bei Schritt S106 für die Variable i erzeugt wurde, übernimmt, einen n-Bit Wert c[i], der Zufälligkeit aufweist.
  • Die Blockverschlüsselung E (Block Cipher) ist eine Blockverschlüsselungsfunktion, die einen n-Bit Verschlüsselungstext (Ciphertext) c, der Zufälligkeit aufweist, ausgibt, wobei als Eingabe der k-Bit Schlüssel K und ein n-Bit Klartext (Plaintext) m übernimmt. Die Blockverschlüsselung E, die in der Berechnung für jede Variable i verwendet wird, kann identisch oder unterschiedlich sein.
  • In einem Schritt S108 eines Additionsprozesses der Variablen addiert die Steuereinheit 180 1 zu der Variablen i. Dann kehrt die Steuereinheit 180 zu dem Prozess des Schritts S104 zurück.
  • Das heißt, die Subschlüssel-Berechnungseinheit 130 berechnet im Schritt S105 den Subschlüssel L[i] für jede ganze Zahl i von i = 1, ..., b durch die Funktion f, wobei als Eingabe der Schlüssel K und die ganze Zahl i übernommen wird.
  • In Schritt S106 verwendet die Anordnungseinheit 140 den n-Bit Wert m[i] für jede ganze Zahl i von i = 1, ..., b, der aus der Nachricht M erzeugt wird, und den n-Bit Subschlüssel L[i] für jede ganze Zahl von i = 1, ..., b, der aus dem Schlüssel K erzeugt wird. Dann berechnet die Anordnungseinheit 140 den Wert m'[i] für jede ganze Zahl i von i = 1, ..., b durch die Funktion G, die eine Substitutionsfunktion ist, wenn der Subschlüssel L[i] fest ist, wobei als Eingabe der Wert m[i] und der Subschlüssel L[i] übernommen werden.
  • Im Schritt S107 berechnet die Zufallseinheit 150 den n-Bit Wert c[i], der eine Zufälligkeit hat, für jede ganze Zahl i von i = 1, ..., b durch die Blockverschlüsselung E, wobei als Eingabe der k-Bit Schlüssel K und der n-Bit Wert m'[i], der aus der Nachricht M erzeugt wird, übernommen werden.
  • Darauf folgend berechnet in einem Komprimierungsprozess des Schritts S109 die Komprimierungseinheit 160 einen n-Bit Wert w[1], einen k-Bit Wert w[2] und einen n-Bit Wert w[3], die jeweils die Zufälligkeit des Wertes c[i] aufrechterhalten, durch eine Funktion h, wobei als Eingabe ein Wert c[i] für jede ganze Zahl i von i = 1, ..., b übernommen wird.
  • Die Komprimierungseinheit 160 kann den Wert w[1], den k-Bit Wert w[2] und den n-Bit Wert w[3] berechnen, wobei als Eingabe die Nachricht M zusätzlich zu dem Wert c[i] für jede ganze Zahl i von i = 1, ..., b übernommen werden.
  • In einem Schlüssel-Konvertierungsprozess des Schritts S110 berechnet die Authenticator-Erzeugungseinheit 170 einen k-Bit Wert K' durch eine Funktion e, die eine Substitutionsfunktion ist, wenn der Schlüssel K fest ist, wobei als Eingabe der Schritt K und der Wert w[2], der im Schritt S109 berechnet wird, übernommen werden.
  • In einem Verschlüsselungsprozess des Schritts S111 berechnet die Authenticator-Erzeugungseinheit 170, die als Eingabe den Wert w[1], der im Schritt S109 berechnet wurde, und den Wert K', der im Schritt S110 berechnet wurde, erhält, einen n-Bit Wert c durch die Blockverschlüsselung E.
  • Die Blockverschlüsselung E, die in der Berechnung des Schritts S111 verwendet wird, kann eine Funktion sein, die identisch zu der Blockverschlüsselung E, die in der Berechnung des Schritts S107 verwendet wurde, oder unterschiedlich dazu ist.
  • In einem Authenticator-Berechnungsprozess des Schritts S112 berechnet die Authenticator-Berechnungseinheit 170 einen n-Bit Wert T' durch eine Funktion d, die eine Substitutionsfunktion ist, wenn der Wert w[3] fest ist, wobei als Eingabe der im Schritt S109 berechnete Wert w[3] und der im Schritt S111 berechnete Wert c übernommen werden. Die Authenticator-Erzeugungseinheit 170 betrachtet t Bits aus dem n-Bit Wert T' als Authenticator T der Nachricht M. Beliebige t Bits jedes Bereichs können aus dem Wert T' extrahiert werden und als Authenticator T betrachtet werden, wobei t ≤ n ist.
  • Die Prozesse der Schritte S110 bis S112 bilden einen Authenticator-Erzeugungsprozess.
  • *** Wirkung des Ausführungsbeispiels 1 ***
  • Wie oben beschrieben, implementiert die Vorrichtung 10 zur Erzeugung eines Nachrichten-Authenticators nach dem Ausführungsbeispiels 1 einen Nachrichten-Authenticationsalgorithmus basierend auf einer Blockverschlüsselung.
  • Insbesondere verwendet der Nachrichten-Authenticationsalgorithmus, der durch die Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach dem Ausführungsbeispiel 1 implementiert wird, als Schlüssel nur einen k-Bit Schlüssel K. Somit hat dieser Nachrichten-Authenticationsalgorithmus eine k-Bit Schlüsselgröße. Der Nachrichten-Authenticationsalgorithmus kann einige Prozesse für jede ganze Zahl i von i = 1, ..., b in paralleler Weise ausführen. Der Nachrichten-Authenticationsalgorithmus ist von der Rate 1, da er die Blockverschlüsselung nur einmal in Bezug auf einen n-Bit Nachrichtenblock aufruft.
  • Insbesondere kann der durch die Vorrichtung 10 zum Erzeugen des Nachrichten-Authenticators entsprechend dem Ausführungsbeispiel 1 implementierte Nachrichten-Authenticationsalgorithmus eine k-Bit Schlüsselabmessung haben, ermöglicht eine Parallelverarbeitung und kann eine Rate von 1 vorsehen.
  • Der von der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators entsprechend dem Ausführungsbeispiel 1 implementierte Nachrichten-Authenticationsalgorithmus weist eine Sicherheit p =(bmax × q)2n bei den folgenden Bedingungen auf: die Blockverschlüsselung E ist eine ideale Blockverschlüsselung, die Ausgabe der Funktion f mit dem Schlüssel K, der fest ist, ist nicht von einer Zufallszahl zu unterscheiden, wenn bmax × q < 2n ist, und die Ausgabe der Funktion h ist nicht von einer Zufallszahl zu unterscheiden, wenn bmax × q < 2n ist.
  • Das heißt, der von der Vorrichtung 10 zur Erzeugung eines Nachrichten-Authenticators entsprechend dem Ausführungsbeispiel 1 implementierte Nachrichten-Authenticationsalgorithmus liefert p = 1, wenn bmax × q = 2n ist.
  • *** Andere Konfigurationen ***
  • In der obigen Beschreibung ist die Vorrichtung 10 zur Erzeugung eines Nachrichten-Authenticators mit einem Verarbeitungskreis 11 versehen, der ein zugeordneter Elektronikschaltkreis ist, der die Merkmale implementiert. Die Merkmale sind diejenigen der Padding-Einheit 110, der Dividiereinheit 120, der Subschlüssel-Berechnungseinheit 130, der Anordnungseinheit 140, der Zufallseinheit 150, der Komprimierungseinheit 160, der Authenticator-Erzeugungseinheit 170 und der Steuereinheit 180. Alternativ können die Merkmale durch Software implementiert werden.
  • 4 ist eine Darstellung des Aufbaus der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators, dessen Merkmale durch Software implementiert sind.
  • Die Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators ist ein Computer.
  • Die Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators ist mit Hardwarevorrichtungen, die ein Prozessor 12 und eine Speichervorrichtung 13 sind, versehen. Der Prozessor 11 ist mit den oben anderen Hardwarevorrichtungen verbunden und steuert diese.
  • Ein Programm, das die Merkmale implementiert, ist in der Speichervorrichtung 13 gespeichert. Das Programm wird von dem Prozessor 12 gelesen und durch den Prozessor 12 ausgeführt.
  • Der Prozessor 12 ist ein IC, der die Verarbeitung durchführt. IC ist eine Abkürzung für „integrierter Schaltkreis“. Der Prozessor 12 ist insbesondere eine CPU, eine DSP oder eine GPU. CPU ist eine Abkürzung für Central Processing Unit. DSP ist eine Abkürzung für Digital Signal Processor. GPU ist eine Abkürzung für Graphics Processing Unit.
  • Die Speichervorrichtung 13 ist insbesondere ein ROM, ein RAM, ein Flashspeicher oder ein HDD. ROM ist eine Abkürzung für Read Only Memory. RAM ist eine Abkürzung für Random Access Memory. HDD ist eine Abkürzung für Hard Disk Drive.
  • Informationen, Daten, Signalwerte und variable Werte, die die Ergebnisse der Prozesse der durch den Prozessor 12 implementierten Merkmale angeben, sind in der Speichervorrichtung 13 oder in einem Speicherbereich im Prozessor 12, wie einem Register oder einem Cache-Speicher gespeichert.
  • In der obigen Beschreibung ist das Programm, das die von dem Prozessor 12 implementierten Merkmale implementiert, in der Speichervorrichtung 13 gespeichert. Alternativ kann dieses Programm in einem tragbaren Speichermedium, wie einer Magnetplatte, einer flexiblen Platte oder einer optischen Platte, einer CD, einer Blu-ray(registrierte Marke)-Scheibe oder einer DVD gespeichert sein.
  • 2 zeigt nur einen Prozessor 12. Alternativ kann eine Mehrzahl von Prozessoren 12 vorgesehen sein. Die Mehrzahl von Prozessoren kann untereinander kooperieren, um das Programm, das die Merkmale implementiert, auszuführen.
  • Einige Merkmale können durch Hardware implementiert werden und die anderen Merkmale können durch Software implementiert werden. Die Merkmale können durch Firmware implementiert werden.
  • Der Verarbeitungskreis 11, der Prozessor 12 und die Speichereinheit 13 werden kollektiv als „Verarbeitungskreis“ bezeichnet. Das heißt, die Merkmale sind durch den Verarbeitungskreis implementiert.
  • Jede „Einheit“ in der obigen Beschreibung kann auch als „Stufe“, „Vorgang“ oder „Prozess“ bezeichnet werden.
  • Ausführungsbeispiel 2
  • Im Ausführungsbeispiel 2 wird ein Aufbau beschrieben, in dem die Funktionen des Ausführungsbeispiels 1 in spezifische Formen gesetzt sind.
  • In Ausführungsbeispiel 2 werden die Unterschiede zu dem Ausführungsbeispiel 1 beschrieben.
  • Eine Funktionsweise der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenicators entsprechend dem Ausführungsbeispiels 2 wird unter Bezugnahme auf 2 beschrieben.
  • 5 ist eine Darstellung eines Aufbaus eines Nachrichten-Authenticationsalgorithmus, der durch die Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach Ausführungsbeispiel 2 implementiert ist. Wie in 3 sind Prozesse, die durch gestrichelte Linien in 5 umgeben sind, durch die Merkmale implementiert, die durch an den gestrichelten Linien angegebenen Bezugszeichen bezeichnet sind.
  • Die Funktionsweise der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach dem Ausführungsbeispiel 2 entspricht einem Verfahren zum Erzeugen eines Nachrichten-Authenticators entsprechend Ausführungsbeispiel 2. Die Funktionsweise der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach dem Ausführungsbeispiel 2 entspricht der Verarbeitung eines Programms zum Erzeugen eines Nachrichten-Authenticators nach Ausführungsbeispiel 2.
  • In einem Padding-Prozess des Schrittes 101 erzeugt eine Padding-Einheit 110, die als Eingabe eine Nachricht M erhält, einen Wert M' durch ein Funktionspad. In diesem Prozess erzeugt die Padding-Einheit 110 den Wert M', der eine b-mal-n-Bit Länge aufweist, durch Hinzunahme von 1 zu dem Ende der Nachricht M und durch Hinzufügen einer Bitfolge von 0, die auf die 1 folgt. Die hinzuzufügende Anzahl von 0-en ist 0 oder größer, die zur gleichen Zeit die minimale Anzahl ist, mit der der Wert M' ein Vielfaches von n ist. Die Padding-Einheit 110 kann invers 1 oder 0 sein, kann 0 an das Ende der Nachricht M anfügen und eine Bitfolge von 1 folgend auf 0 hinzufügen.
  • Die Prozesse der Schritte S102 bis S104 sind die gleichen wie die im Ausführungsbeispiel 1 und ihre Beschreibung wird entsprechend weggelassen.
  • In einem Sub-Schlüssel-Berechnungsvorgang des Schritts S105 berechnet eine Sub-Schlüssel-Berechnungseinheit 130, die als Eingabe einen Schlüssel K und die Variable i erhält, einen n-Bit Sub-Schlüssel L[i] durch eine Funktion f. In diesem Prozess berechnet die Sub-Schlüssel-Berechnungseinheit 130 zuerst einen n-Bit Wert L durch eine Blockverschlüsselung E, wobei als Eingabe ein n-Bit-fester Wert const[1] und der Schlüssel K übernommen werden. Dann berechnet die Sub-Schlüssel-Berechnungseinheit 130 unter Verwendung eines Wertes × (L×xi) für den Wert i und betrachtet das Ergebnis als den Subschlüssel L[i].
  • Wenn N=2n ist, ist die Multiplikation in diesem Prozess eine Multiplikation über ein Galois-Feld, das aus N Elementen besteht. Der Wert x ist ein über das Galois-Feld und hat eine Eigenschaft, dass x, x2, ..., und xN-1 alle unterschiedliche Werte haben werden. L[i] kann durch einen n-Bit Wert ausgedrückt werden. Der Wert xi ist ein Wert, der durch i-maliges Multiplizieren des Wertes x über das Galois-Feld erhalten wird.
  • Die Blockverschlüsselung E, die bei der Berechnung von Schritt S105 verwendet wird, kann eine Funktion sein, die identisch zu der Bockverschlüsselung E ist, die in der Berechnung von Schritt S107 und Schritt S111 verwendet wird oder kann unterschiedlich dazu sein.
  • In einem Anordnungsprozess des Schritts S106 berechnet eine Anordnungseinheit 140, die als Eingabe einen Wert m[i], der im Schritt S102 erzeugt wird, und einen im Schritt S105 erzeugten Sub-Schlüssel L[i] erhält, einen Wert m'[i] durch eine Funktion g. In diesem Prozess berechnet die Anordnungseinheit 140 den Wert m'[i] durch Berechnen eines Exklusiv-ODER des Sub-Schlüssels L[i] und des Wertes m[i].
  • Die Prozesse der Schritte S107 bis S108 sind die gleichen wie die in dem Ausführungsbeispiel 1 und ihre Beschreibung wird entsprechend weggelassen.
  • In einem Komprimierungsvorgang des Schritts S109 berechnet eine Komprimierungseinheit 160, die als Eingabewert einen Wert c[i] für jede ganze Zahl i von i = 1, ..., b erhält, einen n-Bit Wert w[1], einen k-Bit Wert w[2] und einen n-Bit Wert w[3] durch eine Funktion h.
  • In diesem Prozess berechnet zuerst die Komprimierungseinheit 160 unter Verwendung eines Werts y ein Exklusiv-ODER von (c[i] × yb-(i-1)) für jede ganze Zahl i von i = 1, ..., b und behandelt das Ergebnis als einen Wert w. Dann berechnet die Komprimierungseinheit 160 ein Exklusiv-ODER des Werts w und einen Wert c[i] für jede ganze Zahl i von i = 1, ..., b und behandelt das Ergebnis als den Wert w[1]. Die Komprimierungseinheit 160 verknüpftz auch einen (k-n)-Bit festen Wert const[2] mit dem Wert w und behandelt das Ergebnis als den Wert w[2]. Die Komprimierungseinheit 160 betrachtet auch den Wert w als den Wert w[3].
  • Genauer berechnet zuerst die Komprimierungseinheit 160 w = (c[1] × yb) xor (c[2] × yb-1) xor... xor (c[b-1] × y2) xor (c[b] × y). Dann berechnet die Komprimierungseinheit 160 w[1] = c[1] xor c[2]xor ... xor c[b-1] xor c[b]xor w. Auch berechnet die Komprimierungseinheit 160 unter Verwendung des (k-n)-Bit festen Wert const[2] w[2] = w || const[2]. Die Kompressionseinheit 160 betrachtet auch w[3] als w[3] = w.
  • Wenn N=2n ist, ist die Multiplikation in diesem Prozess eine Multiplikation über ein Galois-Feld, das aus N-Elementen besteht. Der Wert y ist ein Element über das Galois-Feld und hat eine Eigenschaft, dass y, y2, ..., und yN-1 unterschiedliche Werte haben werden. Es sei bemerkt, dass w durch einen n-Bit Wert ausgedrückt werden kann. Der Wert yi ist ein Wert, der durch i-maliges Multiplizieren des Wertes y über das Galois-Feld erhalten wird.
  • In der Berechnung des Wertes w[2] kann const[2] zu einer Position hinzugefügt werden, die eine andere als die Position ist, die auf w folgt.
  • In einem Schlüsselumwandlungsprozess des Schritts S110 berechnet eine Authenticator-Erzeugungseinheit 170, die als Eingabe den Schlüssel K und den in Schritt S109 berechneten Wert w[2] erhält, einen k-Bit Wert K' durch eine Funktion e. In diesem Prozess berechnet die Authenticator-Erzeugungseinheit 170 den Wert K' durch Berechnen des Exklusiv-ODER des Werts w[2] und des Schlüssels K.
  • Der Prozess des Schritts S111 ist der gleiche wie der im Ausführungsbeispiel 1 und seine Beschreibung wird entsprechend weggelassen.
  • In einem Authenticator-Berechnungsprozess des Schritts S112 berechnet die Authenticator-Erzeugungseinheit 170, die als Eingabe den im Schritt S109 berechneten Wert w[3] und den im Schritt S111 berechneten Wert c erhält, einen Authenticator T der Nachricht M durch eine Funktion d. In diesem Prozess berechnet die Authenticator-Erzeugungseinheit 170 einen Wert T' durch Berechnen eines Exklusiv-ODER des Werts w[3] und des Werts c und behandelt t Bits aus dem Wert T' als Authenticator T. Beliebige t Bits jedes Bereichs können aus dem Wert T' extrahiert werden und als Authenticator T behandelt werden.
  • Das in der Funktion f des Schritts S105 verwendete Galois-Feld und das in der Funktion h des Schritts S109 verwendete Galois-Feld können identisch oder unterschiedlich sein.
  • *** Wirkung des Ausführungsbeispiels 2 ***
  • Wie oben beschrieben, implementiert die Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach dem Ausführungsbeispiel 2 einen Nachrichten-Authenticationsalgorithmus auf der Basis einer Blockverschlüsselung.
  • Der Nachrichten-Authenticationsalgorithmus, der von der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach dem Ausführungsbeispiel 2 implementiert wird, weist eine k-Bit Schlüsselabmessung auf, erlaubt eine Parallelverarbeitung und sieht eine Rate von 1 vor. Mit dem von der Vorrichtung zum Erzeugen eines Nachrichten-Authenticators entsprechend Ausführungsbeispiel 2 implementierten Nachrichten-Authenticationsalgorithmus ist bei den im Ausführungsbeispiel 1 beschriebenen Bedingungen p = 1, wenn bmax × q= 2n ist.
  • Ausführungsbeispiel 3
  • In der im Ausführungsbeispiel 2 beschriebenen Konfiguration werden Bits der Nachricht M durch die Padding-Einheit 110 zugeordnet, selbst wenn die Nachricht M ein Vielfaches von n-Bits aufweist. Im Ausführungsbeispiel 3 wird kein Bit der Nachricht M zugeordnet, wenn die Nachricht M ein Vielfaches von n-Bits aufweist. Dadurch unterscheidet sich Ausführungsbeispiel 3 von Ausführungsbeispiel 2.
  • Im Ausführungsbeispiel 3 werden die Unterschiede zu Ausführungsbeispiel 2 beschrieben.
  • Eine Funktionsweise einer Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators entsprechend dem Ausführungsbeispiel 2 wird unter Bezugnahme auf 2 beschrieben.
  • 6 ist eine Darstellung eines Aufbaus eines Nachrichten-Authenticationsalgorithmus, der von der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators entsprechend Ausführungsbeispiel 3 implementiert wird. Wie in 5 werden Prozesse, die von gestrichelten Linien in 6 umgeben sind, durch Merkmale implementiert, die durch an den gestrichelten Linien angehefteten Bezugszeichen identifiziert sind.
  • Die Funktionsweise der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators entsprechend dem Ausführungsbeispiel 3 entspricht einem Verfahren zum Erzeugen eines Nachrichten-Authenticators entsprechend dem Ausführungsbeispiel 3. Die Funktionsweise der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators entsprechend Ausführungsbeispiel 3 entspricht der Verarbeitung eines Programms zum Erzeugen eines Nachrichten-Authenticators entsprechend Ausführungsbeispiel 3.
  • In einem Padding-Prozess des Schritts S101 erzeugt eine Padding-Einheit 110, die als Eingabe eine Nachricht M erhält, einen Wert M' durch ein Funktionspad.
  • Wenn in diesem Prozess die Nachricht M kein Vielfaches von n-Bits aufweist, erzeugt die Padding-Einheit 110 den Wert M', der eine b-mal-n-Bit Länge aufweist, durch Anfügen von 1 an das Ende der Nachricht M und Anfügen einer Bitfolge von 0 anschließend an 1. Die Anzahl von 0-en zum Anfügen ist 0 oder größer, die zur gleichen Zeit die minimale Anzahl ist, mit der der Wert M' ein Vielfaches von n ist. Die Padding-Einheit 110 kann 0 an das Ende der Nachricht M anfügen und eine Bitfolge von 1 anschließend an 0 anfügen.
  • Wenn die Nachricht M ein Vielfaches von n Bits aufweist, behandelt die Padding-Einheit 110 die Nachricht M wie sie ist, als den Wert M'.
  • Die Prozesse der Schritte S102 bis S108 sind die gleichen wie die im Ausführungsbeispiel 2 und ihre Beschreibung wird entsprechend weggelassen.
  • In einem Komprimierungsprozess des Schritts S109 berechnet eine Komprimierungseinheit 160, die als Eingabe einem Wert c[i] für jede ganze Zahl i von i = 1, ..., b erhält, einen n-Bit Wert w[1], einen k-Bit Wert w[2] und einen n-Bit Wert w[3] durch eine Funktion h.
  • In diesem Prozess berechnet die Komprimierungseinheit 160, wenn die Nachricht M ein Vielfaches von n-Bits aufweist, unter Verwendung von Werten y und z ein Exklusiv-ODER von (c[i] × z × yb-1) für jede ganze Zahl i von i = 1, ..., b und betrachtet das Ergebnis als einen Wert w. Wenn die Nachricht M kein Vielfaches von n-Bits aufweist, berechnet die Komprimierungseinheit 160 unter Verwendung des Wertes y ein Exklusiv-ODER von (c[i] × yb-(i-1)) für jede ganze Zahl i von i = 1, ..., b und betrachtet das Ergebnis als den Wert w.
  • Dann berechnet die Komprimierungseinheit 160 ein Exklusiv-ODER des Wertes W und des Wertes c[i] für jede ganze Zahl i von i = 1, ..., b und betrachtet das Ergebnis als den Wert w[1]. Die Komprimierungseinheit 1160 verknüpft auch einen (k-n)-Bit festen Wert const[2] mit dem Wert w und betrachtet das Ergebnis als den Wert w[2]. Die Komprimierungseinheit 160 betrachtet den Wert w als den Wert w[3].
  • Insbesondere berechnet die Komprimierungseinheit 160 zuerst, wenn die Nachricht M eine Vielzahl von n-Bits aufweist, w = (c[1] × z × yb-1) xor (c[2] × z × yb-2) xor ... xor (c[b-1] × z × y) xor (c[b] × z). Wenn die Nachricht M kein Vielfaches von n-Bits aufweist, berechnet die Komprimierungseinheit 160 w = (c[1] × yb) xor (c[2] × yb-1) xor ... xor (c[b-1] × y2) xor (c[b] × y). Dann berechnet die Komprimierungseinheit 160 w[1]=c[1] xor c[2] xor ... xor c[b-1] xor c[b] xor w. Auch berechnet die Komprimierungseinheit 160 unter Verwendung des (k-n)-Bit festen Wert const[2] w[2]=w || const[2]. Die Komprimierungseinheit 160 betrachtet w[3] als w[3] = w.
  • Wenn N=2n ist die Multiplikation in diesem Prozess eine Multiplikation über ein Galois-Feld, das aus N-Elementen besteht. Die Werte y und z sind Elemente über das Galois-Feld und weisen eine Eigenschaft auf, dass y, y2, ..., ybmax, z, z × y, z × y2, ..., z × ybmax-1 unterschiedliche Werte haben werden. Es sei bemerkt, dass w durch einen n-Bit Wert ausgedrückt werden kann. Der Wert yi ist ein Wert, der durch Multiplizieren des Wertes y mal über das Galois-Feld erhalten wird.
  • Das Berechnungsverfahren des Wertes w kann zwischen dem Fall, in dem die Nachricht M ein Vielfaches n-Bits hat und dem Fall, bei dem die Nachricht M kein Vielfaches n-Bits hat, umgekehrt werden. In der Berechnung des Wertes w[2], const[2] kann einer Position, die nicht die Position ist die w folgt, angefügt werden.
  • Die Prozesse der Schritte S110 bis S112 sind die gleichen wie die des Ausführungsbeispiels 2 und ihre Beschreibung wird entsprechend weggelassen.
  • *** Wirkung des Ausführungsbeispiels 3 ***
  • Wie oben beschrieben, implementiert die Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators entsprechend Ausführungsbeispiel 3 einen Nachrichten-Authenticationsalgorithmus auf der Basis einer Blockverschlüsselung.
  • Wenn die Nachricht ein Vielfaches von n-Bits aufweist, fügt der Nachrichten-Authenticationsalgorithmus, der von der Vorrichtung 10 zum Erzeugen eines Nachrichten-Authenticators nach Ausführungsbeispiel 3 implementiert wird, kein Bit an die Nachricht M an. Daher ist die Länge von Bits, die in den Prozessen der Schritte S102 und weitere eingegeben werden, kurz, so dass die Verarbeitungsgeschwindigkeit erhöht werden kann.
  • Wenn der Nachrichten-Authenticationsalgorithmus die Sicherheit der Ununterscheidbarkeit erfüllt, kann er als ein Erzeugungsalgorithmus für eine Pseudo-Zufallszahl verwendet werden. Der Erzeugungsalgorithmus für eine Pseudo-Zufallszahl wird als eine Funktion verwendet, die in einer Key Derivation Function KDF oder einer Stromverschlüsselung verwendet wird.
  • Bezugszeichenliste
  • 10: Vorrichtung zum Erzeugen eines Nachrichten-Authenticators; 11: Verarbeitungskreis; 12: Prozessor; 13: Speichervorrichtung; 110: Padding-Einheit; 120: Dividiereinheit; 130: Subschlüssel-Berechnungseinheit; 140: Anordnungseinheit; 150: Zufallseinheit; 160: Komprimierungseinheit; 170: Authenticator-Erzeugungseinheit; 180: Steuereinheit.
  • ZITATE ENTHALTEN IN DER BESCHREIBUNG
  • Diese Liste der vom Anmelder aufgeführten Dokumente wurde automatisiert erzeugt und ist ausschließlich zur besseren Information des Lesers aufgenommen. Die Liste ist nicht Bestandteil der deutschen Patent- bzw. Gebrauchsmusteranmeldung. Das DPMA übernimmt keinerlei Haftung für etwaige Fehler oder Auslassungen.
  • Zitierte Nicht-Patentliteratur
    • John Black and Philip Rogaway. A Block-Cipher Mode of Operation for Parallelizable Message Authentication. EUROCRYPT 2002. Seiten 384 - 397 [0021]
    • Phillip Rogaway. Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. ASIACRYPT 2004. Seiten 16 - 31 [0021]
    • Kan Yasuda. A New Variant of PMAC: Beyond the Birthday Bound. CRYPTO 2011. Seiten 596-609 [0021]

Claims (10)

  1. Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, umfassend: eine Zufallseinheit, die für jede ganze Zahl i von i = 1, ..., b einen n-Bit Wert c[i] mit einer Zufälligkeit durch eine Blockverschlüsselung berechnet, wobei als Eingabe ein k-Bit Schlüssel K und ein n-Bit Wert m'[i], der von einer Nachricht M erzeugt wird, erhalten wird; eine Komprimierungseinheit, die einen n-Bit-Wert w[1], einen k-Bit-Wert w[2] und einen n-Bit Wert w[3] berechnet, die jeweils die Zufälligkeit des Wertes c[i]] aufrechterhalten, wobei als Eingabe der Wert c[i] für jede ganze Zahl i von i = 1, ..., b, erhalten wird; und eine Authenticator-Erzeugungseinheit, die einen k-Bit Wert K' durch eine Funktion e berechnet, die eine Substitutionsfunktion ist, wenn der Schlüssel K fest ist, wobei als Eingabe der Wert w[2] und der Schlüssel K übernommen werden, die einen n-Bit Wert c durch eine Blockverschlüsselung berechnet, wobei als Eingabe der Wert w[1] und der Wert K' übernommen werden, und die einen Authenticator T der Nachricht M durch eine Funktion d, die eine Substitutionsfunktion ist, wenn der Wert w[3] fest ist, berechnet, wobei als Eingabe der Wert w[3] und der Wert c übernommen werden.
  2. Vorrichtung zum Erzeugen eines Nachrichten-Authenticators nach Anspruch 1, bei der die Komprimierungseinheit unter Verwendung eines Werts y ein Exklusiv-ODER von (c[i] × yb-(i-1)) für jede ganze Zahl von i = 1, ..., b berechnet und ein Berechnungsergebnis als einen Wert w betrachtet, und ein Exklusiv-ODER des Wertes w und des Wertes c[i] für jede ganze Zahl i von i = 1, ..., b berechnet und ein Berechnungsergebnis als den Wert w[1] betrachtet, einen (k-n)-Bit festen Wert const[2] mit dem Wert w verknüpft und ein Berechnungsergebnis als den Wert w[2] betrachtet und den Wert w als den Wert w[3] betrachtet.
  3. Vorrichtung zum Erzeugen eines Nachrichten-Authenticators nach Anspruch 1, bei der die Komprimierungseinheit in einem von zwei Fällen, bei denen die Nachricht M ein Vielfaches von n-Bits aufweist und die Nachricht M kein Vielfaches von n-Bits aufweist, unter Verwendung eines Wertes y ein Exklusiv-ODER von (c[i] × yb-(i-1)) für jede ganze Zahl i von i = 1, ..., b berechnet und ein Berechnungsergebnis als einen Wert w betrachtet, und in einem verbleibenden Fall unter Verwendung des Werts y und eines Werts z ein Exklusiv-ODER von (c[i] × z × yb-i) für jede ganze Zahl i von i = 1, ..., b berechnet und ein Berechnungsergebnis als einen Wert w behandelt, und ein Exklusiv-ODER des Wertes w und des Wertes c[i] für jede ganze Zahl i von i = 1, ..., b berechnet und ein Berechnungsergebnis als den Wert w[1] betrachtet, einen (k-n)-Bit festen Wert const[2] mit dem Wert w verknüpft und ein Berechnungsergebnis als den Wert w[2] betrachtet und den Wert w als den Wert w[3] betrachtet.
  4. Vorrichtung zum Erzeugen eines Nachrichten-Authenticators nach einem der Ansprüche 1 bis 3, außerdem umfassend eine Anordnungseinheit, die unter Verwendung eines n-Bit-Werts m[i], der aus der Nachricht M für jede ganze Zahl i von i = 1, ..., b erzeugt wird, und eines n-Bit-Subschlüssels L[i], der aus dem Schlüssel K für jede ganze Zahl i von i = 1, ..., b erzeugt wird, und für jede ganze Zahl i von i = 1, ..., b den Wert m'[i] durch eine Funktion G, die eine Substitutionsfunktion ist, wenn der Subschlüssel L[i] fest ist, berechnet, wobei als Eingabe der Wert m[i] und der Subschlüssel L[i] übernommen wird.
  5. Vorrichtung zum Erzeugen eines Nachrichten-Authenticators entsprechend Anspruch 4, außerdem umfassend: eine Padding-Einheit, die einen b-mal-n-Bit Wert M' erzeugt, wobei als Eingabe die Nachricht M übernommen wird; und eine Dividiereinheit, die den Wert m[i] für jede ganze Zahl i von i = 1 ..., b durch Teilen des Wertes M' bei jeden n-Bits erzeugt.
  6. Vorrichtung zum Erzeugen eines Nachrichten-Authenticators entsprechend Anspruch 4, außerdem umfassend: eine Subschlüssel-Berechnungseinheit, die für jede ganze Zahl i von i = 1, ..., b den Subschlüssel L[i] durch eine Funktion f berechnet, wobei als Eingabe der Schlüssel K und eine ganze Zahl i übernommen werden.
  7. Vorrichtung zum Erzeugen eines Nachrichten-Authenticators nach Anspruch 6, bei der die Subschüssel-Berechnungseinheit einen n-Bit Wert L durch Blockverschlüsselung berechnet, wobei als Eingabe ein n-Bit fester Wert const[1] und der Schlüssel K übernommen wird, und unter Verwendung eines Wertes x (L × xi) berechnet und ein Berechnungsergebnis als den Subschlüssel L[i] betrachtet.
  8. Vorrichtung zum Erzeugen eines Nachrichten-Authenticators nach Anspruch 1, bei der die Authenticator-Erzeugungseinheit den Wert K' durch Berechnen eines Exklusiv-ODER des Wertes w[2] und des Schlüssels K berechnet, und den Authenticator T durch Berechnen eines Exklusiv-ODER des Wertes w[3] und des Wertes c berechnet.
  9. Verfahren zum Erzeugen eines Nachrichten-Authenticators umfassend: Berechnen eines n-Bit-Werts c[i] mit einer Zufälligkeit durch eine Blockverschlüsselung für jede ganze Zahl i von i = 1, ..., b, wobei als Eingabe ein k-Bit-Schlüssel K und ein n-Bit Wert m'[i], der aus der Nachricht M erzeugt wird, übernommen werden; Berechnen eines n-Bit Wertes w[1], eines k-Bit Werts w[2] und eines n-Bit Wertes w[3], die jeweils die Zufälligkeit des Wertes c[i] aufrechterhalten, wobei als Eingabe der Wert c[i] für jede ganze Zahl i von i = 1, ..., b übernommen wird; und Berechnen eines k-Bit Werts K' durch eine Funktion e, die eine Substitutionsfunktion ist, wenn der Schlüssel K fest ist, wobei als Eingabe der Wert w[2] und der Schlüssel K übernommen werden, Berechnen eines n-Bit Wert c durch eine Blockverschlüsselung, wobei als Eingabe der Wert w[1] und der Wert K' übernommen werden, und Berechnen eines Authenticators T der Nachricht M durch eine Funktion d, die eine Substitutionsfunktion ist, wenn der Wert w[3] fest ist, wobei als Eingabe der Wert w[3] und der Wert c übernommen werden.
  10. Program zum Erzeugen eines Nachrichten-Authenticators, das einen Computer veranlasst, auszuführen: einen Randomisierungsprozess des Berechnens eines n-Bit Wertes c[i] mit einer Zufälligkeit durch eine Blockverschlüsselung für jede ganze Zahl i von i = 1, ..., b, wobei als Eingabe ein k-Bit Schlüssel K und ein n-Bit-Wert m'[i], der von einer Nachricht M erzeugt wird, übernommen werden; einen Komprimierungsprozess des Berechnens eines n-Bit Werts w[1], eines k-Bit Wertes w[2] und eines n-Bit Werts w[3], die jeweils die Zufälligkeit des Wertes c[i] aufrechterhalten, wobei als Eingabe der Wert c[i] für jede ganze Zahl i von i = 1, ..., b übernommen wird; und einen Authenticator-Erzeugungsprozess des Berechnens eines k-Bit Werts K' durch eine Funktion e, die eine Substitutionsfunktion ist, wenn der Schlüssel K fest ist, wobei als Eingabe der Wert w[2] und der Schlüssel K übernommen werden, des Berechnens eines n-Bit Werts c durch eine Blockverschlüsselung, wobei als Eingabe der Wert w[1] und der Wert K' übernommen werden, und des Berechnens eines Authenticators T der Nachricht M durch eine Funktion d, die eine Substitutionsfunktion ist, wenn der Wert w[3] fest ist, wobei als Eingabe der Wert w[3] und der Wert c übernommen werden.
DE112015006865.1T 2015-09-28 2015-09-28 Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, Verfahren zum Erzeugen eines Nachrichten-Authenticators und Programm zum Erzeugen eines Nachrichten-Authenticators Withdrawn DE112015006865T5 (de)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/077311 WO2017056150A1 (ja) 2015-09-28 2015-09-28 メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム

Publications (1)

Publication Number Publication Date
DE112015006865T5 true DE112015006865T5 (de) 2018-05-17

Family

ID=58422784

Family Applications (1)

Application Number Title Priority Date Filing Date
DE112015006865.1T Withdrawn DE112015006865T5 (de) 2015-09-28 2015-09-28 Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, Verfahren zum Erzeugen eines Nachrichten-Authenticators und Programm zum Erzeugen eines Nachrichten-Authenticators

Country Status (5)

Country Link
US (1) US10326589B2 (de)
JP (1) JP6305642B2 (de)
CN (1) CN108028756B (de)
DE (1) DE112015006865T5 (de)
WO (1) WO2017056150A1 (de)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10326589B2 (en) * 2015-09-28 2019-06-18 Mitsubishi Electric Corporation Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium
WO2018154642A1 (ja) 2017-02-22 2018-08-30 三菱電機株式会社 メッセージ認証子生成装置
EP3661115B1 (de) * 2017-09-01 2024-01-17 Mitsubishi Electric Corporation Verschlüsselungsvorrichtung, entschlüsselungsvorrichtung, verschlüsselungsverfahren, entschlüsselungsverfahren, verschlüsselungsprogramm und entschlüsselungsprogramm
JP6797337B2 (ja) * 2018-08-30 2020-12-09 三菱電機株式会社 メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
JP7347501B2 (ja) 2019-04-18 2023-09-20 日本電気株式会社 Macタグリスト生成装置、macタグリスト検証装置、方法及びプログラム
JP7253470B2 (ja) * 2019-07-31 2023-04-06 株式会社デンソーテン 情報処理装置
CN115039374A (zh) * 2020-02-06 2022-09-09 三菱电机株式会社 加密装置、解密装置、加密方法、解密方法、加密程序和解密程序
CN112737767B (zh) * 2020-12-30 2022-03-15 山东大学 抗差分功耗分析与时间攻击的消息认证码生成方法及系统

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5140634A (en) * 1987-09-07 1992-08-18 U.S Philips Corporation Method and apparatus for authenticating accreditations and for authenticating and signing messages
US5218637A (en) * 1987-09-07 1993-06-08 L'etat Francais Represente Par Le Ministre Des Postes, Des Telecommunications Et De L'espace Method of transferring a secret, by the exchange of two certificates between two microcomputers which establish reciprocal authorization
US5319705A (en) * 1992-10-21 1994-06-07 International Business Machines Corporation Method and system for multimedia access control enablement
US5757913A (en) * 1993-04-23 1998-05-26 International Business Machines Corporation Method and apparatus for data authentication in a data communication environment
US5651069A (en) * 1994-12-08 1997-07-22 International Business Machines Corporation Software-efficient message authentication
US5664016A (en) * 1995-06-27 1997-09-02 Northern Telecom Limited Method of building fast MACS from hash functions
US20020051537A1 (en) * 2000-09-13 2002-05-02 Rogaway Phillip W. Method and apparatus for realizing a parallelizable variable-input-length pseudorandom function
JP2002374239A (ja) * 2001-05-30 2002-12-26 World Top Technology Co Ltd 情報暗号化方法
EP1467512B1 (de) * 2003-04-07 2008-07-23 STMicroelectronics S.r.l. Verschlüsselungsverfahren unter Verwendung von chaotischen Abbildungen und digitale Unterschriftsverfahren
WO2007052477A1 (ja) 2005-11-04 2007-05-10 Nec Corporation メッセージ認証装置、メッセージ認証方法、メッセージ認証プログラムとその記録媒体
WO2009020060A1 (ja) 2007-08-06 2009-02-12 Nec Corporation 共通鍵ブロック暗号化装置、共通鍵ブロック暗号化方法及びプログラム
JP4914381B2 (ja) 2008-02-07 2012-04-11 日本電信電話株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、プログラム、および記録媒体
US8452984B2 (en) * 2008-08-28 2013-05-28 Alcatel Lucent Message authentication code pre-computation with applications to secure memory
WO2010024004A1 (ja) 2008-08-29 2010-03-04 日本電気株式会社 調整値付きブロック暗号化装置、調整値付きブロック暗号化方法及び調整値付きブロック暗号化プログラム並びに調整値付きブロック復号装置、調整値付きブロック復号方法及び調整値付きブロック復号プログラム
US8190892B2 (en) * 2008-12-29 2012-05-29 King Fahd University Of Petroleum & Minerals Message authentication code with blind factorization and randomization
US8543820B2 (en) * 2009-05-11 2013-09-24 Nec Corporation Tag generation apparatus, tag verification apparatus, communication system, tag generation method, tag verification method, and recording medium
JP2011040932A (ja) 2009-08-10 2011-02-24 Nippon Telegr & Teleph Corp <Ntt> 認証付き暗号化装置、認証付き暗号化方法、検証付き復号装置、検証付き復号方法、暗号システム、プログラム、記録媒体
JP5704159B2 (ja) 2010-02-24 2015-04-22 日本電気株式会社 ブロック暗号化装置、ブロック復号装置、ブロック暗号化方法、ブロック復号方法及びプログラム
JP5427117B2 (ja) 2010-06-11 2014-02-26 日本電信電話株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、メッセージ認証子生成方法、メッセージ認証子検証方法、およびプログラム
JP5367023B2 (ja) 2011-07-29 2013-12-11 日本電信電話株式会社 情報暗号化方法、情報暗号化装置、プログラム、および記録媒体
US9787475B2 (en) 2013-03-04 2017-10-10 Nec Corporation Device, method, and program for message authentication tag generation
US9571270B2 (en) * 2013-11-29 2017-02-14 Portland State University Construction and uses of variable-input-length tweakable ciphers
US9584310B2 (en) * 2014-03-19 2017-02-28 Nxp B.V. Protecting a white-box implementation against attacks
US10326589B2 (en) * 2015-09-28 2019-06-18 Mitsubishi Electric Corporation Message authenticator generating apparatus, message authenticator generating method, and computer readable recording medium

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
John Black and Philip Rogaway. A Block-Cipher Mode of Operation for Parallelizable Message Authentication. EUROCRYPT 2002. Seiten 384 - 397
Kan Yasuda. A New Variant of PMAC: Beyond the Birthday Bound. CRYPTO 2011. Seiten 596-609
Phillip Rogaway. Efficient Instantiations of Tweakable Blockciphers and Refinements to Modes OCB and PMAC. ASIACRYPT 2004. Seiten 16 - 31

Also Published As

Publication number Publication date
CN108028756B (zh) 2019-04-09
JP6305642B2 (ja) 2018-04-04
CN108028756A (zh) 2018-05-11
JPWO2017056150A1 (ja) 2017-10-05
US20180241544A1 (en) 2018-08-23
US10326589B2 (en) 2019-06-18
WO2017056150A1 (ja) 2017-04-06

Similar Documents

Publication Publication Date Title
DE112015006865T5 (de) Vorrichtung zum Erzeugen eines Nachrichten-Authenticators, Verfahren zum Erzeugen eines Nachrichten-Authenticators und Programm zum Erzeugen eines Nachrichten-Authenticators
DE102012201164B4 (de) Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
DE102019208032A1 (de) Verfahren und system für fehlertolerante und sichere mehrparteienberechnung mit spdz
DE102014016548A1 (de) Verfahren zum Testen und zum Härten von Softwareapplikationen
DE60113678T2 (de) Generator für pseudo-zufallszahlen
DE60315700T2 (de) Verfahren zum erzeugen einer stromverschlüsselung mit mehreren schlüsseln
CH660822A5 (de) Zufallsprimzahlen-erzeugungsmittel in einer mit oeffentlichem schluessel arbeitenden daten-verschluesselungsanlage.
DE102017117907A1 (de) Durchführen einer kryptografischen Operation
DE102017117899A1 (de) Durchführen einer kryptografischen Operation
DE112017007095T5 (de) Verschlüsselungsvorrichtung und entschlüsselungsvorrichtung
CH708239B1 (de) Schlüsseleinigungsprotokoll.
DE69911815T2 (de) Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren
DE102016120558A1 (de) Datenverarbeitungsvorrichtung und -verfahren für kryptographische verarbeitung von daten
Nayak et al. Image encryption using an enhanced block based transformation algorithm
Liu et al. Chaos-based color image encryption using one-time keys and Choquet fuzzy integral
DE112009000152T5 (de) Modulare Reduktion unter Verwendung einer speziellen Form des Modulo
Acharya Image encryption using a new chaos based encryption algorithm
EP3387636B1 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem rechenschritt (sbox-aufruf)
DE102011012328A1 (de) Verschlüsseltes Rechnen
DE102013205168A1 (de) Verfahren zum Erzeugen einer zufälligen Ausgangsbitfolge
WO2017056151A1 (ja) メッセージ認証子生成装置、メッセージ認証子生成方法及びメッセージ認証子生成プログラム
Fu et al. A novel parallel image encryption scheme using chaos
Rajashekarappa et al. Study on cryptanalysis of the tiny encryption algorithm
Rogobete Hash Function and Collision Resistance
DE112015006703T5 (de) Nachrichtenauthenticator-Erzeugungsvorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R084 Declaration of willingness to licence
R120 Application withdrawn or ip right abandoned