Appendix B. Test Vectors (Vettori di test)
Appendix B. Test Vectors (Vettori di test)
Tutti i valori sono in esadecimale.
B.1. AES-f8 Test Vectors (Vettori di test AES-f8)
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 (Vettori di test AES-CM)
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: questo caso di test è stato progettato in modo che la parte finale del segmento di flusso di chiavi coincida con il caso di test nella sezione F.5.1 di [CTR].
B.3. Key Derivation Test Vectors (Vettori di test per la derivazione delle chiavi)
Questa sezione fornisce dati di test per la funzione di derivazione delle chiavi predefinita, che utilizza AES-128 in modalità contatore. Di seguito, illustriamo la derivazione iniziale delle chiavi per il cifrario AES-128 in modalità contatore, che richiede una chiave di crittografia di sessione di 16 ottetti e un salt di sessione di 14 ottetti, nonché una funzione di autenticazione che richiede una chiave di autenticazione di sessione di 94 ottetti. Questi valori sono chiamati chiave di cifratura (cipher key), salt di cifratura (cipher salt) e chiave di autenticazione (auth key) nel seguito. Poiché questa è la derivazione iniziale delle chiavi e il tasso di derivazione delle chiavi è uguale a zero, il valore di (index DIV key_derivation_rate) è zero (in realtà, una stringa di sei ottetti di zeri). Nel seguito, abbreviamo key_derivation_rate in kdr.
Gli input della funzione di derivazione delle chiavi sono la chiave master di 16 ottetti e il salt master di 14 ottetti:
master key: E1F97A0D3E018BE0D64FA32C06DE4139
master salt: 0EC675AD498AFEEBB6960B3AABE6
Mostriamo prima come viene generata la chiave di cifratura. Il blocco di input per AES-CM viene generato eseguendo l'XOR del salt master con la concatenazione dell'etichetta della chiave di crittografia 0x00 con (index DIV kdr), quindi aggiungendo a destra due ottetti nulli (che implementa l'operazione di moltiplicazione per 2^16, vedere sezione 4.3.3). Il valore risultante viene quindi crittografato con AES-CM utilizzando la chiave master per ottenere la chiave di cifratura.
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)
Successivamente, mostriamo come viene generato il salt di cifratura. Il blocco di input per AES-CM viene generato eseguendo l'XOR del salt master con la concatenazione dell'etichetta del salt di crittografia. Quel valore viene riempito e crittografato come sopra.
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
Ora mostriamo come viene generata la chiave di autenticazione. Il blocco di input per AES-CM viene generato come sopra, ma utilizzando l'etichetta della chiave di autenticazione.
index DIV kdr: 000000000000
label: 01
master salt: 0EC675AD498AFEEBB6960B3AABE6
-----------------------------------------------
xor: 0EC675AD498AFEEAB6960B3AABE6 (x, PRF input)
x*2^16: 0EC675AD498AFEEAB6960B3AABE60000 (AES-CM input)
Di seguito, la chiave di autenticazione è mostrata a sinistra, mentre i blocchi di input AES corrispondenti sono mostrati a destra.
auth key AES input blocks
CEBE321F6FF7716B6FD4AB49AF256A15 0EC675AD498AFEEAB6960B3AABE60000
6D38BAA48F0A0ACF3C34E2359E6CDBCE 0EC675AD498AFEEAB6960B3AABE60001
E049646C43D9327AD175578EF7227098 0EC675AD498AFEEAB6960B3AABE60002
6371C10C9A369AC2F94A8C5FBCDDDC25 0EC675AD498AFEEAB6960B3AABE60003
6D6E919A48B610EF17C2041E47403576 0EC675AD498AFEEAB6960B3AABE60004
6B68642C59BBFC2F34DB60DBDFB2 0EC675AD498AFEEAB6960B3AABE60005