Appendix B. Test Vectors (Testvektoren)
Appendix B. Test Vectors (Testvektoren)
Alle Werte sind in Hexadezimal.
B.1. AES-f8 Test Vectors (AES-f8 Testvektoren)
SRTP PREFIX LENGTH : 0
RTP packet header : 806e5cba50681de55c621599
RTP packet payload : 70736575646f72616e646f6d6e657373
20697320746865206e65787420626573
74207468696e67
ROC : d462564a
key : 234829008467be186c3de14aae72d62c
salt key : 32f2870d
key-mask (m) : 32f2870d555555555555555555555555
key XOR key-mask : 11baae0dd132eb4d3968b41ffb278379
IV : 006e5cba50681de55c621599d462564a
IV' : 595b699bbd3bc0df26062093c1ad8f73
j = 0
IV' xor j : 595b699bbd3bc0df26062093c1ad8f73
S(-1) : 00000000000000000000000000000000
IV' xor S(-1) xor j : 595b699bbd3bc0df26062093c1ad8f73
S(0) : 71ef82d70a172660240709c7fbb19d8e
plaintext : 70736575646f72616e646f6d6e657373
ciphertext : 019ce7a26e7854014a6366aa95d4eefd
j = 1
IV' xor j : 595b699bbd3bc0df26062093c1ad8f72
S(0) : 71ef82d70a172660240709c7fbb19d8e
IV' xor S(0) xor j : 28b4eb4cb72ce6bf020129543a1c12fc
S(1) : 3abd640a60919fd43bd289a09649b5fc
plaintext : 20697320746865206e65787420626573
ciphertext : 1ad4172a14f9faf455b7f1d4b62bd08f
j = 2
IV' xor j : 595b699bbd3bc0df26062093c1ad8f71
S(1) : 3abd640a60919fd43bd289a09649b5fc
IV' xor S(1) xor j : 63e60d91ddaa5f0b1dd4a93357e43a8d
S(2) : 220c7a8715266565b09ecc8a2a62b11b
plaintext : 74207468696e67
ciphertext : 562c0eef7c4802
B.2. AES-CM Test Vectors (AES-CM Testvektoren)
Keystream segment length: 1044512 octets (65282 AES blocks)
Session Key: 2B7E151628AED2A6ABF7158809CF4F3C
Rollover Counter: 00000000
Sequence Number: 0000
SSRC: 00000000
Session Salt: F0F1F2F3F4F5F6F7F8F9FAFBFCFD0000 (already shifted)
Offset: F0F1F2F3F4F5F6F7F8F9FAFBFCFD0000
Counter Keystream
F0F1F2F3F4F5F6F7F8F9FAFBFCFD0000 E03EAD0935C95E80E166B16DD92B4EB4
F0F1F2F3F4F5F6F7F8F9FAFBFCFD0001 D23513162B02D0F72A43A2FE4A5F97AB
F0F1F2F3F4F5F6F7F8F9FAFBFCFD0002 41E95B3BB0A2E8DD477901E4FCA894C0
... ...
F0F1F2F3F4F5F6F7F8F9FAFBFCFDFEFF EC8CDF7398607CB0F2D21675EA9EA1E4
F0F1F2F3F4F5F6F7F8F9FAFBFCFDFF00 362B7C3C6773516318A077D7FC5073AE
F0F1F2F3F4F5F6F7F8F9FAFBFCFDFF01 6A2CC3787889374FBEB4C81B17BA6C44
Nota Bene: dieser Testfall ist so konstruiert, dass der letzte Teil des Schlüsselstromsegments mit dem Testfall in Abschnitt F.5.1 von [CTR] übereinstimmt.
B.3. Key Derivation Test Vectors (Schlüsselableitungs-Testvektoren)
Dieser Abschnitt enthält Testdaten für die Standard-Schlüsselableitungsfunktion, die AES-128 im Zählermodus verwendet. Im Folgenden durchlaufen wir die anfängliche Schlüsselableitung für die AES-128-Zählermodus-Chiffre, die einen 16-Oktett-Sitzungsverschlüsselungsschlüssel und ein 14-Oktett-Sitzungssalz sowie eine Authentifizierungsfunktion erfordert, die einen 94-Oktett-Sitzungsauthentifizierungsschlüssel benötigt. Diese Werte werden im Folgenden als Chiffrierschlüssel (cipher key), Chiffriersalz (cipher salt) und Authentifizierungsschlüssel (auth key) bezeichnet. Da dies die anfängliche Schlüsselableitung ist und die Schlüsselableitungsrate gleich null ist, ist der Wert von (index DIV key_derivation_rate) null (tatsächlich eine 6-Oktett-Zeichenkette aus Nullen). Im Folgenden kürzen wir key_derivation_rate zu kdr ab.
Die Eingaben für die Schlüsselableitungsfunktion sind der 16-Oktett-Hauptschlüssel und das 14-Oktett-Hauptsalz:
master key: E1F97A0D3E018BE0D64FA32C06DE4139
master salt: 0EC675AD498AFEEBB6960B3AABE6
Wir zeigen zunächst, wie der Chiffrierschlüssel generiert wird. Der Eingabeblock für AES-CM wird durch Exklusiv-ODER-Verknüpfung des Hauptsalzes mit der Verkettung des Verschlüsselungsschlüssel-Labels 0x00 mit (index DIV kdr) erzeugt, anschließend wird rechts mit zwei Null-Oktetten aufgefüllt (wodurch die Multiplikation mit 2^16 implementiert wird, siehe Abschnitt 4.3.3). Der resultierende Wert wird dann mit dem Hauptschlüssel AES-CM-verschlüsselt, um den Chiffrierschlüssel zu erhalten.
index DIV kdr: 000000000000
label: 00
master salt: 0EC675AD498AFEEBB6960B3AABE6
-----------------------------------------------
xor: 0EC675AD498AFEEBB6960B3AABE6 (x, PRF input)
x*2^16: 0EC675AD498AFEEBB6960B3AABE60000 (AES-CM input)
cipher key: C61E7A93744F39EE10734AFE3FF7A087 (AES-CM output)
Als Nächstes zeigen wir, wie das Chiffriersalz generiert wird. Der Eingabeblock für AES-CM wird durch Exklusiv-ODER-Verknüpfung des Hauptsalzes mit der Verkettung des Verschlüsselungssalz-Labels erzeugt. Dieser Wert wird wie oben aufgefüllt und verschlüsselt.
index DIV kdr: 000000000000
label: 02
master salt: 0EC675AD498AFEEBB6960B3AABE6
----------------------------------------------
xor: 0EC675AD498AFEE9B6960B3AABE6 (x, PRF input)
x*2^16: 0EC675AD498AFEE9B6960B3AABE60000 (AES-CM input)
30CBBC08863D8C85D49DB34A9AE17AC6 (AES-CM ouptut)
cipher salt: 30CBBC08863D8C85D49DB34A9AE1
Nun zeigen wir, wie der Authentifizierungsschlüssel generiert wird. Der Eingabeblock für AES-CM wird wie oben erzeugt, verwendet jedoch das Authentifizierungsschlüssel-Label.
index DIV kdr: 000000000000
label: 01
master salt: 0EC675AD498AFEEBB6960B3AABE6
-----------------------------------------------
xor: 0EC675AD498AFEEAB6960B3AABE6 (x, PRF input)
x*2^16: 0EC675AD498AFEEAB6960B3AABE60000 (AES-CM input)
Im Folgenden wird der Authentifizierungsschlüssel links gezeigt, während die entsprechenden AES-Eingabeblöcke rechts dargestellt werden.
auth key AES input blocks
CEBE321F6FF7716B6FD4AB49AF256A15 0EC675AD498AFEEAB6960B3AABE60000
6D38BAA48F0A0ACF3C34E2359E6CDBCE 0EC675AD498AFEEAB6960B3AABE60001
E049646C43D9327AD175578EF7227098 0EC675AD498AFEEAB6960B3AABE60002
6371C10C9A369AC2F94A8C5FBCDDDC25 0EC675AD498AFEEAB6960B3AABE60003
6D6E919A48B610EF17C2041E47403576 0EC675AD498AFEEAB6960B3AABE60004
6B68642C59BBFC2F34DB60DBDFB2 0EC675AD498AFEEAB6960B3AABE60005