Конструкция не может быть защищена CCA
Алгоритм, который вы написали, не говорит, как алгоритм дешифрования получает ключ проверки подписи.
Если ключ проверки является частью открытого ключа, то никто не сможет зашифровать, потому что никто не имеет доступа к ключу подписи (как заметил Марк в комментариях выше). Кроме того, это, похоже, не согласуется с вашим предложением использовать одноразовую подпись.
Если ключ проверки включен в зашифрованный текст (в открытом виде), то это тоже не работает. Теперь зашифрованные тексты имеют вид $$(c=\textsf{Enc}(pk,m), vk, \sigma=\textsf{Sign}(sk,c\|vk))$$ куда $(ск,вк)$ является парой ключей одноразовой подписи. Я могу взять зашифрованный текст этой формы, модифицировать $с$ в любом случае и заменить $вк,\сигма$ с моим собственным $вк',\сигма'$ что я генерирую. Это позволяет мне напрямую выполнять любую атаку с выбранным зашифрованным текстом против $\textsf{Enc}$ по этой новой схеме.
Если ключ проверки находится внутри шифрования, это лучше, но все равно небезопасно. Теперь зашифрованные тексты имеют вид $$(c=\textsf{Enc}(pk,m\|vk), \sigma=\textsf{Sign}(sk,c))$$ Цель состоит в том, чтобы новая схема была CCA-безопасной для Любые выбор CPA-secure $\textsf{Enc}$. Однако можно построить патологическую CPA-безопасную схему, в которой можно изменить $\textsf{Enc}(pk,m\|vk)$ в $\textsf{Enc}(pk,m\|vk')$ для любой $вк'$ по выбору злоумышленника и без ведома $м$ или же $вк$. Таким образом, атака CCA на новую схему предполагает изменение $с$ в $с'$ таким образом, с $вк'$ выбранный злоумышленником.Затем злоумышленник может сгенерировать правильную подпись на новом $с'$ и попросите его расшифровать, чтобы раскрыть $м$.
Не существует «простой» конструкции, которая компилирует безопасность CPA в CCA.
В криптографии есть известная открытая проблема:
Существует ли построение «черного ящика» CCA-защищенной схемы шифрования с открытым ключом из произвольной CPA-защищенной схемы шифрования с открытым ключом в простой модели?
Можно построить CCA-защищенную схему из CPA-защищенной схемы, если мы изменим параметры этой открытой задачи:
Если мы оставим простую модель и разрешим случайные оракулы, то преобразование Фуджисаки-Окамото обеспечит безопасность CCA.
Если мы разрешим конструкции, отличные от «черных ящиков», то сможем обеспечить безопасность CCA, используя преобразование Наора-Юнга. Не-черный ящик означает, что схема CCA-secure каким-то образом использует исходный код схемы CPA-secure. В случае Naor-Yung вам нужен исходный код схемы CPA-secure, чтобы доказать утверждение о нулевом знании о зашифрованных текстах.
Существует некоторое частичный прогресс доказывая эту открытую проблему - в частности, не может быть такой конструкции, если алгоритм дешифрования CCA не использует алгоритм шифрования CPA.
Все методы, которые вы используете в этом вопросе, относятся к категории «черных ящиков» и, следовательно, вряд ли будут полезны при построении схемы CCA-безопасности.
Аналогичные методы работают, если схема CPA основана на идентификации.
Ваша конструкция напоминает мне о Преобразование Канетти-Халеви-Каца из CPA-безопасного основанный на идентичности схему на CCA-защищенную (не основанную на идентификации) схему.
Позволять $\textsf{Enc}(pk,id,m)$ обозначают шифрование на основе идентичности (IBE) $м$ идентифицировать $id$, используя общедоступные глобальные параметры $пк$. Тогда конструкция ЧК такова:
$$ \textsf{Enc}^*(pk,m) = (vk, c = \textsf{Enc}(pk, vk, m), \sigma = \textsf{Sign}(sk,c)) $$
Другими словами, для шифрования:
- сгенерировать пару ключей для одноразовой подписи $(ск,вк)$.
- зашифровать открытый текст с помощью IBE, используя $вк$ как личность
- подпишите зашифрованный текст IBE с помощью $ск$
- дайте $вк$, зашифрованный текст IBE и подпись
Результатом является CCA-защищенность, и грубая интуиция состоит в том, что CPA-защищенный IBE может быть податливым по отношению к открытым текстам, но он не должен быть податливым по отношению к личности.