しばらく前にこの回答を読んだ後、私は完全に準同型暗号化に興味を持ちました。Gentryの論文の紹介を読んだ後、私は彼の暗号化スキームが3番目の段落で定義されているように忘却的なコード実行に使用できるかどうか疑問に思い始めました。
完全準同型暗号化スキームでは、通常、一部のデータを暗号化し、データに対して特定の関数が計算される敵対的な環境に送信します。その結果は、受信者が受信したデータを見つけたり、関数の結果は次のとおりです。
気付かないコードの実行とは、ある問題を解決するために設計されたコードを暗号化し、敵対的な環境に送信することを意味します。敵は使用したい解決するために、私たちは彼がどのように知っている必要はありませんCで動作します。彼が入力されている場合、私のためにPを、彼は暗号化することができ、私をしてから(上のいくつかの暗号化方式)を使用するCとIその後、(暗号化されていない)の出力を返し、O(溶液P入力用のI)。暗号化スキームは、攻撃者がコードの一部がどのように機能するかを決して見つけられないようにします。つまり、彼にとってはオラクルのように機能します。
このような暗号化スキームの主な実用的方法(考えられる)は、著作権侵害をより困難にするか、不可能にすることです。
完全に準同型の暗号化スキームを使用してこれが可能になると思うのは、暗号化されたデータ、特にユニバーサルチューリングマシンで任意の回路を実行できるからです。次に、コードをデータのように暗号化し、この暗号化されたデータでユニバーサルチューリングマシンの回路を使用してコードを実行できます。
このアイデアが使えるかどうかわからないので、ここで質問としてこれを提起します。Gentryの論文の紹介よりもはるかに先に進むことはなく、暗号に関する私の知識は限られています。また、忘れがちなコードの実行によく使われる用語があるかどうかもわかりません。Googleでアイデアを検索しようとしましたが、適切な用語がわからずに何も見つかりませんでした。
このアプローチで問題を引き起こす可能性のある複数の問題が考えられます。まず、修正せずに完全準同型暗号化を使用すると、計算結果()が暗号化されます。したがって、Pを解くためにコードを使用したい敵にとっては役に立ちません。これは、たとえばクラウドコンピューティングにはまだ有用かもしれませんが、私が達成したいことではありません。
次に、任意のチューリングマシンではなく回路を使用しているため、任意の量のメモリを使用することはできません。所定の量のメモリに制限されています。つまり、この方法でプログラムを実行する場合、メモリフットプリントは常に同じ、つまりピークメモリ使用量になります。
最後に、関連する定数は、ほぼ確実にそのようなシステムの実際の使用を完全に無効にしますが、それでもこのアイデアは興味深いと思います。