これはどの複雑なグループ(例:古典的なコンピューターや量子コンピューター)で、どのタスク(アルゴリズム)がこのタスクを達成するのに最適なのでしょうか。
上記のウィキペディアのリンクは、実際に非常に具体的なランタイムを提供していません。私は、そのようなものを見つけるための最もよく知られている方法と同じようなものを望んでいます。
これはどの複雑なグループ(例:古典的なコンピューターや量子コンピューター)で、どのタスク(アルゴリズム)がこのタスクを達成するのに最適なのでしょうか。
上記のウィキペディアのリンクは、実際に非常に具体的なランタイムを提供していません。私は、そのようなものを見つけるための最もよく知られている方法と同じようなものを望んでいます。
回答:
短い答え。離散対数問題の
適切な決定問題バージョンを定式化すると、複雑度クラスNP、coNP、およびBQPの共通部分に属することを示すことができます。
Discrete Logの決定問題バージョン。
離散対数問題は、ほとんどの場合、関数の問題として定式化され、整数のタプルを別の整数にマッピングします。この問題の定式化は、人々が検討することを好む複雑性クラスP、BPP、NPなどと互換性がなく、決定(yes / no)問題のみに関係します。効果的に同等である離散対数問題の決定問題バージョンを検討することができます。
離散ログ(決定問題)。プライム所与、ジェネレータ∈ Z × N乗算ユニットはモジュロNを、整数0 < C < N、及び上限B ∈ Nを、そこに存在するかどうかを決定1 ⩽ L ⩽ Bよう。
これにより、効率的に解くことができれば、バイナリ検索によってNを法とするlog a(c)を実際に計算できます。次に、この問題がどの複雑度クラスに属するかを尋ねます。約束の問題として表現していることに注意してください:が素数であるという要件を一時停止することで決定問題に拡張できますが、これらの制限が保持する条件を追加します問題の「はい」インスタンス。∈ Z × N
離散ログはBQPにあります。
離散対数の計算にShorのアルゴリズムを使用すると(量子コンピューターでの素因数分解と離散対数の多項式時間アルゴリズム)、BQPに離散対数を簡単に含めることができます。(テストするかどうかを発電され、実際に、私たちは順番を見つけるために、離散対数アルゴリズムの基礎と同じ紙にショアの注文-見つけるアルゴリズムを使用することができますし、と比較してください。) N - 1
離散ログはNP∩coNPにあります。
実際にが素数でがジェネレーターである場合、決定問題の 'YES'または 'NO'インスタンスに十分な証明書は一意の整数ように。したがってと条件が成り立つかどうかを証明できることを示すだけで十分です。腕章の以下の暗号の複雑さにAノートを、それがある場合は、両方のことをケース素数であるとは発電機である、それはケースつまり
∈ Z × N 0 ⩽ L < N - 1 L ≡ CR N - 1 ≡ 1
上の制約という証明書との両方のホールドは素因数のリストになり割る、私たちは、上記の合同制約をテストすることができます。(必要に応じてAKSテストを使用して各が素数であるかどうかをテストし、それらの素数のみで素数分解を見つけることにより、これらがすべて素因数であることをテストできます。)
証明書の制約の1つということまたは整数であろう失敗分周、例えばその。この場合、の素数性をテストする必要はありません。これはの次数がより小さいことを直ちに意味するため、が素数でない場合にのみ乗法群の生成元になります。
一般的な最悪のシナリオでは、Niel de Beaudrapの答えは正しいです。私の知る限りです。
ただし、素因数が小さい場合、Pohlig-Hellmanアルゴリズムは時間の対数を求め。したがって、この場合、離散ログ問題はます。そのため、暗号化プロトコルがこの問題の難易度に依存する場合、が大きな素因数を持つように、モジュラスを選択することが重要です。