Векторы проверки правильности Rabbit Stream Cipher (v 1.1)
Я не могу найти правильные тестовые векторы для проверки моего кода для шифра Кролика, который я разработал в соответствии с файлом спецификаций с http://www.ecrypt.eu.org/stream/rabbitpf.html.
Однако я нашел несколько тестовых векторов в zip-файле исходного кода C на странице " http://www.ecrypt.eu.org/stream/e2-rabbit.html". Тестовые векторы здесь имеют выходной поток в 384 бита (128*3), но в файле спецификации говорится, что после каждого раунда получается только 128-битный поток выходных ключей.
Любая помощь в процедуре проверки на правильность?
1 ответ
Вы должны посмотреть на RFC потокового шифра Кролика на IETF: https://tools.ietf.org/html/rfc4503
Приложение A и B содержит набор тестовых векторов для проверки правильности вашей реализации, а также для отладки внутреннего состояния после каждой итерации.
Вы можете заглянуть в RabitTest.java, чтобы увидеть, как я тестировал свою реализацию.
Обратите внимание, что входные данные одинаковы для каждого теста (384 бита 0
), и поэтому выход также имеет такую же длину. Длина ключа составляет 128 бит, но это не имеет никакого отношения к длине вывода, потому что он используется только для настройки внутренних состояний. В процессе шифрования генерируется поток ключей, который может быть бесконечно длинным, поэтому длина ключа не связана с длиной вывода.