跳到主要内容

7.2.2. X9.17 Key Generation (X9.17密钥生成)

7.2.2. X9.17 Key Generation (X9.17密钥生成)

X9.17标准 [X9.17] 指定了一个用于金融应用的密钥生成机制.它假设熵可从时钟获得.它使用DES, 但更强的密码算法如三重DES或AES可以代替.

该技术通过使用DES加密时钟的表示来产生随机数流.这产生一个64比特的输出块, 然后用另一个密钥再次加密并与时钟组合, 以产生该迭代的密钥.此密钥的非线性函数与时钟值的非线性函数组合以生成下一次迭代的种子值.

具体来说, 使用EDE (加密-解密-加密) 符号来表示三重DES:

G = E[K1]( E[K2]( D[K1]( Time ) ) )
RandomValue = E[K1]( E[K2]( D[K1]( G XOR Seed ) ) )
Seed' = E[K1]( E[K2]( D[K1]( RandomValue XOR G ) ) )

其中K1和K2是两个秘密密钥, D和E分别是DES解密和加密, Seed'是用于下一次迭代的新种子.

该算法假设可以获得合理准确和未受损的时钟.如果可以操纵时钟或预测时钟值, 此技术就会被破坏.