プログラムのインストールファイルへのアクセスをユーザーに許可することにより、企業は必然的に専門的な秘密とベストプラクティスを明らかにし、悪意のある競合他社が恥知らずに他人のアルゴリズムをコピーして盗むことを止めることはできません。 別の例に注目しましょう。これらは、オペレーティングシステムのエラーを修正する重要な更新(パッチ)です。 ハッカーは次の更新をほぼ即座に分析し、この更新が修正している問題を特定し、時間通りに更新する時間がない不幸なユーザーを攻撃します。

現時点では、開発者が自由に使用できる難読化ツールはありません。今日広く使用されている難読化ツールは非常に原始的です。命令を再配置し、変数名を置き換え、実際に効果のないコードを挿入し、同様のことを行うことができます一般的に、「理解不能によるセキュリティ」と呼ぶことができます。 しかし、熱意の少ないこのような難読化は難読化を解除するのは簡単であり、したがって、それは優秀なハッカーにとって障害にはなりません。
しかし、難読化ツールには正確に何が必要ですか? 彼が出した「プログラムを理解できない」ことは非常に霧がかかっています...


2007 [3]では、「最良の」難読化ツールが調査されました。 難読化されたプログラムが同じ機能を持つ他のどのプログラムよりも多くの情報を報告しない場合、難読化ツールを「最適」と呼ぶことが提案されました。 そして、識別不能性の難読化ツール-これが「最良の」難読化ツールであることが示されました。 したがって、世界で最も優れた難読化ツールの候補デザインはすでにポケットに入っています! すぐに、混乱を招く指示や変数名の変更を改良する必要はなくなります。
しかし、話はこれで終わりではありません。世界中の暗号作成者の大きな驚きに、識別不能性の難読化ツールと一方向関数(一方向関数)が一緒に与えることは次のとおりです。

- 公開鍵暗号化
- 短いデジタル署名
- 開示がゼロの非対話型証拠(NIZK-非対話型ゼロ知識証明)
- 忘れっぽい転送(忘却の転送)
- マルチパーティ計算プロトコル
- ブロードキャストプロトコル(ブロードキャスト暗号化)
- 競合する暗号化(拒否可能な暗号化)(このスキームでは、暗号に偽のキーを提供できます。これにより、送信先のすべてのメッセージを解読できます)
- 完全な準同型暗号化とともに、機能的暗号化を提供します
- そして、はるかに
つまり、実際、識別不能性の難読化ツールは、ほぼすべての暗号化を形成するプリミティブであり、その助けを借りて、今日の暗号化のほとんどすべてを構築できます。 もちろん、難読化ツールが広範囲に使用できるようになる前に多くの作業が必要になりますが、その基礎はすでに確立されています。
参照資料
[1] Barak B.、Goldreich O.、Impagliazzo R.、Rudich S.、Sahai A.、Vadhan S.、Yang K.「プログラムを難読化する可能性について」。CRYPTO2001。
[2] Garg S.、Gentry C.、Halevi S.、Raykova M.、Sahai A.、Waters B.「すべての回路の識別不能性の難読化と機能的暗号化の候補。」FOCS2013。( pdf )
[3] Goldwasser S.、およびGuy NR「最善の難読化について」。TCC2007。