JP2022551780A - ネットワーク上の複数のノード間でクエリの匿名検証を提供するシステムおよび方法 - Google Patents

ネットワーク上の複数のノード間でクエリの匿名検証を提供するシステムおよび方法 Download PDF

Info

Publication number
JP2022551780A
JP2022551780A JP2021559519A JP2021559519A JP2022551780A JP 2022551780 A JP2022551780 A JP 2022551780A JP 2021559519 A JP2021559519 A JP 2021559519A JP 2021559519 A JP2021559519 A JP 2021559519A JP 2022551780 A JP2022551780 A JP 2022551780A
Authority
JP
Japan
Prior art keywords
node
server
requestor
network
data
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
JP2021559519A
Other languages
English (en)
Other versions
JP7555349B2 (ja
Inventor
イタイ レヴィ
ウリ アラド
Original Assignee
アイデンティーク プロトコル リミテッド
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by アイデンティーク プロトコル リミテッド filed Critical アイデンティーク プロトコル リミテッド
Publication of JP2022551780A publication Critical patent/JP2022551780A/ja
Application granted granted Critical
Publication of JP7555349B2 publication Critical patent/JP7555349B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • G06F21/6245Protecting personal data, e.g. for financial or medical purposes
    • G06F21/6254Protecting personal data, e.g. for financial or medical purposes by anonymising data, e.g. decorrelating personal data from the owner's identification
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0816Key establishment, i.e. cryptographic processes or cryptographic protocols whereby a shared secret becomes available to two or more parties, for subsequent use
    • H04L9/085Secret sharing or secret splitting, e.g. threshold schemes
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/42Anonymization, e.g. involving pseudonyms

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Health & Medical Sciences (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)
  • Information Transfer Between Computers (AREA)
  • Storage Device Security (AREA)

Abstract

ネットワーク内の複数のノード間でクエリの匿名検証を提供するシステムおよび方法であり、サポートノードにおいてリクエスタノードからクエリを受信し、クエリは、リクエスタノードの情報の少なくとも1つのデータポイントの一方向性関数表現を含み、サポートサーバにおいて少なくとも1つのバリデータノードから、バリデータノードの情報の少なくとも1つのデータポイントの一方向性関数表現を受信し、サポートサーバによって、リクエスタノードからのクエリを、情報の少なくとも1つのデータポイントの一方向性関数表現と比較し、アグリゲータサーバによって、比較に基づいて、リクエスタノードの情報の少なくとも1つのデータポイントが、少なくとも1つのバリデータノードの情報の少なくとも1つのデータポイントと一致するか否かを決定し、一致する結果をリクエスタノードに出力する。【選択図】図2

Description

[関連出願の相互参照]
本願は、2019年3月25日に出願された米国特許仮出願第62/823,028号の優先権を主張するものであり、この仮出願はその全体が参照により本明細書に組み込まれる。
[技術分野]
本発明は、データ検証の分野である。特に、本発明は、ネットワーク内の複数のノード間でクエリの匿名検証を提供することを指向している。
今日、オンラインビジネスは、強固な不正防止の必要性と、顧客に迅速、シームレス、かつユーザフレンドリな体験を提供する必要性とのバランスをとるという、深刻な課題に直面している。この課題は、このリスクの管理に個人識別情報(PII)データの使用が必要な場合に強調される。本明細書で理解されるPIIデータとは、個人のアイデンティティを識別または追跡するために使用できる情報のことで、単独で、または他のデータセットと組み合わせて、特定の個人にリンクしているか、リンク可能な他の個人情報または識別情報と組み合わせて使用することができる。このデータは非常に機密性の高いものであるため、不完全なものが多い。その結果、企業がデータを持たない場合、正当な顧客を誤ってリスクが高いと分類してしまい、ビジネスの損失や顧客離れにつながる可能性がある。また、合成IDを作成したり、盗まれたIDを使用したりする詐欺師の被害に遭うケースもある。このような詐欺師は、高いコストや摩擦なしに本物のIDと合成IDを見分ける簡単な方法がないことを利用して、同じIDが他のオンラインサービスで既に悪質であると指摘されている場合でも、企業に高い損失をもたらす。どちらの場合も、企業は、高い摩擦を与えずに顧客のアイデンティティを確認するという課題に直面している。
この問題はさらに、本人確認にとどまらず、クレジットカード番号、銀行口座、IPアドレス、電子メールアドレスなど、他のセンシティブな資産や個人を特定できる資産にまで及ぶ。さらに、これらの資産の中には、顧客の生涯を通じて変化する可能性があるものもあるため、企業は頻繁に更新される顧客記録を提供する仕組みを必要としている。特に問題となるのは、これらの資産を特定の人物や所有者に結びつけることである。例えば、支払いを行った人が提供されたクレジットカードの所有者であるかどうかを知ることができる。
この課題を解決する可能性があるのは、オンラインビジネスにおいて、信頼できる顧客に関するデータを相互に共有することで、より良いリスク管理、ビジネスの迅速な成長、そして顧客に優れたユーザ体験を提供することができる。すべてのオンラインビジネスは、より多くのデータにアクセスし、理想的には他の企業とデータを共有することで利益を得ることができるが、現在はいくつかの課題に直面しており、このようなコラボレーションを妨げている。
プライバシ:両規制(例:GDPR 2018、US Privacy Act 1974、California Consumer Protection Act(CCPA)など。)および世論は、オンラインビジネスがデータのプライバシとセキュリティの保護に取り組むことを求めている。その結果、オンラインビジネスでは、データを共有したり、管理されたデータウェアハウスの外にデータをエクスポートしたりすることに消極的で、しばしば禁止されている。データの共有は、犯罪捜査や不正行為が確認された場合など、特定のケースでのみ認められており、そのような場合でも、オンラインビジネスではデータを共有する相手について非常に慎重になっている。データを共有する場合、これらの企業は、第三者のセキュリティ手段とポリシー、および共有されたデータの使用に関して責任を負う可能性がある。例えば、Facebook(登録商標)は50億ドルの罰金を科せられ、悪名高いケンブリッジ・アナリティカのデータ流出に関与したことで、世間からも責任を問われた。
コラボレーション対競争:データは企業にとって「新しい石油」とも言われ、企業の競争力の源泉となっている。そのため、企業はお互いに直接データを共有することを好まず、自社のデータを完全に管理したいと考えている。しかし、潜在的なビジネス上の利益が大きい場合、企業は他の企業や競合他社とデータを共有することに同意する。通常、信頼できる第三者を通じてデータを共有するが、その際、データのソースには匿名性が確保されるため、企業秘密が守られることがある(例:ブラックリストに載ったクレジットカードの共有)。
IDデータ検証問題に対する現在のソリューションは、以下のカテゴリのいずれかに分類される。
データブローカ:オンラインソースからデータを収集・集計し、および/または顧客関係を保有する企業からデータを購入する企業。このデータは後に、意思決定プロセスに使用する他の企業に販売される。
特殊なデータベンダ:特定のデータセットを集約して配布する企業で、通常、生データに加えてデータ品質の検証や衛生管理、各資産のリスクスコアリングなどを提供している。一般的な例としては次のようなものがある:メールアドレスのEmailage、IP-GeolocationデータのMaxMindとDigital Resolve、電話関連情報のNeustarなど。
データビューロ:顧客の個人データを保有するために政府のライセンスに基づいて運営されている組織。ほとんどの場合、報告されたデータを収集し、計算されたクレジットスコアを提供することで、クレジット申請をサポートするために作成される(例:Experian、FICO、Equifax、TransUnion、Innovis、PRBCなど)。
データマーケットプレイス:データベンダとデータコンシューマとを結びつける。マーケットプレイスは、データへのアクセスや統合を簡素化することに重点を置いているが、付加価値を提供するものではない。
不正管理ツール:複数の企業のデータを利用して、アカウントやトランザクションのリスクスコアを算出するツール。
既存のソリューションは長年にわたって使用されてきたが、いずれもいくつかの本質的な欠点があり、市場での有効性と実行可能性を制限している。
断片化/網羅性:PIIデータの性質上、ほとんどのソリューションは特定の国や地域のデータしか提供していない。グローバルなビジネスでは、高いカバレッジと精度を実現するために、多くのベンダを探して統合する必要がある。
信頼度および系統性:ほとんどのデータベンダやアグリゲータは、データがどのように収集されたか、またデータ対象者から適切な許可を得たかどうかについて、限られた、あるいは全く情報を提供していない。これは、例えば、意図しないプライバシの侵害や顧客の信頼の失墜につながる可能性があり、また、データの正確性や信頼度が低い場合には、詐欺被害の拡大につながる可能性もある。
プライバシの侵害:既存のソリューションでは、リクエスタと検証サービスプロバイダとの間でデータ交換が必要である。これにより、個人情報が流出し、顧客のプライバシが侵害される可能性がある。共通のデータ交換を分析してみると、つぎのようである:
(データの)リクエスタ:企業は通常、検証目的でベンダとデータを共有する正当な理由を持っているが、ベンダがデータをどのように使用するかをコントロールすることはできない。これにより、ベンダはデータを収集した当初の目的を超えてデータを収集・使用する可能性がある。これにより、リクエスタの責任がさらに重くなり、プライバシの侵害につながる可能性がある。
(データの)プロバイダ:ユーザが自らの意思で、あるいは時には無意識のうちに、ユーザの個人情報にアクセスすることを承認した企業、ビジネス、サービスは、データブローカなど、PIIデータの収集源となることが多い。同様に、オンラインユーザは、ウェブサイトでアカウントを登録するためにPIIの提供を求められることがよくある。その上で、データ収集や、データを保存することによるメリット(毎回パスワードを入力する必要がない、個人広告に効果があるなど)をユーザに伝える。しかし、これらの承認を受けた企業は、収集・保存したPIIをデータブローカに販売することがあり、ほとんどの場合、ユーザの知識や同意なしに販売している。企業は、現在受け取っているデータが、必要なユーザ許可を得て取得されたものかどうかを確認できないことが多い。
規制上の問題:独立した情報源:規制上、一部のデータ要素は複数の独立した情報源によって検証される必要があり得る。しかし、実際のデータのソースは不明であるため、企業は2つの異なるサードパーティベンダに対してデータを検証しているかもしれないが、実際には、両方が同じソースからデータを購入している場合、1つのソースからのデータしか検証していないことになる。
シングル・ポイント・オブ・フェイル(単一障害点):データの価値が高まるにつれて、このデータへの依存度も高まる。企業は、いつでもサービスを停止できる単一のソースに依存することで、重要なビジネスプロセスを正常に完了できなくなることへの懸念を強めている。
そこで必要となるのが、個人を特定できる情報(PII)の基本的なプライバシを損なうことなく、ユーザが他のユーザのデータを使用して、個人、支払手段、または企業に関するセンシティブでプライベートな情報を検証できるようなソリューションである。
本発明の一実施形態は、ネットワーク内の複数のノード間でクエリの匿名検証を提供する方法であり、複数のノードのうちの少なくとも1つの他のノードによるクエリの検証のために、第1のサーバにおいて、ネットワーク内のリクエスタノードからクエリを受信するステップであって、クエリは、リクエスタノードの情報の少なくとも1つのデータポイントの符号化された表現を含み、符号化された表現は、複数のシェアの第1のセットに分割される、ステップと、第1のサーバにおいて、複数のノードのうちの少なくとも1つのバリデータノードから、バリデータノードの情報の少なくとも1つのデータポイントの符号化された表現を受信するステップであって、少なくとも1つのバリデータノードからの符号化された表現は、複数のシェアの第2のセットに分割される、ステップと、複数のサポートサーバによって、リクエスタノードからの複数のシェアの第1のセットと、少なくとも1つのバリデータノードの複数のシェアの第2のセットとを比較するステップと、第2のサーバによって、比較に基づいて、リクエスタノードの情報の少なくとも1つのデータポイントが、少なくとも1つのバリデータノードの情報の少なくとも1つのデータポイントと一致するか否かを決定するステップと、一致する結果をリクエスタノードに出力するステップと、を含む。
いくつかの実施形態では、符号化された表現は、ワンタイム暗号化を含み、ワンタイム暗号化は、リクエスタノードおよび少なくとも1つのバリデータノードによって使用される。いくつかの実施形態では、複数のシェアの第1のセットおよび第2のセットは、それぞれ各ノードに対してランダムに生成される。いくつかの実施形態では、比較するステップは、複数のシェアの第1のセットの各シェアを、そのセットの他のシェアとは別のサポートサーバに送信するステップと、複数のシェアの第2のセットの各シェアを、そのセットの他のシェアとは別のサポートサーバに送信するステップと、各サポートサーバにおいて、リクエスタノードから受信した値と、少なくとも1つのバリデータノードから受信した同等の値とを照合するステップと、をさらに含む。
いくつかの実施形態では、決定するステップは、第2のサーバによって、複数のサポートサーバの各々からの結果の値のセットを集約するステップと、複数のサポートサーバからの結果の値のセットを統合するステップと、統合に基づいて、合計がゼロになるかどうかを識別するステップと、をさらに含む。いくつかの実施形態では、少なくとも1つのデータフィールドは、顧客の身元に関する。いくつかの実施形態では、ネットワークは、クローズドネットワークであり、クローズドネットワークの各ノードは、クローズドネットワークの事前承認されたメンバである。
いくつかの実施形態では、複数のサポートサーバの各々は、一時的ノードを含み、一時的ノードは、持続的メモリまたはストレージ容量を含まない。本発明のいくつかの実施形態は、第2のサーバによって、一致した結果に関連する信頼度スコアを計算するステップと、一致した結果とともに信頼度スコアを出力するステップと、をさらに含む。
ネットワーク内の複数のノード間でクエリの匿名検証を提供するためのさらなる方法は、ネットワーク内のサポートノードにおいて、ネットワーク内のリクエスタノードからクエリを受信するステップであって、クエリは、リクエスタノードの情報の少なくとも1つのデータポイントの一方向性関数表現を含む、ステップと、サポートサーバにおいて、複数のノードのうちの少なくとも1つのバリデータノードから、バリデータノードの情報の少なくとも1つのデータポイントの一方向性関数表現を受信するステップと、サポートサーバによって、リクエスタノードからのクエリを、少なくとも1つのバリデータノードの情報の少なくとも1つのデータポイントの一方向性関数表現と比較するステップと、アグリゲータサーバによって、比較に基づいて、リクエスタノードの情報の少なくとも1つのデータポイントが、少なくとも1つのバリデータノードの情報の少なくとも1つのデータポイントと一致するか否かを決定するステップと、一致する結果をリクエスタノードに出力するステップと、を含む。
上記の方法の実施形態にしたがったシステムが提供されてよい。これらのおよび他の側面、特徴、および利点は、本発明の特定の実施形態に関する以下の説明を参照して理解されるであろう。
本発明とみなされる主題は、明細書の最後の部分で特に指摘され、明確に主張されている。しかし、本発明は、その目的、特徴および利点とともに、組織および操作方法の両方について、添付の図面と合わせて以下の詳細な説明を参照することにより、最もよく理解することができる。本発明の実施形態は、限定するものではなく例示として添付図面の図に示されており、その中で同様の参照数字は、対応する、類似する、または同様の要素を示している。
図1は、本発明の少なくとも1つの実施形態による、ネットワーク内の複数のノード間でクエリの匿名検証を提供するためのシステム100の構成例を示す高レベル線図である。 図2は、システム100の構成例の高レベルシステムアーキテクチャの概要を示す。 図3は、本発明の少なくとも1つの実施形態による、システム100(図1および図2参照)のエッジサーバ175の高レベルの構成例を示す。 図4は、本発明の少なくとも1つの実施形態による、ネットワーク内の複数のノード間でクエリの匿名検証を提供するための方法400のフロー線図である。 図5は、本発明の少なくとも1つの実施形態による、個々のデータフィールドを検証するための方法500のフロー線図である。
図を分かりやすくするために、図に示されている要素は必ずしも正確に描かれているわけではなく、縮尺も決まっていない。例えば、いくつかの要素の寸法を他の要素に比べて誇張してわかりやすくしたり、複数の物理的コンポーネントを1つの機能ブロックや要素に含めたりすることができる。さらに、適切と思われる場合には、対応するまたは類似の要素を示すために、図の間で参照数字を繰り返すことができる。
以下の説明では、本発明のさまざまな態様について説明する。説明のために、本発明の完全な理解を得るために、具体的な構成と詳細を示す。しかし、本発明は、ここに示された特定の詳細がなくても実施してよいことも、当業者には明らかであろう。さらに、本発明を不明瞭にしないために、よく知られた特徴を省略または簡略化してよい。
本発明の実施形態は、この点に関して限定されないが、例えば、「処理」、「計算」、「算出」、「決定」、「確立」、「分析」、「確認」などの用語を用いた議論は、コンピュータのレジスタおよび/またはメモリ内の物理的(例えば、電子的)量として表されるデータを、コンピュータのレジスタおよび/またはメモリ、またはプロセッサによって実行されるとプロセッサに動作や処理を行わせる命令を格納することができる他の情報の非一時的なプロセッサ読み取り可能な記憶媒体内の物理的量として同様に表される他のデータへ、操作および/または変換する、コンピュータ、コンピューティングプラットフォーム、コンピューティングシステム、または他の電子コンピューティングデバイスの操作および/またはプロセスを指す場合がある。本発明の実施形態は、この点に関して限定されないが、本明細書で使用される「複数」および「複数」という用語は、例えば、「複数」または「2つ以上」を含み得る。本明細書では、2つ以上のコンポーネント、デバイス、エレメント、ユニット、パラメータなどを説明するために、「複数」または「複数」という用語が使用され得る。本明細書で使用されるセットという用語は、1つまたは複数のアイテムを含み得る。明示的に述べられていない限り、本明細書に記載されている方法の実施形態は、特定の順序またはシーケンスに拘束されない。さらに、説明された方法の実施形態またはその要素のいくつかは、同時に、同じ時点で、または同時進行で発生または実行されてよい。
本発明のいくつかの実施形態では、データ検証への新しいアプローチが提供され、企業が自分のデータを管理し、顧客のプライバシを保護しながら、お互いのデータ(例えば、個人、支払手段、企業などに関する機密情報やプライベートな情報)を検証することができる。これを実現するために、本発明のいくつかの実施形態では、分散化されたピアツーピアのプライベートデータ検証ネットワークが確立され、企業、個人などの各参加メンバ(以下、「要求側」、「要求側メンバ」、または「リクエスタ」)は、顧客から受信したデータをネットワークの全知識を用いて検証することができる。分散型フレームワークとして、すべてのデータはその発信元に保管され、発信元と検証者の身元確認を含め、検証交換の一環として個人データが第三者と共有、コピー、複製されることはない。データの検証は、各データ要素が完全に匿名化され、どの当事者も自分以外のPIIデータに触れることがないような、安全でプライベートな方法で行い得る。リクエスタは、顧客から受信したデータ一式が有効であることの証明を受け取る一方で、ネットワークオペレータを含む他の当事者は、リクエスタが問い合わせた顧客の身元について何も知ることはない。また、他の参加メンバは、リクエスタの身元や、有効な一致が見つかったことさえも知ることができない。
データ検証ネットワークに参加しているメンバは、他のメンバからの検証データの問い合わせをサポートしたり、ネットワークにリクエストしたりすることができ、ネットワーク全体で利用可能なデータの世界を常に拡大することができる。
この新しいパラダイムにより、メンバ企業は、プライバシや規制上の要件を満たしながら、ID詐欺のリスクとエクスポージャをより良く軽減し、偽陽性率を大幅に低減することができる。ネットワークのメンバは、計算やデータの検証に参加し、いくつかの実施形態では、肯定的な一致に対して報酬を受け取ってよい。
図1は、本発明の少なくとも1つの実施形態による、ネットワーク内の複数のノード間でクエリの匿名検証を提供するためのシステム100の構成例を示す高レベル線図である。システム100は、ネットワーク105を含み、これは、プライベート運用ネットワーク、インターネット、1つ以上のテレフォニーネットワーク、ローカルエリアネットワーク(LAN)およびワイドエリアネットワーク(WAN)を含む1つ以上のネットワークセグメント、1つ以上のワイヤレスネットワーク、またはこれらの組み合わせを含んでよい。いくつかの実施形態では、システム100は、本発明の1つまたは複数の実施形態にしたがって構築されたシステムサーバ110を含んでよい。いくつかの実施形態では、システムサーバ110は、スタンドアローンのコンピュータシステムであってよい。他の実施形態では、システムサーバ110は、ネットワーク105を介して通信する、動作可能に接続されたコンピューティングデバイスの分散型ネットワークを含んでよい。したがって、システムサーバ110は、コンピュータ、より具体的には、据置型デバイス、モバイルデバイス、端末、および/またはコンピュータサーバ(以下、総称して「コンピューティングデバイス」という、などの他の複数の処理マシンを含んでよい。これらのコンピューティングデバイスとの通信は、例えば、ネットワーク105にアクセス可能なさらなるマシンを介して、直接的または間接的に行うことができる。
システムサーバ110は、コンピューティングデバイス、他のリモートデバイス、またはコンピューティングネットワークと通信し、電子情報を受信、送信、および保存し、本明細書でさらに説明するように要求を処理することができる任意の適切なコンピューティングデバイスおよび/またはデータ処理装置であってよい。したがって、システムサーバ110は、ラップトップ、デスクトップ、ワークステーション、パーソナルデジタルアシスタント、サーバ、プレドサーバ、エッジャサーバ、メインフレーム、および本明細書に記載されているシステムおよび方法を採用することができる他の適切なコンピュータおよび/またはネットワークまたはクラウドベースのコンピューティングシステムなど、さまざまな形態のデジタルコンピュータを表すことが意図されている。
いくつかの実施形態では、システムサーバ110は、システム100の動作を可能にする役割を果たすさまざまなハードウェアおよびソフトウェアコンポーネントに動作可能に接続されるサーバプロセッサ115を含んでよい。サーバプロセッサ115は、本明細書でより詳細に説明した本発明の実施形態のさまざまな機能に関連するさまざまな動作を実行する命令を実行する役割を果たしてよい。サーバプロセッサ115は、特定の実装に応じて、1つまたは複数のプロセッサ、中央処理装置(CPU)、グラフィックス処理装置(GPU)、マルチプロセッサコア、またはその他のタイプのプロセッサであってよい。
システムサーバ110は、ネットワーク105に接続されたさまざまな他の装置と通信インターフェース120を介して通信するように構成されてよい。例えば、通信インターフェース120は、モデム、NIC(Network Interface Card)、統合ネットワークインターフェース、無線周波数送受信機(例えば、Bluetooth(登録商標)無線接続、セルラー、NFC(Near-Field Communication)プロトコル、衛星通信送受信機、赤外線ポート、USB接続、および/または、システムサーバ110を他のコンピューティングデバイスおよび/またはプライベートネットワークやインターネットなどの通信ネットワークに接続するための他の任意のそのようなインターフェースを含んでよいが、これらに限定されない。
特定の実装では、サーバメモリ125は、サーバプロセッサ115によってアクセス可能であってよく、それにより、サーバプロセッサ115が、1つ以上のソフトウェアモジュール130の形でメモリおよび/またはストレージに格納された、コードなどの命令を受け取り、実行することができ、各モジュールは1つ以上のコードセットを表す。ソフトウェアモジュール130は、本明細書に開示されたシステムおよび方法の態様のための操作を実行するために、サーバプロセッサ115で部分的または全体的に実行されるコンピュータプログラムコードまたは命令セットを有する1つまたは複数のソフトウェアプログラムまたはアプリケーション(「サーバアプリケーション」と総称する)を含んでよく、1つまたは複数のプログラミング言語の任意の組み合わせで書かれていてよい。サーバプロセッサ115は、例えば、コードまたはソフトウェアを実行することによって、本発明の実施形態を遂行するように構成されてよく、本明細書に記載されているように、モジュールの機能を実行してよい。例示的なソフトウェアモジュールは、本明細書に記載されているように、通信モジュール、およびその他のモジュールを含んでよい。通信モジュールは、サーバプロセッサ115によって実行されて、システムサーバ110と、例えば、本明細書に記載されているサーバデータベース135、ユーザデバイス(複数可)140、および/またはエッジサーバ(複数可)175など、システム100のさまざまなソフトウェアおよびハードウェアコンポーネントとの間の通信を容易にし得る。
もちろん、いくつかの実施形態では、サーバモジュール130は、本発明のこれらの機能性および他の機能性を実現するために実行され得る、より多くのまたは少ない実際のモジュールを含んでよい。したがって、本明細書に記載されているモジュールは、本発明のいくつかの実施形態にしたがったシステムサーバ110のさまざまな機能性を代表するものであることが意図されている。本発明のさまざまな実施形態にしたがって、サーバモジュール130は、スタンドアローンのソフトウェアパッケージとしてシステムサーバ110上で完全に実行されてよいし、システムサーバ110上で一部、ユーザデバイス140およびエッジサーバ175のうちの1つ以上で一部実行されてよいし、ユーザデバイス140および/またはエッジサーバ175上で完全に実行されてよいことに留意すべきである。
サーバメモリ125は、例えば、ランダムアクセスメモリ(RAM)や、その他の適切な揮発性または不揮発性のコンピュータ可読記憶媒体であってよい。また、サーバメモリ125は、特定の実装に応じてさまざまな形態をとることができるストレージを含んでよい。例えば、ストレージには、ハードドライブ、フラッシュメモリ、書き換え可能な光ディスク、書き換え可能な磁気テープ、またはこれらの組み合わせなど、1つまたは複数のコンポーネントまたはデバイスが含まれ得る。さらに、メモリやストレージは固定されていても、取り外し可能であっても構わない。さらに、メモリおよび/またはストレージは、システムサーバ110にローカルに配置されてよく、リモートに配置されてよい。
本発明のさらなる実施形態によれば、システムサーバ110は、例えば、ネットワーク105を介して直接的または遠隔的に、1つまたは複数のデータベース(複数可)135に接続されてよい。データベース135は、本明細書に記載されているようなメモリ構成のいずれかを含んでよく、システムサーバ110と直接または間接的に通信してよい。いくつかの実施形態では、データベース135は、本発明の1つまたは複数の側面に関連する情報を格納してよい。
本明細書で説明したように、ネットワーク105上の、またはネットワーク105に接続されたコンピューティングデバイスの中には、1つまたは複数のユーザデバイス140が含まれ得る。ユーザデバイス140は、任意の標準的なコンピューティングデバイスであってよい。本明細書で理解されるように、1つまたは複数の実施形態にしたがって、コンピューティングデバイスは、デスクトップコンピュータ、キオスクおよび/またはその他のマシンなどの据え置き型コンピューティングデバイスであってよく、各々が、一般に、さまざまな機能を実装するコードを実行するように構成された、ユーザプロセッサ145などの1つまたは複数のプロセッサと、ユーザメモリ155などのコンピュータ読み取り可能なメモリと、ネットワーク105に接続するためのユーザ通信インターフェース150と、ユーザモジュール160などの1つまたは複数のユーザモジュールと、入力デバイス165などの1つまたは複数の入力デバイスと、出力デバイス170などの1つまたは複数の出力デバイスとを備えている。例えば、入力デバイス165のような典型的な入力装置は、キーボード、ポインティングデバイス(例えば、マウスまたはデジタル化されたスタイラス)、ウェブカメラ、および/またはタッチセンシティブなディスプレなどを含んでよい。代表的な出力装置として、例えば出力デバイス170は、プリンタ、ディスプレ、スピーカ、プリンタなどの1つ以上を含んでよい。
いくつかの実施形態では、ユーザモジュール160は、ユーザデバイス140のさまざまな機能性を提供するために、ユーザプロセッサ145によって実行されてよい。特に、いくつかの実施形態では、ユーザモジュール160は、ユーザデバイス140のユーザが対話することができるユーザインターフェースを提供してよく、特に、システムサーバ110と通信してよい。
加えて、または代わりに、コンピューティングデバイスは、モバイル電子機器(「MED」)であってよい。このモバイル電子機器は、上述の据え置き型デバイスと同様のハードウェアコンポーネントを有し、本明細書に記載されたシステムおよび/または方法を具現化できるものとして当技術分野では一般的に理解されているが、ワイヤレス通信回路、ジャイロスコープ、慣性検出回路、ジオロケーション回路、タッチ感度などのコンポーネントをさらに含むことができる他のセンサも含まれる。典型的なMEDの非限定的な例としては、スマートフォン、パーソナルデジタルアシスタント、タプレットコンピュータなどがあり、それらは、セルラーネットワークやWi-Fi(登録商標)ネットワークを介して、あるいはBluetooth(登録商標)などの通信プロトコルを使用して通信してよい。キーボード、マイク、加速度計、タッチパネル、照度計、デジタルカメラ、さらに機器を装着するための入力端子などがあるが、これらの入力機器は、従来のMEDには存在しない。
いくつかの実施形態では、ユーザ機器140は、「ダミー」端末であってよく、それによって、処理およびコンピューティングがシステムサーバ110で実行されてよく、その後、情報は、表示および/または基本的なデータ操作のために、サーバ通信インターフェース120を介してユーザ機器140に提供されてよい。いくつかの実施形態では、1つのデバイス上に存在する、および/または、1つのデバイス上で実行するように描かれたモジュールは、追加的または代替的に、別のデバイス上に存在してよく、および/または、別のデバイス上で実行してよい。例えば、いくつかの実施形態では、システムサーバ110上に存在し実行するものとして図1に描かれているサーバモジュール130の1つまたは複数のモジュールが、追加的または代替的にユーザデバイス140上に存在してよくおよび/または実行してよい。同様に、いくつかの実施形態では、図1でユーザデバイス140上に存在し実行されるものとして描かれているユーザモジュール160の1つ以上のモジュールが、追加的または代替的にシステムサーバ110上に存在してよくおよび/または実行してよい。
同様に、いくつかの実施形態では、エッジサーバ175は、「ダミー」端末であってもよく、それによって、処理およびコンピューティングがユーザデバイス140で実行されてよく、その後、情報は、表示および/または基本的なデータ操作のために、ユーザ通信インターフェース150を介してエッジサーバ175に提供されてよい。いくつかの実施形態では、1つのデバイス上に存在する、および/または、1つのデバイス上で実行するように描かれたモジュールは、追加的または代替的に、別のデバイス上に存在してよくおよび/または別のデバイス上で実行してよい。例えば、いくつかの実施形態では、図1でユーザデバイス140上に存在し実行されるものとして描かれているユーザモジュール160の1つまたは複数のモジュールが、追加的または代替的にエッジサーバ175上に存在してよくおよび/または実行してよい。いくつかの実施形態では、エッジサーバ175は、システムサーバ110および/またはユーザ機器140に関連して図1に記載されているような1つまたは複数の機能および/または性能を含んでよい。
図2は、本発明の少なくとも1つの実施形態による、ネットワーク内の複数のノード間でクエリの匿名検証を提供するためのシステム100(図1参照)の例示的な構成の高レベルシステムアーキテクチャの概要を示す。
いくつかの実施形態では、中央に描かれているようなプライベートネットワーク105は、本明細書に記載されているサービスおよび/または機能性の一部またはすべてを保持してよい。いくつかの実施形態では、本明細書に記載されたサービスおよび/または機能の一部または全部が、例えば、システムサーバ110にホストされ、および/または、さまざまなエッジサーバ175および/またはユーザデバイス140(「顧客バックエンド」とも呼ばれる)に分散されてよい。いくつかの実施形態では、エッジサーバ175は、顧客/メンバ/ユーザの構内、例えば、彼らのクラウド環境上、またはメンバのデータセンターに設置されてよい。
いくつかの実施形態では、プライベートネットワーク105は、各メンバが例えば審査プロセスを経て、初めてエッジを展開してクローズドネットワークに接続することを許可されるクローズドネットワークであってよい。慣習上、本明細書では、各エッジサーバ175をネットワーク105上の「ノード」と呼ぶ。
いくつかの実施形態では、エッジサーバ175は、顧客がネットワークに問い合わせを送信し、応答(すなわち、「検証」)を受信することができることを容易にし得る。いくつかの実施形態では、各エッジサーバ175は、顧客が所定の応答で自分の顧客ベースを保証できるように、顧客の顧客ベースの符号化(例えば、ハッシュ化)されたバージョンを含んでよい。本明細書で理解される符号化は、元のデータの一方向マッピングまたは他の代表的な形態であり、例えば、ハッシュ化、暗号化、または他の手段を用いて実施し得る。
いくつかの実施形態では、各顧客は、提供された/インストールされたソフトウェア開発キット機器140にデータをアップロードして、データの適切なエンコーディングおよび/または表現(例えば、ハッシュ化、一方向マッピング、および/または他の暗号化)を確保し、その後、エッジサーバ175または指紋データベース180にPIIおよび/または生データが保存されることなく、エッジサーバ175および/または指紋データベース180に保存し得る。いくつかの実施形態では、データの符号化および/または表現は、本明細書に記載されているデータのクリーンアップおよび/または正規化をさらに含んでよい。PIIおよび/または生データは、例えば、ユーザのデータベース(例えば、顧客データベース185)のファイアウォールの内側に保管されてよい。いくつかの実施形態では、エッジサーバ175および/または指紋データベース180は、非武装地帯(DMZ)で提供されてよく、一方、顧客バックエンド140および/または顧客データベース185は、例えば、保護が最も高いコーポレートゾーンで提供されてよい。コンピュータセキュリティにおいて、DMZ(境界ネットワークまたはスクリーニングされたサブネットと呼ばれることもある)は、組織の外部向けサービスが、信頼されていないネットワークや、信頼されているネットワーク内の信頼されていない要素に含まれたり、さらされたりする可能性のある物理的または論理的サブネットワークである。
本発明のさまざまな実施形態によれば、例えば、3つの層のデータがあってよい。
顧客のデータ(例:CRMなど):顧客のシステムに保存されている生のPIIデータ。元のフォーマットのこのデータは、顧客のセキュアゾーンに保存され、エッジサーバ175やネットワーク105には公開されない。しかし、エッジサーバ175のソースデータとなる。
指紋データベースには、SDKなどで処理された後の顧客のデータが含まれている。いくつかの実施形態では、SDKは、データを処理し、データのクレンジング、正規化、および/またはハッシュ化を実行し、いくつかの実施形態では、指紋データベース180は、データの符号化された、例えば、一方向ハッシュ化されたバージョン、またはそうでなければ不可逆的な、非識別化された表現のみを保持し得る。ここで述べたように、このデータベースは依然として顧客のセキュリティ管理下にある。
本明細書に記載されているいくつかの実施形態では、検証要求がクローズドネットワーク内の他のノードに発行されると、要求は一方向マッピングまたはエンコーディング(例えば、ハッシュなどの1つ以上のプロトコルに基づく)の第2の層を経て、最終的には要求自体が乱数のシーケンスを含み得る(指紋データベース180に格納されているデータの指紋エンコードバージョンではない)。重要なのは、顧客関連のデータは、たとえエンコードされた形であっても、ネットワーク105(またはそれに接続された他のノード)のどこにも保存されないことである。データが保存される場所は、関連する顧客エッジサーバ175のみである。
プライバシは、ここに記載されているシステムと方法の重要な考慮事項である。したがって、先行技術のシステムに対する実質的な改善点であり、本発明の実施形態のアーキテクチャと設計の重要な側面は、データフローの保護と、リクエスト実行に参加しているネットワークメンバの身元が、リクエスタ側からもバウチャ(バリデータ/検証者)側からも隠されていることを保証する一連のツールである。さらに、本明細書に記載されているシステムおよび方法は、最終顧客の身元およびそのデータ(PIIデータが漏洩しないことを含む)を確実に保護する。
図3は、本発明の少なくとも1つの実施形態による、システム100(図1および図2参照)のエッジサーバ175の高レベルの構成例を示す。
いくつかの実施形態では、エッジサーバ175は、1つまたは複数のプライバシ機能を提供してよい。
1.「エッジにPIIなし」:
a.いくつかの実施形態では、SDKは、エッジサーバ175にロードされたすべてのデータがクレンジング、エンコード、ハッシュ化、および/または匿名化されることを保証してよく、それにより、エッジサーバ175がPIIおよび/または生データを含むことができないように保証する。
b.いくつかの実施形態では、顧客側の誰かが(誤って)非エンコードデータをエッジサーバ175にロードしないように(例えば、SDKが使用されていない場合や動作していない場合に)、例えばフィルタを含むエッジサーバデータロードアプリケーションプログラミングインターフェース(API)が提供されてよい。
2.「ネットワークレベル認証」:いくつかの実施形態では、エッジサーバ175は、ネットワークゲートウェイと呼ばれるコンポーネント、例えば、エッジネットワークゲートウェイ181を介して、プライベートネットワーク105にのみ接続してよい。クライアント側の証明書(TLS)を使用することにより、例えば、エッジサーバ175は、ネットワーク105に接続することを認証してよく、エッジネットワークゲートウェイ181は、エッジサーバ175がネットワーク105にのみ接続できることを検証してよい。
3.「ネットワークの分離」:いくつかの実施形態では、エッジサーバ175は、ネットワーク105にのみ接続するように構成されてよく、さらなる実施形態では、接続されると、エッジサーバ175は、ネットワーク105によって提供されるサービスのみを見て、他のエッジサーバ(例えば、異なる顧客を表すノード)を見ないようにしてよい。いくつかの実施形態では、これは仮想LANを使用して実装してよい。
いくつかの実施形態では、ネットワーク105(本明細書では「クラウド」とも呼ばれる)は、さまざまなプライバシ機能をエッジサーバ175に提供してよい。
1.「ネットワークレベルの認証」:いくつかの実施形態では、各エッジサーバ175は、クラウドAPIゲートウェイ181と呼ばれるサービスを介してネットワーク105に接続してよい。このサービスは、ネットワーク側に常駐してよく、各エッジサーバ175を検証してよく、エッジサーバ175がネットワークに接続できることを保証してよい。いくつかの実施形態では、これは、例えば、クライアント側の証明書または他のID182を使用して実装してよい。いくつかの実施形態では、例えば、クレデンシャルおよび/または多要素認証などの代替認証方法を実装してよい。
2.「メンバ認証」:いくつかの実施形態では、リクエスト生成サービス(例えば、リクエスタ183)は、受信したリクエストを認証してよく、各クエリに対して一意のリクエストIDを生成してよい。いくつかの実施形態では、このリクエストIDは、リクエストのライフサイクルの間だけ存在し、その後は(例えば、自動または手動で)削除される。いくつかの実施形態では、生成者はリクエストの発信元を検証してよく、システムの不正使用の試みをブロックしてよい。
3.「リクエストの署名」:いくつかの実施形態では、リクエスト生成者がリクエストに署名はいよく、誰もリクエスト情報を改ざんしたり、不正なリクエストをネットワークに注入したりできない。
4.「キャスティングネットワークアイデンティティ」:いくつかの実施形態では、ネットワークアサイナは、1つまたは複数のシステムプロトコルにしたがって、各クエリに対して参加メンバノードを提供してよい。これらの当事者ノードは、参加しているエッジサーバ175(例えば、バウチャ/バリデータとして)、コンピュテーションサービス、アグリゲータサービス、および/またはスコアリングサービス(すべて本明細書に記載)を含んでよい。いくつかの実施形態では、リクエストごとに、ネットワークアサイナは、リクエスタエッジサーバ175(すなわち、リクエストが送信されたエッジサーバ)が、他の参加エッジサーバ175(バウチャ)のアイデンティティおよび/または提供されるサービスの数を知ることができないように、これらのサービスのアドホックIDを生成してよい。いくつかの実施形態では、クラウドAPIゲートウェイは、これらのアドホックIDと、これらのサービスの実際のネットワークアドレスとの間のマッピングを実行してよい。
5.「匿名配信」:いくつかの実施形態では、エッジサーバ175がお互いに見えないことを考えると、ディスパッチャサービスというサービスがあり、これが中間者のようなサービスとして機能してよい。いくつかの実施形態では、このサービスは、ソースエッジサーバ175からメッセージを受け取ってよく、ターゲットエッジサーバ175に転送して、やはり2つのエッジサーバ175が直接通信できないようにして、ユーザのアイデンティティを保護する。いくつかの実施形態では、匿名配信の方法が実施されてよく、例えば、Dropboxの方法、Torにヒントを得たプロトコルなどがある。いずれにしても、関連するエッジサーバ175以外のネットワークには、データは保存されない。
図4は、本発明の少なくとも1つの実施形態による、ネットワーク内の複数のノード間でクエリの匿名検証を行うための方法400のフロー線図である。いくつかの実施形態では、方法400は、プロセッサ(例えば、サーバプロセッサ115)、メモリ(例えば、サーバメモリ125)、およびメモリに格納されプロセッサで実行される1つまたは複数のコードセット(例えば、サーバモジュール(複数可)130)を有するコンピュータ(例えば、システムサーバ110、ユーザデバイス140(本明細書では、顧客デバイスまたは顧客バックエンドとも呼ばれる)、および/またはエッジサーバ175)で実行されてよい。この方法は、ステップ405で、ユーザ(例えば、オンラインストアなどのサービスプロバイダ)(以下、「リクエスタ」または「リクエスタノード」)が、新規顧客からデータ、例えば、PIIを受信/収集したときに始まる。本明細書で理解されるリクエスタとは、ネットワークのメンバ(およびそのそれぞれのノード/エッジサーバ175)であり、そのメンバが保持するデータ値(例えば、取得した電子メールアドレス)が、ネットワークの他のメンバのデータベースに存在するかどうかを確認することを望む。
いくつかの実施形態では、ステップ410において、リクエスタは、照会され、潜在的に検証されるデータの指紋を計算してよい(本明細書でさらに詳細に説明する)。いくつかの実施形態では、クエリ、すなわち指紋は、データのエンコードされた(例えば、ハッシュ化された、暗号化されたなど)プレゼンテーション、またはデータを表す他の一方向性関数であってよい。いくつかの実施形態では、指紋は、完全または部分的にハッシュ化されたプレゼンテーション、またはデータのサブセットまたは切り捨てられたバージョンであってよい。
いくつかの実施形態では、ステップ415で、リクエスタは、例えば、ワンタイム暗号化キーで指紋を暗号化してよく、本明細書に記載されているように、暗号化された指紋を複数のランダムなシェアに分解してよい。いくつかの実施形態では、暗号化された指紋は、複数の事前定義されたシェアに分解されてよく、まったくシェアに分解されなくてもよいことに留意すべきである。
いくつかの実施形態では、ステップ420で、複数のバリデータ(バウチャ)は、ワンタイム暗号化キーで自分のデータを暗号化してよく、自分のデータを複数のランダムシェアに分解してよい。本明細書で理解されるように、バリデータ(またはバウチャ)は、データベースまたは値のリストを保持するネットワークのメンバ(およびそのそれぞれのノード/エッジサーバ175)である。さまざまな実施形態において、プロトコルは、リクエスタが要求した「ルックアップ値」が、バリデータが保有する値のリストに存在するかどうかをチェックしてよい。なお、暗号化されたバリデータのデータは、リクエスタと同様に、あらかじめ定義された複数のシェアに分解されてよく、全くシェアに分解されなくてもよい。ルックアップ値とは、ネットワーク上の他のメンバが保持する値のリストに存在するかどうかをリクエスタがテストしたい値のことである。いくつかの実施形態では、ルックアップ値は単一の値であってよく、値のリストであってもよい。
いくつかの実施形態では、ステップ420および/またはステップ425に加えて、またはステップ425に代えて、ワンタイム暗号化キーは各バウチャによってのみ生成されてよく、その場合、バウチャは自分のデータをワンタイム暗号化キーで暗号化する。そのような実施形態では、バウチャとリクエスタは、「ブラインド暗号化」プロトコルまたは他の忘却メカニズム(例えば、ブラインドデジタル署名、ガーブル回路の使用など)を実行してよく、リクエスタは自分のデータやバウチャが生成したワンタイム暗号化キーを公開することなく、自分のデータの暗号化されたコピーを受け取ることができる。バウチャは、データを送信する前に、生成されたキーを削除してよい。この仕組みにより、各リクエストが異なるものであることが保証され、バリデータ以外の者が同じバリデータから送られたデータを解読することは絶対にできない。
いくつかの実施形態では、ステップ425で、リクエスタとバリデータの両方に使用された鍵が破壊されるか、またはその他の方法で処分される(例えば、自動または手動で)。
いくつかの実施形態では、ステップ430において、リクエスタおよびバリデータは、各ランダムシェアをサポートサーバまたは計算サーバと呼ばれる特別なネットワークノードに送信してよい。各ランダムデータシェアは、別のサポートサーバに送信されてよい。サポートサーバは、本明細書で理解されるように、ネットワークに計算支援を提供するサーバであってよい。例えば、さまざまな実施形態において、サポートサーバは、データの転送、データの処理、メタデータの収集など、ネットワークの運用をサポートするための追加のアクションを取ってよい。計算サーバは、自身のデータを保持せず、提供されたデータに対して事前に定義された計算を典型的に行ってよい。
いくつかの実施形態では、ステップ435において、各サポートサーバは、リクエスタからの値を、バリデータから受信した値と/から調整(reconcile)(例えば、減算、XOR、除算など)してよい。
いくつかの実施形態では、ステップ440において、すべての結果がアグリゲータによって統合されてよい。アグリゲータは、本明細書で理解されるように、ネットワークの参加メンバ(およびそのそれぞれのノード/エッジサーバ175)であり、すべてのバウチャから送信されたデータを収集して蓄積するように構成されてよい。いくつかの実施形態では、アグリゲータは、データを使用して、すべてのバウチャのデータベースにルックアップ値が存在した回数をカウントしてよい。いくつかの実施形態では、アグリゲータは、サポートサーバからのすべての結果を統合してよく、一致するもの(例えば、すべての数字の合計が0)を探してよい。いくつかの実施形態では、一致は、完全に一致するのではなく、例えば、統計的な類似性や閾値の類似性などに基づいて一致とみなされてよいことに留意すべきである。
いくつかの実施形態では、実装されたプロトコルは、ステップ430で計算されたすべての値を、統合のためにアグリゲータに送信する前に、秘密の乱数を乗じてよい。乱数は、例えば、サポートサーバ、信頼できる第三者、またはバウチャによって生成されてよい。
いくつかの実施形態では、ステップ445において、一致するものが見つかった場合、元のリクエスタに通知してよく、方法を終了してよい。発信元のサービスプロバイダ(リクエスタ)は、データが有効であることを認識した上で、新規顧客へのサービス提供を継続し得る。あるいは、サービスプロバイダは、データが有効ではなく、不正確または不正である可能性があることを認識した上で、追加のステップを踏んでよい。
本明細書に記載されている本発明のさまざまな実施形態は、顧客とサービスプロバイダとの両方にとって、プライバシおよびセキュリティに大きな利益をもたらす。
プライバシ:メンバのデータウェアハウスから個人情報が流出することはない。各メンバは、メンバが顧客から明示的に受信したデータにのみアクセスできる。
匿名性:特定の顧客が特定のサービスに登録していることを誰にも知られない。
分散型:ハッキングや侵入される可能性のある集中型のデータストアはない。
レジリエンス:単一のプロバイダに依存しない。メンバがネットワークに参加したり離脱したりしても、全体としての影響はほとんどない。
ホリスティック:すべてのソースおよび地域からのすべてのデータ検証へのアクセスは、単一のインターフェースを介して実行してよい。
リアルタイム:データの検証は、顧客との関係を所有する企業が行うことができ、したがって、ファーストパーティのデータプロバイダとして機能する。
信頼度:メンバの評判はプロトコル内で処理される。
本発明のさまざまな実施形態に基づき、リクエスタ、バリデータ、サポートサーバ、およびアグリゲータについて、本明細書でより詳細に説明する。
リクエスタ:
A.クエリにおける役割:アイデンティティの一部であるフィールド(電子メール、電話番号、クレジットカード番号、資金調達手段、銀行口座の詳細、バイオメトリクス、健康データなど)を検証するために検索しているメンバ(およびそれぞれのノード)。各リクエストには、一意に定義される必要のあるキーフィールドが含まれる(以下の表1参照)。
B.入力:なし
C.出力:エンコードされた(例えば、ハッシュ化された)リクエスト(例えば、クエリ)を作成し、このリクエストは、いくつかの実施形態では、複数のシェア(例えば、ランダムなシェア)に分解されてよい。また、リクエストのヒントも作成する。リクエストのヒントはバリデータに送信してよく、ランダムなデータのシェアはサポートサーバに送信してよい。
D.制限:どのノードでもリクエスタになれる。あるノードがリクエスタである場合、そのノードは、このクエリにおいて他の役割を担うことができない。
E.カーディナリティ:1つのクエリに対して1人のメンバしかリクエスタになれない。ここでいう「カーディナリティ」とは、ある値やプロパティが、リストやアイテムのセットに現れる回数のことである。例えば、リスト{1,1,2,4,6,6,6,9}では、値6のカーディナリティは3、値9のカーディナリティは1である。
バリデータ:
A.クエリにおける役割:いくつかの実施形態では、バリデータはデータの所有者であってよい。バリデータが所有するレコードのうちの1つが、リクエスタのクエリに一致してもよい。
B.入力:キーフィールドからヒントを得たフィルタを含むリクエスト。
C.出力:バリデータのデータを暗号化(ハッシュ化)したサブセットに由来するランダムシェアのセット。サブセットは、リクエストのヒントによって定義されてよく、リクエストされたクエリと一致してもよい。
D.制限:トランザクションのバリデータは、トランザクションの計算において他の役割を担うことはできない(リクエスタ、Sサーバ、アグリゲータ、ネットワーク)。
E.カーディナリティ:1つのトランザクションにつき、任意の数のバリデータが存在することができる。
サポートサーバ(Sサーバ):
A.クエリでの役割:リクエスタから受信した値と、バリデータから受信した値のリストとを比較して、例えば、両者を調整(reconcile)する。
B.入力:リクエスタからは符号化され暗号化されたフィールドのランダムシェア、バリデータからは符号化され暗号化されたフィールドのランダムシェア(同じフィールド、同じ暗号化キーだが、同一人物ではないかもしれない)のリスト。
C.出力:リクエスタとバリデータそれぞれのランダムシェアの値の差を比較した結果のリスト。
D.制限:計算上の他の役割を持たない任意のエンティティにすることができる。いくつかの実施形態では、Sサーバは一時的なノードであってよく、永続的なメモリまたはストレージ容量を必要としない。
E.カーディナリティ:Sサーバの数は、不正使用に対する抵抗力に応じて、2以上の任意の値に設定することができる。
アグリゲータ:
A.クエリでの役割:Sサーバからすべての結果を受け取り、どのバリデータが関連する要求値にマッチするかを決定する。その後、アグリゲータは結果をリクエスタに伝え、ビジネストランザクションを決済する。
B.入力:すべてのSサーバからの結果のリスト。
C.出力:リクエスタに対するYes/Noの応答(または同等のもの)、例えば、ネットワーク内でクエリに一致するものが見つかったかどうかの通知。いくつかの実施形態では、アグリゲータは、信頼度スコアを計算して提供するように構成されてよい。いくつかの実施形態では、応答には、例えば、ネットワーク上でIDが最初に見られたときや最後に見られたときなどのメタデータを含めてよい。
D.制限:アグリゲータは、第三者、例えば、プライベートピアツーピアネットワークのマネージャ、ホスト、またはプロバイダによって運営されてよい。
E.カーディナリティ:1つのクエリにつき、1つのアグリゲータしかない。
図5は、本発明の少なくとも1つの実施形態による、個々のデータフィールドを検証するための方法500のフロー線図である。いくつかの実施形態では、本方法はステップ510で始まり、リクエスタがデータフィールド、例えば、電子メールアドレス(X)をハッシュ化し、例えば、トランザクション前の鍵(CXi)で暗号化するように構成される。いくつかの実施形態では、バリデータごとに個別のキーが生成されてよい。つまり、クエリでリクエスタを支援するメンバ(バリデータ)ごとにキーが生成される。したがって、1つのリクエストに対して、複数の鍵を生成してよく、使用してよい。データが暗号化された後、いくつかの実施形態では、その合計が暗号化された値と等しくなるように、例えば、M個のランダムなシェア([CXi]j)に分割してよい。
ステップ520において、いくつかの実施形態では、リクエスタは、別のハッシュ関数を使用して、元の電子メールから短いヒント(例えば、5ビットの長さ)を計算するように構成されてよい。いくつかの実施形態では、このヒントは、各バリデータが結果をフィルタリングするために使用されてよく、各ヒントが何十万ものIDにマッチする可能性を確保する方法で選択されてよい。リクエスタは、各バリデータにヒント値とバリデータごとの秘密鍵を送信してよい。
例えば、完全なデータベースを多くのより小さいデータベースに分割することによって、バリデータが処理する必要のあるレコード数を減らすために、例えば、このヒントを利用してよい。これは、短いハッシュ関数を使って行ってよい。例えば、5ビットのハッシュでは、元のデータベースが32個のより小さいデータベースに分割される。いくつかの実施形態では、ヒントの長さは、元のデータベースのサイズに基づいて選択してよい。例えば、元のデータベースが1億レコードだった場合、上記のようなヒントを与えると、300万レコード程度の大きさの小さいデータベースに分割される。ヒントの例は、hint=Hash(X)mod30でよく、ここで、Hashは任意のハッシュ関数であり、modは30で割ったときのリマインダである。もちろん、いくつかの実施形態では、ヒントを使用しなくてよく、すべてのレコードを処理してよい。
ステップ530において、いくつかの実施形態では、各バリデータは、そのレコードのセットを検索して、リクエスタから受信したヒント値と一致する関連レコード(Yi)を見つけるように構成されてよい。一致したレコードについて、バリデータはデータベース内の値のハッシュを計算してよく、秘密鍵(CYi)を用いて暗号化してよい。暗号化された後、バリデータはM個のランダムシェア([CYi]j)を選んでよく、その合計が暗号化された値と等しくなる。この操作は、(ヒントが実装されている場合)ヒントに一致するすべてのレコードで繰り返してよい。各ランダムシェアは、いずれかのSサーバに送信され、リクエスタから受信したランダムシェアと比較されてよい。各Sサーバは、データの断片のみを扱ってよい。したがって、Sサーバ1はすべてのバリデータから第1番目のランダムシェアを受信し、Sサーバmはすべてのバリデータから第m番目のフラグメント(ランダムシェア)を受信してよい。なお、いくつかの実施形態では、リクエスタキーとバリデータキーの両方が、データを暗号化した直後に、例えば、自動または手動で削除される。したがって、結果は完全に匿名化され、いかなるPIIデータにもリンクされない。
ステップ540において、いくつかの実施形態では、Sサーバ(サポートサーバまたは計算サーバ)は、リクエスタから受信したランダムシェアと、すべてのバリデータから受信したすべてのランダムシェアとの間の差を計算する(またはその他の方法で調整する)ように構成されてよい。その後、Sサーバは、アグリゲータに差分のリスト(または調整された結果)を送信してよい。
ステップ550において、いくつかの実施形態では、アグリゲータは、例えば、すべてのSサーバから受信したすべての差分または結果を、例えば、レコードごとに加算し、すべての値が0に加算されるか、またはそうでなければ完全に調整されたレコードを特定するように構成されてよい。いくつかの実施形態では、合計が0の場合、リクエスタの値と一部のバリデータの値とが一致していることを示す。
最後に、ステップ560において、いくつかの実施形態では、アグリゲータは、結果を集約し、リクエスタに回答を送信するように構成されているかもしれない。
本発明の実施形態では、データが顧客のネットワークを離れる前に完全に匿名化される。そのため、PIIデータは一切含まれておらず、いかなる個人データも公開することはできない。以下の表1は、各参加者が計算の一部として「学習」する可能性のある内容をまとめたものである。
Figure 2022551780000002
アイデンティティを検証するために、企業はエンティティに関連する可能な限り多くのプロパティの検証を受けたいと思うかもしれない。本発明の実施形態では、上述のプロセスと同様のプロセスを使用して、1つのクエリに関するすべてのプロパティを比較し、サインアップ時に収集された値のうちどれが実際に有効であるかを示す1つのレコードを作成する。さらに、本発明の実施形態では、値が同じエンティティに関連するかどうかと、それに関連する信頼度を指定する。
Figure 2022551780000003
いくつかの実施形態では、バリデータは、最初のログイン時刻、最後のログイン時刻、訪問回数、不正関連の評判、資産年齢などの非PIIメタデータを記録ごとに追加で提供してよい。
いくつかの実施形態では、データポイントの履歴を提供してよい。例えば、メールアドレスが1年以上前からユーザのシステムに保存されており、顧客が2年前に特定のデバイスを使用した記録がある場合や、6ヶ月前にクレジットカードが検出された場合などが挙げられる。このようなデータは、本発明の実施形態にしたがって、顧客データ履歴に定式化してよい。
本発明のいくつかの実施形態では、データポイントの1つまたは複数に関する不正関連の評判を提供してよく、例えば、特定のクレジットカードからの不正関連チャージバックが先週検出された場合、そのクレジットカードおよび他の関連データポイントに疑わしいというフラグを立ててよい。
いくつかの実施形態では、アグリゲータが、キーフィールドがクエリフィールドと一致したことを識別できた場合、アグリゲータは、レコード全体の検証を提供することを支援してよい。例えば、バリデータが電子メールとIPアドレスの検証はできても、リクエストされたクレジットカード番号と住所の検証ができなかった場合、バリデータがデータベースにこれらのフィールドを持っていないことを知ることは、レコード全体の検証に役立つかもしれない。
本明細書に記載されているように、本発明の実施形態は、メンバのネットワーク上で動作する可能性のある1つ以上のプロトコルに依存しており、各メンバはプライベートな値のリストを保持している。いくつかの実施形態では、プロトコルの実装により、ネットワークのメンバがリクエスタとして動作し、ネットワークの他のメンバが保有するプライベートリスト内に特定のルックアップ値が存在するかどうかの検証を受けることを要求することができる。このような他のメンバは、(本明細書に記載されているように)バウチャとして機能する。
いくつかの実施形態では、リクエスタは、以下のプライバシ機能を維持しながら、ネットワーク内の値xをルックアップするとともに、値のカーディナリティを計算することができる。1.誰も(リクエスタ以外)xの値を知ることはない。2.リクエスタは、ネットワークのどのメンバが値xを保持しているかを知ることはできない。3.メンバの誰もが、自分のプライベートデータベースに値xが存在するかどうかを知る。
説明を簡単にするために、リクエストするメンバをリクエスタと呼び、他の各パーティをバウチャまたはバリデータと呼ぶ。n+1人のメンバからなるネットワークでは、メンバはVとしてマークされ、リクエスタは値xのルックアップクエリを生成し、各バウチャは値Y={yi}のプライベートリストを有し得る。
以下の説明では、以下の表記を使用している。
H(x):一方向性関数。一般的には、ハッシュ関数または他の一方向性関数を指す。値y=H(x)が与えられたとき、H(x’)=y-H(x)となるような値x’を見つけることは計算上困難である。
H(x,rand):ランダム化された一方向性関数であり、値xがハッシュ化されるか、またはランダムな値と組み合わせてエンコードする。randの各選択によって、関数の結果は異なる。通常の一方向性関数と同様に、H(x’,r)=y=H(x,r)となるような値x’を、xとrのすべての選択で見つけることは、計算上困難である。
x:ルックアップ値
Y={yi}は、値のセットまたはリストである。セット全体をYと呼び、セット内の個々の値をyiと呼び、添え字はリストの値のインデックスを示している。例えば、y1はリストの最初の値を表す。
c=Enc(m,K)は、鍵Kを用いた暗号化関数である。この関数は,任意の平文メッセージmを、秘密鍵Kを知らずにmを見つけることが計算上困難であるような暗号化サイファーcに変換する。
m=Dec(c,SK)は、秘密鍵SKを用いる復号関数である。この関数は、暗号化されたサイファーcを、秘密鍵SKの知識を用いることにより平文に戻すことができる。
暗号化関数E(m,K)が与えられたとき、任意のメッセージmと任意の鍵K、Kのペアに対して、鍵の使用順序にかかわらず、各鍵でメッセージを2回暗号化するたびに同じ結果が得られる場合、Eは可換暗号化関数(Commutative Encryption Function)と呼ばれる。つまり、E(E(m,K),K)=E(E(m,K),K)となる。
上付き文字:上付き文字は、計算上の異なるメンバ、またはそれらに関連する値を示す。例えば、複数のバウチャが計算に参加している場合、第1のサーバに関するデータベースはY、第2のメンバに関するデータベースはYと表示される。同様に、各メンバに秘密鍵が選択された場合、この鍵はメンバpのSKとして表記される。
値の分割:以下のいくつかの方法では、1つの値を複数の「サブ値」に分割し、それらを再結合して元の値を構築し得る。例えば、3桁の数字469を4、6、9に分割し得る。このような値vの分割は、角括弧[v],[v],[v],・・・で示される。上記の例では、[469]は4、[469]は6、[469]は9となる。異なるソリューションでは、値をサブ値に分割し再結合する方法が異なる場合がある。
プロトコル1
いくつかの実施形態では、データを保持しない追加の計算サーバのサービスをCompと呼ぶ。
1.リクエスタは、一方向性ハッシュ関数または他のエンコーディングを使用して、H=H(x)を計算する。
2.各バウチャVは、値のセットHi=H(yi)を計算する。
3.リクエスタは、HをCompに送信する。
4.各Vは、自分のデータをCompに送信する。
5.Compは、Hを各Vから受信したすべての値と比較し、一致するものを探す。
6.Compは、見つかった一致する数をリクエスタに報告する。
リプレイ保護
場合によっては、同じ値xを複数回検索する場合がある。同じ値が検索されていることを誰にも知られないようにするために、いくつかの実施形態では、ランダムな要素をクエリに組み込んでもよい。値は、2つの要求が2つの別々のルックアップ値x、xから来ているのか、同じ値xを2回要求しているのかを盗聴者が区別できないような方法で追加し得る。
プロトコル1.1
いくつかの実施形態では、プロトコル1のバリエーションとして、リクエスタとバウチャがランダムな一方向性関数を使用してxの元の値を難読化することを実施してもよい。関数とそのパラメータは、バウチャとリクエスタの両方に知られている。例として、ランダム化されたハッシュ関数、暗号化関数、または既知の関数のセットからランダムに選択された関数を使用し得る。
以下の説明では、既知のハッシュ関数の代わりに、ランダムな一方向性関数を使用している。
1.リクエスタはランダムな秘密のノンスを選択する。
2.リクエスタは、ランダム化された一方向性ハッシュ関数または他のエンコーディングを使用して、H=H(x,nonce)を計算する。
3.リクエスタは、各バウチャVにnonceの値を送信する。
4.各メンバVは、値のセットHi=H(yi,nonce)を計算する。
5.リクエスタは、HをCompに送信する。
6.各Vは、自分のデータをCompに送信する。
7.Compは、Hを各Bobから受信したすべての値と比較し、一致するものを探す。
8.Compは、見つかった一致する数をリクエスタに報告する。
リンカビリティ保護
異なるバウチャ間の秘密を保持し、プライバシ規制で要求されるリンカビリティを防止するために、いくつかの実施形態では、各バウチャで生成された値は、異なることが保証され、他のバウチャで生成された値と比較することはできない。このようにして、盗聴者または好奇心の強い人は、実際のオリジナルの価値が不明なままであっても、2つ以上のバウチャがオリジナルのリストの中で同じオリジナルの値を保持しているかどうかを知ることができなくなる。
これを実現するために、いくつかの実施形態では、リクエスタといずれかのバウチャの間で、彼らだけが知っている別のランダムな秘密が生成される。さまざまな実施形態において、この値は、リクエスタ自身により、リクエスタとバウチャにより共同して、バウチャにより、第三者により、またはそれらの当事者の組み合わせにより、生成される場合がある。
いくつかの実施形態では、秘密の値は、ルックアッププロトコルを実行する前に、リクエスタとバウチャの両方により使用される任意のマッピング関数への入力として使用し得る。例として、この関数は、一方向性ランダム化ハッシュ、暗号化関数、または既知のセットからランダムに選択された関数であり得る。
プロトコル1.2
プロトコル1では、ランダム化されたハッシュ関数を使用することで、リンカビリティの保護が追加されている。リクエスタは、各メンバVに対して異なるnonce値を選択する。
1.リクエスタは、ランダムな秘密のnonceのセットを選択する。
2.リクエスタは、一方向性ハッシュ関数または他のエンコーディングを用いて、H =H(x,nonce)を計算する。
3.リクエスタは、各メンバのBobにnonceの値を送信する。
4.各バウチャVは、値H =H(y ,nonce)のセットを計算する。
5.リクエスタは、セットH をCompに送信する。
6.各Vは、自分のデータをCompに送信する。
7.Compは、H を各Vから受信したすべての値と比較し、一致するものを探す。
8.Compは、見つかった一致する数をリクエスタに報告する。
プロトコル1.3
プロトコル1.1の方法では、nonceの秘密の値が、他の1つ以上の当事者Bobが関与する鍵合意法を用いて生成される。
プロトコル1.4
プロトコル1.2の方法では、nonceの秘密の値が、リクエスタとバウチャで鍵交換メカニズム(例えば、Diffie Heilman)を用いて生成される。
1.リクエスタとバウチャが鍵交換プロトコルのパラメータに合意する。
2.リクエスタとバウチャが秘密鍵交換を行い、共有秘密sを生成する。
3.リクエスタとバウチャは、鍵導出メカニズムを使用して、秘密のsからKを計算する。
4.nonce値の代わりにKを使用して、プロトコル1.2の手順を続行する。
バリエーション1
上記のすべてのプロトコルの方法では、ランダムな一方向性関数が、ランダムな共有鍵、または上記で規定された鍵交換プロトコルを用いて生成された鍵を用いた対称鍵暗号化システムに置き換えられる。
バリエーション2
上記のすべてのプロトコルの方法では、ランダムな一方向性関数が、ランダムな共有鍵、または上記で規定された鍵交換プロトコルを用いて生成された鍵を用いた公開鍵暗号化システムに置き換えられる。
バリエーション3
上記のすべてのプロトコルの方法では、ランダムな一方向性関数が、ランダムに選択されたマッピング関数に置き換えられる。
プロトコル2
この種のプロトコルでは、値そのものを公開することなく、値を秘密裏に比較するために、可換暗号化関数が使用される。例えば、El-GamalまたはPohlig-Hellmanの暗号化スキームを使用してよい。
1.E(m,K)を上述の可換性を満たす(秘密鍵または公開鍵を用いた)可換暗号化システムとする。
2.リクエスタは、秘密鍵Kを選択する。
3.リクエスタは、Eを使ってルックアップ値xをKで暗号化し、E=E(x,K)を受信する。
4.リクエスタは、ネットワーク上のすべてのメンバであるBobにEを送信する。
5.すべてのバウチャは、秘密鍵Kを選択する。
6.各バウチャは、自分の秘密鍵を使って、自分のローカルデータベースYを暗号化し、次式を生成する。
Figure 2022551780000004
7.さらに,各バウチャは,受信したEを自分の鍵で暗号化して,二重暗号化された鍵E0p=E(E,K)を生成する。
8.すべてのバウチャVは、自分の暗号化されたデータベースYを、二重暗号化されたキーE0pと一緒にリクエスタに戻す。
9.リクエスタは、自分の秘密鍵を使って、各バウチャVから受信したすべての値を二重に暗号化し、二重暗号化されたデータベース
Figure 2022551780000005
を生成する。
10.リクエスタは、各pについてE0pの値とEp0の値とを比較することができる。見つかった一致する総数をカウントする。
代替2.1
上記のプロトコル2と同じプロセスを使用し、ステップ9で以下の代替案を使用する。
9.リクエスタは、自分の鍵を使ってE0pの値を復号し、
Figure 2022551780000006
を受信する。
10.各pについてリクエスタは、Eの値をすべての値yと比較し、見つかった一致する総数をカウントする。
代替2.2
上記のプロトコル2.1と同じプロトコルであるが、第3の計算メンバであるCompを導入する。
上記のステップ8から開始する。
8.すべてのバウチャVは、その暗号化されたデータベースYをCompに送信する。
9.すべてのバウチャVは、二重に暗号化された鍵E0pをリクエスタに返送する。
10.リクエスタは、自分の鍵を使ってE0pの値を復号し、
Figure 2022551780000007
を受信する。
11.リクエスタは、Eの全キーをCompに送信する。
12.Compは、各pについてEの値をすべての値yと比較し、見つかった一致する総数をカウントし、その合計をリクエスタに返送する。
効率アップ
上記のすべてのプロトコルは、バウチャが値の完全なリストをスキャンし、各値に対して計算を実行し、それを他のパーティに送信することを必要とする。そのため、プロトコルを完成させるために必要な複雑さと時間は、各メンバが保有するリストのサイズに応じて線形的に成長する。
この複雑さを軽減するために、いくつかの実施形態では、リクエスタまたはバウチャがリストに有し得る値を、より小さい範囲の別の値にマッピングすることが実施され得る。このマッピングを使用して、バウチャが保有する各リストを、より小さなサイズの複数のサブリストに分割し得る。例えば、すべての値を偶数と奇数に分けて、元のリストの約半分の大きさの2つのリストを有し得る。
いくつかの実施形態では、プロトコルの最初に、リクエスタはルックアップ値xのマッピングを計算し得て、それをバウチャにヒントとして送信し得る。バウチャはこの値を使用し得て、自分が保持しているサブリストのうち、どのサブリストを計算に使うべきかを特定し得る。
いくつかの実施形態では、各オリジナルリストから生成されるサブリストの数を定義する効率パラメータλが実施され得る。例えば、各リストを10個のサブリストに分割し、各々を元のリストの約10分の1の大きさにすることが選択され得る。
いくつかの実施形態では、システムは、プライバシと効率のバランスをとるために、効率パラメータ値を随時選択し得る。この選択は、バウチャの数、各バウチャがリストに保持している値の数、人口の規模、規制上の要件などによって異なり得る。
例として、一方向性ハッシュ関数およびモジュロλを使用し得て、マッピングgroup=H(y)modλを使用してすべての値をサブリストに分割し得る。
プロトコル3
1.リクエスタは、group=H(x)modλを計算する。
2.リクエスタは、すべてのバウチャVにgroupを送信する。
3.各バウチャは、リスト内のすべてのyの値に対してgroup=H(y)modλを計算し、group=/groupとなる値を破棄する。
4.上記のようにYではなく、より小さい値のリストにある任意のプロトコルを続行する。
効率の事前計算
いくつかの実施形態では、マッピング関数を使用したgroupへの分割は、上述のようにオンザフライで行われてもよいし、事前にバウチャが計算してもよい。この場合、バウチャはリストの各値が属するgroupを計算し、その結果を保存してもよい。
さらに、いくつかの実施形態では、バウチャは、値を複数のリストに分割し、各々が元のリストから同じgroupに属するすべての値を含むようにしてもよい。
値の分割と再構築
値vの機密性をさらに保護するために、いくつかの実施形態では、値vをK個のパーツに分割し、各パーツ[v]iが元の値vに関する情報をほとんど、あるいは全く含まないようにしてもよい。分割方法は可逆的である必要があり、部品のリストからvの元の値を計算することが可能である。
いくつかの実施形態では、分割の秘匿性は、分割の1つのピース[v]iを知ることにより明らかになり得るvに関する情報の量を測定することによって測定され得る。いくつかの実施形態では、敵対者が、すべての部分[v]jを利用できない限りvの元の値に関する情報を得ることができない場合、分割は理想的であると考えられ得る。いくつかの実施形態では、vを再構築するためにn<K個のパーツが必要であるが、n個以下のパーツではvに関する情報を得ることができない場合、分割されたnはプライベートとみなされる。
理想的な分割と再構築の一例は、次式のような大きなモジュロNとKのランダム値を選択することで行うことができる。
Figure 2022551780000008
この場合、K個以下の部分和は均等に分布しているので、vに関する情報は一切出てこないことがわかる。
もう1つの方法は、次式のように均等に分布した値のセットを選択することである。
Figure 2022551780000009
もう1つの方法は、vのバイナリ表現を個々のビットに分割することである。
本発明の実施形態に基づくプロトコル。
このプロトコルは、最大限のプライバシと秘密を実現するために、以下の要素を1つ以上含んでよい。
・リクエストごとに新しい秘密のセットが使用される。
・リクエスタと全てのバウチャとの間には別々の秘密が使用される。
・リクエスタとバウチャは、一方向性関数を使い、共有された秘密を使ってすべてのデータをマッピングする。
・各データポイントは理想的分割法で分割される。
・分割されたデータはコンピュートサーバで処理され、分割された各部分を個別に比較する。
・比較した結果(残存データがないもの)はアグリゲータに集められ、処理される。
・アグリゲータは結果をリクエスタのみに返信する。
このプロトコルでは、K個のコンピュートサーバとアグリゲータを使用する。コンピュートサーバの数は、プロトコルのセキュリティパラメータとして選択されてよい。
1.リクエスタは、値xを検索したいと考える。
2.リクエスタは、ネットワーク上の各バウチャと鍵交換プロトコルを実行し、一連の秘密鍵SKを生成する。
3.リクエスタは、ヒントgroup=H(x)modλを計算する。
4.リクエスタは、各バウチャVにgroupの値を送信する。
5.リクエスタは,ステップ2で生成したすべての秘密鍵SKを用いてxの値を暗号化し、隠し値
Figure 2022551780000010
を生成する。リクエスタはSKを使用後に削除し得る。
6.リクエスタは、隠された
Figure 2022551780000011
の値の各々を、次式
Figure 2022551780000012
のような均等な(even)分布から引き出されたk個のランダムな部分[x]jに分割する。
7.リクエスタは、分割されたデータをk個の異なるコンピュートサーバに送信し、第1のコンピュートサーバは、すべての隠れたルックアップ値
Figure 2022551780000013
のうちの第1の分割データのみを受信する。第2のコンピュートサーバは、第2の分割データ
Figure 2022551780000014
を受信する。
8.各バウチャは、自分のリストYから値y のみを選択する。ここでgroup=H(y )modλ。
9.各バウチャは、ステップ2で作成した秘密鍵を使用して各値
Figure 2022551780000015
を暗号化し、一連の隠し値
Figure 2022551780000016
を生成する。バウチャは、それを用いてSKを削除してよい。
10.このような
Figure 2022551780000017
に対して、バウチャは、次式
Figure 2022551780000018
のような均等な(even)ランダム分布から値を選択することによって、隠し値をk個のパーツ
Figure 2022551780000019
に分割する。
11.各バウチャは、k個の異なるコンピュートサーバにパーツのリストを送信し、第1のコンピュートサーバは各隠し値の第1のパーツ
Figure 2022551780000020
を受信し、第2のコンピュートサーバは第2のパート
Figure 2022551780000021
を受信し、以下同様である。
12.各コンピュートサーバは、リクエスタから、バウチャの各々の隠し値
Figure 2022551780000022
の一部を受信する。
13.各コンピュートサーバは、各バウチャから値
Figure 2022551780000023
のリストを受信する。
14.コンピュートサーバjは、リクエスタから受信した値を、それぞれのバウチャから受信した値のリストから差し引き、新しい値
Figure 2022551780000024
のリストを生成する。
15.コンピュートサーバjは、差分のリストをアグリゲータに送信する。
16.アグリゲータは、各コンピュートサーバから値のリストを受信し、それらを足し合わせて合計
Figure 2022551780000025
のリストを作成する。
17.アグリゲータは、ステップ16で算出した合計がゼロになった回数をカウントする。このような合計は、ルックアップ値xがバウチャのリストの1つに保持されている値と一致することを示す。
18.アグリゲータは、見つかった一致する数をリクエスタに返信する。
明示的に述べられていない限り、本明細書に記載されている方法の実施形態は、特定の順序またはシーケンスに拘束されない。さらに、ここに記載されているすべての処方は例としてのみ意図されており、他のまたは異なる処方を使用してよい。さらに、説明した方法の実施形態またはその要素のいくつかは、同じ時点で発生してよく、実行されてよい。
本明細書では、本発明の特定の特徴を図示し、説明してきたが、当業者にとっては、多くの修正、置換、変更、および等価物が生じてよい。したがって、添付の特許請求の範囲は、本発明の真の精神の範囲内にあるすべての修正および変更をカバーすることが意図されていることを理解されたい。
さまざまな実施形態が紹介されている。これらの各実施形態は、もちろん、提示された他の実施形態の特徴を含んでいてよく、また、特に説明されていない実施形態は、本明細書に記載されたさまざまな特徴を含んでいてよい。

Claims (20)

  1. ネットワーク内の複数のノード間でクエリの匿名検証を提供する方法であり、
    複数のノードのうちの少なくとも1つの他のノードによるクエリの検証のために、第1のサーバにおいて、ネットワーク内のリクエスタノードからクエリを受信するステップであって、
    クエリは、リクエスタノードの情報の少なくとも1つのデータポイントの符号化された表現を含み、
    符号化された表現は、複数のシェアの第1のセットに分割される、ステップと、
    第1のサーバにおいて、複数のノードのうちの少なくとも1つのバリデータノードから、バリデータノードの情報の少なくとも1つのデータポイントの符号化された表現を受信するステップであって、
    少なくとも1つのバリデータノードからの符号化された表現は、複数のシェアの第2のセットに分割される、ステップと、
    複数のサポートサーバによって、リクエスタノードからの複数のシェアの第1のセットと、少なくとも1つのバリデータノードの複数のシェアの第2のセットとを比較するステップと、
    第2のサーバによって、比較に基づいて、リクエスタノードの情報の少なくとも1つのデータポイントが、少なくとも1つのバリデータノードの情報の少なくとも1つのデータポイントと一致するか否かを決定するステップと、
    一致する結果をリクエスタノードに出力するステップと、
    を含む、方法。
  2. 符号化された表現は、ワンタイム暗号化を含み、ワンタイム暗号化は、リクエスタノードおよび少なくとも1つのバリデータノードによって使用される、請求項1に記載の方法。
  3. 複数のシェアの第1のセットおよび第2のセットは、それぞれ各ノードに対してランダムに生成される、請求項1に記載の方法。
  4. 前記比較するステップは、
    複数のシェアの第1のセットの各シェアを、そのセットの他のシェアとは別のサポートサーバに送信するステップと、
    複数のシェアの第2のセットの各シェアを、そのセットの他のシェアとは別のサポートサーバに送信するステップと、
    各サポートサーバにおいて、リクエスタノードから受信した値と、少なくとも1つのバリデータノードから受信した同等の値とを照合するステップと、
    をさらに含む、請求項1に記載の方法。
  5. 前記決定するステップは、
    第2のサーバによって、複数のサポートサーバの各々からの結果の値のセットを集約するステップと、
    複数のサポートサーバからの結果の値のセットを統合するステップと、
    統合に基づいて、合計がゼロになるかどうかを識別するステップと、
    をさらに含む、請求項4に記載の方法。
  6. 少なくとも1つのデータフィールドは顧客の身元に関する、請求項1に記載の方法。
  7. ネットワークはクローズドネットワークであり、クローズドネットワークの各ノードは、クローズドネットワークの事前承認されたメンバである、請求項1に記載の方法。
  8. 複数のサポートサーバの各々は一時的ノードを含み、一時的ノードは、持続的メモリまたはストレージ容量を含まない、請求項1に記載の方法。
  9. 第2のサーバによって、一致した結果に関連する信頼度スコアを計算するステップと、
    一致した結果とともに信頼度スコアを出力するステップと、
    をさらに含む、請求項1に記載の方法。
  10. ネットワーク内の複数のノード間でクエリの匿名検証を提供する方法であり、
    ネットワーク内のサポートノードにおいて、ネットワーク内のリクエスタノードからクエリを受信するステップであって、
    クエリは、リクエスタノードの情報の少なくとも1つのデータポイントの一方向性関数表現を含む、ステップと、
    サポートサーバにおいて、複数のノードのうちの少なくとも1つのバリデータノードから、バリデータノードの情報の少なくとも1つのデータポイントの一方向性関数表現を受信するステップと、
    サポートサーバによって、リクエスタノードからのクエリを、少なくとも1つのバリデータノードの情報の少なくとも1つのデータポイントの一方向性関数表現と比較するステップと、
    アグリゲータサーバによって、比較に基づいて、リクエスタノードの情報の少なくとも1つのデータポイントが、少なくとも1つのバリデータノードの情報の少なくとも1つのデータポイントと一致するか否かを決定するステップと、
    一致する結果をリクエスタノードに出力するステップと、
    を含む、方法。
  11. ネットワーク内の複数のノード間でクエリの匿名検証を提供するシステムであり、
    プロセッサおよびメモリを有するサーバと、メモリに格納され、プロセッサで実行するように構成された1つまたは複数のコードセットとを含み、コードセットは、実行されると、プロセッサが、
    複数のノードのうちの少なくとも1つの他のノードによるクエリの検証のために、第1のサーバにおいて、ネットワーク内のリクエスタノードからクエリを受信し、
    クエリは、リクエスタノードの情報のうちの少なくとも1つのデータポイントの符号化された表現を含み、
    符号化された表現は、複数のシェアの第1のセットに分割され、
    第1のサーバにおいて、複数のノードのうちの少なくとも1つのバリデータノードから、バリデータノードの情報のうちの少なくとも1つのデータポイントの符号化された表現を受信し、
    少なくとも1つのバリデータノードからの符号化された表現は、複数のシェアの第2のセットに分割され、
    複数のサポートサーバによって、リクエスタノードからの複数のシェアの第1のセットと、少なくとも1つのバリデータノードの複数のシェアの第2のセットとを比較し、
    第2のサーバによって、比較に基づいて、リクエスタノードの情報の少なくとも1つのデータポイントが、少なくとも1つのバリデータノードの情報の少なくとも1つのデータポイントと一致するか否かを決定し、
    一致する結果をリクエスタノードに出力する、
    ように構成される、システム。
  12. 符号化された表現は、ワンタイム暗号化を含み、ワンタイム暗号化は、リクエスタノードおよび少なくとも1つのバリデータノードによって使用される、請求項11に記載のシステム。
  13. 複数のシェアの第1のセットおよび第2のセットは、それぞれ各ノードに対してランダムに生成される、請求項11に記載のシステム。
  14. 前記比較は、
    複数のシェアの第1のセットの各シェアを、そのセットの他のシェアとは別のサポートサーバに送信し、
    複数のシェアの第2のセットの各シェアを、そのセットの他のシェアとは別のサポートサーバに送信し、
    各サポートサーバにおいて、リクエスタノードから受信した値と、少なくとも1つのバリデータノードから受信した同等の値とを照合する、
    ことをさらに含む、請求項11に記載のシステム。
  15. 前記決定は、
    第2のサーバによって、複数のサポートサーバの各々からの結果の値のセットを集約し、
    複数のサポートサーバからの結果の値のセットを統合し、
    統合に基づいて、合計がゼロになるかどうかを識別する、
    ことをさらに含む、請求項14に記載のシステム。
  16. 少なくとも1つのデータフィールドは顧客の身元に関する、請求項11に記載のシステム。
  17. ネットワークはクローズドネットワークであり、クローズドネットワークの各ノードは、クローズドネットワークの事前承認されたメンバである、請求項11に記載のシステム。
  18. 複数のサポートサーバの各々は一時的ノードを含み、一時的ノードは、持続的メモリまたはストレージ容量を含まない、請求項11に記載のシステム。
  19. 第2のサーバによって、一致した結果に関連する信頼度スコアを計算し、
    一致した結果とともに信頼度スコアを出力する、
    ことをさらに構成される、請求項11に記載のシステム。
  20. ネットワーク内の複数のノード間でクエリの匿名検証を提供するシステムであり、
    プロセッサおよびメモリを有するサーバと、メモリに格納され、プロセッサで実行するように構成された1つまたは複数のコードセットとを含み、コードセットは、実行されると、プロセッサが、
    ネットワーク内のサポートノードにおいて、ネットワーク内のリクエスタノードからクエリを受信し、
    クエリは、リクエスタノードの情報の少なくとも1つのデータポイントの一方向性関数表現を含み、
    サポートサーバにおいて、複数のノードのうちの少なくとも1つのバリデータノードから、バリデータノードの情報の少なくとも1つのデータポイントの一方向性関数表現を受信し、
    サポートサーバによって、リクエスタノードからのクエリを、少なくとも1つのバリデータノードの情報の少なくとも1つのデータポイントの一方向性関数表現と比較し、
    アグリゲータサーバによって、比較に基づいて、リクエスタノードの情報の少なくとも1つのデータポイントが、少なくとも1つのバリデータノードの情報の少なくとも1つのデータポイントと一致するか否かを決定し、
    一致する結果をリクエスタノードに出力する、
    ように構成される、システム。

JP2021559519A 2019-03-25 2020-03-24 ネットワーク上の複数のノード間でクエリの匿名検証を提供するシステムおよび方法 Active JP7555349B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201962823028P 2019-03-25 2019-03-25
US62/823,028 2019-03-25
PCT/IL2020/050344 WO2020194295A1 (en) 2019-03-25 2020-03-24 System and method for providing anonymous validation of a query among a plurality of nodes in a network

Publications (2)

Publication Number Publication Date
JP2022551780A true JP2022551780A (ja) 2022-12-14
JP7555349B2 JP7555349B2 (ja) 2024-09-24

Family

ID=

Also Published As

Publication number Publication date
AU2020245399B2 (en) 2023-08-17
US11727149B2 (en) 2023-08-15
AU2020245399A1 (en) 2021-10-14
EP3948565A1 (en) 2022-02-09
SG11202110238UA (en) 2021-10-28
US20220284127A1 (en) 2022-09-08
CA3130476A1 (en) 2020-10-01
US11379616B2 (en) 2022-07-05
WO2020194295A1 (en) 2020-10-01
US20200311307A1 (en) 2020-10-01
EP3948565A4 (en) 2022-11-30

Similar Documents

Publication Publication Date Title
US12015716B2 (en) System and method for securely processing an electronic identity
JP6606156B2 (ja) データセキュリティサービス
AU2020245399B2 (en) System and method for providing anonymous validation of a query among a plurality of nodes in a network
US20190238319A1 (en) Rights management of content
US20140373104A1 (en) Data sensitivity based authentication and authorization
US20180316669A1 (en) Multi-dimensional framework for defining criteria that indicate when authentication should be revoked
AU2015389877A1 (en) Systems and methods for personal identification and verification
US11985235B2 (en) Quantum communication system
US11741247B2 (en) Smart privacy and controlled exposure on blockchains
CN110719176A (zh) 基于区块链的物流隐私保护方法、系统和可读存储介质
US11323489B1 (en) Scalable auditability of monitoring process using public ledgers
US10990698B2 (en) Device for secure computing the value of a function using two private datasets without compromising the datasets and method for computing the social rating using the device
Ramprasath et al. Protected data sharing using attribute based encryption for remote data checking in cloud environment
JP7555349B2 (ja) ネットワーク上の複数のノード間でクエリの匿名検証を提供するシステムおよび方法
US20230267426A1 (en) Payment system, coin register, participant unit, transaction register, monitoring register and method for payment with electronic coin data sets
US11777735B2 (en) Method and device for anonymous access control to a collaborative anonymization platform
RU2795371C1 (ru) Способ и система обезличенной оценки клиентов организаций для проведения операций между организациями
Paul et al. Secure decentralised storage networks
Gagged et al. Improved secure dynamic bit standard technique for a private cloud platform to address security challenges
US11367148B2 (en) Distributed ledger based mass balancing via secret sharing
WO2023135879A1 (ja) 計算機システム及び鍵交換方法
Austria Dea2uth: A Decentralized Authentication and Authorization Scheme for Secure Private Data Transfer
Huang et al. Safeguarding the unseen: a study on data privacy in DeFi protocols
WO2024026428A1 (en) Digital identity allocation, assignment, and management
Anderson Methods for Safeguarding Client Data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230208

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240130

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240206

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20240502

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20240514

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20240514

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20240516

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20240731

A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20240814

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20240910