セキュリティと暗号化の理論と実践の違いは?


21

セキュリティと暗号化の理論と実践には、どのような興味深い違いがありますか?

もちろん、最も興味深いのは、実際の経験に基づいた理論研究の新しい道を示唆する例です。

回答には次のものが含まれます(ただし、これらに限定されません)。

  • 理論が何かを示唆しているが、実際には決して使用されない例
  • 理論上、実際には安全ではない何かが安全であることが示唆されている例
  • 広く実用化されているものの例には、その背後にある理論がほとんどありません。

...

警告

あなたの答えが本質的に「理論は漸近論に関するものであるが、実践はそうではない」という形式である場合、理論は本当に中心的であるか、または実世界のインスタンスでの実際の経験が期待に基づくものと異なる特定の例を含める必要があります理論上。


私が知っている1つの例:安全な回路評価。理論上は非常に強力ですが、コードを取り込んで回路に展開し、各ゲートを1つずつ安全に評価する必要があるため、実際に使用するには複雑すぎます。


:FYI、この質問は、この他の質問のレトリック/議論の一部に触発されたcstheory.stackexchange.com/questions/453/...
ジョシュアGrochow

回答:


23

ああ、どこから始めましょう。

大きなものは間違いなくブラックボックスです。暗号研究者は、Random Oracle Modelのインスタンス化不可能な問題のようなことについて大騒ぎします。セキュリティ研究者は反対に極端であり、ハッシュ関数だけでなく、すべてをブラックボックスとして使用できるようにしたいと考えています。これは常に緊張の原因です。

たとえば、BANロジックなどのセキュリティプロトコルの正式な分析を見ると、対称暗号化が「理想的なブロック暗号」として扱われていることがわかります。ここには微妙な違いがあります。BANロジック(および他のプロトコル分析手法)は、セキュリティの証拠であると主張していません。むしろ、それらは欠陥を見つけるためのテクニックです。したがって、理想的な暗号モデルがここに含まれることは厳密には真実ではありません。ただし、ほとんどのセキュリティ分析は正式なモデルに限定される傾向があるため、効果は同じです。

開業医についてはまだ話していません。これらの人は通常、暗号プリミティブがブラックボックスであることを意図していないという手掛かりさえ持っておらず、これが変わることはないと思います。

問題の深刻度を確認するには、API署名の偽造性に関するこのセキュリティアドバイザリを検討してください。このバグの一部は、Merkle-Damgard構造の長さ延長攻撃(これは非常に基本的なことです)によるもので、Flickr、DivShare、iContact、Mindmeister、Myxer、RememberTheMilk、Scribd、Vimeo、Voxel、Wizehhive、Zoomrに影響します。著者は、これは完全なリストではないことに注意しています。

実務家は、この悲しい出来事のせいだという責任の大部分に値すると思います。一方、おそらく暗号理論家は自分の立場を再考する必要があるかもしれません。彼らのラインは、「ブラックボックスを構築することは不可能です。私たちは試してさえいません。」とにかく、構造がブラックボックスとして(誤)使用されることは明らかなので、少なくともブラックボックスにできるだけ近づけるようにしてみませんか?

論文Merkle-Damgard Revisitedは、私が話していることの素晴らしい例です。彼らは、「固定長のビルディングブロックがランダムオラクルまたは理想的なブロック暗号と見なされる場合、任意の長さのハッシュ関数Hはランダムオラクルとして振る舞わなければならない」というセキュリティ概念を研究しています。この種の理論的研究は、実際に非常に役立つ可能性があります。

それでは、回路評価の例を見てみましょう。私はあなたの推論に反対するようにお願いします。コンパイル済みのバイナリを取得して、盲目的に回路に変換するようなものではありません。むしろ、通常非常に単純な基礎となる比較関数にのみ回路評価を適用します。Fairplayは、回路評価の実装です。それで働いた私の同僚は、それが驚くほど速いことを教えてくれます。効率が回路評価の問題であることは事実ですが(この理由で拒否された実世界の事例は知っています)、それは目を見張るものではありません。

2番目の理由は、2つの会社が合併するかどうかを検討している場合など、気付かない回路評価を実行する可能性のある典型的な現実のシナリオを考える場合です。関与することは、人間の全体的な努力と予算と比較して些細なことです。

では、なぜ実際に一般的な安全な関数評価を使用しないのですか?いい質問ですね。これは、理論と実践の2番目の違いにつながります。実際には、信頼は実際に存在します。偏執的なモデルですべてを行う必要はありません。人々が暗号を使用して実際に解決したい問題のセットは、暗号作成者が想像するものよりもはるかに小さいです。

安全なマルチパーティコンピューティングサービスを企業クライアントに販売しようとする会社を始めた人を知っています。推測します—誰もそれを望んでいませんでした。彼らがこれらの問題に取り組む方法は、データでできることとできないことを指定した契約書に署名し、意図した目的でデータを使用した後にデータを破棄することです。ほとんどの場合、これは問題なく機能します。

理論と実践の違いの最後のポイントは、PKIについてです。暗号化された論文は、「どこかでPKIを想定している」という文を頻繁に貼り付けます。残念ながら、エンドユーザー向けのデジタル証明書は(自然な階層が存在する企業環境のWebサイトや従業員とは対照的に)実現しませんでした。この古典的な論文は、あなたが普通の人にPGPを使用するように依頼したときに起こる喜びについて説明しています。それ以来、ソフトウェアは大幅に改善されたと言われていますが、基本的な設計とアーキテクチャの問題、および人間の制限は今日ではそれほど変わりません。

暗号プロトコルの実際の適用可能性を制限するという事実を認識していることを除いて、この現実のPKIの欠如の結果として、暗号作成者が別のことをするべきではないと思います。それは私が修正しようとしているものだからです。


素晴らしい答えです!(私はそれを完全にフォローしなかったことを認めますが、あなたのリンクのいくつかをフォローし、それらを読み通さなければなりませんが、別の時間です。)安全な回路評価に関して:私はそれを聞くのが大好きです。私が述べた意見は、基本的に暗号理論のイントロ理論のコースを受講し、教授に実際に使用されるかどうかを尋ねた後の私の気持ちでした。
ジョシュアグロチョウ

ありがとう。ところで、私はStackExchangeが初めてであり、コミュニティwikiがファーストパーソンライティングが受け入れられないことを意味するかどうかはわかりません。その場合は、自由に変更してください。
ランダムウォーカー

この答えを複数回支持できたらと思います。
ジェフ

FairPlayは現実的な脅威モデルでは安全ではありません(悪意のある攻撃者に対して安全ではありません。敵が悪意/悪意を持って振る舞わないことを信頼する場合のみ安全です)。セキュリティが重要でない場合、効率は簡単です。また、効率が重要でない場合、セキュリティは簡単ですが、両方を同時に実現する方法は現在知られていません。
DW

実務家についてのあなたのコメントは実際には寛大です。私は、クレジットカードの支払い処理が唯一の製品であり、Vigenère暗号を使用し、既知の平文の一部よりも短いキーを持つ会社に出くわしました。そして、攻撃コードを送信するまで、彼らはそれが安全でないと信じていませんでした。
ピーターテイラー

12

Randomwalkerの答えはとても良いです。理論と実践の間の私のお気に入りのギャップは、ランダムオラクルモデルです。これは実際には非常に安全なヒューリスティックのようです(人々が愚かなことをせず、少なくとも適切に長さの延長を行うと仮定します。ランダムウォーカーの答えも参照してください)。実際、このヒューリスティックに関する理論的な結果はすべて否定的です。これは素晴らしい研究上の質問だと思います。いつか、このモデルに関する興味深い肯定的な結果が証明されることを願っています。

私が知る限り、実際の難読化に関しては、広く使用されていますが、難読化は暗号化ほど安全ではないと見なされており、難読化を使用して長期かつ非常に機密性の高い秘密を隠すことは賢明とは見なされていません。(ランダムオラクルを使用した暗号化とは対照的に、人々はこれを使用することに完全に満足しています。)その意味で、理論と実践の間のギャップはそれほど大きくありません。(つまり、難読化は非常に興味深い分野であり、理論と実際の両方の理解にはほど遠い。)


10

準同型暗号化と安全なマルチパーティ通信が大きいの2つです、十分に実用的な、まだ作るために研究されていない暗号技術における最近の発見:研究努力が好きPROCEED私たちはこれを書くために使用するかもしれないモデルをプログラミングの種類を識別するために、この方向に動いています合理的な時間で実行できるコア暗号化アルゴリズムの最適化を見つけるだけでなく、計算の種類。これは暗号化ではかなり一般的な現象です。まず、実行に長い時間がかかる(比較的)単純なアルゴリズムから始めます。その後、暗号学者は数年かけて数学を使用してアルゴリズムをさらに最適化します。


10

理論は何かが可能であると示唆しているが、実際には決して使用されない例:

理論的に解決されたものの例を見つけることは非常に簡単ですが、(1)実際に使用するには非効率すぎるか、(2)誰も気にしません。例:(1)(一般的な)ゼロ知識証明、(2)否定できない署名。実際、暗号会議を見てみると、少なくとも半分の論文がおそらくこれらのカテゴリーのいずれかに分類されるでしょう。

理論上、実際には安全ではない何かが安全であることが示唆されている例:

この質問は少しあいまいですので、これに答えるかどうかはわかりませんが、セキュリティ定義が展開シナリオと一致しなかったために、実際には壊れる「実証済みの安全な」スキームの例がたくさんあります。過去数年だけでも、SSHとIPSec(の証明可能な変種)に対する攻撃がありました。

広く実用化されているものの例には、その背後にある理論がほとんどありません。

一般的なセキュリティの世界ではなく、暗号の世界を意味すると思います。良い例は、セキュリティの証拠がないDSS署名です。


9

MMMwMwMは文字列受け入れます。wMwMMMM

バイナリ難読化ソリューションを提供する多くの営利企業があり、いくつかのオープンソースソリューションもあります。もちろん、難読化の正確な方法は秘密にされています。業界で一般的な難読化パラダイムは発見的であるため、このコンテキストでバイナリを難読化するために使用されるアルゴリズムを知ることは、一般的に難読化解除のいくつかの利点を保証します。業界における難読化は、「あいまいさによるセキュリティ」として知られています。

業界の要望を形式化する難読化の問題に対する理論的アプローチがありますが、計算の難しさ(整数および文字列の同等性テストを一方向関数の同等性テストに置き換えることを想像してください)に基づく厳密に強いセキュリティの概念に依存しています。特に、業界にとって興味深い難読化の問題を解決するために、構成可能なポイントの難読化の研究が進められています。残念ながら、改ざん防止ハードウェアに触発されたモデルに基づく難読化の最も広く普及した理論モデルは、2001年にバラクらによって「難読化プログラムの(不可能な)可能性について」という不可能な結果が与えられました。(その後、いくつかの他のモデルにも不可能な結果が与えられています)。

現在、プログラムの難読化の理論は流動的な状態にあり、新しい(制限の少ない)モデルが必要です。実際、理論の主な問題は、合意されたモデル(および正式なギャランティ)の欠如です。の最近の出現Fully Homomorphic Encryption、そのような根拠を提供するかもしれません(これは、この著者の純粋な推測です)。

明確にするために、難読化は3番目の例と一致します:「広く使用されている何かの例には、その背後にある理論がほとんどありません。」難読化は、今日、業界とより悪質な目的を持つ人々の両方によって広く使用されています。業界の難読化は、現在、試みにもかかわらず厳密な理論に基づいていません。


8

疑似乱数ジェネレーターなどの基本的なプリミティブに関しても、大きなギャップがあります。たとえば、疑似ランダム関数を検討してください。実際には、人々がのようなものを使用AES理論的な候補は異なり、(; Naor、Reingold; Goldreich、ゴールドワッサー、Micaliなど)いくつかの次元に沿って:まず、パラメータは完全に異なっている、例えばAESはキーの長さ持つことができます等しい入力の長さを、理論構築では前代未聞です。おそらくもっと重要なのは、AES(および他の多くのブロック暗号)が、いわゆる置換順列ネットワークパラダイムに従っていることです。

もちろん、最も興味深いのは、実際の経験に基づいた理論研究の新しい道を示唆する例です。

上記はそのような例だと思います。たとえば、Eric Milesによるこの論文を参照してください(本質的にこの答えはそこから取られています)。

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