Как фанат PKI, если гомоморфная криптофункция была также системой ассимметричного ключа, то у вас есть действительно интересные возможности в мире подписывания. Лицо, подписавшее документ, потенциально может подписать сообщение, а получатель может повторно передать часть сообщения и соответствующую часть текста шифра третьей стороне.
В обозначениях функций это будет:
Пользователь подписывает:
знак (открытый текст, закрытый ключ) = зашифрованный текст
и передает:
отправить (открытый текст, зашифрованный текст, сертификат)
Приложение получает сегменты:
открытый текст = требуемый открытый текст + другой открытый текст
и вычисляет то же преобразование зашифрованного текста, используя что-то вроде:
если зашифрованный текст: обычный текст, то ?? :: требуемый открытый текст
чтобы найти желаемый шифротекст
Приложение перенаправляет желаемый контент только на внешний сервис:
отправить (желаемый открытый текст, желаемый шифрованный текст, сертификат)
И служба может проверить это сообщение, как если бы пользователь отправил его напрямую.
Это зависит от алгоритма хеширования, используемого для сжатия открытого текста, также являющегося гомоморфным. Если нет, это не сработает ... или что алгоритм хэширования не применяется.
Это может быть очень полезно в тех случаях, когда вы хотите, чтобы внешняя служба что-то делала в ответ на подписанный запрос пользователя, но вы не хотите раскрывать все, что пользователь отправил этой внешней службе.
Одним из примеров может быть простая система заказа посылок - я отправляю веб-приложению запрос на покупку коллекции предметов. Чтобы быть сверхбезопасным, я подписываю Заказ на поставку, который подтверждает, что я хочу (и обещаю оплатить) некоторое количество товаров, отправленных в определенное место, к определенной дате и с определенной информацией об оплате. Теперь .. веб-приложение захочет, чтобы произошло несколько вещей:
- Финансам нужно снять деньги с моего счета и начать получать от меня платеж
- В инвентаре необходимо вытащить предметы со склада или справиться с любыми проблемами на складе
- Доставка необходимо получить из инвентаря и переместить вещи на мой адрес
Инвентаризации или доставке нет причин знать, как я оплачиваю свой счет. И, возможно, у финансов не будет причин знать мой адрес доставки ... В каждом случае требуемый открытый текст и требуемый зашифрованный текст изменяются в зависимости от того, кто является получателем. Это еще более эффективно в системе, такой как используемые на Amazon.com книги, в которой сущность, которую я купил (Amazon), отличается от сущности, предоставляющей предмет (продавец подержанной книги).
Читая статью о решетчатой криптографии, это звучит больше как система симметричных ключей ... которая не очень способствует подписанию сообщений.
Что касается понятия «никогда не говори никогда», я бы не сказал, что было бы неразумно использовать его для приложений конфиденциальности. Но кажется явно проблематичным, что вы можете найти несколько способов перехода от зашифрованного текста к открытому тексту.