-
Ausführungsbeispiele der vorliegenden Erfindung beziehen sich auf eine Erzeugung eines Session-Schlüssels, wie es beispielsweise für eine sichere gegenseitige Authentisierung zwischen zwei Kommunikationspartnern und eine nachfolgende Datenübertragung eingesetzt werden kann.
-
Eine sichere gegenseitige Authentisierung zwischen zwei Kommunikationspartnern, wie beispielsweise zwei Teilnehmerendgeräten in Form eines Lesegeräts und einer kontaktlosen Datenkarte, kann bei einem symmetrischen kryptographischen Verfahren beispielsweise über ein sog. Challenge-Response-Verfahren (ubersetzt etwa Herausforderung-Antwort-Verfahren), wie z. B. einem Zwei- oder Drei-Wege-Challenge-Response-Verfahren, durchgefuhrt werden. Ein Challenge-Response-Verfahren ist ein Authentifizierungsverfahren eines Kommunikationspartners auf Basis von Wissen. Hierbei stellt ein Kommunikationspartner eine Aufgabe (engl. challenge), die der andere losen muss (engl. response), um zu beweisen dass er eine bestimmte Information kennt. Derartige Verfahren sind im Allgemeinen anfällig gegen Seitenkanalangriffe, wie beispielsweise DPA (Differential Power Analysis), EMA (Electro-Magnetic Analysis), usw. D. h., ein Angreifer kann beispielsweise durch Aufzeichnen von Stromprofilen (EM-Abstrahlungsprofilen) bei wiederholten Authentisierungsversuchen zwischen den Kommunikationspartnern mit relativ geringem Aufwand einen geheimen Schlüssel eines der beiden Endgerate rekonstruieren und damit dieses Endgerät prinzipiell klonen.
-
Hardwaretechnische Maßnahmen zum Schutz einer der Authentisierung zugrundeliegenden Verschlüsselung, wie beispielsweise einer Blockverschlusselung, sind dabei relativ kostenintensiv.
-
Die
DE 602 08 273 T2 offenbart ein Verfahren zur Schlüsselübereinkunft in einem sicheren Kommunikationssystem und insbesondere ein Verfahren zur Übertragung vertraulicher Daten zwischen einer Smart Card und einem Zugangsberechtigungsmodul, wobei auf Seite der Smart Card ein erster Zufallsschlüssel generiert wird, auf der Seite des Zugangsberechtigungsmoduls ein zweiter Schlüssel und eine Zufallszahl generiert werden und der zweite Zufallsschlüssel und die Zufallszahl mit einem öffentlichen Schlüssel der Smart Card verschlüsselt und vom Zugangsberechtigungsmodul zur Smart Card übertragen werden. Auf Seite der Smart Card wird der übertragene zweite Zufallsschlüssel und wird die übertragene Zufallszahl unter Verwendung des entsprechenden privaten Schlüssels entschlüsselt. Der erste Zufallsschlüssel und der zweite Zufallsschlüssel werden verkettet und auf der Seite der Smart Card mit der Zufallszahl verschlüsselt und zum Zugangsberechtigungsmodul übertragen. Das Zugangsberechtigungsmodul entschlüsselt den übertragenen ersten Zufallsschlüssel und den zweiten Zufallsschlüssel und überprüft die Integrität des entschlüsselten zweiten Zufallsschlüssels durch Vergleich mit dem ursprünglichen zweiten Zufallsschlüssel. Sowohl die Smart Card als auch das Zugangsberechtigungsmodul kombinieren die Zufallsschlüssel zu einem Geheimsitzungsschlüssel zur Verwendung bei symmetrischer Verschlüsselung und Entschlüsselung der vertraulichen Daten.
-
Die
DE 603 08 384 T2 offenbart eine Vorrichtung zum gesicherten Datenaustausch von zwei Einrichtungen, indem eine erste Vorrichtung eine erste Zufallszahl erzeugt, eine zweite Vorrichtung eine zweite Zufallszahl erzeugt, die erste Zufallszahl mit einem ersten Verschlüsselungsschlüssel verschlüsselt wird und die zweite Zufallszahl mit einem zweiten Verschlüsselungsschlüssel verschlüsselt wird. Zur Verhinderung weiterer Operationen wird ein Sitzungsschlüssel erzeugt und verwendet, um alle oder einen Teil der zwischen zwei Vorrichtungen ausgetauschten Informationen zu verschlüsseln.
-
Die
WO 01/41892 A2 offenbart ein Verfahren und ein System zum sicheren bargeldlosen Spielen, wobei jedes Spielgerät einen intelligenten Datenleser aufweist, der einem Sicherheitsmodul zugeordnet ist, das zwischen dem Datenleser und dem Spielprozessor angeordnet ist.
-
Die Aufgabe der vorliegenden Erfindung besteht somit darin, ein gegenüber herkömmlichen Schutzmaßnahmen verbessertes Konzept gegen Seitenkanalangriffe bereitzustellen.
-
Diese Aufgabe wird gelöst durch eine Vorrichtung mit den Merkmalen des Patentanspruchs 1, ein Verfahren gemäß Patentanspruch 18, sowie einem Computerprogramm gemäß Patentanspruch 24.
-
Ausführungsbeispiele der vorliegenden Erfindung basieren auf der Verwendung eines protokollbasierten Verfahrens, welches den Einsatz einer nicht gegenüber Seitenkanalangriffen geschützten und damit kostengünstigeren Verschlüsselungsimplementierung erlaubt. Ausführungsbeispiele ermöglichen eine gegen Seitenkanalangriffe sichere Ableitung eines sog. „Session Keys” bzw. Session-Schlüssels. D. h., für eine Authentisierung und Sicherung einer nachfolgenden Datenübertragung zwischen zwei Kommunikationspartnern kann von einem individuellen „Root-Key” bzw. Basisschlüssel eines der Endgeräte ein sitzungsspezifischer Einmal-Schlüssel (Session-Schlüssel) abgeleitet werden. Dabei basiert die Ableitung des Session-Schlüssels auf einer Zuhilfenahme von Zufallszahlen, die gemäß Ausführungsbeispielen zwischen den beiden Kommunikationspartnern ausgetauscht werden können. Eine Bereitstellung der Zufallszahlen durch einen Dritten, einer sog. vertrauenswürdigen dritten Partei (Trusted Third Party), ist dabei ebenfalls denkbar.
-
Ausführungsbeispiele der vorliegenden Erfindung werden nachfolgend bezugnehmend auf die beiliegenden Figuren näher erläutert. Es zeigen:
-
1 eine schematische Darstellung eines kryptographischen Protokolls gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
2A ein Blockdiagramm einer Vorrichtung zur Erzeugung eines Session-Schlüssels gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
2B ein Blockdiagramm einer Vorrichtung zur Erzeugung eines Session-Schlüssels gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung.
-
2C ein Blockdiagramm einer Vorrichtung eines Session-Schlussels gemäß einem noch weiteren Ausfuhrungsbeispiel der vorliegenden Erfindung;
-
3 ein Ablaufdiagramm eines Verfahrens zur Erzeugung eines Session-Schlüssels gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
4 eine Darstellung eines Ablaufs eines Authentisierungsprotokolls gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
5a eine detaillierte Darstellung einer Erzeugung eines Session-Schlüssels und einer gegenseitigen Authentisierung gemäß einem ersten Ausführungsbeispiel der vorliegenden Erfindung;
-
5b eine detaillierte Darstellung einer Erzeugung eines Session-Schlüssels und einer gegenseitigen Authentisierung gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung;
-
6 ein Überblicksschema eines Datenaustauschprotokolls gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
7 eine Darstellung einer Berechnung eines aus dem Session-Schlüssel abgeleiteten Schlüssels für eine Datenubertragung zwischen den beiden Kommunikationspartnern, gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
8 eine schematische Darstellung eines zu übertragenden Datenrahmens;
-
9 eine schematische Darstellung einer Erzeugung eines Prüfteils zur Authentifizierung einer Nachricht gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
10 eine schematische Darstellung einer Erzeugung von aufeinanderfolgenden Prüfteilen zur Authentifizierung aufeinanderfolgender Nachrichten gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
11 eine schematische Darstellung eines verschlüsselten Datenrahmens;
-
12 eine schematische Darstellung einer Verschlüsselung eines zu übertragenden Datenrahmens gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
13 eine schematische Darstellung einer Verschlüsselung aufeinanderfolgend zu übertragender Datenrahmen gemäß einem Ausfuhrungsbeispiel der vorliegenden Erfindung;
-
14 eine schematische Darstellung einer Entschlusselung eines empfangenen Datenrahmens gemäß einem Ausführungsbeispiel der vorliegenden Erfindung;
-
15A eine schematische Darstellung eines autonomen nicht linear ruckgekoppelten Schieberegisters gemäß einem Ausführungsbeispiel der vorliegenden Erfindung; und
-
15B eine schematische Darstellung eines nicht linear rückgekoppelten Schieberegisters mit Einkopplung gemäß einem Ausführungsbeispiel der vorliegenden Erfindung.
-
Ausführungsbeispiele der vorliegenden Erfindung ermöglichen eine sichere gegenseitige Authentisierung zweier Kommunikationspartner, die im Nachfolgenden ohne Beschränkung der Allgemeinheit als Terminal bzw. Lesegerät T und kontaktlose Chipkarte P (Proximity Integrated Circuit Card, PICC) bezeichnet werden sollen. Generell sind natürlich auch andere Konfigurationen der beiden Kommunikationspartner, wie z. B. Server-Client-Konfigurationen, vorstellbar. Proximity-Karten werden im Allgemeinen in unmittelbarer Nähe (Proximity) eines Lesegeräts beispielsweise für Zahlungszwecke benutzt. Es kann sich dabei um eine passive Chipkarte, insbesondere eine passive RFID-Chipkarte (RFID = Radio Frequency Identification) handeln, die ihre Energie aus dem Lesegerät bezieht. Derartige Proximity-Karten können beispielsweise bei Frequenzen von 125 kHz oder 13.56 MHz arbeiten.
-
Ferner erlauben Ausführungsbeispiele der vorliegenden Erfindung einen Integritätsschutz von zwischen den beiden Kommunikationspartnern T und P nach der Authentisierung ausgetauschten Nachrichten. Ebenfalls möglich ist ein Schutz der ausgetauschten Nachrichten selbst, d. h. ein Vertraulichkeitsschutz. Dabei konnen sich die Kommunikationspartner nach einer gegenseitigen Authentisierung gemäß einem Ausführungsbeispiel entweder auf einen Datentransfermodus mit Integritätsschutz oder auf einen Datentransfermode mit Vertraulichkeitsschutz einigen. Voraussetzung ist, dass sowohl von dem ersten und dem zweiten Kommunikationspartner eine gemeinsame geheime Information ermittelbar ist, ähnlich wie bei der sog. Private Key Kryptographie.
-
1 zeigt eine schematische Darstellung eines kryptographischen Teils eines Kommunikationsprotokolls gemäß einem Ausführungsbeispiel der vorliegenden Erfindung. Der kryptographische Teil des Protokolls besteht dabei aus zwei Teilen: einer Authentisierung 10 und einem darauffolgenden Datentransfer 12.
-
Während der Authentisierung 10 authentisieren sich die beiden Kommunikationspartner P und T gegenseitig. Dies kann gemäß Ausführungsbeispielen im Rahmen eines Drei-Wege-Challenge-Responseprotokolls geschehen. Das Ergebnis der Authentisierung 10 ist entweder eine Akzeptanz oder eine Ab- bzw. Zurückweisung des jeweils anderen Kommunikationspartners. Im Falle einer Akzeptanz resultiert aus der Authentisierung 10 ein gemeinsames zeitweises Geheimnis, ein sog. Session Key bzw. Session-Schlüssel k0, und eventuell einige zusätzliche Informationen, welche für den darauffolgenden Datentransfer 12 benötigt werden.
-
Nach einer erfolgreichen Authentisierung 10, kann der erste Kommunikationspartner P Teile seines Speichers für einen Zugriff von dem zweiten Kommunikationspartner T freigeben. Dadurch kann der zweite Kommunikationspartner T bestimmte Datenblöcke, für die er entsprechende Zugriffsrechte besitzt, lesen und/oder schreiben. Dabei kann das Lesen/Schreiben aus/in P's nicht flüchtigen Speicher (NVM = Non Volatile Memory) von P durchgeführt werden. Die Befehle dafür können aber von dem zweiten Kommunikationspartner T stammen. Dies gilt insbesondere für Ausführungsbeispiele, in denen der erste Kommunikationspartner P eine kontaktlose Chipkarte und der zweite Kommunikationspartner T ein Lesegerät ist.
-
Um den Datentransfer 12 abzusichern, existieren gemaß Ausführungsbeispielen zwei Maßnahmen:
- – Ein Datenintegritätsschutz-Mechanismus, auch bezeichnet als MAC-Modus (MAC = Message Authentication Code).
- – Einen Vertraulichkeitsschutzmechanismus, bezeichnet als Verschlüsselungsmodus.
-
Gemaß Ausführungsbeispielen kann lediglich einer der Schutzmodi zu einer bestimmten Zeit für den Datentransfer 12 zwischen den beiden Kommunikationspartnern P und T benutzt werden. Der Schutz des Datentransfers 12 ist durch den während der vorhergehenden Authentisierung ermittelten Session-Schlüssel k0 an die Authentisierung 10 gebunden.
- – Für den Integritätsschutz wird der Session-Schlüssel k0 gemäß Ausführungsbeispielen als Basisschlüssel verwendet, um sog. Message Authentication Codes (MAC), d. h., Prüfteile zur Authentifizierung einer gesendeten Nachricht zu generieren.
- – Für den Vertraulichkeitsschutz wird der Session-Schlussel k0 als Basisschlussel verwendet, um ubermittelte Datenpakete zu verschlusseln.
-
Nachdem anhand von 1 ein Überblick über das erfindungsgemäße Konzept gegeben wurde, sollen anhand der weiteren Figuren Ausführungsbeispiele der vorliegenden Erfindung detaillierter beschrieben werden.
-
2A zeigt dazu schematisch eine Vorrichtung 20 zur Erzeugung eines Session-Schlüssels k0, der einem ersten Kommunikationspartner und einem zweiten Kommunikationspartner bekannt ist, für den ersten Kommunikationspartner. Dabei wird der Session-Schlussel k0 aus einer geheimen Information kIV, die von dem ersten und dem zweiten Kommunikationspartner ermittelbar ist, erzeugt. Die Vorrichtung 20 ist dazu dem ersten Kommunikationspartner zugeordnet. Welcher der beiden hier betrachteten Kommunikationspartner P und T dabei als erster oder zweiter Kommunikationspartner bezeichnet wird, ist vollkommen unerheblich.
-
Die Vorrichtung 20 umfasst eine Einrichtung 22 zum Erhalten einer Zufallszahl r. Zumindest ein Teil rP oder rT der Zufallszahl r kann einer Einrichtung 24 zum Berechnen des Session-Schlüssels k0 unter Verwendung einer Verknüpfung des zumindest einen Teils der Zufallszahl und eines Teils der geheimen Information kIV zugeführt werden. Für den Erhalt der geheimen Information kIV ist eine Einrichtung 26 vorgesehen. Der berechnete Session-Schlüssel k0 kann dann von einer Einrichtung 28 für eine Kommunikation mit dem zweiten Kommunikationspartner (nicht gezeigt) verwendet werden. Für die Kommunikation mit dem zweiten Kommunikationspartner ist eine Schnittstelle 29 mit einem Eingang 29a und einem Ausgang 29b vorgesehen.
-
Je nachdem, in welchem Kommunikationspartner die Vorrichtung 20 zur Erzeugung des Session-Schlüssels k0 eingesetzt wird, können sich unterschiedliche Anforderungen an die einzelnen Blöcke bzw. Einrichtungen der Vorrichtung 20 ergeben. Wird die Vorrichtung 20 beispielsweise in einer Proximity-Karte P eingesetzt, so sind gemäß Ausführungsbeispielen verschiedene Ressourcen vorgesehen, um eine sichere Authentisierung und einen sicheren Datentransfer zwischen P und T zu gewährleisten. Ein Blockdiagramm einer in einer Proximity-Karte P integrierten Vorrichtung 20 ist in 2B gezeigt.
-
Die Einrichtung 26 zum Erhalten der geheimen Information kIV ist gemäß diesem Ausführungsbeispiel ausgebildet, um eine chip-individuelle Identifikation IV des ersten Kommunikationspartners, d. h. also beispielsweise der Proximity-Karte P, bereitzustellen und daraus die geheime Information kIV abzuleiten. Dies kann auf herstellerspezifische Art und Weise geschehen.
-
Die Einrichtung 22 zum Erhalten der Zufallszahl umfasst gemaß Ausführungsbeispielen einen kryptographischen Zufallszahlengenerator RNG als Hardwaremodul. Damit kann zumindest ein Teil rP der Zufallszahl r erzeugt werden.
-
Gemäß einem Ausführungsbeispiel umfasst die Einrichtung 24 zum Berechnen des Session-Schlüssels k0 ein Hardwaremodul für eine Ver- bzw. Entschlüsselung. Dabei kann es sich um eine Blockverschlüsselung, insbesondere um eine Blockverschlüsselung gemäß dem AES-Standard (AES = Advanced Encryption Standard), handeln. Die Verknüpfung des zumindest einen Teils rP der Zufallszahl und des Teils der geheimen Information kIV kann seitens einer kontaktlosen Chipkarte P von einem Hardwaremodul NLM durchgeführt werden. Bei der Verknüpfung handelt es sich dabei gemaß einem Ausführungsbeispiel um eine nichtlineare Verknupfung bzw. Abbildung (NLM = Non Linear Map).
-
Bei einem Lesegerät T kann im Allgemeinen davon ausgegangen werden, dass es sich in einer gegen Angriffe gesicherten Umgebung befindet. Daher sind an die hardwaretechnische Implementierung eines Lesegerätes weniger sicherheitsrelevante Anforderungen zu stellen. Rein vom schematischen Aufbau unterscheidet sich daher eine seitens eines Lesegeräts T integrierte Vorrichtung 20 zur Erzeugung des Sessionschlüssels k0 nicht von einer seitens einer Chipkarte P umfassten Vorrichtung 20 zur Erzeugung des Session-Schlüssels k0. Gemäß Ausfuhrungsbeispielen wird lediglich die geheime Information kIV seitens des Lesegerate T auf andere Weise erhalten, weshalb es prinzipielle Unterschiede zwischen den Kommunikationspartnern im Hinblick auf die Einrichtung 26 geben kann. Dies ist in 2C gezeigt.
-
Seitens eines Lesegeräts T kann die Einrichtung zum Erhalten der geheimen Information kIV ausgebildet sein, um die geheime Information kIV basierend auf einer gerätespezifischen Identifikation IV der Chipkarte P und einem Generalschlüssel kM zu erhalten. Dabei konnen der Generalschlussel kM und die gerätespezifische Identifikation IV einer Schlüsselgewinnungsfunktion KD zugeführt werden, um kIV zu ermitteln.
-
Bevor detaillierter auf ein Ausführungsbeispiel eines erfindungsgemäßen Verfahrens zur Erzeugung eines Session-Schlussels eingegangen wird, soll anhand von 3 ein grober Überblick über die Verfahrensschritte gegeben werden.
-
Dabei können die einzelnen Verfahrensschritte von jedem der beiden Kommunikationspartner durchgeführt werden. Ebenso können die Verfahrensschritte aber auch unterschiedlich auf die beiden Kommunikationspartner aufgeteilt werden. Schließlich ist es ebenso denkbar, dass eine dritte glaubwürdige Identität die Verfahrensschritte durchführt.
-
In einem ersten Schritt 32 wird eine Zufallszahl r oder ein Teil davon erhalten. In einem zweiten Schritt 34 wird der Session-Schüssel k0 unter Verwendung einer Verknüpfung zumindest eines Teils der Zufallszahl und eines Teils der geheimen Information kIV berechnet. Daraufhin wird in einem dritten Schritt 36 der berechnete Session-Schlüssel k0 für eine Kommunikation zwischen den beiden Kommunikationspartnern P und T verwendet.
-
Für die nachfolgende detaillierte Beschreibung wird folgende mathematische Notation verwendet:
Mathematische Gleichheit zweier Ausdrücke x und y wird ausgedruckt durch x = y, (1) wobei eine Zuweisung eines Werts x zu einer Variablen y geschrieben wird als y := x. (2)
-
Eine Verkettung z von zwei Binärzahlen x und y ist z := x||y. (3)
-
Eine Modulo-2-Addition bzw. bitweises Exklusiv-ODER zweier binärer Zahlen x und y wird geschrieben als z := x XOR y (4)
-
Eine Verschlüsselung eines 2x-Bit Datenblocks m mittel eines 2y-Bit Schlüssels k wird nachfolgend gemäß c := AES(key = k, m) (5) ausgedruckt, wobei Ausführungsbeispiele der vorliegenden Erfindung eine Blockverschlüsselung, insbesondere eine Verschlüsselung gemäß dem AES-Standard vorsehen. Dementsprechend wird eine Entschlüsselung als m := AES–1(key = k, c) (6) bezeichnet, wobei es sich um eine Blockentschlüsselung gemäß dem AES-Standard handeln kann.
-
Ein Ablaufdiagramm zur Erzeugung des Session-Schlüssels k0 und einer gegenseitigen Authentisierung der zwei Kommunikationspartner P und T gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist in dem Ablauf-/Sequenzdiagramm in 4 gezeigt.
-
Im Folgenden werden zu jedem Schritt seitens des ersten Kommunikationspartners P und des zweiten Kommunikationspartners T detaillierte Erlauterungen unter Berücksichtigung einer Ausführungsreihenfolge der individuellen Schritte gegeben. Fur das anhand von 4 dargestellte Ausführungsbeispiel ist die beschriebene Reihenfolge der einzelnen Schritte wichtig. Die Schritte werden dabei mit P0, P1, ..., n bzw. T0, T1, ..., Tn bezeichnet, wobei P den ersten Kommunikationspartner, T den zweiten Kommunikationspartner und die Indizes n die zeitliche Reihenfolge bedeuten. Schritte, welche gleichzeitig ausgeführt werden können, oder welche vertauscht werden können, um eine Implementierung zu erleichtern, werden explizit hervorgehoben. Für eine vereinfachte Darstellung wird jedem Schritt auch ein Name gegeben.
-
P1: Erzeugen einer Zufallszahl seitens des ersten Kommunikationspartners P:
-
Der On-Chip-Zufallsgenerator RNG kann gestartet werden, um, gemäß einem Ausfuhrungsbeispiel, zwei Zufallszahlen rp und RP zu erzeugen. RP kann gemäß Ausführungsbeispielen 128 Bit breit sein und als sog. „Challenge” bzw. Herausforderung an den zweiten Kommunikationspartner T gesendet werden. Gemäß einem Ausführungsbeispiel ist rP 32 Bit breit und kann zur Berechnung des Session-Schlüssels k0 genutzt werden. RP und rP werden als Binärzahlen mit unabhängig und gleichverteilten Zufallsbits angenommen. Gemäß einem Ausführungsbeispiel ist die Einrichtung 22 zum Erhalten der Zufallszahl also angepasst, um zumindest einen ersten Teil der Zufallszahl zufällig oder pseudozufällig zu ermitteln.
-
P2: Erste Nachricht vom ersten Kommunikationspartner P zum zweiten Kommunikationspartner T:
-
Gemaß Ausfuhrungsbeispielen verkettet der erste Kommunikationspartner P seine Geräteidentifikation IV, den P-seitigen Session-Schlüssel-Zufallswert rP und die P-seitige zufällige Challenge RP zu einer ersten Nachricht M1, welche zu dem zweiten Kommunikationspartner T übertragen wird: M1: = IV||rp||RP. (11)
-
D. h., nach dem Erhalten der Zufallszahlen rP und RP, wird rP zusammen mit RP und der gerätespezifischen Identifikation IV an den zweiten Kommunikationspartner T ubermittelt.
-
P3: Ermitteln der geheimen Information kIV seitens des ersten Kommunikationspartners P:
-
Die geheime Information kIV kann seitens P durch herstellerspezifische Maßnahmen, die die geheime Information kIV vor Angriffen schützen, erhalten werden.
-
T4: Erzeugen einer Zufallszahl seitens des zweiten Kommunikationspartners T:
-
Die Einrichtung 22 zum Erhalten der Zufallszahl bzw. der Zufallszahlengenerator RNG seitens des zweiten Kommunikationspartners T kann gestartet werden, um zwei Zufallszahlen rT und RT zu erhalten. Dabei kann RT gemäß Ausführungsbeispielen 128 Bit breit sein und als „Challenge” dienen, die zu dem ersten Kommunikationspartner P ubertragen wird. rT kann gemäß Ausführungsbeispielen 32 Bit breit sein und zur Berechnung des Session-Schlüssels k0 verwendet werden. RT und rT umfassen beide unabhängig und gleichverteilte Zufallsbits.
-
T5: Ermittlung der geheimen Information kIV seitens des zweiten Kommunikationspartners T:
-
Nach einem Empfang der ersten Nachricht M1 des ersten Kommunikationspartners P (Schritt P2), kann der zweite Kommunikationspartner T die geheime Information, d. h., den individuell geheimen Schlussel kIV des ersten Kommunikationspartners, beispielsweise von einem Generalschlüssel kM zusammen mit der erhaltenen geratespezifischen Identifizierung IV mittels einer Schlüsselgewinnungsfunktion KD ableiten: kIV := KD(kM, IV). (14)
-
Eine Definition der Schlusselgewinnungsfunktion KD kann herstellerspezifisch sein und hat damit keinen Einfluss auf das erfindungsgemaße Protokoll. Seitens eines Lesegeräts T kann die geheime Information kIV kann also mittels einer Schlusselgewinnungsfunktion KD basierend auf einem Generalschlüssel kM und einer übermittelten gerätespezifischen Identifikation IV der Chipkarte P ermittelt werden.
-
T6: Berechnen des Session-Schlüssels k0 seitens des zweiten Kommunikationspartners T:
-
Der Session-Schlüssel k0 wird unter Verwendung einer Verknüpfung SK zumindest eines Teils der Zufallszahl und eines Teils der geheimen Information kIV berechnet. Dazu sei x = (x0, x1, ..., x127) ∊ GF(2)128 und y = (y0, y1, ..., y31) ∊ GF(2)32, wobei GF(2)n einen Galoiskörper, also eine Menge mit einer endlichen Anzahl von 2n Elementen bedeutet, auf der die Grundoperationen Addition, Subtraktion, Multiplikation und Division definiert sind. Dann bedeutet eine Funktion EXT: GF(2)128 → GF(2)32 (15) allgemein eine Extraktion von 32 beliebigen Bits eines 128 Bit-Werts. Gemäß Ausführungsbeispielen handelt es sich um die Extraktion der 32 niedrigwertigsten Bits. Die Funktion PAD: GF(2)32 → GF(2)128 (16) bezeichnet hingegen ein im Allgemeinen beliebiges Auffüllen eines 32 Bit-Werts zu einem 128 Bit-Wert. D. h., PAD bezeichnet eine Bitauffullvorschrift. Gemaß Ausführungsbeispielen handelt es sich um ein Auffüllen eines 32 Bit-Werts mit Nullen zu einem 128 Bit-Wert.
-
Gemaß einem Ausfuhrungsbeispiel berechnet der zweite Kommunikationspartner T einen gemeinsamen und einzigartigen Session-Schlüssel k0 gemäß k0 = SK(kIV, rp, rT). Dabei bedeutet SK eine Verknupfung von kIV und zumindest einem Teil (rp, rT) einer Zufallszahl r in Form einer Session-Schlüssel-Berechnungsfunktion. Gemaß einem Ausführungsbeispiel kann der Session-Schlüssel folgendermaßen berechnet werden:
SK: k := NLM(EXT(kIV), rP), (17) k' := AES(key = PAD(kP), kIV), (18) k0 := AES(key = PAD(rT), k'). (19)
-
D. h., in einem ersten Unterschritt (Gl. 17) kann eine nichtlineare Abbildung bzw. Verknüpfung von 32 Bits der geheimen Information kIV und dem 32 Bit-Zufallswert rP gemäß kp := NLM(EXT(kIV), rP) gebildet werden, wobei gilt: NLM: GF(2)32 × GF(2)32 → GF(2)32,
z = NLM(x, y) (20)
-
D. h., gemäß Ausführungsbeispielen ist die Einrichtung 24 zum Berechnen des Session-Schlussels k0 angepasst, um den Session-Schlüssel unter Verwendung einer nichtlinearen Verknüpfung NLM des zumindest einen Teils rP der Zufallszahl und des Teils EXT(kIV) der geheimen Information kIV zu berechnen. Eine Aufgabe der nichtlinearen Verknüpfung NLM ist die Verknüpfung des chip-individuellen Geheimnisses kIV und der öffentlich zugänglichen Zufallszahl rP, derart, dass keine Information bzgl. kIV mittels eines Seitenkanal- bzw. DPA-Angriffs erhalten werden kann. Gemäß Ausführungsbeispielen werden das 128 Bit-Geheimnis kIV und die 32-Bit-Zufallsvariable rP zu einem zufälligen 32-Bit Session-Schlüsselvorläuferwert kP kombiniert. Der letztendliche Session-Schlussel k0 kann danach basierend auf dem Vorläuferwert kP bestimmt werden. Formal kann die nichtlineare Verknüpfung gemaß Gl. (20) definiert werden. Da kP gemaß Ausführungsbeispielen die einzige zufallige Basis für den Session-Schlussel k0 ist, konnen gemäß dem hier beschriebenen Beispiel max. 232 verschiedene Session-Schlüssel erzeugt werden. Daher ist es ausreichend, lediglich 32 Bits von kIV als Eingang zu der nichtlinearen Verknüpfung NLM zu verwenden. Selbstverstandlich kann aber auch eine andere Anzahl von Bits verwendet werden, wie z. B. 16, 64, 128, usw.
-
Ein nichtlinear rückgekoppeltes Schieberegister (NLFSR = Non-Linear Feedback Shift Register) kann als hocheffiziente Implementierung der nichtlinearen Verknüpfung NLM verwendet werden. Ein nichtlinear rückgekoppeltes Schieberegister hat die Eigenschaft, dass es einen Nullzustand, d. h., einen Zustand, indem alle Registerzellen mit Null initialisiert werden, beibehalt. Jeder Anfangszustand verschieden von Null wird sich beispielsweise bei 32 Registerzellen genau nach 232 – 1 Taktzyklen wiederholen. In anderen Worten ausgedrückt wiederholt sich ein Zustand des Schieberegisters, falls es autonom betrieben wird, mit einer Periode von 232 – 1.
-
Eine schematische Darstellung einer möglichen Implementierung eines nichtlinear rückgekoppelten Schieberegisters gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist in 15A gezeigt.
-
Sämtliche Inhalte der 32 Registerzellen D0 bis D31 werden der Funktion f zugeführt. Nach jedem Takt kann ein Inhalt einer Registerzelle an eine benachbarte Registerzelle weitergegeben werden, wie es durch die in 15A eingezeichneten Pfeile angedeutet ist. D. h., der Inhalt der Registerzelle D1 wird an die Registerzelle D0 weitergegeben der Inhalt der Registerzelle D2 wird an die Registerzelle D1 weitergegeben usw. Das Ergebnis der Funktion f wird in Registerzelle D31 geschrieben, nachdem sie ihren vorhergehenden Wert an Zelle D30 weitergegeben hat.
-
Eine mögliche Berechnung der nicht linearen Verknüpfung NLM mittels des NLFSR impliziert gemäß einem Ausfuhrungsbeispiel die folgenden Schritte:
- 1. Anfangszustand des NLFSR setzen:
Lade rP[0 ... 31] in die Registerzellen D[0 ... 31].
- 2. Einschieben des Teils der geheimen Information:
Der Teil der geheimen Information kIV[0 ... 31] wird sequentiell gemäß der Reihenfolge kIV[0], kIV[1], kIV[2], ..., kIV[31] in das NLFSR eingekoppelt, so wie es in 15B dargestellt ist. Dabei wird das NLFSR nach jedem Eingekoppelschritt getaktet. D. h., das Einschieben des Teils kIV[0 ... 31] benötigt TSIK = 32 Taktzyklen.
- 3. Verknüpfen
Das NLFSR wird autonom für eine Zeit TMIX = 64 Zyklen getaktet. D. h., währen dieser Zeit TMIX wird nichts in das Register eingeschoben bzw. eingekoppelt. Nach 64 Taktzyklen bildet der Registerinhalt T[0 ... 31] den Session-Schlüssel-Vorlauferwert kP.
-
Gemäß einem weiteren Ausführungsbeispiel der vorliegenden Erfindung kann die nichtlineare Verknüpfung NLM anstatt mittels eines nichtlinear rückgekoppelten Schieberegisters auch basierend auf einem irreduziblen Polynom f(X), also einem Polynom, das sich nicht als Produkt zweier nicht trivialer Polynome schreiben lässt, realisiert werden.
-
Mit x = (x0, x1, ..., x31), y = (x0, y1, ..., y31), z = (z0, z1, ..., z31) kann z = NLM(x, y) beispielsweise gemäß z31X31 + ... + z1X1 + z0 =
(x31X31 + ... + x1X1 + x0)·(y31X31 + ... + y1X1 + y0)mod f(X) (21) oder kurz z = x·y mod f ermittelt werden. Da es sich hier um eine Multiplikation innerhalb des endlichen Körpers GF(232) handelt, gilt NLM(x, NLM(y1, y2)) = NLM(NLM(x, y1), y2). Aus diesem Grund kann eine Implementierung von Gl. (17) gemäß rP := NLM(r1, r2), (22) k'P := NLM(EXT(kIV), r1), (23) kP := NLM(k'P, r2) (24) gegen DPA-Angriffe abgesichert werden, sofern EXT(kIV) ≠ (0, 0, ..., 0). Gemäß diesem Ausführungsbeispiel wird die nichtlineare Verknüpfung gemäß Gl. (17) in zwei nichtlineare Verknupfungen gemäß den Gln. (23) und (24) aufgeteilt. Dazu generiert der Zufallszahlengenerator RNG in einer alternativen Ausführungsform des Schritts P1 drei Zufallswerte r1, r2 und RP. RP kann gemäß Ausführungsbeispielen 128 Bit breit sein und wird als sog. „Challenge” bzw. Herausforderung an den zweiten Kommunikationspartner T gesendet werden. r1 und r2 können 32 Bit breit sein und werden zur Berechnung des Session-Schlüssels k0 genutzt. RP und r1, r2 werden als Binärzahlen mit unabhängig und gleichverteilten Zufallsbits angenommen. Der erste Kommunikationspartner P berechnet rP := NLM(r1, r2) und speichert r1 und r2 in einem temporären Speicher.
-
Eine Realisierung von NLM mit dem irreduziblen Polynom f(X) verwendet gemäß einem Ausführungsbeispiel hauptsächlich ein linear rückgekoppeltes Schieberegister (LFSR), welches durch das Polynom f(X) definiert wird, zusammen mit einem zweiten Register, welches das erste Argument x der Funktion z = NLM(x, y) enthält. Dabei ist das zweite Register über logische UND- und XOR-Gatter mit dem LFSR gekoppelt. Der Wert z kann beispielsweise folgendermaßen berechnet werden:
- 1. Setze alle Registerzellen des LFSR zu Null:
- 2. Lade Registerzellen X1 des zweiten Registers mit dem Wert xi(i = 0, ..., 31)
- 3. Einkoppeln der Werte y31, y30, ..., y0 in die UND-Gatter für eine Zeit T = 32 Taktzyklen, um y mit x zu verknüpfen.
- 4. Nach 32 Taktzyklen bildet der Registerinhalt des LFSR den Wert z = (z0, z1, ..., z31)
-
D. h., die Einrichtung 24 zum Berechnen des Session-Schlüssels k0 ist gemäß einem Ausfuhrungsbeispiel angepasst, um die nichtlineare Verknupfung NLM mittels eines linear ruckgekoppelten Schieberegisters zu implementieren, welches durch ein irreduzibles Polynom f(X) definiert wird, so dass ein Ergebnis der nichtlinearen Verknüpfung (NLM) von einer Modulo-Operation einer multiplikativen Verknüfpung des zumindest eines Teils der Zufallszahl und dem Teil der geheimen Information kIV mit dem irreduziblen Polynom f(X) abhängt (vgl. Gl. 23 i. V. m. Gl. 21).
-
Mittels einer adäquaten Implementierung der nichtlinearen Verknüpfung NLM kann eine signifikante Reduktion von Seitenkanallecks wahrend der Generierung des Session-Schlüssels k0 erreicht werden – und zwar in einem Maße, so dass DPA-Angriffe nahezu unmöglich werden, selbst für geübte Angreifer. Weiterhin kann die Berechnung des Session-Schlüssels k0 durch die nichtlineare Verknüpfung NLM beschleunigt werden.
-
In einem auf die nichtlineare Verknüpfung NLM folgenden Schritt wird die geheime Information kIV mit dem Session-Schlussel-Vorläuferwert kP gemäß Gl. (18) verknüpft. Dabei handelt es sich bei der Verknüpfung AES (.,.) um einen Verschlüsselungsalgorithmus. Gemäß Ausführungsbeispielen handelt es sich bei dem Verschlüsselungsalgorithmus AES um eine Blockverschlüsselung bzw. Blockchiffre. Insbesondere kann eine Blockverschlüsselung gemaß dem sogenannt Advanced Encryption Standard (AES) verwendet werden. D. h., gemaß Ausführungsbeispielen ist die Einrichtung 24 zum Berechnen des Session-Schlüssels k0 angepasst, um einen aus der nichtlinearen Verknüpfung NLM abgeleiteten Wert kP als Schlüssel für eine Verschlusselung AES zu verwenden, um die geheime Information kIV oder einen daraus abgeleiteten Wert zu verschlüsseln und, basierend auf der Verschlüsselung den Session-Schüssel k0 zu erhalten.
-
Gemaß Ausfuhrungsbeispielen ist es auch moglich, dass lediglich der erste Kommunikationspartner P eine Zufallszahl rP bestimmt, nicht jedoch der zweite Kommunikationspartner T. In diesem Fall wäre der aus der Verschlusselung resultierende Wert k' gemaß Gl. (18) bereits der Session-Schlussel.
-
In dem hier diskutierten Ausführungsbeispiel kann die Verschlüsselung gemäß Gl. (18) jedoch durch die zweite Zufallszahl rT weiter verbessert werden, indem in einem dritten Schritt (Gl. 19) das Zwischenergebnis k' mit dem zweiten Zufallswert rT gemäß k0 := AES(key = PAD(rT), k') (22) verknüpft wird, um schließlich den gemeinsamen Session-Schlüssel k0 zu erhalten. Werden die Gln. (17)–(19) zusammengefasst, ist die Einrichtung 24 zum Berechnen des Session-Schlussels k0 gemäß Ausfuhrungsbeispielen angepasst, um den Session-Schlüssel k0 basierend auf k0 = AES(PAD(rT), (AES(PAD(NLM(EXT(kIV), rP)), kIV)) (23) zu berechnen, wobei rP eine erste Zufallszahl, rT eine zweite Zufallszahl und kIV die geheime Information bedeutet, und, wobei NLM(.,.) der nichtlinearen Verknüpfung, EXT(.) einer Extraktionsvorschrift, PAD(.) einer Bitauffüllvorschrift und AES(.,.) einer Blockverschlusselung gemäß dem Advanced Encryption Standard entspricht.
-
Des Weiteren ist es vorstellbar, dass die Schritte gemaß den Gln. (18) und (19) durch einem einzelnen Verschlüsselungsschritt ersetzt werden, beispielsweise gemäß k0 := AES(key = PAD2(kP)XOR PAD(rT), kIV), (24) wobei die Funktion PAD2: GF(2)32 → GF(2)128 (25) ein Auffullen eines 64-Bit Werts, der aus einer Verdopplung der 32 Bits des Eingabewerts y resultiert, bedeutet. Insbesondere kann der 64-Bit Wert mit Nullen aufgefullt werden.
-
D. h., gemäß einem Ausführungsbeispiel ist die Einrichtung 22 zum Erhalten der Zufallszahl angepasst, um eine erste Zufallszahl rP zufällig oder pseudo-zufallig zu ermitteln und um eine zweite Zufallszahl rT von dem anderen Kommunikationspartner zu erhalten. Die Einrichtung 24 zum Berechnen des Session-Schlüssels k0 ist angepasst, um den Session-Schlüssel k0 basierend auf einer Verschlüsselung AES eines aus der geheimen Information kIV abgeleiteten Werts mit einem aus der ersten rP und zweiten Zufallszahl rT abgeleiteten Schlüssel zu berechnen. Gemäß einem weiteren Ausführungsbeispiel ist die Einrichtung 22 zum Erhalten der Zufallszahl angepasst, um eine erste Zufallszahl kP basierend auf einer nichtlinearen Verknüpfung NLM einer zufällig oder pseudo-zufällig ermittelten Zufallszahl rP oder einem daraus abgeleiteten Wert und einem Teil EXT(kIV) der geheimen Information kIV zu ermitteln und, um eine zweite Zufallszahl rT von dem anderen Kommunikationspartner zu erhalten. Die Einrichtung 24 zum Berechnen des Session-Schlüssels k0 ist angepasst, um den Session-Schlüssel k0 basierend auf einer Verschlüsselung AES eines aus der geheimen Information kIV abgeleiteten Werts mit einem aus der ersten kP und zweiten Zufallszahl rT abgeleiteten Schlussel zu berechnen (vgl. Gl. 24).
-
T7: Response-Berechnung seitens des zweiten Kommunikationspartners T
-
In dem Schritt T7 berechnet der zweite Kommunikationspartner T eine „Response” bzw. Antwort cP zu der „Challenge” RP des ersten Kommunikationspartners P, wobei dazu der Session-Schlüssel des Schritts T6 genutzt wird: cP := AES(key = k0, RP) (26)
-
T8: Zweite Nachricht von dem zweiten Kommunikationspartner T zu dem ersten Kommunikationspartner P
-
In Schritt T8 werden seitens des zweiten Kommunikationspartners T die in Schritt T7 berechnete Response cP, der seitens des zweiten Kommunikationspartners T bestimmte Zufallswert rT und die zufällige Challenge RT zu einer zweiten Nachricht M2 verkettet. Diese Nachricht M2 wird von dem zweiten Kommunikationspartner T zu dem ersten Kommunikationspartner P übermittelt: M2 := cP||rT||RT. (27)
-
Der zweite Kommunikationspartner T ermittelt also gemäß einem Ausführungsbeispiel zunächst basierend auf einer Verknüpfung AES von k0 und RP über einen kryptographischen Algorithmus eine Antwort auf die Challenge RP des ersten Kommunikationspartners P (Gl. 26) und übermittelt diese zusammen mit der zweiten Zufallszahl rT und der Zufallschallenge RT an den ersten Kommunikationspartner P.
-
P9: Berechnung des Session-Keys k0 seitens des ersten Kommunikationspartners P:
-
Nachdem der erste Kommunikationspartner P die zweite Nachricht M2 mit der zweiten Zufallszahl rT erhalten hat, kann seitens des ersten Kommunikationspartners P ebenfalls der gemeinsame Session-Schlüssel gemäß k0 = SK(kIV, rP, rT) berechnet werden, indem seitens des ersten Kommunikationspartners P die gleichen drei Schritte durchgefuhrt werden, wie die bereits anhand der Gln. (17)–(19) beschriebenen Schritte des zweiten Kommunikationspartners T: kp = NLM(EXT(kIV), rP), (28) k' = AES(key = PAD(kP), kIV), (29) k0 = AES(key = PAD(rT), k'). (30)
-
Die ersten beiden Schritte, d. h. die Berechnung von kP und k' konnen auch bereits vor dem Empfang der zweiten Nachricht M2 ausgefuhrt werden. Hier soll nochmals erwähnt werden, dass der dritte Schritt, d. h. die Berechnung von k0 gemäß Gl. (30) nur dann durchzuführen ist, wenn beispielsweise seitens des zweiten Kommunikationspartners T die zweite Zufallszahl rT bestimmt wird. Wie vorher bereits erwähnt, umfassen Ausführungsbeispiele der vorliegenden Erfindung auch die Fälle, dass eine Zufallszahl lediglich seitens des ersten Kommunikationspartners P oder von einem vertrauenswürdigen Dritten ausgewürfelt und den Kommunikationspartnern P, T bereitgestellt wird. Der Schritt gemäß Gl. (30) dient somit zur zusätzlichen Steigerung der Sicherheit der Schlüsselberechnung. Gemaß dem hier beschriebenen Ausführungsbeispiel ist die Einrichtung 22 zum Erhalten der Zufallszahl seitens P also angepasst, um eine erste Zufallszahl rP zufällig oder pseudozufällig zu ermitteln und um eine zweite Zufallszahl rT vor dem zweiten Kommunikationspartner T zu erhalten. Die Einrichtung 24 zum Berechnen des Session-Schlüssels k0 ist angepasst, um den Session-Schlüssel k0 basierend auf einer zweiten Verschlüsselung (Gl. 30) eines aus einer ersten Verschlüsselung (Gl. 29) abgeleiteten Werts k' mit einem aus der zweiten Zufallszahl rT abgeleiteten Wert zu erhalten, wobei ein aus einer nicht linearen Verknüpfung (Gl. 28) der ersten Zufallszahl rP und des Teils der geheimen Information kIV abgeleiteter Wert kP als Schüssel für die erste Verschlüsselung verwendet wird, um die geheime Information oder einen daraus abgeleiteten Wert zu verschlüsseln, und, um basierend auf der ersten und der zweiten Verschlüsselung den Session-Schlussel k0 zu erhalten.
-
Wie vorher bereits beschrieben wurde, ist es auch möglich, dass die Schritte gemäß den Gln. (18) und (19) bzw. den Gln. (29) und (30) durch einem einzelnen Verschlüsselungsschritt beispielsweise gemäß k0 := AES(key = PAD2(kP)XOR PAD(rT), kIV), (31) ersetzt werden.
-
Für den Fall, dass NLM auf dem irreduziblen Polynom f(X) basiert, kann die Berechnung des Session-Schlüssels k0 seitens des ersten Kommunikationspartners P gemäß einem Ausführungsbeispiel auch gemäß k'P := NLM(EXT(kIV), r1) (32) kP := NLM(k'P, r2) (33) k0 := AES(key = PAD2(kP)XOR PAD(rT), kIV) (34) erfolgen.
-
P10: Response-Berechnung seitens des ersten Kommunikationspartners P:
-
In einem Schritt P10 berechnet der erste Kommunikationspartner P gemäß einem Ausführungsbeispiel eine Antwort cT auf die Challenge RT des zweiten Kommunikationspartners T, basierend auf dem gemeinsamen Session-Schlussel k0, der in Schritt P9 berechnet wurde: cT := AES(key = k0, RT). (35)
-
D. h., der Session-Schlüssel k0 wird als Schlüssel für eine Blockverschlüsselung nach dem AES-Standard verwendet, um die Challenge RT des zweiten Kommunikationspartners T zu verschlüsseln und somit die Antwort cP zu erhalten.
-
P11: Dritte Nachricht (vom ersten Kommunikationspartner P zum zweiten Kommunikationspartner T):
-
In einem Schritt P11 sendet der erste Kommunikationspartner P die in dem Schritt P10 berechnete Antwort cT zu dem zweiten Kommunikationspartner T.
-
P12: Antwort-Verifikation seitens des ersten Kommunikationspartners P:
-
Dazu wird seitens des ersten Kommunikationspartners P die zufällige Challenge RP, die mittels der ersten Nachricht M1 zu dem zweiten Kommunikationspartner T gesendet wurde, mit Hilfe des Session-Schlussels k0 gemäß cP' = AES(key = k0, RP) (36) verschlüsselt, um einen Antwort-Vergleichswert cP' zu erhalten. Daraufhin wird seitens des ersten Kommunikationspartners P der erhaltende Antwort-Vergleichswert cP' mit der Antwort cP, welche von dem zweiten Kommunikationspartner T durch die zweite Nachricht M2 erhalten wurde, verglichen. Falls cP' = cP, kann seitens des ersten Kommunikationspartners P der zweite Kommunikationspartner T erfolgreich authentisiert werden. Andernfalls schlägt die Authentisierung fehl. Bei einem Fehlschlagen der Authentisierung sollte eine weitere Kommunikation zwischen den beiden Kommunikationspartnern P, T gestoppt werden. Das Fehlschlagen der Authentisierung kann dem zweiten Kommunikationspartner T signalisiert werden.
-
T13: Antwort-Verifikation seitens des zweiten Kommunikationspartners T:
-
Dazu wird seitens des zweiten Kommunikationspartners T die zufällige Challenge RT, die mittels der zweiten Nachricht M2 zu dem zweiten Kommunikationspartner P gesendet wurde, mit Hilfe des Session-Schlüssels k0 gemäß cT' = AES(key = k0, RT) (37) verschlusselt, um einen Antwort-Vergleichswert cT' zu erhalten. Daraufhin wird seitens des zweiten Kommunikationspartners T der erhaltende Antwort-Vergleichswert cT' mit der Antwort cT, welche von dem zweiten Kommunikationspartner T durch die dritte Nachricht M3 erhalten wurde (Schritt P11), verglichen. Falls cT' = cT, kann seitens des zweiten Kommunikationspartners T der erste Kommunikationspartner P erfolgreich authentisiert werden. Andernfalls schlägt die Authentisierung fehl. Bei einem Fehlschlagen der Authentisierung sollte eine weitere Kommunikation zwischen den beiden Kommunikationspartnern P, T gestoppt werden. Das Fehlschlagen der Authentisierung kann dem ersten Kommunikationspartner P signalisiert werden.
-
Eine detaillierte graphische Darstellung der soeben diskutierten Ausführungsbeispiele für Authentisierungsverfahren, zusammen mit darin involvierten Hardware-/Softwareblöcken seitens beider Kommunikationspartner P, T, sind in den 5a und 5b gezeigt.
-
Nach einer erfolgreichen Authentisierung 10 und einer erfolgreichen Erzeugung des Session-Schlüssels k0 kann zu dem Datentransfer-Schritt 12 zwischen den beiden Kommunikationspartnern P und T übergegangen werden. Dazu kann der erste Kommunikationspartner P Teile seines Speichers für den zweiten Kommunikationspartner T zuganglich machen (evtl. auch umgekehrt), so dass der zweite Kommunikationspartner T bestimmte Datenblöcke lesen kann, für die er entsprechende Zugriffsrechte hat. Gleichermaßen kann T bestimmte Datenblöcke schreiben. Dabei wird zwar das Lesen bzw. die Programmierung von bzw. in einen nichtflüchtigen Speicher des ersten Kommunikationspartners P von P selbst bewerkstelligt. Die Befehle dafur erhält der erste Kommunikationspartner P jedoch von dem zweiten Kommunikationspartner T.
-
Die Kommunikation bzw. der Datentransfer zwischen den beiden Kommunikationspartnern P und T kann in Datenrahmen F1, F2, F3, ..., organisiert sein, die sowohl von P nach T und umgekehrt übertragen werden können. Aus Sicherheitsgründen wird von jedem Datenrahmen Fi ein geheimer Schlüssel ki als Eingabe benotigt. Nachdem ein Datenrahmen Fi verarbeitet wurde, kann ein neuer Schlussel ki+1 generiert werden, der für den nachfolgenden zu übertragenden Datenrahmen Fi+1 benutzt werden kann. Ein erster geheimer Schlüssel k1 fur den ersten zu ubertragenden Datenrahmen F1 wird dabei von dem Session-Schlüssel k0 abgeleitet.
-
Sämtliche Datenrahmen beinhalten sicherheitsrelevante Datenpakete D1, D2, D3, ..., die zwischen den beiden Kommunikationspartnern P und T ausgetauscht werden. Dabei ist es unerheblich, in welche Richtung die Datenpakete gesendet werden. Sie können gemäß ihres globalen Auftritts indiziert werden, wie es schematisch und exemplarisch in 6 dargestellt ist.
-
Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung enthält jedes Datenpaket Dx maximal 128 Bits, wobei andere Datenpaketgrößen naturlich ebenso denkbar sind. Die Datenpakete, die von dem ersten Kommunikationspartner P zu dem zweiten Kommunikationspartner T gesendet werden, können aus dem Speicher von P ausgelesene Daten enthalten. Datenpakete in die andere Richtung, d. h. von T nach P, können Daten enthalten, die in den Speicher von P geschrieben werden sollen. Zusätzlich können die ausgetauschten Datenpakete Lese-/Schreib-Befehle und/oder Speicheradressen der Daten enthalten. Eine übergeordnete Protokoll-Schicht (Wrapping Protocol Layer) definiert gemäß Ausführungsbeispielen, welche der Kontrolldaten außerhalb der den hier beschriebenen Schutzmechanismen unterliegenden Datenpaketen Dx gesendet werden kann.
-
Die Datenpakete können in Datenrahmen, welche aufeinanderfolgende Datenpakete enthalten, angeordnet sein. Sämtliche Datenpakete eines Datenrahmens werden in die gleiche Richtung verschickt, d. h., entweder von T zu P oder umgekehrt, von P zu T, und haben eine spezielle Reihenfolge. Die Organisation dafur wird von der übergeordneten Protokoll-Schicht übernommen.
-
Die wahrend des Datentransfers 12 ubertragenen Datenpakete konnen im Vertraulichkeitsschutzmodus beispielsweise mittels eines AES-Algorithmus verschlusselt werden. Dazu kann jedes Paket beispielsweise genau eine Größe von 128 Bits haben. Andererseits kann während des Datentransfers 12 auch der Integritätsschutzmodus verwendet werden, indem Message Authentication Codes (MAC) berechnet werden. In diesem Fall kann die Große der Datenpakete kleiner oder gleich 128 Bits sein. Jeder Datenrahmen kann in diesem Fall ein MAC-Paket Mi umfassen, das nicht Teil der Datenpakete D1, D2, D3, ... ist.
-
Wie es in 6 schematisch angedeutet ist, ist ein erster Schritt 61 der Datentransferphase die Ableitung des ersten geheimen Schlüssels k1 für den ersten zu übertragenden Datenrahmen F1 basierend auf dem Session-Schlüssel k0. Der Schritt 61 ist sowohl für den Integritätsschutz- als auch für den Vertraulichkeitsschutzmodus identisch. Eingabeparameter für den Schritt 61 können, wie in 7 dargestellt, der Session-Schlüssel k0, sowie die beiden zufälligen Challenges RP und RT sein, die während der Authentisierungsphase 10 sowohl von dem ersten Kommunikationspartner P als auch von dem zweiten Kommunikationspartner T erzeugt wurden. Gemäß einem Ausführungsbeispiel kann der erste Schlussel k1 gemäß k1 := AES(key = RP; k0 XOR RT) (38) berechnet werden, wie es 7a graphisch dargestellt. D. h., der Challenge-Wert RP kann als Schlüssel fur eine AES-Verschlüsselung verwendet werden, um eine XOR-Verknüpfung des Challenge-Werts RT und des Session-Schlüssels k0 zu verschlüsseln und, um basierend auf der AES-Verschlüsselung den ersten abgeleiteten Schüssel k1 zu erhalten.
-
Gemaß einem anderen Ausführungsbeispiel kann der erste Schlüssel k1 auch gemäß k1 := AES(key = RP; k0 XOR RT)XOR(k0 XOR RT) (39) berechnet werden, wie es 7b graphisch dargestellt.
-
Im Integritätsschutzmodus kann jeder Datenrahmen Fi mittels eines Prüfteils (MAC) Mi zur Authentisierung des Datenrahmens versehen werden, wobei der Prüfteil Mi mittels eines entsprechenden Schlüssels ki erzeugt wird. Bei dem Prüfteil Mi kann es sich beispielsweise um einen CBC-MAC (Cipher Block Chaining Message Authentication Code), einen HMAC (keyed-Hash Message Authentication Code), OMAC (One-key MAC), UMAC (message authentication code based on universal hashing), PMAC (Parallelizable MAC) oder CMAC (Cipher-based MAC) handeln.
-
Die Abfolge von Datenpaketen Dx, Dx+1, ..., Dy eines Datenrahmens Fi wird von dem Prüfteil Mi abgeschlossen, so wie es schematisch in 8 gezeigt ist. Der Sender des Rahmens Fi verwendet ki und die Datenpakete Dx, Dx+1, ..., Dy, um den Prüfteil Mi zu ermitteln und sendet (Dx, ..., Dy, Mi) innerhalb des Rahmens Fi. D. h., die Einrichtung 28 zum Verwenden des Session-Schlüssels k0 ist gemäß Ausführungsbeispielen angepasst, um für die Kommunikation mit dem zweiten Kommunikationspartner einen Prüfteil Mi zur Authentisierung einer Nachricht Fi basierend auf der Nachricht und dem Session-Schlüssel k0 oder einem daraus abgeleiteten Schlüssel ki zu berechnen.
-
In der gleichen Weise kann der Empfänger des Datenrahmens Mi mit dem Inhalt (Dx, ..., Dy, Mi) ausgebildet sein, um ki und die empfangenen Datenpakete Dx, Dx+1, ..., Dy zu verwenden, um einen sich daraus ergebenden Prufteil zu berechnen. Der Empfänger vergleicht den sich ergebenden Prüfteil mit dem empfangenen Wert Mi. Falls die beiden Werte identisch sind, kann der Datentransfer zwischen den beiden Kommunikationspartnern fortgesetzt werden, andernfalls sollte der Datentransfer gestoppt werden. Der Empfanger kann den Sender über einen MAC-Fehler informieren.
-
Beide Kommunikationspartner P und T berechnen auch den Schlüssel ki+1 fur einen nachfolgend zu übertragenden Datenrahmen Fi+1 (siehe 6, Schritte 62, 63, 64). Gemäß einem Ausführungsbeispiel der vorliegenden Erfindung konnen Prüfteil Mi und der nachfolgende Schlüssel ki+1 folgendermaßen berechnet werden: hx := ki,
hx+1 := AES(key = hx; Dx)XOR Dx,
hx+2 := AES(key = hx+1; Dx+1)XOR Dx+1,
hx+3 := AES(key = hx+2; Dx+2)XOR Dx+2,
...
hy+1 := AES(key = h; Dy)XOR Dy,
ki+1 := hy+1
M'i := AES(key = ki; ki+1)XOR ki+1,
Mi := EXT(M'i) (40)
-
Falls die Größe eines Datenpakets Dx weniger als 128 Bit beträgt, kann das entsprechende Datenpaket Dx mit Nullen aufgefüllt werden, um eine Größe von 128 Bit zu erhalten. Das aufgefüllte Datenpaket Dx kann dann als Eingabe für die AES-Blockverschlüsselung und/oder die XOR-Verknüpfungen verwendet werden.
-
Die Generierung des Prüfwerts Mi und des nachfolgenden Schlüssels ki+1 ist in 9 nochmals graphisch dargestellt.
-
Aus 9 wird klar, dass der nachfolgende Schlüssel ki+1 aus dem Vorganger-Schlüssel ki und den einzelnen Datenpaketen Dx, Dx+1, ..., Dy des Datenrahmens Fi bestimmt wird. Dabei wird ein erstes Datenpaket Dx mit dem Vorganger-Schlüssel ki blockverschlüsselt, das Ergebnis dieser Blockverschlüsselung nochmals mit dem ersten Datenpaket Dx XOR-verknüpft, wobei das Verknupfungs-Ergebnis wiederum als Schlüssel verwendet wird, um das zweite Datenpaket Dx+1 block-zu-verschlüsseln, um das Ergebnis dieser Blockverschlusselung wiederum mit dem zweiten Datenpaket Dx+1 zu verknüpfen und das Ergebnis dieser Verknüpfung wiederum als Schlussel fur das darauffolgende Datenpaket Dx+2 zu verwenden, usw.
-
Der Prüfteil Mi wird gebildet, indem der Vorgänger-Schlüssel ki als Schlüssel verwendet wird, um den nachfolgenden Schlüssel ki+1 gemäß einer AES-Blockverschlüsselung zu verschlüsseln. Das Ergebnis dieser Verschlüsselung kann dann mit ki+1 XOR-verknüpft werden, um den MAC-Prufwert Mi zu erhalten. D. h., gemäß einem Ausführungsbeispiel der vorliegenden Erfindung ist die Einrichtung 28 zum Verwenden des Session-Schlüssels angepasst, um einen Prüfteil Mi einer aktuell zu übermittelnden Nachricht Fi, basierend auf einem von dem Session-Schlüssel k0 abgeleiteten aktuellen Schlüssel ki und einem nachfolgenden Schlüssel ki+1 für eine nachfolgend zu übermittelnde Nachricht Fi+1 zu berechnen, wobei der nachfolgende Schlüssel ki+1 von dem abgeleiteten aktuellen Schlussel ki und der aktuell zu übermittelnden Nachricht Fi abhängt.
-
10 zeigt einen insgesamten Ablauf des Integritätsschutzmodus für zwei zu übertragende Datenrahmen, beginnend mit der Generierung des ersten Schlüssels k1 basierend auf dem Session-Schlüssel k0.
-
In dem Vertraulichkeitsschutzmodus wird jeder Datenrahmen Fi gesichert, indem die Datenblöcke Dx zu verschlüsselten Blöcken Ci verschlüsselt werden, wobei dazu jeweils der Schlüssel ki verwendet wird. Schematisch ist diese Vorgehensweise in 11 gezeigt.
-
Der Sender des Datenrahmens Fi verwendet ki und die Datenpakete Dx, Dx+1, ..., Dy, verschlüsselt jedes Datenpaket Dj zu einem verschlusselten Paket Cj und sendet (Cx, ..., Cy) innerhalb des Datenrahmens Fi. Der Empfänger des Datenrahmens Fi mit (Cx, ..., Cy) verwendet ebenfalls den Schlüssel ki und die verschlüsselten Cx, ..., Cy, um die unverschlüsselten Pakete Dx, Dx+1, ..., Dy zuruckzugewinnen. Beide Kommunikationspartner berechnen den nachfolgenden Schlussel ki+1 fur den nachfolgenden Datenrahmen Fi+1. Zur Verarbeitung langerer Nachrichten gibt es verschiedene Vorgehensweisen. Die Daten konnen zunachst in Datenpakete Dx unterteilt werden, deren Große durch den Verschlüsselungsalgorithmus vorgegeben ist (z. B. 128 Bit). Die Betriebsarten Electronic Code Book Mode (ECB) und Cipher Block Chaining Mode (CBC) setzen ganze Datenpakete voraus. Daher kann das letzte Datenpaket Dy mit Fülldaten aufgefüllt werden (Padding). Die Datenpakete können anschließend nacheinander verschlüsselt werden. Bei einem häufig eingesetzten CBC-Verfahren wird das Ergebnis der Verschlüsselung eines Datenpakets, Chiffre (engl. Cipher) des zuvor verschlüsselten Datenpakets mit dem folgenden Datenpaket verknüpft bzw. verkettet. Die Berechnungen des Senders, um Cj und ki+1 zu erhalten, sehen gemäß einem Ausführungsbeispiel folgendermaßen aus: hx := ki,
hx := AES(key = hx-1; q)XOR q,
Cx := AES(key = hx; Dx),
hx+1 := AES(key = hx; q)XOR q,
Cx+1 := AES(key = hx+1; Dx+1),
...
hy := AES(key = hy-1; q)XOR q,
Cy := AES(key = hy; Dy),
ki+1 := hy (41)
-
Der Wert q bedeutet dabei beispielsweise einen 128 Bit-Wert, der beliebig definiert werden kann, danach aber fest bleibt. Gemäß Ausführungsbeispielen kann die Größe eines Datenpakets Dx immer 128 Bit betragen. Ein Auffüllen mit Nullen, um diese Große zu erreichen, kann von einer übergeordneten Wrapping-Protokollschicht durchgeführt werden. Die Struktur der Schlussel-Generierung im Vertraulichkeitsschutzmodus, die in 12 grafisch dargestellt ist, ist gemäß Ausfuhrungsbeispielen identisch zu der Schusselgenerierung im Integritatsschutz- bzw. MAC-Modus. Ein Vergleich der 9 und 12 zeigt, dass gegenüber dem MAC-Modus Dx+j im Vertraulichkeitsschutzmodus lediglich durch die Konstante q ersetzt wird. Diese Vorgehensweise bietet den Vorteil, dass dadurch eine Reduktion von Hardware-Ressourcen, beispielsweise in Form von zusätzlichen Kontroll- und Datenpfaden, vermieden werden kann.
-
In gleicher Weise wie 10 für den MAC-Modus, zeigt 13 für den Vertraulichkeitsschutzmodus einen insgesamten Datenfluss für zwei zu übertragende Datenrahmen, wobei mit der Generierung des ersten Schlüssels k1, basierend auf dem Session-Schlüssel k0 begonnen wird.
-
14 zeigt, analog zu 12 ein Schema zur Entschlüsselung der verschlusselten Pakete Cx, ..., Cy des Datenrahmens Fi seitens eines Empfängers des Datenrahmens. Die Schlüsselberechnung der Schussel ki und ki+1, sowie samtlicher dazwischenliegender Zwischen-Schlüssel hx-1, hx, hx+1, ..., erfolgt identisch wie seitens des Senders, d. h. gemäß den Gln. (41). Um die verschlüsselten Pakete Cx zu entschlüsseln, werden die ermittelten Zwischenschlüssel hx als Schlüssel für eine zur Blockverschlüsselung AES inversen Blockentschlüsselung AES–1 verwendet: hx := ki,
hx := AES(key = hx-1; q)XOR q,
Dx := AES–1(key = hx; Cx),
hx+1 := AES(key = hx; q)XOR q,
Dx+1 := AES–1(key = hx+1; Cx+1),
hy := AES(key = hy-1; q)XOR q,
Dy := AES–1(key = hy; C),
ki+1 := hy (42)
-
Da beide Kommunikationspartner P und T im Allgemeinen jeweils sowohl als Sender als auch als Empfanger agieren, ist gemaß Ausführungsbeispielen die Einrichtung 28 zum Verwenden des Session-Schlussels also angepasst, um einen aktuellen Schlüssel ki+1 fur einen aktuell zu ver- bzw. zu entschlusselnden Datenblock Di+1/Ci+1, basierend auf einem vorhergehenden Schlüssel ki für einen vorhergehend zu ver- bzw. zu entschlüsselnden Datenblock Di/Ci und einem vorgegebenen Wert q zu ver- bzw. zu entschlüsseln.
-
Zusammenfassend zielen Ausführungsbeispiele der vorliegenden Erfindung also erstens auf eine sichere gegenseitige Authentisierung zweier Kommunikationspartner P und T ab. Dabei kann gemäß Ausführungsbeispielen ein erster Kommunikationspartner eine sog. Proximity-Karte P und der zweite Kommunikationspartner ein entsprechendes Lesegerät T sein. Zweitens, zielen Ausführungsbeispiele der vorliegenden Erfindung darauf ab, einen Integritatsschutz von zwischen den beiden Kommunikationspartnern ausgetauschten Nachrichten zu gewährleisten. Drittens soll gemäß Ausführungsbeispiel auch ein Schutz der Vertraulichkeit der ausgetauschten Nachrichten ermöglicht werden. Dabei schließen sich gemäß Ausführungsbeispielen die letzten beiden Zielsetzungen gegenseitig aus, d. h., die Kommunikationspartner können sich nach einer sicheren gegenseitigen Authentisierung 10 entweder auf einen Datentransfermodus 12 mit Integritätsschutz oder auf einen Datentransfermodus mit Vertraulichkeitsschutz einigen. Als grundlegende Voraussetzung teilen beide Kommunikationspartner T und P eine gemeinsame geheime Information kIV, entsprechend den Einstellungen einer Private-Key Kryptographie. Gemäß Ausfuhrungsbeispielen kann zur Blockverschlüsselung der AES mit einer Schussellange von 128 Bit verwendet werden. Andere Blockverschlüsselungsalgorithmen sowie andere Schlussellängen sind naturlich ebenso denkbar.
-
Ausführungsbeispiele der vorliegenden Erfindung können inharent die Sicherheit gegen Seitenkanalangriffe erhohen. Dadurch ist eine Reduktion von hardwarespezifischen Maßnahmen in einem zugrundegelegten Verschlüsselungsmodul, insbesondere einem AES-Hardwaremodul, möglich. Dies kann beispielsweise zu deutlich in ihrer Große reduzierten Proximity-Karten führen.