AからC、およびBからCに既知の複雑さで与えられますが、AからBについて言えるのは何ですか?
-
29-09-2020 - |
質問
$ a $ と $ b $ と各セットiの2セットがあります。そのセットから、3番目のセット $ c $ に設定可能な機能を持ちます。 $ a $ から $ b $ から関数を構築したいとします。 $ b $ から $ c $ 関数を使ってその関数を作成します。 $ a $ と同じ結果、上記のspan class="math-container"> $ c $ 関数。
$ c $ の要素を返す2つの関数の時間的な複雑さを知っていれば、 $ a $ $ b $ 指定されたプロパティを使用して?たとえば、そのような機能の計算量の複雑さに任意の範囲を配置できますか?そのような関数が計算可能かどうかさえ言うことができますか?
解決
リニアタイム計算可能マップ $ f:a \ f: c $ と $ G:b \ to c $ map $ h:a \ $ f= g \ circ h $ でb $ に、はあなたが望むのと同じくらい高いです。
証明:マップを選ぶ $ h:\ sigma ^ * \ to \ sigma ^ * $ あなたが選択したセンスでは難しいです。 $ a= c=sigma ^ * $ 、および $ b={\ langle w、h(w )\ rangle \ mid \ sigma ^ * \} $ 。 $ f=mathrm {id と $ g=pi_1 $ 、つまり="math-container"> $ g(\ langle w、u \ rangle)= w $ 。 $ a、b、c $ と $ f、g $ は、クレームの基準を満たしています。唯一のマップ $ h $ は $ h(w)=langle w、h(w)\ rangle $ は、 $ h $ のほど難しいものです。
他のヒント
あなたは、計算性についての1つ、そして計算の複雑さについての2つの質問をしています。通常の規則は、投稿ごとに質問することです。私は2番目の質問に答えます。いいえ、標準的な推測では、計算の複雑さはかなり悪い可能性があります。 $ f:a \ to c $ が $ f(x)=a alla ^ x \ bmod pdによって与えられます。と $ g:b \ to c $ は $ g(x)=beta ^ xによって与えられます。\ bmod p $ は、 $ p $ が大きい素数です。次に、 $ f、g $ を多項式時刻に計算できます。しかし、マップを見つける $ a \ to b $ の $ \ beta $ Base $ \ alpha $ には、命名されています。
公開鍵暗号化は、複雑さを非常に高くすることができるという考えに基づいています。
公開鍵のセットで、Bは秘密鍵のセット、Cのセット、Cを一定のプレーンテキストの暗号化した結果のセットです。パブリックキーと秘密鍵の両方を使用すると、暗号化されたテキストを非常に簡単に計算できます。しかし、あなたは公開鍵を与えられるかどうかを尋ねているので、同じ暗号化されたメッセージを与える秘密鍵を計算することができます。同じ暗号化されたメッセージを取得するには、プレーンテキストは同じでなければならないので、これはすぐに公開鍵に秘密鍵を与えます。