Как расшифровать алгоритм keccak
Я готовлю презентацию о Keccak ( http://keccak.noekeon.org/).
В этой презентации я хотел бы зашифровать простой текст, который поднимает следующие вопросы:
- Какова точная роль функции заполнения (как получить куб 1600 бит из 64 бит)?
- После шифрования текста, как мы можем расшифровать его снова?
2 ответа
Вы не можете "расшифровать" выходные данные Keccak, поскольку это не алгоритм шифрования, а односторонняя хеш-функция. Вместо этого вы используете его для проверки того, что хеш-значение действительно является хеш-выводом определенного текста (который вы уже должны знать), просто вычисляя хеш-код текста и сравнивая выходные данные с первым хеш-значением.
Обивка необходима для функции губки, поскольку Keccak использует конструкцию губки. В зависимости от ширины перестановки r
здесь я предполагаю, что вы используете 1600 битов, функция заполнения добавляет 10*1 к входному тексту, чтобы сформировать дополненную строку длины, кратную r
, Вот почему вы получаете 1600 бит из 64-битного текста.
Когда вы применяете алгоритм Кеккака к текстовому сообщению, вы получаете "дайджест сообщения". Keccak является победителем SHA3, где SHA обозначает алгоритм Secure Hash. По его названию вы можете сказать, что Keccak - это криптографическая хеш-функция, которая имеет три свойства:
- Сопротивление перед изображением
- Второе сопротивление перед изображением
- Сопротивление столкновению
Это в основном означает, что Keccek является односторонней функцией, и чрезвычайно трудно найти два сообщения, имеющих один и тот же дайджест сообщения, и наоборот. И первый пункт просто говорит вам, что вы не можете восстановить сообщение из дайджеста сообщения.