Вместо того, чтобы хранить пользовательские данные при взаимодействии с приложением, я сохраняю SHA3-256 данных.Это связано с тем, что хранение данных в этой конкретной среде очень ограничено.
Данные могут быть несколькими переменными, например, a, b и c, но вместо того, чтобы сохранять их по отдельности, я сохраняю хэш конкатенации: SHA3(a,b,c).
Когда пользователь хочет взаимодействовать с системой, он должен отправить переменные еще раз, и система сравнит хеш переменных вершины с сохраненным хэшем. Если они совпадают, система предполагает, что переменные совпадают с исходными. Итак, в этом примере я сохраняю только одну переменную вместо трех.
Данные общедоступны, поэтому известны всем. Вопрос, который у меня есть, заключается в том, есть ли проблема безопасности из-за хеширования конкатенации переменных (облегчает ли это пользователям поиск коллизии). Есть ли разница, если вместо этого я хеширую каждую переменную, а затем хеширую конкатенацию хэшей?
Чтобы уточнить вышеизложенное, причина, по которой я думаю, что это может облегчить пользователям поиск коллизий, заключается в том, что a, b и c имеют разные типы и имеют минимальные и максимальные значения; например, если c может принимать только значения от 10 до 1000, пользователи могут просто попробовать все возможные значения C, чтобы без особых усилий проверить наличие удачного столкновения. Это разумное беспокойство?
Обратите внимание, что не важно, кто отправляет данные, просто данные восхождения точно такие же, как и ранее.