谁能解释一下RC2密钥调度是如何工作的(特别是它的开始部分)?我知道它使用小端,但我的实现对除"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甚至不再使用了,但我仍然想知道
发布于 2010-05-31 04:51:14
RFC说:
密钥扩展算法首先将提供的T字节密钥放入密钥缓冲区的字节L,...,LT-1中。
所以如果你的密钥是88bc a90e 9087 5a,你就会得到L[0]=0x88, L[1]=0xbc, ... L[6]=0x5a。
这里不需要考虑任何字节顺序。
如果你想把key-buffer当做16位字来处理,你会得到:
Ki = L2*i + 256*L2*i+1
即K[0] = 0xbc88, K[1] = 0xa90e, K[2] = 0x8790。L7只在稍后的键扩展步骤中分配,所以严格地说,K3在这一点上是未定义的。但是,您可以随意选择您想要的任何值,因为这对算法没有任何影响。如果选择0,则会得到K[3] = 0x005a。
https://stackoverflow.com/questions/2939580
复制相似问题