JP2022525137A - データに基づく行為を実施するための方法および装置 - Google Patents

データに基づく行為を実施するための方法および装置 Download PDF

Info

Publication number
JP2022525137A
JP2022525137A JP2021555085A JP2021555085A JP2022525137A JP 2022525137 A JP2022525137 A JP 2022525137A JP 2021555085 A JP2021555085 A JP 2021555085A JP 2021555085 A JP2021555085 A JP 2021555085A JP 2022525137 A JP2022525137 A JP 2022525137A
Authority
JP
Japan
Prior art keywords
data
network element
role
token
protocol
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.)
Pending
Application number
JP2021555085A
Other languages
English (en)
Other versions
JPWO2020186156A5 (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 JP2022525137A publication Critical patent/JP2022525137A/ja
Publication of JPWO2020186156A5 publication Critical patent/JPWO2020186156A5/ja
Pending legal-status Critical Current

Links

Images

Classifications

    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3234Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving additional secure or trusted devices, e.g. TPM, smartcard, USB or software token
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/577Assessing vulnerabilities and evaluating computer system security
    • 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/6236Protecting 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 between heterogeneous systems
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/04Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks
    • H04L63/0428Network architectures or network communication protocols for network security for providing a confidential data exchange among entities communicating through data packet networks wherein the data content is protected, e.g. by encrypting or encapsulating the payload
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/10Network architectures or network communication protocols for network security for controlling access to devices or network resources
    • H04L63/102Entity profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/12Applying verification of the received information
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/0618Block ciphers, i.e. encrypting groups of characters of a plain text message using fixed encryption transformation
    • 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/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3247Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials involving digital signatures
    • 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/50Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using hash chains, e.g. blockchains or hash trees
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/02Protecting privacy or anonymity, e.g. protecting personally identifiable information [PII]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/03Protecting confidentiality, e.g. by encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/08Access security
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04WWIRELESS COMMUNICATION NETWORKS
    • H04W12/00Security arrangements; Authentication; Protecting privacy or anonymity
    • H04W12/10Integrity

Landscapes

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

Abstract

コーディネートネットワーク要素は、当該コーディネートネットワーク要素が、受信された、プロトコルに準拠した要求の基礎を少なくとも部分的になすデータ内容に実質的にアクセスすることを阻止するプロトコルを管理する。1つの手法によると、これらの教示は、プロトコルに準拠した要求の中にトークン化された形態で含まれているデータ情報への実質的なアクセスを防止できるようにし、トークンは、少なくともそのうち1つがコーディネートネットワーク要素には入手不可能である秘密を使用して生成される。

Description

関連出願
本出願は、2019年3月13日に出願された米国仮出願番号第62/818,014号、2019年3月18日に出願された米国仮出願番号第62/820,151号、2019年3月20日に出願された米国仮出願番号第62/821,021号、2019年8月12日に出願された米国仮出願番号第62/885,729号、2019年11月8日に出願された米国仮出願番号第62/932,730号、および2020年3月12日に出願された米国仮出願番号第62/988,760号の利益を主張し、これらの各出願はその全体が参照により本明細書に援用される。
これらの教示は、概してデータにアクセスすることに関し、より詳しくはプライバシーの維持に関する。
現代のデータ通信システムは、各種の情報を迅速かつ確実に移送することに長けている。場合によっては、これは、例えば経路情報を暗号化するための暗号化技術を使用して、そのような情報を安全に移送できるようにすることも含む。
多くの場合、前述の情報の提供は、情報の最初のソースまたは情報の直接のソースのいずれかを識別する情報を含む。ソースが誰であるのかを知ることは、情報自体の正しさに対する対応する信頼を有するために、場合によっては重要であることがある。しかし、ソースが受信者に対して知られないままでいることを望み得る場合がある。従来技術は身元情報を隠すことができるようにするが、そのような手法は、ソースを信頼するための根拠を欠くため、受信した情報への信頼を犠牲にしてその結果を実現している傾向がある。
そのため、現在のデータ通信技術は、いかにして身元情報を保護しつつ、同時に情報ソースの正しさを受信者に保証するか?という難題を呈する。
上記の必要性は、特に以下の図面と併せて考察されるときに、以下の詳細な説明に記載されるデータに基づく行為を実施するための方法および装置の提供を通じて、少なくとも部分的に満たされる。
これらの教示の様々な実施形態により構成されたブロック図である。 これらの教示の様々な実施形態により構成された流れ図である。 これらの教示の様々な実施形態により構成されたブロック図であり、アテスター(attester)またはリクエスターとしての関係者が関与する、第3者によって管理されるプロトコルを介した関係者間のブラインドされた情報/データの交換または確証の概要を説明するブロック図である。 これらの教示の様々な実施形態により構成された流れ図であり、証明行為の一部としての預け入れおよび要求行為の一部としての取出しのための中継者との通信を含む、確証を可能にするための証明および要求を説明する流れ図である。図4に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 これらの教示の様々な実施形態により構成された流れ図であり、図4の中継者で使用するためにコーディネータによって関係者クライアントに提供される権限付与を説明する流れ図である。図5に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 これらの教示の様々な実施形態により構成された流れ図であり、証明行為の一部としての預け入れおよび要求行為の一部としての取出しのための中継者との通信を含む、データの移送を可能にするための証明および要求を説明する流れ図である。図6に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 本発明の様々な実施形態により構成された流れ図であり、図6の中継者で使用するためにコーディネータによって関係者クライアントに提供される権限付与を説明する流れ図である。図7に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 これらの教示の様々な実施形態により構成された流れ図であり、サーバSが、正しく振舞っている関係者Pに、「疑陽性」、すなわち偽の一致の指示を送付するために、データ確証プロトコルのそのバージョンの不適切性を悪用する「疑陽性を起こしやすいプロトコル」を説明する流れ図である。図8に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 本発明の様々な実施形態により構成された流れ図であり、サーバSと関係者Pの両方が予想されるように振舞う、データ確証のための「基本プロトコル」を説明する流れ図である。図9に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 これらの教示の様々な実施形態により構成された流れ図であり、関係者PがサーバSに対して両者が同じデータ値のカプセル化を共有していることを証明する、データ確証のための「後続プロトコル、オプション1」を説明する流れ図である。図10に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 これらの教示の様々な実施形態により構成された流れ図であり、関係者Pが、自身のデータ値のカプセル化c’をサーバSに開示し、サーバSが、c’の真正性を検証し、c’を自分自身のデータ値のカプセル化cと比較する、データ確証のための「後続プロトコル、オプション2」を説明する流れ図である。図11に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 これらの教示の様々な実施形態により構成された流れ図であり、TOKEN生成の実施形態を説明する流れ図である。図12(a)は、2つのバックエンドによる双方向のカスケード式処理を伴い、各バックエンドは、他方と、および後続トランスレータのものと異なる秘密値を利用する。 これらの教示の様々な実施形態により構成された流れ図であり、TOKEN生成の実施形態を説明する流れ図である。図12(b)は、2つのバックエンドによる一方向のカスケード式処理を伴い、各バックエンドは、他方と、および後続トランスレータのものと異なる秘密値を利用する。 これらの教示の様々な実施形態により構成された流れ図であり、TOKEN生成の実施形態を説明する流れ図である。図12(c)は、2つのバックエンドによる単独に独立した処理を伴い、バックエンドは後続トランスレータのものとは異なる同じ秘密値を利用する。図12(a)、図12(b)、および図12(c)に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 これらの教示の様々な実施形態により構成された流れ図であり、関係者によって導入されるブラインドファクタ(blinding factor)が、トランスレータではなく関係者によって後に除去されるという点で図12(a)、図12(b)および図12(c)のものとは異なるTOKEN生成のさらなる実施形態を説明する流れ図である。図13に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 これらの教示の様々な実施形態により構成された流れ図であり、不正行為属性トークン(FATOKEN)生成の一実施形態を説明する流れ図である。図14に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 これらの教示の様々な実施形態により構成された流れ図であり、TOKENおよびFATOKENの生成に適する、混合型実施形態の高水準の概要を説明する流れ図である。図15に描かれた送信は、明示的には図示されない、後に解読される暗号化などのオーバーレイを含み得る。 これらの教示の様々な実施形態により構成された流れ図であり、楕円曲線Pohlig-Hellman暗号動作の実例の通信および処理を説明する流れ図である。 これらの教示の様々な実施形態により構成された流れ図であり、一方向楕円曲線Pohlig-Hellman暗号動作の実例の通信および処理を説明する流れ図である。 これらの教示の様々な実施形態により構成された流れ図であり、完全楕円曲線Pohlig-Hellman暗号プロセスの実例の通信および処理を説明する流れ図である。 これらの教示の様々な実施形態により構成された流れ図であり、ワンパス楕円曲線Diffie-Hellman鍵交換の実例の通信および処理を説明する流れ図である。 これらの教示の様々な実施形態により構成された流れ図であり、楕円曲線Pohlig-Hellmanまたはワンパス楕円曲線Diffie-Hellmanの受信者側の実例の、2パーティションプロセッサによる通信および処理を説明する流れ図である。 これらの教示の様々な実施形態により構成された流れ図であり、楕円曲線Pohlig-Hellmanまたはワンパス楕円曲線Diffie-Hellmanの受信者側の実例の、kパーティションプロセッサによる通信および処理を説明する流れ図である。 これらの教示の様々な実施形態により構成された流れ図であり、バックエンドプロセッサタイプのプロセッサが複数あり、各プロセッサがパーティションペアを備える場合におけるバックエンド鍵生成を説明する流れ図である。図22は、プライベート鍵、公開鍵、および内部の(すなわち、プロセッサパーティションがその対応プロセッサパーティションと通信する)ハッシュに基づくメッセージ認証コード(HMAC)鍵の生成を描いた図である。この図は、トランスレータプロセッサタイプについての鍵生成も同様に表している。 これらの教示の様々な実施形態により構成された流れ図であり、バックエンドまたはトランスレータによる一切の処理の前にTOKENを要求する際の関係者の最初のプロセスを説明する流れ図である。Pohlig-Hellman暗号およびワンパスDiffie-Hellmanのイニシエータのステップを用いる処理に関するINFOの不可視化を表している。 これらの教示の様々な実施形態により構成された流れ図であり、トークン化プロセスにおけるバックエンドの役割を説明する流れ図である。これは、ワンパスDiffie-Hellmanの受信者側およびPohlig-Hellmanプロセスのバックエンド部分を含む。 これらの教示の様々な実施形態により構成された流れ図であり、バックエンドによる処理とトランスレータによる処理との間の関係者のプロセスを説明する流れ図である。これは、関係者のPohlig-Hellman解読と、ワンパスDiffie-Hellmanのイニシエータのステップとを反映している。 これらの教示の様々な実施形態により構成された流れ図であり、トークン化プロセスにおけるトランスレータの役割を説明する流れ図である。これは、ワンパスDiffie-Hellmanの受信者側およびPohlig-Hellmanプロセスのトランスレータ部分を含む。この例では、これはTOKENの作成における最終ステップである。
図中の要素は、単純性および明瞭性のために図示されており、必ずしも実際の縮尺で描かれていない。例えば、図中の要素の一部の寸法および/または相対的配置は、本教示の様々な実施形態の理解を向上する助けとして、他の要素に対して誇張されていることがある。また、商業的に実施可能な実施形態において有用または必要である一般的であるがよく理解されている要素は、本教示のそれら様々な実施形態の図の邪魔にならないようにするために、多くの場合描かれない。ある動作および/またはステップは、特定の発生順序で記載または図示されることがあるが、当業者は、順番に関するそのような特定性は実際には必要とされないことを理解するであろう。本明細書で使用される用語および表現は、異なる特定の意味が別途本明細書に述べられている場合を除き、上記で述べられたように当分野における当業者によるそのような用語および表現に一致させた通常の技術的意味を有する。本明細書で使用される場合、単語「または」は、特段断らない限り、接続構造ではなく離接構造を有するものと解釈されるべきである。
概して、これらの様々な実施形態に従うと、コーディネートネットワーク要素が、受信された、プロトコルに準拠した要求の基礎を少なくとも部分的になすデータ内容に当該コーディネートネットワーク要素が実質的にアクセスすることを阻止するプロトコルを管理する。1つの手法によると、これらの教示は、プロトコルに準拠した要求の中にトークン化された形態で含まれるデータ情報への実質的なアクセスを防止できるようにし、トークンは秘密を使用して生成され、秘密の少なくとも1つはコーディネートネットワーク要素には入手不可能である。
そのようなプロトコルに準拠した要求は、例えば、アテスターの役割内で動作しているネットワーク要素を含む要求元ネットワーク要素から、またはリクエスターの役割内で動作している2次ネットワーク要素として働く要求元ネットワーク要素から、受信され得る。プロトコルに準拠した要求自体は、例えば、参照されるデータ内容、参照されるデータタイプ、参照される初期データ情報ソース、および初期データソースに関連付けられたデータ情報、の少なくとも1つを含むデータ情報に関係し得る。
1つの手法によると、要求元ネットワーク要素が、上述のアテスターの役割内で動作しているネットワーク要素である場合、これらの教示は、要求元ネットワーク要素を介して調達されたデータを、データに基づく処理のために非同期に入手可能にする権限を要求元ネットワーク要素に付与することを、少なくとも部分的には上述のプロトコルを介して容易にできるようにする。データが間接的なデータとして調達される場合、調達することは、初期データソースから要求元ネットワーク要素によって受信されたデータからの導出を伴い得る。そのような場合、2次ネットワーク要素の身元を要求元ネットワーク要素からブラインドし、それにより、それらに関するプライバシーを維持することができる。
1つの手法によると、上述の権限を付与することは、アテスターの役割内で動作している要求元ネットワーク要素が、中継者からアクセス可能なストレージに内容を記憶する権限を付与されることを中継者に通知する、検証可能な許可を生成することを少なくとも部分的に含み得、内容は、データの移動および確証のうち少なくとも一方を可能にするために有用である、暗号パラメータ、データ、およびメタデータ、の少なくとも1つを含む。1つの手法によると、上述の中継者からアクセス可能なストレージに内容を記憶することは、内容の一部を、平文形態および暗号化された形態の少なくとも一方で記憶することを含む。
内容自体は、例えば解読トークンならびに/または暗号パラメータおよびメタデータとして働くことができる、記憶された値を含むことができる。そのような解読トークンは、アテスターの役割内で動作しているときに要求元ネットワーク要素によって生成された暗号文および暗号パラメータのうち少なくとも1つを表す働きをすることができる。上述の暗号パラメータおよびメタデータは、比較トークンを構成するためにデータと共に適用され得る。この場合、アテスターの役割内で動作している要求元ネットワーク要素によって与えられたデータの処理の結果を表す比較トークンに対して、記憶された値を使用して処理された候補データを表す比較トークンの一致があるかどうかに関する判定を行うことができる。
上述の判定は、リクエスターの役割内で動作している要求元ネットワーク要素によって受信された誤った応答に起因して比較トークンの一致がある場合に、リクエスターの役割内で動作している要求元ネットワーク要素により偽って判定を行うことができないように構成することができ、すなわち、偽陽性を回避することができる。上述の判定はさらに、リクエスターの役割内で動作している要求元ネットワーク要素から供給される公開鍵と併せて、暗号化を支援する加法およびスカラー乗法準同型を利用することができ、公開鍵は、リクエスターの役割内で動作している要求元ネットワーク要素により、リクエスターの役割内で動作している要求元ネットワーク要素によって生成された比較トークンの関数に適用され、また、コーディネートネットワーク要素により、リクエスターの役割内で動作している要求元ネットワーク要素に応答する際にアテスターの役割内で動作している要求元ネットワーク要素からコーディネートネットワーク要素によって受信される比較トークンに適用される。
別の手法によると、前述に代えて、またはそれと組み合わせて、上述の内容は、シェアの群であって、閾値数のそのようなシェアが内容の再構成を可能にするようなシェアの群を含み得る。1つの手法によると、それらのシェアは、アテスターの役割内で動作している要求元ネットワーク要素によって複数の中継者に分散される。
1つの手法によると、上述のデータに基づく処理は、証明済みのデータ内容の移動、および以前に証明済みのデータ内容に対するデータ内容の確証、のうち1つまたは複数を含み得る。上述のデータ内容の確証は、次いで、リクエスターの役割内で動作している要求元ネットワーク要素からデータを調達することを少なくとも部分的に含み得、そのデータが間接的なデータとして調達される場合、調達することは、初期データソースから要求元ネットワーク要素によって受信されたデータからの導出を伴う。リクエスターの役割内で動作している要求元ネットワーク要素が、間接的なデータとして調達されたデータを使用する場合、参照される初期データソースの身元と、初期データソースに関連付けられたデータ情報から導出されたいずれかのトークンとは、リクエスターの役割またはアテスターの役割内で動作することが可能な他のネットワーク要素にとって実質的にアクセス不可能にすることができる。
別の手法によると、ここでも前述に代えて、またはそれと組み合わせて、要求元ネットワーク要素がリクエスターの役割内で動作している2次ネットワーク要素である場合、これらの教示は、以前に別の要求元ネットワーク要素から調達されたデータを処理するための2次ネットワーク要素の権限付与を、少なくとも部分的には上述のプロトコルを介して容易にすることができるようにする。この場合、これらの教示は、別の要求元ネットワーク要素の身元が2次ネットワーク要素からブラインドされ、それにより前者のプライバシーを保護することができるようにする。上述の権限を付与することは、要求元ネットワーク要素に代わって、その要求元ネットワーク要素がアテスターの役割内で動作しているときに関与した1つまたは複数の以前の証明に対する撤回を許可することを含み得、それにより、特に、データを処理するための上述の2次ネットワーク要素の権限付与の一部として考慮されることからそれらを除去する効果を有する。
1つの手法によれば、上述の権限付与は、リクエスターの役割内で動作している要求元ネットワーク要素が、中継者からアクセス可能なストレージから、暗号パラメータ、データ、およびメタデータのうち少なくとも1つを含む内容を、平文形態または暗号化された形態で取り出す権限を付与されることを少なくとも1つの中継者に通知する、検証可能な許可の生成を少なくとも部分的に含み得る。
プロトコルに準拠した要求の中にトークン化された形態で含まれているデータ情報への実質的なアクセスを防止することに関して、ここで、トークンは、少なくともそのうち1つがコーディネートネットワーク要素には入手不可能である秘密を使用して生成され、別の手法によれば、またここでも前述に代えて、またはそれと組み合わせて、秘密は、それぞれ別個のタイプの複数のプロセッサにおいて互いに離して保持することができ、各タイプの少なくとも1つのプロセッサが、トークンの生成に関与する。好ましくは、少なくとも1つのプロセッサタイプは、コーディネートネットワーク要素により制御されず、また実質的にアクセス可能でもない。トークンを生成するために集合的に使用されるそれらの秘密の各々は、別個のタイプの複数のプロセッサの各々によって独立して生成されるか、またはセットアップ時に、関連するプロセッサタイプをカバーする複数のプロセッサに分散され得、後者の機構は、負荷平衡および動作の回復を可能にするために、各タイプのプロセッサの複製を複数個確立することと整合する。
1つの使用事例は、初期データソースに関連付けられた情報のトークン化であり、ここで、トークンの生成を求める要求は、上述の初期データソースによってデータが供給される要求元ネットワーク要素によって開始される。そのようなトークンは、コーディネートネットワーク要素が、リクエスターの役割内で動作しているネットワーク要素に応答するときに、アテスターの役割内で動作しているネットワーク要素によって完了された以前の証明に関する情報を検索できるようするために使用することができ、そのようなトークンは、初期データソースに関連付けられたデータ情報として組み込まれる。一部の事例では、そのようなトークンは、初期データソースへの参照として働き得る。
別の使用事例は、確証のためにデータ内容を参照する目的でのデータ内容のトークン化である。そのような使用事例では、アテスターの役割内で動作している要求元ネットワーク要素に権限を付与することは、要求元ネットワーク要素によりまたはプロキシによりサブミットされたトークンを、データ内容を表すものとしてコーディネートネットワーク要素が受け付けることを少なくとも部分的に伴う。そのようなプロキシは、トークンの生成に関与するプロセッサであり得る。さらに、そのような使用事例において、リクエスターの役割内で動作している要求元ネットワーク要素に権限を付与することは、リクエスターの役割内で動作している要求元ネットワーク要素によってまたはプロキシによってサブミットされたトークンを、コーディネートネットワーク要素が保持している、アテスターの役割内で動作している要求元ネットワーク要素によってサブミットされたものとして以前に受け付けられたトークンの値を比較するデータ内容を表すものとして、コーディネートネットワーク要素が受け付けることを少なくとも部分的に伴う。そのようなプロキシは、トークンの生成に関与するプロセッサであり得る。
さらに、初期データソースによりデータを供給される要求元ネットワーク要素によってトークン生成の要求が開始される場合の、上述の初期データソースに関連付けられたデータ情報のトークン化に関して、アテスターの役割またはリクエスターの役割内で動作するための前提条件として、またはすでにその役割内で動作している間に、要求元ネットワーク要素は、第1のプロセッサタイプの第1のプロセッサまたは集合的に第1のプロセッサタイプの第1のプロセッサとして設計されたサブプロセッサの組み合わせによる、次いで、別個にアドレス指定可能な、第2のプロセッサタイプの第2のプロセッサまたは集合的に第2のプロセッサタイプの第2のプロセッサとして設計されたサブプロセッサの組み合わせによる、トークン生成動作を連続的に要求することができ、このとき、第1のプロセッサに対して行われる要求内のデータ情報は、要求元ネットワークによるブラインドファクタの導入により、第1のプロセッサからブラインドされる。さらに、第1の秘密への集合的なアクセスに基づいて第1のプロセッサによって取られる動作は、要求元ネットワーク要素が、第2の秘密への集合的なアクセスに基づいて第2のプロセッサによって動作が取られることを要求する前に、第1のプロセッサによる動作の結果から自身が以前に導入したブラインドファクタを除去した後でも、第2のプロセッサからデータ情報をブラインドする働きをすることができ、その結果、要求元ネットワーク要素による実質的なアクセスからブラインドされたトークン値を生じることができる。第1の秘密および第2の秘密は、以前に生成されたトークンの有用性を無効にすることなく、新しい第1の秘密および新しい第2の秘密に更新されることが可能であり、ここで、好ましくはランダムに生成された修飾子または乗数が、第1のプロセッサによって第1の秘密に適用され、適宜算出された修飾子または乗数の逆数が、第2のプロセッサにより第2の秘密に適用される。互いから独立して考えられる第1のプロセッサおよび第2のプロセッサに関して、第1のプロセッサが、2つ以上のサブプロセッサの組み合わせからなる場合、第1のプロセッサのこれらのサブプロセッサは各々、自身が保持している第1の秘密の1つまたは複数の構成要素を更新することができ、第1の秘密は、その第1の秘密を変更することなく第1のプロセッサによって集合的にアクセス可能である。同様に、互いから独立して考えられる第1のプロセッサおよび第2のプロセッサに関して、第2のプロセッサが、2つ以上のサブプロセッサの組み合わせからなる場合、第2のプロセッサのこれらのサブプロセッサは各々、自身が保持している第2の秘密の1つまたは複数の構成要素を更新することができ、第2の秘密は、その第2の秘密を変更することなく第2のプロセッサによって集合的にアクセス可能である。
さらに、確証のためにデータ内容を参照する目的でのデータ内容のトークン化に関して、および適切なブラインドを実現するために、トークン生成方法は、トークン値のセットおよびトークン値の生成に対するプロセッサの寄与へのアクセスを与えられたとき、トークンを生成するために集合的に使用されたプロセッサ秘密のすべてへのアクセスが与えられたとしても、プロセッサ各々のどの寄与がセット内のどのトークン値に対応するのかを区別することが算出的に実行不可能となるように、設計することができる。
そのように構成されると、これらの教示は、情報ソースの1つまたは複数の身元を保護しつつ、それでもそのソースに関して情報受信者を安心させることのできる手法を介して、情報の提供(および/または情報の確証)を可能にするための堅固な基盤を提供する。これらの教示は、したがって、一般に利用可能なデータ通信技術に対する改良を含むものと理解される。さらに、これらの教示およびそれに対応する利益は、幅広い種々の応用環境において適用できることが認識されよう。いくつかの関連性のある例には、これらに限定されないが、医療サービスの提供およびそれに対応する医療記録の使用、医薬品の処理および分配、場所および/または条件に固有の監視(例えば、周囲および/または環境条件ならびに病気に関する兆候の監視を含む)、プラットフォーム間および/または代理店/支店間の、反テロリズム活動を含むセキュリティに関するデータの交換、これらに限定されないが、クレジットおよびローンの処理、詐欺の検出などを含む、経済/金融関係の目的が含まれる。これらに関して、当業者はさらに、各種のいわゆるモノのインターネットデバイスおよびサービスのいずれかを含む応用環境における使用に、これらの教示が容易に対処できることを認識するであろう。
これらおよび他の利点は、以下の詳細な説明をあますところなく検討および考察するとより明らかになろう。次いで図面、特に図1を参照して、上記教示の多くと両立性のある例示的な装置100を提示する。
この特定の例では、イネーブリング装置100は、コーディネートネットワーク要素101を含む。このコーディネートネットワーク要素は、対応するネットワーク105を介して、データに基づく行為を実施するように構成されている。本明細書においてより詳細に説明されるように、このコーディネートネットワーク要素101は、受信されたプロトコルに準拠した要求の基礎を少なくとも部分的になすデータ内容にコーディネートネットワーク要素101が実質的にアクセスすることを阻止するプロトコルを管理する。
この説明のための例では、コーディネートネットワーク要素101は、制御回路102を含む。「回路」であるため、制御回路102は、したがって、秩序付けられた方式で電気を伝える少なくとも1つの(通例は多くの)導電性の経路(銅や銀などの導電性金属からなる経路など)を含む構造を備え、この経路は通例、回路が上記教示の制御態様を実施することを可能にする、対応する電気構成要素(適宜、受動的(抵抗およびコンデンサなど)ならびに能動的(各種の半導体ベースのデバイスのいずれかなど)の両方)も含む。
そのような制御回路102は、目的が固定されたハードワイヤードのハードウェアプラットフォーム(これに限定されないが、特定用途集積回路(ASIC)(これは、汎用的な使用を意図されるのではなく、特定の用途のために設計によってカスタマイズされた集積回路である)、フィールドプログラマブルゲートアレイ(FPGA)等)を含むか、または、部分的もしくは完全にプログラム可能なハードウェアプラットフォーム(これらに限定されないが、マイクロコントローラ、マイクロプロセッサ等を含む)を含み得る。これらの構造に関するこれらのアーキテクチャ上の選択肢は、当技術分野ではよく知られ、理解されており、ここではこれ以上の説明を必要としない。この制御回路102は、本明細書に記載されるステップ、動作、および/または機能の1つまたは複数を実行するように(例えば、当業者によく理解されるように対応するプログラミングを使用することにより)構成される。
1つのオプションの手法によると、制御回路102は、メモリ103に動作可能に結合する。このメモリ103は、必要に応じて、制御回路102と一体であっても、または制御回路102から(全体がまたは一部が)物理的に別個であってもよい。このメモリ103はまた、制御回路102に対してローカルであっても(例えば両方が共通の回路板、シャーシ、電源、および/または筐体を共有する場合)、または制御回路102に対して部分的もしくは全体的にリモートであってもよい(例えば、メモリ103が制御回路102と比べて別の設備、別の都市区域、さらには別の国に物理的に位置する場合)。
本明細書に説明されるように他の情報を記憶することに加えて、このメモリ103は、例えば、制御回路102によって実行されたときに制御回路102を本明細書に記載されるように振舞わせるコンピュータ命令を非一時的に記憶する役割を果たすこともできる。(本明細書で使用される場合、この「非一時的に」の言及は、記憶媒体自体の揮発性ではなく、記憶内容にとって非一時的状態を指し(したがって記憶内容が単に信号または波を構成する場合を除外する)、したがって、不揮発性メモリ(読出し専用メモリ(ROM))、ならびに揮発性メモリ(ダイナミックランダムアクセスメモリ(DRAM)など)の両方を含むものと理解される。
この例では、制御回路102は、ネットワークインターフェース104にも動作可能に結合する。そのように構成されているため、制御回路102は、ネットワークインターフェース104を介して他の要素(装置100内およびその外部両方の)と通信することができる。より詳しくは、ネットワークインターフェース104は、1つまたは複数のネットワーク105を介した互換性のある通信を容易にする。多数の例が当技術分野で知られている。非網羅的な列挙には、ユニバーサルシリアルバス(USB)に基づくインターフェース、RS232に基づくインターフェース、I.E.E.E.1394(Firewireとも呼ばれる)に基づくインターフェース、イーサネットに基づくインターフェース、各種のいわゆるWi-Fi(商標)に基づくワイヤレスインターフェースのいずれか、Bluetooth(商標)に基づくワイヤレスインターフェース、セルラー電話技術に基づくワイヤレスインターフェース、近距離通信(NFC)に基づくワイヤレスインターフェース、標準的な電話陸線に基づくインターフェース、ケーブルモデムに基づくインターフェース、およびデジタル加入者回線(DSL)に基づくインターフェースが含まれ得る。そのようなインターフェースを選択的に用いて、制御回路102を、別のネットワーク要素に、ローカルエリアネットワークに、または各種のワイドエリアネットワークもしくはエクストラネット(これに限定されないがインターネットなど)のいずれかに、通信的に結合することができる。
以下の説明に関して、そのように構成されているため、コーディネートネットワーク要素101は、上述のプロトコルを介して、複数のネットワーク要素106(図1には第1のネットワーク要素から第Nのネットワーク要素として示される)のいずれとも互換的に通信することができる。下記でより詳細に説明するように、そのようなネットワーク要素106は、いわゆるアテスターの役割内で、またはいわゆるリクエスターの役割内で動作している2次ネットワーク要素として、動作している可能性がある。
所与の応用環境においてデータに基づく行為を実施する際に役割を果たし得る他の装置には、アテスターとしてもリクエスターとしても動作しないデータソース107、および/または1つまたは複数のいわゆる中継者108のような要素が含まれる。
次いで図2を参照すると、上述のコーディネートネットワーク要素101は、説明のための例として、図示されるプロセス200を実行するものと仮定される。1つの手法によると、上記で説明した制御回路102は、上記の動作、行為、および機能を実行する。またこれも上記で説明したように、コーディネートネットワーク要素101は、本明細書に記載されるプロトコルに準拠した要求の基礎を少なくとも部分的になすデータ内容に当該コーディネートネットワーク要素101が実質的にアクセスすることをとりわけ阻止するプロトコル201を管理しながら、このプロセス200を実行する。
ブロック202で、コーディネートネットワーク要素101が、上述のネットワーク105を介して、データ情報に関する、プロトコルに準拠した要求を受信する。このプロトコルに準拠した要求は、単一の独立したメッセージに含まれている場合も、または望まれる場合には、複数の別個のメッセージを含んでもよい。このプロトコルに準拠した要求は、アテスターの役割内で、またはリクエスターの役割内で動作している2次ネットワーク要素として動作している、要求元ネットワーク要素106から受信される。プロトコルに準拠した要求に対応するデータ情報は、各種のデータ項目のいずれかを構成するかまたは含むことができる。例には、これらに限定されないが、参照されるデータ内容、参照されるデータタイプ、初期データ情報ソースの参照、および初期データソース107に関連付けられたデータ情報が含まれる。
ブロック203で、コーディネートネットワーク要素101が、要求元ネットワーク要素106が、アテスターの役割内で動作しているネットワーク要素であるかどうかを判定する。当てはまる場合、ブロック204で、コーディネートネットワーク要素101は、要求元ネットワーク要素を介して調達されるデータを、データに基づく処理のために非同期に入手可能にする権限を要求元ネットワーク要素106に付与することを、少なくとも部分的には上述のプロトコルを介して容易にする。この例では、データは、間接的なデータとして調達され、初期データソース107から要求元ネットワーク要素によって受信されたデータからの導出を伴う。
重要な点として、また上述のプロトコルによれば、これらに関してリクエスターの役割内で動作している対応する2次ネットワーク要素の身元は、要求元ネットワーク要素からブラインドされる。
ブロック206で、以前に別の要求元ネットワーク要素から調達されたデータを処理するための、リクエスターの役割内で動作している2次ネットワーク要素の権限付与は、当該リクエスターの役割内で動作している要求元ネットワーク要素が、中継者からアクセス可能なストレージから、暗号パラメータ、データ、およびメタデータのうち少なくとも1つを含む内容を、平文形態または暗号化された形態で取り出す権限を付与されることを少なくとも1つの中継者108に通知する、検証可能な許可の生成を少なくとも部分的に含み得る。
前述のブロック204における、アテスターの役割内で動作している要求元ネットワーク要素を介して調達されるデータを、データに基づく処理のために非同期に入手可能にする権限を要求元ネットワーク要素に付与することは、アテスターの役割内で動作している要求元ネットワーク要素が、中継者からアクセス可能なストレージに内容を記憶する権限を付与されることを中継者108に通知する、検証可能な許可を生成することを少なくとも部分的に含み得、当該内容は、データの移動および確証のうち少なくとも一方を可能にするために有用である暗号パラメータ、データ、およびメタデータ、の少なくとも1つを含む。(これらの教示は、上述の内容の少なくとも一部を平文形態および暗号化された形態の少なくとも一方で記憶することにより、中継者からアクセス可能なストレージに上述の内容を記憶することに対処する。)
1つの手法によると、上述の内容は、解読トークンの少なくとも1つ、ならびに暗号パラメータおよび/またはメタデータの少なくとも1つとして働くように構成された記憶された値を含む。上述の解読トークンは、1つの手法によると、アテスターの役割内で動作している要求元ネットワーク要素によって生成された暗号文および暗号パラメータのうち少なくとも1つを表すことができる。これらの教示によって、コーディネートネットワーク要素101は、プロトコルに準拠した要求の中にトークン化された形態で含まれるデータ情報から阻止され、したがって実質的にそれにアクセスすることができないことに留意されたい。ここで、解読トークンは、少なくともそのうち1つがコーディネートネットワーク要素101には入手不可能である秘密を使用して生成される。例えば、そのような入手不可能性は、コーディネートネットワーク要素101が1つまたは複数の中継者108のストレージに実質的にアクセスできないことに起因し得る。
上述の暗号パラメータおよびメタデータは次いで、比較トークンを構成するためにデータと共に適用することができ、比較トークンは、アテスターの役割内で動作している要求元ネットワーク要素によって与えられたデータの処理の結果を表す比較トークンに対して、記憶された値を使用して処理された候補データを表す比較トークンの一致があるかどうかに関する判定を行うことができるように構成される。これらの教示によって、コーディネートネットワーク要素101は、プロトコルに準拠した要求内にトークン化された形態で含まれるデータ情報から阻止され、したがって実質的にそれにアクセスすることができないことに留意されたい。ここで、比較トークンは、少なくともそのうち1つがコーディネートネットワーク要素101には入手不可能である秘密を使用して生成される。例えば、そのような入手不可能性は、コーディネートネットワーク要素101が1つまたは複数の中継者108のストレージに実質的にアクセスできないことに起因し得る。
1つの手法によると、上述の内容は、シェアの群であって、閾値数のそのようなシェアが当該内容の再構成を可能にするようなシェアの群を含み得る。1つの手法によると、これらのシェアは、アテスターの役割内で動作している要求元ネットワーク要素によって複数の中継者108に分散される。
上述のように、コーディネートネットワーク要素101は、要求元ネットワーク要素を介して調達されるデータを、データに基づく処理のために非同期に入手可能にする権限を、アテスターの役割内で動作する要求元ネットワーク要素に付与することができる。1つの手法によると、このデータに基づく処理は、証明済みのデータ内容の移動、および以前に証明済みのデータ内容に対するデータ内容の確証、のうち少なくとも1つを含み得る。以前に証明済みのデータ内容に対するデータ内容のこの確証は、次いで、リクエスターの役割内で動作している要求元ネットワーク要素からデータを調達することを少なくとも部分的に含み得、データが間接的なデータとして調達される場合、調達することは、初期データソース107から要求元ネットワーク要素によって受信されたデータからの導出を伴う。
ブロック203で行われた判定が偽の場合、ブロック205で、コーディネートネットワーク要素101は、要求元ネットワーク要素が、リクエスターの役割内で動作している2次ネットワーク要素であるかどうかを判定する。それが該当しない場合、このプロセス200は、必要に応じて各種の応答のいずれにも対応することができる。それらに関する一例として、このプロセス200は、このプロセス200の最初に戻り、それにより、別のその後受信されるプロトコルに準拠する要求を処理することに対応する。
当てはまる場合、ブロック206で、このプロセス200は、以前に別の要求元ネットワーク要素から調達されたデータを処理するための2次ネットワーク要素の権限付与を、少なくとも部分的には上述のプロトコルを介して容易にする。この権限付与は、リクエスターの役割内で動作している要求元ネットワーク要素が、中継者からアクセス可能なストレージから、暗号パラメータ、データ、およびメタデータのうち少なくとも1つを含む内容を、適宜平文形態または暗号化された形態で取り出す権限を付与されることを少なくとも1つの中継者108に通知する、検証可能な許可の生成を少なくとも部分的に含み得る。
重要な点として、ここでも、別の要求元ネットワーク要素の身元は2次ネットワーク要素からブラインドされる。
そのように構成されているため、各種データタイプに関する各種エンティティからの要求は、それらの行為に関与する各種エンティティの身元を必ずしも明かすことなく、共有および/または証明することができる。このブラインドは、そのような情報の共有を容易にするコーディネートネットワーク要素101を含む。
様々な例示的な用途環境および実装の詳細を次いで提示する。これらの説明で提供される具体的な詳細は、説明の目的を果たすことが意図され、それら教示の適用を制約する制限的な例とは解釈すべきでなないことが理解されるべきである。
次いで図3を参照すると、関係者P310が、エンティティE320から調達されたデータを取得し、アテスターの役割内で動作しており、そのソースデータから導出されたデータの証明をシステムに提供するために第3者によって管理されるプロトコル350を利用する。そのような導出は、ソースデータの正規化を伴ってよい。そのような証明は、データタイプを伴ってよい。そのような証明は、エンティティE320に関連付けられたまたは関係する情報の表現を伴ってよく、その情報は、社会保障番号や誕生日などの、エンティティE320を識別する情報を含んでよい。そのような表現は、ブラインドされたエンティティに関連する情報の形態であってよく、情報は、よって、プロトコル350に対して、したがってプロトコル350を実行する1つまたは複数のサーバに対して不透明である。そのような表現は、可能性としてはデータタイプと共に、ソースデータを分類するための機構として使用されてよい。プロトコル350を実行する1つまたは複数のサーバは、複数の当事者または会社間にそれらの運用/所有権が分散されていてよい。プロトコル350によりアクセスからブラインドすることの効果は、よって、共謀や危殆化行為に対する実際的な制限に依存し得る。
不正行為属性レジストリなどの特定の使用事例では、証明は、ブラインドされたエンティティに関係する情報も、ブラインドされていないエンティティに関係する情報も備えない。この理由は、そのような証明は、その後そのデータを証明したシステムの関係者にデータを調達したすべてのエンティティにわたって、リクエスターがデータの確証または照合を試みることを可能にするために使用されるためである。そのようなエンティティは、不正を働いている、または詐称者であり得る。そのようなデータは、部分的もしくは全体が合成されたものであり得、または、正当なデータと、偽造されたもしくは悪用されたデータとの組み合わせを伴うことがあり、または、そのようなデータもしくはそのようなエンティティは、不正を働いているもしくはその他の形で不適正であることが、証明を行う関係者によって疑われ得る。
提出された証明を介して転送または確証することが可能な状態にされたデータは、ブラインドされた、よってプロトコル350にとって不透明なデータの形態で表され得る。リクエスターの役割内で動作する関係者P330は、証明されたデータの転送を受信するため、または関係者P330がエンティティE340から取得したデータから導出されたデータの確証を試みるために、プロトコル350を利用する。そのような証明はデータタイプを伴うことがある。そのような証明は、エンティティE340に関連付けられた、または関係する情報の表現を伴ってよく、そのような表現はブラインドされてよい。好ましくは、要求元の関係者P330と証明を行う関係者P310は、互いの真の身元も、さらには各自の偽名の身元すら知ることがない。好ましくは、関係者P310は、エンティティE340がエンティティE320と同じである場合でも、少なくともシステムによって実施される可能性のあるいくらかの遅延の前には、エンティティE340を知ることがない。そのような遅延は、例えば、時間または周期またはトランザクション量で測定されてよい。
次いで図4を参照し、また必要に応じて図5も参照すると、上半分に、関係者により、または1つまたは複数の関係者の代わりに操作されるコンピュータ、ソフトウェア、および/またはハードウェアとしてのクライアント410(C)(例えば、第3者によって管理されるプロトコルを実行する1つまたは複数のサーバへのクライアントゲートウェイとしての)を伴う、証明動作シーケンスが示される。下半分には、関係者により、または1つまたは複数の関係者の代わりに操作されるコンピュータ、ソフトウェア、および/またはハードウェアとしてのクライアント455(C’)(例えば、第3者によって管理されるプロトコルを実行する1つまたは複数のサーバへのクライアントゲートウェイとしての)を伴う要求動作シーケンスが示される。中継者のセット415は、証明および証明に対する要求にわたって共通である。中継者ストレージへのデータもしくは情報の預け入れ、または中継者ストレージからの取出しは、複数の中継者415を介した、それぞれクライアント410またはクライアント455が関与する通信を伴い得る。
証明:データソース405が、DATAのセット420をクライアント410に提供する。クライアント410は、425で、randomと表される値をランダムまたは疑似ランダムに生成し、430で、可能性としてはメタデータなどの他のパラメータと共に、それを分割し、その結果得られた分割を中継者415に送信する。関与する各中継者が自身に送られた分割を受け付けるための前提条件として、そのような中継者は、図5の535でクライアント410に対して入手可能にされる適当な権限付与を必要とすることがある。430で、クライアント410は、DATAおよびrandomの関数fを算出し、ここで、randomは、425で生成された、好ましくはランダムまたは疑似ランダムに生成された値を表す。一例として、DATAはrandomと連結され、次いでその結果に一方向性ハッシュ関数が適用されてよい。別の例として、randomが、HMAC関数を引数としてDATAに適用するHMAC鍵として使用されてよい。他の鍵付きハッシュ関数がHMACの代わりに使用されてもよい。関数fは、DATAに適用される正規化関数を組み込んでよい。そのような正規化は、証明に対する要求を介してデータを確証または照合することを試みる際に、偽陰性を回避するために有用であり得る。関数fは、DATAおよびrandomに加えて、メタデータなどの引数を組み込んでもよい。430における算出の結果は、440として送信されて、図5のコーディネータ510への図5の送信515の少なくとも一部をなす。
要求:データソース450は、DATA’のセット460をクライアント455に提供する。465で、クライアント455は、中継者415にrandomの分割を要求する。証明を行う関係者によって以前に提出された関連する証明にわたって、データタイプおよびTOKENの同じ値に対応するrandomの値が複数あり得、そのデータタイプ値およびTOKEN値に対応する証明当たりrandomの値が1つある。各証明に組み込まれるDATA要素は、互いと一致する場合もしない場合もある。関与する各中継者が以前に証明を介して記憶された分割を供給するための前提条件として、そのような中継者は、図5の560でクライアント455に対して入手可能にされる適当な権限付与を必要とすることがある。権限付与が成功すると、関与する各中継者は、クライアント455に応答470を送信する。クライアント455は、472で、可能性としてはメタデータなどの他のパラメータと共に、randomを再構成する。480で、クライアント455は、証明の時に適用されたと考えられるものと同じ、DATA’値およびrandomの値の関数fを算出する。fは、詳細には、DATA’値の正規化を伴ってよい。メタデータなど、fの追加的な引数があってよい。480の結果は、何らかの形態485で送信され、これは、図5の565を介して何らかの関数hをコーディネータ510に適用することを伴い得る。例えばシャミア秘密共有方式などの閾値方式が、430におけるrandomの分割に使用されてよい。一例として、3 out of 4方式を使用することが可能であり、その場合、4つのシャード(shard)のうちの任意の3つが、472におけるrandomの再構成を可能にする。
次いで図5を参照する。
証明:クライアント505は、515で、データタイプ、g(TOKEN)およびf(Data,random)をコーディネータ510に送信し、ここでf(Data,random)は、図4の440で送信されたものである。g(TOKEN)は、関係者クライアント505に以前供給されたTOKENの形態に対応し得る。一例として、トランスレータが、コーディネータ510と共通に保持されている鍵を使用し、かつ1回使用の初期化ベクトルを使用して、TOKENを一意に暗号化していることがあり、その結果、暗号文および可能性としては認証タグが生じ、それが初期化ベクトルと共にクライアント505またはクライアント505の代理に送付されている。515は、randomの関数を追加的に含んでよく、それが最終的にブロックチェーンに提出され、要求の役割にある関係者クライアント540によって取り出され、図4の472の再構成されたrandomと照合して検証され得る。そのような関数は、メタデータなどの追加的な引数を含んでよい。そのような関数は、一方向性ハッシュ関数を伴ってよい。コーディネータ510は、520で、自身のデータベースの管理で使用するためのアドレスを作成する。525で、コーディネータ510は、データタイプ、TOKEN、f(DATA,random)およびアドレス、またはそれらの何らかの形態もしくは関数を記憶する。525の処理は、以前にTOKENに適用された関数gの効果を逆にする、または除去することを含んでよい。530で、コーディネータ510は、535でクライアント505に送信される1つまたは複数の権限付与を生成する。そのような権限付与は、図4の445で、図4で410として表される証明を行うクライアントから1つまたは複数の中継者415に送信される。
要求:クライアント540は、545で、データタイプおよびg(TOKEN)をコーディネータ510に送信する。g(TOKEN)は、関係者クライアント540に以前供給されたTOKENの形態に対応し得る。一例として、トランスレータが、コーディネータ510と共通に保持されている鍵を使用し、かつ1回使用の初期化ベクトルを使用して、TOKENを一意に暗号化していることがあり、その結果、暗号文および可能性としては認証タグが生じ、それが初期化ベクトルと共にクライアント540またはクライアント540の代理に送付されている。550で、コーディネータ510は、データタイプおよびTOKENに基づいて1つまたは複数のアドレスを引き出す。550の処理は、以前にTOKENに適用された関数gの効果を逆にする、または除去することを含んでよい。555で、コーディネータ510は権限付与を作成する。図4の445で証明を行うクライアントによってどのようにrandomの分割が中継者415に分散されたかによって、要求元クライアント540によって検査される証明ごとに複数の権限付与があることもあり得、その場合、そのような各権限付与は、図4の要求465において中継者415の少なくとも1つと共に使用されることが意図される。これらの権限付与は、560でクライアント540に送信される。図4のシーケンス465、470、472、および480の結果、f(DATA’,random)が構築され、これをさらに処理して、図4の参照符号485に描かれるようにh(f(DATA’,random))を生成し、それが565でコーディネータ510に送信されてよい。関数hの詳細は、結果として575のRESPONSEを生じさせるコーディネータ510による処理、およびDATAに対するDATA’の確証状態を判定する580におけるクライアント540による処理からなる、下位プロトコルの詳細に依存し得る。515が、最終的にブロックチェーンに提出されるrandomの関数、および可能性としてはメタデータなどの追加的な引数を含む場合、それをクライアント540により取り出して、図4の472の再構成されたrandomと照合して検証することができる。
次いで図6を参照する。
証明:データソース605は、DATAのセット620をクライアント610に提供し、そのようなセットの1つまたは複数の要素は、図7の715でコーディネータに送信され、その結果、735の権限付与および権限付与識別子AIがクライアント610に入手できる状態になり、そのため、625で証明識別子AIを使用して初期化ベクトルIVを生成することができ、635の分割された鍵および認証タグならびに分散された暗号文を、640で中継者615に提供することができる。630の処理の結果、機密性のための暗号文、ならびに可能性としてはデータ完全性のための認証タグが得られる。EKEY(DATA)によって表される鍵を使用したDATAの暗号化は、メタデータならびにDATAの暗号化を含んでよい。
要求:655で、クライアント650は、分割された鍵および認証タグならびに分散された暗号文チャンクからなる暗号材料構成要素を中継者615に要求する。証明を行う関係者によって以前に提出された関連する証明にわたって、データタイプおよびTOKENの同じ値に対応するこれらの値が複数あり得、そのデータタイプ値およびTOKEN値に対応する証明当たり、値が1つある。暗号化されて各証明に取り込まれた平文のDATA要素は、互いと一致する場合もしない場合もある。関与する各中継者が以前に証明を介して記憶された暗号材料を供給するための前提条件として、そのような中継者は、図7の760でクライアント650に入手可能にされる適当な権限付与を必要とすることがある。権限付与が成功すると、関与する各中継者は、クライアント650に応答660を送信する。クライアント650は、665で、暗号材料を再構成し、これは後に675でDATAを回復および検証するために使用される。例えばシャミア秘密共有方式などの閾値方式が、635における鍵および認証タグの分割に使用されてよい。一例として、3 out of 4方式を使用することが可能であり、その場合、4つのシャードのうちの任意の3つが、665における鍵および認証タグの再構成を可能にする。
次いで図7を参照する。
証明:クライアント705は、715で、データタイプ、g(TOKEN)およびlength(DATA)をコーディネータ710に送信し、ここでDATA要素のセットは、図6の620を介してクライアントによって受信されたものである。g(TOKEN)は、関係者クライアント705に以前供給されたTOKENの形態に対応し得る。一例として、トランスレータが、コーディネータ710と共通に保持されている鍵を使用し、かつ1回使用の初期化ベクトルを使用して、TOKENを一意に暗号化していることがあり、その結果、暗号文および可能性としては認証タグが生じ、それが初期化ベクトルと共にクライアント705またはクライアント705の代理に送付されている。コーディネータ710は、720で、自身のデータベースの管理で使用するためのアドレスを作成する。725で、コーディネータ710は、データタイプ、TOKEN、およびアドレス、またはそれらの何らかの形態もしくは関数を記憶する。725の処理は、以前にTOKENに適用された関数gの効果を逆にする、または除去することを含んでよい。730で、コーディネータ710は、735でクライアント705に送信される1つまたは複数の権限付与を生成する。そのような権限付与は、図6の640で、図6で610として表される証明を行うクライアントから中継者615の1つまたは複数に送信される。
要求:クライアント740は、745で、データタイプおよびg(TOKEN)をコーディネータ710に送信する。g(TOKEN)は、関係者クライアント740に以前供給されたTOKENの形態に対応し得る。一例として、トランスレータが、コーディネータ710と共通に保持されている鍵を使用し、かつ1回使用の初期化ベクトルを使用して、TOKENを一意に暗号化していることがあり、その結果、暗号文および可能性としては認証タグが生じ、それが初期化ベクトルと共にクライアント740またはクライアント740の代理に送付されている。750で、コーディネータ710は、データタイプおよびTOKENに基づいて1つまたは複数のアドレスを引き出す。750の処理は、以前にTOKENに適用された関数gの効果を逆にする、または除去することを含んでよい。755で、コーディネータ710は権限付与を作成する。図6の640で証明を行うクライアントによってどのように暗号材料構成要素が中継者615に分散されたかによって、要求元クライアント740によって受け取られる証明ごとに複数の権限付与があることもあり得、その場合、そのような各権限付与は、図6の要求655において中継者615の少なくとも1つと共に使用することが意図される。これらの権限付与は、760でクライアント740に送信される。証明識別子(AI)は、ブロックチェーンに提出されてよい。要求元クライアント740は、その場合、図6の動作675を行うために必要とされるIVを生成するために、そのブロックチェーンからAIを取り出すことができる。代替または追加として、AIは760で送信されてもよい。715および760におけるlength(DATA)は、オプションのフィールドである可能性がある。暗号文が、例えば図6の640で中継者に分散された暗号文のチャンクの長さを均等にするために、証明を行うクライアント610によってEKey(DATA)の結果に付加されたパディングを含む場合、そのようなパディングは、図6の675における解読の前に図6の665で要求元クライアント650によって除去されなければならない。図7の760で受信したlength(DATA)を使用して、要求元クライアントは、図6の660で受信されたものから再構成された暗号文のうちどの部分を図6の675における解読への入力として使用するかを判定することができる。図6の630で、メタデータなどの、DATA以外の追加的なフィールドに暗号化が適用された場合、例えばlength(DATA)の代わりにlength(DATA||metadata)を利用することによって、それが考慮に入れなければならず、ここで||は連結を意味する。
次に、第1の関係者が、ある特定のエンティティに関連付けられているとされるそのエンティティの電話番号などのデータ値を、確証のために、すなわち、第2の関係者が当該データ値を前記特定のエンティティに関連付けられているとみなすかどうかを判定するために検査する使用事例に対する、全面的な解決法の求められる性質を考察する。ここで、検査はサーバとの双方向通信を伴う。
1.フィッシングへの耐性:第1の関係者は、第2の関係者のデータ値に対するサブミットされたデータ値の一致があるかどうかだけを知る。
2.サーバの無認識性:サーバは、第1の関係者がオプションの後続通信を送らない限り、かつその時まで、第1の関係者の問合せの基礎となるサブミットされたデータ値が第2の関係者のデータ値と一致するかの判定を実行することができない。
3.偽陽性の防止:暗号化前のデータ値をカプセル化する第1の関係者による可能な正当なサブミットの空間が、推量される可能性が低くなるのに十分に大きい限りにおいて、サーバが正当に働いているか否かに関係なく、第1の関係者が一致の偽陽性の指示を受け取る見込みが低い。
4.サブミットされたデータ値のプライバシー:第1の関係者とサーバとの間の通信の傍受者が、第1の関係者のデータ値の判定を実行することができない。
5.第2の関係者のデータ値のプライバシー:第1の関係者とサーバとの間の通信の傍受者が、第2の関係者のデータ値の判定を実行することができない。
オプションの後続通信:
好ましくは、サーバがプライベート鍵を所有し、かつ第1の関係者が対応する公開鍵の知識を有する、対称暗号化関数または公開鍵暗号化関数のいずれかを使用して、第1の関係者が、サーバが第1の関係者によって以前送られた問合せを複製するのを可能にするために必要な変数を、サーバに通信する。これは、以前に第1の関係者によって送られたデータ値が第2の関係者のデータ値と一致するかどうかをサーバが判定できるようにする1つの手段である。好ましくは、第1の関係者は、同じ問合せを生じさせるであろう第2のデータ値の判定を実行することはできない。
性質1だけを満たせば十分と考えられるシナリオでは、それは、問合せの中にカプセル化されているデータ値が第2の関係者に関連付けられたデータ値のカプセル化と一致するか否かにそれぞれ応じて、サーバSに単に第1の関係者Pの問合せに対して肯定または否定の応答をさせることによって実現可能であることに留意されたい。
プロトコルは、第1の関係者Pが、自身が保持しているデータ値が、特定の第2の関係者によって保持されているものと一致するかどうかを検証することを可能にし、これは、Pが保持しているデータ値のカプセル化を、サーバSに記憶されている、またはサーバSによりアクセス可能なデータ値のカプセル化と比較することによって推定される。機密性のある情報の場合、そのようなカプセル化の暗号化されていない平文表現の露出を最小にすることが望ましい。したがって、プロトコルは、意図される受信側関係者Pへのそのような平文を回復する能力を制約する。さらに、プロトコルは、悪意ある関係者Pが、関係者Pによりその問合せの中でサブミットされたものとは別個のデータ値を反映する、悪意のないサーバSのカプセル化されたデータ値にアクセスすることを阻止する。これは、そのようなカプセル化に対して確率的または非決定性の準同型演算を行うことによって実現される。さらに、Pが、Pの情報の肯定的な確証がそのような動作のリスクを低減する、またはそのような動作を引き受けることが及ぼし得る不利な影響の軽減を助けると考えられることに基づいて、リスクのあり得る動作を引き受けてもよいと考える場合がある。したがって、サーバSが、特定の第2の関係者に関連付けられたカプセル化の中にあるものと実際には一致しないデータ値に基づいて、問合せに対して一致を模倣するように自身の挙動を操作することに成功するのをプロトコルが防止することは、有利であると考えられる。プロトコルは、よって、偽陽性に相当する応答の犯罪行為に対して耐性を有する。
加法ならびにスカラー乗法の準同型をサポートする暗号化/解読方式(Epk,Dsk)の例の参考として:Paillier,Pascal(1999),“Public-Key Cryptosystems Based on Composite Degree Residuosity Classes,” EUROCRYPT,Springer,pp.223-238,doi:10.1007/3-540-48910-X_16;https://crypto.stackexchange.com/questions/36998/equality-checking-using-additive-homomorphic-encryption(このすべてはこの参照により本明細書に完全に取り込まれる)。
次いで「偽陽性を起こしやすいプロトコル」についての図8を参照すると、関係者P805が、810で、以下に定義されるような加法ならびにスカラー乗法準同型をサポートする何らかの暗号化/解読方式(Epk,Dsk)のための公開鍵/秘密鍵のペア(pk,sk)を生成する(例えばPascal Paillierの方式を利用することによって可能にされる)。加法準同型- Dsk[Epk(x)+pk(y)]=x+yとなるような演算+が存在し、ここで、+は平文の群の中で定義される加算であり、そして、スカラー乗法準同型- Dsk[x*pk(y)]=x*yとなるような演算*が存在し、ここで*は平文の群の中で定義される乗算である。関数はここでは、+および*のみを使用して評価できる場合、hom-computableと表されることに留意されたい。関係者P805は、815で、サーバS820によって保持されているデータ値のカプセル化cに対するPの問合せであるc’を暗号化し、ここで、c’およびcは、それぞれPのデータ値およびSのデータ値のカプセル化を表す。P805は、825で、pkおよびEpk(c’)をサーバS820に送付し、秘密鍵skはプライベートに保たれる。S820は、830で、rを生成し、これは好ましくは、適度に大きい集合から均一にランダムに選択された整数である。通例、S820は、835で、自身のデータ値のカプセル化cを暗号化し、r*(Epk(c),Epk(c’))を算出し、ここで、gは、S820とP805の両方に知られているhom-computable関数であり、*は、Dskの下にある平文に対するスカラー乗算の原像である。gの例として、g(x,y)=x-yでは、-は、準同型加算の逆に類似し、g(x,y)=x+yでは、+は上記のように定義される。しかし、図8は、Sが悪意を持って行動し、したがって自分自身のcに代えて受信したEpk(c)を使用する事例を表している。S820は、840で、P805にr*(Epk(c),Epk(c))を送る。関数g、または平文の空間内でDsk下にあるgの像が、交代性質を有さない場合(ただし、交代性質はすべてのxについてg(x,x)=0と定義される)には、進む。そうでない場合は、続く関数hの適用をスキップする。S820は、840でh(r)を送信するか、または代替としてh(r||c’)をP805に送り、ここで、hは、SとPの両者によって効率的に算出可能な一方向関数であり、好ましくは、任意のサイズまたはビット長のデータを固定のサイズまたはビット長のデータにマッピングするものである(例えば暗号ハッシュ関数)。hの例として、h(x)=HSHA-256(x)およびh(x)=HMACSHA-256(key,x)であり、ここで、keyはP805とS820との間で共有される秘密であり、SHA-256は、NIST FIPS-PUB 180-4(セキュアハッシュ標準)に指定される通りである。P805は、845で、Dsk[r*(Epk(c’),Epk(c’))]=r*g(c’,c’)を算出し、ここで、gは平文の空間内でDsk下にあるgの像と定義される。gが、すべてのxについてg(x,x)=0と定義される交代性質を有する場合は、850に進む。そうでない場合は、855に続く。P805は、850で、845からの結果が0に等しいことを検証する。Sは悪意を持って行動しているため、c≠c’であるが、P810はc=c’とみなす。通例、P805は次いで、855で(g[c,c’])-1を算出し、続いてr’=r*g(c,c’)*(g[c,c’])-1を算出する。明らかなように、c’=cであれば、r’=rである。そうでない場合、P805は、rに等しくないランダム値を算出する。しかし、S820は悪意を持って行動しているため、それらは偽陽性を得、r’=rとみなすことになる。P805は、860で、840で送付されたh(r)(または代替として実装の選択によっては、h(r||c))が、855で算出された値に適用されたh(可能性としてはc’と連結されている)と一致することを検証する。一致する場合は、S820が予想されるように振舞っていれば、c=c’となる。そうでない場合は、Sが予想されるように振舞っていれば、c≠c’となる。しかし、Sは悪意を持って行動したため、Pは再び偽陽性を受け取り、一致があったとみなすことになる。gが、840で定義される交代性質を有さない場合は、ここで終了する。
次いで「基本プロトコル」についての図9を参照すると、関係者P905が、910で、加法ならびにスカラー乗法準同型をサポートする何らかの暗号化/解読方式(Epk,Dsk)のための公開鍵/秘密鍵のペア(pk,sk)を生成する(例えばPascal Paillierの方式を利用することによって可能にされる)。加法準同型:Dsk[Epk(x)+pk(y)]=x+yとなるような演算+が存在し、ここで、+は、平文の群の中で定義される加算である。スカラー乗法準同型:Dsk[x*pk(y)]=x*yとなるような演算*が存在し、ここで、*は平文の群の中で定義される乗算である。関数はここでは、+および*のみを使用して効率的に算出できる場合、hom-computableと表されることに留意されたい。P905は、915で、f(c’)を算出し、その結果を暗号化し、ここで、c’は、S920のデータ値のカプセル化cに対するPの問合せのデータ値のカプセル化であり、fは、何らかの鍵付き関数であり、秘密kが、P905によって所有され、好ましくは適度に大きい集合から均一にランダムに選択され、それは一方向であり、S920およびP905の両方によって効率的に算出可能であり、暗号ハッシュ関数よりも好ましい。fの例として、f:f(x)=HSHA-256(x||k)およびf:f(x)=HMACSHA-256(k,x)である。P905は、925でpkをサーバS920に送付し、秘密鍵skはプライベートに保たれる。P905は、925で、Epk[f(c’)]をS920に送る。S920は、930で、rを生成し、これは好ましくは、適度に大きい集合から均一にランダムに選択された整数である。S920は、935で、第2の関係者に関連付けられたデータ値のカプセル化cを暗号化し、r*(Epk(c),Epk[f(c’)])を算出し、ここで、gは、S920とP905の両方に知られているhom-computable関数であり、*は、Dskの下にある平文に対するスカラー乗算の原像である。gの例として、g:g(x,y)=x-yであり、ここで-は準同型加算の逆に類似し、g:g(x,y)=x+yであり、ここで+は前と同様に定義される。S920は、940で、r*(Epk(c),Epk[f(c’)])をP905に送る。S920は、940で、h(r)または代替としてh(r||c)もP905に送り、ここで、hは、S920とP905の両方によって効率的に算出可能な一方向関数であり、好ましくは暗号ハッシュ関数である。hの例として、h:h(x)=HSHA-256(x)およびh:h(x)=HMACSHA-256(key,x)であり、ここでkeyは、P905とS920との間で共有される秘密である。P905は、945で、Dsk[r*(Epk(c),Epk[f(c’)])]=r*g(c,f(c’))を算出し、ここでgは平文の空間内でDsk下にあるgの像である。P905は次いで、950で、(g[c’,f(c’)])-1を算出し、続いてr’=r*g(c,f(c’))*(g[c’,f(c’)])-1を算出する。明らかなように、c’=cであれば、r’=rである。そうでない場合、P905は、rに等しくないランダム値を算出する。P905は、955で、940で送付されたh(r)(または代替として、実装の選択によっては、h(r||c))が、h(r’)(可能性としてはc’と連結されている)と一致することを検証する。一致する場合は、確実にc=c’となる。そうでない場合は、S920が予想されるように振舞ったと仮定してc≠c’となる。
次いで「事後プロトコル-オプション1」についての図10を参照すると、1つの手法によれば、これは、準拠している関係者のc’が、サーバSからの応答の基礎になるcと一致するときにのみ実行されるべきである。関係者P1005は、1015で、図9の950からのr’をサーバS1010に送る。S1010は、1020で、r’を、図9の930で生成された自身のrと比較する。それらの値が一致する場合、図9におけるP1005の問合せは、結果として、S1010において第2の関係者に関連付けられたデータ値のカプセル化cに対するヒットを生じさせている。そうでない場合は、P1005の問合せとデータ値のカプセル化cとの間の関係について何も判定することができず、P1005は悪意のある挙動を示している。
次いで、どのようなシナリオでも実行されることが可能な「事後プロトコル-オプション2」についての図11を参照する。サーバS1105は、1110で、可能性としてはpk*=sk*となるように、暗号化方式(Epk*,Dsk*)を生成する。S1105は、1120で、pk*を関係者P1115に送付する。P1115は、1125で、Epk*(c’),Epk*(k),Epk*(r),...,Epk*(r)を算出し、ここでc’は図9の915と同様であり、kは、図9の915でf(c’)を算出するためにP905によって使用された鍵であり、r,...,rは、図9の915においてEpk[f(c’)]の算出に関与したすべてのランダム値である。r,...,rに対する算出は、Epkが確率的である場合にのみ関連する。P1115は、1130で、1125からのすべての算出結果をS1105に送る。S1105は、1135で、1130で受信されたすべての材料を、sk*を使用して解読する。S1105は、1140で、関連する場合はr,...,rを使用してEpk[f(c’)]を算出し、1145で、この値を、図9の925で受信された値と比較する。それらの値が一致する場合、1135における解読を介して算出されたc’が、S1105によって保持されているcと等しい場合かつその場合に限り、図9におけるP905の問合せは正確であったことになる。そうでない場合は、P1115の問合せとデータ値のカプセル化cとの間の関係について何も判定することができず、P1115は悪意のある挙動を示している。
上述の初期データソースに関連付けられたデータ情報から導出されるトークン、または上述の初期データソースに関連付けられたデータ情報のトークン化に関して、すなわち、INFOをTOKENに変換することが可能なデータトークン化システムを介してこれを可能にすることは:関係者に、あるエンティティに関連付けられたデータへのアクセス権が付与され、ここで、データ、またはデータとデータへのエンティティの関連付けとの組み合わせがINFOと表される。下記のトークン化の実施形態は、2つのサーバまたはプロセッサを考慮する使用事例のみをカバーするが、他の実施形態は、異なる数のサーバを利用することができる。
TOKENを生成する全面的な解決法の求められる性質。ここで、用語「バックエンド」は第1のサーバまたはプロセッサを指し、用語「トランスレータ」は第2のサーバまたはプロセッサを指す。
1.所与のINFO値は、TOKEN生成処理の最中またはその後に関係者の外部に露出されてはならない。
2.INFO→TOKENのマッピングは、(a)INFO値で開始しようと、TOKEN値で開始しようと、すべてのプロセッサ秘密へのアクセスなしには受動的な敵対者による再現が不可能でなければならず、(b)1対1の対応関係でなければならず、(c)バックエンドとトランスレータの組み合わせによって永続的に再算出可能でなければならない。
3.所与のINFO値について、TOKENの表現は、関係者データベースにわたって相関してはならず、すなわち、追加的な情報なしでは、別々の関係者に記憶されたTOKEN表現のリスト間の交差を判定することが算出的に実現不可能でなければならない。
4.プロセッサの構成要素に関する危殆化は、構成要素の危殆化の時間と時間の間に敵対者によって連続性が維持されない限り、無効果でなければならない。そのようなプロセッサ構成要素は、プロセッサのパーティションの形態を取ることがあり、各パーティションは、それに対応するパーティションには入手不可能である暗号鍵材料を利用する。
5.敵対者がINFO→TOKENの一致させたリストを作ることを防止することが好ましい。
6.INFOを「平文」と考え、TOKENを「暗号文」と考えると、既知のまたは選択された平文攻撃に対する、ならびに既知のまたは選択された暗号文攻撃に対する回復性を保証することが好ましい。すなわち、いくつかのINFO-TOKENペアを知ることが、別のINFO値をそのTOKEN値にマッピングする、または別のTOKEN値をそのINFO値に逆転する助けになってはならない。これは、最後から2番目の形態のTOKENが供給される、すなわち、一方向ハッシングがTOKENの作成で使用される場合にその値が一方向ハッシングの適用の直前にある場合でも、当てはまらなければならない。
7.どの関係者またはプロセッサも、INFO値およびそれに対応するTOKEN値の両方へのアクセス権を有さないことを保証することが必要である。また、どの関係者またはプロセッサも、INFO値と、そのINFOに対応するTOKENを要求した関係者の身元または偽名との両方へのアクセス権を一方向に得ることができないことを保証することも必要である。
結果得られるTOKEN(これは各自のINFOの原像を正確に表す)は、証明および証明に対する要求の目的のトランザクション処理を保証するために有用である。同じINFOの再発生は、実際のトランザクション処理(コーディネータを伴う)の時点で一致させることができるが(INFOの露出なしに)、その他の場所で一致させることはできない(トランスレータを除く)。関係者に固有のTOKENの暗号化された先行値(predecessor)のみが、トランスレータおよび実際のトランザクション処理の外部に現れる。
提案されるトークン生成プロトコルの目標:正当なINFO値のセットを使い尽すことが算出的に実行可能であり得ることにもかかわらず、INFOを効果的にサニタイズすること。このトークン化を達成するために、トークン生成バックエンドプロセッサ、およびトランスレータと表されるコーディネータフロントエンドプロセッサを導入することができる。コーディネータは、ここに詳述される提案によって生成されるTOKEN値を利用するトランザクション処理を扱う役割を担う。
1つの好ましい実施形態では、所与のINFO値のそのTOKEN値へのマッピングは、バックエンドのペアになった2つのパーティションと、トランスレータのペアになった2つのパーティションとで保持されるPohlig-Hellman鍵の累積的知識に依存する。より一般的には、互いと、および/または関係者と、および/またはトランスレータと通信する2つのバックエンドプロセッサなどの、所与のタイプのプロセッサが複数あり得る。
次いで図12(a)を参照して、バックエンド1 1207およびバックエンド2 1209の2つのバックエンドプロセッサが、関係者1201によって提供された2つの別個の入力それぞれに対して異なるPohlig-Hellman鍵を使用してそれぞれ動作する場合を考察する。例えば、バックエンド1 1207が、1203で受信されたjPに働きかけ、バックエンド2 1209が、1205で受信された(1-j)Pに働きかけ、ここでPはINFO値を表す。そして、バックエンド1 1207およびバックエンド2 1209は、1211におけるbbjPおよび1213におけるbb(1-j)Pからなる各自の中間結果を交換する。そして、各々が、前と同じPohlig-Hellman鍵、すなわち、それぞれbbおよびbbを再び使用して動作する。トランスレータ1220が、1219を介して、2つのバックエンドプロセッサの最終結果、すなわち、1215で関係者1201に送られたbbbb(1-j)Pおよび1217で関係者1201に送られたbbbbjP、を受信した場合は、可能性としては自分自身のPohlig-Hellman鍵ttを適用する前に、トランスレータ1220は、1221でそれらを加えて、カスケード式にPに働きかけた両方のバックエンドプロセッサの結果bbbbPを導出することができ、ただし、Pはどちらのバックエンドプロセッサにも露出されることがない。また、1221に示されるように、トランスレータ1220は、1223で結果をコーディネータ1225に通信する前に、好ましくは一方向のハッシュ関数を適用することができる。バックエンド1 1207およびバックエンド2 1209の各々は、トランスレータ1220によるエンドツーエンドアクセスのために自身の最終結果を暗号化することができ、その場合、バックエンドからトランスレータ1220への通信が関係者1201を通過することによって行われても、関係者1201はそれら最終結果にアクセスしない。代替として、バックエンド1 1207およびバックエンド2 1209は、最終結果が関係者1201に伝送される際に暗号化される場合でも、関係者1201がそれらにアクセスする(そしてそれらを共に加える)ことができるようにして、最終結果を関係者1201に通信してもよい。さらに、バックエンド1 1207はバックエンド2 1209を介して通信できる(またはその逆)という意味で、バックエンド1 1207およびバックエンド2 1209は両方とも、関係者1201またはトランスレータ1220に直接通信する必要がないことに留意されたい。そのような場合、送信は、下にある結果/データ/メタデータが通過されるバックエンドからアクセス可能でないように、保護することができる。
次いで図12(b)を参照すると、ここに描かれるプロセスは、図12(a)と同じ結果をもたらすが、ここではバックエンド2 1235が、バックエンド1 1231が1229を介して関係者1227からバックエンド1 1231により受信されたPに直接働きかけた1233の中間結果bbPに働きかけて、bbbbPを生成し、それが1237で関係者1227に送信される。したがって、ここでは、図12(a)とは異なり、Pはバックエンド1 1231に露出される。トランスレータ1240は、1239を介してbbbbPを受信し、1241でTOKENを生成する。TOKENは、1243を介してコーディネータ1245に提供される。さらに、図12(a)および図12(b)では、バックエンドおよびトランスレータの一方が同じ権限の下にあり得、その権限はINFO値もP値も知ることがないことに留意されたい。これは、図12(c)に描かれるように、逐次的な処理を回避するために2つのバックエンドが同じPohlig-Hellman鍵を所有していた場合には該当しない。
次いで図12(c)を参照すると、関係者1259がbbjPおよびbb(1-j)Pの両方を暗号化されていない形態に回復することができ、よってそれらを共に足すことができる場合、トランスレータ1262は、1261を介してbbjPおよびbb(1-j)Pを受信するか、または可能性としては、それら2つの楕円曲線点の和、すなわちbbPを受信し、1263でTOKENを生成する。TOKENは、1265を介してコーディネータ1267に提供される。関係者1259は、1247でバックエンド1 1251にjPを提供した後、1255でバックエンド1 1251からbbjPを受信する。同様に、関係者1259は、1249でバックエンド2 1253に(1-j)Pを提供した後、1257でバックエンド2 1253からbb(1-j)Pを受信する。関係者1259は、トランスレータ1262が最終的に使用するために意図される形態で値bbjPおよびbb(1-j)Pのいずれかまたは両方を受信し得、この形態は関係者1259が実際の値を回復することを許容しない。
図13、図14、および図15は、図12(a)、図12(b)および図12(c)に描かれる実施形態と異なり、同じP値の複数のインスタンスを差異化する、ランダム化されたブラインドファクタが関係者によって除去される(ならびに開始される)実施形態を描いている。また、図12(a)、図12(b)および図12(c)に描かれる実施形態と異なり、図13には1つのみのバックエンドが描かれている。
次いでTOKENの生成の代替実施形態としての図13を参照すると、エンティティまたはデータ所有者1310が、関係者1315に情報を提供し、その情報から、関係者1315は楕円曲線点Pを導出する。Pは、前に解説したようにINFOを表し得る。関係者1315は、ブラインド/隠蔽ファクタlを使用してPをブラインドして、1320でバックエンド1325に送信されるlPを生成する。1330でバックエンド1325からbblPを受信すると、関係者1315はブラインドファクタlを除去し、その結果得られた値bbPを1335でトランスレータ1340に送信する。関係者1315は、1345で、トランスレータ1340からEnc_TOKENを受信する。Enc_TOKENはコーディネータ1350と併せて使用され得、ここで、好ましくは、Enc_TOKENからTOKENを回復するためにコーディネータ1350が備えられる。TOKENは、1342でトランスレータ1340によって導出され、Enc_TOKENは、暗号化機構を介してTOKENからトランスレータ1340によって導出されることに留意されたい。1330により、bblPはインスタンスごとに一意であり、一方、1335により、bbPはそうでない。好ましくは、関係者1315がbblPからlを除去し、その結果bbPが得られた直後に、bbPは、1335でトランスレータ1340に送信するために一意に暗号化される。そのような暗号化されたバージョンは、関係者1315に関連付けられたデータベースに記憶されてよく、各関係者において異なって見える。そのような暗号化されたバージョンは、必要があれば、トランスレータ1340に再送されてよい。そのような必要性は、例えば、Enc_TOKENを作るためにトランスレータ1340によって使用された暗号鍵が更新された場合に発生することがある。1345のEnc_TOKENは、例えば、暗号鍵が再使用される場合でも一意の初期化ベクトルの使用に基づいて、トランスレータ1340によってインスタンスごとに一意に算出され得る。Enc_TOKENを作るために使用された暗号鍵、およびその鍵が更新された場合にはその後続値(successor)は、関係者1315には入手可能にされないまま、トランスレータ1340とコーディネータ1350との間で共有されてよい。トランスレータ1340およびコーディネータ1350が組み合わせられる(これは暗号化の流れおよび/または使用もしくは不使用に影響し得る)などの変形例が可能であることに留意されたい。
不正行為属性トークンであるFATOKENに対する要件は、TOKENに対するものとは異なるため、FATOKENは、逐次処理ではなく並列処理を介して生成することができる。何故ならば、関係者によるブラインドファクタlの除去は、トークン生成手順またはプロトコルのセキュリティの確定されたレベルに悪影響を与えることなく、安全に遅らせることができるためである。この場合、図13のTOKEN生成手順またはプロトコルと異なり、FATOKENの最終値の生成は、トランスレータではなく関係者で行われる。
次いでFATOKENの生成についての図14を参照すると、エンティティまたはデータ所有者1410が関係者1415にデータを提供し、このエンティティまたはデータ所有者1410は、データの所有者のふりをしている詐欺者であり得る。そのような受信データの1つまたは複数の要素を関係者1415によって使用して、P,...,Pと表されるデータ属性を表すP値を生成することができる。1420を介して、関係者1415は、P,...,Pのブラインドバージョン、すなわちlP,...,lPを、まとめて1425と表されるバックエンドXおよびバックエンドYの両方に送る。バックエンドXおよびバックエンドYは、並列に動作して、それぞれ、1430で関係者1415に送信されるbblP,...,bblPおよびbblP,...,bblPを生成することができる。1435で、関係者1415は、i=1~kについてbblPおよびbblPの各ペアに対して算出を行って、FATOKEN値を生成する。バックエンドXおよびバックエンドYは、単独で動作しており、またブラインドファクタlがそれらに未知のままであれば互いと共に動作することさえあるが、どちらも、1430でFATOKENを自身の寄与に相関付ける能力を持たないことに留意されたい。FATOKENは、関係者1415によりレジストリ1440と併せて使用されてよく、レジストリ1440は、この文脈では不正行為属性レジストリとみなされてよい。そのような使用の1つは、関係者1415がFATOKENを証明する、または要求することを伴う。要求の処理中に、レジストリ1440は、リクエスターの役割内で動作する要求元ネットワーク要素によって行われた要求の一部としてサブミットされたFATOKEN値の、アテスターの役割内で動作する要求元ネットワーク要素によりまたはその代わりに以前にサブミットされた証明を介した、確証を示す情報を戻してよい。図5および図7に描かれる証明および要求と異なり、要求はここでは、TOKEN値のどのような関数も組み込む必要はないことに留意されたい。さらに、ここでのデータタイプは、ラベル付きまたはラベルなしとして指定されてよい。
次いで、混合型のトークン生成手順または混合型のトークン生成プロトコルについての図15を参照すると、TOKENの生成とFATOKENの生成の両方が対応される。1510は、正当なエンティティもしくはデータ所有者に対応する場合も、または不正を働いている、すなわち詐欺者として動作している可能性のあるものに対応する場合もある。関係者1515は、TOKENを取得または使用することに関与するものとしての関係者を表し、一方、関係者1520は、FATOKENを取得または使用することに関与するものとしての関係者を表している。1535および1540は、プロセッサがそれぞれ図13のバックエンド1325または図14の1425におけるバックエンドXとして動作することを表している。1560および1540は、プロセッサがそれぞれ図13のトランスレータ1340または図14の1425におけるバックエンドYとして動作することを表している。1570および1575は、プロセッサがそれぞれ図13のコーディネータ1350または図14のレジストリ1440として動作することを表している。1525および1555は、TOKENの生成に関する関係者からの送信を表し、一方、1530は、FATOKENの生成に関する関係者からの送信を表す。1545および1565は、それぞれバックエンドまたはトランスレータとして動作する発信元プロセッサからのTOKENの生成に関する送信を表す。1550は、バックエンドXまたはバックエンドYとして動作する発信元プロセッサからのFATOKENの生成に関する送信を表す。
以下の解説は、TOKENの生成により詳細に着目する。しかし、主要な原理は、FATOKENの生成にも適用可能である。Diffie-HellmanまたはPohlig-Hellmanのプライベート鍵を介して作用されることになる値の受信者は、NIST Special Publication 800-56Ar3仕様に従った適当な公開鍵の有効性確認ルーチンを実行する。1つの手法によれば、公開鍵の有効性確認は、マシンが、外部ソースから(例えばプロセッサパーティションからプロセッサパーティションへ、関係者からプロセッサへ、またはプロセッサから関係者へ)、そうであるとされる楕円曲線点を受信し(可能性としてはローカルでの解読の後に)、スカラー乗算を介してそれに働きかけることを意図するたびに、行われなければならない。ここで検討される文脈では、P-256の仕様を理由として、必要とされる唯一の検査は、受信された値が特定の意図される曲線上の点に対応することを確かめることである(楕円曲線はここでは例として使用される)。ECDSAデジタル署名の受信者は、好ましくは、ある関係者から発信されたとされる(例えば要求タイプによって示される)要求に対する動作を取る前に、その署名と署名者の主張される権限とを検証する。一例として、あるプロセッサパーティションが、信頼できるルートまでつながっている公開鍵証明書を検証し得、ここで、その公開鍵証明書は現在有効であり、対象の公開鍵を、ある関係者によって所有されているものと識別し、その対象の公開鍵が要求の署名を検証するために使用される。HMAC値が受信されたときには必ず、その値が、ローカルで算出されたHMAC値と一致するかどうか単独で検査される。HMAC(Hashed Message Authentication Code)は、データの完全性および、HMAC鍵の知識を有するものとしてのエンティティの認証を検証するための、対称鍵に基づく機構例である。トークン生成プロトコルは、プロセッサパーティション間(または仲介ゲートウェイを通る)、および/または関係者とトークン生成者間(プロセッサまたはフロントエンドからプロセッサとしての)、および/または関係者とコーディネータまたはレジストリとの間の直接のトランスポートレベルのセキュリティ(存在する場合)だけに依拠しないように、徹底したセキュリティを提供しようとするものである。Pohlig-Hellman暗号およびワンパスDiffie-Hellman鍵交換が、下記で最も優先的に使用される。トークン生成プロトコル全体を通じて、達成される必要がある性質のため、ランダム化された動作と決定的動作との組み合わせが採用される。TOKEN生成の場合、目標は、各INFOが毎回同じTOKENを生じさせるようにトークン生成プロトコルの全体的な効果が決定的なものになるようにすることである。しかし、ランダム化は次の理由から採用される。すなわち、INFOをバックエンドから隠すため(バックエンドパーティションによる変形の後にそのようなランダム化を除去することが安全になるまで)、パーティション間の通信を傍受者から不可視化するため、パーティション間の鍵確認鍵の知識を、プロセッサパーティションの1回限りの危殆化を介しては入手できないランダマイザ出力の知識に依存させるため、である。パーティション間通信の傍受者は、以前に処理された入力の処理を、これまでに一度も処理されたことのない入力の処理から区別することができない。関係者によるINFOのランダム化された隠蔽は、バックエンドに、それが以前に「見られた」INFOを処理しているか否かを認識させないためにも有用である可能性がある。例えば、バックエンドによる、差のある結果を生じさせる同じINFOの処理は、監査時に異常としてフラグが立てられてよい。一般に、各プロセッサは、一体構造である場合も、または2つ以上のパーティションに分割されている場合もある。ここで、プロセッサ(バックエンドおよびトランスレータ)をそれぞれ2つのパーティションに分割することができ、ここで、パーティションは好ましくは、セットアップ時に対応するパーティションとペアにされた、それぞれ独立してセキュリティが確保されたモジュールである。悪意のない事例では、両方のパーティションが同じ結果を生成する。これは、サービス品質に関して検査され得る。しかし、このことは、関係者が必ずしもデータのコピーを2つ受信することを示唆するものではない。実装が2つのプロセッサ、すなわちバックエンドおよびトランスレータを伴う場合、所与のINFOのそのTOKENへのマッピングは、バックエンドのペアにされた2つのパーティションおよびトランスレータのペアにされた2つのパーティションで保持されているPohlig-Hellman鍵の累積的知識に依存し得る。
楕円曲線Pohlig-Hellman暗号を使用して、アリスは、公開楕円曲線上の所与の(平文)楕円曲線点Pを最終的にボブに通信したい。次いで図16を参照すると、アリスとボブが共有秘密lを有しており、ここで、lは、1とn-1との間の整数(両端の数を含む)であり、nは、Pの素数位数である。これはアリスとボブの間で共有秘密を必要とするため、Pohlig-Hellmanは対称鍵暗号であるが、楕円曲線Diffie-Hellman(ECDH)鍵一致や楕円曲線デジタル署名アルゴリズム(ECDSA)などの非対称/公開鍵暗号アルゴリズムに共通の楕円曲線スカラー乗算を利用する。1610で、アリスがPを選択し、Q=lPを算出し、その値をボブに送る。1620で、ボブがl-1 mod nを適用することにより、受信した値Qを解読して、Pを回復する。
次いで図17を参照すると、アリスは、暗号文Qをボブに通信したいが、ボブに平文Pを回復してほしくない。ここで、整数kは、アリスだけが知っている秘密である。1710で、アリスはPを選択し、Q=kPを算出し、Qをボブに送る。1720で、ボブは値Qを受信するが、kの知識を持っていないため、Qを解読することはできない。
次いで図18を参照すると、3つの行為者、すなわち、関係者、バックエンド、およびトランスレータがいる。これら3つの行為者は、TOKENを作成または生成するために相互と対話することができる。関係者は、図16の楕円曲線Pohlig-Hellman暗号を適用し、1810では選択、生成、または導出されたPの値に対する暗号化の役割を果たし、1830では1820の結果に対する解読の役割を果たす。バックエンドとトランスレータは両方とも、図17の一方向楕円曲線Pohlig-Hellman暗号を適用し、それを1820では1810の結果に、1840では1830の結果にそれぞれ適用する。関係者における暗号化および解読動作の効果は、INFOを表すものとしてのPを、その値に最終的に影響することなく、バックエンドからブラインドすることである。すなわち、1810、1820、および1830からなる3部の動作を、同じ関係者によってまたは複数の関係者にわたってその都度独立して開始される特定のINFO値に複数回実行すると、結果として、バックエンドだけがINFO値に直接働きかけたかのように、同じ値が生じる。一方向楕円曲線Pohlig-Hellmanを使用してINFO値からTOKENを作成することにより、元となったINFO値を、対応するTOKENから発見することが実行不可能であることを保証する。
アリスとボブは、互いとの間に共有秘密を確立したい。ボブが最初に動作して、公開鍵を作成し、それを公開する。この時点の後の任意の時に、アリスは、このプロセスの結果を使用して、ワンパス楕円曲線Diffie-Hellman鍵交換を介して2人の間の共有秘密を作成することができる。次いで図19を参照して、ワンパス楕円曲線Diffie-Hellmanをより具体的に説明すると、1910で、ボブが、比較的静的なプライベート鍵-公開鍵のペア[n,nG]を設定する。1920で、アリスが、一時的プライベート鍵-公開鍵のペア[n,nG]を算出し、nをボブの公開鍵に適用して、ボブとの間で共有される秘密を算出する。1930に描かれるようにボブが共有秘密を回復するための仕組みは、ボブがアリスの一時的公開鍵にnを適用するものである。図19に示されていないのは、アリスが、信頼される機構を通じてボブの公開鍵を受け取ることがあり得、よってそれが実際にボブに関連付けられていることが分かり、またボブは、アリスに関連付けられているとされる一時的公開鍵が実際にそうであることを確信し得ることである。ボブがその確信を得るためのそのような機構の1つは、アリスが、アリスに関連付けられていることがボブによって信頼される署名検証公開鍵に関連付けられた比較的静的な署名生成プライベート鍵を使用して、一時的公開鍵に署名するものである。トークン生成プロトコルの間、プロセッサが、図19のボブとして動作し、セットアップ中にそれらの公開鍵を作成する。関係者は、プロセッサとの共有秘密を利用して、プロセッサに情報をセキュアに通信し、プロセッサからセキュアに情報を受信するための鍵を導出または移送するために、図19のアリスとして動作する(ここで、関連付けられた初期化ベクトルと併せて、機密性保護のための暗号文に加えて完全性検証のために認証タグが利用されてもよい)。そのような情報の例には、関係者からバックエンドプロセッサに送られるINFOのブラインドバージョンと、関係者からトランスレータプロセッサに送られるバックエンドからの情報として関係者によって受信される中間TOKEN値の非ブラインドバージョンとを含む楕円曲線点が含まれ、トランスレータプロセッサは、エンドツーエンド暗号化の意図される対象に関係するトランザクション処理のために後に関係者が使用するようにエンドツーエンド暗号化されているTOKEN値からなる情報をもって、関係者に応答する。この意図される対象は、例えば、コーディネートネットワーク要素の役割内で動作するコーディネータであり得る。好ましくは検証可能な解読の結果、関係者によって回復される中間TOKEN値は、好ましくは検証可能に関係者から発信されるものとしてトランスレータに的を絞って送付するために暗号化される前に、例えばブラインドファクタを除去するために処理されてよい。
ランダム化共有秘密導出(RSSD)アルゴリズムは、Pohlig-Hellmanの算出を行うときに必ず、またはパーティションされたバックエンドもしくはトランスレータにおけるワンパスDiffie-Hellmanの受信者側で使用される。
・このアルゴリズムは、RSSD[x;Q;2]と表される。
・アルゴリズムを実行するプロセッサ(バックエンドまたはトランスレータ)は、2つのパーティションに分割される。
・各パーティションiは、
Figure 2022525137000002
を生成する。
・各パーティションiはxを所有し、x=(x,x)である。
・曲線E上の点Qが利用される。
次いで図20を参照すると、プロセッサが2つのサブプロセッサに区分される場合におけるRSSDのステップが示される。2020で、各パーティションiは、2010の自身のrをQに適用し、その結果を他方のパーティションに渡す。2030で、各パーティションiは、2020から受信した値に自身のxを適用し、その結果を他方のパーティションに渡す。2040で、各パーティションiは、2030から受信した値に自身の
Figure 2022525137000003
をプライベートに適用する。負荷平衡および/またはシステム回復能力の事例に、同じプロセッサタイプが、各々が所与のタイプのプロセッサを備える複数のパーティションペアを有する場合、各パーティションペアは関連付けられた番号を有さなければならないことに留意されたい。プロセッサパーティションは、そのパーティション番号{1}または{2}と、それが属するパーティションペア番号とからなるIDで識別される。
RSSDを実行してプロセッサ内での通信を保護するときに、以下のプロセスを使用することができる。渡されるデータにヘッダが追加され、ヘッダは、プロセッサパーティションIDおよびパスタイプ(Pohlig-Hellmanの場合はPH、Diffie-Hellmanの場合はDH)と、パス番号(例えば{PH2}または{DH1})とを含む。これは、このプロセッサの内部で現在のh鍵を使用してHMAC処理される。この結果は、データと共に渡されるHMACタグ:(データ,HMACh-key(データ||プロセッサパーティションID||PHまたはDH,およびパス#))である。例えば、パーティション1からパーティション2に送られるPohlig-Hellman算出の2回目のパスは次のようになる:(xQ,HMACh-key(xQ||{1}||{PH2}))。
上記の例は、同じプロセッサタイプのパーティションペアがいくつも存在しないことを仮定している。パーティションが、別のパーティションからそれに与えられるまたは関係者によって提供される任意の点に作用する前に、パーティションは公開鍵の有効性確認を行わなければならず、それは、この場合、その点が楕円曲線上にあることの検査のみを必要とする。
およびrによってここで提供される通信のブラインド(ならびに、後に解説するように構造rQを使用して鍵確認HMAC鍵を作る際のrおよびrの使用)の効果を最大にするために、r値およびr値は各々、ライブエントロピーソースの一貫した使用を通じて予測耐性を提供するランダムビットジェネレータ(RBG)の出力であるべきである。
RSSDアルゴリズムは、要約すると以下のように特徴付けることができる。静的な受信者側ワンパスDHまたは静的なPH暗号化を達成するセキュアマルチパーティコンピュテーション(SMC)方法。それにより、各パーティションは、(1)一時的Pohlig-Hellman暗号化を行い、それに続いて、(2)静的で一時的なDiffie-Hellman通信の静的な側を行い、それに続いて、(3)同時に適用される一時的Pohlig-Hellmanの解読および静的で一時的なDiffie-Hellman共有秘密導出の静的な側を行う。(3)では、この共同の算出が、例えばxQのスカラー乗数としてr -1 mod nを使用することによって最も効率的に行われることから、Pohlig-HellmanとDiffie-Hellmanが「同時に適用される」。2つのスカラーのモジュラー乗算は、楕円曲線点のスカラー乗算よりも算出的に大幅に効率的である(ただし(r -1 mod n)(xQ)=r -1(x(xQ)))。
バックエンドまたはトランスレータのk個のパーティションを扱う一般化されたランダム化共有秘密導出アルゴリズムを利用することができる。実装において:
・このアルゴリズムへの入力は、RSSD[x;Q;k]と表される。
・アルゴリズムを実行するプロセッサ(バックエンドまたはトランスレータ)は、k個のパーティションに分割される。
各パーティションiは、
Figure 2022525137000004
を生成する。
各パーティションiはxを所有し、x=(x,x,...,x)である。
・曲線E上の点Qが利用される。
次いで図21を参照すると、プロセッサがk個のサブプロセッサにパーティションされる場合におけるRSSDのステップが示される。2120で、各パーティションiは、2110の自身のrをQに適用し、その結果をパーティションi+1 mod kに渡す。2130で、各パーティションiは、2120から受信した値に自身のxを適用し、その結果をパーティションi+1 mod kに渡す。これに続いて、以下がk-2回反復される:各パーティションiは、2130から受信した最後の値に自身のxを適用し、その結果をパーティションi+1 mod kに渡す。2140で、各パーティションiは、2130から受信した最後の値に自身の
Figure 2022525137000005
をプライベートに適用する。
TOKENまたはTOKENのバッチが生成されるたびに行われるトークン生成プロトコルのステップを説明する前に、システムセットアップのための算出について以下で説明する。
次いで図22を参照すると、バックエンド2230の場合、初期の鍵材料、すなわち、好ましくはランダムまたは疑似ランダムに選択されたb=(b,b)およびbb=(bb,bb) mod n(ここでペアの各値は[1,n-1]の要素とみなされる)は、2210で、好ましくはセキュアに生成され、2220で、制御された環境内でプロセッサパーティションを実施してそれらをペアリングする際に使用するために、好ましくはセキュアに保持される。そのような制御された環境は、例えば通信が局地化されるシナリオなどにおいて、物理的なセキュリティ措置および/または多人数制御を要し得る。そのような制御された環境は、代替または追加として、例えば、セットアップ通信が可能性としてはオープンチャネルを通じて遠隔から行われる場合に、事前に設置された鍵の使用を要することもある。パーティション自体に共同して初期鍵材料を生成することをさせない図22に描かれる事例は、TOKEN値へのINFO値の一意のマッピングを犠牲にすることなく、複数のパーティションペアが、各々が所与のプロセッサタイプのプロセッサとして独立して動作できることから、負荷平衡を可能にし、入手可能性および回復可能性を保証するために有用である(図22でバックエンドのプロセッサタイプを描いているところでは、トランスレータのプロセッサタイプが同じように扱われ得ることを理解している)。分散ステップは、自身の鍵を回復させることを必要としない単一のパーティションペアしか存在しない場合には不必要とみなされてよい。関係者は、どのパーティションペアが実際に各自の要求を処理するかを認識しないままでいることができる。パーティションのセキュリティのために、各パーティションペアは、2240でRSSD[e;G;2]を実行してプロセッサペアの内部共有秘密を作成することができ、ここで、e=(e,e)は、ランダムに選択された、各々が[1,n-1]内にある一時的値eおよびeからなる。退化型のRSSD[e;G;2]が使用される場合、すなわちr=1およびr=1の場合は、それらパーティションがそのパスをなくすようにプログラムされていれば、rGは通信される必要がない。2250で、各パーティションにおいてこの共有秘密からHMAC鍵h-keyを導出する(例えば、標準的な抽出および展開法を使用することによる)。これは、プロセッサ内のエンティティ認証およびペアにされたパーティション間でのデータ完全性のために規則的に更新され、使用されることになる内部HMAC鍵である。抽出および展開法は、2260におけるb、b、bb、およびbbを更新するためのセットアップ時にも使用され得る。この更新プロセスが、図24の2440に描かれる。単一のパーティションペアしかない場合には、2260で以下が起こり得る。各パーティションiが、[1,n-1]の中で選択されたランダムなbを生成し、回復のために必要とされるのに備えて、bがバックエンドのi番目のパーティションによってセキュアなオフラインストレージに保存され、それらのbは、後に変更されるためにローカルに保持され、積b mod nを変更されないままに保ち、バックエンドパーティションペアのi番目のペアは、2260で[1,n-1]の中で選択されたプライベート鍵bbも生成し、保持する。これらのbbは、Pohlig-Hellman暗号化を行うために使用される。これらをセキュアに保存することにより、TOKEN値の過去の生成との整合性が維持されるべき場合は、必要に応じて、システム回復時にPohlig-Hellman暗号文の複製が可能になる。任意のバックエンドパーティションペア(1つのみでも複数でも)が、2270でRSSD[b;G;2]を実行して、公開鍵B=bGを生成することができる。この公開鍵は、ワンパスDiffie-Hellman鍵交換のためにイニシエータによって使用される。注:bは、共有秘密を再構成するために、ワンパスDiffie-Hellmanの受信者側で使用される。上記で一時的共有秘密の生成に関して説明したように、退化型のRSSD[b;G;2]がここで適用されてよい。バックエンドの公開鍵B=bGは、標準的な公開鍵証明書または、この責任を負うことを依拠側パーティによって認められた機関によって署名されたサブミットされたトランザクションを伴うブロックチェーン上での公開などの、他の機構を使用して公開される。図22は、適正な鍵生成のためにトランスレータの事例でも適用されてよい。
次いで図23を参照すると、関係者2310は、2320で、以下のようにして楕円曲線E上でINFOから点Pを生成する。(1)INFOを取り込む。(2)INFOの後に、すべて0で開始する16ビットのパッドを付加し、すなわち、(INFO||Pad)=(INFO||00000000 00000000)とする。(3)256ビットのハッシュ値を算出して、x=hash(INFO||Pad)を作成する。(4)
Figure 2022525137000006
が平方剰余、例えばy mod pであるかどうかを判定する。そうでない場合は、パッドに1を足し、このステップを繰り返す。(5)有効なxが見つかったら、x=xを定義する。
Figure 2022525137000007
個の平方剰余がある(0を含む)。したがって、xが試されるたびに、xが平方剰余をもたらす
Figure 2022525137000008
の見込みがある。xが平方剰余をもたらすおよそ
Figure 2022525137000009
の確率があるため、このループは長大なものにはならないはずである。平方剰余を見つける前にすべての16ビットを使い果たすことが起きた場合は、hashをhash(hash)に置き換えて、(c)および(d)を再実行する。可能性としては反復的であるこの技法(例えばhash(hash(hash(INFO||Pad)))の使用に代えて、パッドのビットサイズを、例えば32ビットのパッドなど、より大きくすることができる。(6)バイアスを回避するために以下の追加的な検査が追加されるべきである。モジュロpのラップアラウンドを伴う候補のx座標値があればそれを拒否する、すなわち、それについては2256>hash(INFO||Pad)>p-1である(またはそれについては、反復的なハッシングが必要である場合、2256>hash(hash(hash(INFO||Pad)))>p-1)。このバイアス回避技法が、算出時間に対して与える影響は無視できる。何故ならば、
Figure 2022525137000010
であるためである。(7)
Figure 2022525137000011
となるように、yおよび-y reduced mod pのうち小さい方をyによって表す。次いで点Pが(x,y)として定義される。関係者2310は、次いで2330で、[1,n-1]の中でランダムなlを生成し、I=lPを算出することにより、Pohlig-Hellman暗号を行う。l-1 mod nを算出し、それを、バックエンドからの応答に(解読後に)適用されるまで維持する。関係者2310は、2340で、ワンパスDiffie-Hellmanにおけるイニシエータとして動作する。最初に、それらは、ワンパスDiffie-Hellmanの算出のために次のステップで使用される一時的プライベート鍵用のランダムな整数randを生成する。関係者2310は次いで、Bにrandを乗算して、randB=randGを生成し、これが、ワンパスDiffie-Hellmanの共有秘密[ss;Par⇔Back]となる。関係者2310は次いで、Gにrandを乗算して、randGを生成し、これが、ワンパスDiffie-Hellmanのために使用される公開鍵[pk;Par⇔Back]である。これはバックエンドに通信されて、バックエンドが共有秘密を算出することを可能にする。関係者2310は、2350で、[ss;Par⇔Back]を使用して暗号化する。それらは、[ss;Par⇔Back]に抽出および展開を行って、[key;Par→Back]および[key;Back→Par]にする。その鍵の[key;Par→Back]を使用して、AES-GCMモードでIを暗号化する。[key;Back→Par]鍵は、バックエンドが情報を戻すときにバックエンドからの材料を解読するために使用される。AES-GCMモードのIVは、暗号化で使用するためにランダムに生成され、バックエンドによる解読で使用するために送信される。代替として、IV値は、好ましくは同じ鍵を使用して後続のメッセージを暗号化するために同じIV値を使用しないことが保証される限り、抽出および展開を介して生成することもできる。[ss;Par⇔Back]、[key;Par→Back]および一時的プライベート鍵randは、破棄されるべきである。関係者2310は、2360で、自身のECDSA署名生成プライベート鍵を使用して、PackagePar→Back=(Enc[key;Par→Back];IV(I);[pk;Par⇔Back];IV)に署名して、SigPar→Backを生成する。関係者2310は、(PackagePar→Back;SigPar→Back)を図24のバックエンド2410に送る。
次いで図24を参照すると、バックエンド2410は、2420で、SigPar→Backが有効な署名であることを検証する。バックエンド2410は、2430で、ワンパスDiffie-Hellmanにおける受信者として動作する。最初に、それらは、randGが楕円曲線上にあることを検査することにより、公開鍵の有効性確認を行わなければならない。バックエンド2410は次いで、RSSD[b;randG;2]を実行して、randB=randGを回復し、これはワンパスDiffie-Hellmanで使用するための共有秘密[ss;Par⇔Back]である。このアルゴリズムの間に検出可能なエラーが発生した場合は、このアルゴリズムを再度開始する。バックエンドおよびトランスレータにおける持続的なエラーが、選択された最大エラーを超えて発生するときには必ず、そのTOKENの処理が終了され、もう一度試すようにエラーメッセージが関係者に送られる。バックエンド2410は、2440で、[ss;Par⇔Back]を抽出および展開して[key;Par→Back]、[key;Back→Par]、[key;Par→Back]とし、m、m・m、mが、プライベート鍵bおよびbbの更新に使用される。この結果、b、b、bb、およびbbが更新され、上述したバックエンド2410に関連付けられた秘密、特にPohlig-Hellmanの集合的にアクセス可能な秘密bbbb mod n、への集合的なアクセスに影響を及ぼすことはない。[key;Par→Back]は、バックエンド2410内で内部HMAC鍵を更新するために使用される。両方のパーティションが、新しい内部HMAC鍵である、
Figure 2022525137000012
を生成する。パーティション1は、b ≡m mod nおよびbb ≡mbb mod nを算出する。パーティション2は、
Figure 2022525137000013
および
Figure 2022525137000014
を算出する。パーティション1およびパーティション2は、次のように、プライベート鍵のモジュロnの積を不変に保つために、同時に(ソフト)更新する:パーティション1 - b→b ;bb→bb 、およびパーティション2 - b→b ;bb→bb 。バックエンド2410は、2450で、[key;Par→Back]を使用して、Dec[key;Par→Back];IV(Enc[key;Par→Back];IV(I))を行うことにより解読して、Iを回復する。バックエンド2410は、2460で自身のPohlig-Hellmanを行う。最初に、それらは、Iが楕円曲線上にあることを検査することにより、公開鍵の有効性確認を行わなければならない。バックエンド2410は次いで、RSSD[bb;I;2]を実行して、I=bbbbIを生成する。このアルゴリズムの1回目のパスの間にエラーが発生した場合、これは、HMACタグが拒否されたためであることを意味し得る。これが当てはまる場合は、ソフト更新セクションで行われたすべての動作を元に戻し、再度Diffie-Hellmanを行う。2回目のパスの間にエラーが発生した場合は、Pohlig-Hellmanを再度開始する(アルゴリズムのこの実行)。バックエンド2410は次いで、2470で鍵確認を実行する。これを行うために、それは、鍵確認およびIV生成:KのためにIからHMAC鍵を抽出および展開しなければならない。バックエンド2410は、1回使用の鍵確認HMAC鍵である、h-keyconf=HMAC(h-keynew||rI||01)を生成し、ここで、rIは、Pohlig-Hellman、すなわちRSSD「bb;I;2]のために使用されたRSSDプロセス中に交換されるrIおよびrIから算出可能であり(rを使用してパーティション1により、およびrを使用してパーティション2により)。IV’=HMAC(h-keynew||rI||10)を生成する。IV’を所望ビット数に切り捨てて、使用される実際のIVを形成する。バックエンド2410におけるパーティションは、上記からの前回の成功したDiffie-Hellmanおよび前回の成功したPohlig-Hellmanのトランスクリプトに対して鍵確認手順を実行する。鍵確認が拒否された場合は、Pohlig-Hellmanアルゴリズムを再度開始する。これが確認されたら、2440のソフト更新をハード変更にする。バックエンド2410は次いで、2480で、鍵の[key;Back→Par]および新しく生成されたIVを使用して、AES-GCMで(I)を暗号化する。バックエンド2410は、PackageBack→Par=(Enc[key;Back→Par];IV(I);IV)を図25の関係者2510に送る。
次いで図25を参照すると、関係者2510は、2520で、[key;Back→Par]を使用して、関連付けられたIVおよび認証タグを解読する。Dec[key;back→Par];IV(Enc[key;Back→Par];IV(I))を行って、Iを回復する。関係者2510は、2530で自身のPohlig-Hellmanを行う。最初に、それらは、Iが楕円曲線上にあることを検査することにより、公開鍵の有効性確認を行わなければならない。関係者2510は次いで、I**=l-1=l-1bbbblP=bbbbPを算出する。これがPohlig-Hellman解読プロセスである。この結果は、トランスレータに対して暗号化される。関係者2510は、2540でワンパスDiffie-Hellmanにおけるイニシエータとして動作する。最初に、それらは、ワンパスDiffie-Hellmanの算出のために次のステップで使用される一時的プライベート鍵用のランダムな整数randを[1,n-1]内で生成する。関係者2510は次いで、トランスレータのDiffie-Hellman公開鍵Tにrandを乗算して、randT=randGを生成し、これが、ワンパスDiffie-Hellmanの共有秘密[ss;Par⇔Trans]となる。関係者2510は次いで、Gにrandを乗算して、randGを生成し、これが、ワンパスDiffie-Hellmanに使用される公開鍵[pk;Par⇔Trans]となる。これはトランスレータに通信されて、トランスレータが共有秘密を算出することを可能にする。関係者2510は、2550で、[ss;Par⇔Trans]を使用して暗号化する。それらは、[ss;Par⇔Trans]に抽出および展開を行って、[key;Par→Trans]および[key;Trans→Par]にする。その鍵の[key;Par→Trans]を使用して、AES-GCMモードでI**を暗号化する。[key;Back→Par]鍵は、トランスレータが情報を戻すときトランスレータからの材料を解読するために使用される。AES-GCMモードのIVは、暗号化で使用するためにランダムに生成され、トランスレータによる解読で使用するために送信される。pre-TOKEN=(Enc[key;Par→Trans];IV(I**);[pk;Par⇔Trans];IV)を、Enc_TOKENが更新される必要があるときに必ず使用するために、関係者データベースに記憶する。[ss;Par⇔Trans]、[key;Par→Trans]、および一時的プライベート鍵randは、破棄されるべきである(関係者の不変の中間TOKEN値I**のローカルでの露出を可能にしないために)。関係者2510は、2560で、自身のECDSA署名生成プライベート鍵を使用して、PackagePar→Trans=Enc[key;Par→Trans];IV(I**);[pk;Par⇔Trans];IV)に署名して、SigPar→Transを生成する。関係者2510は、(PackagePar→Trans;SigPar→Trans)を、図26のトランスレータ2605に送る。
次いで図26を参照すると、トランスレータ2605は、2610で、SigPar→Transが有効な署名であることを検証する。トランスレータ2605は、2615で、ワンパスDiffie-Hellmanにおける受信者として動作する。最初に、それらは、randGが楕円曲線上にあることを検査することにより、公開鍵の有効性確認を行う。トランスレータ2605は次いで、RSSD[t;randG;2]を実行して、randT=randGを回復し、これはワンパスDiffie-Hellmanで使用するための共有秘密ss;Par⇔Trans]である。このアルゴリズムの間に検出可能なエラーが発生した場合は、このアルゴリズムを再度開始する。バックエンドおよびトランスレータにおける持続的なエラーが、選択された最大エラーを超えて発生するときには必ず、そのTOKENの処理が終了され、もう一度試すようにエラーメッセージが関係者に送られる。トランスレータ2605は、2620で、[ss;Par⇔Trans]を抽出および展開して、[key;Par→Trans]、[key;Trans→Par]、[key;Par→Trans]とし、m、m・m、およびmが、プライベート鍵tおよびttの更新に使用される。[key;Par→Trans]は、トランスレータ2605内で内部HMAC鍵を更新するために使用される。両方のパーティションが、新しい内部HMAC鍵である、
Figure 2022525137000015
を生成する。パーティション1は、t ≡m mod nおよびtt ≡mtt mod nを算出する。パーティション2は、
Figure 2022525137000016
および
Figure 2022525137000017
を算出する。パーティション1およびパーティション2は、次のように、プライベート鍵のモジュロnの積を不変に保つために、同時に(ソフト)更新する:パーティション1 - t→t ;tt→tt 、およびパーティション2 -t→t ;tt→tt 。トランスレータ2605は、2625で、[key;Par→Trans]を使用して、Dec[key;Par→Trans];IV(Enc[key;Par→Trans];IV(I**))を行うことにより解読して、I**を回復する。トランスレータ2605は、2630で、自身のPohlig-Hellmanを行う。最初に、それらは、Iが楕円曲線上にあることを検査することにより、公開鍵の有効性確認を行わなければならない。トランスレータ2605は次いで、RSSD[tt;I**;2]を実行して、Pohlig-Hellman暗号文である、tttt**=ttttbbbbPを生成する。このアルゴリズムの1回目のパスの間にエラーが発生した場合、これは、HMACタグが拒否されたためであることを意味し得る。これが当てはまる場合は、ソフト更新セクションで行われたすべての動作を元に戻し、再度Diffie-Hellmanを行う。2回目のパスの間にエラーが発生した場合は、Pohlig-Hellmanを再度開始する(アルゴリズムのこの実行)。トランスレータ2605は次いで、2635で、鍵確認を実行する。これを行うために、それは、鍵確認およびIV生成:Kのために、ttttbbbbPからHMAC鍵を抽出および展開しなければならない。トランスレータ2605は、1回使用の鍵確認HMAC鍵である、h-keyconf=HMAC(h-keynew||r**||01)を生成し、ここで、r**は、Pohlig-Hellmanに使用されるRSSDプロセスから算出可能である。IV’=HMAC(h-keynew||r**||10)を生成する。IV’を所望ビット数に切り捨てて、使用される実際のIVを形成する。IV’=HMAC(h-keynew||r**||11)を生成する。IV’を所望ビット数に切り捨てて、使用される実際のIVを形成する。トランスレータ2605のパーティションは、上記からの前回の成功したDiffie-Hellmanおよび前回の成功したPohlig-Hellmanのトランスクリプトに対して鍵確認手順を実行する。鍵確認が拒否された場合は、Pohlig-Hellmanアルゴリズムを再度開始する。これが確認されたら、2620のソフト更新をハード変更にする。最後に、トランスレータ2605は、2640でハッシュを行い、ここで、ハッシュ関数は、楕円曲線点から導出されたビット列に適用される:TOKEN=Hash(ttttbbbbP)。トランスレータ2605は、2645で、コーディネータCとの間で共有される対称鍵を使用して、かつIVを使用して、AES-GCMモードでTOKENを暗号化する:
Figure 2022525137000018
。Cは、好ましくは少なくとも232回使用されるたびに変更されることに留意されたい。トランスレータ2605は次いで、2650で、[key;Trans→Par]およびIVを使用して、AES-GCMでEnc_TOKENを暗号化する:
Figure 2022525137000019
。これが関係者に送られる。関係者は、解読を行ってEnc_TOKENを回復する。これは、関係者のデータベースに記憶され、コーディネータがトランザクションまたは要求内でTOKENを要することを望む場合には必ず、コーディネートネットワーク要素としてのコーディネータにサブミットされる。Enc_TOKENに関して、先に述べられた図に関して:図13の1345に描かれるように、関係者が、トランスレータからEnc_TOKEN(ECDH共有秘密の抽出および展開から対称鍵を使用して暗号化されている)を受信し、Enc_TOKENは、それぞれ図5の515および図7の715におけるg(TOKEN)に対応する。
TOKENを求めるバッチ化された要求を行う関係者に関して、図23、図24、図25、および図26に描かれた手順を以下のように行うことができる。
関係者が、各INFOを表す点を作成するために処理したいINFOごとに図23の2320を通過する。関係者は、図23の2330のように、毎回ランダムに選択される同じlを使用して、あらゆる点Pに自身のPohlig-Hellman暗号を行う。関係者は、図23の2340、2350、2360に概説されるプロセスを通過する。1つのDiffie-Hellman共有秘密が作成され、Iのバッチ全体を共に暗号化するために使用される。暗号化されたバッチは、署名され、バックエンドに送られる。バックエンドは、図24の2420、2430、2440、2450に概説されるプロセスを通過する。解読されたバッチは、Iのリストである。バックエンドは、図24の2460に概説されるように、すべてのIに対して公開鍵の有効性確認を通過する。バックエンドは、Pohlig-Hellmanプロセスに進む。バッチ化する際、図24の2460におけるPohlig-HellmanのためのRSSDは、以下のように実行される。(1)各パーティションにおいてランダムに選択されたrが、RSSDの実行全体にわたって使用される。(2)各パス中にバッチ全体が通過され、対応するパーティションにまとめて送られる。(3)結果:所与のIごとに、生成されたIがある。図24の2470に概説される鍵確認は、Iのリスト全体に対して行われる。バックエンドは、図24の2480に概説されるように、共有秘密から導出された暗号鍵でバッチを暗号化する。関係者は、図25の2520のようにバッチを解読する。関係者は、自身の公開鍵有効性確認およびPohlig-Hellman暗号の解読を図25の2530のように、バッチ中のすべてのIに行う(同じl-1を使用して)。関係者は、図25の2540、2550、2560に概説されたプロセスを通過する。1つのDiffie-Hellman共有秘密が作成され、I**のバッチ全体を共に暗号化するために使用される。暗号化されたバッチは、署名され、トランスレータに送られる。この暗号化されたバッチは、図25の2550で、単一のpre-TOKENが記憶されるように関係者データベースに記憶されることはない。トランスレータは、図26の2610、2615、2620、2625に概説されるプロセスを通過する。解読されたバッチは、I**のリストである。トランスレータは、図26の2630に概説されるように、すべてのI**について公開鍵の有効性確認を通過する。トランスレータは、Pohlig-Hellmanプロセスに進む。バッチ化する際、Pohlig-HellmanのためのRSSDは、以下のように実行される。(1)各パーティションにおいてランダムに選択されたrが、RSSDの実行全体にわたって使用される。(2)各パス中にバッチ全体が通過され、まとめて対応するパーティションに送られる。(3)結果:所与のI**ごとに、非ハッシュ化されたTOKENが生成されている。図26の2635に概説される鍵確認は、非ハッシュ化されたTOKENのリスト全体に対して行われる。トランスレータは、すべてのTOKENを異なるIVで暗号化するのに十分なIVを図26の2635のように生成する。単一のTOKENの事例で使用されるIVの末尾に連結されたビットは、処理されるTOKENの数に対処するために延長される必要がある。このビットフィールドに挿入される値は、すべてのIVならびに鍵確認HMAC鍵およびIVについて別個でなければならない。トランスレータは、非ハッシュ化されたTOKENごとに、図26のそれぞれ2640および2645のようにTOKENおよびEnc_TOKENを作成する。トランスレータは、図26の2650に概説されるように、共有秘密を用いて関係者のためのバッチを暗号化する。関係者は、バッチを解読し、Enc_TOKENを自身のデータベースに記憶する。データベース中のEnc_TOKENのリストは、それらが獲得された順序を隠蔽するためにスクランブル処理され得る。関係者からのトランザクション処理要求に対するコーディネータ応答が認証タグの失敗を示す場合、関係者は、関連付けられたINFOを個別に再処理するか、またはそれを将来のバッチ要求に組み込むかのいずれかを行い得ることに留意されたい。この選択は、シナリオに固有の実装戦略によって制約されることがある。そのような認証タグの失敗は、トランスレータとコーディネータとの間で共有される対称暗号鍵の更新に起因することがある。
より具体的に、バッチ化される事例におけるバックエンドのパーティション1での鍵確認に関する例として、Iのセットを使用して抽出および展開を使用して、鍵確認鍵および初期化ベクトル値を導出するためにrI楕円曲線点値の和と共に使用される鍵を生成する。パーティション1は、最初に、Pohlig-HellmanのRSSDプロセスの実行中にパーティション2から受信するrI楕円曲線点値の和を算出し、次いで自分自身のr値を使用することによってその中間和にスカラー乗算を適用することにより、この和を構築することができることに留意されたい。パーティション2も同様の動作を行う。
エンティティ認証およびプロセッサ内(パーティション間)の通信パスのデータ完全性に対処するための代替の機構に関して:
以下の方法は、非対称デジタル署名の生成および検証に依拠し、よって、HMACの対称的な使用よりも高い処理コストを有する。しかし、危殆化されたパーティションが他方のパーティションとして署名するのに必要とされる鍵にアクセスできないことから、1つのプロセッサペア中の一方のパーティションの危殆化が、他方のパーティションに上手くなりすますのに必要な情報を漏洩させないという利点を提供する。2つのパーティション間で確立された共有秘密に対する抽出および展開を通じて初期HMAC鍵が生成される方式と同様に、そのような抽出および展開を使用して、追加的にまたは代わりに、パーティション1により使用される初期priv署名生成プライベート鍵およびパーティション2により使用される初期priv鍵を生成することができる。パーティション1は、privに対応する公開鍵privG(すなわちpub)を生成し、パーティション2は、privG=pubを生成する。ECDSAなどのデジタル署名方式の使用下で、priv、priv、pubおよびpubの更新は以下のように行われる:算出された共有秘密(関係者を発信元とする共有秘密から導出されるものなど)の抽出および展開の結果、modifierおよびmodifierが得られる。そして、priv1new=modifier*priv1current mod n、およびpub1new=modifier*pub1currentとなる(またpriv2newおよびpub2newについても同様)。この方法の例示的な1つのインスタンス化は、前と同様にプロセッサ内通信のためにHMACを使用し続けるものであるが、鍵確認の構築を、それぞれ
Figure 2022525137000020
および
Figure 2022525137000021
によって置き換えるものであることに留意されたい。この鍵確認の策定は、例えばパーティション1を秘密裡に危殆化し、よってパーティション1のランダムビットジェネレータRBG1の完全な状態を知った敵対者にとって、後続のrQが入手不可能であることへの依存性を持たない(少なくとも、RBG1が、パーティション1を「退出」した後には敵対者にとって入手不可能なライブエントロピーソースを有効利用するまで)。
当業者は、本発明の範囲から逸脱することなく、様々な変更、改変、および組み合わせが上記で説明された実施形態に関してなされ得、そのような変更、改変、および組み合わせは、本発明の概念の範囲内にあるとみなされるべきであることを認識するであろう。

Claims (20)

  1. ネットワークを介してデータに基づく行為を実施するための方法であって、
    プロトコルを管理するコーディネートネットワーク要素により、
    - アテスターの役割内で動作しているネットワーク要素、および
    - リクエスターの役割内で動作している少なくとも1つの2次ネットワーク要素、
    の1つを含む要求元ネットワーク要素から、
    前記ネットワークを介して、
    - 参照されるデータ内容、
    - 参照されるデータタイプ、
    - 参照される初期データソース、および
    - 初期データソースに関連付けられたデータ情報、
    の少なくとも1つを含むデータ情報に関する、プロトコルに準拠した要求を受信するステップであって、
    前記プロトコルは、前記コーディネートネットワーク要素が、前記プロトコルに準拠した要求の基礎を少なくとも部分的になすデータ内容に実質的にアクセスすることを阻止する、ステップと、
    前記要求元ネットワーク要素が前記アテスターの役割内で動作しているネットワーク要素である場合、前記要求元ネットワーク要素を介して調達されるデータを、データに基づく処理のために非同期に入手可能にする権限を、前記要求元ネットワーク要素に付与することを、少なくとも部分的には前記プロトコルを介して容易にするステップであって、前記データが間接的なデータとして調達される場合、前記調達することは、初期データソースから前記要求元ネットワーク要素によって受信されたデータからの導出を伴い、前記2次ネットワーク要素の身元は前記要求元ネットワーク要素からブラインドされる、ステップと、
    前記要求元ネットワーク要素が前記リクエスターの役割内で動作している2次ネットワーク要素である場合、以前に別の要求元ネットワーク要素から調達されたデータを処理するための前記2次ネットワーク要素の権限付与を、少なくとも部分的には前記プロトコルを介して容易にするステップであって、前記別の要求元ネットワーク要素の身元は前記2次ネットワーク要素からブラインドされる、ステップと、を含む方法。
  2. 前記データに基づく処理が、
    証明済みのデータ内容の移動、および
    以前に証明済みのデータ内容に対するデータ内容の確証、
    のうち少なくとも1つを含む、請求項1に記載の方法。
  3. 以前に証明済みのデータ内容に対するデータ内容の前記確証が、前記リクエスターの役割内で動作している要求元ネットワーク要素からデータを調達することを少なくとも部分的に含み、前記データが間接的なデータとして調達される場合、前記調達することが、初期データソースから前記要求元ネットワーク要素によって受信されたデータからの導出を伴う、請求項2に記載の方法。
  4. 前記プロトコルに準拠した要求が、複数の別個のメッセージを含む、請求項1に記載の方法。
  5. 前記権限を付与することは、前記アテスターの役割内で動作している前記要求元ネットワーク要素が、中継者からアクセス可能なストレージに内容を記憶する権限を付与されることを中継者に通知する、検証可能な許可を生成することを少なくとも部分的に含み、前記内容は、データの移動および確証のうち少なくとも一方を可能にするために有用である、暗号パラメータ、データ、およびメタデータ、の少なくとも1つを含む、請求項1に記載の方法。
  6. 前記中継者からアクセス可能なストレージに前記内容を記憶することが、前記内容の一部を、
    平文形態、および
    暗号化された形態、
    の少なくとも一方で記憶することを含む、請求項5に記載の方法。
  7. 前記内容は、
    前記アテスターの役割内で動作している前記要求元ネットワーク要素によって生成された暗号文および暗号パラメータのうち少なくとも1つを表す解読トークン、ならびに
    比較トークンを構成するためにデータと共に適用される暗号パラメータおよびメタデータであって、前記比較トークンは、前記アテスターの役割内で動作している前記要求元ネットワーク要素によって与えられたデータの処理の結果を表す比較トークンに対して、記憶された値を使用して処理された候補データを表す比較トークンの一致があるかどうかに関する判定を行うことができるように構成される、暗号パラメータおよびメタデータの少なくとも1つ、
    のうち少なくとも一方として働くように構成された前記記憶された値を含む、請求項5に記載の方法。
  8. 前記内容が、シェアの群であって、閾値数のそのようなシェアが前記内容の再構成を可能にするようなシェアの群を含み、前記シェアは、前記アテスターの役割内で動作している前記要求元ネットワーク要素によって複数の中継者に分散される、請求項5に記載の方法。
  9. 前記権限付与は、前記リクエスターの役割内で動作している前記要求元ネットワーク要素が、中継者からアクセス可能なストレージから、暗号パラメータ、データ、およびメタデータのうち少なくとも1つを含む内容を、平文形態または暗号化された形態で取り出す権限を付与されることを少なくとも1つの中継者に通知する、検証可能な許可の生成を少なくとも部分的に含む、請求項1に記載の方法。
  10. 前記コーディネートネットワーク要素が、前記プロトコルに準拠した要求の中にトークン化された形態で含まれているデータ情報にアクセスすることが実質的にできず、前記トークンは、少なくともそのうち1つが前記コーディネートネットワーク要素には入手不可能である秘密を使用して生成される、請求項1に記載の方法。
  11. ネットワークを介してデータに基づく行為を実施するように構成された装置であって、
    ネットワークインターフェースと、
    コーディネートネットワーク要素として構成された制御回路と、を備え、前記コーディネートネットワーク要素は、
    前記ネットワークインターフェースを介して、
    - アテスターの役割内で動作しているネットワーク要素、および
    - リクエスターの役割内で動作している少なくとも1つの2次ネットワーク要素、
    の1つを含む要求元ネットワーク要素から、
    - 参照されるデータ内容、
    - 参照されるデータタイプ、
    - 参照される初期データソース、および
    - 初期データソースに関連付けられたデータ情報、
    の少なくとも1つを含むデータ情報に関する、プロトコルに準拠した要求を受信することであって、
    前記プロトコルは、前記コーディネートネットワーク要素が、前記プロトコルに準拠した要求の基礎を少なくとも部分的になすデータ内容に実質的にアクセスすることを阻止する、ことと、
    前記要求元ネットワーク要素が前記アテスターの役割内で動作しているネットワーク要素である場合、前記要求元ネットワーク要素を介して調達されるデータを、データに基づく処理のために非同期に入手可能にする権限を前記要求元ネットワーク要素に付与することを、少なくとも部分的には前記プロトコルを介して容易にすることであって、前記データが間接的なデータとして調達される場合、前記調達することは、初期データソースから前記要求元ネットワーク要素によって受信されたデータからの導出を伴い、前記2次ネットワーク要素の身元は前記要求元ネットワーク要素からブラインドされる、ことと、
    前記要求元ネットワーク要素が前記リクエスターの役割内で動作している2次ネットワーク要素である場合、以前に別の要求元ネットワーク要素から調達されたデータを処理するための前記2次ネットワーク要素の権限付与を、少なくとも部分的には前記プロトコルを介して容易にすることであって、前記別の要求元ネットワーク要素の身元は前記2次ネットワーク要素からブラインドされる、ことと、
    によって前記プロトコルを管理する、装置。
  12. 前記データに基づく処理が、
    証明済みのデータ内容の移動、および
    以前に証明済みのデータ内容に対するデータ内容の確証、
    のうち少なくとも1つを含む、請求項11に記載の装置。
  13. 以前に証明済みのデータ内容に対するデータ内容の前記確証が、前記リクエスターの役割内で動作している要求元ネットワーク要素からデータを調達することを少なくとも部分的に含み、前記データが間接的なデータとして調達される場合、前記調達することが、初期データソースから前記要求元ネットワーク要素によって受信されたデータからの導出を伴う、請求項12に記載の装置。
  14. 前記プロトコルに準拠した要求が、複数の別個のメッセージを含む、請求項11に記載の装置。
  15. 前記権限を付与することは、前記アテスターの役割内で動作している前記要求元ネットワーク要素が、中継者からアクセス可能なストレージに内容を記憶する権限を付与されることを中継者に通知する、検証可能な許可を生成することを少なくとも部分的に含み、前記内容は、データの移動および確証のうち少なくとも一方を可能にするために有用である、暗号パラメータ、データ、およびメタデータ、の少なくとも1つを含む、請求項11に記載の装置。
  16. 前記中継者からアクセス可能なストレージに前記内容を記憶することが、前記内容の一部を、
    平文形態、および
    暗号化された形態、
    の少なくとも一方で記憶することを含む、請求項15に記載の装置。
  17. 前記内容は、
    前記アテスターの役割内で動作している前記要求元ネットワーク要素によって生成された暗号文および暗号パラメータのうち少なくとも1つを表す解読トークン、ならびに
    比較トークンを構成するためにデータと共に適用される暗号パラメータおよびメタデータであって、前記比較トークンは、前記アテスターの役割内で動作している前記要求元ネットワーク要素によって与えられたデータの処理の結果を表す比較トークンに対して、記憶された値を使用して処理された候補データを表す比較トークンの一致があるかどうかに関する判定を行うことができるように構成される、暗号パラメータおよびメタデータの少なくとも1つ、
    のうち少なくとも一方として働くように構成された前記記憶された値を含む、請求項15に記載の装置。
  18. 前記内容が、シェアの群であって、閾値数のそのようなシェアが前記内容の再構成を可能にするようなシェアの群を含み、前記シェアは、前記アテスターの役割内で動作している前記要求元ネットワーク要素によって複数の中継者に分散される、請求項15に記載の装置。
  19. 前記権限付与は、前記リクエスターの役割内で動作している前記要求元ネットワーク要素が、中継者からアクセス可能なストレージから、暗号パラメータ、データ、およびメタデータのうち少なくとも1つを含む内容を、平文形態または暗号化された形態で取り出す権限を付与されることを少なくとも1つの中継者に通知する、検証可能な許可の生成を少なくとも部分的に含む、請求項11に記載の装置。
  20. 前記コーディネートネットワーク要素が、前記プロトコルに準拠した要求の中にトークン化された形態で含まれているデータ情報にアクセスすることが実質的にできず、前記トークンは、少なくともそのうち1つが前記コーディネートネットワーク要素には入手不可能である秘密を使用して生成される、請求項11に記載の装置。
JP2021555085A 2019-03-13 2020-03-13 データに基づく行為を実施するための方法および装置 Pending JP2022525137A (ja)

Applications Claiming Priority (15)

Application Number Priority Date Filing Date Title
US201962818014P 2019-03-13 2019-03-13
US62/818,014 2019-03-13
US201962820151P 2019-03-18 2019-03-18
US62/820,151 2019-03-18
US201962821021P 2019-03-20 2019-03-20
US62/821,021 2019-03-20
US201962885729P 2019-08-12 2019-08-12
US62/885,729 2019-08-12
US201962932730P 2019-11-08 2019-11-08
US62/932,730 2019-11-08
US202062988760P 2020-03-12 2020-03-12
US62/988,760 2020-03-12
US16/817,483 2020-03-12
US16/817,483 US11374910B2 (en) 2019-03-13 2020-03-12 Method and apparatus for effecting a data-based activity
PCT/US2020/022625 WO2020186156A1 (en) 2019-03-13 2020-03-13 Method and apparatus for effecting a data-based activity

Publications (2)

Publication Number Publication Date
JP2022525137A true JP2022525137A (ja) 2022-05-11
JPWO2020186156A5 JPWO2020186156A5 (ja) 2023-03-20

Family

ID=72427061

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2021555085A Pending JP2022525137A (ja) 2019-03-13 2020-03-13 データに基づく行為を実施するための方法および装置

Country Status (6)

Country Link
US (1) US11374910B2 (ja)
EP (1) EP3939202A4 (ja)
JP (1) JP2022525137A (ja)
KR (1) KR20210139344A (ja)
BR (1) BR112021018016A2 (ja)
WO (1) WO2020186156A1 (ja)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11405365B2 (en) 2019-03-13 2022-08-02 Springcoin, Inc. Method and apparatus for effecting a data-based activity
US11265144B2 (en) * 2020-03-09 2022-03-01 International Business Machines Corporation Consistent ciphertext creation
US11368287B2 (en) 2020-05-19 2022-06-21 International Business Machines Corporation Identification of a creator of an encrypted object
US11777720B2 (en) * 2020-06-12 2023-10-03 Nagravision Sàrl Distributed anonymized compliant encryption management system
US11743039B2 (en) * 2021-04-20 2023-08-29 Coinbase Il Rd Ltd. System and method for data encryption using key derivation
US11930117B2 (en) * 2022-07-29 2024-03-12 Springcoin, Inc. Method and apparatus for reversible tokenization with support for embeddable role-based access control

Family Cites Families (21)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4200770A (en) 1977-09-06 1980-04-29 Stanford University Cryptographic apparatus and method
EP0085130A1 (en) 1982-02-02 1983-08-10 Omnet Associates Method and apparatus for maintaining the privacy of digital messages conveyed by public transmission
US8145897B2 (en) 2008-09-29 2012-03-27 Intel Corporation Direct anonymous attestation scheme with outsourcing capability
EP2472820B1 (en) 2010-12-31 2016-04-20 Regify S.A. Network, node and method for anonymizing and routing a user request
US8862871B2 (en) 2011-04-15 2014-10-14 Architecture Technology, Inc. Network with protocol, privacy preserving source attribution and admission control and method
US9876823B2 (en) 2015-06-09 2018-01-23 Intel Corporation System, apparatus and method for privacy preserving distributed attestation for devices
US10547643B2 (en) 2016-02-29 2020-01-28 Securekey Technologies Inc. Systems and methods for distributed data sharing with asynchronous third-party attestation
WO2017175073A1 (en) * 2016-04-05 2017-10-12 Vchain Technology Limited Method and system for managing personal information within independent computer systems and digital networks
CN109716345B (zh) 2016-04-29 2023-09-15 普威达有限公司 计算机实现的隐私工程系统和方法
US10616186B2 (en) * 2017-04-14 2020-04-07 International Business Machines Corporation Data tokenization
WO2018223125A1 (en) * 2017-06-02 2018-12-06 Visa International Service Association Methods and systems for ownership verification using blockchain
US11082234B2 (en) 2017-07-06 2021-08-03 Robert Bosch Gmbh Method and system for privacy-preserving social media advertising
GB201803706D0 (en) * 2018-03-08 2018-04-25 Nchain Holdings Ltd Computer-implemented system and method
US10673626B2 (en) * 2018-03-30 2020-06-02 Spyrus, Inc. Threshold secret share authentication proof and secure blockchain voting with hardware security modules
US10841100B2 (en) 2018-08-07 2020-11-17 The Toronto-Dominion Bank Dynamically managing exchanges of data using a distributed ledger and homomorphic commitments
US11115206B2 (en) * 2018-08-23 2021-09-07 International Business Machines Corporation Assymetric structured key recovering using oblivious pseudorandom function
US11176571B2 (en) * 2018-09-06 2021-11-16 MadHive, Inc. Methods and system for serving targeted advertisements to a consumer device
WO2020082031A1 (en) * 2018-10-18 2020-04-23 Eian Labs Inc. Confidential transaction auditing using an authenticated data structure
SG11202103877SA (en) * 2018-10-19 2021-05-28 Digital Asset Switzerland Gmbh Privacy preserving validation and commit architecture
US10721217B2 (en) * 2018-11-08 2020-07-21 Accenture Global Solutions Limited Cryptographic datashare control for blockchain
US11405365B2 (en) 2019-03-13 2022-08-02 Springcoin, Inc. Method and apparatus for effecting a data-based activity

Also Published As

Publication number Publication date
EP3939202A1 (en) 2022-01-19
BR112021018016A2 (pt) 2021-11-23
US20200336470A1 (en) 2020-10-22
WO2020186156A1 (en) 2020-09-17
KR20210139344A (ko) 2021-11-22
US11374910B2 (en) 2022-06-28
EP3939202A4 (en) 2022-12-07

Similar Documents

Publication Publication Date Title
JP7119040B2 (ja) データ伝送方法、装置およびシステム
TWI722116B (zh) 用於基於區塊鏈的系統結合錢包管理系統中的安全多方防遺失儲存及加密金鑰轉移
JP6547079B1 (ja) 登録・認可方法、装置及びシステム
US11405365B2 (en) Method and apparatus for effecting a data-based activity
JP2022525137A (ja) データに基づく行為を実施するための方法および装置
US8762723B2 (en) Cryptographic security using fuzzy credentials for device and server communications
US20170244687A1 (en) Techniques for confidential delivery of random data over a network
JP2023500570A (ja) コールドウォレットを用いたデジタルシグニチャ生成
US11329835B2 (en) Apparatus and method for authenticating IoT device based on PUF using white-box cryptography
US11637817B2 (en) Method and apparatus for effecting a data-based activity
US11425107B2 (en) Method and apparatus for third-party managed data transference and corroboration via tokenization
WO2018043573A1 (ja) 鍵交換方法、鍵交換システム
CN111052673A (zh) 匿名广播方法、密钥交换方法、匿名广播系统、密钥交换系统、通信装置、程序
Farash Cryptanalysis and improvement of ‘an improved authentication with key agreement scheme on elliptic curve cryptosystem for global mobility networks’
Daddala et al. Design and implementation of a customized encryption algorithm for authentication and secure communication between devices
JPH08335208A (ja) 代理認証方法及びシステム
WO2022185328A1 (en) System and method for identity-based key agreement for secure communication
Ashraf et al. Lightweight and authentic symmetric session key cryptosystem for client–server mobile communication
KR20210152295A (ko) Puf 기반 상호 인증 장치 및 방법
CN113794570B (zh) 一种基于零知识证明的私钥管理方法及系统
TWI761243B (zh) 群組即時通訊的加密系統和加密方法
TWI840358B (zh) 用以使用區塊鏈來執行基元式互換之電腦實施系統及方法
JP5278330B2 (ja) 鍵交換装置及び鍵交換方法
Pujol et al. A Secure and User Friendly Multi-Purpose Asymmetric Key Derivation System (MPKDS)
CN117294522A (zh) 基于区块链的金融数据共享方法、装置、设备和存储介质

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20230310

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20230310

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20240327

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20240405