これは非常に一般的で重要な質問であり、ここでの回答はすべて不正確であるため、私はこの古いスレッドに返信しています。
元の質問に対する短い答えは、明白な「NO」です。NP 完全問題に基づく既知の暗号化スキーム (公開鍵スキームは言うまでもなく) はありません (したがって、多項式時間削減の下でのすべての暗号化スキーム)。ただし、他のものよりも「近い」ものもありますので、詳しく説明しましょう。
ここで明確にしなければならないことがたくさんあるので、「NP 完全問題に基づく」という意味から始めましょう。これについて一般的に合意されている解釈は次のとおりです。さらに正確に言うと、NP 完全問題を常に解決するアルゴリズムは存在しないと仮定します。これはアルゴリズムにとって非常に難しいことなので、非常に安全な仮定です。問題のランダムなインスタンスを適切な確率で解決するアルゴリズムを考え出す方がはるかに簡単に思えます。
ただし、暗号化スキームにはそのような証明はありません。文献を見ると、ごくわずかな例外 (以下を参照) を除いて、セキュリティ定理は次のようになっています。
定理:この暗号化スキームは、ある問題 X のランダムなインスタンスを解くための多項式時間アルゴリズムが存在しないと仮定すると、安全であることが証明されてい
ます。
「ランダムインスタンス」の部分に注意してください。具体的な例として、2 つのランダムな n ビットの素数の積をある程度の確率で因数分解するための多項式時間アルゴリズムが存在しないと仮定する場合があります。これは、2 つのランダムな n ビット素数のすべての積を常に因数分解するための多項式時間アルゴリズムが存在しないと仮定することとは (安全性が低く) 大きく異なります。
「ランダムなインスタンス」対「最悪のインスタンス」の問題は、上記のいくつかのレスポンダーをつまずかせているものです。McEliece タイプの暗号化スキームは、線形コードをデコードする非常に特別なランダム バージョンに基づいており、NP 完全である実際の最悪のケースのバージョンには基づいていません。
この「ランダムなインスタンス」の問題を解決するには、理論的なコンピューター サイエンスに関する深く美しい研究が必要です。Miklós Ajtai の研究から始めて、セキュリティの仮定がランダムなケースではなく「最悪のケース」(より安全な) の仮定である暗号化アルゴリズムを発見しました。残念ながら、最悪の仮定は NP 完全であることが知られていない問題に対するものであり、いくつかの理論的証拠は、それらを NP 完全問題を使用するように適応させることができないことを示唆しています。興味のある方は、「格子ベースの暗号化」を調べてください。