ラビン暗号システムは、 RSAと同様に、整数因数分解の難しさと関連した安全性を持つトラップドア関数に基づく公開鍵暗号化方式の一種である。[1] [2]
ラビンのトラップドア関数の利点は、逆関数の逆関数が整数の因数分解と同じくらい難しいことが数学的に証明されていることです。一方、RSA トラップドア関数にはそのような証明は知られていません。ラビン関数の各出力は、4 つの入力のいずれによっても生成される可能性があるという欠点があります。各出力が暗号文である場合、復号化時に 4 つの入力のどれが真の平文であるかを識別するために、余分な複雑さが必要になります。これを回避するための単純な試みは、多くの場合、選択暗号文攻撃によって秘密鍵を復元するか、平文空間に冗長性をエンコードすることで、因数分解に対するセキュリティの証明を無効にします。[1]
ラビントラップドア関数に基づく公開鍵暗号化方式は、主に教科書の例として使用されています。対照的に、RSA は、実際に広く使用されているRSAES-PKCS1-v1_5やRSAES-OAEPなどの標準的な公開鍵暗号化方式の基礎となっています。
歴史
ラビントラップドア関数は、1978年にマイケル・O・ラビンによってラビン署名方式の一部として初めて公開されました。[3] [4] [5]ラビン署名方式は、署名の偽造が因数分解と同じくらい困難であることが証明された 最初のデジタル署名方式でした。
トラップドア関数は後に教科書で公開鍵暗号化方式の例として再利用され、[6] [7] [1] ラビンが暗号化方式として公開しなかったにもかかわらず、ラビン暗号システムとして知られるようになりました。
暗号化アルゴリズム
すべての非対称暗号システムと同様に、Rabin システムでは、暗号化用の公開鍵と復号化用の秘密鍵の鍵ペアを使用します。公開鍵は誰でも使用できるように公開されますが、秘密鍵はメッセージの受信者のみが知っています。
キー生成
Rabin 暗号システムのキーは次のように生成されます。
- およびとなる2 つの大きく異なる素数 とを選択します。
- 計算します。
次に公開鍵と、そのペアが秘密鍵です。
暗号化
メッセージは、まず可逆マッピングを使用して数値に変換し、次に を計算することで暗号化できます。暗号文は です。
復号化
メッセージは、次のように平方根を法として暗号文から復元できます。
- 次の式を使用して、を法とする平方根を計算します。
- 拡張ユークリッドの互除法を使用して、 となる およびを見つけます。
- 中国剰余定理を使用して、を法とする4 つの平方根を求めます。
これら 4 つの値のうちの 1 つが元の平文ですが、追加情報がなければ 4 つのうちどれが正しいのかは判断できません。
平方根を計算する
上記のステップ 1 の式が実際に の平方根を生成することは、次のように示せます。最初の式では、 であることを証明します。指数は整数です。 であれば証明は簡単なので、 は を割り切れないと仮定できます。はを意味するので、c はを法とする平方剰余であることに注意してください。すると、
最後のステップはオイラーの基準によって正当化されます。
例
例えば、 と を取ると、 となります。を平文とします。したがって、暗号文は となります 。
復号化は次のように進行します。
- 計算して。
- 拡張ユークリッドの互除法を使用しておよび を計算します。 であることが確認できます。
- 4 つの平文候補を計算します。
そして、 が目的の平文であることがわかります。4 つの候補はすべて 15 mod 77 の平方根であることに注意してください。つまり、各候補について、となり、それぞれが同じ値 15 に暗号化されます。
デジタル署名アルゴリズム
ラビン暗号システムは、デジタル署名の作成と検証に使用できます。署名を作成するには、秘密鍵が必要です。署名の検証には、公開鍵が必要です。
署名
メッセージは次のように秘密鍵で署名できます。
- ランダムな値を生成します。
- 暗号ハッシュ関数 を使用してを計算します。ここで、二重バーは連結を表します。は 未満の整数である必要があります。
- 秘密鍵を使用しての平方根を求めます。これにより、通常の 4 つの結果が生成されます。
- 各 を二乗すると になると思われるかもしれません。しかし、これが成り立つのは、 が および を法とする平方剰余である場合のみです。これが成り立つかどうかを判断するには、 を二乗します。 が得られない場合、新しいランダムでこのアルゴリズムを繰り返します。適切な を見つけるまでにこのアルゴリズムを繰り返す必要があると予想される回数は4 です。
- の平方根を求めると、署名は になります。
署名の検証
メッセージの署名は、次のように公開鍵を使用して検証できます。
- 計算します。
- 計算
- 署名は、次の場合には有効であり、そうでない場合は偽造となります。
アルゴリズムの評価
効果
復号すると、正しい結果に加えて 3 つの誤った結果が生成されるため、正しい結果を推測する必要があります。これがラビン暗号システムの主な欠点であり、実用化が広範に行われなかった要因の 1 つです。
平文がテキストメッセージを表すことを意図している場合、推測することは難しくありません。しかし、平文が数値を表すことを意図している場合、この問題は何らかの曖昧性解消スキームによって解決しなければならない問題になります。この問題を排除するために、特別な構造を持つ平文を選択したり、パディングを追加したりすることができます。反転の曖昧さを排除する方法は、BlumとWilliamsによって提案されました。使用される2つの素数は、4を法として3に合同な素数に制限され、平方のドメインは平方剰余の集合に制限されます。これらの制限により、平方関数は落とし戸 順列になり、曖昧さが排除されます。[8]
効率
暗号化するには、 n を法とする平方を計算する必要があります。これは、少なくとも立方体の計算を必要とする RSAよりも効率的です。
復号化には、中国剰余定理と 2 つのモジュラー指数計算が適用されます。ここでの効率は RSA に匹敵します。
安全
すべての Rabin 暗号化暗号文の可能な平文の 1 つを見つけるアルゴリズムは、法 を因数分解するために使用できることが証明されています。したがって、ランダムな平文の Rabin 復号化は、少なくとも整数因数分解問題と同じくらい困難であり、これは RSA では証明されていません。因数分解には多項式時間アルゴリズムがないと一般に考えられており、これは、秘密鍵 なしでランダムな Rabin 暗号化値を復号化する効率的なアルゴリズムが存在しないことを意味します。
ラビン暗号システムは、暗号化のプロセスが決定論的であるため、選択平文攻撃に対する識別不能性を提供しません。暗号文と候補メッセージが与えられた場合、攻撃者は暗号文が候補メッセージをエンコードしているかどうかを簡単に判断できます (候補メッセージを暗号化すると、指定された暗号文が生成されるかどうかを確認するだけです)。
ラビン暗号システムは、選択暗号文攻撃に対して安全ではありません(チャレンジメッセージがメッセージ空間から一様にランダムに選択された場合でも)。[6] : 214 最後の 64 ビットの繰り返しなどの冗長性を追加することで、システムは単一のルートを生成するようにすることができます。これにより、この特定の選択暗号文攻撃が阻止されます。なぜなら、復号アルゴリズムは攻撃者がすでに知っているルートのみを生成するからです。この手法を適用すると、因数分解問題との同等性の証明に失敗するため、2004 年時点でこの変形が安全かどうかは不明です。ただし、Menezes、Oorschot、Vanstone による Handbook of Applied Cryptography では、ルートの検出が 2 部構成のプロセス(1. ルートと2. 中国剰余定理の適用)で ある限り、この同等性は可能性が高いと見なしています。
参照
注記
- ^ abc Galbraith, Steven D. (2012). 「§24.2: 教科書的ラビン暗号システム」公開鍵暗号の数学ケンブリッジ大学出版局 pp. 491– 494. ISBN 978-1-10701392-6。
- ^ ベッラーレ、ミヒル;ゴールドワッサー、シャフィ(2008 年 7 月)。 「§2.3.4 Rabin による二乗トラップドア関数候補」。暗号に関する講義ノート(PDF)。29~ 32ページ 。
- ^ Rabin, Michael O. (1978)。「デジタル署名」。DeMillo , Richard A.、Dobkin, David P.、Jones, Anita K.、Lipton, Richard J. (編)。『セキュアコンピューティングの基礎』。ニューヨーク: Academic Press。pp . 155– 168。ISBN 0-12-210350-5。
- ^ Rabin, Michael O. (1979 年 1 月)。因数分解と同じくらい扱いにくいデジタル署名と公開鍵関数(PDF) (技術レポート)。マサチューセッツ州ケンブリッジ、米国: MIT コンピュータサイエンス研究所。TR-212。
- ^ Bellare, Mihir ; Rogaway, Phillip (1996 年 5 月) 。Maurer, Ueli (編)。デジタル署名の厳密なセキュリティ - RSA と Rabin を使用した署名方法。暗号学の進歩 - EUROCRYPT '96。コンピュータ サイエンスの講義ノート。第 1070 巻。サラゴサ、スペイン: Springer。pp. 399 - 416。doi : 10.1007/3-540-68339-9_34。ISBN 978-3-540-61186-8。
- ^ ab Stinson, Douglas (2006). 「5.8」.暗号: 理論と実践(第 3 版). Chapman & Hall/CRC. pp. 211– 214. ISBN 978-1-58488-508-5。
- ^ Menezes, Alfred J. ; van Oorschot, Paul C. ; Vanstone, Scott A. ( 1996年 10 月)。「§8.3: Rabin 公開鍵暗号化」。応用暗号ハンドブック(PDF)。CRC プレス。pp. 292– 294。ISBN 0-8493-8523-7。
- ^ Bellare, Mihir ; Goldwasser, Shafi (2008 年 7 月)。「§2.3.5 因数分解と同じくらい逆変換が難しい平方順列」。暗号に関する講義ノート(PDF) 。32 ~ 33ページ 。
参考文献
- ブッフマン、ヨハネス。暗号の Einführung。第 2 版。ベルリン: Springer、2001 年。ISBN 3-540-41283-2
- Menezes, Alfred; van Oorschot, Paul C.; Vanstone, Scott A. Handbook of Applied Cryptography . CRC Press, 1996 年 10 月。ISBN 0-8493-8523-7
- ラビン、マイケル。因数分解と同じくらい扱いにくいデジタル署名と公開鍵関数(PDF 形式)。MIT コンピュータサイエンス研究所、1979 年 1 月。
- Scott Lindhurst、「有限体における平方根を計算するための Shank アルゴリズムの分析」、R Gupta および KS Williams、「Proc 5th Conf Can Nr Theo Assoc、1999、vol 19 CRM Proc & Lec Notes、AMS、1999 年 8 月。
- R Kumanduri および C Romero、「Number Theory w/ Computer Applications、Alg 9.2.9」、Prentice Hall、1997 年。素数を法とする二乗剰余の平方根の確率。
外部リンク
- Menezes、Oorschot、Vanstone、Scott: 応用暗号ハンドブック (無料 PDF ダウンロード)、第 8 章を参照
