回答:
NP完全問題の最悪の硬度は、暗号化には十分ではありません。NP完全問題が最悪のケース()で困難な場合でも、平均的なケースで効率的に解決できる可能性があります。暗号化では、NPでの平均的なケースの扱いにくい問題の存在を想定しています。また、P ≠ N Pの仮定を使用してNPにハードオンアベレージ問題の存在を証明することは、大きな未解決の問題です。
優れた読み物は、ラッセル・インパグリアッツォの古典、平均ケースの複雑さの個人的な見解、1995年です。
優れた調査は、BogdanovとTrevisanによるAverage-Case Complexity、Foundation and Trends in Theoretical Computer Science Vol。2、No 1(2006)1–106
があった。
そのような例の1つに、McEliece暗号システムがあります。これは、線形コードのデコードの困難さに基づいています。
2番目の例はNTRUEncryptです。これは、NP-Hardであることがわかっている最短ベクトル問題に基づいています。
もう1つは、壊れたMerkle-Hellmanナップザック暗号システムです。
注:最初の2つが壊れているか、どれだけ良いかはわかりません。私が知っているのはそれらが存在するということだけであり、私はそれらをウェブ検索から得ました。
完全に独立しているわけではない4つの大きなハードルが考えられます。
暗号化の専門知識はありません。これらは単にアルゴリズム的なものです。複雑性理論上の異論。
今日知られている公開鍵暗号方式は、一方向の トラップドア順列に基づいて構築されており、トラップドアは不可欠です。
プロトコルを安全に公開するには、誰でも利用できるキーと、このキーを使用してメッセージを暗号化する方法が必要です。明らかに、一度暗号化すると、その暗号と公開鍵のみを知っている元のメッセージを回復するのは難しいはずです。暗号は、いくつかの追加情報、つまり秘密鍵でのみ解読可能でなければなりません。
それを念頭に置いて、一方向のトラップドア順列に基づいてプリミティブな暗号システムを簡単に構築できます。
実際の経験に基づいて、ヒューリスティックな議論をするだけです。
ほとんどすべてのNP完全問題のほとんどすべての例は、簡単に解決できます。これが真実ではない問題もありますが、見つけるのは難しく、そのようなクラスのサウンドがあると肯定するのは困難です。
これは、制約プログラミング、SAT、または巡回セールスマンなどの有名なNP完全クラスのランダム問題ジェネレーターを作成しようとするときに、実際に何度か発生しました。後日、誰かがランダムジェネレーターが自明で生成するほとんどすべてのインスタンスを解決する方法を見つけます。もちろん、暗号化システムの場合は深刻な問題になります!
Merkle-Hellman暗号システムは、バイナリナップザック問題(サブセット和)に基づいています。