我找不到合适的测试向量来测试我根据" http://www.ecrypt.eu.org/stream/rabbitpf.html"的规范文件开发的Rabbit密码的代码。
但是,我在页面上的C源代码的zip文件中找到了一些测试向量" http://www.ecrypt.eu.org/stream/e2-rabbit.html"。 这里的测试向量有一个384位(128 * 3)的输出流,但规范文件规定每轮后只能获得128位输出密钥流。
有关正确性测试程序的任何帮助吗?
答案 0 :(得分:2)
您应该在IETF上查看Rabbit stream cipher RFC:https://tools.ietf.org/html/rfc4503
特别是附录A和B有一组测试向量,用于测试实现的正确性,以及在每次迭代后调试内部状态。
您可以查看RabitTest.java,了解我如何测试我的实施。
请注意,每个测试的输入都是相同的(0
的384位),这也是输出长度相同的原因。密钥的长度为128位,但这与输出的长度无关,因为它仅用于设置内部状态。在加密过程中,会生成密钥流,密钥流可能无限长,这就是密钥长度与输出长度无关的原因。