(これが正しいSEにない場合は申し訳ありません/ security.stackexchangeに関連していません-最良の選択のように見えました)
2人の匿名の当事者が、彼らの身元を明らかにする前に、以前はお互いに知られていないことを立証する方法はありますか?
アリスとボブが匿名でコミュニケーションをとることができ、後日一緒にある種の恥ずかしい活動に従事したいとします。彼らは、相手が知らない人である場合、自分の身元を明かすことを気にしませんが、この活動に参加したいという願望を知っている人に明かしたくありません。彼らは、プロセスで自分の身元を明らかにすることなく、どちらも相手を知らないことを確認する方法を望んでいます(ただし、計画している活動を進めると、必然的に自分の身元を明らかにします)。
これまでのところ、私の唯一のアイデアは、両方の当事者から名前のリスト(自分の名前を含む)を受け取り、一致をチェックする信頼できるサードパーティを関与させることです。サードパーティは、一致の有無のみを確認します。特定の命名およびハッシュ標準がアリスとボブによって合意された場合、各当事者が識別可能な名前の代わりにハッシュのリストのみを送信して、第三者がIDを明らかにするリスクを減らすことができる場合があります。
このように、一致するものがある場合、アリスとボブは、相手がリストの誰かであることだけを知っています。ただし、これは理想的ではありません。どちらの当事者も、限定された名前またはターゲットを絞った名前を提供して、相手のIDを推測できるようにすることで、プロセスを操作できるからです。
この状況に対してもっとエレガントなアプローチはありますか?
アリスまたはボブのいずれかが悪意を持っている可能性があり、プロセスを積極的に破壊しようとする場合(たとえば、彼らのIDまたは「既知のID」のリストについて嘘をつくことによって)、信頼できるサードパーティが必要になる可能性があります。関与。
最初からTTPを関与させるのが道のりだと思います。したがって、サービスの使用開始時にアリスとボブのリストに誰もいないと仮定すると、TTPは各トランザクションを仲介し、誰が誰を知っているかをリストの管理者にすることができます(直接IDを使用するか、何らかの形式の仮名)
課題は、アリスまたはボブが別のIDを送信して、いわばゼロから開始するのを防ぐことです。 TTPが何らかの比較的不変のIDチェックを行わずに、複数のアカウントを持つことを困難にすることなく、それを克服することは困難です。
あなたが相手を信頼できないと仮定すると、あなたは両方の人を識別するために第三者を必要とします、しかしそれでも、それは正確なプロセスではないでしょう。一方の当事者が誠意を持って行動していない場合、実際の身元以外に他方の人のリストに交差点はありません。
平均的な人は少なくとも数千人を知っていて、全員を思い出すことができない可能性が高いため、行儀の良い参加者の隙間を誰かがすり抜ける可能性は非常に高いです。私はおそらく、彼らを見れば(少なくとも視覚的に)認識できる1万人以上の人々に会ったことを知っています。彼らの名前すら知らないが、視覚的には識別できる。人間の記憶は、信頼できない当事者とこれを行うのに十分なほど良くも信頼性もありません。
さて、両方の当事者が信頼できる場合、人々が考えることができるリスト間の共通部分を探すことによって、概算を得ることがはるかに簡単になります。経理の名前でボブを覚えている可能性は低いかもしれませんが、同僚のことを十分に覚えているので、同じ人がたくさん働いていることを知っていれば、以前に会った可能性が十分にあります。それはまだ確実なことではなく、相互作用において両当事者が信頼に値することを要求し、第三者による拡張された身元調査が不足していることを確認する方法はありません。 (つまり、リストの各人に連絡し、関係を確認し、その人が知っていることを知っている人のリストを求め、あなたが終わりを失うまで続けます;そしてそれでも、彼らが異なるサブセットを持っている場合は完璧ではありませんお互いを知らない人。)
あるコメントでは、2人のユーザーが実際にお互いを知っているかどうか、またはその意味で何かをシステムが認識できるようにしたいとおっしゃいました。そして、私が正しく理解していれば、お互いを知ることは災害になるので、バランスは「可能な限り、彼らがお互いを知っていると考えてください」にかかっているでしょう。
その場合、アリスは単にあなたのサービスにサインインし、彼女が知っているすべての人々に通知するだけでは不十分です。ヒューバート(彼女の夫)は他の名前を使用してサインインするだけで、問題が発生する可能性があります。
その関係ネットワークを構築するには、全員がサインインしてより多くの情報を提供する必要があります。そして、それは偽物である可能性があるため、それぞれの発言を信頼することはできません(ここでも、Hubertは必要な情報を提供できます)。
したがって、サードパーティから提供された情報を信頼する必要があります。 Facebook、MySpace、Orkut、Google +、Gmailの自動連絡先作成、Linkedinなど、ネットワークの構築に完全に基づいて作成されたサイトがあります。Luluと同じように、誰が誰を知っているかを推測するために、それらの情報に頼ることができます。
また、偽の情報を処理する必要があります。 Luluはそれを行い、いくつかの制約をチェックして、偽のプロファイルが成功する可能性を減らします。これは、アカウントの古さ、その人の友達の数、各友達の友達の数などを確認することで実行できます。長い道のり。
そして、あなたは便利だと思うので「彼らはお互いを知っている」とマークするでしょう:彼らは同じ大学で勉強し、同じレストランが好きで、共通の友達がいます(アリスが知っているボブを知っているように、1度または2度で)アリスの夫、ヒューバートを知っているピーター)。
優れた処理能力と巨大なデータベースが必要であり、基本的にはFacebookなどが持っている情報を複製することになります。
それに加えて、彼らがそれらのソーシャルサイトで提供された情報を持っていなければ、2人が実際にお互いを知っているかどうかを知ることは不可能です。したがって、それらをシステムから除外する必要があります。