Dissent-小規模な閉鎖コミュニティ向けの匿名通信プロトコル

まえがき




意見の相違を理解するには、1988年に公開されたDavid Chaum(ネットワーク匿名性の実用的な実装のアイデアの創始者)の古典的な作品と、暗号作成者の食事に関するプロトコルを思い出す必要があります



3人の暗号作成者が昼食のためにレストランに来たと想像してください。 彼らがテーブルに座った後、ウェイターは彼らの夕食が匿名の健康なウィッシャーによって前もって支払われたことを彼らに知らせます。



暗号学者は、この賢明な人が彼らの1人である可能性があることを知っていますが、さらに、彼はNSAである可能性があります。 彼らは彼らのうちの1人が本当に昼食を支払ったかどうか、またはこれがNSAの仕事であるかどうかを知りたいです。 しかし、同時に、彼らは非常に思いやりがあり、彼らのうちの1人が支払えば、匿名の権利を尊重し、誰が支払ったのかを見つけません。 しかし、彼らはこの形式の質問に対する答えを受け取ることに興味があるでしょう:「誰かが出席し、それにもかかわらず、NSAは支払いましたか?」 これを行うには、1ビットの情報を匿名でブロードキャスト送信する必要があります。

各暗号作成者はコインを投げます。 右側の隣人に結果(頭または尾)を表示します。 したがって、コイントスは3回あり、各暗号作成者は2回の結果を知っています。 さらに、それぞれが次の情報を大声で言います:彼は同じ2つの結果を見た、または異なるが、1つの例外を除いて:昼食を支払った人は反対を言います。 2つの異なる結果が表示された場合、「同じ」と表示され、2つの同一の結果が表示された場合、「異なる」と表示されます。



テーブルの違いの数が奇数である場合、昼食は暗号学者の1人、偶数であればNSAによって支払われました。 さらに、暗号が昼食の代金を支払った場合、他の2人は、すべての発言に基づいて、それが彼であることがわかりません。



ただし、このプロトコルは実用的ではありません。 参加者の数が増えると、スループットは指数関数的に減少します。 衝突により、メッセージを同時に送信して1バイトを送信しようとすると、2nから2 ^ nバイトが消費されます。nは参加者の数です。

したがって、長年にわたってこのプロトコルの実用化は行われていませんでした(プロトコル「ディスコの暗号」など)。



職務レビュー


イェール大学(米国)のヘンリーコリガンギブスとブライアンフォードは、 説明責任のある匿名グループメッセージングのドラフト版-「責任属性を持つ匿名グループメッセージ」へのオープンアクセスを提供しました。



この調査では、小規模なプライベートオンライングループで匿名メッセージングを提供することに焦点を当てています。 グループのメンバーシップは閉じられ、グループメンバーに知られていることが理解されます。 メンバーは、グループメンバーの1人がメッセージを送信したことを受信者が知っているが、どのメンバーがメッセージを送信したかを知らないような方法で、お互いに、グループ全体または非グループメンバーにメッセージを送信できます。 グループメンバーは、秘密投票を使用してグループに投票したり、ニックネームを作成して他のメンバーと共同作業したりすることもできます。 同時に、ユーザーは責任(説明責任)になりますが、匿名性を損ない、承認されたまたはほとんどの有権者が人気のないユーザーの匿名性を開示することを犠牲にしませんが、悪意のあるユーザーはグループプロトコルの実装を妨害する機会を奪われます。



たとえば、悪意のあるユーザーは、他のユーザーからのメッセージを破損およびブロックしたり、グループをスパムしたり、投票を投げたり、無制限の数のSybilエイリアスを作成したりできません。



研究者は、Dissent(Dining-cryptographers Shuffled-Send Network)と呼ばれる、これらの条件を満たす最初のプロトコルを導入しました。 Dissentは、強力なトラフィック分析手法の脅威と侵害された参加者の存在に直面した際に、実証可能な整合性、匿名性、および説明責任を提供します。 実験プロトタイプは、小規模ではあるが広範囲に及ぶグループの間で遅延がそれほど大きくないメッセージを送信する際の有効性を示しています。 ミックスネットワークとDCネットワークとは対照的に、Dissentはシャッフル送信(シャッフルプリミティブ)を使用して、グループの各メンバーがラウンドごとに正確に1つのメッセージを送信できるようにし、エイリアスで投票してグループメンバーのエイリアスを1対1でバインドできるようにします。 検証済みの暗号化シャッフルとは異なり、Dissentは広く利用可能な暗号化プリミティブのみを使用し、負荷不均衡条件下で任意の長さのメッセージで動作するため、1人の参加者が他に送信するものがないときにマルチギガバイトのドキュメントをリークできるように効率的になります。



Dissentの2つの段階は、混合と蓄積です。 混合プロトコルは、それぞれから固定長のメッセージを混合し、グループのすべてのメンバーに匿名で送信するBrikelとShmatikovの作業に基づいています。 DoS攻撃を防ぐために、go / no-goおよび「有罪判決」技術を使用して不正なプロトコル参加者を追跡します。



蓄積プロトコルは、情報理論的に堅牢なDCネットワークに基づいていますが、DoS攻撃を排除するためのシャッフルフェーズが含まれています。 各ラウンドでは、グループのすべてのメンバーが、シャッフリングプロトコルを介して取得した疑似ランダム初期値を全員に渡します。これにより、参加者のすべてのビットストリームのXORは、特定の順列で異なる長さのすべてのメッセージの和集合を提供します。 混合段階で送信される暗号化ハッシュにより、参加者はプロトコルステップの正確性、メッセージの整合性を検証し、DoS攻撃に対する保護を提供できます。



もちろん、異議には制限があります。 オープンアクセス環境での大規模なメッセージングやファイル共有ネットワークには適していませんが、個別の構成要素として使用できます。 反対意見は、小さなグループでは効果的であり、大きなグループでは効果的ではありません。 Dissentは、汎用の投票システムではありません。これは、強制に対する保護の制限された形式のみを提供するためです。 シャッフルプロトコルの遅延は、そのような遅延に敏感なアプリケーションでそれを使用することも実用的ではありません。 研究者は、エミュラボでDissentワーキングプロトタイプを、エミュレートされた伝送チャネルで接続された最大44人の参加者のグループでテストしました。 16ノードで最大16 MBのサイズのメッセージを匿名で配信すると、ノード間で100ミリ秒の遅延が生じ、Dissentやその他の起動手順をシャッフルすると1.4分の遅延が発生しますが、大きなメッセージでのバランスの取れたダウンロードとアンバランスなダウンロードの両方を使用すると、必要な時間の3.5倍の時間がかかりますグループのすべてのメンバーへのTCPを介した非匿名送信。 Dissentでは、グループのサイズに応じて、4メンバーのグループでは1分未満、20ノードのグループでは4分、40ノードのグループでは14分で、1 MBの匿名メッセージを送信できます。



github異議のあるソースコード



All Articles