Как я могу решить эту проблему: у меня есть ориентированный граф узлов, которые могут быть вредоносными, и все они имеют частное значение.
- Рассмотрим узел «B» с закрытым значением «BPrivateValue = b».
- Предок B называется «A», а частное значение A — «APrivateValue = a».
- Потомок B называется «C», а частное значение C — «CPrivateValue = c».
Я хочу, чтобы каждый узел в этом графе мог делать следующее (здесь мы просто рассматриваем узел B для простоты):
- B взаимодействует с A и выясняет, является ли APrivateValue > BPrivateValue или APrivateValue < BPrivateValue. Но ничто иное, как это сравнение, не просачивается к А и Б в отношении частной ценности другой стороны.
- если APrivateValue < BPrivateValue B изменяет свое личное значение на «a», то есть BPrivateValue = a (обратите внимание, что на самом деле B не знает значение a, у него есть обязательство или шифрование «a», но он знает, что должен изменить свое частная стоимость)
- Теперь C делает то же самое с B, и этот протокол продолжается до последнего узла на этом пути в графе. В конце концов, выходом является обязательство или шифрование минимального частного значения в этом пути.
Теперь, какая схема или инструмент, по вашему мнению, может помочь мне реализовать эту функциональность. В первую очередь я подумал об асимметричном шифровании с сохранением конфиденциальности. Все узлы шифруют свое частное значение и отправляют шифрование следующему узлу. Следующий узел выполняет сравнение и отправляет зашифрованное значение минимального частного значения следующему узлу. Но потом я понял, что асимметричное шифрование с сохранением конфиденциальности вообще небезопасно, и любой может вычислить открытый текст, соответствующий зашифрованному тексту, с помощью простого двоичного поиска. Итак, что вы предлагаете?