Cramer-Shoup暗号

Cramer-Shoup暗号（クレーマー シュープあんごう）とは暗号理論における暗号方式の一つ。に対する安全性（IND-CCA2）がで証明された初の効率的な公開鍵暗号である。
安全性はの計算理論的な非展性（但し証明はされていない）に基づいている。
1998年にとによって提案されたもので、ElGamal暗号の拡張になっている。
ElGamal暗号は頑強性を持たないが、Cramer-Shoup暗号は別の要素を加えることでより強力な攻撃者に対しても頑強性を達成している。
この頑強性は万能一方向ハッシュ関数の利用とElGamal暗号にはない計算の追加によって得られており、その結果、暗号文の長さはElGamal暗号の2倍になる。
概要.
CramerとShoupによって示された安全性の正確な定義は、適応的選択暗号文攻撃に対する識別不可能性 (IND-CCA2) である。
これは公開鍵暗号の安全性としては現時点で最も強力な定義である。
この定義においては、攻撃者は「復号オラクル」を利用できるが、これは問い合わされたいかなる暗号文でもその暗号方式の秘密鍵を用いて復号できる神託機械である。
「適応的」とは、攻撃者が攻撃対象とする暗号文を知る前にも後にも復号オラクルを利用可能である、ということを意味する。ただし攻撃対象である暗号文をそのまま復号オラクルに問い合わせることは禁止されている。
これより弱い安全性の定義として、適応的でない選択暗号文攻撃 に対する識別不可能性(IND-CCA1)があるが、こちらの場合は攻撃対象となる暗号文を知る前に限り復号オラクルを利用できる。
こうした攻撃者に対しては、普及している多くの暗号方式が安全でないのは有名な話だったが、暗号方式の設計者は、そのような攻撃は非現実的であり理論的興味に過ぎないと長年考えていた。
ところがこの風潮は1990年代後半より変わり始めた。理由としては、特にがRSA暗号の一種を用いたSSLサーバに対する実用的な適応的選択暗号文攻撃を提出したことなどが大きい。
Cramer-Shoup暗号が初のIND-CCA2安全な暗号というわけではない。
NaorとYung、RackoffとSimon、DolevとDworkとNaorが、IND-CPA安全な暗号をIND-CCA1安全やIND-CCA2安全な暗号に変換する方法を提案している。
これらの方法は標準的な仮定のもとで（ランダムオラクル無しに）安全である。しかし複雑なゼロ知識証明のテクニックを用いており、計算コストと暗号文の長さの面で効率が悪い。
他のアプローチとしては、とらによるOAEPや藤崎-岡本変換が知られている。これらはランダムオラクルという数学的抽象観念を用いて効率の良い構成を達成しているが、不幸なことに、実装するにはランダムオラクルを何らかの現実的な関数（暗号学的ハッシュ関数）で置き換えなければならない。
そうした実装例に対して、実用的な攻撃方法が提出された訳ではないが、研究が進むにつれ、この種のアプローチでは安全性を証明することが困難であることが判ってきている。
暗号方式.
鍵生成、暗号化、復号について説明する。
暗号化.
平文formula_12を公開鍵formula_13で暗号化する。
復号.
暗号文formula_23を秘密鍵formula_25で復号する。
formula_30とformula_31より、正しい暗号文であれば、正しく復号される。
もし、取りうる平文空間がformula_2の位数よりも大きい場合には、ハイブリッド暗号を利用することができる。メッセージを短く分割してそれぞれを暗号化する、という単純な方法では、安全性が保てないことに注意。