ファイルを暗号化して公開し、特定の日付以降にのみ復号化できるようにする暗号化スキーム/プロトコルはありますか?
信頼できる機関(公証人)なしではほとんど不可能だと思います。それとも何か方法がありますか?
私は "secure triggers" のアイデアに触発されました。これは、特定のイベントが発生した後にデータを復号化するスキームです。しかし、この「トリガーイベント」は作者しか知りません。
対照的に、私は、公に知られている特定の日付(またはそれ以降)にデータの復号化を可能にする暗号化スキームに興味があります。
時間は相対的です。暗号化は、抽象コンピューティングマシンのEtherealの世界に住んでいます。操作を実行できるマシンがあります。マシンが大きいほど、操作が速くなります。強制できる時計はありません。物理的な時間は意味がありません。つまり、攻撃者がファイルをより早く取得したい場合、より高速なコンピュータを購入する必要があります。
今でも努力することができます。 time-lock puzzles に興味があるかもしれません。アイデアは、構築が容易であるがオープンに費用がかかる問題のインスタンスを作成できるようにすることであり、コストは構成可能です。 Rivest、Shamir、Wagnerが見つけた解決策(私の知る限り、これはこれまでに知られている唯一の実用的なタイムロックパズルです)は次のように機能します。
トリッキーな点は、yを計算することは、一般的に、w:これはwモジュラー平方の連続です。 wが数十億以上の範囲にある場合、これは高価になります。ただし、pおよびq因子がわかっている場合、 emodulop-1およびq-1、これはずっと短くなり、yの計算は、数ミリ秒。
もちろん、これは特定のdateでのリリースを保証するものではありません。むしろ、それはパズルをアンロックするための最小努力を保証します。労力と日付の変換は、攻撃者がどのように試みるかによって異なります...
上記のタイムロックパズルには、特に並列処理の影響を受けない、いくつかの素晴らしい特徴があります。 1つのパズルを壊そうとして、2台のコンピュータを持っている場合、 1台のコンピューターでできることよりも速くなることはありません。
やや類似したコンテキストで、このタイムロックパズルは、進行中の [〜#〜] phc [〜#〜] の候補である Makwaパスワードハッシュ関数 で使用されます。パスワードハッシュでは、want構成可能なオープニングエフォート(はるかに短い時間枠内であるが、通常は1秒未満)。
サードパーティを関与させたくない場合は、あなた(ファイルを暗号化しているパーティ)がキーを解放するだけで、目的の日にファイルを復号化できます。
私はこれがビデオゲームのリリースで行われたのを見てきました。お客様は、暗号化されたゲームのコピーを事前にダウンロードできます。その後、リリース時間になると、ゲーム会社はキーをリリースするだけです。これにより、ダウンロードを待つことなく、ゲームがリリースされたときにすぐにプレイを開始できます。
ブラックホールの周りの軌道に、解読キーをブロードキャストする宇宙船を慎重に置きます。重力が引かれると、適切な時間までメッセージが遅延します。
または、普通の人と同じようにして、主要な放送用宇宙船を、対象とする聴衆から適切な光年数離れた場所に配置することもできます。
シークレット共有を使用して、プライベート暗号化キーをN個の部分に分割し、パラメータ化して、K個以上の部分を持つキーを再構築できるようにします。ここで、K <= N
。次のページで説明するように、CRMを使用するのが最適です。
http://en.wikipedia.org/wiki/Secret_sharing
次に、各パートを、将来の特定の日付に公開することに同意する独立したサービスに送信します。
最大K-1
のサービスが、スキームに影響を与えずに早期に公開することで「欠陥」を生じる可能性があります。
最大N-K
のサービスは、スキームに影響を与えることなく、完全に公開に失敗する可能性があります。
システムを適切に設計するには、コンテキストでの「時間」の意味と、特定の時間を選択した理由を定義する必要があると思います。 1997年8月29日の午前2時14分にメッセージが復号化されるとすると、締め切り前と締め切り後の違いは何ですか? 具体的になぜこの日付ですか?このイベントをスキームのコンポーネントとして利用できる場合があります。
たとえば、問題の日付にSkynetが自己認識になることが予想され、Skynetが自己認識になった後にのみメッセージを復号化する場合は、復号化キーを「skynet_became_self_aware」にすることができます。特に辞書にない単語が含まれているため、力ずくで強制されることはほとんどありません。ただし、イベントが発生した後にwillが試行される可能性が非常に高くなります。特に、ブルートフォースを実行しようとする自動システムがあり、適切なタイミングで辞書に単語「スカイネット」を追加する場合がそうです。
この方式は完全ではありません。キーをブルートフォースで強制する可能性がまだあるためですafterそれを解読しようとしている適切なリソースがない可能性がある日付。ただし、このスキームには、選択した日付のイベントが予想より早くまたは遅く発生した場合、メッセージの復号化が遅すぎたり早すぎたりしないという追加の利点があります。
唯一の信頼できる当事者が自分であり、メッセージの内容が公開されることを保証できない場合、代わりにできることは、自動的にキーを公開するデバイス(物理または仮想)を構築することです。必要な時間、およびデバイスを非表示にします。
簡単な方法は、Amazonまたは他の何百もの企業(おそらく海外の複数のサーバー)から仮想IDを購入して、メッセージを発行した人のIDを追跡できない別のIDで購入することです。理想的には、メッセージをリリースする数年前にこのサーバーを購入することになります。これらのサーバーは、指定された日付まで、何もせず(おそらく無邪気に見える電子メールまたはFTPサーバーをホストしている)何もせずに待機し、情報を「公開する」という定義を満たすために、複数のパブリックチャネルを通じて復号化キーを公開します。 」
これらのサーバーが存在することさえ誰も知らないので、誰もそれらを探していません。そして、それらの目的は十分に難読化されているため、偶然に偶然それらに遭遇した人は、自分の目的を理解していません。何百万ものインターネットに接続されたサーバーがあります-あなたのサーバーは単にノイズの中で失われています。
オンラインで公開されたすべての仮想サーバーと物理サーバーを政府が洗練されたトラフィック分析を実行するように促す規模で、キーを特定するための世界規模の取り組みが存在するほど十分に重要であると公衆によってメッセージが見なされない限り、これで十分です。過去10年間、疑わしいファイル(何百万もの)のすべてのファイルとコードを手動で調べ、隠された情報を探します。
その場合、デバイスをさらに隠すことができます。このジェームズボンドスタイルを本当に実行したい場合は、南極(雪に埋もれる可能性があります)で バッテリーを予約 を使用して短波ラジオ送信機に接続されたテープ、またはリモートのブラジルにメッセージを書き込みますジャングル(動物によって損傷を受ける可能性がある場所)、または海の底に、指定された日時(腐食する可能性がある場所-おそらくスペリオル湖の方が安全ですか?) )、またはペリスコープのようなアンテナを備えた浅い地下に埋められます。
もちろん、これらのオプションの難しさとコストは、デバイスを非表示にしておく期間によって異なります。それが1世紀になると、インターネットプロトコルが変更される可能性が高く、アナログ短波ラジオよりも複雑なものは実行不可能になる可能性があります。 (そして、誰ももう短波を聞いていないかもしれません。)それがほんの数か月であるなら、あなたのデバイスは単に外部バッテリーパックに接続されたプリペイドスマートフォンで、どこか適度にあいまいに落とされた可能性があります。市場にはすでに多くのセルベースのリモートセンサーがあり、いくつかの基準が満たされると自動的に電話またはWeb接続を行うため、これはほとんど検出されません。これらはますますユビキタスなデバイスです。
タイムロック暗号化に関するこの論文がこの議論に触発されたかどうかは完全にはわかりませんが、 「タイムロック暗号化の構築方法」という質問に対する最も正式な解決策は、「特定の日付以降にのみデータを復号化できるようにデータを保護する方法」を再定式化したものです。
しかし、これがどのように機能するかについての詳細に入りましょう。
基本的には、公に利用可能な計算を使用して(ビットコイン計算のように)基準クロックを構築します。したがって、これを理解している限り、これはBitcoin blockchainが特定のサイズに到達するかどうかに依存します(10分ごとに正確に増加します)。これが発生すると「ウィットネス暗号化」により、すべてのユーザーがデータを復号化できるようになります(ブロックチェーンにウィットネスが含まれ、チェインが特定のときにのみ使用可能になります)サイズ)。ウィットネス暗号化スキームを破ることができず、ビットコインネットワーク全体よりも高速にすることはできないため(現在のところ300PHashes/sを超えるパフォーマンス)、タイムロックの期限が切れる前に解読されたデータ(キーである可能性があります)を取得できる攻撃者。
このスキームは影響を受けない高コスト (宇宙旅行)、それは信頼できるサードパーティを必要としません(ビットコインネットワークを信頼する必要はありません)および暗号化当事者は、復号化時に利用可能である必要はありません。高い計算リソースを持つ当事者は、以前に秘密を知る可能性がほとんどありません。
この論文 も読みたいと思うかもしれませんが、同様のアプローチに従って、難しいと思われるサブセット問題へのセキュリティを減らします。
非常に長いキーでファイルを暗号化し、それをいくつかの部分に分割し、指定された日付までその部分を引き渡さないように指示とともに、信頼できる人に各部分を渡します。バスにぶつかった場合に備えて、各パーツをより多くの人に配ることで、冗長性を追加できます。
もちろん、コンピュータのネットワークは、人間と同じようにこれを行うことができます。実際、ビットコインの時間ベースの難易度リターゲティングアルゴリズムは、目的は異なりますが、同様の原則に依存しています。しかし、この目的のために実際にプログラムが存在することは知りません。
暗号化されたペイロードを含むソフトウェアを使用し、ニュースストーリーなどの外部の値からトリガーし、人々に質問する仮想的なアプローチは、質問で引用された論文で示されます(BTWは非常に興味深いですが、不器用な文法です)世界中で、ペイロードが実行されるまで実行されます。これは「公開されている日付/時刻」の要件を満たしていませんが、前提は良い出発点です。 TOR /ビットコインによく似た分散サービスは、時間依存のキーリリースを維持することを唯一の目的として、世界中の多くの個人がP2P方式で実行できます。これはビザンチンフォールトトレランス(別名ビザンチン将軍問題、完全な説明については http://en.wikipedia.org/wiki/Byzantine_fault_tolerance を参照)として知られていますが、この場合は「フォールト」が保護されているのは、情報の時期尚早のリリースであるため、直接の適用ではなく、一連の新しい技法を必要とする接線的なものです。
慎重なコーディングを使用して、各ユーザーが1つの小さな鍵を保持し、多くのユーザーが個々の断片の冗長コピーを持ち、マルウェアの回避やマルチプラットフォームのサポートを含む早期の「収集」を防ぐ強力な手段があります(キーは、Windows、IOS、Android、OS X、Linuxなどでソフトウェアを実行しているユーザー間で意図的に均等に分割されます)
ほとんどの場合、ビットコインブロックチェーンの逆のように機能する必要があります。すべてのユーザーが過去に起こったことの検証可能なコピーを持っている代わりに、各ユーザーは将来起こることの唯一のスライスを持っています。現在への将来の転換は、消費のために世界に解放されるそれぞれのブロックです。この場合は、TORをオニオン化する手法を使用できます。これにより、秘密鍵の各部分が一連のユーザーに送信され、ユーザーはそれを変形して、変換キーのみを保持するように送信しました。上流に丸めます。各レイヤーは独自にランダム化されたタイマーを備え、後でマテリアルを下流に渡し、最後のタイマーがカウントダウンして主要なパーツのリリースをトリガーするオリジンに近づき、合意された一連のピアに集まり、メールで送信されます。何か。
唯一の欠けている部分は、ポットの分割の見返りにキーマテリアルを放棄するのに十分なユーザーを誘惑するように設定された報奨金など、大量の共謀を回避する方法です。それらの多くはエスクローされていると見なすことができないためですそのままにしておくと、情報は> 0の値になります。マテリアルを完全に難読化する方法が望ましいので、各ユーザーがどのイベントスライスが気になっているかを知らずに、1つの大きなデータブロブを持っていました。これは確かに興味深い問題です。
他の人が言ったように、特定の日付ではなく特定の努力によって復号を提供することはできません。単一目的のアルゴリズムに関しては、努力はそれを早期にアンロックしようとする当事者の関心に強く関連しているため、非常に不明です。
したがって、最善の解決策は、パズルをはるかに大きくて不活性な興味にリンクさせることです。最近頭に浮かんだのは、ビットコインブロックチェーンです。ビットコインは数年前から現実になっており、その生成には今日大量のハードウェアが含まれるため、妥当な長期(おそらく数週間から数か月)でビットコインの生成率を予測するチャンスがあります。
これはできるのかしら。必要なのは、生成されたビットコインと必要なキーの間のリンクです。生成される単一のビットコインに依存することはできませんが、以前に選択された大量のn
の小さなm
のようなものを使用する必要があります。これは「秘密の共有」( https://en.wikipedia.org/wiki/Secret_sharing )で可能です。ビットコインのハッシュは以前に行われたトランザクションに依存するため、ある日ビットコインのハッシュによって解決されるm
パズルを構築するのは非常に難しいでしょう。
完全に信頼されていないソースを使用して、信頼できる関係者にカタツムリのメールで復号化キーを送信できます。早期に投稿することはできないため、これはパーティーを完全に信頼していませんが、まったく投稿できなかったため、リスクを最小限に抑えるために、複数の信頼できるソースを使用できます。
時間遅延を増やすには、オンラインサービスを使用して、国外からハガキを送るように依頼することができます(ただし、これにより、中間者攻撃に対して脆弱になります) http:// mijnkaart。 bpost.be/fotokaarten-maken オランダ語スピーカー用ですが、他の場所にも同様のサービスが存在していると思います。
これは、発生したイベントの発生時にトリガーとして機能します。
名前にウィキペディアのページがあるかどうかをチェックする自動化(Peter Woneの回答を参照)を作成します。トリガーした場合。
これは明らかに非常にトリガーに敏感であり、構築時に不明な場合にのみ機能します。
イベントに関する特定の情報がWikipediaのエントリに含まれているという条件を含めることで、両方の問題を解決できます。
Googleを使用すると、他にも興味深いトリガーがいくつか見つかるはずです。
最終的に、熱力学の第二法則が邪魔になります。プレーンテキストを閉じたシステムとして見てください。エントロピーが増加するだけです。
情報を暗号化すると、そのエントロピーが増加しますが、鍵を持つことでそれを補います。鍵と暗号文の合計エントロピーは、平文のエントロピーと同じです。
キーを破棄すると、システム全体のエントロピーが増加します。つまり、戻ることはできません(ブルートフォースコンピューティングパワーによる大量のエネルギー入力を除く)。
つまり、キーを保持する必要があります。一時的に破壊することはできません。
もちろん、キーを非表示にしたり、再度暗号化したり、信頼できるサードパーティに保管したりすることもできます。ただし、キーは常にどこかである必要があります。
ワンタイムXORパッドで暗号化し、指定された時間に暗号化ストリームを送信する何らかの自動化を行います。ワンタイムXORパッドは、パターンがないため、パターン攻撃。
これを成功させるには
本当に改ざん防止するには、XORパッドを非常にスクランブルして改ざんに応答する必要があります。XORパッドにはランダムデータが含まれているため、方法はありません。自己破壊したかどうかを確認します。
さらにXOR padをステガノグラフィックに隠して、不審な人がなぜだれが明らかにランダムなデータをたくさん隠すのか疑問に思うのをやめることができます。
このアプローチには、あいまいさによるセキュリティの要素があることを理解しています。それは避けられません。このようなシステムを知っていて、それを攻撃したい場合は、まず電源を奪い、ストレージのように見えるすべてのものをはんだから取り除き、改ざんに対応せずに内容を調べることができるようにします。それでもUPSを組み込むことができます。
インフォームドアタックは、システムの存在に始まり、システムの知識アプリオリに依存します。送信者だけがその存在を知っている場合でも、これは堅牢です。一般的な戦略は、一貫した目的を持つのに十分な大きさのフラグメントをいずれかの当事者が作成することを避けることです。