-
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]