-
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 (übersetzt etwa Herausforderung-Antwort-Verfahren),
wie z. B. einem Zwei- oder Drei-Wege-Challenge-Response-Verfahren, durchgeführt 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 lösen
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 Endgeräte rekonstruieren
und damit dieses Endgerät
prinzipiell klonen.
-
Hardwaretechnische
Maßnahmen
zum Schutz einer der Authentisierung zugrundeliegenden Verschlüsselung,
wie beispielsweise einer Blockverschlüsselung, sind dabei relativ
kostenintensiv.
-
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
19, sowie einem Computerprogramm gemäß Patentanspruch 25.
-
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-Schlüssels
gemäß einem
noch weiteren Ausführungsbeispiel
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
Datenübertragung
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
Ausführungsbeispiel der
vorliegenden Erfindung;
-
14 eine
schematische Darstellung einer Entschlüsselung eines empfangenen Datenrahmens gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung;
-
15A eine schematische Darstellung eines autonomen
nicht linear rückgekoppelten
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 können
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 gemäß Ausführungsbeispielen
zwei Maßnahmen:
- – Ein
Datenintegritätsschutz-Mechanismus,
auch bezeichnet als MAC-Modus (MAC = Message Authentication Code).
- – Einen
Vertraulichkeitsschutzmechanismus, bezeichnet als Verschlüsselungsmodus.
-
Gemäß 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-Schlüssel k0 als Basisschlüssel verwendet, um übermittelte
Datenpakete zu verschlüsseln.
-
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-Schlüssel 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 gemäß 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 gemäß einem
Ausführungsbeispiel
um eine nichtlineare Verknüpfung 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äß Ausführungsbeispielen
wird lediglich die geheime Information kIV seitens
des Lesegeräte
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 können der Generalschlüssel 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-Schlüssels 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 ausgedrückt
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) ausgedrückt, 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 Erläuterungen
unter Berücksichtigung
einer Ausführungsreihenfolge
der individuellen Schritte gegeben. Für 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
Ausführungsbeispiel,
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:
-
Gemäß Ausführungsbeispielen
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 übermittelt.
-
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 übertragen 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 Schlüssel kIV des ersten Kommunikationspartners, beispielsweise
von einem Generalschlüssel
kM zusammen mit der erhaltenen gerätespezifischen
Identifizierung IV mittels einer Schlüsselgewinnungsfunktion KD ableiten: kIV := KD(kM,
IV). (14)
-
Eine
Definition der Schlüsselgewinnungsfunktion
KD kann herstellerspezifisch sein und hat damit keinen Einfluss
auf das erfindungsgemäße Protokoll.
Seitens eines Lesegeräts
T kann die geheime Information kIV kann
also mittels einer Schlüsselgewinnungsfunktion
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 Bitauffüllvorschrift.
Gemäß Ausführungsbeispielen
handelt es sich um ein Auffüllen
eines 32 Bit-Werts mit Nullen zu einem 128 Bit-Wert.
-
Gemäß einem
Ausführungsbeispiel
berechnet der zweite Kommunikationspartner T einen gemeinsamen und
einzigartigen Session-Schlüssel k0 gemäß k0 = SK(kIV, rp, rT). Dabei bedeutet
SK eine Verknüpfung
von kIV und zumindest einem Teil (rp, rT) einer Zufallszahl
r in Form einer Session-Schlüssel-Berechnungsfunktion.
Gemäß einem
Ausführungsbeispiel
kann der Session-Schlüssel
folgendermaßen
berechnet werden:
SK: kp := 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-Schlüssels 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-Schlüssel k0 kann danach basierend auf dem Vorläuferwert
kP bestimmt werden. Formal kann die nichtlineare
Verknüpfung
gemäß Gl. (20)
definiert werden. Da kP gemäß Ausführungsbeispielen
die einzige zufällige
Basis für
den Session-Schlüssel
k0 ist, können 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. Selbstverständlich
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, beibehält. 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
Ausführungsbeispiel
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-Vorläuferwert
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 Verknüpfungen
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 Xi 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
Ausführungsbeispiel
angepasst, um die nichtlineare Verknüpfung NLM mittels eines linear
rückgekoppelten 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üpfung
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 während
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-Schlüssel-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
gemäß dem sogenannt
Advanced Encryption Standard (AES) verwendet werden. D. h., gemäß 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 Verschlüsselung
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.
-
Gemäß Ausführungsbeispielen
ist es auch möglich,
dass lediglich der erste Kommunikationspartner P eine Zufallszahl
rP bestimmt, nicht jedoch der zweite Kommunikationspartner
T. In diesem Fall wäre
der aus der Verschlüsselung
resultierende Wert k' gemäß Gl. (18)
bereits der Session-Schlüssel.
-
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-Schlüssels k0 gemäß Ausführungsbeispielen
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 Blockverschlüsselung
gemäß dem Advanced
Encryption Standard entspricht.
-
Des
Weiteren ist es vorstellbar, dass die Schritte gemäß 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
Auffüllen
eines 64-Bit Werts, der aus einer Verdopplung der 32 Bits des Eingabewerts
y resultiert, bedeutet. Insbesondere kann der 64-Bit Wert mit Nullen
aufgefüllt
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-zufällig 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 Schlüssel 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 durchgeführt 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' können auch
bereits vor dem Empfang der zweiten Nachricht M2 ausgeführt 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. Gemäß 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-Schlüssel
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-Schlüssel
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-Schlüssels 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) verschlüsselt, 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 zugänglich 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 dafür
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 benötigt. Nachdem ein Datenrahmen
Fi verarbeitet wurde, kann ein neuer Schlüssel ki+1 generiert werden, der für den nachfolgenden
zu übertragenden
Datenrahmen Fi+1 benutzt werden kann. Ein erster
geheimer Schlüssel
k1 für
den ersten zu übertragenden
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 natürlich 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 dafür wird von der übergeordneten Protokoll-Schicht übernommen.
-
Die
während
des Datentransfers 12 übertragenen
Datenpakete können
im Vertraulichkeitsschutzmodus beispielsweise mittels eines AES-Algorithmus
verschlüsselt
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 Größ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 Schlüssel
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 für 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.
-
Gemäß 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 Prüfteil 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 Empfänger kann den Sender über einen MAC-Fehler
informieren.
-
Beide
Kommunikationspartner P und T berechnen auch den Schlüssel ki+1 für
einen nachfolgend zu übertragenden
Datenrahmen Fi+1 (siehe 6,
Schritte 62, 63, 64). Gemäß einem
Ausführungsbeispiel
der vorliegenden Erfindung können 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 = hy;
Dy) XOR Dy, ki+1 := hy+1M'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 Vorgänger-Schlüssel ki und den
einzelnen Datenpaketen Dx, Dx+1,
..., Dy des Datenrahmens Fi bestimmt
wird. Dabei wird ein erstes Datenpaket Dx mit
dem Vorgänger-Schlüssel ki blockverschlüsselt, das Ergebnis dieser
Blockverschlüsselung
nochmals mit dem ersten Datenpaket Dx XOR-verknüpft, wobei
das Verknüpfungs-Ergebnis wiederum
als Schlüssel
verwendet wird, um das zweite Datenpaket Dx+1 block-zu-verschlüsseln, um das
Ergebnis dieser Blockverschlüsselung
wiederum mit dem zweiten Datenpaket Dx+1 zu
verknüpfen
und das Ergebnis dieser Verknüpfung
wiederum als Schlüssel
für 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-Prüfwert
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 Schlüssel 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 verschlüsselten
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 zurückzugewinnen. Beide Kommunikationspartner
berechnen den nachfolgenden Schlüssel
ki+1 für
den nachfolgenden Datenrahmen Fi+1. Zur
Verarbeitung längerer
Nachrichten gibt es verschiedene Vorgehensweisen. Die Daten können zunächst in
Datenpakete Dx unterteilt werden, deren
Größ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 Größe zu erreichen,
kann von einer übergeordneten Wrapping-Protokollschicht
durchgeführt
werden. Die Struktur der Schlüssel-Generierung
im Vertraulichkeitsschutzmodus, die in 12 grafisch
dargestellt ist, ist gemäß Ausführungsbeispielen
identisch zu der Schüsselgenerierung
im Integritätsschutz-
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 verschlüsselten
Pakete Cx, ..., Cy,
des Datenrahmens Fi seitens eines Empfängers des
Datenrahmens. Die Schlüsselberechnung der
Schüssel
ki und ki+1, sowie
sämtlicher
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; Cy), ki+1 := hy
(42)
-
Da
beide Kommunikationspartner P und T im Allgemeinen jeweils sowohl
als Sender als auch als Empfänger
agieren, ist gemäß Ausführungsbeispielen
die Einrichtung 28 zum Verwenden des Session-Schlüssels also
angepasst, um einen aktuellen Schlüssel ki+1 für einen
aktuell zu ver- bzw. zu entschlüsselnden 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 Integritätsschutz 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äß Ausführungsbeispielen
kann zur Blockverschlüsselung
der AES mit einer Schüssellänge von
128 Bit verwendet werden. Andere Blockverschlüsselungsalgorithmen sowie andere
Schlüssellängen sind
natürlich
ebenso denkbar.
-
Ausführungsbeispiele
der vorliegenden Erfindung können
inhärent
die Sicherheit gegen Seitenkanalangriffe erhöhen. 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 Größe reduzierten Proximity-Karten
führen.