RC2关键时间表

时间:2010-05-30 17:22:11

标签: cryptography rc2-cipher

有人可以解释RC2密钥计划的工作原理(特别是它的开头)吗?我知道它使用小端,但我的实现不适用于任何键,除了“0000 0000 0000 0000”

Test Vector
Key = 88bc a90e 9087 5a
Plaintext = 0000 0000 0000 0000
Ciphertext = 6ccf 4308 974c 267f

我假设关键的第一件事就是将其改为

bc88 0ea9 8790 5a

是的,我知道RC2甚至不再使用,但我仍然想知道

2 个答案:

答案 0 :(得分:1)

RC2的关键时间表已在RFC 2268 that defines RC2

中正确定义

答案 1 :(得分:1)

RFC说:

  

密钥扩展算法首先将提供的T字节密钥放入密钥缓冲区的字节L [0],...,L [T-1]。

因此,如果您的密钥为88bc a90e 9087 5a,则会获得L[0]=0x88, L[1]=0xbc, ... L[6]=0x5a

此处无需考虑任何结尾。

如果您想将密钥缓冲区视为16位字,则可以获得:

  

K [i] = L [2 * i] + 256 * L [2 * i + 1]

即。 K[0] = 0xbc88, K[1] = 0xa90e, K[2] = 0x8790。 L [7]仅在密钥扩展步骤中稍后分配,因此严格来说K [3]此时未定义。然而,请随意选择您想要的任何值,因为它对算法没有任何影响。如果选择0,则会得到K[3] = 0x005a