検証可能な暗号、Camenish−Shoup暗号
以下の記事で紹介した論文に登場したCamenish-Shoup暗号について紹介する記事です。
Camenish-Shoup暗号
検証可能な暗号化と復号が行える暗号方式であり、Crammer-Shoup暗号とPailier暗号を合わせたような形をしている。Crammer-Shoup暗号は検証可能な復号機能を持っており、適応的選択暗号文攻撃(IND-CCA2)である方式だが、暗号化は検証可能ではなかった。Camenish-Shoup暗号では暗号機能とは独立したΣプロトコルを用いることで暗号化の正当性を証明する。また、加法準同型性を持つ。
方式
鍵生成
ソフィージェルマン素数とはも素数であるようなのこと。このとき、は安全素数という。
]とそのラベルを公開鍵で暗号化し、とする。この時、乱数]を生成して使用する。
復号
性質
IND-CCA2安全性
DCR仮定とハッシュ関数の衝突困難性のもと、Camenish-Shoup暗号は適応的選択暗号文攻撃に対して安全である。
加法準同型
暗号文は同じ公開鍵で暗号化されたと掛け算を行うと
これはの暗号文なので、加法準同型性を持つ。
検証可能な暗号化
検証可能とは、復号や暗号化の時に暗号状態で不正かどうかチェックして計算を中止できる機能のこと。Crammer-Shoup暗号は検証可能な復号機能が暗号方式に組み込まれていた。
Camenish−Shoup暗号では検証可能な復号機能に加え暗号方式とは別にΣプロトコルを行い、暗号化が正しいことも証明する。このプロトコルはPがVに対して、暗号文が確かに公開鍵とラベルによって暗号化されていることを証明する。このプロトコルはstrong RSA仮定のもと、verifiable encryptionである。
まとめ
このCamenish-Shoup暗号は非常に複雑な暗号文をしているので、実際に最初に紹介した記事の論文ではMalicious Securityを保証するのにも活用されていまし、Σプロトコルでゼロ知識証明できる機能が提供されているのは応用がききそうですね。