Cryptography Reference
In-Depth Information
1. Der Master generiert aus dem
PKEY
und einem Zufallswert (
IN_RAND
) mit
der kryptografischen Hashfunktion E
22
den
Initialisation Key
.
IN_RAND
sendet er an den Slave.
2. Der Slave verfährt auf gleiche Weise wie zuvor der Master: Aus dem
PKEY
und
IN_RAND
berechnet er mit E
22
den
Initialisation Key
. Der Zweck des
Initialisation Key
ist es, dass der
PKEY
nicht direkt am Protokoll beteiligt
und dadurch besser geschützt ist.
3. Der Master generiert einen weiteren Zufallswert (
LK_RAND
A
). Daraus so-
wie aus seiner Geräteadresse berechnet er mit der kryptografischen Hash-
funktion E
21
den Wert
K
A
. Anschließend berechnet er die Exklusiv-oder-Ver-
knüpfung von
LK_RAND
A
und dem
Inititialisation Key
. Diese Verknüpfung
kommt einer Verschlüsselung (One-Time-Pad) von
LK_RAND
A
mit dem
Initialisation Key
gleich. Das Ergebnis der Verschlüsselung sendet er an den
Slave.
4. Der Slave entschlüsselt
LK_RAND
A
mit dem
Initialisation Key
. Aus
LK_
RAND
A
sowie aus der Geräteadresse des Masters berechnet er mit E
21
den
Wert
K
A
. Außerdem generiert er einen weiteren Zufallswert (
LK_RAND
B
)
und berechnet anschließend die Exklusiv-oder-Verknüpfung von
LK_
RAND
B
und dem
Initialisation Key
. Dies kommt einer One-Time-Pad-Ver-
schlüsselung von
LK_RAND
B
gleich. Das Ergebnis der Verschlüsselung sen-
det er an den Master. Außerdem wendet der Slave das Verfahren E
21
auf
LK_RAND
B
und seine eigene Geräteadresse an, wodurch er
K
B
erhält. Der
Link Key
ergibt sich aus
K
A
⊕
K
B
.
5. Der Master entschlüsselt
LK_RAND
B
mit dem
Initialisation Key
. Aus
LK_RAND
B
und der Geräteadresse des Slave berechnet er mit dem Verfah-
ren E
21
den Wert
K
B
. Nun kann auch der Master den
Link Key
berechnen,
der sich aus
K
A
⊕
K
B
ergibt.
6.
Aus dem
Link Key
, einem weiteren Zufallswert (
EN_RAND
) sowie einer
weiteren Variablen (es handelt sich um die Kennung des Authentifizierungs-
prozesses) generiert der Master den
Encryption Key
. Der
Link Key
dient da-
bei als Schlüssel für E
3
, die anderen beiden Eingaben als Urbild.
EN_RAND
sendet er an den Slave. Außerdem berechnet der Master aus dem Encryption
Key den Constraint Key. Der
Constraint Key
hat den Zweck, die effektive
Schlüssellänge zu verkürzen, damit die jeweilige Implementierung Gesetzen
entspricht, die die Verwendung oder den Export von Kryptografie beschrän-
ken (in den USA gab es früher Exportbeschränkungen, die nur die Ausfuhr
von maximal 40 Bit effektiver Schlüssellänge zuließen). Die Berechnung des
Constraint Key sieht vor, einen konfigurierbaren Teil des Encryption Key ab-
zuschneiden und das Ergebnis nach einem nichtkryptografischen Verfahren
auf 128 Bit zu expandieren. Da die US-Exportbeschränkungen nicht mehr
aktuell sind, verwenden die meisten Implementierungen den
Encryption Key
als
Constraint Key
.