JP7280285B2 - 効率的な同時スカラー積計算 - Google Patents

効率的な同時スカラー積計算 Download PDF

Info

Publication number
JP7280285B2
JP7280285B2 JP2020565425A JP2020565425A JP7280285B2 JP 7280285 B2 JP7280285 B2 JP 7280285B2 JP 2020565425 A JP2020565425 A JP 2020565425A JP 2020565425 A JP2020565425 A JP 2020565425A JP 7280285 B2 JP7280285 B2 JP 7280285B2
Authority
JP
Japan
Prior art keywords
vector
computer
encrypted
public key
permuted
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.)
Active
Application number
JP2020565425A
Other languages
English (en)
Other versions
JP2021525386A (ja
Inventor
ワグナー、キム
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Visa International Service Association
Original Assignee
Visa International Service Association
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 Visa International Service Association filed Critical Visa International Service Association
Publication of JP2021525386A publication Critical patent/JP2021525386A/ja
Application granted granted Critical
Publication of JP7280285B2 publication Critical patent/JP7280285B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • 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/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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/46Secure multiparty computation, e.g. millionaire problem
    • 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/3226Cryptographic 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 using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computing Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
  • Storage Device Security (AREA)
  • Collating Specific Patterns (AREA)

Description

関連出願の相互参照
本出願は、2018年5月24日に出願された米国特許出願第62/676,219号の非仮特許出願であり、この特許出願に対する優先権を主張するもので、その全体は参照により本明細書に組み込まれる。
多くの場合、特にデータがプライベートではない場合、コンピュータは、比較のために単にデータを互いに送信することができる。たとえば、ローカルソフトウェアが最新かどうか(つまり、そのソフトウェアが入手可能なそのソフトウェアの最新の安定版のバージョンかどうか)をユーザが確認したい場合がある。ユーザは、比較のためにソフトウェアに関するデータを外部サーバに送信しても問題がない場合がある。ただし、一部のケースでは、特に個人データや個人を識別できる情報(例えば、医療記録、支払口座番号、生体認証)を含む場合、ユーザは、外部コンピュータが不正または悪意のあるユーザや組織によって操作されている可能性があるという懸念から、そのデータを別の外部コンピュータに送信したくない場合がある。
幸いなことに、安全な多者間計算技術など、複数のコンピュータでそれぞれのデータを互いに開示することなくデータを比較したり、計算を実行したりできる技術がある。残念なことに、これらの手法は多くの場合、遅く、複雑で、大量のコンピューティング操作を必要とする。参加しているコンピュータの接続が悪い場合、安全な多者間計算の失敗の可能性が著しく高くなる。さらに、通信やコンピューティング操作が多数あるため、このようなプロトコルは、時間的制約のあるアプリケーションや低パフォーマンスのコンピューティング環境には適していない。
実施形態は、個別および総合的にこれらのおよびその他の問題を解決する。
本発明の実施形態は、二つのベクトルのスカラー積(または「ドット」積)を安全かつ同時に計算するための方法およびシステムを対象とする。第一のコンピュータおよび第二のコンピュータは、それぞれ第一および第二のベクトルを有し得、第一のコンピュータが第一のベクトルを第二のコンピュータに明らかにすることなく、かつ第二のコンピュータが第二のベクトルを第一のコンピュータに明らかにすることなく、第一および第二のベクトルのスカラー積を同時に計算することができる。各コンピュータは、スカラー積またはスカラー積から導出された値を所定の閾値と比較することができる。スカラー積またはスカラー積から導出された値が所定の閾値を超えることを条件として、第一のコンピュータおよび第二のコンピュータは、互いに相互作用を行うことができる。例えば、相互作用は、アクセストークンを第一のコンピュータに発行する第二のコンピュータを含み得る。
例として、生体認証承認システム(第二のコンピュータ)は、第一のコンピュータ(生体認証ベクトルに対応するユーザによって操作または所有される)によって提供される生体認証ベクトル(すなわち、ベクトル化された生体認証インスタンス)を第二のコンピュータに格納された生体認証ベクトルと比較することができ、第二のコンピュータは、生体認証が一致する場合、アクセストークン(支払トークン、またはユーザが建物にアクセスできるようにするトークンなど)を発行することができる。ただし、第二のコンピュータは、ユーザがなりすましを実行するために生体認証ベクトルを盗もうとする不正行為者である可能性があるため、格納された生体認証ベクトルのコピーをユーザに渡したくない場合がある。同様に、ユーザは、第二のコンピュータが不正行為者によって操作される可能性があるため、第二のコンピュータに生体認証ベクトルのコピーを渡したくない可能性がある。実施形態は、スカラー積を計算し、スカラー積を使用して二つの生体認証インスタンスの比較を実施するために使用することができ、ユーザが自身のそれぞれの生体認証ベクトルを第二のコンピュータに開示することなく、かつ第二のコンピュータがそのそれぞれの生体認証ベクトルをユーザに開示することなく使用できる。この方法では、機密データを公開するリスクなしにユーザを承認できる。
実施形態は、従来のシステムよりも改善を提供する。なぜなら、実施形態は、スカラー積を、コンピュータまたは事業体間の多くの通信のように実行することなく計算することを可能にし、速度と信頼性の向上をもたらすからである。本開示の実施形態では、第一のコンピュータおよび第二のコンピュータは、スカラー積を同時に計算し、第一のコンピュータも第二のコンピュータも、第一のベクトルαの二乗の大きさも、また第二のベクトルβの二乗の大きさも、他方のコンピュータに送信する必要はない。これにより、コンピュータ間で送信されるメッセージの数が減り、従来のシステムに比べてプロトコルの速度、効率、信頼性が向上する。
一つの実施形態は、第一のコンピュータによって、第二のコンピュータに、第一の公開鍵、第二の公開鍵、第一の暗号化されたマスクされたベクトル、および第一の暗号化されたランダムなベクトルを送信することであって、第一の暗号化されたマスクされたベクトルが、第一の公開鍵を使用して暗号化された第一のマスクされたベクトルであり、第一の暗号化されたランダムなベクトルは、第二の公開鍵を使用して暗号化された第一のランダムなベクトルである、送信することと、第一のコンピュータによって、第二のコンピュータから、第三の公開鍵、第四の公開鍵、第二の暗号化されたマスクされたベクトル、および第二の暗号化されたランダムなベクトルを受信することであって、第二の暗号化されたマスクされたベクトルが、第三の公開鍵を使用して暗号化された第二のマスクされたベクトルであり、第二の暗号化されたランダムなベクトルが、第四の公開鍵を使用して暗号化された第二のランダムなベクトルである、受信することと、第一のコンピュータによって、第二のコンピュータから、第三の置換された暗号化された差分ベクトルおよび第四の置換された暗号化された差分ベクトルを受信することであって、第三の置換された暗号化された差分ベクトルは、第一の公開鍵を使用して暗号化され、第三の置換を使用して置換され、第四の置換された暗号化された差分ベクトルは、第二の公開鍵を使用して暗号化され、第四の置換を使用して置換される、受信することと、第一のコンピュータによって、第一の公開鍵に対応する第一の秘密鍵を使用して、第三の置換された暗号化された差分ベクトルを復号することによって、第三の置換された差分ベクトルを生成することと、第一のコンピュータによって、第二の公開鍵に対応する第二の秘密鍵を使用して、第四の置換された暗号化された差分ベクトルを復号することによって、第四の置換された差分ベクトルを生成することと、第一のコンピュータによって、第一のマスクされたベクトル、第一のランダムなベクトル、第三の置換された差分ベクトルおよび第四の置換された差分ベクトルに基づいてベクトルと第二のベクトルのスカラー積を計算することと、を含む方法を対象とする。
別の実施形態は、プロセッサと、上述の方法を実施するためにプロセッサによって実行可能であるコードを含む、プロセッサに連結された非一時的コンピュータ可読媒体とを含む第一のコンピュータを対象とする。
これらの実施形態および他の実施形態について、以下に詳細に記載する。実施形態の性質および利点をよりよく理解することは、以下の詳細な説明および添付の図面を参照して得ることができる。
条件
「サーバコンピュータ」は、強力なコンピュータまたはコンピュータクラスタを含んでもよい。例えば、サーバコンピュータは、大型メインフレーム、ミニコンピュータクラスタ、またはユニットとして機能するサーバ群であり得る。一例では、サーバコンピュータは、ウェブサーバに連結されるデータベースサーバであり得る。サーバコンピュータは、一つ以上の計算装置を含んでもよく、一つ以上のクライアントコンピュータからの要求にサービスを提供する、さまざまなコンピュータ構造、配置およびコンパイルのうちのいずれを使用し得る。
「メモリ」は、電子データを格納することができる任意の好適な単数または複数のデバイスであってもよい。好適なメモリとして、所望の方法を実施するためにプロセッサにより実行され得る命令を保存する、非一過性コンピュータ可読媒体が含まれ得る。メモリの例として、一つ以上のメモリチップ、ディスクドライブなどが含まれ得る。一部のメモリは、任意の好適な電気的、光学的、および/または磁気的な動作モードを用いて動作することができる。
「プロセッサ」は、任意の好適な単数または複数のデータ計算デバイスを指すことができる。プロセッサは、所望の機能を達成するために一緒に動作する一つ以上のマイクロプロセッサを備えることができる。プロセッサは、ユーザおよび/またはシステム生成要求を実行するプログラム構成要素を実行するために適切な少なくとも一つの高速データプロセッサを備えるCPUを含んでもよい。CPUは、AMDのアスロン、デュロン、および/もしくはオプテロン、IBMおよび/もしくはモトローラのPowerPC、IBMおよびソニーのセルプロセッサ、インテルのセレロン、アイテニウム、ペンティアム、ジーオン、および/もしくはXScale、ならびに/または、同様のプロセッサなどのマイクロプロセッサであってもよい。
「セキュア要素」は、安全に機能を実行することができる構成要素を指しうる。セキュア要素は、データへのアクセスが保護されるように、データを安全に格納するメモリであってもよい。「セキュア要素」の例としては、プロセッサの信頼できる実行環境(TEE)、セキュア領域がある。セキュア要素の別の例は、ユニバーサル集積回路カード(UICC)、セキュアスマートカードである。セキュア要素の追加の例は、より大きな機械または電気システムの組み込みセキュア要素、組み込みハードウェア構成要素である。
「ベクトル」は、構成要素の順序付けられたリストを指してもよい。ベクトルの構成要素は、数値であってもよく、例えば、例示的なベクトルは、三つの構成要素、すなわち、
Figure 0007280285000001

を有し得る。ベクトルの構成要素は、ラベルと関連付けられてもよく、例えば、第二の例示的なベクトル
Figure 0007280285000002

は、三つの構成要素:
Figure 0007280285000003

を有し得る。数学的演算は、ベクトルに適用されてもよく、例えば、二つのベクトルは、加算されてもよく、または互いに減算されてもよい。「ランダムなベクトル」は、例えば、乱数発生器または疑似乱数発生器を使用して、ランダムまたは疑似ランダムに生成された構成要素の順番付けられたリストを指してもよい。「差分ベクトル」は、例えば、二つのベクトル間の差に等しいベクトルを指してもよく、例えば:
Figure 0007280285000004

「マスクされたベクトル」は、ベクトルとランダムベクトルとのベクトル和を指してもよい。「ベクトル化」という用語は、データのセットがベクトルに変換される任意のプロセス、例えば、人の身長、体重、および年齢が、その人の身長、体重、および年齢に対応する構成要素を含むベクトルに変換されるプロセスを指す場合がある。
「置換」は、何かが順序付けられ得るまたは配置され得る方法を指し得る。「置換された」という用語は、何かが置換を介して順序付けられたまたは配置されたことを示すことができる。例えば、置換されたベクトルは、置換に従って再配置されたベクトルを指してもよい。
「ユーザ」とは、何らかの目的で他のものを使用する人または物を指す。ユーザは、一つ以上の個人アカウントおよび/またはユーザデバイスと関連付けられ得る個人を含み得る。ユーザはまた、一部の実施形態では、カード保有者、アカウント保有者または消費者と称され得る。
「リソース」とは、事業体によって使用される、または事業体間で移転される可能性のあるものを指し得る。リソースの例には、物品、サービス、情報、および/または制限された場所へのアクセスが含まれる。
「リソースプロバイダ」とは、リソースを提供できる事業体を指し得る。リソースプロバイダの例には、小売業者、政府機関などが含まれる。リソースプロバイダは、リソースプロバイダのコンピュータを操作できる。
「通信デバイス」は、遠隔または直接の通信機能を提供できる任意の好適なデバイスを含み得る。遠隔通信機能の例には、携帯電話(無線)ネットワーク、無線データネットワーク(例えば、3G、4Gまたは同様のネットワーク)、Wi-Fi、Wi-Max、またはインターネットもしくはプライベートネットワークなどのネットワークへのアクセスを提供できるいかなる他の通信媒体を使用することが含まれる。通信デバイスの例として、デスクトップコンピュータ、ビデオゲームコンソール、移動電話(例えば、携帯電話)、PDA、タブレットコンピュータ、ネットブック、ラップトップコンピュータ、パーソナル音楽プレーヤ、手持ち式専用リーダ、スマートカードなどが挙げられる。通信デバイスのさらなる例としては、スマートウォッチ、フィットネスバンド、アンクルブレスレット、リング、イヤリングなどのウェアラブルデバイスの他、遠隔または直接の通信機能付き自動車がある。
「相互作用」とは、相互の作用、効果または影響を指す場合がある。例えば、相互作用は、二人以上の当事者間の交換または取引である可能性がある。
「アクセス端子」は、リモートシステムへのアクセスを提供する任意の好適なデバイスであってもよい。また、アクセス端子は、小売業者コンピュータ、取引処理コンピュータ、認証コンピュータまたは任意の他の好適なシステムとの通信に使用されてもよい。アクセス端子は、概して、小売業者の位置など、任意の好適な位置に配置することができる。アクセス端子は、任意の好適な形態であり得る。アクセス端子の一部の例には、販売時点(例えば、POS)端末、携帯電話、PDA、パーソナルコンピューター(PC)、タブレットPC、手持ち式専用リーダ、セットトップボックス、電子キャッシュレジスタ(ECR)、現金自動預入支払い機(ATM)、仮想キャッシュレジスタ(VCR)、キオスク、セキュリティシステム、アクセスシステムおよび類似のものを含む。アクセス端子は、任意の好適な接触または非接触動作モードを使用して、ユーザのモバイルデバイスとの間でデータ、またはモバイルデバイスに関連付けられたデータの送受信を行うことができる。アクセス端子がPOS端末を含んでもよい一部の実施形態では、任意の好適なPOS端末を使用でき、端末はリーダと、プロセッサと、コンピュータ可読媒体とを含むことができる。リーダは、任意の好適な接触または非接触動作モードを含むことができる。例えば、例示的なカードリーダは、決済デバイスおよび/またはモバイルデバイスと対話するために、無線周波数(RF)アンテナ、光学スキャナ、バーコードリーダまたは磁気ストライプリーダを含み得る。一部の実施形態では、POS端末として用いられる携帯電話、タブレット、または他の専用無線デバイスは、モバイル販売時点情報管理端末、または「mPOS」端末と称され得る。
「アクセスネットワーク」は、アクセス端末に関連付けられたネットワークを指しうる。アクセスネットワークは、いくつかの必要な機能を提供することによってアクセス端末をサポートするデバイスのアレイを含み得る。例えば、アクセスネットワークは、アクセス端末の代わりにモバイルデバイスの集合体と通信するように設計されたアンテナまたはビーコン(Wi-Fiまたはブルートゥースビーコンなど)のアレイであってもよい。アクセスネットワークは、ローカルエリアネットワーク、ワイドエリアネットワーク、または携帯電話ネットワークまたはインターネットなどのネットワークを含み得る。
「生体認証インスタンス」という用語は、生物学的観察に関連する情報を含み得る。生体認証インスタンスは、生体認証サンプルに対応する生体認証データ、または生体認証サンプルまたは生体認証データから導出された生体認証テンプレートを含み得る。生体認証インスタンスは、ユーザの身元を検証するために使用できる。生体認証インスタンスは、生体認証インスタンスのキャプチャに使用されるハードウェアである生体認証インタフェースを介してキャプチャされ得る。例えば、生体認証インスタンスは、赤外線光源およびカメラを備える虹彩スキャナなどの生体認証インタフェースを介してキャプチャされてもよい。生体認証インスタンスの例には、虹彩スキャンのデジタル表現(虹彩を表すバイナリコードなど)、指紋、音声記録、顔スキャンなどが含まれる。生体認証インスタンスは、暗号化された形式で、および/またはモバイルデバイスのセキュアメモリに格納され得る。
「暗号鍵」という用語は、暗号化または復号で使用されるものを指すことができる。たとえば、暗号鍵は、二つの大きな素数の積を参照できる。暗号鍵は、RSAやAESなどの暗号化プロセスや暗号システムの入力として機能し、平文を暗号化して暗号文出力を生成する、または暗号文を復号して平文出力を生成するために使用することができる。
「平文」という用語は、平易な形式の文を指すことができる。例えば、平文は、「こんにちは、元気ですか。」といった句など、人間やコンピュータが何も処理せずに読める文を指すことができる。また、暗号化されていない形式のテキストを指す場合もある。数字やその他の記号も平文と見なされる場合がある。
「暗号文」という用語は、暗号化された形式である文を指すことができる。例えば、これは、人間またはコンピュータが理解できるようになる前に復号する必要があるテキストを指すことができる。暗号文は、RSAやAESなど、任意の数の暗号化アルゴリズムで生成できる。
「アクワイアラ」は通常、特定の小売業者または他の事業体とのビジネス関係を有するビジネス事業体(例えば、商業銀行)とすることができる。一部の事業体は、発行人およびアクワイアラの両方の機能を実行することができる。一部の実施形態は、こうした単一事業体の発行人アクワイアラを含み得る。アクワイアラは、総称的に「輸送コンピュータ」とも呼ばれ得る、アクワイアラコンピュータを操作し得る。
「承認事業体」は、要求を認可する事業体とすることができる。承認事業体の例は、発行人、政府機関、文書保管所、アクセス管理者などを含み得る。「発行人」は通常、ユーザ用のアカウントを保持するビジネス事業体(例えば、銀行)を指し得る。発行人はまた消費者に対して、携帯電話、スマートカートカード、タブレット、またはラップトップなどのモバイルデバイスに格納された支払証明書を発行することができる。承認事業体は、承認コンピュータを操作できる。
「認証データ」は、あるものが真実かつ有効であることを証明するのに適した任意のデータを含み得る。認証データは、ユーザまたはユーザによって操作される装置から取得することができる。ユーザから取得される認証データの例として、PIN(個人識別番号)、パスワードなどを含みうる。モバイルデバイスから取得することができる認証データの例として、デバイスのシリアル番号、ハードウェアセキュリティ要素識別子、デバイスの指紋、電話番号、IMEI番号、モバイルデバイスに格納された生体認証インスタンスなどを含み得る。
「決済デバイス」には、小売業者に支払証明書を提供するなど、金融取引を実施するために使用できる任意の適切なデバイスが含まれ得る。決済デバイスは、ソフトウェアオブジェクト、ハードウェアオブジェクト、または物理的オブジェクトであってもよい。物理的オブジェクトの例として、この決済デバイスは、紙またはプラスチックのカードなどの基板および印刷された、エンボス化された、符号化されたあるいはその他の方法で物体にまたはその表面近くに含まれた情報を含むことができる。ハードウェアオブジェクトは、回路(例えば、永久電圧値)に関連し得、ソフトウェアオブジェクトは、デバイス上に格納された非永久データに関連し得る。決済デバイスは、貨幣価値、割引、またはストアクレジットなどの価値と関連付けられてもよく、決済デバイスは、銀行、小売業者、支払処理ネットワーク、または人などの事業体に関連付けられてもよい。決済デバイスは、支払取引をするために使用することができる。好適な決済デバイスは、それがユーザの財布および/またはポケットに収まることができるように(例えば、ポケットサイズの)、手持ち式でかつコンパクトであり得る。決済デバイスの例としては、スマートカード、磁気ストライプカード、キーチェーンデバイス(Exxon-Mobil Corp.市販のSpeed-pass(商標)など)等が挙げられる。モバイルデバイスのその他の例には、ポケットベル、支払カード、セキュリティカード、アクセスカード、スマートメディア、トランスポンダなどが含まれる。決済デバイスがデビット、クレジット、またはスマートカードの形態である場合、決済デバイスは、磁気ストライプなどの機能も随意に有し得る。このようなデバイスは、接触非接触の両方のモードで動作し得る。実施形態によっては、モバイルデバイスは、決済デバイスとして機能することができる(例えば、モバイルデバイスは、取引に対する支払証明書を格納し、送信することができる)。
「証明書」とは、価値、所有権、身元、または権限の信頼できる証拠として機能する任意の適切な情報であり得る。「アクセス証明書」は、特定のリソース(例えば、物品、サービス、場所など)へのアクセスを得るために使用できる証明書であってもよい。証明書は、数字、文字、またはその他の任意の適切な記号の列、または確認の役目を果たすことができる任意のオブジェクトまたは文書であってもよい。証明書の例には、IDカード、認証文書、アクセスカード、パスコードおよびその他のログイン情報、支払口座番号、アクセスバッジ番号、支払トークン、アクセストークンなどが含まれる。
「支払証明書」には、口座に関連付けられた任意の適切な情報(例えば、支払口座、および/または口座に関連付けられた決済デバイス)が含まれ得る。そのような情報は、口座に直接関係してもよく、または口座に関係する情報に由来してもよい。口座情報の例として、PAN(主口座番号または「口座番号」)、ユーザ名、有効期限、CVV(カード検証値)、dCVV(動的カード検証値)、CVV2(カード検証値2)などが挙げられ得る。支払証明書は、支払口座を識別する、または支払口座に関連付けられる任意の情報であり得る。支払証明書は、支払口座から支払いを行うために提供され得る。支払証明書は、ユーザ名、有効期限、ギフトカード番号またはコード、および任意の他の適切な情報を含むこともできる。
「トークン」は、本物の証明書の置換値であってもよい。トークンは、一種の証明書であってもよく、数字、文字、またはその他の任意の適切な記号の列であってもよい。トークンの例には、支払トークン、アクセストークン、個人識別トークンなどが含まれる。
「支払トークン」は、主口座番号(PAN)などの口座識別子の代替である支払口座のための識別子を含むことができる。例えば、トークンは、元の口座識別子の代替として使用することができる、ひと続きの英数字を含んでもよい。例えば、トークン「4900 0000 0000 0001」を、PAN「4147 0900 0000 1234」の代わりに使用してもよい。実施形態によっては、トークンは、「形式保存」であってもよく、既存の取引処理ネットワークで使用される口座識別子に準拠する数値形式(例えば、ISO8583金融取引メッセージ形式)を有することができる。一部の実施形態では、トークンは、支払取引を開始、認可、決済もしくは解決するように、または元の証明書が通常提供されるであろう他のシステムで元の証明書を表すように、PANの代わりに使用されてもよい。一部の実施形態では、トークン値は、元のPAN、またはトークン値からの他の口座識別子の回復が、計算上導き出されないように生成されてもよい。さらに、一部の実施形態では、トークン形式は、トークンを受け取る事業体が、それをトークンとして識別し、トークンを発行した事業体を認識することが可能になるように構成されてもよい。
「承認要求メッセージ」は、取引のための承認を要求するために送信される電子メッセージとすることができる。一部の実施形態では、「承認要求メッセージ」は、支払処理ネットワークおよび/または支払カードの発行人へ送信されて、取引のための承認を要求する電子メッセージであってもよい。一部の実施形態による承認要求メッセージは、決済デバイスまたは支払口座を使用する消費者によりなされる支払いと関連付けられた、電子取引情報を交換するシステムの標準である、ISO8583に準拠することができる。承認要求メッセージは、決済デバイスまたは支払口座と関連付けられてもよい、発行人口座識別子を含んでもよい。承認要求メッセージはまた、単に例として、サービスコード、CVV(カード検証値)、dCVV(動的カード検証値)、有効期限などを含む、「識別情報」に対応する追加のデータ要素を含むことができる。承認要求メッセージはまた、取引を識別および/または承認するかの判定に利用されてもよい、いかなる他の情報だけでなく、取引額、小売業者識別子、小売業者所在地など、現在の取引と関連付けられた、任意の情報などの「取引情報」を含んでもよい。
「承認応答メッセージ」は、承認要求メッセージに応答する電子メッセージとすることができる。電子メッセージは、発行金融機関または支払処理ネットワークによって生成される場合がある。承認応答メッセージは、単に例として、次の状態指標のうちの一つ以上を含んでもよい。認可―取引が認可された。拒否―取引が認可されなかった。または、コールセンター―応答はより多くの情報を保留中で、小売業者は、フリーダイヤルの承認電話番号に電話する必要がある。承認応答メッセージはまた、承認コードを含んでもよく、クレジットカード発行銀行が、承認要求メッセージに応じて、小売業者のアクセスデバイス(例えば、POS機器)に、取引の許可を示す電子メッセージ(直接または支払処理ネットワークを介してのいずれか)の中で返信するコードであってもよい。コードは、承認の証明として役割を果たし得る。上述の通り、一部の実施形態では、支払処理ネットワークは、承認応答メッセージを生成してもよく、または承認応答メッセージを小売業者に転送してもよい。
「デバイスコード」または「デバイス識別子」は、デバイス(例えば、一つのデバイスのみ)と特に関連付けられたコードであってもよい。デバイスコードは、セキュア要素識別子(SE ID)、IMEI番号、電話番号、地理的位置、デバイスのシリアル番号、デバイスの指紋などのうちの一つ以上を含むがこれに限定されない、任意のデバイス固有の情報から派生することができる。こうしたコードは、ハッシュ化および/または暗号化を含む任意の適切な数学的演算を使用して、こうした情報から派生しうる。デバイスコードは、任意の適切な数および/またはタイプの記号を含み得る。
図1は、本発明のいくつかの実施形態による、例示的なシステムのブロック図を示す。 図2は、いくつかの実施形態による例示的な第一のコンピュータのブロック図を示す。 図3は、いくつかの実施形態による例示的な第二のコンピュータのブロック図を示す。 図4は、いくつかの実施形態による、二つのベクトルのスカラー積を計算し、相互作用を実施する方法のフローチャートの概要を示す。 図5は、いくつかの実施形態による、二つのベクトルのスカラー積を計算する方法の一部である、セットアップ段階のフローチャートを示す。 図6は、いくつかの実施形態による、二つのベクトルのスカラー積を計算する方法の一部である中間計算段階のフローチャートを示す。 図7は、いくつかの実施形態による、二つのベクトルのスカラー積を計算する方法の一部である、スカラー積計算段階のフローチャートを示す。 図8は、第一のコンピュータのユーザとリソースプロバイダとの間の支払取引を含む、第一の例示的な相互作用を示す。 図9は、第一のコンピュータのユーザとリソースプロバイダとの間の建物入場認証プロセスを含む、第二の例示的な相互作用を示す。
実施形態は、二つのベクトルのスカラー積を計算するためのプライバシー保護方法およびシステムを対象とするため、ベクトルに関する簡単なプライマーは、実施形態をよりよく理解するために有用であり得る。
ベクトルという用語は、科学全体を通して異なる意味を持つが、一般的にベクトルは、構成要素の順序付けられたリストを指す。一部の事例では、ベクトルはまた、対の大きさおよび角度または方向として表され得る。たとえば、ベクトル(北1マイル、西1マイル)は、空間の第一の点と、空間の第二の点の間の直線経路が、正確に第一の点から1マイル北と1マイル西であることを表す。このベクトルは、代わりに(大きさ1.414マイル、方向45度)として表されてもよく、ベクトルが1.414マイル、北から45度時計回りに向けられることを表す。どちらの表現も、同じ経路を記述するため、同等である。数学方程式の変数として、ベクトルはしばしば、上部に矢印のある記号で表される。例えば、
Figure 0007280285000005

である。ベクトルは、他の変数が従う多くの数学的関係に従う。例えば、類似したベクトルは、互いに加算または減算することができる。
多くの形態のデータをベクトル化することができる、すなわち、ベクトルに変換されるか、またはベクトルによって表され得る。例として、個人の健康統計(例えば、身長、体重、年齢)は、(身長68インチ(172.7cm)、体重140ポンド(63.5kg)、年齢25歳)などのベクトルで表され得る。ベクトル化は、コンピュータによって迅速に実行できるベクトル演算を使用してデータを客観的に比較することができるため、有用である。
例えば、二つのデータのセットを比較する一つの方法は、各データのセットをベクトル化し、二つのベクトル間の角度を判定することである。同様のベクトルは、それらの間に小さな角度を有するが、異なるベクトルは、それらの間に大きな角度を有する。二つの同一ベクトル間の角度(例えば、(北1マイル、西0マイル)と(北1マイル、西0マイル))はゼロであるが、二つの直交ベクトル(例えば、(北1マイル、西0マイル)と(北0マイル、西1マイル))の角度は、それらの間が90度であり、二つの逆向きのベクトル(例えば、(北1マイル、西0マイル)と(南1マイル、西0マイル))は、それらの間が180度である。二つのベクトル化されたデータのセットの間の角度(例えば、第一の人に対応する健康統計および第二の人に対応する健康統計)、または二つのベクトル化されたデータのセットの間の角度の三角関数(例えば、コサイン)は、それらの二つのデータのセットの間の類似性または相違性を評価するために、類似性または相違性メトリックとして使用することができる。
同様に、スカラー積などのベクトル演算を使用して、二つのベクトル間の類似性または相違性を評価することができる。二つのベクトルのスカラー積は、第一のベクトルの各構成要素に第二のベクトルの対応する構成要素を乗じ、結果を合計することによって計算することができる。すなわち、
Figure 0007280285000006

である。
例として、
Figure 0007280285000007


Figure 0007280285000008

のスカラー積は、以下に等しい。
Figure 0007280285000009
スカラー積は、他の理由の中でも、以下の等式によって示されるように、二つのベクトル間の角度に比例するため、有用であり、
Figure 0007280285000010
式中、
Figure 0007280285000011

はベクトル
Figure 0007280285000012

の大きさ(すなわち、「サイズ」)であり、
Figure 0007280285000013

はベクトル
Figure 0007280285000014

の大きさであり、θは二つのベクトル間の角度である。したがって、二つのベクトル化されたデータのセットのスカラー積を使用して、これらのデータのセット間の類似性または相違性を判定することができる。
ベクトル化は、生体認証などのデータの比較を簡素化または加速するために使用できる。一例では、キャプチャされた生体認証は、生体認証に対応する人を識別または認証するために、データベースに格納された生体認証または生体認証テンプレートと比較され得る。一例として、指紋採取がある。指紋採取では、人の指紋の画像がキャプチャされ(生体認証)、指紋データベースに格納されている指紋と比較されて、その人を識別する。キャプチャされた指紋および指紋データベースに格納された指紋がベクトル化された場合、キャプチャされたベクトル化された指紋とデータベースに格納されたベクトル化された指紋のスカラー積を計算するなどのベクトル演算を使用して、キャプチャされた指紋が指紋データベースに格納された指紋のセットと一致するかどうかを判定することができる。
生体認証または生体認証テンプレートのベクトル化の正確な方法は、本開示の範囲外である。しかしながら、例示的な生体認証がどのようにベクトル化され得るかを説明するために、以下の例が提供される。
虹彩コード(典型的には、虹彩認識を実行するために使用され得る256バイトを含む生体認証)は、256個の構成要素を有するベクトルに変換することによってベクトル化することができ、各構成要素は対応する虹彩コードの1バイトに対応する。代替として、虹彩コードを、対応する虹彩コードのうちの1ビットを各々含む2048個の構成要素を含むバイナリベクトルに、または代替で、各々が対応する虹彩コードの2バイトに対応する、128個の構成要素を有するベクトルに変換することができる。虹彩コードなどの生体認証をベクトルに変換することができ、その他の生体認証(例えば、指紋、顔スキャンなど)を同様の方法を使用してベクトルに変換することができる方法は多数存在する。
生体認証、ベクトル化、その他の方法での比較には多くの方法や技術があるが、被験者のプライバシーを保護することを指向する技術はほとんどない。例として、指紋スキャンを受ける場合、通常は、指紋をデータベースに格納されている指紋と比較するために、その指紋(生体認証)を事業体(例えば、法執行機関)に提供する必要がある。ただし、これにより、人はなりすましのリスクにさらされる。不正行為者は、正当な事業体になりすますことで、一見正当な認証要求の一部として、その人の生体認証を要求することができる(例えば、電子メールのフィッシング攻撃を介して)。不正行為者は、これらの生体認証を使用して、なりすましの手口の一部としてその人になりすます。
しかしながら、本開示の実施形態は、二つの事業体(例えば、ユーザおよびリモートサーバに属するスマートフォンなどの二つのコンピュータ)について、どちらの事業体もそのそれぞれの生体認証を他方の事業体に明らかにせずに二つのベクトル(例えば、二つのベクトル化された生体認証)のスカラー積を計算する方法を提供する。そのため、リモートサーバは、人の生体認証自体を実際に受け取ることなく、人の生体認証が生体認証データベースに格納されている生体認証と一致するかどうかを判定できる。これにより、情報セキュリティの確実な向上がもたらされ、上記のようななりすまし手口の防止策が講じられる。
実施形態は、Paillier暗号などの暗号システムを使用して、付加的準同型暗号化を使用してこれを達成する。付加的準同型暗号化により、参加している事業体は、最初にデータを復号することなく、暗号化されたデータの合計を計算できる。特に、Paillier暗号では、二つの暗号文(すなわち、暗号化されたデータ)の積は、対応する平文の暗号化された合計と等しくなる。
Figure 0007280285000015
本開示の実施形態は、この特性を利用して、二つのコンピュータが、ベクトルの構成要素が暗号化されている間に、二つのベクトルのスカラー積を計算することを可能にする。ベクトルの復号に使用される秘密鍵は、それぞれの事業体によってのみ知られている(すなわち、第一のコンピュータは第二のコンピュータには未知の秘密鍵を知っていて、その逆も同様である)ため、各事業体は、他の事業体がそのベクトルを知ることを妨げることができると同時に、その二つのベクトルのスカラー積を計算することができる。
図1は、第一のコンピュータ102、第二のコンピュータ104、リソースプロバイダコンピュータ106、およびユーザ108を含む、例示的なシステム100のブロック図を示す。システム100のコンピュータは、一つ以上の通信ネットワークを介して互いに動作可能に通信してもよい。
通信ネットワークは、任意の好適な形態を取ることができ、直接相互接続、インターネット、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、インターネット上のノードとしての運用ミッション(Operating Missions as Nodes on the Internet(OMNI))、セキュリティ保護カスタム接続(a secured custom connection)、ワイドエリアネットワーク(WAN)、(例えば、無線アプリケーションプロトコル(WAP)、I-モード、および/または同様のもののプロトコルを使用するがそれに限定されない)無線ネットワークおよび/または同様のもののうちのいずれか一つならびに/あるいはそれらの組み合わせであってもよい。事業体、プロバイダー、ユーザ、デバイス、コンピュータ、およびネットワーク間のメッセージは、ファイル転送プロトコル(FTP)、ハイパーテキスト転送プロトコル(HTTP)、セキュアハイパーテキスト転送プロトコル(HTTPS)、セキュアソケットレイヤー(SSL)、ISO(ISO 8583など)および/または同様のものなどであるがこれらに限定されない安全な通信プロトコルを使用して送信されうる。
実施形態による方法は、第一のコンピュータ102および第二のコンピュータ104が、それぞれがそれぞれのベクトルまたは計算されたスカラー積を他のコンピュータに明らかにすることなく、第一のベクトル102Aおよび第二のベクトル104Aのスカラー積を計算することを可能にする。図4~図7を参照して後述する一連の段階を通して、第一のコンピュータ102および第二のコンピュータ104は、第一のコンピュータ102および第二のコンピュータ104が第一のベクトル102Aおよび第二のベクトル104Aのスカラー積を同時に計算することを可能にする情報を準備および交換することができる。第一のコンピュータ102および第二のコンピュータ104はそれぞれ、計算されたスカラー積またはスカラー積から導出された値(例えば、二つのベクトル間の角度)を、所定の閾値と同時に比較することができる。スカラー積から導出された値のスカラー積が所定の閾値を超える場合、第一のコンピュータ102および第二のコンピュータ104は、互いに相互作用を実行し得る。この相互作用はさらに、リソースプロバイダコンピュータ106を所有または操作し得るリソースプロバイダを含むことができる。
例示的な相互作用は、図8および図9を参照して以下により詳細に記述される。一般に、スカラー積またはスカラー積から導出された値を所定の閾値と比較することは、認証手順の一部として実施されてもよく、認証が成功した場合(すなわち、スカラー積またはスカラー積から導出された値が所定の閾値を超える)、相互作用が行われてもよい。例えば、第一のベクトル102Aが、ユーザ108に対応する第一のコンピュータ102(例えば、ユーザ108によって所有されるスマートフォン)に格納された生体認証ベクトルであり、第二のベクトル104Aが、第二のコンピュータ104に格納されたユーザ108に対応する生体認証ベクトル(例えば、ユーザ108に対応するファイル上の生体認証ベクトル)である場合、第一のベクトル102Aと第二のベクトル104Aのスカラー積を使用してユーザ108を認証してもよい。ユーザ108が認証されると、ユーザ108と小売業者(すなわち、リソースプロバイダコンピュータ106を操作するリソースプロバイダ)との間の支払取引などの相互作用が行われることができる。
図2は、いくつかの実施形態による例示的な第一のコンピュータ200を示す。具体的には、図2は、モバイルデバイス(例えば、スマートフォン)としての第一のコンピュータ200を示す。しかしながら、第一のコンピュータ200は、用語セクションで上記に定義された任意の適切な通信デバイスなど、多くの形態を取りうることが理解されるべきである。
第一のコンピュータ200は、無線通信またはテレフォニーなどの特定のデバイス機能を有効にするために使用される回路を含みうる。これらの機能を有効にするための機能要素は、デバイスの機能および動作を実行する命令を実行できるプロセッサ202を含んでもよい。プロセッサ202は、命令を実行するために使用される命令またはデータを取得するためデータストレージ210(または別の適切なメモリ領域または要素)にアクセスできる。キーボードまたはタッチスクリーンなどのデータ入力/出力要素206は、ユーザが第一のコンピュータ200を操作することを可能にするために使用され得る(例えば、ユーザがモバイルウォレットアプリケーション214に移動することを可能にする)。データ入力/出力206はまた、(例えば、スピーカーを介して)データを出力するように構成され得る。ディスプレイ204はまた、ユーザにデータを出力するために使用することもできる。通信要素208は、第一のコンピュータ200と有線または無線ネットワーク(例えば、アンテナ224を介して)の間のデータ転送を可能にし、データ転送機能を可能にするために使用されてもよく、インターネットまたは他のネットワークへの接続を支援するためにしようされてもよい。第一のコンピュータ200はまた、非接触素子222とデバイスの他の素子との間のデータ転送を可能にする非接触素子インタフェース220を含んでもよい。非接触素子222は、セキュアメモリおよび近距離通信データ転送素子(または別の形態の短距離通信技術)を含み得る。前述のように、携帯電話、スマートフォン、ウェアラブルデバイス、ラップトップコンピュータ、またはその他の類似のデバイスは、モバイルデバイスの例であり、それによって実施形態に従い第一のコンピュータの例である。
データストレージ210は、通信モジュール212、モバイルウォレットアプリケーション214、生体認証アプリケーション216、およびスカラー積計算モジュール218などのいくつかのソフトウェアモジュールも含みうるコンピュータ可読媒体を備えてもよい。
通信モジュール212は、プロセッサ202が、第一のコンピュータ200と、他のモバイルデバイス、アクセス端末、または第二のコンピュータなどの他のデバイスとの間の通信を実施または可能にできるコードを含み得る。通信モジュール212は、TCP、UDP、IS-IS、OSPF、IGRP、EIGRP、RIP、BGPなどの任意の適切なプロトコルに従って通信を許容し得る。それは、プロセッサ202が、第一のコンピュータ200と他のデバイスとの間の安全なまたは暗号化された通信チャネルを確立できるようにすることによって、安全な通信を可能にし得る。例えば、通信モジュール212は、モバイルデバイス200と別のデバイスとの間のキー交換(ディフィー・ヘルマン鍵交換など)を実行するために、プロセッサ202によって実行可能なコードを含み得る。通信モジュール212はさらに、暗号化または暗号化されていないベクトルおよび暗号鍵の送信を可能にすることに加えて、支払トークンを含むアクセストークンをアクセス端末などの他のデバイスに送信することを許可し得る。
モバイルウォレットアプリケーション214は、第一のコンピュータ200がトークンを管理できるようにするコードを含み得る。例えば、モバイルウォレットアプリケーション214は、プロセッサ202が非接触素子インタフェース220を介してセキュアメモリ222に格納されたアクセストークンを取得できるようにするコードを含み得る。モバイルウォレットアプリケーション214は、アクセストークンがプロビジョニングされた日時、アクセストークンのエイリアスまたは識別子、アクセストークンが関与する直近の相互作用または取引の日時など、任意の適切なトークン情報を第一のコンピュータ200が表示できるようにするコードをさらに含み得る。さらに、モバイルウォレットアプリケーション214は、プロセッサ202が、ユーザがトークン関連機能を有効化できるようにするグラフィカルユーザインタフェース(GUI)を表示することを可能にするコードを含み得る。さらに、モバイルウォレットアプリケーション214は、第一のコンピュータ200が、例えば、小売業者との取引中に、トークンをアクセス端末に送信することを可能にするコードを含み得る。
生体認証アプリケーション216は、第一のコンピュータ200がデータ入力/出力206を介して生体認証インスタンスをキャプチャすることを可能にするコードを含んでもよい。例えば、登録プロセス(以下により詳細に説明される図4からの登録段階402など)の間、第一のコンピュータ200は、カメラなどのデータ入力/出力要素206を使用して、顔スキャンなどの生体認証インスタンスをキャプチャするために使用されてもよい。生体認証アプリケーション216を使用して、この生体認証インスタンスをキャプチャし、暗号化または暗号化されていない形態のいずれかで、セキュアメモリ220上に生体認証インスタンスを格納してもよい。生体認証アプリケーション216は、さらに、プロセッサ202によって実行可能なコードまたは命令を含んで、生体認証インスタンスをベクトル化し、すなわち、これらの生体認証インスタンスに対応する生体認証ベクトルを生成してもよい。生体認証アプリケーション216はまた、プロセッサ202によって実行可能な、生体認証ベースの取引システムなどの生体認証ベースの相互作用システムに参加するためのコードまたは命令を含んでもよい。これらのコードまたは命令は、アクセス端末と通信し、生体認証ベクトルをアクセス端末に送信するなどの機能を実行するためのコードを含み得る。
スカラー積計算モジュール218は、いくつかの実施形態による、二つのベクトルのスカラー積のプライバシー保護計算を実行するためプロセッサ202によって実行可能なコードまたは命令を含み得る。これらの方法は、以下の図4~7を参照してより良く理解され得る。コードまたは命令は、中でも、図4~7を参照して以下に記載されるように、乱数またはランダムベクトルの生成、マスクされたベクトルの生成、プライベート暗号鍵(Paillier鍵などの付加的準同型暗号鍵を含む)の生成、ベクトルの暗号化および復号、ネゲーションベクトルの生成、差分ベクトルの、置換、二乗の大きさの計算、および二つのベクトルのスカラー積の計算を含み得る。
図3は、本開示のいくつかの実施形態による例示的な第二のコンピュータ300を示す。第二のコンピュータ300は、プロセッサ302、通信インタフェース304、およびコンピュータ可読媒体306を備えてもよい。コンピュータ可読媒体306は、特に、通信モジュール308、登録モジュール310、スカラー積計算モジュール312、相互作用モジュール314、およびベクトルデータベース316を含む複数のソフトウェアモジュールを備えてもよい。
プロセッサ302は、上記の用語セクションに記載の任意の適切な処理装置またはデバイスであってもよい。通信インタフェース304は、第二のコンピュータ300が、インターネットなどのネットワークを介して他のコンピュータまたはシステム(例えば、第一のコンピュータ)と通信することを可能にするネットワークインタフェースを備えてもよい。
通信モジュール308は、第二のコンピュータ300と第一のコンピュータを含む他の事業体との間の通信を確立するために、プロセッサ302によって実行可能なコードまたはソフトウェアを備えてもよい。例として、通信モジュール308は、UDP(ユーザデータグラムプロトコル)またはTCP(伝送制御プロトコル)パケット、あるいは任意の他の適切な形態のネットワーク通信の生成を可能にするコードを備え得る。第二のコンピュータ300は、通信モジュール308を使用して、第一のコンピュータなどの事業体からデータを送受信し得る。これらのデータには、以下の図4の第一の伝送段階406および第二の伝送段階408を参照して説明されるように、暗号化された、置換された、またはその他の方法のベクトル、および暗号鍵が含まれ得る。
登録モジュール310は、ユーザ(例えば、図1のユーザ108)が、生体認証ベクトル認証システムなどのベクトルベースの認証システムに登録することを可能にするコードを含み得る。実施形態に従う一部の方法では、登録は任意であってもよい。したがって、登録モジュール310は、同様に任意であってもよい。登録モジュール310は、第二のコンピュータ300が、ユーザまたは第一のコンピュータに対応する生体認証ベクトルを、ユーザまたはユーザに対応する識別子のIDに関連付けることを可能にするコードを含み得る。例えば、登録モジュール310は、第二のコンピュータ300が虹彩スキャンに対応する生体認証ベクトルをユーザ「John Doe」に関連付けることを可能にするコードを含み得る。登録モジュール310は、第二のコンピュータ300が生体認証データベース316の「John Doe」に対応する識別子と関連して、例示的な生体認証ベクトルを保存できるようにするコードを追加的に含み得る。後に、「John Doe」に対応する第一のコンピュータ(例えば、Johnのスマートフォン)および第二のコンピュータ300は、John Doeを認証し、相互作用を実行するために、生体認証データベース318に格納された生体認証ベクトルおよび第一のコンピュータに格納された生体認証ベクトルのプライバシー保護スカラー積計算を実行することができる。
スカラー積計算モジュール312は、いくつかの実施形態による、プライバシー保護スカラー積計算を実行するために、プロセッサ302によって実行可能なコードを含み得る。プライバシー保護スカラー積計算は、図4~7のフローチャートを参照してより良く理解され得る。スカラー積計算モジュール312は、ベクトルの合計、ベクトル間の相違性、およびベクトルの大きさまたは二乗の大きさを計算するために使用される数学的演算に加えて、以下に記述されるように、ランダムなベクトル、マスクされたベクトル、暗号鍵、置換されたベクトルなどの生成を可能にするコードを含み得る。
相互作用モジュール314は、第一のコンピュータとの相互作用を実行するためにプロセッサ302によって実行可能なコードを備えてもよい。この相互作用は、例えば、第一のコンピュータまたは第一のコンピュータに関連付けられたユーザがリソースにアクセスすることができるように、第一のコンピュータをリソースプロバイダに認証することを含み得る。例えば、リソースプロバイダは、小売業者であってもよく、リソースは、顧客が購入を希望する商品またはサービスであってもよく、第一のコンピュータは、顧客が所有するスマートフォンであってもよく、第二のコンピュータ300は、支払処理ネットワークに関連付けられたサーバコンピュータであってもよい。相互作用は、ユーザと小売業者との間の支払トランザクションを成立させることを含んでもよく、相互作用モジュール314は、ユーザと小売業者との間の支払取引を成立させるようにプロセッサ302によって実行可能なコードを含んでもよい。
第二の例示的な相互作用として、リソースプロバイダは、ロックされたコンピュータ化されたドアを介して建物へのアクセスを制御するコンピュータシステムであってもよい。第一のコンピュータと第二のコンピュータ300との間の相互作用は、例えば、リソースプロバイダのコンピュータにドアを開くように指示する制御信号を送ることによって、または、リソースプロバイダのコンピュータがドアを開くように、第一のコンピュータに第一のコンピュータがリソースプロバイダのコンピュータに提供し得るアクセストークンまたは別の証明書を提供することによって、第一のコンピュータの所有者が建物にアクセスすることを可能にする第二のコンピュータを備えてもよい。
ベクトルデータベース316は、ベクトルを含む任意の適切なデータベース、ファイル、またはメモリ構造を備えてもよい。これらのベクトルは、例えば、複数の登録ユーザに対応する生体認証ベクトルを含み得る。第二のコンピュータ300は、そのベクトルと第一のコンピュータに対応する別のベクトルのスカラー積を計算するために、ベクトルデータベース316からベクトルを取得してもよい。
図4は、いくつかの実施形態による、第一のベクトル
Figure 0007280285000016

および第二のベクトル
Figure 0007280285000017

のスカラー積を計算する方法400のフローチャート概要を示す。方法は、登録段階402、セットアップ段階404、第一の伝送段階406、中間計算段階408、第二の伝送段階410、スカラー積計算段階412、および相互作用段階414の七つの段階に分けられる。
登録段階402は任意であってもよく、すなわち、一部の実施形態では、登録段階402が実施されてもよく、他の実施形態では、登録段階402は実施されなくてもよい。登録段階402の特徴は、第一のベクトル
Figure 0007280285000018

および第二のベクトル
Figure 0007280285000019

の特徴、ならびに相互作用段階414で実施される相互作用の性質に依存し得る。
一例として、ベクトルは生体認証インスタンスに対応してもよく、二つのベクトルのスカラー積は二つの生体認証インスタンス間の類似性に対応してもよい。したがって、スカラー積は、二つの生体認証インスタンスが確実性の十分な程度(例えば、75%一致、95%一致、99%一致など)に一致するかどうかを判定するために計算され得る。この場合、登録段階402は、生体認証登録プロセスを含んでもよい。この生体認証登録プロセスは、例えば、登録ユーザから生体認証をキャプチャすること(例えば、ユーザの虹彩の画像をキャプチャすること、親指または指紋スキャンを実行することなどによって)、キャプチャされた生体認証を変換すること(例えば、虹彩コードまたは生体認証のその他の適切なデジタル表現に)、および生体認証インスタンスを安全に格納すること(例えば、第一のコンピュータ上のセキュア要素および/または第二のコンピュータ上の安全なデータベース内に)を含みうる。
上述のように、登録段階402の特徴は、相互作用段階414および相互作用の特徴に依存しうる。一例として、図4の方法400は、支払いを行うための生体認証承認システムに適用され得る。第一のベクトル
Figure 0007280285000020

として表される顧客の生体認証インスタンスは、第二のベクトル
Figure 0007280285000021

として表される顧客の生体認証インスタンスと比較され、支払処理サーバに格納され得る。生体認証ベクトルが一致する場合(第一のベクトルおよび第二のベクトルのスカラー積に基づいて判定される)、支払処理サーバは、顧客を認証し、顧客と小売業者との間の取引(すなわち、相互作用段階414の相互作用)を許可することができる。この場合、相互作用が取引であるため、登録段階402は、支払証明書(PANなど)を、支払処理サーバー(第二のコンピュータ)に格納された生体認証ベクトル(第二のベクトル
Figure 0007280285000022

)と関連付けることをさらに含んでもよい。この例では、登録段階402は、ユーザまたは消費者がユーザのPANなどの情報をウェブフォームに記入することをさらに含み、次に、それを暗号化し、第二のベクトル
Figure 0007280285000023

に関連付けられて格納できるように第二のコンピュータに送信してもよい。
しかしながら、上述のように、いくつかの実施形態では、登録段階402は任意であってもよい。これは、第一のコンピュータおよび第二のコンピュータが、第一のベクトル
Figure 0007280285000024

および第二のベクトル
Figure 0007280285000025

をそれぞれ外部ソースから(例えば、生体認証キャプチャを介して)受信する必要がない実施形態で生じ得る。例えば、第一のベクトル
Figure 0007280285000026

は、ユーザのスマートフォンのGPSから判定されるユーザの位置を表してもよく、第二のベクトル
Figure 0007280285000027

は、ユーザが移動しようとしているカフェなどのビジネスの位置を表してもよい。したがって、第一のコンピュータは、ユーザのスマートフォンを備えてもよく、第二のコンピュータは、ナビゲーションまたはマッピングサービスに関連付けられたサーバコンピュータを備えてもよい。二つのベクトルのスカラー積は、ユーザがカフェに移動するのを助けるために、ユーザのスマートフォンによって使用され得る。ユーザの位置ベクトルはGPSデータから推測でき、ナビゲーションサービスはすでにカフェの位置を知っている場合があるため、登録段階402を実施する必要はない場合がある。
セットアップ段階404は、図5を参照するとより良く理解できる。一般に、セットアップ段階は、任意のデータが第一のコンピュータと第二のコンピュータとの間で送信される前に行われ得るステップを含み得る。
図5は、実施形態による方法のセットアップ段階の間に実施されるステップのフローチャートを示す。添字Aは、一般的には、第一のコンピュータによって生成または使用されるベクトルまたは値を指し、一方で、添字Bは、一般的には、第二のコンピュータによって生成または使用されるベクトル、値、または暗号鍵を指すことに留意するのが有用であり得る。
ステップ502Aで、第一のコンピュータは、第一のベクトル
Figure 0007280285000028

を安全に取得することができる。いくつかの実施形態では、第一のコンピュータは、ユーザに関連付けられたスマートフォンであってもよい。これらの実施形態では、第一のコンピュータは、(例えば、図2の非接触素子インタフェース220を使用して)第一のコンピュータのセキュア要素から第一のベクトル
Figure 0007280285000029

を取得することができる。
同様に、ステップ502Bで、第二のコンピュータは、第二のベクトル
Figure 0007280285000030

を安全に取得することができる。いくつの実施形態では、第二のコンピュータは、何らかの形態の認証事業体(例えば、政府機関または支払処理ネットワークに関連付けられた支払処理サーバ)に関連付けられたリモートサーバコンピュータであってもよい。第二のコンピュータは、安全なまたは暗号化されたデータベースから第二のベクトル
Figure 0007280285000031

を安全に取得できる。
いくつかの実施形態では、第一のベクトル
Figure 0007280285000032

および第二のベクトル
Figure 0007280285000033

は、生体認証ベクトルであってもよく、すなわち、第一のベクトル
Figure 0007280285000034

および第二のベクトル
Figure 0007280285000035

は、第一の生体認証テンプレートおよび第二の生体認証テンプレート(例えば、虹彩コード、指紋のデジタル表現、音声サンプル、DNAセグメントなど)に対応してもよい。第一のベクトル
Figure 0007280285000036

および第二のベクトル
Figure 0007280285000037

は、等しい長さであってもよく、すなわち、同じ数の構成要素を有してもよい。
ステップ504Aで、第一のコンピュータは、第一のランダムなベクトル
Figure 0007280285000038

を生成してもよい。第一のランダムなベクトル
Figure 0007280285000039

は、暗号的に安全な擬似ランダムな数値発生器(CSPRNG)の使用を含む、任意の適切な手段に従って生成され得る。第一のランダムなベクトル
Figure 0007280285000040

は、第一のベクトル
Figure 0007280285000041

と同じ長さであってもよく、すなわち、第一のベクトル
Figure 0007280285000042

と第一のランダムなベクトル
Figure 0007280285000043

は、同じ数の構成要素を有してもよい。例えば、第一のベクトル
Figure 0007280285000044

が、256個の1バイトの構成要素を含むベクトル化された虹彩コードを含む場合、第一のランダムなベクトル
Figure 0007280285000045

は、256個のランダムに生成されたバイトを含んでもよい。
同様に、ステップ504Bで、第二のコンピュータは第二のランダムなベクトル
Figure 0007280285000046

を生成してもよい。第二のランダムなベクトル
Figure 0007280285000047

は、CSPRNGの使用を含む任意の適切な手段を使用して同様に生成されてもよい。第二のランダムなベクトル
Figure 0007280285000048

は、第二のベクトル
Figure 0007280285000049

と同じ長さであってもよく、すなわち、第二のベクトル
Figure 0007280285000050

と第二のランダムなベクトル
Figure 0007280285000051

は、同じ数の構成要素を有してもよい。
ステップ506Aで、第一のコンピュータは、第一のベクトル
Figure 0007280285000052

と第一のランダムなベクトル
Figure 0007280285000053

を組み合わせることによって、第一のマスクされたベクトル
Figure 0007280285000054

を生成することができる。いくつかの実施形態では、第一のマスクされたベクトル
Figure 0007280285000055

は、第一のベクトル
Figure 0007280285000056

と第一のランダムなベクトル
Figure 0007280285000057

との合計と等しくてもよい。
Figure 0007280285000058
同様に、ステップ506Bで、第二のコンピュータは、第二のベクトル
Figure 0007280285000059

と第二のランダムなベクトル
Figure 0007280285000060

を組み合わせることによって第二のマスクされたベクトル
Figure 0007280285000061

を生成できる。いくつかの実施形態では、第二のマスクされたベクトル
Figure 0007280285000062

は、第二のベクトル
Figure 0007280285000063

と第二のランダムなベクトル
Figure 0007280285000064

の合計と等しくてもよい。
Figure 0007280285000065
ステップ508Aで、第一のコンピュータは、第一の公開鍵Pbと第一の秘密鍵Prとを含む第一のキーペアを生成できる。第一の公開鍵Pbは、暗号化関数Eの使用を可能にしてもよく、第一の秘密鍵Prは、復号関数Dの使用を可能にしてもよい。すなわち、第一の公開鍵Pbで暗号化されたデータ(例えば、ベクトル)は、第一の秘密鍵Prで復号され得る。
ステップ510Aで、第一のコンピュータは、第二の公開鍵Pb’および第二の秘密鍵Pr’を含む第二のキーペアを生成できる。第二の公開鍵Pb’は、暗号化関数E’の使用を可能にしてもよく、第二の秘密鍵Pr’は、復号関数D’の使用を可能にしてもよい。すなわち、第二の公開鍵Pb’で暗号化されたデータ(例えば、ベクトル)は、第二の秘密鍵Pr’で復号され得る。
同様に、ステップ508Bで、第二のコンピュータは、第三の公開鍵Pbおよび第三の秘密鍵Prを含む第三のキーペアを生成できる。第三の公開鍵Pbは、暗号化関数Eの使用を可能にしてもよく、第三の秘密鍵Prは、復号関数Dの使用を可能にしてもよい。すなわち、第三の公開鍵Pbで暗号化されたデータ(例えば、ベクトル)は、第三の秘密鍵Prで復号され得る。
同様に、ステップ510Bで、第二のコンピュータは、第四の公開鍵Pb’および第四の秘密鍵Pr’を含む第四のキーペアを生成できる。第四の公開鍵Pb’は、暗号化関数E’の使用を可能にしてもよく、第四の秘密鍵Pr’は、復号関数D’の使用を可能にしてもよい。すなわち、第四の公開鍵Pb’で暗号化されたデータ(例えば、ベクトル)は、第四の秘密鍵Pr’で復号され得る。
実施形態によっては、第一の公開鍵Pb、第一の秘密鍵Pr、第二の公開鍵Pb’、第二の秘密鍵Pr’、第三の公開鍵Pb、第三の秘密鍵Pr、第四の公開鍵Pb’、および第四の秘密鍵Pr’は、Paillier暗号鍵などの付加的準同型暗号鍵であってもよい。
これらの暗号キーペアの生成は、使用される暗号システムの性質によって異なる。次の暗号キーペアを生成する方法の例は、Paillier暗号の使用に対応する。第一に、第一のコンピュータまたは第二のコンピュータは、最大公約数pqおよび(p-1)(q-1)が1であるように、二つの大きな素数pおよびqをランダムかつ独立して選択できる。第二に、第一のコンピュータまたは第二のコンピュータは、
Figure 0007280285000066

および
Figure 0007280285000067

を計算でき、式中、lcmは、最小公倍数を決定するために使用される関数である。第三に、第一のコンピュータまたは第二のコンピュータは、
Figure 0007280285000068

であるように、ランダムな整数gを生成できる。第四に、第一のコンピュータまたは第二のコンピュータは、
Figure 0007280285000069

を計算することができる。(暗号化に使用される)公開鍵は、ペア(n、g)であり、一方、(復号に使用される)秘密鍵は、ペア(λ、μ)である。このプロセスは、生成されるキーの数に基づいて繰り返されることができ、例えば、第一のコンピュータは、第一の公開鍵Pb、第一の秘密鍵Pr、第二の公開鍵Pb’、および第二の秘密鍵Pr’を生成するためにこのプロセスを二回繰り返すことができ、第二のコンピュータは、第三の公開鍵Pb、第三の秘密鍵Pr、第四の公開鍵Pb’、および第四の秘密鍵Pr’を生成するために、プロセスを二回繰り返すことができる。
ステップ512Aで、第一のコンピュータは、第一の公開鍵Pbを使用して第一のマスクされたベクトル
Figure 0007280285000070

を暗号化することによって、第一の暗号化されたマスクされたベクトル
Figure 0007280285000071

を生成することができる。
同様に、ステップ514Aで、第一のコンピュータは、第二の公開鍵Pb’を使用して第一のランダムなベクトル
Figure 0007280285000072

を暗号化することによって、第一の暗号化されたランダムなベクトル
Figure 0007280285000073

を生成することができる。
ステップ512Bで、第二のコンピュータは、第三の公開鍵Pbを使用して第二のマスクされたベクトル
Figure 0007280285000074

を暗号化することによって、第二の暗号化されたマスクされたベクトル
Figure 0007280285000075

を生成できる。
同様に、ステップ514Bで、第二のコンピュータは、第四の公開鍵Pb’を使用して第二のランダムなベクトル
Figure 0007280285000076

を暗号化することによって、第二の暗号化されたランダムなベクトル
Figure 0007280285000077

を生成できる。
概して、本開示の実施形態では、暗号化されたベクトルは、ベクトルの各構成要素が暗号化されるベクトルを指す。たとえば、第一の暗号化されたマスクされたベクトル
Figure 0007280285000078

の場合、
Figure 0007280285000079
図4に戻ると、セットアップ段階404に続くのは、第一の伝送段階406である。第一の送信段階406では、第一のコンピュータおよび第二のコンピュータは、データを互いに送信することができる。このデータは、その後の中間計算段階408およびスカラー積計算段階412で使用することができる。
より具体的には、第一の伝送段階406では、第一のコンピュータは、第二のコンピュータに、第一の公開鍵Pb、第二の公開鍵Pb’、第一の暗号化されたマスクされたベクトル
Figure 0007280285000080

および第一の暗号化されたランダムなベクトル
Figure 0007280285000081

を送信することができ、第一の暗号化されたマスクされたベクトル
Figure 0007280285000082

は、第一の公開鍵Pbを使用して暗号化された第一のマスクされたベクトル
Figure 0007280285000083

であり、第一の暗号化されたランダムなベクトル
Figure 0007280285000084

は、第二の公開鍵Pb’を使用して暗号化された第一のランダムなベクトル
Figure 0007280285000085

である。
さらに、第一の伝送段階406は、第二のコンピュータから、第三の公開鍵Pb、第四の公開鍵Pb’、第二の暗号化されたマスクされたベクトル
Figure 0007280285000086

および第二の暗号化されたランダムなベクトル
Figure 0007280285000087

を受信する第一のコンピュータを備えてもよく、第二の暗号化されたマスクされたベクトルは
Figure 0007280285000088

第三の公開鍵Pbを使用して暗号化された第二のマスクされたベクトル
Figure 0007280285000089

であり、第二の暗号化されたランダムなベクトルは、第四の公開鍵Pb’を使用して暗号化された第二のランダムなベクトル
Figure 0007280285000090

である。
これらのデータ(すなわち、第一の公開鍵Pb、第二の公開鍵Pb’、第三の公開鍵Pb、第四の公開鍵Pb’、第一の暗号化されたマスクされたベクトル
Figure 0007280285000091

第二の暗号化されたマスクされたベクトル
Figure 0007280285000092

第一の暗号化されたランダムなベクトル
Figure 0007280285000093

および第二の暗号化されたランダムなベクトル
Figure 0007280285000094

は、任意の適切な形態で任意の適切なネットワークを介して送信され得る。例えば、これらのデータは、UDPまたはTCPパケットなどのデータパケットでインターネットなどのネットワークを介して送信され得る。
第一の伝送段階406の後、第一のコンピュータおよび第二のコンピュータ408は、図6を参照するとより良く理解され得る、中間計算段階408に進むことができる。
図6は、実施形態による方法の中間計算段階の間に実施されるステップのフローチャートを示す。
ステップ602Aで、第一のコンピュータは、第一のネゲーションベクトル
Figure 0007280285000095

を生成することができる。第一のネゲーションベクトル
Figure 0007280285000096

は、第一のベクトルのネゲーション
Figure 0007280285000097

を含んでもよく、すなわち、第一のネゲーションベクトル
Figure 0007280285000098

の各構成要素は、第一のベクトル
Figure 0007280285000099

の対応する構成要素の負の値と等しくてもよい。例えば、第一のベクトル
Figure 0007280285000100

の場合、第一のネゲーションベクトルは、
Figure 0007280285000101

である。
同様に、ステップ602Bで、第二のコンピュータは、第二のネゲーションベクトル
Figure 0007280285000102

を生成することができる。第二のネゲーションベクトル
Figure 0007280285000103

は、第二のベクトル
Figure 0007280285000104

のネゲーションを含んでもよく、すなわち、第二のネゲーションベクトル
Figure 0007280285000105

の各構成要素は、第二のベクトル
Figure 0007280285000106

の対応する構成要素の負の値と等しくてもよい。例えば、第二のベクトル
Figure 0007280285000107

の場合、第二のネゲーションベクトルは、
Figure 0007280285000108

である。
ステップ604Aで、第一のコンピュータは、第三の公開鍵Pbを使用して第一のネゲーションベクトル
Figure 0007280285000109

を暗号化することによって、第一の暗号化されたネゲーションベクトル
Figure 0007280285000110

を生成することができる。第三の公開鍵Pbは、セットアップ段階(図4のセットアップ段階404)の間に第二のコンピュータによって以前に生成され、第一の伝送段階(図4の第一の伝送段階406)の間に第一のコンピュータに送信された可能性がある。
ステップ606Aで、第一のコンピュータは、第二の暗号化されたマスクされたベクトル
Figure 0007280285000111

および第一の暗号化されたネゲーションベクトル
Figure 0007280285000112

に基づいて、第一の暗号化された差分ベクトル
Figure 0007280285000113

を生成することができる。第二の暗号化されたマスクされたベクトル
Figure 0007280285000114

は、第一の伝送段階の間に第一のコンピュータによって第二のコンピュータから受信されていてもよい。いくつかの実施形態では、第一のコンピュータは、第一の暗号化された差分ベクトル
Figure 0007280285000115

を生成するために、付加的準同型暗号化の特性を利用してもよい。これにより、第一のコンピュータは、第二の暗号化されたマスクされたベクトル
Figure 0007280285000116

を第一に復号することなく、第一の暗号化された差分ベクトル
Figure 0007280285000117

を生成できてもよい。
たとえば、Paillier暗号では、一般に、二つの暗号文cとdの積が、対応する平文の暗号化された合計と等しい。すなわち、
Figure 0007280285000118
結果として、第一のコンピュータは、第二の暗号化されたマスクされたベクトル
Figure 0007280285000119

の各構成要素に、第一の暗号化されたネゲーションベクトル
Figure 0007280285000120

の対応する構成要素を乗じることによって、第一の暗号化された差分ベクトル
Figure 0007280285000121

を生成することができる。
Figure 0007280285000122
Figure 0007280285000123
Figure 0007280285000124
Figure 0007280285000125
ステップ608Aで、第一のコンピュータは、第四の公開鍵Pb’を使用して第一のネゲーションベクトル
Figure 0007280285000126

を暗号化することによって、第二の暗号化されたネゲーションベクトル
Figure 0007280285000127

を生成することができる。第四の公開鍵Pb’は、セットアップ段階中に第二のコンピュータによって生成され、第一の伝送段階の間に第一のコンピュータに送信された可能性がある。
ステップ610Aで、第一のコンピュータは、第二の暗号化されたランダムなベクトル
Figure 0007280285000128

および第二の暗号化されたネゲーションベクトル
Figure 0007280285000129

に基づいて、第二の暗号化された差分ベクトル
Figure 0007280285000130

を生成することができる。第二の暗号化されたランダムなベクトル
Figure 0007280285000131

は、第一の伝送段階の間に第二のコンピュータから受信されていてもよい。いくつかの実施形態では、第一のコンピュータは、第二の暗号化された差分ベクトル
Figure 0007280285000132

を生成するために、付加的準同型暗号化の特性を利用してもよい。これは、ステップ606Aで第一の暗号化された差分ベクトルを生成するために使用されたのと同様の一連のステップまたは演算を使用して達成することができる。すなわち、第二の暗号化されたランダムなベクトル
Figure 0007280285000133

の各暗号化された構成要素に、第二の暗号化されたネゲーションベクトル
Figure 0007280285000134

の対応する構成要素を乗じる。
Figure 0007280285000135
Figure 0007280285000136
Figure 0007280285000137
Figure 0007280285000138
ステップ604Bで、第二のコンピュータは、第一の公開鍵Pbを使用して第二のネゲーションベクトル
Figure 0007280285000139

を暗号化することによって、第三の暗号化されたネゲーションベクトル
Figure 0007280285000140

を生成することができる。第一の公開鍵Pbは、セットアップ段階の間に第一のコンピュータによって生成され、第一の伝送段階の間に第二のコンピュータに送信された可能性がある。
ステップ606Bで、第二のコンピュータは、第一の暗号化されたマスクされたベクトル
Figure 0007280285000141

および第三の暗号化されたネゲーションベクトル
Figure 0007280285000142

に基づいて、第三の暗号化された差分ベクトル
Figure 0007280285000143

を生成することができる。第二のコンピュータは、第一の伝送段階の間に、第一のコンピュータから第一の暗号化されたマスクされたベクトル
Figure 0007280285000144

を受信していてもよい。いくつかの実施形態では、第二のコンピュータは、第三の暗号化された差分ベクトル
Figure 0007280285000145

を生成するために、付加的準同型暗号化の特性を利用してもよい。これは、ステップ606Aで第一の暗号化された差分ベクトルを生成するために使用されたのと同様の一連のステップまたは演算を使用して達成することができる。すなわち、第一の暗号化されたマスクされたベクトル
Figure 0007280285000146

の各暗号化された構成要素と、第三の暗号化されたネゲーションベクトル
Figure 0007280285000147

の対応する暗号化された構成要素と、を乗じる。
Figure 0007280285000148
Figure 0007280285000149
Figure 0007280285000150
Figure 0007280285000151
ステップ608Bで、第二のコンピュータは、第二の公開鍵Pb’を使用して第二のネゲーションベクトル
Figure 0007280285000152

を暗号化することによって、第四の暗号化されたネゲーションベクトル
Figure 0007280285000153

を生成できる。第二の公開鍵Pb’は、セットアップ段階の間に第一のコンピュータによって以前に生成され、第一の伝送段階の間に第二のコンピュータに送信された可能性がある。
ステップ610Bで、第二のコンピュータは、第一の暗号化されたランダムなベクトル
Figure 0007280285000154

および第四の暗号化されたネゲーションベクトル
Figure 0007280285000155

に基づいて、第四の暗号化された差分ベクトル
Figure 0007280285000156

を生成することができる。第二のコンピュータは、第一の伝送段階の間に、第一のコンピュータから第一の暗号化されたランダムなベクトルを受信していてもよい。いくつかの実施形態では、第二のコンピュータは、第四の暗号化された差分ベクトル
Figure 0007280285000157

を生成するために、付加的準同型暗号化の特性を利用してもよい。これは、ステップ606Bで第三の暗号化された差分ベクトルを生成するために使用された同様の一連のステップまたは演算を使用して達成され得る。すなわち、第二の暗号化されたランダムなベクトル
Figure 0007280285000158

の各暗号化された構成要素に、第二の暗号化されたネゲーションベクトル
Figure 0007280285000159

の対応する暗号化された構成要素を乗じる。
Figure 0007280285000160
Figure 0007280285000161
Figure 0007280285000162
Figure 0007280285000163
ステップ612Aで、第一のコンピュータは、第一の置換πA1および第二の置換πA2を生成することができる。上述のように、置換は、一組のまたは複数の物を順序付けまたは配置できる方法である。置換は、置換に従って何かを「置換」するために使用されてもよく、置換はベクトルとして表されてもよい。一例として、置換
Figure 0007280285000164

は、三つの構成要素を含むベクトルについて、第三の構成要素が第一の位置に位置されるべきであり、第一の構成要素が第二の位置に位置されるべきであり、第二の構成要素が第三の位置に位置されるべきであることを示し得る。例えば、ベクトル
Figure 0007280285000165

に適用される置換
Figure 0007280285000166

は、置換されたベクトル
Figure 0007280285000167

をもたらすことができる。
第一のコンピュータは、任意の数の方法で第一の置換πA1および第二の置換πA2を生成できる。例として、第一のコンピュータは、アルゴリズム(例えば、フィッシャーイェーツのシャッフルなど)を使用して、順序付けられた配列(すなわち、(1、2、...、n))をシャッフルしてもよい。シャッフルされた順序付けられた配列は、第一の置換πA1として使用できる。第一のコンピュータは、同様のプロセスを使用して第二の置換を生成し、順序付けられた配列を二回シャッフルし、結果を第二の置換πA2として使用することができる。第一の置換πA2および第二の置換πA2は、第一のベクトル
Figure 0007280285000168

と同じ数の構成要素を有してもよい。
ステップ612Bで、第二のコンピュータは、第三の置換πB1および第四の置換πB2を生成することができる。第一の置換πA1および第二の置換πA2を参照して上述したように、第三の置換πB1および第四の置換πB2は、例えば、フィッシャーイェーツなどのシャッフリングアルゴリズムを使用して、順序付けられた配列をシャッフルするなど、任意の数の方法で生成することができる。
ステップ614Aで、第一のコンピュータは、第一の置換πA1および第一の暗号化された差分ベクトル
Figure 0007280285000169

を使用して、第一の置換された暗号化された差分ベクトル
Figure 0007280285000170

を生成することができる。第一のコンピュータは、第一の置換πA1を使用して第一の暗号化された差分ベクトル
Figure 0007280285000171

を置換することによって、第一の置換された暗号化された差分ベクトル
Figure 0007280285000172

を生成してもよい。すなわち、第一の置換πA1を第一の暗号化された差分ベクトル
Figure 0007280285000173

に適用する。これは、第一の置換πA1の値または構成要素をインデックスとして使用して、第一の暗号化された差分ベクトル
Figure 0007280285000174

を再順序付けすることによって達成され得る。上記で使用した例を繰り返すために、ベクトル
Figure 0007280285000175

に適用される置換
Figure 0007280285000176

は、置換されたベクトル
Figure 0007280285000177

をもたらすことができる。同様に、第一の暗号化された差分ベクトル
Figure 0007280285000178

に適用される第一の置換πA1は、第一の置換された暗号化された差分ベクトル
Figure 0007280285000179

をもたらすことができる。
ステップ616Aで、第一のコンピュータは、第二の置換πA2と第二の暗号化された差分ベクトル
Figure 0007280285000180

を使用して、第二の置換された暗号化された差分ベクトル
Figure 0007280285000181

を生成することができる。これは、ステップ614Aを参照して上述したのと実質的に同じ方法で達成され得る。すなわち、第一のコンピュータは、第二の置換πA2を使用して第二の暗号化された差分ベクトル
Figure 0007280285000182

の構成要素を再順序付けすることができ、第二の置換された暗号化された差分ベクトル
Figure 0007280285000183

を生成する。
ステップ614Bで、第二のコンピュータは、第三の置換πB1および第三の暗号化された差分ベクトル
Figure 0007280285000184

を使用して、第三の置換された暗号化された差分ベクトル
Figure 0007280285000185

を生成できる。これは、ステップ614Aおよび616Aを参照して上述したのと実質的に同じ方法で達成することができる。すなわち、第二のコンピュータは、第三の置換πB1を使用して、第三の暗号化された差分ベクトル
Figure 0007280285000186

の構成要素を再順序付けして第三の置換された暗号化された差分ベクトル
Figure 0007280285000187

を生成することができる。
ステップ616Bで、第二のコンピュータは、第四の置換πB2および第四の暗号化された差分ベクトル
Figure 0007280285000188

を使用して第四の置換された暗号化された差分ベクトル
Figure 0007280285000189

を生成できる。これは、ステップ614A、614B、および616Aを参照して上述したのと実質的に同じ方法で達成され得る。すなわち、第二のコンピュータは、第四の置換πB2を使用して、第四の暗号化された差分ベクトル
Figure 0007280285000190

の構成要素を再順序付けして、第四の置換された暗号化された差分ベクトル
Figure 0007280285000191

を生成することができる。
当然のことながら、いくつかの実施形態では、中間計算段階の間に実施されるいくつかのステップは、代わりに、より早いまたは後の段階で実施され得る。例として、第一の置換πA1、第二の置換πA1、第三の置換πB1、および第四の置換πB2は、セットアップ段階(図4のセットアップ段階404)の間に生成されてもよい。同様に、第一のネゲーションベクトル
Figure 0007280285000192

および第二のネゲーションベクトル
Figure 0007280285000193

も、記載される中間計算段階の間ではなく、セットアップ段階の間に生成されてもよい。
図4に戻ると、中間計算段階408の後、第一のコンピュータおよび第二のコンピュータは、第二の伝送段階410を実行し得る。第二の伝送段階410では、第一のコンピュータおよび第二のコンピュータは、中間計算段階408の間に生成されたデータを互いに送信してもよい。これらのデータは、スカラー積計算段階412におけるスカラー積
Figure 0007280285000194

を計算するために、以下に説明するように使用され得る。
より具体的には、第二の伝送段階410では、第一のコンピュータは、第二のコンピュータに、第一の置換された暗号化された差分ベクトル
Figure 0007280285000195

および第二の置換された暗号化された差分ベクトル
Figure 0007280285000196

を送信してもよい。同様に、第二の伝送段階410では、第一のコンピュータは、第二のコンピュータから、第三の置換された暗号化された差分ベクトル
Figure 0007280285000197

および第四の置換された暗号化された差分ベクトル
Figure 0007280285000198

を受信し得、第三の置換された暗号化された差分ベクトル
Figure 0007280285000199

は、第一の公開鍵Pbを使用して暗号化され、第三の置換πB1を使用して置換され、第四の置換された暗号化された差分ベクトル
Figure 0007280285000200

は、第二の公開鍵Pb’を使用して暗号化され、第四の置換πB2を使用して置換される。
第一の伝送段階406にあるように、これらのデータ(すなわち、第一の置換された暗号化された差分ベクトル
Figure 0007280285000201

第二の置換された暗号化された差分ベクトル
Figure 0007280285000202

第三の置換された暗号化された差分ベクトル
Figure 0007280285000203

および第四の置換された暗号化された差分ベクトル
Figure 0007280285000204

)は、任意の適切な形態で任意の適切なネットワークを介して送信され得る。例えば、これらのデータは、UDPまたはTCPパケットなどのデータパケットでインターネットなどのネットワークを介して送信され得る。
第二の伝送段階410の後、第一のコンピュータおよび第二のコンピュータは、スカラー積計算段階412に進み得、そこで第一のコンピュータおよび第二のコンピュータは、第一のベクトル
Figure 0007280285000205

および第二のベクトル
Figure 0007280285000206

のスカラー積を計算する。スカラー積計算段階412は、図7を参照するとより良く理解できる。
ステップ702Aで、第一のコンピュータは、第一の秘密鍵Prを使用して第三の置換された暗号化された差分ベクトル
Figure 0007280285000207

を復号することによって、第三の置換された差分ベクトル
Figure 0007280285000208

を生成できる。第一のコンピュータは、第一のマスクされたベクトル
Figure 0007280285000209

の構成要素の値を知っているが、第三の置換πB1は第一のコンピュータにはわからないため、第一のコンピュータは、第二のベクトル
Figure 0007280285000210

の構成要素の値を決定することはできない。したがって、第二のベクトル
Figure 0007280285000211

は、第一のコンピュータから保護される。これは、第二のベクトル
Figure 0007280285000212

に対応する人のプライバシーを維持しうる(例えば、第二のベクトル
Figure 0007280285000213

が人に対応する生体認証ベクトルである場合)。
ステップ702Bで、第二のコンピュータは、第三の秘密鍵Prを使用して第一の置換された暗号化された差分ベクトル
Figure 0007280285000214

を復号することによって、第一の置換された差分ベクトル
Figure 0007280285000215

を生成できる。第二のコンピュータは、第二のマスクされたベクトル
Figure 0007280285000216

の構成要素の値を知っているが、第一の置換πA1は第二のコンピュータにはわからないため、第二のコンピュータは第一のベクトル
Figure 0007280285000217

の構成要素の値を決定することはできない。したがって、第一のベクトル
Figure 0007280285000218

は、第二のコンピュータから保護される。これは、第一のベクトル
Figure 0007280285000219

に対応する個人のプライバシーを維持しうる(例えば、第一のベクトル
Figure 0007280285000220

が人に対応する生体認証ベクトルである場合)。
ステップ704Aで、第一のコンピュータは、第二の秘密鍵Pr’を使用して第四の置換された暗号化された差分ベクトル
Figure 0007280285000221

を復号することによって、第四の置換された差分ベクトル
Figure 0007280285000222

を生成できる。再度、第二のベクトル
Figure 0007280285000223

は、第一のコンピュータから保護されるが、これは、第一のコンピュータは第一のランダムなベクトル
Figure 0007280285000224

の構成要素の値を知っているが、第一のコンピュータは第四の置換πB2を知らないためである。
ステップ704Bで、第二のコンピュータは、第四の秘密鍵Pr’を使用して第二の置換された暗号化された差分ベクトル
Figure 0007280285000225

を復号することによって、第二の置換された差分ベクトル
Figure 0007280285000226

を生成できる。再度、第一のベクトル
Figure 0007280285000227

は第二のコンピュータから保護されるが、これは、第二のコンピュータは第二のランダムなベクトル
Figure 0007280285000228

の構成要素の値を知っているが、第二のコンピュータは第二の置換πA2を知らないためである。
ステップ706Aで、第一のコンピュータは、第一のマスクされたベクトルの二乗の大きさα’を計算することができる。第一のマスクされたベクトルの二乗の大きさα’の値は、それ自体を有する第一のマスクされたベクトル
Figure 0007280285000229

のスカラー積と等しく、すなわち、
Figure 0007280285000230
第一のコンピュータは、第一のマスクされたベクトル
Figure 0007280285000231

の各構成要素の値を二乗して、次に、結果として得られる二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って、第一のマスクされたベクトルの二乗の大きさα’を計算してもよい。
Figure 0007280285000232
同様に、ステップ706Bで、第二のコンピュータは、第二のマスクされたベクトルの二乗の大きさβ’を計算できる。第二のマスクされたベクトルの二乗の大きさβ’の値は、それ自体を有する第二のマスクされたベクトル
Figure 0007280285000233

のスカラー積と等しい、すなわち、
Figure 0007280285000234
第二のコンピュータは、第二のマスクされたベクトル
Figure 0007280285000235

の各構成要素の値を二乗して、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って、第二のマスクされたベクトルの二乗の大きさβ’を計算してもよい。
Figure 0007280285000236
ステップ708Aで、第一のコンピュータは、第一のランダムなベクトルの二乗の大きさρを計算できる。第一のランダムなベクトルの二乗の大きさρの値は、それ自体を有する第一のランダムなベクトル
Figure 0007280285000237

のスカラー積と等しく、すなわち、
Figure 0007280285000238
第一のコンピュータは、第一のランダムなベクトル
Figure 0007280285000239

の各構成要素の値を二乗して、次いで、結果として得られる二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って第一のランダムなベクトルの二乗の大きさρを計算してもよい。
Figure 0007280285000240
同様に、ステップ708Bで、第二のコンピュータは、第二のランダムなベクトルの二乗の大きさρを計算できる。第二のランダムなベクトルの二乗の大きさρの値は、それ自体を有する第二のランダムなベクトル
Figure 0007280285000241

のスカラー積と等しく、すなわち、
Figure 0007280285000242
第二のコンピュータは、第二のランダムなベクトル
Figure 0007280285000243

の各構成要素の値を二乗して、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って第二のランダムなベクトルの二乗の大きさρを計算してもよい。
Figure 0007280285000244
ステップ710Aで、第一のコンピュータは、第三の置換された差分ベクトルの二乗の大きさδを計算できる。第三の置換された差分ベクトルの二乗の大きさδの値は、それ自体を有する第三の置換された差分ベクトル
Figure 0007280285000245

のスカラー積と等しい、すなわち、
Figure 0007280285000246
第一のコンピュータは、第三の置換された差分ベクトル
Figure 0007280285000247

の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って、第三の置換された差分ベクトルの二乗の大きさδを計算してもよい。
Figure 0007280285000248
同様に、ステップ710Bで、第二のコンピュータは、第一の置換された差分ベクトルの二乗の大きさδを計算できる。第一の置換された差分ベクトルの二乗の大きさδの値は、それ自体を有する第一の置換された差分ベクトル
Figure 0007280285000249

のスカラー積と等しい、すなわち、
Figure 0007280285000250
第二のコンピュータは、第一の置換された差分ベクトル
Figure 0007280285000251

の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って、第一の置換された差分ベクトルの二乗の大きさδを計算してもよい。
Figure 0007280285000252
ステップ712Aで、第一のコンピュータは、第四の置換された差分ベクトルの二乗の大きさσを計算できる。第四の置換された差分ベクトルの二乗大きさσの値は、それ自体を有する第四の置換された差分ベクトル
Figure 0007280285000253

のスカラー積と等しく、すなわち、
Figure 0007280285000254
第一のコンピュータは、第四の置換された差分ベクトル
Figure 0007280285000255

の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って、第四の置換された差分ベクトルの二乗の大きさσを計算してもよい。
Figure 0007280285000256
同様に、ステップ712Bで、第二のコンピュータは、第二の置換された差分ベクトルの二乗の大きさσを計算できる。第二の置換された差分ベクトルの二乗大きさσの値は、それ自体を有する第二の置換された差分ベクトル
Figure 0007280285000257

のスカラー積と等しい、すなわち、
Figure 0007280285000258
第二のコンピュータは、第二の置換された差分ベクトル
Figure 0007280285000259

の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って、第四の置換された差分ベクトルの二乗の大きさσを計算してもよい。
Figure 0007280285000260
ステップ714Aで、第一のコンピュータは、第一のマスクされたベクトルの二乗の大きさα’、第一のランダムなベクトルの二乗の大きさρ、第三の置換された差分ベクトルの二乗の大きさδ、および第四の置換された差分ベクトルの二乗の大きさσに基づいて、第一のベクトル
Figure 0007280285000261

と第二のベクトル
Figure 0007280285000262

のスカラー積を計算してもよい。いくつかの実施形態では、第一のコンピュータは、以下の式に基づいて、第一のベクトル
Figure 0007280285000263

と第二のベクトル
Figure 0007280285000264

のスカラー積を計算してもよい。
Figure 0007280285000265
同様に、ステップ714Bで、第二のコンピュータは、第二のマスクされたベクトルの二乗の大きさβ’、第二のランダムなベクトルの二乗の大きさρ、第一の置換されたベクトルの二乗の大きさδ、および第二の置換されたベクトルの二乗の大きさσに基づいて、第一のベクトル
Figure 0007280285000266

と第二のベクトル
Figure 0007280285000267

のスカラー積を計算してもよい。いくつかの実施形態では、第二のコンピュータは、以下の式に基づいて、第一のベクトル
Figure 0007280285000268

と第二のベクトル
Figure 0007280285000269

のスカラー積を計算してもよい。
Figure 0007280285000270
要約として、第一のベクトル
Figure 0007280285000271

と第二のベクトル
Figure 0007280285000272

のスカラー積を計算して、上述のようにスカラー積を正確に計算するため、第一のコンピュータおよび第二のコンピュータによって使用される方法を示すのが有用であり得る。
定義上、二つのベクトルのスカラー積は、各ベクトルの構成要素の積の合計に等しいことを思い出されたい。
Figure 0007280285000273
上述のように、以下の式に従って、第一のコンピュータは、第一のマスクされたベクトルの二乗の大きさα’、第一のランダムなベクトルの二乗の大きさρ、第三の置換されたベクトルの二乗の大きさδ、および第四の置換されたベクトルの二乗の大きさσを使用して、第一のベクトル
Figure 0007280285000274

と第二のベクトル
Figure 0007280285000275

のスカラー積を計算する。
Figure 0007280285000276
繰り返すが、所与のベクトル
Figure 0007280285000277

の二乗の大きさは、ベクトル
Figure 0007280285000278

の二乗の構成要素の合計として定義される。
Figure 0007280285000279
上記で定義されるように、第三の置換された差分ベクトル
Figure 0007280285000280

。第三の置換された差分ベクトルの二乗の大きさδは、以下のように表され得る。
Figure 0007280285000281
加算の可換特性のため、合計は置換から独立しており、したがって、
Figure 0007280285000282
Figure 0007280285000283
Figure 0007280285000284
スカラー積および第一のマスクされたベクトルの二乗の大きさα’の定義により、第三の置換された差分ベクトルの二乗の大きさδは、さらに以下に表すことができる。
Figure 0007280285000285
同様の論法を使用して、第四の置換された差分ベクトルσを次のように表現できる。
Figure 0007280285000286
Figure 0007280285000287
Figure 0007280285000288
Figure 0007280285000289
Figure 0007280285000290
Figure 0007280285000291
Figure 0007280285000292
スカラー積の式に戻り、第三の置換された差分ベクトルの二乗の大きさδと第四の置換された差分ベクトルの二乗の大きさσの式を置換する。
Figure 0007280285000293
Figure 0007280285000294
類似の条件でグループ化する
Figure 0007280285000295
Figure 0007280285000296
第一のマスクされたベクトル
Figure 0007280285000297

は、第一のベクトル
Figure 0007280285000298

と第一のランダムなベクトル
Figure 0007280285000299

の合計と等しいことを思い出されたい。
Figure 0007280285000300
スカラー積の式は、以下のように簡略化できる。
Figure 0007280285000301
Figure 0007280285000302
Figure 0007280285000303
これは、第一のコンピュータが、第一のベクトル
Figure 0007280285000304

と第二のベクトル
Figure 0007280285000305

のスカラー積を計算するのに使用する式の精度を示す。
同様に、第二のコンピュータは、第二のマスクされたベクトルの二乗の大きさβ’、第二のランダムなベクトルの二乗の大きさρ、第一の置換された差分ベクトルの二乗の大きさδ、および第二の置換された差分ベクトルの二乗の大きさσを以下の式に従って用いて、第一のベクトル
Figure 0007280285000306

と第二のベクトル
Figure 0007280285000307

のスカラー積を計算する。
Figure 0007280285000308
同様の論法を使用して、第一の置換された差分ベクトルの二乗の大きさδの式を決定することができる。
Figure 0007280285000309
Figure 0007280285000310
Figure 0007280285000311
Figure 0007280285000312
Figure 0007280285000313
Figure 0007280285000314
Figure 0007280285000315
同様に、第二の置換された差分ベクトルの二乗の大きさσに対する式を決定することができる。
Figure 0007280285000316
Figure 0007280285000317
Figure 0007280285000318
Figure 0007280285000319
Figure 0007280285000320
Figure 0007280285000321
Figure 0007280285000322
スカラー積の式に戻り、第一の置換された差分ベクトルの二乗の大きさδと第二の置換された差分ベクトルの二乗の大きさσの式を置換する。
Figure 0007280285000323
Figure 0007280285000324
類似の条件でグループ化する
Figure 0007280285000325
Figure 0007280285000326
第二のマスクされたベクトル
Figure 0007280285000327

は、第二のベクトル
Figure 0007280285000328

と第二のランダムなベクトル
Figure 0007280285000329

の合計と等しい。
Figure 0007280285000330
スカラー積の式は、以下のように簡略化できる。
Figure 0007280285000331
Figure 0007280285000332
Figure 0007280285000333
これは、第二のコンピュータによって使用される方程式が、第一のベクトル
Figure 0007280285000334

と第二のベクトル
Figure 0007280285000335

のスカラー積を計算するのに正確であることを示す。
図7に戻ると、ステップ716Aで、第一のコンピュータは、スカラー積またはスカラー積から導出された値を、第一の所定の閾値Τと比較してもよく、スカラー積またはスカラー積から導出された値が、第一の所定の閾値を超える場合(すなわち、
Figure 0007280285000336

)、第一のコンピュータは、支払取引や、第一のコンピュータのユーザまたは所有者のために安全な建物に入場することなど、第二のコンピュータと相互作用を実施してもよい(すなわち、図4の相互作用段階414の間)。スカラー積から導出され得る値の例として、第一のベクトル
Figure 0007280285000337

と第二のベクトル
Figure 0007280285000338

との間の角度、または第一のベクトル
Figure 0007280285000339

と第二のベクトル
Figure 0007280285000340

との間の角度のコサイン、または第一のベクトル
Figure 0007280285000341

と第二のベクトル
Figure 0007280285000342

との間の角度の別の三角関数、またはマッチスコア、距離メトリックなどのいくつかの他の値が挙げられる。
例として、一致基準が、第一のベクトル
Figure 0007280285000343

と第二のベクトル
Figure 0007280285000344

との間の角度が5度以下であり、スカラー積から導出された値が第一のベクトル
Figure 0007280285000345

と第二のベクトル
Figure 0007280285000346

との間の角度のコサインである場合、第一の所定の閾値Τは、
Figure 0007280285000347

に等しくなり得る。スカラー積から導出された値が第一の所定の閾値Τよりも大きい場合、第一のベクトル
Figure 0007280285000348

と第二のベクトル
Figure 0007280285000349

との間の角度差が5度以下であり、潜在的に一致を示すことを示す。
いくつかの実施形態では、第一のベクトル
Figure 0007280285000350

および第二のベクトル
Figure 0007280285000351

は、第一の生体認証テンプレートおよび第二の生体認証テンプレートにそれぞれ対応することができ、第一の所定の閾値Τは、生体認証一致閾値であってもよい。
ステップ716Bで、第二のコンピュータは、スカラー積またはスカラー積から導出された値(例えば、第一のベクトル
Figure 0007280285000352

と第二のベクトル
Figure 0007280285000353

との間の角度、または第一のベクトル
Figure 0007280285000354

と第二のベクトル
Figure 0007280285000355

の間の角度の三角関数)を、第二の所定の閾値Τと比較してもよく、スカラー積またはスカラー積から導出された値が、第二の所定の閾値を超える場合、(すなわち、
Figure 0007280285000356

)第二のコンピュータは、支払い取引の実行、または安全な建物への第一のコンピュータのユーザのアクセスの許可など、第一のコンピュータと相互作用を実施してもよい(すなわち、図4の相互作用段階414の間)。
いくつかの実施形態では、第一の所定の閾値Τおよび第二の所定の閾値Τは、等しくなくてもよく、第一のコンピュータまたは第二のコンピュータのいずれかが、相互作用を実行するためより高い閾値を有し得ることを示す。しかしながら、他の実施形態では、第一の所定の閾値Τおよび第二の所定の閾値Τが等しいことは有利であり得る。
いくつかの実施形態では、スカラー積またはスカラー積から導出された値を第一の所定の閾値Τと比較した後、第一のコンピュータは、第一のコンピュータが比較に満足し、相互作用を進めることを示す表示メッセージを第二のコンピュータに送信してもよい。同様に、スカラー積またはスカラー積から導出された値を第二の所定の閾値Τと比較した後、第二のコンピュータは、第二のコンピュータが比較に満足し、相互作用に進むことを示す表示メッセージを第一のコンピュータに送信してもよい。代替でまたは追加で、第一のコンピュータおよび/または第二のコンピュータの各々は、適切な一致が判定される(例えば、緑色の光)、または判定されない(例えば、赤色の光)ときに、インジケータ(例えば、ディスプレイ上に)を含み得る。
スカラー積をそれぞれの閾値と比較する両方のコンピュータの利点は、両方のコンピュータが、スカラーがそれぞれの閾値を超えることを確認できることである。例えば、第一のコンピュータのみがスカラー積をそのそれぞれの閾値と比較した場合、第二のコンピュータは、第一のコンピュータがスカラー積を正しく計算したこと、および第一のコンピュータがスカラー積が第一の所定の閾値を超えることを正直に示したことを信頼しなければならない。しかし、両方のコンピュータがスカラー積を計算し、スカラー積またはスカラー積から導出された値をそれぞれの閾値と比較するため、各コンピュータは計算を確認でき、どちらのコンピュータも他方のコンピュータをだませない。
図4に戻ると、スカラー積計算段階412の後、第一のコンピュータおよび第二のコンピュータは、相互作用段階414で相互作用を実行し得る。相互作用は、スカラー積、またはスカラー積から導出された値(例えば、角度、角度の発見的評価、角度のコサイン、角度のコサインの発見的評価、別の距離メトリックなど)が、図7を参照して説明されるように、所定の閾値を超える。
相互作用段階414の相互作用は、多くの形態を取り得る。図8は、第一の例示的な相互作用、支払取引のブロック図を示す。図9は、第二の例示的な相互作用、建物アクセス順序のブロック図を示す。
図8は、例示的な取引処理システムを示す。この取引処理システムは、第一のコンピュータ804と第二のコンピュータ806との間の第一の例示的な相互作用の一部として使用され得る。
ユーザ802は、第一のコンピュータ804(例えば、スマートフォン)を操作する顧客であってもよい。ユーザ802は、リソースプロバイダ(例えば、リソースプロバイダのコンピュータ810を操作する小売業者)から商品またはサービスを購入することを望む場合がある。リソースプロバイダは、アクセス端末808(例えば、POS端末)を追加的に操作し得る。リソースプロバイダ810は、アクワイアラコンピュータ812および支払処理ネットワーク814を介して発行人のコンピュータ816と通信することができる。
支払処理ネットワーク814は、承認サービス、例外ファイルサービス、ならびに清算および決済サービスをサポートし配信するのに使用される、データ処理サブシステム、ネットワーク、および演算を含んでいてもよい。例示的な支払処理ネットワーク814は、VisaNet(商標)を含んでいてもよい。VisaNet(商標)などの決済処理ネットワークは、クレジットカード取引、デビットカード取引、および他の種類の商取引を処理することができる。特にVisaNet(商標)には、承認要求を処理するVIPシステム(Visa統合支払システム)ならびに清算および決済サービスを実施するBase IIシステムが含まれる。支払処理ネットワークは、インターネットを含む、任意の好適な有線または無線ネットワークを使用することができる。
生体認証ベクトルに基づくプライバシー保護スカラー積計算を使用した例示的な支払取引は、以下に説明され得る。ユーザ802は、第一のコンピュータ804およびアクセス端末808が例えば、近距離無線通信を介して通信できるように、第一のコンピュータ804をアクセス端末808と接触させてもよい。第一のコンピュータ804は、ユーザ802が物品またはサービスに対して支払いを行うことを望む端末808にアクセスするように通信することができる。アクセス端末808は、発行人によって管理されるユーザ802に関連付けられた支払口座と、アクワイアラによって管理されるリソースプロバイダに関連付けられた支払アカウントとの間の支払を成立させるために使用できるアクセストークンなどの証明書を要求してもよい。
アクセストークンを取得するために、第一のコンピュータ804および第二のコンピュータ806は、第一のコンピュータ804に格納された第一の生体認証ベクトルおよび第二のコンピュータ806上の生体認証ベクトルデータベースに格納された第二の生体認証ベクトルのスカラー積を計算するために、プライバシー保護スカラー積計算を実行し得る。第一のコンピュータ804および第二のコンピュータ806は、図4~7を参照して上述したスカラー積計算を実行してもよい。スカラー積を計算する際、第二のコンピュータ806は、スカラー積またはスカラー積から導出された値を所定の閾値と比較し得る。スカラー積またはスカラー積から導出された値が所定の閾値を超える場合、第二のコンピュータ806は、アクセストークンを第一のコンピュータ804に送信し得る(この送信は、第一のコンピュータ804と第二のコンピュータ806との間の相互作用を含み得る)。
第二のコンピュータ806からアクセストークンを受信した後、第一のコンピュータ804は、アクセストークンおよび任意の追加のアクセス証明書をアクセス端末808に送信してもよい。次に、アクセス端末808と通信して動作するリソースプロバイダコンピュータ810は、任意の追加の取引情報(例えば、取引金額、小売業者固有の情報など)と共にアクセス端末808によって受信された情報を含む承認要求メッセージを生成し、この情報をアクワイアラコンピュータ812に電子的に送信し得る。その後、アクワイアラコンピュータ812は、承認要求メッセージを受信し、処理し、承認のために支払処理ネットワーク814を介して発行人コンピュータ816に転送することができる。発行人コンピュータ816は、承認応答メッセージで応答してもよい。承認応答メッセージは、リソースプロバイダコンピュータ810、アクワイアラコンピュータ812、および支払処理ネットワーク814を介して、発行人コンピュータ816からアクセス端末808に送信されてもよい。
一日の終わりに、または他の好適な時間間隔で、アクワイアラコンピュータ812と、支払処理ネットワーク814と、発行人コンピュータ816との間の清算および決済処理が、取引に対して行われ得る。
図9は、いくつかの実施形態による第二の例示的な相互作用を示す。ユーザ902は、安全な施設である建物910(すなわち、安全なアパート複合施設または政府管理ビル)へアクセスしたいと考えている。建物910へのドアは、リソースプロバイダコンピュータ908によってロックされ、制御される。建物910にアクセスするために、ユーザ902は、アクセストークンまたは別の証明書を、第一のコンピュータ904(例えば、ユーザ902のスマートフォン)を介してリソースプロバイダのコンピュータ908に提供する必要がある。
ユーザ902は、第二のコンピュータ906が関与する生体認証システムに以前に登録していてもよい。第二のコンピュータ906は、ユーザ902に対応する生体認証ベクトル(第二のベクトル)を生体認証データベースに格納してもよい。同様に、第一のコンピュータ904は、ユーザ902に対応する保存された生体認証ベクトル(第一のベクトル)をセキュア要素上に格納してもよい。あるいは、ユーザ902は、第一のコンピュータ904を使用して、例えば、スマートフォンカメラを自分の目に向け、写真を撮ることによって、生体認証インスタンスをキャプチャし、キャプチャされた生体認証インスタンスをベクトル化してもよい。
生体認証システムの一部として、第一のコンピュータ904および第二のコンピュータ906は、ユーザ902を認証するために、第一のベクトルと第二のベクトルのスカラー積を計算できる。スカラー積を計算した後(図4~7を参照して上述した通り)、第二のコンピュータ906は、スカラー積またはスカラー積から導出された値(例えば、第一のベクトルと第二のベクトルとの間の角度)を所定の閾値と比較することができる。スカラー積またはスカラー積から導出された値が所定の閾値を超える場合、ユーザ902は認証され得る。続いて、第二のコンピュータ906は、リソースプロバイダコンピュータ908に命令を送信して、リソースプロバイダコンピュータ908に、ドアを開けて、ユーザ902が建物910へアクセスするのを許可するように命令することができる。あるいは、第二のコンピュータ906は、アクセストークンを第一のコンピュータ904に発行することができる。第一のコンピュータ904は、その後、このアクセストークンをリソースプロバイダ908に(例えば、近距離無線通信を介して、またはインターネットもしくはLANなどのネットワークを介して)提供することができる。リソースプロバイダコンピュータ908は、アクセストークンを検証し、ユーザ902に建物910へのアクセスを認めることができる。
本明細書に記述したいずれのコンピュータシステムも、任意の適切な数のサブシステムを利用することができる。いくつかの実施形態では、コンピュータシステムは、単一のコンピュータ装置を含み、サブシステムはコンピュータ装置の構成要素であり得る。他の実施形態では、コンピュータシステムは、それぞれが内部構成要素を有するサブシステムである、複数のコンピュータ装置を含み得る。
コンピュータシステムは、例えば、外部インタフェースによって、または内部インタフェースによって共に接続される、複数の同じ構成要素またはサブシステムを含み得る。一部の実施形態では、コンピュータシステム、サブシステムまたは装置は、ネットワーク上で通信し得る。そのような例では、一つのコンピュータをクライアント、別のコンピュータをサーバとみなすことができ、各々が、同一のコンピュータシステムの一部であり得る。クライアントおよびサーバは各々、複数のシステム、サブシステムまたは構成要素を含み得る。
本発明の実施形態のいずれも、ハードウェア(例えば、特定用途向け集積回路またはフィールドプログラマブルゲートアレイ)を使用する、および/またはモジュール式のもしくは統合された方式で、一般的なプログラム可能プロセッサを有するコンピュータソフトウェアを使用する、制御ロジックの形態で実装され得ることは理解されるべきである。本明細書で使用される通り、プロセッサは、シングルコアプロセッサ、同じ集積チップ上のマルチコアプロセッサ、または単一回路基板上もしくはネットワーク上の複数の処理装置を含む。本明細書に提供する開示および教示に基づき、当業者は、ハードウェア、およびハードウェアとソフトウェアとの組み合わせを使用して、本発明の実施形態を実装する他のやり方および/または方法を知り、理解するであろう。
本出願に記載のソフトウェア構成要素または機能のいずれも、例えば、従来の技術またはオブジェクト指向の技術を使用する、例えば、Java、C、C++、C#、Objective-C、Swift、またはPerlもしくはPythonのようなスクリプト言語など、いずれの好適なコンピュータ言語を使用するプロセッサによって実行される、ソフトウェアコードとして実装されてもよい。ソフトウェアコードは、記憶および/もしくは送信用のコンピュータ可読媒体上に、一連の命令またはコマンドとして記憶されてもよく、好適な媒体には、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードドライブもしくはフロッピーディスクなどの磁気媒体、またはコンパクトディスク(CD)もしくはDVD(デジタル多目的ディスク)などの光媒体、フラッシュメモリ、および同類のものを含む。コンピュータ可読媒体は、そのような記憶または送信デバイスのいかなる組み合わせであってもよい。
また、そのようなプログラムはコード化され、送信用に適応したキャリア信号を使用して、インターネットを含む、様々なプロトコルに適合する有線ネットワーク、光ネットワークおよび/または無線ネットワークによって送信されてもよい。このように、本発明の実施形態によるコンピュータ可読媒体は、そのようなプログラムでコード化されたデータ信号を使用して作成されてもよい。プログラムコードでコード化されたコンピュータ可読媒体は、互換デバイスでパッケージ化されてもよく、または他のデバイスから(例えば、インターネットのダウンロードによって)別個に提供されてもよい。いかなるそのようなコンピュータ可読媒体も、単一のコンピュータ製品(例えば、ハードドライブ、CDまたはコンピュータシステム全体)上またはその内部にあってもよく、システムもしくはネットワーク内の異なるコンピュータ製品上またはその内部に存在してもよい。コンピュータシステムは、本明細書で言及する結果のいずれをユーザに提供する、モニタ、プリンタまたは他の好適なディスプレイを含んでもよい。
本明細書に記載の方法のいずれかは、ステップを実行するように構成され得る、一つ以上のプロセッサを含むコンピュータシステムで、全部または部分的に実施され得る。したがって、実施形態は、潜在的にそれぞれのステップまたはそれぞれのステップ群を実施する異なる構成要素を用いて、本明細書に記載の方法のいずれかのステップを実施するように構成されるコンピュータシステムを含み得る。番号付けされたステップとして提示されるが、本明細書の方法のステップは、同時に、または異なる順序で実施され得る。さらに、これらのステップの一部は、他の方法からの他のステップの一部と共に使用されてもよい。また、ステップのすべてまたは一部分は、任意であってもよい。さらに、およびいずれかの方法のステップは、モジュール、回路、またはこれらのステップを実行するための他の手段を用いて実施することができる。
特定の実施形態の具体的な詳細は、本発明の実施形態の精神と範囲から逸脱することなく、任意の好適な方法で組み合わせてもよい。しかしながら、本発明の他の実施形態は、個々の態様に関する特定の実施形態またはこれらの個々の態様の特定の組み合わせを含んでもよい。本発明の例示的な実施形態の上記の説明は、例示および説明の目的で提示されている。これは、網羅的であることを意図しておらず、または本発明を記載された正確な形態に限定することを意図しておらず、上記の教示を考慮して多くの修正および変形が可能である。実施形態は、本発明の原理およびその実用的な用途を最もよく説明するために選択および記述され、それによって、当業者が、企図される特定の用途に適した様々な実施形態においておよび様々な修正を用いて、本発明を最も適切に利用することを可能にする。
「一つの(a)」、「一つの(an)」、または「その(the)」の列挙は、特に反対の指示がない限り、「一つ以上」を意味することを意図している。「または」の使用は、特に反対の指示がない限り、「包含的論理和」を意味し、「排他的論理和」を意味することを意図するものではない。
本明細書で言及したすべての特許、特許出願、刊行物および記載は、あらゆる目的のためにその全体が参照により本明細書に援用される。いずれも先行技術と認められない。

Claims (20)

  1. 第一のコンピュータによって、第二のコンピュータに、第一の公開鍵、第二の公開鍵、第一の暗号化されたマスクされたベクトル、および第一の暗号化されたランダムなベクトルを送信することであって、前記第一の暗号化されたマスクされたベクトルは、前記第一の公開鍵を使用して暗号化された第一のマスクされたベクトルであり、前記第一の暗号化されたランダムなベクトルは、前記第二の公開鍵を使用して暗号化された第一のランダムなベクトルである、送信することと、
    前記第一のコンピュータによって、前記第二のコンピュータから、第三の公開鍵、第四の公開鍵、第二の暗号化されたマスクされたベクトル、および第二の暗号化されたランダムなベクトルを受信することであって、前記第二の暗号化されたマスクされたベクトルは、前記第三の公開鍵を使用して暗号化された第二のマスクされたベクトルであり、前記第二の暗号化されたランダムなベクトルは、前記第四の公開鍵を使用して暗号化された第二のランダムなベクトルである、受信することと、
    前記第一のコンピュータによって、前記第二のコンピュータから、第三の置換された暗号化された差分ベクトルおよび第四の置換された暗号化された差分ベクトルを受信することであって、前記第三の置換された暗号化された差分ベクトルは、前記第一の公開鍵を使用して暗号化され、第三の置換を使用して置換され、前記第四の置換された暗号化された差分ベクトルは、前記第二の公開鍵を使用して暗号化され、第四の置換を使用して置換される、受信することと、
    前記第一のコンピュータによって、前記第一の公開鍵に対応する第一の秘密鍵を使用して前記第三の置換された暗号化された差分ベクトルを復号することによって、第三の置換された差分ベクトルを生成することと、
    前記第一のコンピュータによって、前記第二の公開鍵に対応する第二の秘密鍵を使用して、前記第四の置換された暗号化された差分ベクトルを復号することによって、第四の置換された差分ベクトルを生成することと、
    前記第一のコンピュータによって、前記第一のマスクされたベクトル、前記第一のランダムなベクトル、前記第三の置換された差分ベクトル、および前記第四の置換された差分ベクトルに基づいて、第一のベクトルと第二のベクトルのスカラー積を計算することと、を含む、方法。
  2. 前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することは、
    前記第一のコンピュータによって、前記第一のマスクされたベクトルの二乗の大きさを計算することと、
    前記第一のコンピュータによって、前記第一のランダムなベクトルの二乗の大きさを計算することと、
    前記第一のコンピュータによって、前記第三の置換された差分ベクトルの二乗の大きさを計算することと、
    前記第一のコンピュータによって、前記第四の置換された差分ベクトルの二乗の大きさを計算することと、
    前記第一のコンピュータによって、前記第一のマスクされたベクトルの前記二乗の大きさ、前記第一のランダムなベクトルの前記二乗の大きさ、前記第三の置換された差分ベクトルの前記二乗の大きさ、および前記第四の置換された差分ベクトルの前記二乗の大きさに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することと、を含む、請求項1に記載の方法。
  3. 前記第一のコンピュータによって、前記第二のコンピュータに、前記第一の公開鍵、前記第二の公開鍵、前記第一の暗号化されたマスクされたベクトル、および前記第一の暗号化されたランダムなベクトルを送信する前に、前記方法は、
    前記第一のコンピュータによって、前記第一のランダムなベクトルを生成することと、
    前記第一のコンピュータによって、前記第一のベクトルと前記第一のランダムなベクトルを組み合わせることによって、前記第一のマスクされたベクトルを生成することと、
    前記第一のコンピュータによって、第一の置換および第二の置換を生成することと、
    前記第一のコンピュータによって、前記第一の公開鍵および前記第一の秘密鍵を含む第一のキーペアを生成することと、
    前記第一のコンピュータによって、前記第二の公開鍵および前記第二の秘密鍵を含む第二のキーペアを生成することと、
    前記第一のコンピュータによって、前記第一の公開鍵を使用して前記第一のマスクされたベクトルを暗号化することと、
    前記第一のコンピュータによって、前記第二の公開鍵を使用して前記第一のランダムなベクトルを暗号化することと、をさらに含む、請求項1に記載の方法。
  4. 前記第一の公開鍵、前記第一の秘密鍵、前記第二の公開鍵、前記第二の秘密鍵、前記第三の公開鍵、前記第三の公開鍵に対応する第三の秘密鍵、前記第四の公開鍵、および前記第四の公開鍵に対応する第四の秘密鍵は、付加的準同型暗号鍵である、請求項1に記載の方法。
  5. 前記第一のコンピュータによって、前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトル、および前記第二の暗号化されたランダムなベクトルを受信する前に、
    前記第二のコンピュータが前記第二のランダムなベクトルを生成し、
    前記第二のコンピュータが、前記第二のベクトルと前記第二のランダムなベクトルを組み合わせることによって前記第二のマスクされたベクトルを生成し、
    前記第二のコンピュータが、前記第三の置換および前記第四の置換を生成し、
    前記第二のコンピュータが、前記第三の公開鍵および第三の秘密鍵を含む第三のキーペアを生成し、
    前記第二のコンピュータが、前記第四の公開鍵および第四の秘密鍵を含む第四のキーペアを生成し、
    前記第二のコンピュータが、前記第三の公開鍵を使用して前記第二のマスクされたベクトルを暗号化し、
    前記第二のコンピュータが、前記第四の公開鍵を使用して前記第二のランダムなベクトルを暗号化する、請求項1に記載の方法。
  6. 前記第二のコンピュータが、前記第一の公開鍵を使用して第二のネゲーションベクトルを暗号化することによって、第三の暗号化されたネゲーションベクトルを生成し、
    前記第二のコンピュータが、前記第一の暗号化されたマスクされたベクトルおよび前記第三の暗号化されたネゲーションベクトルに基づいて、第三の暗号化された差分ベクトルを生成し、
    前記第二のコンピュータが、前記第二の公開鍵を使用して前記第二のネゲーションベクトルを暗号化することによって、第四の暗号化されたネゲーションベクトルを生成し、
    前記第二のコンピュータが、前記第一の暗号化されたランダムなベクトルおよび前記第四の暗号化されたネゲーションベクトルに基づいて第四の暗号化された差分ベクトルを生成し、
    前記第二のコンピュータが、第三の置換および前記第三の暗号化された差分ベクトルを使用して、前記第三の置換された暗号化された差分ベクトルを生成し、
    前記第二のコンピュータが、第四の置換および前記第四の暗号化された差分ベクトルを使用して、前記第四の置換された暗号化された差分ベクトルを生成する、請求項1に記載の方法。
  7. 前記第一のコンピュータによって、前記スカラー積または前記スカラー積から導出された値を第一の所定の閾値と比較することと、
    前記スカラー積または前記スカラー積から導出された前記値が、前記第一の所定の閾値を超える場合、前記第一のコンピュータによって、前記第二のコンピュータとの相互作用を実行することと、をさらに含む、請求項1に記載の方法。
  8. 前記第一のベクトルおよび前記第二のベクトルが、第一の生体認証テンプレートおよび第二の生体認証テンプレートにそれぞれ対応し、前記第一の所定の閾値が生体認証一致閾値である、請求項7に記載の方法。
  9. 前記第一のコンピュータによって、前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトル、および前記第二の暗号化されたランダムなベクトルを受信した後で、かつ前記第一のコンピュータによって、前記第二のコンピュータから、前記第三の置換された差分ベクトルおよび前記第四の置換された差分ベクトルを受信する前に、前記方法は、
    前記第一のコンピュータによって、前記第三の公開鍵を使用して第一のネゲーションベクトルを暗号化することによって、第一の暗号化されたネゲーションベクトルを生成することと、
    前記第一のコンピュータによって、前記第二の暗号化されたマスクされたベクトルおよび前記第一の暗号化されたネゲーションベクトルに基づいて、第一の暗号化された差分ベクトルを生成することと、
    前記第一のコンピュータによって、前記第四の公開鍵を使用して前記第一のネゲーションベクトルを暗号化することによって、第二の暗号化されたネゲーションベクトルを生成することと、
    前記第一のコンピュータによって、前記第二の暗号化されたランダムなベクトルおよび前記第二の暗号化されたネゲーションベクトルに基づいて、第二の暗号化された差分ベクトルを生成することと、
    前記第一のコンピュータによって、第一の置換および前記第一の暗号化された差分ベクトルを使用して、第一の置換された暗号化された差分ベクトルを生成することと、
    前記第一のコンピュータによって、第二の置換および前記第二の暗号化された差分ベクトルを使用して、第二の置換された暗号化された差分ベクトルを生成することと、
    前記第一のコンピュータによって、前記第二のコンピュータに、前記第一の置換された暗号化された差分ベクトル、および前記第二の置換された暗号化された差分ベクトルを送信することと、をさらに含む、請求項1に記載の方法。
  10. 前記第二のコンピュータが、前記第三の公開鍵に対応する第三の秘密鍵を使用して、前記第一の置換された暗号化された差分ベクトルを復号することによって、第一の置換された差分ベクトルを生成し、
    前記第二のコンピュータが、前記第四の公開鍵に対応する第四の秘密鍵を使用して、前記第二の置換された暗号化された差分ベクトルを復号することによって、第二の置換された差分ベクトルを生成し、
    前記第二のコンピュータが、前記第二のマスクされたベクトル、前記第二のランダムなベクトル、前記第一の置換された差分ベクトル、および前記第二の置換された差分ベクトルに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算し、
    前記第二のコンピュータが、前記スカラー積または前記スカラー積から導出された値を第二の所定の閾値と比較し、
    前記スカラー積または前記スカラー積から導出された前記値が、前記第二の所定の閾値を超える場合、前記第二のコンピュータが、前記第一のコンピュータと相互作用を実行する、請求項9に記載の方法。
  11. プロセッサと、
    前記プロセッサに連結された非一過性コンピュータ可読媒体であって、
    第二のコンピュータに、第一の公開鍵、第二の公開鍵、第一の暗号化されたマスクされたベクトル、および第一の暗号化されたランダムなベクトルを送信することであって、前記第一の暗号化されたマスクされたベクトルは、前記第一の公開鍵を使用して暗号化された第一のマスクされたベクトルであり、前記第一の暗号化されたランダムなベクトルは、前記第二の公開鍵を使用して暗号化された第一のランダムなベクトルである、送信することと、
    前記第二のコンピュータから、第三の公開鍵、第四の公開鍵、第二の暗号化されたマスクされたベクトル、および第二の暗号化されたランダムなベクトルを受信することであって、前記第二の暗号化されたマスクされたベクトルは、前記第三の公開鍵を使用して暗号化された第二のマスクされたベクトルであり、前記第二の暗号化されたランダムなベクトルは、前記第四の公開鍵を使用して暗号化された第二のランダムなベクトルである、受信することと、
    前記第二のコンピュータから、第三の置換された暗号化された差分ベクトルおよび第四の置換された暗号化された差分ベクトルを受信することであって、前記第三の置換された暗号化された差分ベクトルは、前記第一の公開鍵を使用して暗号化され、第三の置換を使用して置換され、前記第四の置換された暗号化された差分ベクトルは、前記第二の公開鍵を使用して暗号化され、第四の置換を使用して置換される、受信することと、
    前記第一の公開鍵に対応する第一の秘密鍵を使用して前記第三の置換された暗号化された差分ベクトルを復号することによって、第三の置換された差分ベクトルを生成することと、
    前記第二の公開鍵に対応する第二の秘密鍵を使用して前記第四の置換された暗号化された差分ベクトルを復号することによって、第四の置換された差分ベクトルを生成することと、
    前記第一のマスクされたベクトル、前記第一のランダムなベクトル、前記第三の置換された差分ベクトル、および前記第四の置換された差分ベクトルに基づいて、第一のベクトルと第二のベクトルのスカラー積を計算することと、を含む方法を実施するため前記プロセッサによって実行可能なコードを備える、非一過性コンピュータ可読媒体と、を備える、第一のコンピュータ。
  12. 前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することが、
    前記第一のマスクされたベクトルの二乗の大きさを計算することと、
    前記第一のランダムなベクトルの二乗の大きさを計算することと、
    前記第三の置換された差分ベクトルの二乗の大きさを計算することと、
    前記第四の置換された差分ベクトルの二乗の大きさを計算することと、
    前記第一のマスクされたベクトルの前記二乗の大きさ、前記第一のランダムなベクトルの前記二乗の大きさ、前記第三の置換された差分ベクトルの前記二乗の大きさ、および前記第四の置換された差分ベクトルの前記二乗の大きさに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することと、を含む、請求項11に記載の第一のコンピュータ。
  13. 前記第二のコンピュータに、前記第一の公開鍵、前記第二の公開鍵、前記第一の暗号化されたマスクされたベクトル、および前記第一の暗号化されたランダムなベクトルを送信する前に、前記方法は、
    前記第一のランダムなベクトルを生成することと、
    前記第一のベクトルと前記第一のランダムなベクトルを組み合わせることによって前記第一のマスクされたベクトルを生成することと、
    第一の置換および第二の置換を生成することと、
    前記第一の公開鍵および前記第一の秘密鍵を含む第一のキーペアを生成することと、
    前記第二の公開鍵および前記第二の秘密鍵を含む第二のキーペアを生成することと、
    前記第一の公開鍵を使用して前記第一のマスクされたベクトルを暗号化することと、
    前記第二の公開鍵を使用して前記第一のランダムなベクトルを暗号化することと、をさらに含む、請求項11に記載の第一のコンピュータ。
  14. 前記第一の公開鍵、前記第一の秘密鍵、前記第二の公開鍵、前記第二の秘密鍵、前記第三の公開鍵、前記第三の公開鍵に対応する第三の秘密鍵、前記第四の公開鍵、および前記第四の公開鍵に対応する第四の秘密鍵は、付加的準同型暗号鍵である、請求項11に記載の第一のコンピュータ。
  15. 前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトル、および前記第二の暗号化されたランダムなベクトルを受信する前に、
    前記第二のコンピュータが前記第二のランダムなベクトルを生成し、
    前記第二のコンピュータが、前記第二のベクトルと前記第二のランダムなベクトルを組み合わせることによって前記第二のマスクされたベクトルを生成し、
    前記第二のコンピュータが、前記第三の置換および前記第四の置換を生成し、
    前記第二のコンピュータが、前記第三の公開鍵および第三の秘密鍵を含む第三のキーペアを生成し、
    前記第二のコンピュータが、前記第四の公開鍵および第四の秘密鍵を含む第四のキーペアを生成し、
    前記第二のコンピュータが、前記第三の公開鍵を使用して前記第二のマスクされたベクトルを暗号化し、
    前記第二のコンピュータが、前記第四の公開鍵を使用して前記第二のランダムなベクトルを暗号化する、請求項11に記載の第一のコンピュータ。
  16. 前記第二のコンピュータが、前記第一の公開鍵を使用して第二のネゲーションベクトルを暗号化することによって、第三の暗号化されたネゲーションベクトルを生成し、
    前記第二のコンピュータが、前記第一の暗号化されたマスクされたベクトルおよび前記第三の暗号化されたネゲーションベクトルに基づいて、第三の暗号化された差分ベクトルを生成し、
    前記第二のコンピュータが、前記第二の公開鍵を使用して前記第二のネゲーションベクトルを暗号化することによって、第四の暗号化されたネゲーションベクトルを生成し、
    前記第二のコンピュータが、前記第一の暗号化されたランダムなベクトルおよび前記第四の暗号化されたネゲーションベクトルに基づいて第四の暗号化された差分ベクトルを生成し、
    前記第二のコンピュータが、第三の置換および前記第三の暗号化された差分ベクトルを使用して、前記第三の置換された暗号化された差分ベクトルを生成し、
    前記第二のコンピュータが、第四の置換および前記第四の暗号化された差分ベクトルを使用して、前記第四の置換された暗号化された差分ベクトルを生成する、請求項11に記載の第一のコンピュータ。
  17. 前記方法は、
    前記スカラー積または前記スカラー積から導出された値を第一の所定の閾値と比較することと、
    前記スカラー積または前記スカラー積から導出された前記値が、前記第一の所定の閾値を超える場合、前記第二のコンピュータと相互作用を実施することと、をさらに含む、請求項11に記載の第一のコンピュータ。
  18. 前記第一のベクトルおよび前記第二のベクトルが、第一の生体認証テンプレートおよび第二の生体認証テンプレートにそれぞれ対応し、前記第一の所定の閾値が生体認証一致閾値である、請求項17に記載の第一のコンピュータ。
  19. 前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトルおよび前記第二の暗号化されたランダムなベクトルを受信した後で、かつ前記第二のコンピュータから、前記第三の置換された差分ベクトルおよび前記第四の置換された差分ベクトルを受信する前に、前記方法は、
    前記第三の公開鍵を使用して第一のネゲーションベクトルを暗号化することによって、第一の暗号化されたネゲーションベクトルを生成することと、
    前記第二の暗号化されたマスクされたベクトルおよび前記第一の暗号化されたネゲーションベクトルに基づいて、第一の暗号化された差分ベクトルを生成することと、
    前記第四の公開鍵を使用して前記第一のネゲーションベクトルを暗号化することによって、第二の暗号化されたネゲーションベクトルを生成することと、
    前記第二の暗号化されたランダムなベクトルおよび前記第二の暗号化されたネゲーションベクトルに基づいて、第二の暗号化された差分ベクトルを生成することと、
    第一の置換および前記第一の暗号化された差分ベクトルを使用して、第一の置換された暗号化された差分ベクトルを生成することと、
    第二の置換および前記第二の暗号化された差分ベクトルを使用して、第二の置換された暗号化された差分ベクトルを生成することと、
    前記第二のコンピュータに、前記第一の置換された暗号化された差分ベクトル、および前記第二の置換された暗号化された差分ベクトルを送信することと、をさらに含む、請求項11に記載の第一のコンピュータ。
  20. 前記第二のコンピュータが、前記第三の公開鍵に対応する第三の秘密鍵を使用して、前記第一の置換された暗号化された差分ベクトルを復号することによって、第一の置換された差分ベクトルを生成し、
    前記第二のコンピュータが、前記第四の公開鍵に対応する第四の秘密鍵を使用して、前記第二の置換された暗号化された差分ベクトルを復号することによって、第二の置換された差分ベクトルを生成し、
    前記第二のコンピュータが、前記第二のマスクされたベクトル、前記第二のランダムなベクトル、前記第一の置換された差分ベクトル、および前記第二の置換された差分ベクトルに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算し、
    前記第二のコンピュータが、前記スカラー積または前記スカラー積から導出された値を第二の所定の閾値と比較し、
    前記スカラー積または前記スカラー積から導出された前記値が、前記第二の所定の閾値を超える場合、前記第二のコンピュータは、前記第一のコンピュータと相互作用を実行する、請求項19に記載の第一のコンピュータ。
JP2020565425A 2018-05-24 2019-05-24 効率的な同時スカラー積計算 Active JP7280285B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US201862676219P 2018-05-24 2018-05-24
US62/676,219 2018-05-24
PCT/US2019/033933 WO2019226999A1 (en) 2018-05-24 2019-05-24 Efficient concurrent scalar product calculation

Publications (2)

Publication Number Publication Date
JP2021525386A JP2021525386A (ja) 2021-09-24
JP7280285B2 true JP7280285B2 (ja) 2023-05-23

Family

ID=68616032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020565425A Active JP7280285B2 (ja) 2018-05-24 2019-05-24 効率的な同時スカラー積計算

Country Status (8)

Country Link
EP (1) EP3804214A4 (ja)
JP (1) JP7280285B2 (ja)
KR (1) KR20210000722A (ja)
CN (1) CN112166577B (ja)
AU (1) AU2019274602B2 (ja)
BR (1) BR112020023826A2 (ja)
SG (1) SG11202011250XA (ja)
WO (1) WO2019226999A1 (ja)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016508323A (ja) 2013-03-15 2016-03-17 三菱電機株式会社 暗号化したものを認証する方法及びバイオメトリックデータを認証するシステム

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ATE469499T1 (de) * 2007-07-27 2010-06-15 Research In Motion Ltd Vorrichtung und verfahren zum betrieb eines drahtlosen servers
CN102314580A (zh) * 2011-09-20 2012-01-11 西安交通大学 一种基于向量和矩阵运算的支持计算的加密方法
FR3018934B1 (fr) * 2014-03-24 2017-05-26 Morpho Procede d'enrolement de donnees dans une base pour la protection desdites donnees
US10079674B2 (en) * 2015-02-26 2018-09-18 New York University Systems and methods for privacy-preserving functional IP verification utilizing fully homomorphic encryption
JP6786884B2 (ja) * 2015-07-10 2020-11-18 富士通株式会社 関係暗号化
FR3040842B1 (fr) * 2015-09-03 2018-12-07 Commissariat A L'energie Atomique Et Aux Energies Alternatives Methode d'interrogation confidentielle d'un service geodependant par cryptographie homomorphe
US10033760B2 (en) * 2016-05-27 2018-07-24 Apple Inc. Secure wireless ranging

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016508323A (ja) 2013-03-15 2016-03-17 三菱電機株式会社 暗号化したものを認証する方法及びバイオメトリックデータを認証するシステム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Artak Amirbekyan et al.,A New Efficient Privacy-Preserving Scalar Product Protocol,Conferences in Research and Practice in Information Technology Series,[オンライン],2007年,p. 205-210,(検索日 令和5年3月27日)、インターネット,<URL: https://research-repository.griffith.edu.au/bitstream/handle/10072/17249>

Also Published As

Publication number Publication date
SG11202011250XA (en) 2020-12-30
WO2019226999A1 (en) 2019-11-28
JP2021525386A (ja) 2021-09-24
BR112020023826A2 (pt) 2021-04-13
EP3804214A1 (en) 2021-04-14
AU2019274602A1 (en) 2020-11-26
EP3804214A4 (en) 2021-04-14
CN112166577B (zh) 2024-06-07
KR20210000722A (ko) 2021-01-05
CN112166577A (zh) 2021-01-01
AU2019274602B2 (en) 2024-05-02

Similar Documents

Publication Publication Date Title
US10873447B2 (en) Efficient concurrent scalar product calculation
US10826702B2 (en) Secure authentication of user and mobile device
US11736296B2 (en) Biometric verification process using certification token
US11252136B2 (en) System and method for identity verification across mobile applications
CN110999212B (zh) 使用生物特征识别和隐私保护方法在线认证账户持有者
US20220407709A1 (en) Biometric sensor on portable device
US20220215086A1 (en) Delegated biometric authentication
JP2006107406A (ja) 生体認証装置及び端末
US11792012B2 (en) Distributed biometric comparison framework
EP4115587A1 (en) User authentication at access control server using mobile device
JP7280285B2 (ja) 効率的な同時スカラー積計算
WO2023055562A1 (en) Remote identity interaction

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20220325

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20230327

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20230418

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20230511

R150 Certificate of patent or registration of utility model

Ref document number: 7280285

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150