我遇到了这个问题,我的 RC-6 算法没有产生它应该(由规范文档)更好地更清楚的密文,让我举个例子
如您所见,当纯文本和密钥由零字节组成时,它通过了两个测试 -> 密文和解密文本测试
为了更清楚地说明这一点,密码值(正确和错误)也在加密后以小端方式排序。
所以我的问题是 -我应该在哪里查找无效代码?
我有一种感觉,在将字节排序传递给加密或密钥调度函数之前,它与字节排序有关。
我传递给密钥调度和加密函数的值是简单的 32 位字数组(例如[0x00,0x10,0x00,0x00]
),然后我将一个直接移到算法(我写的查看伪代码),因此在此之前没有进行其他格式化。
它们也开始如下:
def encrypt(plaintext,S):
A,C = plaintext[0],plaintext[2]
B = modulus(plaintext[1]+S[0])
D = modulus(plaintext[3]+S[1])
for i in range(1,r+1):
....
def keyGenerator(L):
c = len(L)
S = [int(0)]* (2*r+4)
S[0] = P
....
我可以使用任何帮助..
先感谢您!
顺便说一下,官方的测试向量可以在这个文件的附录中