[Только случайное OT криптографической хотя, что я думал, что я записываю, прежде чем я забуду.]
Боб хотел бы иметь некоторые Элис предоставить ему случайно переставленную колоду карт, которые зашифрованы с секретами неизвестного ему. Он не доверяет Алисе, чтобы выполнить эту задачу точно. Они могут использовать этот протокол:
Во-первых, Алиса выбирает секретное значение. Затем Алиса расширяет это секретное значение в двух секретных значения с помощью H (Секретного | 1) и Н (Секретного | 2), где Н некоторый криптографический хэш. Алиса повторяет этот процесс рекурсивна, создавая дерево тайных значений, пока она не имеет окончательный набор зача- сказать- 65536 секретных значений.
Затем Алиса вычисляет дерево обязательства в отношении этих 65536 тайных значений хеширования их в парах, чтобы сформировать корень хэш дерева.
Затем Алиса совершает к этому корню, говоря его Бобу.
Затем Боб выбирает случайное число долго и говорит Алисе.
Алиса генерирует 65536 заказанные колоды карт и приступает к их шифрования с использованием первой половины каждого из ее 65536 тайных значений.
Затем Алиса хэш второй половины секретного значения со случайным числом Боба и использует результат вбить ПГСЧ справедливо тасовать колоды.
Затем Алиса вычисляет другое дерево обязательство, на этот раз над зашифрованной перестановкой палубами, и дает результат Бобу.
Затем Боб выбирает 1 колоду использовать и 65535 из 65536 на палубах Алиса расшифровывать открыть ему. Алиса считает дерево тайных значений и посылает минимальное количество секретов, необходимых для Боба, чтобы восстановить все секреты, кроме одного, не для открывшейся палубы: это будет не более чем log2 (N) = 16 значений.
Алиса также посылает не-показал зашифрованную колоду.
Теперь Боб может повторить вычисление Алисы и пересчитывать корень быть и уверен, что колода у него есть хорошая (с безопасностью связана с числом палуб, р>= 65555/65536 будучи захваченным в этом примере).
Использование дерева структурированы CSPRNG в этом протоколе, чтобы генерировать секреты уменьшает отправку 65536 колод до отправки 16 тайных значений.
Я изначально была идея использования дерева структурированы секреты, когда речь идет о том, чтобы сделать подписи Лампорт меньше. Сжатие в случае Лампорт подписи не очень велика, так как значение подписываются является случайной хэш (так это только уменьшает средний размер 1/3 или что-то подобное). В протоколе, как это, где все, но один секрет раскрывается доказательство невероятно скудны и сжатие огромно.
Если заменить колоды карт в этом игрушечном примере с избирательными бюллетенями в гомоморфноге перешифрования смесителя, используемые для безопасного голосования на менее глупый пример того, как это может быть использовано. Или, по этому вопросу, как механизм надежно перетасовать данные транзакции улучшить конфиденциальность для пользователей Bitcoin.
Для Лампорта подписей в Bitcoin мы могли бы еще больше сжать подписи, перемещая все, кроме корня подписи из блока, то с помощью хэш-блока как хаотичность нашего валидатор, чтобы детерминировано выбрать небольшие подмножества доказательств, чтобы включить в блоке, который мы уменьшаем в размер как блок становится далее похоронило ... как вычислительные затраты добычи предотвращает неверную поручителя от подмены подписи по постоянно повтор. ... и это может быть достигнуто в одном блоке, а не нуждаясь в пространстве атрофии двухступенчатый обязательства, что Гай Фоксу подписи обычно требует, так как полное несжатого доказательство может быть отправлено на шахтер.
Это огромное сокращение пропускной способности, необходимой для разумных уровней безопасности для вырезания и выбор протоколов для доказательства верности в этих средах. (Другие методы могут быть меньше и легче вычислить, но это требует меньшего количества фантазии математики, который является полезным, если доверие требует пользователей, чтобы понять протокол).