Paillier暗号システムは、1999 年に Pascal Paillier によって発明され、その名が付けられた、公開鍵暗号用の確率的非対称アルゴリズムです。n番目の剰余類を計算する問題は、計算上困難であると考えられています。決定的複合剰余仮定は、この暗号システムが基づいている 難解性仮説です。
この方式は加法準同型暗号システムです。つまり、公開鍵とおよびの暗号化のみが与えられれば、 の暗号化を計算できます。
アルゴリズム
このスキームは次のように機能します。
キー生成
- 2つの大きな素数とをランダムに、かつ互いに独立に選び、 を満たす。この性質は、両方の素数の長さが等しい場合に保証される。[1]
- 計算します。lcmは最小公倍数を意味します。
- ランダムな整数を選択
- の位数が次のモジュラ乗法逆数の存在によって割り切れることを確認します。
- 公開(暗号化)鍵は です。
- 秘密鍵(復号鍵)は
同等の長さのp、qを使用する場合、上記のキー生成手順のより単純な変形は、およびを設定することです。ここで、。[1]実装の目的では、 より単純な変形が推奨されます。これは、一般的な形式では、十分に大きな素数p、qの場合、の計算時間が非常に長くなる可能性があるためです。
暗号化
- 暗号化されるメッセージがあるとする。
- およびとなる ランダムな値を選択します。(注: となる値が見つかった場合は、これを使用して秘密鍵を計算できます。これは無視できるほどありそうにありません。)
- 暗号文を次のように計算します。
復号化
- を復号する暗号文とします。ここで
- プレーンテキストメッセージを次のように計算します。
元の論文[2]が指摘しているように、復号化は「本質的には を法とする1つの累乗法」です。
準同型性
Paillier 暗号システムの注目すべき特徴は、非決定論的暗号化とともに準同型特性を備えていることです (使用方法については、アプリケーションの電子投票を参照してください)。暗号化関数は加法準同型であるため、次のアイデンティティを記述できます。
- 平文の準同型加算
- 2つの暗号文の積は、対応する平文の合計に復号化される。
- 暗号文と平文の積は、対応する平文の合計に復号化される。
- 平文の準同型乗算
- 暗号文を平文で累乗すると、2つの平文の積に復号化されます。
- より一般的には、定数kの乗じられた暗号文は、平文と定数の積に復号化される。
しかし、2 つのメッセージの Paillier 暗号化を考えると、秘密鍵を知らずにこれらのメッセージの積の暗号化を計算する方法は知られていません。
背景
Paillier 暗号システムは、特定の離散対数が簡単に計算できるという 事実を利用します。
例えば二項定理により、
これは次のことを示しています:
したがって、次の場合:
それから
- 。
したがって:
- 、
- ここで関数は(整数除算の商) およびとして定義されます。
セマンティックセキュリティ
上記に示した元の暗号システムは、選択平文攻撃 ( IND-CPA ) に対する意味的セキュリティを提供します。チャレンジ暗号文を正常に区別する能力は、本質的には複合残余を決定する能力に相当します。いわゆる決定的複合残余仮定(DCRA) は、扱いにくいと考えられています。
しかし、前述の準同型特性のため、システムは柔軟であり、したがって、最高レベルの意味的セキュリティ、適応型選択暗号文攻撃 ( IND-CCA2 ) に対する保護を享受できません。通常、暗号化では、柔軟という概念は「利点」とは見なされませんが、安全な電子投票やしきい値暗号システムなどの特定のアプリケーションでは、この特性が実際に必要になる場合があります。
しかし、Paillier と Pointcheval は、メッセージmとランダムr を組み合わせたハッシュを組み込んだ改良された暗号システムを提案しました。Cramer -Shoup 暗号システムと意図が似ていますが、ハッシュにより、cのみを与えられた攻撃者がm を意味のある方法で変更するのを防止します。この適応により、改良された方式は、ランダム オラクル モデルでIND-CCA2安全であることが示されます。
アプリケーション
電子投票
意味的セキュリティだけが考慮すべき事項ではありません。 柔軟性が望ましい状況もあります。 安全な電子投票システムでは、上記の準同型特性を利用できます。 単純な 2 値 (「賛成」または「反対」) 投票を考えてみましょう。m人の投票者が1 (賛成) または0 (反対)のいずれかに投票します。 各投票者は投票する前に選択を暗号化します。 選挙管理官は、暗号化されたm票の積を取り、その結果を復号化して値nを取得します。これはすべての投票の合計です。 選挙管理官は、n人が賛成に投票し、mn人が反対に投票したことがわかります。 ランダムrの役割により、2 つの同等の投票が同じ値に暗号化される可能性はごくわずかであるため、投票者のプライバシーが確保されます。
電子マネー
論文で言及されているもう 1 つの機能は、自己ブラインドの概念です。これは、暗号文を別の暗号文に変更しても、その復号化の内容は変更されないというものです。これは、もともとDavid Chaumが先頭に立っていた取り組みであるecashの開発に応用されています。オンラインで商品の支払いをするときに、販売者がクレジットカード番号、つまりあなたの身元を知る必要がないことを想像してみてください。電子マネーと電子投票の両方の目標は、電子コイン (電子投票も同様) が有効であることを保証すると同時に、現在関連付けられている人物の身元を明らかにしないことです。
電子オークション
Pailler暗号システムは、電子オークションのセキュリティを強化する上で重要な役割を果たしています。不正な競売人や、入札者と競売人の共謀による入札操作などの不正行為を防止します。オークション結果を公開しながら実際の入札値の機密性を確保することで、Pailler暗号システムは公正な慣行を促進することに成功しています。[3]
閾値暗号システム
Paillier暗号の準同型性は、しきい値ECDSA署名の構築に使用されることがあります。[4]
参照
- ナカシェ・シュテルン暗号システムと岡本・内山暗号システムは、パイリエ暗号システムの歴史的な先例です。
- Damgård –Jurik 暗号システムはPaillier 暗号の一般化です。
参考文献
- Paillier, Pascal (1999)。「複合次数残余クラスに基づく公開鍵暗号システム」(PDF)。暗号学の進歩 - EUROCRYPT '99。EUROCRYPT。Springer。doi :10.1007/3-540-48910-X_16。
- Paillier, Pascal; Pointcheval, David (1999). 「有効な公開鍵暗号システムは、アクティブな敵に対して確実に安全である」ASIACRYPT . Springer. pp. 165–179. doi : 10.1007/978-3-540-48000-6_14 .
- パイリエ、パスカル (1999)。複合残留性に基づく暗号システム(博士論文)。エコール国立高等通信局。
- Paillier, Pascal (2002). 「複合残差に基づく暗号化: 概要」(PDF) . CryptoBytes . 5 (1). 2006 年 10 月 20 日のオリジナル(PDF)からアーカイブ。
注記
- ^ ジョナサン・カッツ、イェフダ・リンデル、「現代暗号入門:原理とプロトコル」、チャップマン&ホール/CRC、2007年
- ^ Paillier, Pascal (1999)。 「複合次数残余クラスに基づく公開鍵暗号システム」。暗号学の進歩 — EUROCRYPT '99。コンピュータサイエンスの講義ノート。第 1592 巻。Springer。pp. 223–238。doi : 10.1007 /3-540-48910- X_16。ISBN 978-3-540-65889-4。
- ^ Pan, M., Sun, J., & Fang, Y. (2011). 裏取引の排除: Paillier 暗号システムを活用した安全なスペクトルオークション。IEEE Journal on Selected Areas in Communications、29(4)、866–876。https://doi.org/10.1109/JSAC.2011.110417
- ^ Canetti, Ran; Gennaro, Rosario; Goldfeder, Steven; Makriyannis, Nikolaos; Peled, Udi (2020 年 10 月 30 日)。「UC 非対話型、プロアクティブ、しきい値 ECDSA と識別可能なアボート」。2020 ACM SIGSAC コンピューターおよび通信セキュリティ会議の議事録。Association for Computing Machinery。pp. 1769–1787。doi : 10.1145 /3372297.3423367。ISBN 9781450370899.S2CID 226228099 。
外部リンク
- 準同型暗号プロジェクトは、Paillier 暗号システムとその準同型演算を実装します。
- Encounter: Paillier 暗号システムの実装と、それに基づく暗号化カウンターの構築を提供するオープンソース ライブラリ。
- python-paillier は、浮動小数点数を完全にサポートする、Python の部分準同型暗号化ライブラリです。
- Paillier 暗号システム対話型シミュレーター (2012-02-18 にWayback Machineでアーカイブ) は、投票アプリケーションをデモンストレーションします。
- Paillier 暗号システムのインタラクティブなデモ。
- インタラクティブなデモを備えた Paillier 暗号システムの概念実証 Javascript 実装。
- 暗号化方式を使用した投票に関する GoogleTechTalk ビデオ。
- Paillier 準同型加算とゼロ知識証明プロトコルの Ruby 実装 (ドキュメント)
