跳到主要内容

Appendix B. Test Vectors (测试向量)

Appendix B. Test Vectors (测试向量)

所有值均为十六进制。

B.1. AES-f8 Test Vectors (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 (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

注意: 此测试用例的设计使得密钥流段的后半部分与 [CTR] 的 F.5.1 节中的测试用例一致。

B.3. Key Derivation Test Vectors (密钥派生测试向量)

本节提供了默认密钥派生函数的测试数据, 该函数使用计数器模式下的 AES-128。在下文中, 我们详细说明了 AES-128 计数器模式密码的初始密钥派生过程, 该过程需要一个 16 字节的会话加密密钥和一个 14 字节的会话盐, 以及一个需要 94 字节会话认证密钥的认证函数。这些值在下文中称为密码密钥 (cipher key)、密码盐 (cipher salt) 和认证密钥 (auth key)。由于这是初始密钥派生且密钥派生率等于零, 因此 (index DIV key_derivation_rate) 的值为零 (实际上是六个字节的零字符串)。在下文中, 我们将 key_derivation_rate 简写为 kdr。

密钥派生函数的输入是 16 字节的主密钥和 14 字节的主盐:

     master key:  E1F97A0D3E018BE0D64FA32C06DE4139
master salt: 0EC675AD498AFEEBB6960B3AABE6

我们首先展示如何生成密码密钥。AES-CM 的输入块是通过将主盐与加密密钥标签 0x00 和 (index DIV kdr) 的连接进行异或运算生成的, 然后在右侧填充两个空字节 (这实现了乘以 2^16 的操作, 参见第 4.3.3 节)。然后使用主密钥对结果值进行 AES-CM 加密以获得密码密钥。

     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)

接下来, 我们展示如何生成密码盐。AES-CM 的输入块是通过将主盐与加密盐标签的连接进行异或运算生成的。该值按照上述方式进行填充和加密。

     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

现在我们展示如何生成认证密钥。AES-CM 的输入块按照上述方式生成, 但使用认证密钥标签。

     index DIV kdr:                   000000000000
label: 01
master salt: 0EC675AD498AFEEBB6960B3AABE6
-----------------------------------------------
xor: 0EC675AD498AFEEAB6960B3AABE6 (x, PRF input)

x*2^16: 0EC675AD498AFEEAB6960B3AABE60000 (AES-CM input)

下面, 认证密钥显示在左侧, 而相应的 AES 输入块显示在右侧。

   auth key                           AES input blocks
CEBE321F6FF7716B6FD4AB49AF256A15 0EC675AD498AFEEAB6960B3AABE60000
6D38BAA48F0A0ACF3C34E2359E6CDBCE 0EC675AD498AFEEAB6960B3AABE60001
E049646C43D9327AD175578EF7227098 0EC675AD498AFEEAB6960B3AABE60002
6371C10C9A369AC2F94A8C5FBCDDDC25 0EC675AD498AFEEAB6960B3AABE60003
6D6E919A48B610EF17C2041E47403576 0EC675AD498AFEEAB6960B3AABE60004
6B68642C59BBFC2F34DB60DBDFB2 0EC675AD498AFEEAB6960B3AABE60005