完全な準同型暗号化は、忘却型コード実行に使用できますか?


22

しばらく前にこの回答を読んだ後、私は完全に準同型暗号化に興味を持ちました。Gentryの論文の紹介を読んだ後、私は彼の暗号化スキームが3番目の段落で定義されているように忘却的なコード実行に使用できるかどうか疑問に思い始めました。

完全準同型暗号化スキームでは、通常、一部のデータを暗号化し、データに対して特定の関数が計算される敵対的な環境に送信します。その結果は、受信者が受信したデータを見つけたり、関数の結果は次のとおりです。

気付かないコードの実行とは、ある問題を解決するために設計されたコードを暗号化し、敵対的な環境に送信することを意味します。敵は使用したい解決するために、私たちは彼がどのように知っている必要はありませんCで動作します。彼が入力されている場合、私のためにPを、彼は暗号化することができ、私をしてから(上のいくつかの暗号化方式)を使用するCIその後、(暗号化されていない)の出力を返し、O(溶液P入力用のICPCPCPCOP)。暗号化スキームは、攻撃者がコードの一部がどのように機能するかを決して見つけられないようにします。つまり、彼にとってはオラクルのように機能します。

このような暗号化スキームの主な実用的方法(考えられる)は、著作権侵害をより困難にするか、不可能にすることです。

完全に準同型の暗号化スキームを使用してこれが可能になると思うのは、暗号化されたデータ、特にユニバーサルチューリングマシンで任意の回路を実行できるからです。次に、コードをデータのように暗号化し、この暗号化されたデータでユニバーサルチューリングマシンの回路を使用してコードを実行できます。

このアイデアが使えるかどうかわからないので、ここで質問としてこれを提起します。Gentryの論文の紹介よりもはるかに先に進むことはなく、暗号に関する私の知識は限られています。また、忘れがちなコードの実行によく使われる用語があるかどうかもわかりません。Googleでアイデアを検索しようとしましたが、適切な用語がわからずに何も見つかりませんでした。

このアプローチで問題を引き起こす可能性のある複数の問題が考えられます。まず、修正せずに完全準同型暗号化を使用すると、計算結果(O)が暗号化されます。したがって、Pを解くためにコードを使用したい敵にとっては役に立ちませんP。これは、たとえばクラウドコンピューティングにはまだ有用かもしれませんが、私が達成したいことではありません。

次に、任意のチューリングマシンではなく回路を使用しているため、任意の量のメモリを使用することはできません。所定の量のメモリに制限されています。つまり、この方法でプログラムを実行する場合、メモリフットプリントは常に同じ、つまりピークメモリ使用量になります。

最後に、関連する定数は、ほぼ確実にそのようなシステムの実際の使用を完全に無効にしますが、それでもこのアイデアは興味深いと思います。


「忘却のコード実行」という用語からあなたは確信していますか?私はしばらくそれについて検索し、何も得られませんでした!
デヤ

まったく違います。適切な用語がわからなかったので、自分で用語を作成しました。難読化と難読化は、明らかにこの概念の通常の用語です。
アレックス10ブリンク10

回答:


17

残念ながら、理論的に「忘却的なコード実行」を禁止する結果があります。

ボアズ・バラク、オーデッド・ゴールドライヒ、ラッセル・インパリアッツォ、スティーブン・ルディッヒ、アミット・サハイ、サリル・バダン、ケ・ヤン。難読化プログラムの不可能)可能性について暗号の進歩— CRYPTO 2001。

リンクは次のとおりです。

要約は次のとおりです。

非公式に、難読化であり、入力プログラム(又は回路)として取る(効率的、確率的)「コンパイラ」と新しいプログラム生成と同じ機能を有するまだ「読めません" ある意味で。難読化ツールが存在する場合は、ソフトウェア保護から準同型暗号化、ライスの定理の複雑性理論的類似に至るまで、さまざまな暗号化および複雑性理論的アプリケーションがあります。これらのアプリケーションのほとんどが意味するものとして難読化で「unreadability」条件の解釈に基づいていることの意味である「仮想ブラックボックスは、」何のいずれかが効率的に与えられた計算できるOPOPPOPOP、への指定されたoracleアクセスを効率的に計算することもできます。P

この作業では、難読化の理論的調査を開始します。私たちの主な結果は、上記の直感の非常に弱い形式化の下でさえ、難読化は不可能です。私たちは、機能の家族構成することによってこれを証明以下の意味で本質的にunobfuscatableです:述語がある()関数を計算するプログラム与えられたようなで、値効率的に計算することができ、(ランダムに選択された)関数にまだ(B)特定のOracleアクセスで、計算することができない、効率的なアルゴリズムより良いランダム推測よりもあります。FπfFπffFπf

不可能性の結果をさまざまな方法で拡張します。これには、(a)多項式時間で必ずしも計算可能ではなく、(b)機能をほぼ保存するだけで、(c)計算が非常に制限されたモデルでのみ動作する必要がある難読化ツールも含まれます)。「難読化できない」署名スキーム、暗号化スキーム、および擬似ランダム関数ファミリーを構築することにより、難読化ツールのいくつかの潜在的なアプリケーションも除外します。TC 0


まあ、そのようなことは物事にダンプナーを置きます。彼らがどのように結果を証明したかを読んだところです。難読化者が敵対プログラムのソースコードにアクセスできると想定されていることを読んだとき、私は特に困惑しました!(私は紙を誤解していたかもしれませんが)
アレックス10ブリンク10

5
これらの結果は、仮想ブラックボックスを使用した難読化の「古い」(失敗した)モデルにのみ適用され、現在、この分野の研究者は、何らかの保証が得られることを期待して、難読化のより弱い概念を採用しようとしていることを理解しています。研究の方向性の1つは、完全準同型暗号化を採用することです。そのため、この質問は未解決です。今年の夏にMicrosoft Researchが行った固定小数点難読化ツールと仮想ブラックボックスに関する講演に参加したことを覚えています。
ロススナイダー

3
この分野の研究者(または著者リストの印象的な名前の1人)はコメントできますか?
ロススナイダー

1
@Ross:ええ、私はコメントに、フィールド内の他の研究者の希望だけでなく...
MS Dousti

@ Ross、Sadeq:著者の何人かは時々サイトを訪れますが、うまくいけばタグに気付くでしょう。おすすめの質問ページで質問をすることも役立ちます。
カベ

15

実際、完全準同型暗号化は信頼できない複数の当事者間でコードを実行するのに非常に役立ちますが(たとえば、このペーパーを参照)、暗号化された出力を計算する当事者が秘密鍵を知っている当事者に送信する場合、何らかの種類の相互作用が必要です。

あなたが探している概念は、ソフトウェアの難読化に疑わしいほど近いように聞こえます。そのため、上記の不可能性の結果を証明しました。また、私はその論文の非公式の概要を書いたことがあります。

この不可能性の結果を考えると、定義を緩和できる2つの(互いに素な)方法があります。プログラム/関数のクラスを制限することによって難読化するか、セキュリティの概念を緩くするかのいずれかです。

2番目のアプローチはおそらく可能性があり、私たちの論文では、難読化のような弱い概念に注目しています。ただし、難読化の方法に関係なく、攻撃によってプログラムの元のソースコードが完全に回復されることに注意してください。ですから、反例の場合にはどうにかしてセキュリティ定義を作成する必要があります。

最初のアプローチはすべての制限された機能(たとえば、ポイント関数)に対して行われましたが、クラスに反例が含まれていないことを確認する必要があります。つまり、おおよそ、擬似ランダム関数を含めるべきではありません。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.