P問題とNP問題

【 P問題とNP問題 】

ゲーデル、チューリングらが明らかにしたように、「証明可能=計算可能」なものには原理的限界があることは、1950年代には、 一般に認められるようになっていました。

現代の暗号技術の大きな特徴は、その基礎を、コンピュータはある種の数学的問題を、「効率的」には解くことができないという事実においていることです。

ここで注目してほしいのは、「効率的には解けない問題がある」という考え方です。それは、ゲーデルの不完全性定理が示したような、「原理的に解けない問題がある」とは違った考え方です。それは、実際の計算がコンピューターを使っても、時間がかかり過ぎて手に負えなくなる問題があるという事です。

70年代に入ると、「計算の難しさ」に対する新しいアプローチが活発になります。それは、「計算の難しさ」を、計算に必要な「時間」と「メモリー」で評価しようというものです。それを「計算複雑性理論」といいます。

ここでは、計算に要する時間だけを考えましょう。既に Nashが気づいていたように、計算に「指数関数的時間」を要する問題は、効率的には解けない、難しい問題です。

逆に、入力の文字列の長さをnとするある問題が、nの「多項式時間」で解ける時、この問題を「P問題」といいます。「P問題」は、易しい問題と考えることが出来ます。

計算複雑性の理論で、「P問題」と並んで重要なクラスに「NP問題」があります。「NP問題」は、解くのに「指数関数的時間」がかかる「Not-P問題」ではないのです。

その問題を解くのが「多項式時間」で終わるかどうかはわからなくても、具体的な値で与えられたその問題の「答え」と言われるものが、本当に「正しい答え」であるかどうかを「多項式時間」でチェックできる問題のクラスを、NPといいます。

素因数分解問題は、Nの素因数だという p, q が与えられれば、N = pq かどうかを簡単に、多項式時間でチェックすることが出来ますので NP問題です。 

y = f(x) という関数があって、xが与えられた時 y = f(x)を求めることは簡単に出来ても、yが与えられた時 y = f(x) を満たすxを求めることが難しいとき、関数 f を「一方向関数」と言います。xからyをもとめるのが多項式時間で可能だとすれば、yからxを求めるのは NP問題です。

現代の暗号技術では、どのような「一方向関数」を選択したかで、その暗号が特徴づけられることになります。

動画 「暗号の歴史 -- 暗号と計算複雑性理論」を公開しました。

https://youtu.be/YvV-gmC7314?list=PLQIrJ0f9gMcMOiLc6py4lKrk3xAG_g0FH



この動画のスライドのpdf

https://drive.google.com/file/d/10_p3shdrXWQt4N5CsUmP0jLrUTW8kTRH/view?usp=sharing

関連blog 「P問題とNP問題」  https://maruyama097.blogspot.com/2022/08/pnp.html 

−−−−−−−−-----

このセミナーのまとめページ https://www.marulabo.net/docs/cipher2/ 参考資料 Status Report on the Third Round of the NISTPost-Quantum Cryptography Standardization Process       https://doi.org/10.6028/NIST.IR.8413 MaruLabo 関連ページ 「暗号技術の現在 -- ポスト量子暗号への移行と量子暗号」 https://www.marulabo.net/docs/cipher/

コメント

このブログの人気の投稿

マルレク・ネット「エントロピーと情報理論」公開しました。

初めにことばありき

人間は、善と悪との重ね合わせというモデルの失敗について