Использование AES с целью коммитмента
Можно ли для коммитмента данных B размером в AES-блок вместо хеш-функции H(B) использовать значение C=AESB(B)?
По идее, функция необратимая и должна обеспечивать и binding, и hiding.
Так ли это? Используется ли такой подход на практике вместо хеш-функций?
Ссылки
[link1] https://en.wikipedia.org/wiki/One-way_compression_function
На картинках в вики показано[link1], что используется на практике. Кроме того, блок AES для этого слишком мал, а поскольку он и нестоеек к атакам со связанным ключами, то лучше из него хэш-функцию по приведённым схемам не делать.
Можно. Безопасно, но неэффективно.
Классический вариант: С = B xor AES(B,k), где k – несекретный ключ.
Чтобы не переинициализировать раундовые ключи всякий раз.
http://www.zas-comm.ru
Спасибо. Можно ссылку, или хотя бы авторов?
Можете рассмотреть это для вашего случая как вариант Matyas–Meyer–Oseas из ссылки в вики, приведённой выше. Вместо g(Hi-1) — произвольный фиксированный несекретный ключ.