Существует ли алгоритм, который позволяет доказать, что ввод х1
использовался как 1 из N входных данных для создания выходного хэша у
, не зная других входных данных?
т.е. например, если есть 5 пользователей, предоставляющих входной хэш, можем ли мы создать выходной хэш, который позволит каждому отдельному пользователю проверить, что его ввод был частью входных данных, и ему не нужно знать все остальные входные данные?
(можно узнать все входные данные в процессе проверки, входные данные не являются секретными, просто они недоступны)
Еще немного информации о конкретном варианте использования:
- Мне нужно представить состояние системы в краткой форме (хэш?).
- Состояние постоянно изменяется/развивается на основе новых пользовательских данных.
- Должен быть способ проверить, отражен ли уже определенный пользовательский ввод в текущем состоянии.
Грубым подходом было бы представление состояния системы в виде списка входных данных, но это не работает из-за некоторых ограничений.
Поэтому я надеялся, что может быть криптографическая функция, которая позволит представить состояние в краткой форме. Я изучал деревья Меркле, схемы с несколькими подписями и т. д., но пока не нашел ничего, что действительно соответствовало бы всем требованиям.