DE102012201164B4 - Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes - Google Patents

Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes Download PDF

Info

Publication number
DE102012201164B4
DE102012201164B4 DE102012201164.1A DE102012201164A DE102012201164B4 DE 102012201164 B4 DE102012201164 B4 DE 102012201164B4 DE 102012201164 A DE102012201164 A DE 102012201164A DE 102012201164 B4 DE102012201164 B4 DE 102012201164B4
Authority
DE
Germany
Prior art keywords
message
key
authentication code
generated
generator
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.)
Active
Application number
DE102012201164.1A
Other languages
English (en)
Other versions
DE102012201164A1 (de
Inventor
Wieland Fischer
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.)
Infineon Technologies AG
Original Assignee
Infineon Technologies AG
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 Infineon Technologies AG filed Critical Infineon Technologies AG
Priority to DE102012201164.1A priority Critical patent/DE102012201164B4/de
Priority to FR1300123A priority patent/FR2986631B1/fr
Priority to US13/746,046 priority patent/US20130195266A1/en
Priority to CN201310029945.1A priority patent/CN103312501B/zh
Publication of DE102012201164A1 publication Critical patent/DE102012201164A1/de
Application granted granted Critical
Publication of DE102012201164B4 publication Critical patent/DE102012201164B4/de
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/002Countermeasures against attacks on cryptographic mechanisms
    • H04L9/003Countermeasures against attacks on cryptographic mechanisms for power analysis, e.g. differential power analysis [DPA] or simple power analysis [SPA]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/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/0643Hash functions, e.g. MD5, SHA, HMAC or f9 MAC
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/04Masking or blinding
    • H04L2209/046Masking or blinding of operations, operands or results of the operations

Abstract

Vorrichtung zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht und einem ursprünglichen Schlüssel, umfassend: einen Schlüsselgenerator (110; 210) zur Erzeugung eines generierten Schlüssels basierend auf dem ursprünglichen Schlüssel und der ersten Nachricht, und einen Nachrichtenauthentifizierungscodegenerator (120; 220) zur Erzeugung des Nachrichtenauthentifizierungscodes basierend auf dem generierten Schlüssel und der ersten Nachricht, wobei wenigstens zur Realisierung des Schlüsselgenerators (110; 210) oder des Nachrichtenauthentifizierungscodegenerators (120; 220) ein Prozessor eingesetzt wird, wobei der Schlüsselgenerator (110; 210) dazu eingerichtet ist, den generierten Schlüssel durch eine Hash-Berechnung der ersten Nachricht zu erzeugen, oder wobei der Schlüsselgenerator (110; 210) dazu eingerichtet ist, den generierten Schlüssel zu erzeugen, indem für einen Teil der ersten Nachricht eine Hash-Berechnung durchgeführt wird, und wobei der Schlüsselgenerator (110; 210) dazu eingerichtet ist, den generierten Schlüssel unter Einsatz eines kryptographischen Verschlüsselungsalgorithmus basierend auf der Hash-Berechnung der ersten Nachricht zu erzeugen, wobei der kryptographische Verschlüsselungsalgorithmus einen Blockchiffre umfasst.

Description

  • Die vorliegende Erfindung betrifft die Erzeugung von Nachrichtenauthentifizierungscodes und, im Speziellen, eine Vorrichtung und ein Verfahren zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht und einem ursprünglichen Schlüssel.
  • Seit über einem Jahrzehnt werden Seitenkanalangriffe, wie z. B. die einfache Stromprofilanalyse (englisch: Simple Power Analysis = SPA) und die differenzielle Stromprofilanalyse (englisch: Differential Power Analysis = DPA), benutzt, um Implementierungen von symmetrischen Blockchiffren anzugreifen, die z. B. vom DES-Verschlüsselungsalgorithmus (englisch: DES = Data Encryption Standard) oder vom AES-Verschlüsselungsalgorithmus (englisch: AES = Advanced Encryption Standard) verwendet werden. Ebenso werden Seitenkanalangriffe, wie die SPA und DPA verwendet, um asymmetrische Kryptoalgorithmen, wie z. B. den RSA-Verschlüsselungsalgorithmus (RSA = Rivest Shamir Adleman), und elliptische Kurvensysteme anzugreifen. „Angreifen” bedeutet hierbei, dass der Angreifer den geheimen Schlüssel, mit dem die Verschlüsselungsalgorithmen betrieben werden, extrahiert.
  • Kryptoalgorithmen, die nicht mit geheimen Schlüsseln betrieben werden, wie z. B. Hash-Algorithmen, sind von Seitenkanalangriffen weniger betroffen, da hier meistens keine weiteren Geheimnisse, wie z. B. geheime Schlüssel, im Spiel sind, sondern nur eine vorgegebene Information in Form einer Nachricht (englisch: message) M komprimiert werden soll.
  • Es existiert jedoch eine Anwendung von Hash-Algorithmen, bei der ein geheimer Schlüssel zum Einsatz kommt, dessen Kompromittierung zu verhindern ist, nämlich die Berechnung eines sogenannten Nachrichtenauthentifizierungscodes (englisch: message authentication code). Der Begriff „Nachrichtenauthentifizierungscode” wird im Folgenden durch die Bezeichnung „MAC” abgekürzt. Ein MAC ist, grob gesagt, der Hash aus einem geheimen Schlüssel k und einer Nachricht M. Ein Nachrichtenauthentifizierungscode wird dabei nicht nur verwendet, um die Integrität einer Nachricht zu gewährleisten, sondern zusätzlich noch zum Absichern, dass dies nur durch eine Partei geschieht, die im Besitz des geheimen Schlüssels k ist.
  • 7 illustriert eine MAC-Generierung nach dem Stand der Technik. Eine Information in Form einer Nachricht M wird zusammen mit einem geheimen Schlüssel k in eine Vorrichtung 700 eingegeben, die einen MAC-Algorithmus ausführt. Die Vorrichtung 700 berechnet den Nachrichtenauthentifizierungscode Mack(M), der von der Nachricht M und dem geheimen Schlüssel k abhängt.
  • Da grundsätzlich jede, nicht spezifisch dagegen gehärtete, Implementierung eines Algorithmus, der ein konstantes Geheimnis, wie z. B. einen geheimen Schlüssel, mit einer variablen und bekannten Eingabe „vermischt”, durch DPA angreifbar ist, gilt dies auch für eine MAC-Berechnung.
  • Seitenkanalangriffe nutzen oftmals die Kenntnis über den Stromverbrauch eines Prozessors für den Angriff aus. Bei vielen Verschlüsselungsalgorithmen unterscheidet sich der Stromverbrauch eines Prozessors, wenn ein Bit eines Schlüssels oder eines Zwischenergebnisses verarbeitet wird, das den Wert 1 hat, vom Stromverbrauch des Prozessors, wenn ein Bit eines Schlüssels oder eines Zwischenergebnisses verarbeitet wird, das den Wert 0 hat. So werden Berechnungen in Verschüsselungsalgorithmen oftmals nur dann ausgeführt, wenn ein Bit eines Schlüssels oder eines von einem Schlüssel abhängigen Zwischenergebnisses den Wert 1 annimmt, während bei einem Bitwert von 0 die Berechnung nicht durchgeführt wird. Dies führt in diesem Beispiel zu einem höheren Stromverbrauch bei einem Bitwert von 1 im Gegensatz dazu, dass das Bit den Wert 0 hat. In anderen Fällen werden beispielsweise bestimmte Anweisungen nur dann ausgeführt, wenn ein bestimmtes Bit eines Schlüssels oder eines vom einem Schlüssel abhängigen Zwischenergebnisses den Wert 0 annimmt. Auch dies führt zu einem Stromverbrauch des Prozessors der je nachdem, ob ein Bit den Wert 1 oder 0 hat, unterschiedlich ist. Somit ist es prinzipiell möglich, bei Kenntnis über den Stromverbrauch eines Prozessors, Rückschlüsse über einen geheimen Schlüssel zu ziehen, oder über ein von einem geheimen Schlüssel abhängigen Zwischenergebnis zu gewinnen, das dann wiederum Rückschlüsse über den geheimen Schlüssel zulässt. So lässt sich auf diese Weise unter Umständen durch einen Seitenkanalangriff ein von einer Chipkarte verwendeter geheimer Schlüssel bestimmen, wenn diese nicht gegen Seitenkanalangriffe abgesichert ist. Seitenkanalangriffe sind jedoch nicht auf die Analyse des Stromverbrauchs beschränkt. So können im Rahmen von Seitenkanalangriffen alternativ z. B. auch andere Kenngrößen, wie die elektromagnetische Abstrahlung analysiert werden, die ebenfalls in Abhängigkeit von den Bitwerten eines Schlüssels oder eines von einem Schlüssel abhängigen Zwischenergebnisses unterschiedlich sein kann.
  • Beispiele für Seitenkanalangriffe sind die einfache Stromprofilanalyse (englisch: Simple Power Analysis), im Folgenden als „SPA” bezeichnet, und die differenzielle Stromprofilanalyse (englisch: Differential Power Analysis), im Folgenden als „DPA” bezeichnet. Auch können Fehlerattacken eingesetzt werden, um einen Angriff durchzuführen.
  • Die SPA funktioniert einfach gesagt so, dass der Stromverbrauch eines Prozessors aufgezeichnet wird. Das aufgezeichnete Stromprofil wird dann betrachtet und auf Auffälligkeiten hin untersucht. So ergeben sich bei der visuellen Betrachtung des Stromprofils, also z. B. des Stromverbrauchs im Zeitverlauf oftmals deutliche Unterschiede im zeitlichen Verlauf.
  • Phasen höheren Stromverbrauchs und Phasen geringeren Stromverbrauchs sind oft deutlich unterscheidbar. Analysiert man etwa das Stromprofil eines Prozessors, der einen DES-Verschlüsselungsalgorithmus ausführt, so lassen sich z. B. die 16 sich wiederholenden Runden bei der DES-Verschüsselung oftmals deutlich erkennen. Betrachtet man dann das Stromprofil hinsichtlich der identifizierten Runden genauer, lassen sich oft Rückschlüsse herleiten, z. B. welche Operationen zu welchen Zeitpunkten mit welchen Bitwerten durchgeführt wurden.
  • Statt, wie bei der SPA, das Stromprofil, etwa eines Prozessors, visuell zu betrachten, bedient sich die differentielle Stromprofilanalyse (DPA) statistischer Mittel, um einen geheimen Schlüssel, der bei einem Verschüsselungsalgorithmus zum Einsatz kommt, zu bestimmen.
  • Dabei werden zunächst für eine Vielzahl von mit einem geheimen Schlüssel zu verschlüsselten Nachrichten jeweils das Stromprofil, also z. B. der Stromverbrauch eines Prozessors im zeitlichen Verlauf, bei der Ausführung eines Verschlüsselungsalgorithmus aufgezeichnet und anschließend statistisch analysiert. So kann z. B. der oftmals vorliegende Umstand genutzt werden, dass Zwischenergebnisse, die vom Verschlüsselungsalgorithmus berechnet werden, neben der zu verschlüsselten Nachricht häufig nur von einem Teil der Bits des geheimen Schlüssels abhängen.
  • Hängt zum Beispiel ein Zwischenergebnis, das beispielsweise 0 oder 1 sein kann, nur von sechs Bits eines 56-Bit-Schlüssels ab, so könnte ein Angreifer bei Kenntnis der Eingangswerte, also etwa der zu verschlüsselnden Nachricht für alle 26 = 64 verschiedenen Varianten für die sechs relevanten Bits des Schlüssels den Wert des Zwischenergebnisses berechnen und dann zum Beispiel für jede der 64 verschiedenen Varianten ein mittleres Stromprofil aus allen Stromprofilen berechnen, deren Zwischenergebnis einen bestimmten Wert annimmt, z. B. den Wert 1 für ein zu berechnendes Bit.
  • Mit großer Wahrscheinlichkeit werden sich dann für das mittlere Stromprofil der richtigen Variante der 64 verschiedenen Möglichkeiten für die sechs Bitwerte deutliche Besonderheiten gegenüber den anderen mittleren Stromprofilen aufweisen, denn es ist in der Regel das einzige, bei dem die Nachrichten zu allen Stromprofilen, die für die Berechnung des mittleren Stromprofils verwendet wurden, bei ihrer Verschlüsselung tatsächlich alle zu demselben Zwischenergebnis geführt haben.
  • Um DPA-Angriffe zu verhindern, wurden verschiedene Techniken vorgeschlagen. Eine Technik besteht z. B. im Hinzufügen von Rauschen während der Durchführung von Operationen, die den geheimen Schlüssel verwenden. Eine weitere Technik besteht in der Anwendung von Maskierungstechniken, wie z. B. Boolescher Maskierung und arithmetischer Maskierung.
  • Im Grunde geht es bei Maskierungstechniken darum, dass vor Anwendung einer Operation unter Verwendung eines Geheimnisses, wie z. B. eines geheimen Schlüssels die Nachricht, auf die der geheime Schlüssel angewandt wird, zunächst maskiert wird, d. h. verändert wird. Beispielsweise kann die Maskierung dergestalt erfolgen, dass einzelne Bits der Nachricht auf eine Weise vertauscht werden, die dem Angreifer unbekannt ist. Eine weitere Möglichkeit ist, dass die Nachricht, auf die der geheime Schlüssel angewandet wird, dergestalt verändert wird, dass die Nachricht unter Anwendung einer geheimen Bitfolge verändert wird, beispielsweise indem eine XOR-Operation durchgeführt wird, die die Nachricht und die geheime Bitfolge miteinander verknüpft. Alternativ oder zusätzlich können auch AND-Operationen und/oder OR-Operationen durchgeführt werden, um die Nachricht zu maskieren. Die kritische Operation, bei der der geheime Schlüssel zur Anwendung kommt, wird dann auf die maskierte Nachricht angewandt, um das Ergebnis der Operation zu erhalten. Dieses Ergebnis liegt dann in maskierter Form vor. Entsprechend wird nach Durchführung der Operation die Maskierung wieder rückgängig gemacht, um ein unmaskiertes Ergebnis zu erhalten.
  • Ein zu schützender Algorithmus, bei dem sowohl Boolsche als auch arithmetische Operationen zu schützen sind, erfordert bei Anwendung von Maskierungstechniken oftmals das häufige Umrechnen von Boolscher zu arithmetischer Maskierung und umgekehrt. Dies gilt zum Beispiel für Hash-Operationen, bei der Hashing auf eine geheime Bitfolge angewandt wird, und die gegen Seitenkanalangriffe abgesichert werden muss. Derartige Algorithmen werden dafür z. B. durch Maskierungsmethoden gesichert, die entweder einen erheblichen Rechenzeit-Aufwand erfordern, wenn sie in Software implementiert sind, oder die einen entsprechend großen Flächenbedarf haben, wenn sie in Hardware realisiert sind.
  • Bei der Berechnung eines MAC werden Hash-Werte für Werte berechnet, die ihrerseits unter Verwendung eines geheim zu haltenden Schlüssels berechnet wurden. Die Entwicklung von effizient realisierbaren Konzepten zur Verhinderung von Seitenkanalangriffen, die die Generierung eines Nachrichtenauthentifizierungscodes analysiert, ist dabei erstrebenswert.
  • DE 10 2004 001 490 A1 offenbart eine Sende- bzw. Übertragungsvorrichtung, wobei eine Nachricht eine Nachrichtenlänge aufweist und Nachrichtendaten umfasst. Eine Schlüsseleingabe wird identifiziert und ein Nachrichtenauthentifikationsschlüssel wird abgeleitet, basierend auf einer Schlüsseleingabe und einer Nachrichtenlänge.
  • NIST Specical Publication 800–108 „Recommendation for Key Derivation Using Pseudorandom Functions”, Lily Chen, October 2009 spezifiziert Techniken für Schlüsselableitungsmaterial von einem geheimen Schlüssel, entweder erzeugt durch ein Schlüsselerzeugungsschema oder geteilt durch andere Mittel, wobei Pseudozufallsfunktionen zum Einsatz kommen.
  • US 2005/0254658 A1 zeigt ein System und ein Verfahren zur Erzeugung eines reproduzierbaren Sitzungsschlüssels in einem drahtlosen Nachrichtenübertragungssystem. Der Sitzungsschlüssel wird basierend auf einem Hash der Nachricht erzeugt.
  • Es ist somit eine Aufgabe der vorliegenden Erfindung, effiziente Konzepte zur Absicherung einer MAC-Erzeugung gegen Seitenkanalangriffe bereitzustellen.
  • Die Aufgabe der vorliegenden Erfindung wird durch eine Vorrichtung gemäß Anspruch 1, durch eine Vorrichtung gemäß Anspruch 12, durch ein Verfahren gemäß Anspruch 13 und durch ein Computerprogramm gemäß Anspruch 15 gelöst.
  • Bei einer herkömmlichen Absicherung gegen Seitenkanalangriffe, wie z. B. DPA, angewandt auf eine herkömmliche MAC-Berechnung, wie sie z. B. auf einer Chipkarte erfolgen könnte, würde man z. B. die üblichen Techniken anwenden, die man auch zur Absicherung von z. B. DES, AES, RSA, usw. benutzt. Darunter fallen z. B. Maskierungsmethoden. Da eine MAC-Berechnung darin besteht, eine Hash-Kompressionsfunktion mehrfach auszuführen, würde es zwar ausreichen, die Hash-Berechnungen DPA-sicher zu gestalten. Hash-Berechnungen sind jedoch nur äußerst aufwändig gegen Seitenkanalangriffe abzusichern. Wird die Hash-Berechnung in einem Hardwaremodul implementiert, dann wächst die Fläche des Designs erheblich. Wird die Hash-Berechnung in Software implementiert, so wächst die Rechenzeit der maskierten Methode um ein Vielfaches. Die Ausführungsformen der vorliegenden Erfindung vermeiden diese Nachteile und gehen einen anderen Weg.
  • Gemäß einer Ausführungsform der Erfindung wird eine Vorrichtung zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht und einem ursprünglichen Schlüssel bereitgestellt. Die Vorrichtung umfasst einen Schlüsselgenerator zur Erzeugung eines generierten Schlüssels basierend auf dem ursprünglichen Schlüssel und der ersten Nachricht. Darüber hinaus umfasst die Vorrichtung einen Nachrichtenauthentifizierungscodegenerator zur Erzeugung des Nachrichtenauthentifizierungscodes basierend auf dem generierten Schlüssel und der ersten Nachricht.
  • Die obige Ausführungsform vermeidet ein bloßes Kombinieren der MAC-Berechnung mit klassischen Absicherungskonzepten gegen Seitenkanalangriffe, was mit Nachteilen verbunden wäre. Gemäß dem obigen Ausführungsbeispiel wird das Absicherungs-Problem auf einen anderen Algorithmus verlagert, wie z. B. einer DPA-sicheren AES-Operation, oder einer anderen Operation, die gewisse Bedingungen erfüllt und leicht DPA-sicher gestaltet werden kann.
  • So eignen sich viele Hash-Algorithmen weniger gut für eine DPA-sichere Implementierung als symmetrische Blockchiffren; bzw. umgekehrt eignen sich symmetrische Blockchiffren besser für eine DPA-sichere Implementierung als Hash-Algorithmen. Das Problem der Absicherung gegen Seitenkanalangriffe z. B. auf eine DPA-sichere AES-Operation zu verlagern, wie bei bevorzugten Ausführungsformen vorgesehen ist, ist unter anderem deshalb besonders vorteilhaft, da die Implementierung von AES-Operationen, die DPA-sicher sind, normalerweise ohnehin auf einer Chipkarte vorhanden sind. Einer der Vorteile einer solchen Lösung ist, dass eine Hash-Hardware oder -Software nicht DPA-sicher implementiert werden muss, sondern dass man stattdessen auf eine Standardimplementierung gegen Seitenkanalangriffe zurückgreifen kann und/oder auf eine Implementierung, die auf Geschwindigkeit optimiert wurde, und die z. B. auf einer Chipkarte ohnehin oftmals vorhanden ist.
  • Des Weiteren kann der Umstand ausgenutzt werden, dass eine Hash-Berechnung um ein Vielfaches Zeit- oder Flächen-intensiver ist, als eine Blockchiffre, bzw., dass umgekehrt, eine Blockchiffre um einiges Zeit- oder Flächen-effizienter gestaltet werden kann als bei einer Hash-Berechnung.
  • Gemäß einer Ausführungsform kann der Schlüsselgenerator dazu eingerichtet sein, den generierten Schlüssel unter Einsatz eines kryptographischen Verschlüsselungsalgorithmus zu erzeugen.
  • In einer weiteren Ausführungsform kann der Schlüsselgenerator dazu eingerichtet sein, den generierten Schlüssel durch eine Hash-Berechnung der ersten Nachricht zu erzeugen.
  • In einer anderen Ausführungsform kann der Schlüsselgenerator dazu eingerichtet sein, den generierten Schlüssel zu erzeugen, indem für einen Teil der ersten Nachricht eine Hash-Berechnung durchgeführt wird.
  • Gemäß einer weiteren Ausführungsform kann der Schlüsselgenerator dazu eingerichtet sein, den generierten Schlüssel so zu erzeugen, dass die Entropie des generierten Schlüssels nicht geringer ist, als die Entropie des ursprünglichen Schlüssels.
  • In einer weiteren Ausführungsform kann der Schlüsselgenerator dazu eingerichtet sein, den generierten Schlüssel so zu erzeugen, dass, wenn genau ein Bit der ersten Nachricht oder des ursprünglichen Schlüssels geändert wird, sich bei erneuter Erzeugung des generierten Schlüssels im Durchschnitt aller möglichen Schlüssel, die eine erste vordefinierte Bitlänge aufweisen, und ersten Nachrichten, die eine zweite vordefinierte Bitlänge aufweisen, zwischen 45% und 55% der Bits des generierten Schlüssels ändern.
  • Gemäß einer weiteren Ausführungsform kann der Schlüsselgenerator dazu eingerichtet sein, AES-Verschlüsselung zur Erzeugung des generierten Schlüssels einzusetzen.
  • In einer weiteren Ausführungsform kann der Schlüsselgenerator dazu eingerichtet sein, die Formel AESk(H(M)) anzuwenden, wobei M die erste Nachricht bezeichnet, wobei H(M) die Hash-Berechnung der ersten Nachricht M bezeichnet, wobei k den ursprünglichen Schlüssel bezeichnet und wobei AESk eine AES-Verschlüsselung unter Einsatz des ursprünglichen Schlüssels k bezeichnet.
  • Gemäß einer anderen Ausführungsform kann der Schlüsselgenerator Absicherungsmittel aufweisen, die dafür eingerichtet sind, die Erzeugung des generierten Schlüssels gegen Seitenkanalangriffe abzusichern. Bevorzugt sind die Absicherungsmittel dafür ausgelegt, eine Maskierungsoperation hinsichtlich der ersten Nachricht durchzuführen, um eine maskierte Nachricht zu erhalten, wobei der Schlüsselgenerator dafür eingerichtet sein kann, den generierten Schlüssel basierend auf dem ursprünglichen Schlüssel und der maskierten ersten Nachricht zu erzeugen.
  • In einer weiteren Ausführungsform kann die Maskierungsoperation dabei ein Vertauschen der ersten Nachricht oder eine XOR-, AND- oder OR-Verknüpfung der ersten Nachricht mit einer Bitfolge umfassen.
  • In einer weiteren Ausführungsform kann der Nachrichtenauthentifizierungscodegenerator dafür eingerichtet sein, eine Hash-Berechnung von M durchzuführen, um den Nachrichtenauthentifizierungscode zu berechnen.
  • In einer weiteren Ausführungsform kann der Nachrichtenauthentifizierungscodegenerator dazu eingereicht sein, den generierten Schlüssel in einer ersten XOR-Operation mit einer ersten Konstanten zu verknüpfen und den generierten Schlüssel in einer zweiten XOR-Operation mit einer zweiten Konstanten zu verknüpfen.
  • Gemäß einer anderen Ausführungsform kann der Nachrichtenauthentifizierungscodegenerator dazu eingerichtet sein, die Formel HMACk'(M) = H((k' ⊕ opad)||H((k' ⊕ ipad)||M)) anzuwenden, wobei M die erste Nachricht bezeichnet, wobei k' den generierten Schlüssel bezeichnet, wobei ⊕ eine XOR-Operation bezeichnet, wobei || eine Konkatenation bezeichnet und wobei H eine Hash-Operation bezeichnet.
  • Des Weiteren wird eine Vorrichtung zur Überprüfung von Korrektheit und Authentizität einer Nachricht bereitgestellt, die eine Vorrichtung zur Erzeugung eines ermittelten Nachrichtenauthentifizierungscodes und eine Vergleichseinheit umfasst. Die Vergleichseinheit ist dafür eingerichtet, den ermittelten Nachrichtenauthentifizierungscode und einen empfangenen Nachrichtenauthentifizierungscode auf Übereinstimmung zu überprüfen, um die Korrektheit und die Authentizität der Nachricht zu überprüfen.
  • Gemäß einer Ausführungsform wird ein Verfahren zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht M und einem ursprünglichen Schlüssel k bereitgestellt. Ein generierter Schlüssel k' wird erzeugt, basierend auf dem ursprünglichen Schlüssel k und der Nachricht M. Dann wird ein Nachrichtenauthentifizierungscode basierend auf dem generierten Schlüssel k' und der Nachricht M erzeugt.
  • In einer weiteren Ausführungsform wird ein Verfahren bzw. eine Methode zur Generierung eines Nachrichtenauthentifizierungscodes MAC basierend auf einer Nachricht M mit einem geheimen Schlüssel k bereitgestellt. Das Verfahren bzw. die Methode hat folgende Merkmale:
    • (i) Generierung eines Sitzungsschlüssels k' aus M und k durch ein Verfahren bzw. eine Methode, die kollisionsresistent bezüglich der Nachrichten ist, also ein Verfahren bzw. eine Methode, dergestalt, dass es kryptographisch schwierig ist, zwei Nachrichten M1 und M2 zu finden, so dass k'(k, M1) = k'(k, M2) ist.
    • (ii) Benutzung des Sitzungsschlüssels k' in einem MAC-Algorithmus, um einen MAC von der Nachricht M mit dem generierten Schlüssel k' zu erzeugen.
  • Bevorzugt involviert die Erzeugung des generierten Schlüssels k' eine Hash-Berechnung der Nachricht M.
  • Ferner ist bevorzugt, dass ein kryptographischer Verschlüsselungsalgorithmus aus den Eingaben M, oder eines basierend auf M berechneten Hash-Werts, und dem ursprünglichen Schlüssel k einen generierten Schlüssel k' als eine Chiffre erzeugt.
  • Bevorzugte Ausführungsformen werden unter Bezugnahme auf die Zeichnungen erläutert, in denen:
  • 1 eine Vorrichtung zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht und einem ursprünglichen Schlüssel gemäß einer Ausführungsform darstellt,
  • 2 eine Vorrichtung zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht und einem ursprünglichen Schlüssel gemäß einer weiteren Ausführungsform darstellt,
  • 3 eine Vorrichtung zur Erzeugung eines generierten Schlüssels basierend auf einer ersten Nachricht und einem ursprünglichen Schlüssel gemäß einer Ausführungsform darstellt,
  • 4 eine Vorrichtung zur Erzeugung eines Nachrichtenauthentifizierungscodes unter Verwendung von HMAC basierend auf einer ersten Nachricht und einem ursprünglichen Schlüssel gemäß einer weiteren Ausführungsform darstellt,
  • 5 eine Vorrichtung zur Überprüfung von Korrektheit und Authentizität einer Nachricht gemäß einer Ausführungsform darstellt,
  • 6 ein Flussdiagramm darstellt, dass ein Verfahren zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht und einem ursprünglichen Schlüssel gemäß einer weiteren Ausführungsform illustriert,
  • 7 eine Erzeugung eines Nachrichtenauthentifizierungscodes gemäß dem Stand der Technik darstellt, und
  • 8 eine Erzeugung eines HMAC gemäß dem Stand der Technik darstellt.
  • 1 zeigt eine Vorrichtung zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht M und einem ursprünglichen Schlüssel k. Die Vorrichtung umfasst einen Schlüsselgenerator 110 zur Erzeugung eines generierten Schlüssels k' basierend auf dem ursprünglichen Schlüssel k und der ersten Nachricht M. Darüber hinaus umfasst die Vorrichtung einen Nachrichtenauthentifizierungscodegenerator 120 zur Erzeugung des Nachrichtenauthentifizierungscodes MAC'k.
  • Die Vorrichtung erhält als Eingaben eine Nachricht M und einen ursprünglichen Schlüssel k. Der Schlüsselgenerator ist dafür eingerichtet, einen generierten Schlüssel k' unter Verwendung des ursprünglichen Schlüssels k und unter Verwendung der ersten Nachricht M zu erzeugen. Dieser generierte Schlüssel k' wird dann für die Erzeugung des Nachrichtenauthentifizierungscodes verwendet.
  • Bevorzugt ist der Schlüsselgenerator dazu eingerichtet, dass sich der generierte Schlüssel k' in den allermeisten Fällen von einem anderen generierten Schlüssel unterscheidet, wenn unterschiedliche Nachrichten M1 und M2 codiert werden. Da ein Seitenkanalangriff wie die DPA erfordert, dass eine Vielzahl von Stromprofilen für eine Vielzahl von Nachrichten bei gleichbleibendem Schlüssel k ermittelt werden, ist diese Voraussetzung für einen erfolgreichen Seitenkanalangriff bei der vorliegenden Ausführungsform nicht mehr gegeben, denn der Schlüssel k', der zur Erzeugung des Nachrichtenauthentifizierungscodes verwendet wird, ist damit bei unterschiedlichen Nachrichten M1 und M2 fast immer unterschiedlich. Somit ist es einem Angreifer nicht mehr möglich oder zumindest erheblich erschwert, durch Verwendung der DPA den zur Erzeugung des Nachrichtenauthentifizierungscodes verwendeten Schlüssel k' zu ermitteln.
  • Durch das in 1 beschriebene Konzept wird die eigentliche Generierung des Nachrichtenauthentifizierungscodes, die nur auf Basis des generierten Schlüssels k' und der Nachricht M erfolgt, gegen Seitenkanalangriffe geschützt. Dabei wird allerdings das Problem der Anfälligkeit für Seitenkanalangriffe in einen anderen Prozess verschoben, nämlich in den Prozess zur Erzeugung des generierten Schlüssels k', der auf Basis des ursprünglichen Schlüssels k und der Nachricht M durch den Schlüsselgenerator 110 erzeugt wird. Da auch hier der Schlüssel k mit der (potenziell bekannten) Nachricht M in Kontakt kommt, gibt es hier auch ein DPA-Problem. So ist die Erzeugung des generierten Schlüssels k' für Seitenkanalangriffe grundsätzlich anfällig, die z. B. darauf abzielen, der ursprüngliche Schlüssel k zu bestimmen.
  • Somit ist es bei der vorliegenden Ausführungsform zwar nicht mehr nötig, die eigentliche Erzeugung des MAC basiert auf dem generierten Schlüssel k' und der Nachricht M gegen Seitenkanalangriffe abzusichern; gegen Seitenkanalangriffe sollte nun jedoch die Erzeugung des generierten Schlüssels k' aus dem ursprünglichen Schlüssel k und der Nachricht M abgesichert werden. Es ist also zu gewährleisten, dass das abgeleitete k' = k'(k, M) gegen Seitenkanalangriffe abgesichert wird.
  • Das Konzept der Verlagerung des Absicherungsproblems, wie bei der vorliegenden Ausführungsform vorgesehen, erweist sich dabei jedoch als besonders vorteilhaft: So kann die Erzeugung des generierten Schlüssels leichter gegen Seitenkanalangriffe, wie z. B. die DPA, abgesichert werden, als dies für die Absicherung der Hash-Operationen bei der Erzeugung des MAC möglich ist, indem z. B. der generierte Schlüssel durch eine Blockchiffre erzeugt wird, z. B. indem ein AES-Verschlüsselungsalgorithmus verwendet wird. Eine solche AES-Operation kann viel leichter gegen Seitenkanalangriffe abgesichert werden, als die Hash-Operationen, die bei der Nachrichtenauthentifizierungscode-Erzeugung zum Einsatz kommen. Darüber hinaus muss bei der Erzeugung eines MAC einer Nachricht nur eine Operation gegen Seitenkanalangriffe abgesichert werden, während es bei der Absicherung der Hash-Operationen bei der MAC Generierung notwendig wäre, eine Reihe von Operationen gegen Seitenkanalangriffe abzusichern.
  • Bei der Erzeugung des Schlüssels k' können herkömmliche Mechanismen eingesetzt werden, um die Erzeugung des generierten Schlüssels k' zu schützen, wie z. B. Maskierung oder das Hinzufügen von Rauschen.
  • Zusammenfassend besteht ein wesentlicher Aspekt dieser Ausführungsform darin, die eigentliche MAC-Berechnung MACk(M) mit einem Schlüssel k durch eine Berechnung des MACs mit einem variablen geheimen Schlüssel k' zu ersetzen. Wenn dieser variable Schlüssel k' abhängig ist von sowohl dem geheimen Schlüssel k als auch der Nachricht M selbst, und wenn dies in kryptographisch sinnvoller Weise geschieht, dann kann gewährleistet werden, dass zwei verschiedenen Nachrichten M1 und M2, auch mit zwei verschiedenen abgeleiteten Schlüsseln ge-MAC-t werden. Dies kann sogar dann gewährleistet werden, wenn der Angreifer in der Lage ist, sich die Nachrichten, die ge-MAC-t werden, selbst zu bestimmen. In diesem Fall benutzt der MAC von einer festen Nachricht immer den gleichen Schlüssel k', so dass der MAC reproduzierbar ist. Aber da mit diesem Schlüssel k' in der Regel keine zweite Nachricht M ge-MAC-t wird (oder zumindest so gut wie nie), kann k' nicht durch eine DPA ermittelt werden.
  • Besonders vorteilhaft ist es, wenn die folgenden Punkte a) bis e) erfüllt sind:
    • a) Die kryptographische Stärke des Systems sollte nicht verringert werden. Mit anderen Worten, die Berechnung von k' sollte keine Entropie des Schlüssels verringern. In gewissen Situationen kann der Verlust von einigen Bits an Entropie aber trotzdem vertragen werden, z. B. wenn die Schlüssellänge sowieso größer als erforderlich ist.
    • b) Auf jedes Bit der Eingabe, d. h. des ursprünglichen Schlüssels k und der Nachricht M, sollte reagiert werden, z. B. sollte die Erzeugung des generierten Schlüssels von jedem Bit der Eingabe abhängig sein.
  • Bevorzugt ist, dass, wenn ein beliebiges Bit der Eingabe gekippt wird, z. B. ein Bit des ursprünglichen Schlüssel k oder ein Bit der Nachricht M, dann im Durchschnitt zwischen 45% und 55% der Ausgabe-Bits kippen. Mit anderen Worten, im generierten Schlüssel k' verändern sich im Schnitt zwischen 45% und 55% der Bits.
  • Besonders bevorzugt ist, dass es zu einem Lawineneffekt kommt, d. h.: im Durchschnitt kippen 50% der Ausgabe-Bits. Mit anderen Worten, im generierten Schlüssel k' verändern sich im Schnitt 50% der Bits.
    • c) Es sollte nicht möglich sein, zu einer ersten Nachricht M1 eine andere zweite Nachricht M2 zu generieren, so dass für den ursprünglichen Schlüssel k und den generierten Schlüssel k' gilt: k'(k, M1) = k'(k, M2)
  • Dies sollte vor allem dann nicht möglich sein, wenn auch k nicht bekannt ist.
    • d) Es ist vorteilhaft, wenn man aus den Informationen k' (generierter Schlüssel) und M (Nachricht, für die der MAC berechnet wurde) den ursprünglichen Schlüssel k nicht berechnen kann.
    • e) Die Berechnung von k' = k'(k, M) soll keine Rückschlüsse auf k durch Seitenkanalattacken zulassen. Auch dann nicht, wenn M bekannt ist oder sogar gewählt werden darf.
  • Gemäß einer Ausführungsform wird eine Vorrichtung bereitgestellt, die die Punkte a)–d) erfüllt.
  • In einer bevorzugten Ausführungsform wird eine Vorrichtung bereitgestellt, die die Punkte a)–e) erfüllt.
  • Gemäß einer Ausführungsform wird eine Vorrichtung bereitgestellt, die dafür eingerichtet ist, für die Erzeugung eines Nachrichtenauthentifizierungscodes einen ursprünglichen Schlüssel k durch einen generierten Schlüssel k' zu ersetzen, der auf folgende Weise erzeugt wird: k' := k'(k, M) := AESk(H(M)).
  • Hierbei bezeichnet M eine Nachricht; H bezeichnet eine Hash-Operation, die auf diese Nachricht angewandt wird, um den Hash-Wert H(M) zu erhalten; AESkbezeichnet einen AES-Verschlüsselungsalgorithmus, der mit dem ursprünglichen Schlüssel k verwendet wird, um den Hash-Wert M zu verschlüsseln; und k' bezeichnet den zu generierten Schlüssel, der erzeugt wird. Eine solche Vorrichtung erfüllt automatisch die Punkte a) bis d).
  • Der Punkt e) ist durch die Implementierung sicherzustellen. Beispielsweise kann ein Maskierungskonzept aus dem Stand der Technik eingesetzt werden, um Punkt e) zu realisieren, wie z. B. eine bekannte Technik zur Maskierung des AES-Verschlüsselungsalgorithmus.
  • Eine derartige Erzeugung des generierten Schlüssels ist unter anderem deshalb besonders vorteilhaft, da die verwendete Hash-Operation nicht zwingend gegen Seitenkanalangriffe abgesichert werden muss, da sie nicht auf den geheimzuhaltendes Schlüssel k angewandt wird, sondern nur auf der Nachricht M.
  • Bei der Erzeugung des MAC muss die AES-Berechnung somit als einzige seitenkanalresistent berechnet werden.
  • Statt den AES-Algorithmus einzusetzen, gibt es viele andere Möglichkeiten einen generierten Schlüssel k' zu erzeugen. Z. B. kann ein DES-Algorithmus oder ein Triple-DES-Algorithmus zur Erzeugung eines generierten Schlüssels k' verwendet werden.
  • Bei manchen Ausführungsformen werden die Punkte a) bis e) je nach Fall evt. nur graduell oder teilweise erfüllt. So ist es bei manchen Ausführungsformen nicht unbedingt erforderlich, einen starken Verschlüsselungsalgorithmus zu verwenden.
  • 2 stellt hier nun eine Ausführungsform bereit, die eine sichere MAC-Berechnung zulässt. Gemäß dem neuen Konzept wird zunächst ein generierter Schlüssel, z. B. einen Sitzungsschlüssel (englisch: Session-Key) k' aus der Nachricht M und einem ursprünglichen Schlüssel k von einem Schlüsselgenerator 210 erzeugt. Der Sitzungsschlüssel wird dann von einem Nachrichtenauthentifizierungscodegenerator 220 verwendet, um den Nachrichtenauthentifizierungscode Mac'k zu erzeugen.
  • 3 zeigt eine Ausführungsform für die Erzeugung des generierten Schlüssels, z. B. eines Sitzungsschlüssels k'. Die Erzeugung des Sitzungsschlüssels k' kann z. B. dadurch durchgeführt werden, dass die Nachricht M in einem ersten Modul 312 gehasht wird. Dann kann das Resultat mit dem Schlüssel k z. B. unter Verwendung eines gegen Seitenkanalangriffe abgesicherten AES in einem zweiten Modul 315 verschlüsselt werden.
  • Gemäß einer weiteren Ausführungsform kann die Erzeugung des Sitzungsschlüssels k' z. B. dadurch durchgeführt werden, dass ein Teil der Nachricht M in einem ersten Modul 312 gehasht wird. Dann kann das Resultat mit dem Schlüssel k z. B. unter Verwendung eines gegen Seitenkanalangriffe abgesicherten AES in einem zweiten Modul 315 verschlüsselt werden.
  • Es gibt viele andere Möglichkeiten, einen generierten Schlüssel zu erzeugen, der gegen Seitenkanalangriffe abgesichert ist, solange die Punkte a) bis e) beachtet werden, die oben beschrieben wurden.
  • Im Folgenden wird eine weitere Ausführungsform der vorliegenden Erfindung dargestellt, die sich auf den HMAC bezieht (HMAC = Hash-basierter Nachrichtenauthentifizierungscode; englisch: Hash-based Message Authentication Code). Zunächst wird jedoch zum besseren Verständnis der HMAC-Nachrichtenauthentifizierungscode, wie aus dem Stand der Technik bekannt, unter Bezugnahme auf 8 erläutert. Dabei wird eine Information in Form einer Nachricht M zusammen mit einem geheimen Schlüssel einer Vorrichtung zugeführt, die einen MAC-Algorithmus ausführt. Diese berechnet den Nachrichtenauthentifizierungscode.
  • In der Vorrichtung der 8 wird ein ursprünglicher Schlüssel k ggf. gekürzt, falls dieser Schlüssel zu lang ist, um einen Schlüssel K zu erhalten (Schritt 810). Ist es nicht erforderlich, den Schlüssel k zu kürzen, so wird als Schlüssel K der Schlüssel k unverändert übernommen. Anschließend wird der Schlüssel K mit einer Bitfolge ipad XOR-verknüpft (820). Das Ergebnis wird dann mit der Nachricht M konkateniert (830), um ein erstes konkateniertes Ergebnis zu erhalten, das in Schritt 835 für eine erste Hash-Operation bereitgestellt wird. Auf das erste konkatenierte Ergebnis wird dann die erste Hash-Operation angewandt (840), um ein erstes Hash-Ergebnis zu erhalten, das in Schritt 845 für eine zweite Konkatenation 860 bereitgestellt wird.
  • In einem weiteren Schritt 850 wird der Schlüssel K mit einer weiteren Bitfolge opad XOR-verknüpft und dann durch Schritt 855 ebenfalls für die zweite Konkatenation bereitgestellt. Das in Schritt 855 bereitgestellte Ergebnis dieser XOR-Verknüpfung wird dann mit dem in Schritt 845 bereitgestellten ersten Hash-Ergebnis konkateniert (860). Auf das Ergebnis der zweiten Konkatenation wird dann eine zweite Hash-Operation angewandt (870), wodurch schließlich der Nachrichtenauthentifizierungscode Mac erhalten wird.
  • Die übliche Hash-Funktion, auf der das HMAC-Verfahren basiert, ist definiert durch H: {0,1}* → {0,1}l der Ausgabelänge l.
  • Bekannte Hash-Verfahren sind z. B. SHA-1, die SHA-2 Familie (SHA = Sicherer Hash-Algorithmus; englisch = Secure Hash Algorithm), umfassend SHA256, SHA384, SHA512. Ein Hash dieser Art besteht im Kern aus einer Rundenfunktion h: {0,1}L × {0,1}l → {0,1}l, wobei L ≥ l ist.
  • Z. B. ist bei SHA-1: L = 512, l = 180. Die Rundenfunktion wird iterativ angewendet, um beliebig lange Nachrichten zu hashen.
  • Wie in 8 bereits illustriert, ist der HMAC zur Nachricht M mit dem geheimen Schlüssel K ist dann definiert als, HMACK(M) = H((K ⊕ opad)||H((K ⊕ ipad)||M)), wobei opad und ipad Konstanten sind, ⊕ für eine XOR-Operation steht und wobei || für eine einfache Konkatenation steht. D. h. zuerst wird K zusammen mit der Nachricht M gehasht, und das Ergebnis wird dann wieder zusammen mit K gehasht. Hierbei wurde K auf die Input-Länge des Hashes H aufgefüllt, also z. B. K: = k||0 ... ... ... 0.
  • Ein MAC-Algorithmus kann somit z. B. durch HMAC mittels eines gewöhnlichen Hash-Algorithmus erzeugt werden. Dazu wird zuerst einmal die Nachricht zusammen mit dem Schlüssel k in gepaddeter Form gehasht. Danach wird der Hash noch einmal mit dem Schlüssel k gehasht.
  • 4 stellt eine Vorrichtung gemäß einer Ausführungsform der Erfindung dar, bei der ein Nachrichtenauthentifizierungscode mittels eines HMAC erzeugt wird.
  • Die Vorrichtung ist dafür ausgelegt, einen generierten Schlüssel k' dadurch zu erzeugen, dass eine Nachricht M in einem ersten Hash-Einheit 410 gehasht wird, um ein erstes Hash-Ergebnis zu erhalten, und wobei AES-Einheit 420 vorgesehen ist, die dafür ausgelegt ist, das erste Hash-Ergebnis mit dem Schlüssel k unter Verwendung eines gegen Seitenkanalangriffe abgesicherten AES-Algorithmus zu verschlüsseln.
  • Ein erster Modifikator 430 und ein zweiter Modifikator 470 sind dafür vorgesehen, den generierten Schlüssel k' ggf. zu kürzen, falls dieser Schlüssel zu lang ist, um einen Schlüssel K' zu erhalten. Ist es nicht erforderlich, den generierten Schlüssel k' zu kürzen, so wird als Schlüssel K' der generierte Schlüssel k' unverändert übernommen. Eine erste XOR-Einheit 440 ist dafür vorgesehen, den Schlüssel K' mit einer Bitfolge ipad XOR zu verknüpfen, um ein erstes XOR-Ergebnis zu erhalten. Eine erste Konkatenationseinheit 450 ist dafür vorgesehen, das erste XOR-Ergebnis mit der Nachricht M zu konkatenieren, um ein erstes konkateniertes Ergebnis zu erhalten.
  • Darüber hinaus ist eine zweite Hash-Einheit 460 dafür vorgesehen, eine Hash-Operation auf das erste konkatenierte Ergebnis anzuwenden, um ein zweites Hash-Ergebnis zu erhalten.
  • Ein zweites XOR-Modul 480 ist dafür eingerichtet, den Schlüssel K' mit einer weiteren Bitfolge opad XOR zu verknüpfen, um ein zweites XOR-Ergebnis zu erhalten. Eine zweite Konkatenationseinheit 490 ist dafür vorgesehen, das zweite Hash-Ergebnis und das zweite XOR-Ergebnis zu verknüpfen, um ein zweites konkateniertes Ergebnis zu erhalten. Ferner ist eine dritte Hash-Einheit 495 dafür vorgesehen, eine Hash-Operation auf das zweite konkatenierte Ergebnis anzuwenden, um den Nachrichtenauthentifizierungscode Mac zu erhalten.
  • 5 stellt eine Vorrichtung zur Überprüfung von Korrektheit und Authentizität einer Nachricht dar. Die Vorrichtung ist dafür eingerichtet, eine Nachricht anhand eines empfangenen Nachrichtenauthentifizierungscodes MACempfangen auf Korrektheit und Authentizität zu überprüfen. Dazu weist die Vorrichtung zur Überprüfung von Korrektheit und Authentizität der Nachricht eine Vorrichtung 510 zur Erzeugung eines Nachrichtenauthentifizierungscodes gemäß einer der oben beschriebenen Ausführungsformen und eine Vergleichseinheit 520 auf.
  • Die Vorrichtung 510 zur Erzeugung des Nachrichtenauthentifizierungscodes erzeugt einen berechneten Nachrichtenauthentifizierungscodes MACberechnet basierend auf einem (ursprünglichen) Schlüssel und einer Nachricht M.
  • Die Vergleichseinheit 520 ist dafür eingerichtet, den erzeugten Nachrichtenauthentifizierungscode MACberechnet und den empfangenen Nachrichtenauthentifizierungscode MACempfangen auf Übereinstimmung zu überprüfen, um die Korrektheit und die Authentizität der Nachricht zu überprüfen. Sind MACberechnet und MACempfangen identisch, wird die Korrektheit und die Authentizität der Nachricht angenommen. Sind MACberechnet und MACempfangen nicht identisch, wird von einer nicht korrekten Nachricht und/oder nicht vorliegender Authentizität ausgegangen.
  • 6 stellt ein Verfahren zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht M und einem ursprünglichen Schlüssel k gemäß einer Ausführungsform dar. In Schritt 610 wird ein generierter Schlüssel k' erzeugt, basierend auf dem ursprünglichen Schlüssel k und der Nachricht M. Dann wird in Schritt 620 ein Nachrichtenauthentifizierungscode basierend auf dem generierten Schlüssel k' und der Nachricht M erzeugt.
  • Obwohl manche Aspekte im Zusammenhang mit einer Vorrichtung beschrieben wurden, versteht es sich, dass diese Aspekte auch eine Beschreibung des entsprechenden Verfahrens darstellen, so dass ein Block oder ein Bauelement einer Vorrichtung auch als ein entsprechender Verfahrensschritt oder als ein Merkmal eines Verfahrensschrittes zu verstehen ist. Analog dazu stellen Aspekte, die im Zusammenhang mit einem oder als ein Verfahrensschritt beschrieben wurden, auch eine Beschreibung eines entsprechenden Blocks oder Details oder Merkmals einer entsprechenden Vorrichtung dar. Einige oder alle der Verfahrensschritte können durch einen Hardware-Apparat (oder unter Verwendung eines Hardware-Apparats), wie zum Beispiel einen Mikroprozessor, einen programmierbaren Computer oder eine elektronische Schaltung ausgeführt werden. Bei einigen Ausführungsbeispielen können einige oder mehrere der wichtigsten Verfahrensschritte durch einen solchen Apparat ausgeführt werden.
  • Je nach bestimmten Implementierungsanforderungen können Ausführungsbeispiele der Erfindung in Hardware oder in Software implementiert sein. Die Implementierung kann unter Verwendung eines digitalen Speichermediums, beispielsweise einer Floppy-Disk, einer DVD, einer Blu-ray Disc, einer CD, eines ROM, eines PROM, eines EPROM, eines EEPROM oder eines FLASH-Speichers, einer Festplatte oder eines anderen magnetischen oder optischen Speichers durchgeführt werden, auf dem elektronisch lesbare Steuersignale gespeichert sind, die mit einem programmierbaren Computersystem derart zusammenwirken können oder zusammenwirken, dass das jeweilige Verfahren durchgeführt wird. Deshalb kann das digitale Speichermedium computerlesbar sein.
  • Manche Ausführungsbeispiele gemäß der Erfindung umfassen also einen Datenträger, der elektronisch lesbare Steuersignale aufweist, die in der Lage sind, mit einem programmierbaren Computersystem derart zusammenzuwirken, dass eines der hierin beschriebenen Verfahren durchgeführt wird.
  • Allgemein können Ausführungsbeispiele der vorliegenden Erfindung als Computerprogrammprodukt mit einem Programmcode implementiert sein, wobei der Programmcode dahin gehend wirksam ist, eines der Verfahren durchzuführen, wenn das Computerprogrammprodukt auf einem Computer abläuft.
  • Der Programmcode kann beispielsweise auch auf einem maschinenlesbaren Träger gespeichert sein.
  • Andere Ausführungsbeispiele umfassen das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren, wobei das Computerprogramm auf einem maschinenlesbaren Träger gespeichert ist.
  • Mit anderen Worten ist ein Ausführungsbeispiel des erfindungsgemäßen Verfahrens somit ein Computerprogramm, das einen Programmcode zum Durchführen eines der hierin beschriebenen Verfahren aufweist, wenn das Computerprogramm auf einem Computer abläuft.
  • Ein weiteres Ausführungsbeispiel der erfindungsgemäßen Verfahren ist somit ein Datenträger (oder ein digitales Speichermedium oder ein computerlesbares Medium), auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren aufgezeichnet ist.
  • Ein weiteres Ausführungsbeispiel des erfindungsgemäßen Verfahrens ist somit ein Datenstrom oder eine Sequenz von Signalen, der bzw. die das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren darstellt bzw. darstellen. Der Datenstrom oder die Sequenz von Signalen kann bzw. können beispielsweise dahingehend konfiguriert sein, über eine Datenkommunikationsverbindung, beispielsweise über das Internet, transferiert zu werden.
  • Ein weiteres Ausführungsbeispiel umfasst eine Verarbeitungseinrichtung, beispielsweise einen Computer oder ein programmierbares Logikbauelement, die dahingehend konfiguriert oder angepasst ist, eines der hierin beschriebenen Verfahren durchzuführen.
  • Ein weiteres Ausführungsbeispiel umfasst einen Computer, auf dem das Computerprogramm zum Durchführen eines der hierin beschriebenen Verfahren installiert ist.
  • Ein weiteres Ausführungsbeispiel gemäß der Erfindung umfasst eine Vorrichtung oder ein System, die bzw. das ausgelegt ist, um ein Computerprogramm zur Durchführung zumindest eines der hierin beschriebenen Verfahren zu einem Empfänger zu übertragen. Die Übertragung kann beispielsweise elektronisch oder optisch erfolgen. Der Empfänger kann beispielsweise ein Computer, ein Mobilgerät, ein Speichergerät oder eine ähnliche Vorrichtung sein. Die Vorrichtung oder das System kann beispielsweise einen Datei-Server zur Übertragung des Computerprogramms zu dem Empfänger umfassen.
  • Bei manchen Ausführungsbeispielen kann ein programmierbares Logikbauelement (beispielsweise ein feldprogrammierbares Gatterarray, ein FPGA) dazu verwendet werden, manche oder alle Funktionalitäten der hierin beschriebenen Verfahren durchzuführen. Bei manchen Ausführungsbeispielen kann ein feldprogrammierbares Gatterarray mit einem Mikroprozessor zusammenwirken, um eines der hierin beschriebenen Verfahren durchzuführen. Allgemein werden die Verfahren bei einigen Ausführungsbeispielen seitens einer beliebigen Hardwarevorrichtung durchgeführt. Diese kann eine universell einsetzbare Hardware wie ein Computerprozessor (CPU) sein oder für das Verfahren spezifische Hardware, wie beispielsweise ein ASIC.
  • Die oben beschriebenen Ausführungsbeispiele stellen lediglich eine Veranschaulichung der Prinzipien der vorliegenden Erfindung dar. Es versteht sich, dass Modifikationen und Variationen der hierin beschriebenen Anordnungen und Einzelheiten anderen Fachleuten einleuchten werden. Deshalb ist beabsichtigt, dass die Erfindung lediglich durch den Schutzumfang der nachstehenden Patentansprüche und nicht durch die spezifischen Einzelheiten, die anhand der Beschreibung und der Erläuterung der Ausführungsbeispiele hierin präsentiert wurden, beschränkt sei.

Claims (15)

  1. Vorrichtung zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht und einem ursprünglichen Schlüssel, umfassend: einen Schlüsselgenerator (110; 210) zur Erzeugung eines generierten Schlüssels basierend auf dem ursprünglichen Schlüssel und der ersten Nachricht, und einen Nachrichtenauthentifizierungscodegenerator (120; 220) zur Erzeugung des Nachrichtenauthentifizierungscodes basierend auf dem generierten Schlüssel und der ersten Nachricht, wobei wenigstens zur Realisierung des Schlüsselgenerators (110; 210) oder des Nachrichtenauthentifizierungscodegenerators (120; 220) ein Prozessor eingesetzt wird, wobei der Schlüsselgenerator (110; 210) dazu eingerichtet ist, den generierten Schlüssel durch eine Hash-Berechnung der ersten Nachricht zu erzeugen, oder wobei der Schlüsselgenerator (110; 210) dazu eingerichtet ist, den generierten Schlüssel zu erzeugen, indem für einen Teil der ersten Nachricht eine Hash-Berechnung durchgeführt wird, und wobei der Schlüsselgenerator (110; 210) dazu eingerichtet ist, den generierten Schlüssel unter Einsatz eines kryptographischen Verschlüsselungsalgorithmus basierend auf der Hash-Berechnung der ersten Nachricht zu erzeugen, wobei der kryptographische Verschlüsselungsalgorithmus einen Blockchiffre umfasst.
  2. Vorrichtung nach Anspruch 1, wobei der Schlüsselgenerator (110; 210) dazu eingerichtet ist, den generierten Schlüssel so zu erzeugen, dass die Entropie des generierten Schlüssels nicht geringer ist, als die Entropie des ursprünglichen Schlüssels.
  3. Vorrichtung nach einem der vorherigen Ansprüche, wobei der Schlüsselgenerator (110; 210) dazu eingerichtet ist, den generierten Schlüssel so zu erzeugen, dass, wenn genau ein Bit der ersten Nachricht oder des ursprünglichen Schlüssels geändert wird, sich bei erneuter Erzeugung des generierten Schlüssels im Durchschnitt, hinsichtlich aller möglichen Schlüssel mit einer ersten vordefinierten Bitlänge und aller ersten Nachrichten mit einer zweiten vordefinierten Bitlänge, sich zwischen 45% und 55% der Bits des generierten Schlüssels ändern.
  4. Vorrichtung nach einem der vorherigen Ansprüche, wobei der Schlüsselgenerator (110; 210) dazu eingerichtet ist, AES-Verschlüsselung zur Erzeugung des generierten Schlüssels einzusetzen.
  5. Vorrichtung nach einem der vorherigen Ansprüche, wobei der Schlüsselgenerator (110; 210) dazu eingerichtet ist, die Formel AESk(H(M)) anzuwenden, wobei M die erste Nachricht bezeichnet, wobei H(M) die Hash-Berechnung der ersten Nachricht M bezeichnet, wobei k den ursprünglichen Schlüssel bezeichnet und wobei AESk eine AES-Verschlüsselung unter Einsatz des ursprünglichen Schlüssels k bezeichnet.
  6. Vorrichtung nach einem der vorherigen Ansprüche, wobei der Schlüsselgenerator (110; 210) Absicherungsmittel aufweist, die dafür eingerichtet sind, die Erzeugung des generierten Schlüssels gegen Seitenkanalangriffe abzusichern.
  7. Vorrichtung nach Anspruch 6, wobei die Absicherungsmittel dafür ausgelegt sind, eine Maskierungsoperation hinsichtlich der ersten Nachricht durchzuführen, um eine maskierte Nachricht zu erhalten, wobei der Schlüsselgenerator (110; 210) dafür eingerichtet ist, den generierten Schlüssel basierend auf dem ursprünglichen Schlüssel und der maskierten Nachricht zu erzeugen.
  8. Vorrichtung nach Anspruch 7, wobei die Maskierungsoperation ein Vertauschen von Bits der ersten Nachricht oder eine XOR-, AND- oder OR-Verknüpfung der ersten Nachricht mit einer Bitfolge umfasst.
  9. Vorrichtung nach einem der vorherigen Ansprüche, wobei der Nachrichtenauthentifizierungscodegenerator (120; 220) dafür eingerichtet ist, eine Hash-Berechnung der ersten Nachricht durchzuführen, um den Nachrichtenauthentifizierungscode zu erzeugen.
  10. Vorrichtung nach Anspruch 9, wobei der Nachrichtenauthentifizierungscodegenerator (120; 220) dazu eingerichtet ist, den generierten Schlüssel in einer ersten XOR-Operation mit einer ersten Konstanten zu verknüpfen, wobei der Nachrichtenauthentifizierungscodegenerator (120; 220) dafür ausgelegt ist, den generierten Schlüssel in einer zweiten XOR-Operation mit einer zweiten Konstanten zu verknüpfen.
  11. Vorrichtung nach Anspruch 10, wobei der Nachrichtenauthentifizierungscodegenerator (120; 220) dazu eingerichtet ist, die Formel HMACk'(M) = H((k'⊕ opad)||H((k' ⊕ ipad)||M)) zur Berechnung des Nachrichtenauthentifizierungscodes anzuwenden, wobei M die erste Nachricht ist, wobei k' der generierte Schlüssel ist, wobei ⊕ eine XOR-Operation ist, wobei || eine Konkatenation ist, und wobei H eine Hash-Operation ist.
  12. Vorrichtung zur Überprüfung von Korrektheit und Authentizität einer Nachricht, umfassend: eine Vorrichtung (510) nach einem der Ansprüche 1 bis 11 zur Erzeugung eines ermittelten Nachrichtenauthentifizierungscodes, und eine Vergleichseinheit (520), wobei die Vergleichseinheit (520) dafür eingerichtet ist, den ermittelten Nachrichtenauthentifizierungscode und einen empfangenen Nachrichtenauthentifizierungscode auf Übereinstimmung zu überprüfen, um die Korrektheit und die Authentizität der Nachricht zu überprüfen, wobei wenigstens zur Realisierung der Vorrichtung (510) ein Prozessor eingesetzt wird.
  13. Verfahren unter Verwendung eines Prozessors zur Erzeugung eines Nachrichtenauthentifizierungscodes basierend auf einer ersten Nachricht und einem ursprünglichen Schlüssel, umfassend: Erzeugung (610) eines generierten Schlüssels basierend auf dem ursprünglichen Schlüssel und der ersten Nachricht, und Erzeugung (620) des Nachrichtenauthentifizierungscodes basierend auf dem generierten Schlüssel und der ersten Nachricht, wobei der Schritt der Erzeugung (610) des generierten Schlüssels umfasst, dass der generierte Schlüssel durch eine Hash-Berechnung der ersten Nachricht erzeugt wird, oder wobei der Schritt der Erzeugung (610) des generierten Schlüssels umfasst, dass für einen Teil der ersten Nachricht eine Hash-Berechnung durchgeführt wird, und wobei der generierte Schlüssel unter Einsatz eines kryptographischen Verschlüsselungsalgorithmus basierend auf der Hash-Berechnung der ersten Nachricht erzeugt wird, wobei der kryptographische Verschlüsselungsalgorithmus einen Blockchiffre umfasst.
  14. Verfahren nach Anspruch 13, wobei zur Berechnung des Nachrichtenauthentifizierungscodes die Formel HMACk'(M) = H((k' ⊕ opad)||H((k' ⊕ ipad)||M)) angewendet wird, wobei M die erste Nachricht ist, wobei k' der generierte Schlüssel ist, wobei ⊕ eine XOR-Operation ist, wobei || eine Konkatenation ist, und wobei H eine Hash-Operation ist.
  15. Computerprogramm zur Implementierung eines Verfahrens nach Anspruch 13 oder 14, wenn das Verfahren auf einem Computer oder Prozessor ausgeführt wird.
DE102012201164.1A 2012-01-26 2012-01-26 Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes Active DE102012201164B4 (de)

Priority Applications (4)

Application Number Priority Date Filing Date Title
DE102012201164.1A DE102012201164B4 (de) 2012-01-26 2012-01-26 Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
FR1300123A FR2986631B1 (fr) 2012-01-26 2013-01-21 Dispositif et procede de production d'un code d'authentification d'un message
US13/746,046 US20130195266A1 (en) 2012-01-26 2013-01-21 Apparatus and Method for Producing a Message Authentication Code
CN201310029945.1A CN103312501B (zh) 2012-01-26 2013-01-25 用于生成消息验证码的装置和方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE102012201164.1A DE102012201164B4 (de) 2012-01-26 2012-01-26 Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes

Publications (2)

Publication Number Publication Date
DE102012201164A1 DE102012201164A1 (de) 2013-08-01
DE102012201164B4 true DE102012201164B4 (de) 2017-12-07

Family

ID=48783707

Family Applications (1)

Application Number Title Priority Date Filing Date
DE102012201164.1A Active DE102012201164B4 (de) 2012-01-26 2012-01-26 Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes

Country Status (4)

Country Link
US (1) US20130195266A1 (de)
CN (1) CN103312501B (de)
DE (1) DE102012201164B4 (de)
FR (1) FR2986631B1 (de)

Families Citing this family (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI517655B (zh) * 2013-05-23 2016-01-11 晨星半導體股份有限公司 密碼裝置以及密鑰保護方法
US9762395B2 (en) * 2014-04-30 2017-09-12 International Business Machines Corporation Adjusting a number of dispersed storage units
CN104243159A (zh) * 2014-07-01 2014-12-24 小米科技有限责任公司 业务操作的验证方法、服务器及终端
US9509665B2 (en) 2014-08-11 2016-11-29 Alcatel Lucent Protecting against malicious modification in cryptographic operations
KR102287946B1 (ko) * 2014-09-05 2021-08-09 삼성전자주식회사 데이터 암호화 방법 및 장치
US10097345B2 (en) * 2015-04-14 2018-10-09 PeerNova, Inc. Secure hash algorithm in digital hardware for cryptographic applications
US9876641B2 (en) * 2015-10-08 2018-01-23 The Boeing Company Data dependent authentication keys for differential power analysis resistant authentication
US11296890B2 (en) * 2016-01-13 2022-04-05 Telefonaktiebolaget Lm Ericsson (Publ) Integrity protection
CN105721150B (zh) * 2016-01-26 2018-11-20 广东技术师范学院 一种多变量二次方程的掩码加密方法
DE102017002153A1 (de) * 2017-03-06 2018-09-06 Giesecke+Devrient Mobile Security Gmbh Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
US10460130B1 (en) * 2017-09-18 2019-10-29 Amazon Technologies, Inc. Mechanism to protect a distributed replicated state machine
GB201802582D0 (en) * 2018-02-16 2018-04-04 Nordic Semiconductor Asa Protecting cryptographic key data
CN108599922B (zh) * 2018-04-26 2021-03-30 成都盛拓源科技有限公司 新型含密钥消息完整性认证码的生成方法
JP6797337B2 (ja) * 2018-08-30 2020-12-09 三菱電機株式会社 メッセージ認証装置、メッセージ認証方法及びメッセージ認証プログラム
US11323275B2 (en) * 2019-03-25 2022-05-03 Micron Technology, Inc. Verification of identity using a secret key
US11361660B2 (en) 2019-03-25 2022-06-14 Micron Technology, Inc. Verifying identity of an emergency vehicle during operation
US11233650B2 (en) 2019-03-25 2022-01-25 Micron Technology, Inc. Verifying identity of a vehicle entering a trust zone
US11218330B2 (en) 2019-03-25 2022-01-04 Micron Technology, Inc. Generating an identity for a computing device using a physical unclonable function
CN112737767B (zh) * 2020-12-30 2022-03-15 山东大学 抗差分功耗分析与时间攻击的消息认证码生成方法及系统
CN114640443B (zh) * 2022-03-17 2023-05-09 浙江广厦建设职业技术大学 一种在线工程报价安全交互方法和系统

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5651069A (en) * 1994-12-08 1997-07-22 International Business Machines Corporation Software-efficient message authentication
DE102004001490A1 (de) * 2003-01-10 2004-08-19 Motorola, Inc., Schaumburg Verfahren zur Authentifizierung einer Nachricht
DE60103737T2 (de) * 2001-05-11 2005-07-07 Lucent Technologies Inc. System und Verfahren zur Nachrichtenauthentisierung
US20050254658A1 (en) * 2004-05-03 2005-11-17 Research In Motion Limited System and method for generating reproducible session keys
US20090085780A1 (en) * 2007-10-01 2009-04-02 Natarajan Vijayrangan Method for preventing and detecting hash collisions of data during the data transmission
US20090193261A1 (en) * 2008-01-25 2009-07-30 Mediatek Inc. Apparatus and method for authenticating a flash program

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5511123A (en) * 1994-08-04 1996-04-23 Northern Telecom Limited Symmetric cryptographic system for data encryption
US7249108B1 (en) * 1997-07-15 2007-07-24 Silverbrook Research Pty Ltd Validation protocol and system
US6084969A (en) * 1997-12-31 2000-07-04 V-One Corporation Key encryption system and method, pager unit, and pager proxy for a two-way alphanumeric pager network
JP2002049310A (ja) * 2000-08-04 2002-02-15 Toshiba Corp 暗復号装置、認証装置及び記憶媒体
US20030188183A1 (en) * 2001-08-27 2003-10-02 Lee Lane W. Unlocking method and system for data on media
US7310821B2 (en) * 2001-08-27 2007-12-18 Dphi Acquisitions, Inc. Host certification method and system
US8296558B1 (en) * 2003-11-26 2012-10-23 Apple Inc. Method and apparatus for securing communication between a mobile node and a network
US7404115B2 (en) * 2004-02-12 2008-07-22 International Business Machines Corporation Self-synchronising bit error analyser and circuit
US7228182B2 (en) * 2004-03-15 2007-06-05 Cardiac Pacemakers, Inc. Cryptographic authentication for telemetry with an implantable medical device
US7624269B2 (en) * 2004-07-09 2009-11-24 Voltage Security, Inc. Secure messaging system with derived keys
US7292195B2 (en) * 2005-07-26 2007-11-06 Motorola, Inc. Energy diversity antenna and system
WO2007116487A1 (ja) * 2006-03-31 2007-10-18 Fujitsu Limited メモリ装置、そのエラー訂正の支援方法、その支援プログラム、メモリ・カード、回路基板及び電子機器
JP4810289B2 (ja) * 2006-04-17 2011-11-09 ルネサスエレクトロニクス株式会社 メッセージ認証子生成装置、メッセージ認証子検証装置、及びメッセージ認証システム
US8233623B2 (en) * 2006-05-08 2012-07-31 Qualcomm Incorporated Methods and systems for blackout provisioning in a distribution network
US20080011498A1 (en) * 2006-07-12 2008-01-17 Bruce Leon Catlin Cultivator and blade
CA2662686C (en) * 2006-09-07 2013-11-12 Research In Motion Limited Method and system for establishing a secure over-the-air (ota) device connection
DE102006044668B4 (de) * 2006-09-21 2008-09-04 Continental Automotive Gmbh Element zur Erzeugung eines Magnetfeldes
JP4712017B2 (ja) * 2006-11-13 2011-06-29 韓國電子通信研究院 ストリーム暗号を利用したメッセージ認証コード生成方法とストリーム暗号を利用した認証暗号化方法及びストリーム暗号を利用した認証復号化方法
US8418235B2 (en) * 2006-11-15 2013-04-09 Research In Motion Limited Client credential based secure session authentication method and apparatus
WO2008071795A2 (en) * 2006-12-15 2008-06-19 Boesgaard Soerensen Hans Marti Digital data authentication
US20080175379A1 (en) * 2007-01-23 2008-07-24 Broadcom Corporation Simple pairing to generate private keys for different protocol communications
US8209550B2 (en) * 2007-04-20 2012-06-26 Telefonaktiebolaget Lm Ericsson (Publ) Method and apparatus for protecting SIMLock information in an electronic device
US8055049B2 (en) * 2007-07-18 2011-11-08 Xoran Technologies, Inc. Motion correction for CT using marker projections
JP5201716B2 (ja) * 2007-09-28 2013-06-05 東芝ソリューション株式会社 暗号モジュール配信システム、暗号管理サーバ装置、暗号処理装置、クライアント装置、暗号管理プログラム、暗号処理プログラム、およびクライアントプログラム
US8392708B2 (en) * 2007-10-30 2013-03-05 Hewlett-Packard Development Company, L. P. Auditing data integrity
FR2923305B1 (fr) * 2007-11-02 2011-04-29 Inside Contactless Procede et dispositifs de protection d'un microcircuit contre des attaques visant a decouvrir une donnee secrete
US8533474B2 (en) * 2008-02-27 2013-09-10 Red Hat, Inc. Generating session keys
JP5156540B2 (ja) * 2008-08-22 2013-03-06 株式会社日立製作所 ハッシュ値生成装置
US8891756B2 (en) * 2008-10-30 2014-11-18 Certicom Corp. Collision-resistant elliptic curve hash functions
DE102009024604B4 (de) * 2009-06-10 2011-05-05 Infineon Technologies Ag Erzeugung eines Session-Schlüssels zur Authentisierung und sicheren Datenübertragung
JP5432999B2 (ja) * 2009-06-23 2014-03-05 パナソニック株式会社 暗号鍵配布システム
CN101820620B (zh) * 2009-10-19 2013-04-10 兰州理工大学 一种安全的WiMAX无线网络认证协议
WO2011092138A1 (en) * 2010-01-28 2011-08-04 Koninklijke Kpn N.V. Efficient terminal authentication in telecommunication networks
JP2011254440A (ja) * 2010-06-04 2011-12-15 Toshiba Corp 情報処理装置
WO2011160683A1 (en) * 2010-06-22 2011-12-29 Telefonaktiebolaget Lm Ericsson (Publ) Privacy preserving authorisation in pervasive environments
JP5763943B2 (ja) * 2011-03-24 2015-08-12 株式会社東芝 情報処理装置及びプログラム
WO2013120538A1 (en) * 2012-02-17 2013-08-22 Irdeto Bv Digital rights management

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5651069A (en) * 1994-12-08 1997-07-22 International Business Machines Corporation Software-efficient message authentication
DE60103737T2 (de) * 2001-05-11 2005-07-07 Lucent Technologies Inc. System und Verfahren zur Nachrichtenauthentisierung
DE102004001490A1 (de) * 2003-01-10 2004-08-19 Motorola, Inc., Schaumburg Verfahren zur Authentifizierung einer Nachricht
US20050254658A1 (en) * 2004-05-03 2005-11-17 Research In Motion Limited System and method for generating reproducible session keys
US20090085780A1 (en) * 2007-10-01 2009-04-02 Natarajan Vijayrangan Method for preventing and detecting hash collisions of data during the data transmission
US20090193261A1 (en) * 2008-01-25 2009-07-30 Mediatek Inc. Apparatus and method for authenticating a flash program

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
CHEN. L: NIST Special Publication 800-108 Recommendation for Key Derivation Using Pseudorandom Functions (Revised), October 2009, URL: http://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-108.pdf [abgerufen am 18.05.2017 im Internet] *
KELSEY, J. [et al.]: Secure Applications of Low-Entropy Keys, First International Workshop, ISW'97, Information Security Workshop (ISW 1997), Japan, pp. 121-134 *
KRAWCZYK, H. ; BELLARE, M. ; CANETTI, R.: HMAC – Keyed-hashing for message authentication. In: Internet Engineering Task Force – Request for Comments, February 1997, No. RFC 2104 (11 S.). URL: https://www.rfc-editor.org/rfc/pdfrfc/rfc2104.txt.pdf[abgerufen am 07.04.2017] *
RFC 5869: KRAWCZYK. H. [et al.]: HMAC-based Extract-and-Expand Key Derivation Function (HKDF), May 2010 *

Also Published As

Publication number Publication date
FR2986631B1 (fr) 2018-03-02
FR2986631A1 (fr) 2013-08-09
US20130195266A1 (en) 2013-08-01
CN103312501B (zh) 2017-04-26
CN103312501A (zh) 2013-09-18
DE102012201164A1 (de) 2013-08-01

Similar Documents

Publication Publication Date Title
DE102012201164B4 (de) Vorrichtung und verfahren zur erzeugung eines nachrichtenauthentifizierungscodes
DE102005012098B4 (de) Datenchiffrierprozessor sowie AES-Chiffriersystem und AES-Chiffrierverfahren
DE112015000213B4 (de) Passwortgestützte Berechtigungsprüfung
EP3218893B1 (de) Gehärtete white box implementierung
EP2742643B1 (de) Vorrichtung und verfahren zum entschlüsseln von daten
DE102010002241B4 (de) Vorrichtung und Verfahren zur effizienten einseitigen Authentifizierung
DE602004013206T2 (de) Verfahren und diesbezügliche einrichtung zur hardwareorientierten umsetzung zwischen arithmetik- und boolscher zufallsmaskierung
EP2901611B1 (de) Seitenkanalgeschützte maskierung
DE69911815T2 (de) Selbstkorrigierendes zufallsverschlüsselungssystem und -verfahren
EP3304802B1 (de) Verfahren zur sicherstellung der informationssicherheit von über einen datenbus übertragenen daten sowie datenbussystem
EP3171290B1 (de) Schutz eines computersystems vor seitenkanalattacken
DE60025401T2 (de) Erzeugung eines mathematischen eingeschränkten schlüssels unter verwendung einer einwegfunktion
DE112012000971B4 (de) Datenverschlüsselung
DE102004042826B4 (de) Verfahren und Vorrichtung zur Datenverschlüsselung
DE60105449T2 (de) Verfahren zur Steigerung der Sicherheit eines Verschlüsselungsverfahrens mit öffentlichen Schlüsseln
EP3387636B1 (de) Kryptoalgorithmus mit schlüsselabhängigem maskiertem rechenschritt (sbox-aufruf)
DE10328860B4 (de) Vorrichtung und Verfahren zum Verschlüsseln von Daten
DE102020000814A1 (de) Schlüsselgenerierung und PACE mit Sicherung gegen Seitenkanalangriffe
DE102020129058B3 (de) Datenverarbeitungseinrichtung und verfahren zum kryptographischen verarbeiten von daten
EP1596527A1 (de) Übergang von einer booleschen Maskierung zu einer arithmetischen Maskierung
DE10303723B4 (de) Vorrichtung und Verfahren zum Berechnen von verschlüsselten Daten aus unverschlüsselten Daten oder von unverschlüsselten Daten aus verschlüsselten Daten
DE202021105811U1 (de) Ein leichtgewichtiges Blockverschlüsselungssystem für extrem ressourcenbeschränkte IoT-Geräte
DE202021105568U1 (de) Ein kryptographisches System mit symmetrischem Schlüssel und mehreren privaten Schlüsseln
DE60226007T2 (de) Verfahren und system zur datenverschlüsselung
DE112015006703T5 (de) Nachrichtenauthenticator-Erzeugungsvorrichtung

Legal Events

Date Code Title Description
R012 Request for examination validly filed
R016 Response to examination communication
R018 Grant decision by examination section/examining division
R020 Patent grant now final
R082 Change of representative