JP7280285B2 - Efficient simultaneous scalar product computation - Google Patents

Efficient simultaneous scalar product computation 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
Japanese (ja)
Other versions
JP2021525386A (en
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/en
Application granted granted Critical
Publication of JP7280285B2 publication Critical patent/JP7280285B2/en
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

Description

関連出願の相互参照
本出願は、2018年5月24日に出願された米国特許出願第62/676,219号の非仮特許出願であり、この特許出願に対する優先権を主張するもので、その全体は参照により本明細書に組み込まれる。
CROSS-REFERENCE TO RELATED APPLICATIONS This application is a nonprovisional patent application of U.S. patent application Ser. The entirety is incorporated herein by reference.

多くの場合、特にデータがプライベートではない場合、コンピュータは、比較のために単にデータを互いに送信することができる。たとえば、ローカルソフトウェアが最新かどうか(つまり、そのソフトウェアが入手可能なそのソフトウェアの最新の安定版のバージョンかどうか)をユーザが確認したい場合がある。ユーザは、比較のためにソフトウェアに関するデータを外部サーバに送信しても問題がない場合がある。ただし、一部のケースでは、特に個人データや個人を識別できる情報(例えば、医療記録、支払口座番号、生体認証)を含む場合、ユーザは、外部コンピュータが不正または悪意のあるユーザや組織によって操作されている可能性があるという懸念から、そのデータを別の外部コンピュータに送信したくない場合がある。 In many cases, computers can simply send data to each other for comparison, especially if the data is not private. For example, a user may want to check whether local software is up-to-date (ie, is the software the latest stable version of that software available). A user may be okay with sending data about the software to an external server for comparison. However, in some cases, especially if they contain personal data or personally identifiable information (e.g., medical records, payment account numbers, biometrics), the User may be advised that an external computer is manipulated by unauthorized or malicious users or organizations. You may not want to send that data to another external computer for fear that it may be compromised.

幸いなことに、安全な多者間計算技術など、複数のコンピュータでそれぞれのデータを互いに開示することなくデータを比較したり、計算を実行したりできる技術がある。残念なことに、これらの手法は多くの場合、遅く、複雑で、大量のコンピューティング操作を必要とする。参加しているコンピュータの接続が悪い場合、安全な多者間計算の失敗の可能性が著しく高くなる。さらに、通信やコンピューティング操作が多数あるため、このようなプロトコルは、時間的制約のあるアプリケーションや低パフォーマンスのコンピューティング環境には適していない。 Fortunately, there are techniques, such as secure multi-party computation techniques, that allow multiple computers to compare data and perform computations without revealing each other's data. Unfortunately, these techniques are often slow, complex, and require extensive computational operations. If the participating computers have poor connectivity, the probability of secure multiparty computation failure is significantly increased. Moreover, the large number of communication and computing operations makes such protocols unsuitable for time-sensitive applications and low-performance computing environments.

実施形態は、個別および総合的にこれらのおよびその他の問題を解決する。 Embodiments individually and collectively address these and other issues.

本発明の実施形態は、二つのベクトルのスカラー積(または「ドット」積)を安全かつ同時に計算するための方法およびシステムを対象とする。第一のコンピュータおよび第二のコンピュータは、それぞれ第一および第二のベクトルを有し得、第一のコンピュータが第一のベクトルを第二のコンピュータに明らかにすることなく、かつ第二のコンピュータが第二のベクトルを第一のコンピュータに明らかにすることなく、第一および第二のベクトルのスカラー積を同時に計算することができる。各コンピュータは、スカラー積またはスカラー積から導出された値を所定の閾値と比較することができる。スカラー積またはスカラー積から導出された値が所定の閾値を超えることを条件として、第一のコンピュータおよび第二のコンピュータは、互いに相互作用を行うことができる。例えば、相互作用は、アクセストークンを第一のコンピュータに発行する第二のコンピュータを含み得る。 Embodiments of the present invention are directed to methods and systems for safely and simultaneously computing the scalar product (or "dot" product) of two vectors. A first computer and a second computer can have first and second vectors, respectively, without the first computer revealing the first vector to the second computer and the second computer can simultaneously compute the scalar product of the first and second vectors without revealing the second vector to the first computer. Each computer can compare the scalar product or a value derived from the scalar product to a predetermined threshold. The first computer and the second computer can interact with each other provided that the scalar product or the value derived from the scalar product exceeds a predetermined threshold. For example, an interaction can include a second computer issuing an access token to a first computer.

例として、生体認証承認システム(第二のコンピュータ)は、第一のコンピュータ(生体認証ベクトルに対応するユーザによって操作または所有される)によって提供される生体認証ベクトル(すなわち、ベクトル化された生体認証インスタンス)を第二のコンピュータに格納された生体認証ベクトルと比較することができ、第二のコンピュータは、生体認証が一致する場合、アクセストークン(支払トークン、またはユーザが建物にアクセスできるようにするトークンなど)を発行することができる。ただし、第二のコンピュータは、ユーザがなりすましを実行するために生体認証ベクトルを盗もうとする不正行為者である可能性があるため、格納された生体認証ベクトルのコピーをユーザに渡したくない場合がある。同様に、ユーザは、第二のコンピュータが不正行為者によって操作される可能性があるため、第二のコンピュータに生体認証ベクトルのコピーを渡したくない可能性がある。実施形態は、スカラー積を計算し、スカラー積を使用して二つの生体認証インスタンスの比較を実施するために使用することができ、ユーザが自身のそれぞれの生体認証ベクトルを第二のコンピュータに開示することなく、かつ第二のコンピュータがそのそれぞれの生体認証ベクトルをユーザに開示することなく使用できる。この方法では、機密データを公開するリスクなしにユーザを承認できる。 By way of example, the biometric authorization system (second computer) uses biometric vectors (i.e., vectorized biometric instance) can be compared to a biometric vector stored on a second computer, and the second computer, if the biometrics match, sends an access token (a payment token, or tokens, etc.) can be issued. However, if the second computer doesn't want to give the user a copy of the stored biometric vector, as the user could be a fraudster trying to steal the biometric vector to perform impersonation. There is Similarly, the user may not want to pass a copy of the biometric vector to the second computer, as the second computer may be manipulated by fraudsters. Embodiments can be used to compute a scalar product and use the scalar product to perform a comparison of two biometric instances, where a user discloses their respective biometric vectors to a second computer. and without the second computer disclosing its respective biometric vector to the user. In this way users can be authorized without the risk of exposing confidential data.

実施形態は、従来のシステムよりも改善を提供する。なぜなら、実施形態は、スカラー積を、コンピュータまたは事業体間の多くの通信のように実行することなく計算することを可能にし、速度と信頼性の向上をもたらすからである。本開示の実施形態では、第一のコンピュータおよび第二のコンピュータは、スカラー積を同時に計算し、第一のコンピュータも第二のコンピュータも、第一のベクトルαの二乗の大きさも、また第二のベクトルβの二乗の大きさも、他方のコンピュータに送信する必要はない。これにより、コンピュータ間で送信されるメッセージの数が減り、従来のシステムに比べてプロトコルの速度、効率、信頼性が向上する。 Embodiments provide improvements over conventional systems. Because embodiments allow scalar products to be computed without performing as much communication between computers or entities, resulting in increased speed and reliability. In an embodiment of the present disclosure, the first computer and the second computer compute scalar products simultaneously, and both the first computer and the second computer compute the squared magnitude of the first vector α, and the second The magnitude of the square of the vector β of , need not be transmitted to the other computer either. This reduces the number of messages sent between computers, making the protocol faster, more efficient, and more reliable than traditional systems.

一つの実施形態は、第一のコンピュータによって、第二のコンピュータに、第一の公開鍵、第二の公開鍵、第一の暗号化されたマスクされたベクトル、および第一の暗号化されたランダムなベクトルを送信することであって、第一の暗号化されたマスクされたベクトルが、第一の公開鍵を使用して暗号化された第一のマスクされたベクトルであり、第一の暗号化されたランダムなベクトルは、第二の公開鍵を使用して暗号化された第一のランダムなベクトルである、送信することと、第一のコンピュータによって、第二のコンピュータから、第三の公開鍵、第四の公開鍵、第二の暗号化されたマスクされたベクトル、および第二の暗号化されたランダムなベクトルを受信することであって、第二の暗号化されたマスクされたベクトルが、第三の公開鍵を使用して暗号化された第二のマスクされたベクトルであり、第二の暗号化されたランダムなベクトルが、第四の公開鍵を使用して暗号化された第二のランダムなベクトルである、受信することと、第一のコンピュータによって、第二のコンピュータから、第三の置換された暗号化された差分ベクトルおよび第四の置換された暗号化された差分ベクトルを受信することであって、第三の置換された暗号化された差分ベクトルは、第一の公開鍵を使用して暗号化され、第三の置換を使用して置換され、第四の置換された暗号化された差分ベクトルは、第二の公開鍵を使用して暗号化され、第四の置換を使用して置換される、受信することと、第一のコンピュータによって、第一の公開鍵に対応する第一の秘密鍵を使用して、第三の置換された暗号化された差分ベクトルを復号することによって、第三の置換された差分ベクトルを生成することと、第一のコンピュータによって、第二の公開鍵に対応する第二の秘密鍵を使用して、第四の置換された暗号化された差分ベクトルを復号することによって、第四の置換された差分ベクトルを生成することと、第一のコンピュータによって、第一のマスクされたベクトル、第一のランダムなベクトル、第三の置換された差分ベクトルおよび第四の置換された差分ベクトルに基づいてベクトルと第二のベクトルのスカラー積を計算することと、を含む方法を対象とする。 One embodiment provides, by a first computer, a second computer with a first public key, a second public key, a first encrypted masked vector, and a first encrypted transmitting a random vector, wherein the first encrypted masked vector is the first masked vector encrypted using the first public key; The encrypted random vector is the first random vector encrypted using the second public key, sending and sending, by the first computer, from the second computer, the third a fourth public key, a second encrypted masked vector, and a second encrypted random vector, wherein the second encrypted masked is the second masked vector encrypted using the third public key, and the second encrypted random vector is encrypted using the fourth public key receiving a third permuted encrypted difference vector and a fourth permuted encrypted difference vector from the second computer by the first computer, which is a second random vector obtained by a third permuted encrypted difference vector encrypted using the first public key, permuted using the third permutation, and The four permuted encrypted difference vectors are encrypted using the second public key and permuted using the fourth permutation; generating a third permuted difference vector by decrypting the third permuted encrypted difference vector using the first private key corresponding to the one public key; a fourth permuted difference vector by decrypting the fourth permuted encrypted difference vector using a second private key corresponding to the second public key, by a computer; generating a vector based on the first masked vector, the first random vector, the third permuted difference vector and the fourth permuted difference vector and the second computing the scalar product of the vectors of .

別の実施形態は、プロセッサと、上述の方法を実施するためにプロセッサによって実行可能であるコードを含む、プロセッサに連結された非一時的コンピュータ可読媒体とを含む第一のコンピュータを対象とする。 Another embodiment is directed to a first computer that includes a processor and a non-transitory computer-readable medium coupled to the processor that includes code executable by the processor to perform the methods described above.

これらの実施形態および他の実施形態について、以下に詳細に記載する。実施形態の性質および利点をよりよく理解することは、以下の詳細な説明および添付の図面を参照して得ることができる。
条件
These and other embodiments are described in detail below. A better understanding of the nature and advantages of the embodiments may be obtained with reference to the following detailed description and accompanying drawings.
conditions

「サーバコンピュータ」は、強力なコンピュータまたはコンピュータクラスタを含んでもよい。例えば、サーバコンピュータは、大型メインフレーム、ミニコンピュータクラスタ、またはユニットとして機能するサーバ群であり得る。一例では、サーバコンピュータは、ウェブサーバに連結されるデータベースサーバであり得る。サーバコンピュータは、一つ以上の計算装置を含んでもよく、一つ以上のクライアントコンピュータからの要求にサービスを提供する、さまざまなコンピュータ構造、配置およびコンパイルのうちのいずれを使用し得る。 A "server computer" may include a powerful computer or computer cluster. For example, a server computer can be a large mainframe, a minicomputer cluster, or a group of servers functioning as a unit. In one example, the server computer can be a database server coupled to a web server. A server computer may include one or more computing devices and may employ any of a variety of computer structures, arrangements and compilations to service requests from one or more client computers.

「メモリ」は、電子データを格納することができる任意の好適な単数または複数のデバイスであってもよい。好適なメモリとして、所望の方法を実施するためにプロセッサにより実行され得る命令を保存する、非一過性コンピュータ可読媒体が含まれ得る。メモリの例として、一つ以上のメモリチップ、ディスクドライブなどが含まれ得る。一部のメモリは、任意の好適な電気的、光学的、および/または磁気的な動作モードを用いて動作することができる。 A "memory" may be any suitable device or devices capable of storing electronic data. Suitable memory may include non-transitory computer-readable media storing instructions that may be executed by a processor to perform a desired method. Examples of memory may include one or more memory chips, disk drives, and the like. Some memories may operate using any suitable electrical, optical, and/or magnetic mode of operation.

「プロセッサ」は、任意の好適な単数または複数のデータ計算デバイスを指すことができる。プロセッサは、所望の機能を達成するために一緒に動作する一つ以上のマイクロプロセッサを備えることができる。プロセッサは、ユーザおよび/またはシステム生成要求を実行するプログラム構成要素を実行するために適切な少なくとも一つの高速データプロセッサを備えるCPUを含んでもよい。CPUは、AMDのアスロン、デュロン、および/もしくはオプテロン、IBMおよび/もしくはモトローラのPowerPC、IBMおよびソニーのセルプロセッサ、インテルのセレロン、アイテニウム、ペンティアム、ジーオン、および/もしくはXScale、ならびに/または、同様のプロセッサなどのマイクロプロセッサであってもよい。 "Processor" can refer to any suitable data computing device or devices. A processor may comprise one or more microprocessors working together to achieve the desired functionality. The processor may include a CPU with at least one high speed data processor suitable for executing program components that carry out user and/or system generated requests. The CPUs may be AMD Athlon, Duron, and/or Opteron, IBM and/or Motorola PowerPC, IBM and Sony Cell processors, Intel Celeron, Itenium, Pentium, Xeon, and/or XScale, and/or the like. It may be a microprocessor such as a processor.

「セキュア要素」は、安全に機能を実行することができる構成要素を指しうる。セキュア要素は、データへのアクセスが保護されるように、データを安全に格納するメモリであってもよい。「セキュア要素」の例としては、プロセッサの信頼できる実行環境(TEE)、セキュア領域がある。セキュア要素の別の例は、ユニバーサル集積回路カード(UICC)、セキュアスマートカードである。セキュア要素の追加の例は、より大きな機械または電気システムの組み込みセキュア要素、組み込みハードウェア構成要素である。 A "secure element" can refer to a component that can securely perform a function. A secure element may be a memory that securely stores data such that access to the data is protected. Examples of "secure elements" are the processor's Trusted Execution Environment (TEE), a secure region. Another example of a secure element is a Universal Integrated Circuit Card (UICC), a secure smart card. Additional examples of secure elements are embedded secure elements, embedded hardware components of larger mechanical or electrical systems.

「ベクトル」は、構成要素の順序付けられたリストを指してもよい。ベクトルの構成要素は、数値であってもよく、例えば、例示的なベクトルは、三つの構成要素、すなわち、

Figure 0007280285000001

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

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

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

「マスクされたベクトル」は、ベクトルとランダムベクトルとのベクトル和を指してもよい。「ベクトル化」という用語は、データのセットがベクトルに変換される任意のプロセス、例えば、人の身長、体重、および年齢が、その人の身長、体重、および年齢に対応する構成要素を含むベクトルに変換されるプロセスを指す場合がある。 A "vector" may refer to an ordered list of components. The components of the vector may be numeric values, for example, an exemplary vector has three components:
Figure 0007280285000001

can have Components of the vector may be associated with labels, e.g., the second exemplary vector
Figure 0007280285000002

has three components:
Figure 0007280285000003

can have Mathematical operations may be applied to vectors, for example two vectors may be added or subtracted from each other. A "random vector" may refer to an ordered list of components that is randomly or pseudorandomly generated using, for example, a random number generator or pseudorandom number generator. A "difference vector" may, for example, refer to a vector equal to the difference between two vectors, such as:
Figure 0007280285000004

A "masked vector" may refer to a vector sum of a vector and a random vector. The term "vectorization" refers to any process by which a set of data is transformed into a vector, e.g., a vector whose height, weight, and age of a person contains components corresponding to that person's height, weight, and age It may refer to the process of being converted to

「置換」は、何かが順序付けられ得るまたは配置され得る方法を指し得る。「置換された」という用語は、何かが置換を介して順序付けられたまたは配置されたことを示すことができる。例えば、置換されたベクトルは、置換に従って再配置されたベクトルを指してもよい。 "Permutation" can refer to the way something can be ordered or arranged. The term "permuted" can indicate that something has been ordered or arranged through permutations. For example, a permuted vector may refer to a vector rearranged according to the permutation.

「ユーザ」とは、何らかの目的で他のものを使用する人または物を指す。ユーザは、一つ以上の個人アカウントおよび/またはユーザデバイスと関連付けられ得る個人を含み得る。ユーザはまた、一部の実施形態では、カード保有者、アカウント保有者または消費者と称され得る。 "User" refers to a person or thing that uses another for some purpose. Users may include individuals who may be associated with one or more personal accounts and/or user devices. A user may also be referred to as a cardholder, account holder, or consumer in some embodiments.

「リソース」とは、事業体によって使用される、または事業体間で移転される可能性のあるものを指し得る。リソースの例には、物品、サービス、情報、および/または制限された場所へのアクセスが含まれる。 A "resource" may refer to anything that may be used by or transferred between entities. Examples of resources include access to goods, services, information, and/or restricted locations.

「リソースプロバイダ」とは、リソースを提供できる事業体を指し得る。リソースプロバイダの例には、小売業者、政府機関などが含まれる。リソースプロバイダは、リソースプロバイダのコンピュータを操作できる。 A "resource provider" can refer to an entity that can provide resources. Examples of resource providers include retailers, government agencies, and the like. A resource provider can operate the resource provider's computer.

「通信デバイス」は、遠隔または直接の通信機能を提供できる任意の好適なデバイスを含み得る。遠隔通信機能の例には、携帯電話(無線)ネットワーク、無線データネットワーク(例えば、3G、4Gまたは同様のネットワーク)、Wi-Fi、Wi-Max、またはインターネットもしくはプライベートネットワークなどのネットワークへのアクセスを提供できるいかなる他の通信媒体を使用することが含まれる。通信デバイスの例として、デスクトップコンピュータ、ビデオゲームコンソール、移動電話(例えば、携帯電話)、PDA、タブレットコンピュータ、ネットブック、ラップトップコンピュータ、パーソナル音楽プレーヤ、手持ち式専用リーダ、スマートカードなどが挙げられる。通信デバイスのさらなる例としては、スマートウォッチ、フィットネスバンド、アンクルブレスレット、リング、イヤリングなどのウェアラブルデバイスの他、遠隔または直接の通信機能付き自動車がある。 A "communication device" may include any suitable device capable of providing remote or direct communication capabilities. Examples of telecommunications capabilities include cellular (wireless) networks, wireless data networks (eg, 3G, 4G or similar networks), Wi-Fi, Wi-Max, or access to networks such as the Internet or private networks. It includes using any other communication medium that can be provided. Examples of communication devices include desktop computers, video game consoles, mobile phones (eg, cell phones), PDAs, tablet computers, netbooks, laptop computers, personal music players, handheld dedicated readers, smart cards, and the like. Further examples of communication devices include wearable devices such as smart watches, fitness bands, ankle bracelets, rings, earrings, as well as automobiles with remote or direct communication capabilities.

「相互作用」とは、相互の作用、効果または影響を指す場合がある。例えば、相互作用は、二人以上の当事者間の交換または取引である可能性がある。 "Interaction" may refer to an interaction, effect or influence. For example, an interaction can be an exchange or transaction between two or more parties.

「アクセス端子」は、リモートシステムへのアクセスを提供する任意の好適なデバイスであってもよい。また、アクセス端子は、小売業者コンピュータ、取引処理コンピュータ、認証コンピュータまたは任意の他の好適なシステムとの通信に使用されてもよい。アクセス端子は、概して、小売業者の位置など、任意の好適な位置に配置することができる。アクセス端子は、任意の好適な形態であり得る。アクセス端子の一部の例には、販売時点(例えば、POS)端末、携帯電話、PDA、パーソナルコンピューター(PC)、タブレットPC、手持ち式専用リーダ、セットトップボックス、電子キャッシュレジスタ(ECR)、現金自動預入支払い機(ATM)、仮想キャッシュレジスタ(VCR)、キオスク、セキュリティシステム、アクセスシステムおよび類似のものを含む。アクセス端子は、任意の好適な接触または非接触動作モードを使用して、ユーザのモバイルデバイスとの間でデータ、またはモバイルデバイスに関連付けられたデータの送受信を行うことができる。アクセス端子がPOS端末を含んでもよい一部の実施形態では、任意の好適なPOS端末を使用でき、端末はリーダと、プロセッサと、コンピュータ可読媒体とを含むことができる。リーダは、任意の好適な接触または非接触動作モードを含むことができる。例えば、例示的なカードリーダは、決済デバイスおよび/またはモバイルデバイスと対話するために、無線周波数(RF)アンテナ、光学スキャナ、バーコードリーダまたは磁気ストライプリーダを含み得る。一部の実施形態では、POS端末として用いられる携帯電話、タブレット、または他の専用無線デバイスは、モバイル販売時点情報管理端末、または「mPOS」端末と称され得る。 An "access terminal" may be any suitable device that provides access to a remote system. Access terminals may also be used to communicate with retailer computers, transaction processing computers, authentication computers, or any other suitable system. Access terminals may generally be located at any suitable location, such as retailer locations. Access terminals may be of any suitable form. Some examples of access terminals include point-of-sale (e.g., POS) terminals, mobile phones, PDAs, personal computers (PCs), tablet PCs, handheld dedicated readers, set-top boxes, electronic cash registers (ECRs), cash Including automated teller machines (ATMs), virtual cash registers (VCRs), kiosks, security systems, access systems and the like. The access terminal can transmit data to, or receive data associated with, a user's mobile device using any suitable contact or contactless mode of operation. In some embodiments where the access terminal may comprise a POS terminal, any suitable POS terminal may be used and the terminal may include a reader, a processor, and a computer readable medium. The reader can include any suitable contact or contactless mode of operation. For example, exemplary card readers may include radio frequency (RF) antennas, optical scanners, barcode readers or magnetic stripe readers to interact with payment devices and/or mobile devices. In some embodiments, a cell phone, tablet, or other dedicated wireless device used as a POS terminal may be referred to as a mobile point of sale terminal, or "mPOS" terminal.

「アクセスネットワーク」は、アクセス端末に関連付けられたネットワークを指しうる。アクセスネットワークは、いくつかの必要な機能を提供することによってアクセス端末をサポートするデバイスのアレイを含み得る。例えば、アクセスネットワークは、アクセス端末の代わりにモバイルデバイスの集合体と通信するように設計されたアンテナまたはビーコン(Wi-Fiまたはブルートゥースビーコンなど)のアレイであってもよい。アクセスネットワークは、ローカルエリアネットワーク、ワイドエリアネットワーク、または携帯電話ネットワークまたはインターネットなどのネットワークを含み得る。 "Access network" can refer to the network associated with an access terminal. An access network may include an array of devices that support access terminals by providing a number of required functions. For example, an access network may be an array of antennas or beacons (such as Wi-Fi or Bluetooth beacons) designed to communicate with a collection of mobile devices on behalf of access terminals. Access networks may include local area networks, wide area networks, or networks such as cellular networks or the Internet.

「生体認証インスタンス」という用語は、生物学的観察に関連する情報を含み得る。生体認証インスタンスは、生体認証サンプルに対応する生体認証データ、または生体認証サンプルまたは生体認証データから導出された生体認証テンプレートを含み得る。生体認証インスタンスは、ユーザの身元を検証するために使用できる。生体認証インスタンスは、生体認証インスタンスのキャプチャに使用されるハードウェアである生体認証インタフェースを介してキャプチャされ得る。例えば、生体認証インスタンスは、赤外線光源およびカメラを備える虹彩スキャナなどの生体認証インタフェースを介してキャプチャされてもよい。生体認証インスタンスの例には、虹彩スキャンのデジタル表現(虹彩を表すバイナリコードなど)、指紋、音声記録、顔スキャンなどが含まれる。生体認証インスタンスは、暗号化された形式で、および/またはモバイルデバイスのセキュアメモリに格納され得る。 The term "biometric instance" can include information related to a biological observation. A biometric instance may include biometric data corresponding to a biometric sample or a biometric template derived from a biometric sample or biometric data. A biometric instance can be used to verify a user's identity. A biometric instance may be captured via a biometric interface, which is the hardware used to capture the biometric instance. For example, a biometric instance may be captured via a biometric interface such as an iris scanner with an infrared light source and camera. Examples of biometric instances include a digital representation of an iris scan (such as a binary code representing the iris), fingerprints, voice recordings, face scans, and the like. The biometric instance may be stored in encrypted form and/or in secure memory of the mobile device.

「暗号鍵」という用語は、暗号化または復号で使用されるものを指すことができる。たとえば、暗号鍵は、二つの大きな素数の積を参照できる。暗号鍵は、RSAやAESなどの暗号化プロセスや暗号システムの入力として機能し、平文を暗号化して暗号文出力を生成する、または暗号文を復号して平文出力を生成するために使用することができる。 The term "cryptographic key" can refer to anything used in encryption or decryption. For example, a cryptographic key can refer to the product of two large prime numbers. A cryptographic key serves as an input to a cryptographic process or cryptosystem, such as RSA or AES, and can be used to encrypt plaintext to produce a ciphertext output or decrypt ciphertext to produce a plaintext output. can be done.

「平文」という用語は、平易な形式の文を指すことができる。例えば、平文は、「こんにちは、元気ですか。」といった句など、人間やコンピュータが何も処理せずに読める文を指すことができる。また、暗号化されていない形式のテキストを指す場合もある。数字やその他の記号も平文と見なされる場合がある。 The term "plaintext" can refer to text in plain form. For example, plaintext can refer to sentences that can be read by humans or computers without any processing, such as the phrase "Hello, how are you?" It can also refer to text in unencrypted form. Numbers and other symbols may also be considered plaintext.

「暗号文」という用語は、暗号化された形式である文を指すことができる。例えば、これは、人間またはコンピュータが理解できるようになる前に復号する必要があるテキストを指すことができる。暗号文は、RSAやAESなど、任意の数の暗号化アルゴリズムで生成できる。 The term "ciphertext" can refer to text that is in encrypted form. For example, this could refer to text that needs to be decoded before it can be understood by humans or computers. The ciphertext can be generated with any number of encryption algorithms, such as RSA and AES.

「アクワイアラ」は通常、特定の小売業者または他の事業体とのビジネス関係を有するビジネス事業体(例えば、商業銀行)とすることができる。一部の事業体は、発行人およびアクワイアラの両方の機能を実行することができる。一部の実施形態は、こうした単一事業体の発行人アクワイアラを含み得る。アクワイアラは、総称的に「輸送コンピュータ」とも呼ばれ得る、アクワイアラコンピュータを操作し得る。 An "acquirer" may generally be a business entity (eg, commercial bank) that has a business relationship with a particular retailer or other entity. Some entities may perform the functions of both issuer and acquirer. Some embodiments may include such a single entity issuer acquirer. Acquirers may operate acquirer computers, which may also be collectively referred to as "transport computers."

「承認事業体」は、要求を認可する事業体とすることができる。承認事業体の例は、発行人、政府機関、文書保管所、アクセス管理者などを含み得る。「発行人」は通常、ユーザ用のアカウントを保持するビジネス事業体(例えば、銀行)を指し得る。発行人はまた消費者に対して、携帯電話、スマートカートカード、タブレット、またはラップトップなどのモバイルデバイスに格納された支払証明書を発行することができる。承認事業体は、承認コンピュータを操作できる。 An "authorizing entity" may be the entity that authorizes the request. Examples of authorized entities may include issuers, government agencies, archives, access managers, and the like. "Issuer" may generally refer to the business entity (eg, bank) that holds the account for the user. The issuer can also issue the consumer a proof of payment stored on a mobile device such as a cell phone, smart cart card, tablet, or laptop. Approved Entities can operate Approved Computers.

「認証データ」は、あるものが真実かつ有効であることを証明するのに適した任意のデータを含み得る。認証データは、ユーザまたはユーザによって操作される装置から取得することができる。ユーザから取得される認証データの例として、PIN(個人識別番号)、パスワードなどを含みうる。モバイルデバイスから取得することができる認証データの例として、デバイスのシリアル番号、ハードウェアセキュリティ要素識別子、デバイスの指紋、電話番号、IMEI番号、モバイルデバイスに格納された生体認証インスタンスなどを含み得る。 "Authentication data" may include any data suitable for proving that something is true and valid. Authentication data may be obtained from the user or a device operated by the user. Examples of authentication data obtained from the user may include a PIN (personal identification number), password, and the like. Examples of authentication data that may be obtained from a mobile device may include device serial number, hardware security element identifier, device fingerprint, phone number, IMEI number, biometric instance stored on the mobile device, and the like.

「決済デバイス」には、小売業者に支払証明書を提供するなど、金融取引を実施するために使用できる任意の適切なデバイスが含まれ得る。決済デバイスは、ソフトウェアオブジェクト、ハードウェアオブジェクト、または物理的オブジェクトであってもよい。物理的オブジェクトの例として、この決済デバイスは、紙またはプラスチックのカードなどの基板および印刷された、エンボス化された、符号化されたあるいはその他の方法で物体にまたはその表面近くに含まれた情報を含むことができる。ハードウェアオブジェクトは、回路(例えば、永久電圧値)に関連し得、ソフトウェアオブジェクトは、デバイス上に格納された非永久データに関連し得る。決済デバイスは、貨幣価値、割引、またはストアクレジットなどの価値と関連付けられてもよく、決済デバイスは、銀行、小売業者、支払処理ネットワーク、または人などの事業体に関連付けられてもよい。決済デバイスは、支払取引をするために使用することができる。好適な決済デバイスは、それがユーザの財布および/またはポケットに収まることができるように(例えば、ポケットサイズの)、手持ち式でかつコンパクトであり得る。決済デバイスの例としては、スマートカード、磁気ストライプカード、キーチェーンデバイス(Exxon-Mobil Corp.市販のSpeed-pass(商標)など)等が挙げられる。モバイルデバイスのその他の例には、ポケットベル、支払カード、セキュリティカード、アクセスカード、スマートメディア、トランスポンダなどが含まれる。決済デバイスがデビット、クレジット、またはスマートカードの形態である場合、決済デバイスは、磁気ストライプなどの機能も随意に有し得る。このようなデバイスは、接触非接触の両方のモードで動作し得る。実施形態によっては、モバイルデバイスは、決済デバイスとして機能することができる(例えば、モバイルデバイスは、取引に対する支払証明書を格納し、送信することができる)。 A "payment device" may include any suitable device that can be used to conduct a financial transaction, such as providing proof of payment to a retailer. A payment device may be a software object, a hardware object, or a physical object. By way of example of a physical object, the payment device includes a substrate such as a paper or plastic card and information printed, embossed, encoded or otherwise contained on or near the surface of the object. can include Hardware objects may relate to circuits (eg, permanent voltage values) and software objects may relate to non-permanent data stored on the device. A payment device may be associated with a value such as a monetary value, discount, or store credit, and a payment device may be associated with an entity such as a bank, retailer, payment processing network, or person. A payment device can be used to make payment transactions. A suitable payment device may be handheld and compact such that it can fit in a user's purse and/or pocket (eg, pocket-sized). Examples of payment devices include smart cards, magnetic stripe cards, keychain devices (such as the Speed-pass™ available from Exxon-Mobil Corp.), and the like. Other examples of mobile devices include pagers, payment cards, security cards, access cards, smart media, transponders, and the like. If the payment device is in the form of a debit, credit or smart card, the payment device may optionally also have features such as a magnetic stripe. Such devices can operate in both contact and contactless modes. In some embodiments, the mobile device can act as a payment device (eg, the mobile device can store and transmit payment certificates for transactions).

「証明書」とは、価値、所有権、身元、または権限の信頼できる証拠として機能する任意の適切な情報であり得る。「アクセス証明書」は、特定のリソース(例えば、物品、サービス、場所など)へのアクセスを得るために使用できる証明書であってもよい。証明書は、数字、文字、またはその他の任意の適切な記号の列、または確認の役目を果たすことができる任意のオブジェクトまたは文書であってもよい。証明書の例には、IDカード、認証文書、アクセスカード、パスコードおよびその他のログイン情報、支払口座番号、アクセスバッジ番号、支払トークン、アクセストークンなどが含まれる。 A "certificate" may be any suitable information that serves as reliable proof of value, ownership, identity, or authority. An "access credential" may be a credential that can be used to gain access to a particular resource (eg, goods, services, places, etc.). A certificate may be a string of numbers, letters, or any other suitable symbols, or any object or document capable of serving as a verification. Examples of credentials include ID cards, authentication documents, access cards, passcodes and other login information, payment account numbers, access badge numbers, payment tokens, access tokens, and the like.

「支払証明書」には、口座に関連付けられた任意の適切な情報(例えば、支払口座、および/または口座に関連付けられた決済デバイス)が含まれ得る。そのような情報は、口座に直接関係してもよく、または口座に関係する情報に由来してもよい。口座情報の例として、PAN(主口座番号または「口座番号」)、ユーザ名、有効期限、CVV(カード検証値)、dCVV(動的カード検証値)、CVV2(カード検証値2)などが挙げられ得る。支払証明書は、支払口座を識別する、または支払口座に関連付けられる任意の情報であり得る。支払証明書は、支払口座から支払いを行うために提供され得る。支払証明書は、ユーザ名、有効期限、ギフトカード番号またはコード、および任意の他の適切な情報を含むこともできる。 A "payment certificate" may include any suitable information associated with an account (eg, payment account and/or payment device associated with the account). Such information may be directly related to the account or may be derived from information related to the account. Examples of account information include PAN (primary account number or "account number"), username, expiration date, CVV (card verification value), dCVV (dynamic card verification value), CVV2 (card verification value 2), etc. can be A payment certificate may be any information that identifies or is associated with a payment account. A payment certificate may be provided for making payments from a payment account. The payment certificate may also include the username, expiration date, gift card number or code, and any other suitable information.

「トークン」は、本物の証明書の置換値であってもよい。トークンは、一種の証明書であってもよく、数字、文字、またはその他の任意の適切な記号の列であってもよい。トークンの例には、支払トークン、アクセストークン、個人識別トークンなどが含まれる。 A "token" may be a replacement value for a genuine certificate. A token may be a type of certificate and may be a string of numbers, letters, or any other suitable symbol. Examples of tokens include payment tokens, access tokens, personal identification tokens, and the like.

「支払トークン」は、主口座番号(PAN)などの口座識別子の代替である支払口座のための識別子を含むことができる。例えば、トークンは、元の口座識別子の代替として使用することができる、ひと続きの英数字を含んでもよい。例えば、トークン「4900 0000 0000 0001」を、PAN「4147 0900 0000 1234」の代わりに使用してもよい。実施形態によっては、トークンは、「形式保存」であってもよく、既存の取引処理ネットワークで使用される口座識別子に準拠する数値形式(例えば、ISO8583金融取引メッセージ形式)を有することができる。一部の実施形態では、トークンは、支払取引を開始、認可、決済もしくは解決するように、または元の証明書が通常提供されるであろう他のシステムで元の証明書を表すように、PANの代わりに使用されてもよい。一部の実施形態では、トークン値は、元のPAN、またはトークン値からの他の口座識別子の回復が、計算上導き出されないように生成されてもよい。さらに、一部の実施形態では、トークン形式は、トークンを受け取る事業体が、それをトークンとして識別し、トークンを発行した事業体を認識することが可能になるように構成されてもよい。 A "payment token" may include an identifier for a payment account that is an alternative to an account identifier such as a primary account number (PAN). For example, a token may include a string of alphanumeric characters that can be used as a replacement for the original account identifier. For example, the token "4900 0000 0000 0001" may be used instead of the PAN "4147 0900 0000 1234". In some embodiments, tokens may be "format preserving" and may have a numeric format (eg, ISO 8583 financial transaction message format) that conforms to account identifiers used in existing transaction processing networks. In some embodiments, the token is used to initiate, authorize, settle or settle payment transactions, or to represent the original certificate in other systems where the original certificate would normally be provided. It may be used instead of PAN. In some embodiments, the token value may be generated such that recovery of the original PAN or other account identifier from the token value is not computationally derived. Further, in some embodiments, the token format may be configured to allow the entity receiving the token to identify it as a token and recognize the entity that issued the token.

「承認要求メッセージ」は、取引のための承認を要求するために送信される電子メッセージとすることができる。一部の実施形態では、「承認要求メッセージ」は、支払処理ネットワークおよび/または支払カードの発行人へ送信されて、取引のための承認を要求する電子メッセージであってもよい。一部の実施形態による承認要求メッセージは、決済デバイスまたは支払口座を使用する消費者によりなされる支払いと関連付けられた、電子取引情報を交換するシステムの標準である、ISO8583に準拠することができる。承認要求メッセージは、決済デバイスまたは支払口座と関連付けられてもよい、発行人口座識別子を含んでもよい。承認要求メッセージはまた、単に例として、サービスコード、CVV(カード検証値)、dCVV(動的カード検証値)、有効期限などを含む、「識別情報」に対応する追加のデータ要素を含むことができる。承認要求メッセージはまた、取引を識別および/または承認するかの判定に利用されてもよい、いかなる他の情報だけでなく、取引額、小売業者識別子、小売業者所在地など、現在の取引と関連付けられた、任意の情報などの「取引情報」を含んでもよい。 An "approval request message" may be an electronic message sent to request approval for a transaction. In some embodiments, an "authorization request message" may be an electronic message sent to a payment processing network and/or payment card issuer requesting authorization for a transaction. Authorization request messages according to some embodiments may comply with ISO 8583, a standard for systems for exchanging electronic transaction information associated with payments made by consumers using payment devices or payment accounts. The authorization request message may include an issuer account identifier, which may be associated with the payment device or payment account. The Authorization Request message may also include additional data elements corresponding to "Identification Information" including, by way of example only, service code, CVV (card verification value), dCVV (dynamic card verification value), expiration date, etc. can. The authorization request message also includes information associated with the current transaction, such as transaction amount, retailer identifier, retailer location, as well as any other information that may be utilized in determining whether to identify and/or approve the transaction. It may also include "transaction information" such as arbitrary information.

「承認応答メッセージ」は、承認要求メッセージに応答する電子メッセージとすることができる。電子メッセージは、発行金融機関または支払処理ネットワークによって生成される場合がある。承認応答メッセージは、単に例として、次の状態指標のうちの一つ以上を含んでもよい。認可―取引が認可された。拒否―取引が認可されなかった。または、コールセンター―応答はより多くの情報を保留中で、小売業者は、フリーダイヤルの承認電話番号に電話する必要がある。承認応答メッセージはまた、承認コードを含んでもよく、クレジットカード発行銀行が、承認要求メッセージに応じて、小売業者のアクセスデバイス(例えば、POS機器)に、取引の許可を示す電子メッセージ(直接または支払処理ネットワークを介してのいずれか)の中で返信するコードであってもよい。コードは、承認の証明として役割を果たし得る。上述の通り、一部の実施形態では、支払処理ネットワークは、承認応答メッセージを生成してもよく、または承認応答メッセージを小売業者に転送してもよい。 An "approval response message" may be an electronic message in response to an approval request message. The electronic message may be generated by the issuing financial institution or payment processing network. The acknowledgment response message may include one or more of the following status indicators, by way of example only. Authorization—Transaction has been authorized. Rejected—The transaction was not authorized. Alternatively, the call center-response is pending more information and the retailer should call a toll-free approved phone number. The authorization response message may also include an authorization code, whereby the credit card issuing bank, in response to the authorization request message, sends an electronic message (direct or payment (either via a processing network). The code can serve as proof of authorization. As noted above, in some embodiments, the payment processing network may generate an authorization response message or forward the authorization response message to the retailer.

「デバイスコード」または「デバイス識別子」は、デバイス(例えば、一つのデバイスのみ)と特に関連付けられたコードであってもよい。デバイスコードは、セキュア要素識別子(SE ID)、IMEI番号、電話番号、地理的位置、デバイスのシリアル番号、デバイスの指紋などのうちの一つ以上を含むがこれに限定されない、任意のデバイス固有の情報から派生することができる。こうしたコードは、ハッシュ化および/または暗号化を含む任意の適切な数学的演算を使用して、こうした情報から派生しうる。デバイスコードは、任意の適切な数および/またはタイプの記号を含み得る。 A "device code" or "device identifier" may be a code specifically associated with a device (eg, only one device). The device code can be any device-specific, including but not limited to one or more of a Secure Element Identifier (SE ID), IMEI number, phone number, geographic location, device serial number, device fingerprint, etc. can be derived from information. Such code may be derived from such information using any suitable mathematical operation, including hashing and/or encryption. A device code may include any suitable number and/or types of symbols.

図1は、本発明のいくつかの実施形態による、例示的なシステムのブロック図を示す。FIG. 1 shows a block diagram of an exemplary system, according to some embodiments of the invention. 図2は、いくつかの実施形態による例示的な第一のコンピュータのブロック図を示す。FIG. 2 illustrates a block diagram of an exemplary first computer according to some embodiments. 図3は、いくつかの実施形態による例示的な第二のコンピュータのブロック図を示す。FIG. 3 illustrates a block diagram of an exemplary second computer according to some embodiments. 図4は、いくつかの実施形態による、二つのベクトルのスカラー積を計算し、相互作用を実施する方法のフローチャートの概要を示す。FIG. 4 outlines a flow chart of a method for computing the scalar product of two vectors and performing an interaction, according to some embodiments. 図5は、いくつかの実施形態による、二つのベクトルのスカラー積を計算する方法の一部である、セットアップ段階のフローチャートを示す。FIG. 5 shows a flowchart of the setup stage, part of a method for computing the scalar product of two vectors, according to some embodiments. 図6は、いくつかの実施形態による、二つのベクトルのスカラー積を計算する方法の一部である中間計算段階のフローチャートを示す。FIG. 6 shows a flowchart of the intermediate computation stages that are part of a method for computing the scalar product of two vectors, according to some embodiments. 図7は、いくつかの実施形態による、二つのベクトルのスカラー積を計算する方法の一部である、スカラー積計算段階のフローチャートを示す。FIG. 7 shows a flowchart of the scalar product calculation stage, which is part of a method for calculating the scalar product of two vectors, according to some embodiments. 図8は、第一のコンピュータのユーザとリソースプロバイダとの間の支払取引を含む、第一の例示的な相互作用を示す。FIG. 8 illustrates a first exemplary interaction involving a payment transaction between a first computer user and a resource provider. 図9は、第一のコンピュータのユーザとリソースプロバイダとの間の建物入場認証プロセスを含む、第二の例示的な相互作用を示す。FIG. 9 illustrates a second exemplary interaction involving a building entry authentication process between the user of the first computer and the resource provider.

実施形態は、二つのベクトルのスカラー積を計算するためのプライバシー保護方法およびシステムを対象とするため、ベクトルに関する簡単なプライマーは、実施形態をよりよく理解するために有用であり得る。 Since the embodiments are directed to privacy-preserving methods and systems for computing the scalar product of two vectors, a simple primer on vectors may be useful to better understand the embodiments.

ベクトルという用語は、科学全体を通して異なる意味を持つが、一般的にベクトルは、構成要素の順序付けられたリストを指す。一部の事例では、ベクトルはまた、対の大きさおよび角度または方向として表され得る。たとえば、ベクトル(北1マイル、西1マイル)は、空間の第一の点と、空間の第二の点の間の直線経路が、正確に第一の点から1マイル北と1マイル西であることを表す。このベクトルは、代わりに(大きさ1.414マイル、方向45度)として表されてもよく、ベクトルが1.414マイル、北から45度時計回りに向けられることを表す。どちらの表現も、同じ経路を記述するため、同等である。数学方程式の変数として、ベクトルはしばしば、上部に矢印のある記号で表される。例えば、

Figure 0007280285000005

である。ベクトルは、他の変数が従う多くの数学的関係に従う。例えば、類似したベクトルは、互いに加算または減算することができる。 The term vector has different meanings throughout science, but generally a vector refers to an ordered list of components. In some cases, vectors may also be expressed as paired magnitudes and angles or directions. For example, the vector (1 mile north, 1 mile west) indicates that the straight line path between the first point in space and the second point in space is exactly 1 mile north and 1 mile west of the first point. represents something. This vector may alternatively be expressed as (magnitude 1.414 miles, direction 45 degrees), representing that the vector is oriented 1.414 miles and 45 degrees clockwise from north. Both representations are equivalent because they describe the same path. As variables in mathematical equations, vectors are often represented by symbols with arrows on top. for example,
Figure 0007280285000005

is. Vectors obey many mathematical relationships that other variables obey. For example, similar vectors can be added or subtracted from each other.

多くの形態のデータをベクトル化することができる、すなわち、ベクトルに変換されるか、またはベクトルによって表され得る。例として、個人の健康統計(例えば、身長、体重、年齢)は、(身長68インチ(172.7cm)、体重140ポンド(63.5kg)、年齢25歳)などのベクトルで表され得る。ベクトル化は、コンピュータによって迅速に実行できるベクトル演算を使用してデータを客観的に比較することができるため、有用である。 Many forms of data can be vectorized, ie transformed into vectors or represented by vectors. As an example, an individual's health statistics (eg, height, weight, age) may be represented by a vector such as (height 68 inches, weight 140 pounds, age 25). Vectorization is useful because data can be objectively compared using vector operations that can be rapidly performed by a computer.

例えば、二つのデータのセットを比較する一つの方法は、各データのセットをベクトル化し、二つのベクトル間の角度を判定することである。同様のベクトルは、それらの間に小さな角度を有するが、異なるベクトルは、それらの間に大きな角度を有する。二つの同一ベクトル間の角度(例えば、(北1マイル、西0マイル)と(北1マイル、西0マイル))はゼロであるが、二つの直交ベクトル(例えば、(北1マイル、西0マイル)と(北0マイル、西1マイル))の角度は、それらの間が90度であり、二つの逆向きのベクトル(例えば、(北1マイル、西0マイル)と(南1マイル、西0マイル))は、それらの間が180度である。二つのベクトル化されたデータのセットの間の角度(例えば、第一の人に対応する健康統計および第二の人に対応する健康統計)、または二つのベクトル化されたデータのセットの間の角度の三角関数(例えば、コサイン)は、それらの二つのデータのセットの間の類似性または相違性を評価するために、類似性または相違性メトリックとして使用することができる。 For example, one way to compare two data sets is to vectorize each data set and determine the angle between the two vectors. Similar vectors have small angles between them, while different vectors have large angles between them. The angle between two identical vectors (e.g. (1 mile north, 0 miles west) and (1 mile north, 0 miles west)) is zero, but the angle between two orthogonal vectors (e.g. (1 mile north, 0 miles west) is zero). mile) and (0 miles north, 1 mile west)) are 90 degrees between them, and two opposite vectors (e.g., (1 mile north, 0 miles west) and (1 mile south, West 0 miles)) are 180 degrees between them. The angle between two vectorized data sets (e.g., a health statistic corresponding to a first person and a health statistic corresponding to a second person), or between two vectorized data sets A trigonometric function of angles (eg, cosine) can be used as a similarity or dissimilarity metric to assess the similarity or dissimilarity between those two data sets.

同様に、スカラー積などのベクトル演算を使用して、二つのベクトル間の類似性または相違性を評価することができる。二つのベクトルのスカラー積は、第一のベクトルの各構成要素に第二のベクトルの対応する構成要素を乗じ、結果を合計することによって計算することができる。すなわち、 Similarly, vector operations such as scalar product can be used to assess similarity or dissimilarity between two vectors. A scalar product of two vectors can be calculated by multiplying each component of the first vector by the corresponding component of the second vector and summing the results. i.e.

Figure 0007280285000006

である。
Figure 0007280285000006

is.

例として、

Figure 0007280285000007


Figure 0007280285000008

のスカラー積は、以下に等しい。 As an example,
Figure 0007280285000007

and
Figure 0007280285000008

The scalar product of is equal to

Figure 0007280285000009
Figure 0007280285000009

スカラー積は、他の理由の中でも、以下の等式によって示されるように、二つのベクトル間の角度に比例するため、有用であり、 The scalar product is useful, among other reasons, because it is proportional to the angle between the two vectors, as shown by the following equation:

Figure 0007280285000010
Figure 0007280285000010

式中、

Figure 0007280285000011

はベクトル
Figure 0007280285000012

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

はベクトル
Figure 0007280285000014

の大きさであり、θは二つのベクトル間の角度である。したがって、二つのベクトル化されたデータのセットのスカラー積を使用して、これらのデータのセット間の類似性または相違性を判定することができる。 During the ceremony,
Figure 0007280285000011

is a vector
Figure 0007280285000012

is the magnitude (i.e., "size") of
Figure 0007280285000013

is a vector
Figure 0007280285000014

is the magnitude of , and θ is the angle between the two vectors. Thus, the scalar product of two vectorized data sets can be used to determine similarities or dissimilarities between these data sets.

ベクトル化は、生体認証などのデータの比較を簡素化または加速するために使用できる。一例では、キャプチャされた生体認証は、生体認証に対応する人を識別または認証するために、データベースに格納された生体認証または生体認証テンプレートと比較され得る。一例として、指紋採取がある。指紋採取では、人の指紋の画像がキャプチャされ(生体認証)、指紋データベースに格納されている指紋と比較されて、その人を識別する。キャプチャされた指紋および指紋データベースに格納された指紋がベクトル化された場合、キャプチャされたベクトル化された指紋とデータベースに格納されたベクトル化された指紋のスカラー積を計算するなどのベクトル演算を使用して、キャプチャされた指紋が指紋データベースに格納された指紋のセットと一致するかどうかを判定することができる。 Vectorization can be used to simplify or accelerate comparisons of data such as biometrics. In one example, the captured biometric can be compared to biometrics or biometric templates stored in a database to identify or authenticate the person corresponding to the biometric. One example is fingerprinting. In fingerprinting, an image of a person's fingerprint is captured (biometric) and compared to fingerprints stored in a fingerprint database to identify that person. If the captured fingerprint and the fingerprint stored in the fingerprint database are vectorized, use vector operations such as computing the scalar product of the captured vectorized fingerprint and the vectorized fingerprint stored in the database to determine if the captured fingerprint matches the set of fingerprints stored in the fingerprint database.

生体認証または生体認証テンプレートのベクトル化の正確な方法は、本開示の範囲外である。しかしながら、例示的な生体認証がどのようにベクトル化され得るかを説明するために、以下の例が提供される。 The exact method of vectorizing biometrics or biometric templates is outside the scope of this disclosure. However, the following example is provided to illustrate how exemplary biometrics can be vectorized.

虹彩コード(典型的には、虹彩認識を実行するために使用され得る256バイトを含む生体認証)は、256個の構成要素を有するベクトルに変換することによってベクトル化することができ、各構成要素は対応する虹彩コードの1バイトに対応する。代替として、虹彩コードを、対応する虹彩コードのうちの1ビットを各々含む2048個の構成要素を含むバイナリベクトルに、または代替で、各々が対応する虹彩コードの2バイトに対応する、128個の構成要素を有するベクトルに変換することができる。虹彩コードなどの生体認証をベクトルに変換することができ、その他の生体認証(例えば、指紋、顔スキャンなど)を同様の方法を使用してベクトルに変換することができる方法は多数存在する。 An iris code (typically a biometric containing 256 bytes that can be used to perform iris recognition) can be vectorized by converting it into a vector with 256 components, each component corresponds to one byte of the corresponding iris code. Alternatively, convert the iris code into a binary vector containing 2048 components each containing 1 bit of the corresponding iris code, or alternatively 128 iris codes, each corresponding to 2 bytes of the corresponding iris code. It can be converted to a vector with components. There are many ways biometrics such as iris codes can be converted to vectors, and other biometrics (eg, fingerprints, face scans, etc.) can be converted to vectors using similar methods.

生体認証、ベクトル化、その他の方法での比較には多くの方法や技術があるが、被験者のプライバシーを保護することを指向する技術はほとんどない。例として、指紋スキャンを受ける場合、通常は、指紋をデータベースに格納されている指紋と比較するために、その指紋(生体認証)を事業体(例えば、法執行機関)に提供する必要がある。ただし、これにより、人はなりすましのリスクにさらされる。不正行為者は、正当な事業体になりすますことで、一見正当な認証要求の一部として、その人の生体認証を要求することができる(例えば、電子メールのフィッシング攻撃を介して)。不正行為者は、これらの生体認証を使用して、なりすましの手口の一部としてその人になりすます。 While there are many methods and techniques for biometrics, vectorization, and other methods of comparison, few are oriented toward preserving subject privacy. As an example, when getting a fingerprint scan, it is typically necessary to provide that fingerprint (biometric) to an entity (e.g., law enforcement) in order to compare it with fingerprints stored in a database. However, this exposes the person to the risk of impersonation. By impersonating a legitimate business entity, a fraudster can request the person's biometrics as part of a seemingly legitimate authentication request (eg, via an email phishing attack). Fraudsters use these biometrics to impersonate the person as part of their impersonation scheme.

しかしながら、本開示の実施形態は、二つの事業体(例えば、ユーザおよびリモートサーバに属するスマートフォンなどの二つのコンピュータ)について、どちらの事業体もそのそれぞれの生体認証を他方の事業体に明らかにせずに二つのベクトル(例えば、二つのベクトル化された生体認証)のスカラー積を計算する方法を提供する。そのため、リモートサーバは、人の生体認証自体を実際に受け取ることなく、人の生体認証が生体認証データベースに格納されている生体認証と一致するかどうかを判定できる。これにより、情報セキュリティの確実な向上がもたらされ、上記のようななりすまし手口の防止策が講じられる。 However, embodiments of the present disclosure provide for two entities (e.g., a user and two computers such as a smart phone belonging to a remote server) without either entity revealing its respective biometrics to the other entity. to compute the scalar product of two vectors (eg, two vectorized biometrics). As such, the remote server can determine whether a person's biometric matches a biometric stored in the biometric database without actually receiving the person's biometric itself. As a result, information security is reliably improved, and measures to prevent impersonation techniques such as those described above are taken.

実施形態は、Paillier暗号などの暗号システムを使用して、付加的準同型暗号化を使用してこれを達成する。付加的準同型暗号化により、参加している事業体は、最初にデータを復号することなく、暗号化されたデータの合計を計算できる。特に、Paillier暗号では、二つの暗号文(すなわち、暗号化されたデータ)の積は、対応する平文の暗号化された合計と等しくなる。 Embodiments achieve this using additive homomorphic encryption using cryptosystems such as the Paillier cipher. Additive homomorphic encryption allows participating entities to compute the sum of encrypted data without first decrypting the data. Specifically, in the Paillier cipher, the product of two ciphertexts (ie, encrypted data) equals the encrypted sum of the corresponding plaintexts.

Figure 0007280285000015
Figure 0007280285000015

本開示の実施形態は、この特性を利用して、二つのコンピュータが、ベクトルの構成要素が暗号化されている間に、二つのベクトルのスカラー積を計算することを可能にする。ベクトルの復号に使用される秘密鍵は、それぞれの事業体によってのみ知られている(すなわち、第一のコンピュータは第二のコンピュータには未知の秘密鍵を知っていて、その逆も同様である)ため、各事業体は、他の事業体がそのベクトルを知ることを妨げることができると同時に、その二つのベクトルのスカラー積を計算することができる。 Embodiments of the present disclosure take advantage of this property to allow two computers to compute the scalar product of two vectors while the components of the vectors are encrypted. The private key used to decrypt the vector is known only by the respective entity (i.e. the first computer knows the private key unknown to the second computer and vice versa). ), each entity can compute the scalar product of its two vectors while preventing other entities from knowing its vectors.

図1は、第一のコンピュータ102、第二のコンピュータ104、リソースプロバイダコンピュータ106、およびユーザ108を含む、例示的なシステム100のブロック図を示す。システム100のコンピュータは、一つ以上の通信ネットワークを介して互いに動作可能に通信してもよい。 FIG. 1 shows a block diagram of an exemplary system 100 including a first computer 102, a second computer 104, a resource provider computer 106, and a user 108. As shown in FIG. Computers in system 100 may operatively communicate with each other via one or more communication networks.

通信ネットワークは、任意の好適な形態を取ることができ、直接相互接続、インターネット、ローカルエリアネットワーク(LAN)、メトロポリタンエリアネットワーク(MAN)、インターネット上のノードとしての運用ミッション(Operating Missions as Nodes on the Internet(OMNI))、セキュリティ保護カスタム接続(a secured custom connection)、ワイドエリアネットワーク(WAN)、(例えば、無線アプリケーションプロトコル(WAP)、I-モード、および/または同様のもののプロトコルを使用するがそれに限定されない)無線ネットワークおよび/または同様のもののうちのいずれか一つならびに/あるいはそれらの組み合わせであってもよい。事業体、プロバイダー、ユーザ、デバイス、コンピュータ、およびネットワーク間のメッセージは、ファイル転送プロトコル(FTP)、ハイパーテキスト転送プロトコル(HTTP)、セキュアハイパーテキスト転送プロトコル(HTTPS)、セキュアソケットレイヤー(SSL)、ISO(ISO 8583など)および/または同様のものなどであるがこれらに限定されない安全な通信プロトコルを使用して送信されうる。 Communications networks may take any suitable form, including direct interconnection, the Internet, local area networks (LANs), metropolitan area networks (MANs), Operating Missions as Nodes on the Internet. Internet (OMNI)), a secured custom connection, Wide Area Networks (WAN), (e.g., Wireless Application Protocol (WAP), I-Mode, and/or the like) using protocols such as but not limited to wireless network and/or the like and/or any combination thereof. Messages between entities, providers, users, devices, computers, and networks are processed using File Transfer Protocol (FTP), Hypertext Transfer Protocol (HTTP), Secure Hypertext Transfer Protocol (HTTPS), Secure Sockets Layer (SSL), ISO (such as ISO 8583) and/or using a secure communication protocol such as, but not limited to, the like.

実施形態による方法は、第一のコンピュータ102および第二のコンピュータ104が、それぞれがそれぞれのベクトルまたは計算されたスカラー積を他のコンピュータに明らかにすることなく、第一のベクトル102Aおよび第二のベクトル104Aのスカラー積を計算することを可能にする。図4~図7を参照して後述する一連の段階を通して、第一のコンピュータ102および第二のコンピュータ104は、第一のコンピュータ102および第二のコンピュータ104が第一のベクトル102Aおよび第二のベクトル104Aのスカラー積を同時に計算することを可能にする情報を準備および交換することができる。第一のコンピュータ102および第二のコンピュータ104はそれぞれ、計算されたスカラー積またはスカラー積から導出された値(例えば、二つのベクトル間の角度)を、所定の閾値と同時に比較することができる。スカラー積から導出された値のスカラー積が所定の閾値を超える場合、第一のコンピュータ102および第二のコンピュータ104は、互いに相互作用を実行し得る。この相互作用はさらに、リソースプロバイダコンピュータ106を所有または操作し得るリソースプロバイダを含むことができる。 A method according to an embodiment allows first computer 102 and second computer 104 to each compute first vector 102A and second vector 102A without revealing their respective vectors or computed scalar products to the other computer. Allows to compute the scalar product of vector 104A. Through a series of steps described below with reference to FIGS. 4-7, the first computer 102 and the second computer 104 communicate with the first vector 102A and the second computer 104. Information can be prepared and exchanged that allows the scalar product of vector 104A to be calculated simultaneously. Each of the first computer 102 and the second computer 104 can simultaneously compare the calculated scalar product or a value derived from the scalar product (eg, the angle between two vectors) to a predetermined threshold. The first computer 102 and the second computer 104 may interact with each other if the scalar product of the values derived from the scalar product exceeds a predetermined threshold. This interaction may further include resource providers who may own or operate resource provider computers 106 .

例示的な相互作用は、図8および図9を参照して以下により詳細に記述される。一般に、スカラー積またはスカラー積から導出された値を所定の閾値と比較することは、認証手順の一部として実施されてもよく、認証が成功した場合(すなわち、スカラー積またはスカラー積から導出された値が所定の閾値を超える)、相互作用が行われてもよい。例えば、第一のベクトル102Aが、ユーザ108に対応する第一のコンピュータ102(例えば、ユーザ108によって所有されるスマートフォン)に格納された生体認証ベクトルであり、第二のベクトル104Aが、第二のコンピュータ104に格納されたユーザ108に対応する生体認証ベクトル(例えば、ユーザ108に対応するファイル上の生体認証ベクトル)である場合、第一のベクトル102Aと第二のベクトル104Aのスカラー積を使用してユーザ108を認証してもよい。ユーザ108が認証されると、ユーザ108と小売業者(すなわち、リソースプロバイダコンピュータ106を操作するリソースプロバイダ)との間の支払取引などの相互作用が行われることができる。 Exemplary interactions are described in more detail below with reference to FIGS. In general, comparing the scalar product or a value derived from the scalar product to a predetermined threshold may be performed as part of an authentication procedure and if authentication is successful (i.e. value exceeds a predetermined threshold), an interaction may take place. For example, a first vector 102A is a biometric vector stored on a first computer 102 corresponding to user 108 (e.g., a smart phone owned by user 108), and a second vector 104A is a second If the biometric vector corresponding to user 108 stored in computer 104 (e.g., the biometric vector on file corresponding to user 108), use the scalar product of first vector 102A and second vector 104A. user 108 may be authenticated. Once the user 108 is authenticated, interactions such as payment transactions between the user 108 and the retailer (ie, resource provider operating resource provider computer 106) can occur.

図2は、いくつかの実施形態による例示的な第一のコンピュータ200を示す。具体的には、図2は、モバイルデバイス(例えば、スマートフォン)としての第一のコンピュータ200を示す。しかしながら、第一のコンピュータ200は、用語セクションで上記に定義された任意の適切な通信デバイスなど、多くの形態を取りうることが理解されるべきである。 FIG. 2 shows an exemplary first computer 200 according to some embodiments. Specifically, FIG. 2 shows a first computer 200 as a mobile device (eg, smart phone). However, it should be understood that the first computer 200 may take many forms, such as any suitable communication device defined above in the Terminology section.

第一のコンピュータ200は、無線通信またはテレフォニーなどの特定のデバイス機能を有効にするために使用される回路を含みうる。これらの機能を有効にするための機能要素は、デバイスの機能および動作を実行する命令を実行できるプロセッサ202を含んでもよい。プロセッサ202は、命令を実行するために使用される命令またはデータを取得するためデータストレージ210(または別の適切なメモリ領域または要素)にアクセスできる。キーボードまたはタッチスクリーンなどのデータ入力/出力要素206は、ユーザが第一のコンピュータ200を操作することを可能にするために使用され得る(例えば、ユーザがモバイルウォレットアプリケーション214に移動することを可能にする)。データ入力/出力206はまた、(例えば、スピーカーを介して)データを出力するように構成され得る。ディスプレイ204はまた、ユーザにデータを出力するために使用することもできる。通信要素208は、第一のコンピュータ200と有線または無線ネットワーク(例えば、アンテナ224を介して)の間のデータ転送を可能にし、データ転送機能を可能にするために使用されてもよく、インターネットまたは他のネットワークへの接続を支援するためにしようされてもよい。第一のコンピュータ200はまた、非接触素子222とデバイスの他の素子との間のデータ転送を可能にする非接触素子インタフェース220を含んでもよい。非接触素子222は、セキュアメモリおよび近距離通信データ転送素子(または別の形態の短距離通信技術)を含み得る。前述のように、携帯電話、スマートフォン、ウェアラブルデバイス、ラップトップコンピュータ、またはその他の類似のデバイスは、モバイルデバイスの例であり、それによって実施形態に従い第一のコンピュータの例である。 First computer 200 may include circuitry used to enable certain device functions, such as wireless communication or telephony. Functional elements for enabling these functions may include a processor 202 capable of executing instructions to perform the functions and operations of the device. Processor 202 may access data storage 210 (or another suitable memory area or element) to obtain instructions or data used to execute instructions. A data input/output element 206 such as a keyboard or touch screen may be used to allow the user to operate the first computer 200 (e.g., allow the user to navigate to the Mobile Wallet application 214). do). Data input/output 206 may also be configured to output data (eg, via speakers). Display 204 can also be used to output data to the user. Communication element 208 enables data transfer between first computer 200 and a wired or wireless network (eg, via antenna 224) and may be used to enable data transfer functions, such as the Internet or It may also be used to help connect to other networks. The first computer 200 may also include a contactless element interface 220 that allows data transfer between a contactless element 222 and other elements of the device. Contactless elements 222 may include secure memory and near field communication data transfer elements (or another form of short range communication technology). As previously mentioned, cell phones, smart phones, wearable devices, laptop computers, or other similar devices are examples of mobile devices and thereby examples of first computers according to embodiments.

データストレージ210は、通信モジュール212、モバイルウォレットアプリケーション214、生体認証アプリケーション216、およびスカラー積計算モジュール218などのいくつかのソフトウェアモジュールも含みうるコンピュータ可読媒体を備えてもよい。 Data storage 210 may comprise computer readable media that may also include a number of software modules such as communication module 212 , mobile wallet application 214 , biometric application 216 , and scalar product calculation module 218 .

通信モジュール212は、プロセッサ202が、第一のコンピュータ200と、他のモバイルデバイス、アクセス端末、または第二のコンピュータなどの他のデバイスとの間の通信を実施または可能にできるコードを含み得る。通信モジュール212は、TCP、UDP、IS-IS、OSPF、IGRP、EIGRP、RIP、BGPなどの任意の適切なプロトコルに従って通信を許容し得る。それは、プロセッサ202が、第一のコンピュータ200と他のデバイスとの間の安全なまたは暗号化された通信チャネルを確立できるようにすることによって、安全な通信を可能にし得る。例えば、通信モジュール212は、モバイルデバイス200と別のデバイスとの間のキー交換(ディフィー・ヘルマン鍵交換など)を実行するために、プロセッサ202によって実行可能なコードを含み得る。通信モジュール212はさらに、暗号化または暗号化されていないベクトルおよび暗号鍵の送信を可能にすることに加えて、支払トークンを含むアクセストークンをアクセス端末などの他のデバイスに送信することを許可し得る。 Communications module 212 may include code that enables processor 202 to implement or enable communications between first computer 200 and other devices, such as other mobile devices, access terminals, or second computers. Communication module 212 may allow communication according to any suitable protocol, such as TCP, UDP, IS-IS, OSPF, IGRP, EIGRP, RIP, BGP. It may enable secure communications by enabling processor 202 to establish secure or encrypted communication channels between first computer 200 and other devices. For example, communication module 212 may include code executable by processor 202 to perform a key exchange (such as a Diffie-Hellman key exchange) between mobile device 200 and another device. Communication module 212 further permits the transmission of encrypted or unencrypted vectors and cryptographic keys, as well as the transmission of access tokens, including payment tokens, to other devices such as access terminals. obtain.

モバイルウォレットアプリケーション214は、第一のコンピュータ200がトークンを管理できるようにするコードを含み得る。例えば、モバイルウォレットアプリケーション214は、プロセッサ202が非接触素子インタフェース220を介してセキュアメモリ222に格納されたアクセストークンを取得できるようにするコードを含み得る。モバイルウォレットアプリケーション214は、アクセストークンがプロビジョニングされた日時、アクセストークンのエイリアスまたは識別子、アクセストークンが関与する直近の相互作用または取引の日時など、任意の適切なトークン情報を第一のコンピュータ200が表示できるようにするコードをさらに含み得る。さらに、モバイルウォレットアプリケーション214は、プロセッサ202が、ユーザがトークン関連機能を有効化できるようにするグラフィカルユーザインタフェース(GUI)を表示することを可能にするコードを含み得る。さらに、モバイルウォレットアプリケーション214は、第一のコンピュータ200が、例えば、小売業者との取引中に、トークンをアクセス端末に送信することを可能にするコードを含み得る。 Mobile wallet application 214 may include code that enables first computer 200 to manage tokens. For example, mobile wallet application 214 may include code that enables processor 202 to retrieve access tokens stored in secure memory 222 via contactless element interface 220 . The mobile wallet application 214 displays any suitable token information to the first computer 200, such as the date and time the access token was provisioned, the alias or identifier of the access token, and the date and time of the most recent interaction or transaction involving the access token. It may further include code for enabling. Additionally, mobile wallet application 214 may include code that enables processor 202 to display a graphical user interface (GUI) that allows a user to enable token-related functionality. Additionally, mobile wallet application 214 may include code that enables first computer 200 to transmit tokens to access terminals, for example, during transactions with retailers.

生体認証アプリケーション216は、第一のコンピュータ200がデータ入力/出力206を介して生体認証インスタンスをキャプチャすることを可能にするコードを含んでもよい。例えば、登録プロセス(以下により詳細に説明される図4からの登録段階402など)の間、第一のコンピュータ200は、カメラなどのデータ入力/出力要素206を使用して、顔スキャンなどの生体認証インスタンスをキャプチャするために使用されてもよい。生体認証アプリケーション216を使用して、この生体認証インスタンスをキャプチャし、暗号化または暗号化されていない形態のいずれかで、セキュアメモリ220上に生体認証インスタンスを格納してもよい。生体認証アプリケーション216は、さらに、プロセッサ202によって実行可能なコードまたは命令を含んで、生体認証インスタンスをベクトル化し、すなわち、これらの生体認証インスタンスに対応する生体認証ベクトルを生成してもよい。生体認証アプリケーション216はまた、プロセッサ202によって実行可能な、生体認証ベースの取引システムなどの生体認証ベースの相互作用システムに参加するためのコードまたは命令を含んでもよい。これらのコードまたは命令は、アクセス端末と通信し、生体認証ベクトルをアクセス端末に送信するなどの機能を実行するためのコードを含み得る。 Biometric application 216 may include code that enables first computer 200 to capture biometric instances via data input/output 206 . For example, during the registration process (such as the registration phase 402 from FIG. 4 described in more detail below), the first computer 200 uses a data input/output element 206, such as a camera, to capture a biometric, such as a face scan. May be used to capture authentication instances. Biometric application 216 may be used to capture this biometric instance and store it on secure memory 220 in either encrypted or unencrypted form. Biometric application 216 may further include code or instructions executable by processor 202 to vectorize biometric instances, ie, generate biometric vectors corresponding to these biometric instances. Biometric application 216 may also include code or instructions executable by processor 202 for participating in a biometric-based interaction system, such as a biometric-based transaction system. These codes or instructions may include code for performing functions such as communicating with an access terminal and transmitting a biometric vector to the access terminal.

スカラー積計算モジュール218は、いくつかの実施形態による、二つのベクトルのスカラー積のプライバシー保護計算を実行するためプロセッサ202によって実行可能なコードまたは命令を含み得る。これらの方法は、以下の図4~7を参照してより良く理解され得る。コードまたは命令は、中でも、図4~7を参照して以下に記載されるように、乱数またはランダムベクトルの生成、マスクされたベクトルの生成、プライベート暗号鍵(Paillier鍵などの付加的準同型暗号鍵を含む)の生成、ベクトルの暗号化および復号、ネゲーションベクトルの生成、差分ベクトルの、置換、二乗の大きさの計算、および二つのベクトルのスカラー積の計算を含み得る。 Scalar product computation module 218 may include code or instructions executable by processor 202 to perform a privacy-preserving computation of a scalar product of two vectors, according to some embodiments. These methods can be better understood with reference to FIGS. 4-7 below. The code or instructions may include, among others, random number or random vector generation, masked vector generation, private cryptographic keys (additive homomorphic cryptography such as Paillier keys), as described below with reference to FIGS. encryption and decryption of vectors, generation of negation vectors, permutation of difference vectors, computation of magnitude squared, and computation of the scalar product of two vectors.

図3は、本開示のいくつかの実施形態による例示的な第二のコンピュータ300を示す。第二のコンピュータ300は、プロセッサ302、通信インタフェース304、およびコンピュータ可読媒体306を備えてもよい。コンピュータ可読媒体306は、特に、通信モジュール308、登録モジュール310、スカラー積計算モジュール312、相互作用モジュール314、およびベクトルデータベース316を含む複数のソフトウェアモジュールを備えてもよい。 FIG. 3 illustrates an exemplary second computer 300 according to some embodiments of the disclosure. Second computer 300 may comprise processor 302 , communication interface 304 , and computer readable media 306 . Computer readable medium 306 may comprise a number of software modules including communication module 308, registration module 310, scalar product calculation module 312, interaction module 314, and vector database 316, among others.

プロセッサ302は、上記の用語セクションに記載の任意の適切な処理装置またはデバイスであってもよい。通信インタフェース304は、第二のコンピュータ300が、インターネットなどのネットワークを介して他のコンピュータまたはシステム(例えば、第一のコンピュータ)と通信することを可能にするネットワークインタフェースを備えてもよい。 Processor 302 may be any suitable processing unit or device described in the Terminology section above. Communication interface 304 may comprise a network interface that allows second computer 300 to communicate with other computers or systems (eg, the first computer) over a network such as the Internet.

通信モジュール308は、第二のコンピュータ300と第一のコンピュータを含む他の事業体との間の通信を確立するために、プロセッサ302によって実行可能なコードまたはソフトウェアを備えてもよい。例として、通信モジュール308は、UDP(ユーザデータグラムプロトコル)またはTCP(伝送制御プロトコル)パケット、あるいは任意の他の適切な形態のネットワーク通信の生成を可能にするコードを備え得る。第二のコンピュータ300は、通信モジュール308を使用して、第一のコンピュータなどの事業体からデータを送受信し得る。これらのデータには、以下の図4の第一の伝送段階406および第二の伝送段階408を参照して説明されるように、暗号化された、置換された、またはその他の方法のベクトル、および暗号鍵が含まれ得る。 Communications module 308 may comprise code or software executable by processor 302 to establish communications between second computer 300 and other entities, including the first computer. By way of example, communication module 308 may comprise code that enables the generation of UDP (User Datagram Protocol) or TCP (Transmission Control Protocol) packets, or any other suitable form of network communication. Second computer 300 may use communication module 308 to send and receive data from an entity, such as the first computer. These data may include encrypted, permuted, or otherwise vectors, as described with reference to first transmission stage 406 and second transmission stage 408 of FIG. and cryptographic keys.

登録モジュール310は、ユーザ(例えば、図1のユーザ108)が、生体認証ベクトル認証システムなどのベクトルベースの認証システムに登録することを可能にするコードを含み得る。実施形態に従う一部の方法では、登録は任意であってもよい。したがって、登録モジュール310は、同様に任意であってもよい。登録モジュール310は、第二のコンピュータ300が、ユーザまたは第一のコンピュータに対応する生体認証ベクトルを、ユーザまたはユーザに対応する識別子のIDに関連付けることを可能にするコードを含み得る。例えば、登録モジュール310は、第二のコンピュータ300が虹彩スキャンに対応する生体認証ベクトルをユーザ「John Doe」に関連付けることを可能にするコードを含み得る。登録モジュール310は、第二のコンピュータ300が生体認証データベース316の「John Doe」に対応する識別子と関連して、例示的な生体認証ベクトルを保存できるようにするコードを追加的に含み得る。後に、「John Doe」に対応する第一のコンピュータ(例えば、Johnのスマートフォン)および第二のコンピュータ300は、John Doeを認証し、相互作用を実行するために、生体認証データベース318に格納された生体認証ベクトルおよび第一のコンピュータに格納された生体認証ベクトルのプライバシー保護スカラー積計算を実行することができる。 Enrollment module 310 may include code that allows a user (eg, user 108 in FIG. 1) to enroll in a vector-based authentication system, such as a biometric vector authentication system. In some methods according to embodiments, registration may be optional. Accordingly, registration module 310 may be optional as well. Registration module 310 may include code that enables second computer 300 to associate a biometric vector corresponding to a user or first computer with an ID of a user or an identifier corresponding to the user. For example, registration module 310 may include code that allows second computer 300 to associate a biometric vector corresponding to an iris scan with user "John Doe." Registration module 310 may additionally include code that enables second computer 300 to store an exemplary biometric vector in association with an identifier corresponding to “John Doe” in biometric database 316 . Later, a first computer (e.g., John's smart phone) corresponding to "John Doe" and a second computer 300 are stored in biometric database 318 to authenticate John Doe and perform interactions. A privacy preserving scalar product of the biometric vector and the biometric vector stored on the first computer can be performed.

スカラー積計算モジュール312は、いくつかの実施形態による、プライバシー保護スカラー積計算を実行するために、プロセッサ302によって実行可能なコードを含み得る。プライバシー保護スカラー積計算は、図4~7のフローチャートを参照してより良く理解され得る。スカラー積計算モジュール312は、ベクトルの合計、ベクトル間の相違性、およびベクトルの大きさまたは二乗の大きさを計算するために使用される数学的演算に加えて、以下に記述されるように、ランダムなベクトル、マスクされたベクトル、暗号鍵、置換されたベクトルなどの生成を可能にするコードを含み得る。 Scalar product calculation module 312 may include code executable by processor 302 to perform privacy-preserving scalar product calculations, according to some embodiments. The privacy preserving scalar product computation can be better understood with reference to the flowcharts of FIGS. 4-7. The scalar product calculation module 312 performs, in addition to the mathematical operations used to calculate vector sums, vector dissimilarities, and vector magnitudes or squared magnitudes, as described below: It may contain code that allows the generation of random vectors, masked vectors, encryption keys, permuted vectors, and the like.

相互作用モジュール314は、第一のコンピュータとの相互作用を実行するためにプロセッサ302によって実行可能なコードを備えてもよい。この相互作用は、例えば、第一のコンピュータまたは第一のコンピュータに関連付けられたユーザがリソースにアクセスすることができるように、第一のコンピュータをリソースプロバイダに認証することを含み得る。例えば、リソースプロバイダは、小売業者であってもよく、リソースは、顧客が購入を希望する商品またはサービスであってもよく、第一のコンピュータは、顧客が所有するスマートフォンであってもよく、第二のコンピュータ300は、支払処理ネットワークに関連付けられたサーバコンピュータであってもよい。相互作用は、ユーザと小売業者との間の支払トランザクションを成立させることを含んでもよく、相互作用モジュール314は、ユーザと小売業者との間の支払取引を成立させるようにプロセッサ302によって実行可能なコードを含んでもよい。 Interaction module 314 may comprise code executable by processor 302 to effect interaction with the first computer. This interaction may include, for example, authenticating the first computer to the resource provider so that the first computer or a user associated with the first computer may access the resource. For example, the resource provider may be a retailer, the resource may be a product or service that the customer wishes to purchase, the first computer may be a smart phone owned by the customer, the Second computer 300 may be a server computer associated with a payment processing network. The interaction may include finalizing a payment transaction between the user and the retailer, and the interaction module 314 is executable by the processor 302 to finalize the payment transaction between the user and the retailer. May contain code.

第二の例示的な相互作用として、リソースプロバイダは、ロックされたコンピュータ化されたドアを介して建物へのアクセスを制御するコンピュータシステムであってもよい。第一のコンピュータと第二のコンピュータ300との間の相互作用は、例えば、リソースプロバイダのコンピュータにドアを開くように指示する制御信号を送ることによって、または、リソースプロバイダのコンピュータがドアを開くように、第一のコンピュータに第一のコンピュータがリソースプロバイダのコンピュータに提供し得るアクセストークンまたは別の証明書を提供することによって、第一のコンピュータの所有者が建物にアクセスすることを可能にする第二のコンピュータを備えてもよい。 As a second exemplary interaction, a resource provider may be a computer system that controls access to a building through a locked computerized door. The interaction between the first computer and the second computer 300 may be, for example, by sending a control signal to the resource provider's computer instructing it to open the door, or causing the resource provider's computer to open the door. 2, enabling the owner of the first computer to access the building by providing the first computer with an access token or another credential that the first computer can provide to the resource provider's computer; A second computer may be provided.

ベクトルデータベース316は、ベクトルを含む任意の適切なデータベース、ファイル、またはメモリ構造を備えてもよい。これらのベクトルは、例えば、複数の登録ユーザに対応する生体認証ベクトルを含み得る。第二のコンピュータ300は、そのベクトルと第一のコンピュータに対応する別のベクトルのスカラー積を計算するために、ベクトルデータベース316からベクトルを取得してもよい。 Vector database 316 may comprise any suitable database, file, or memory structure containing vectors. These vectors may include, for example, biometric vectors corresponding to multiple registered users. The second computer 300 may obtain a vector from the vector database 316 to compute the scalar product of that vector with another vector corresponding to the first computer.

図4は、いくつかの実施形態による、第一のベクトル

Figure 0007280285000016

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

のスカラー積を計算する方法400のフローチャート概要を示す。方法は、登録段階402、セットアップ段階404、第一の伝送段階406、中間計算段階408、第二の伝送段階410、スカラー積計算段階412、および相互作用段階414の七つの段階に分けられる。 FIG. 4 illustrates a first vector
Figure 0007280285000016

and a second vector
Figure 0007280285000017

4 shows a flowchart overview of a method 400 for computing the scalar product of . The method is divided into seven phases: registration phase 402 , setup phase 404 , first transmission phase 406 , intermediate computation phase 408 , second transmission phase 410 , scalar product computation phase 412 , and interaction phase 414 .

登録段階402は任意であってもよく、すなわち、一部の実施形態では、登録段階402が実施されてもよく、他の実施形態では、登録段階402は実施されなくてもよい。登録段階402の特徴は、第一のベクトル

Figure 0007280285000018

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

の特徴、ならびに相互作用段階414で実施される相互作用の性質に依存し得る。 The registration phase 402 may be optional, ie in some embodiments the registration phase 402 may be performed and in other embodiments the registration phase 402 may not be performed. A feature of the registration step 402 is that the first vector
Figure 0007280285000018

and a second vector
Figure 0007280285000019

, as well as the nature of the interaction performed in the interaction step 414.

一例として、ベクトルは生体認証インスタンスに対応してもよく、二つのベクトルのスカラー積は二つの生体認証インスタンス間の類似性に対応してもよい。したがって、スカラー積は、二つの生体認証インスタンスが確実性の十分な程度(例えば、75%一致、95%一致、99%一致など)に一致するかどうかを判定するために計算され得る。この場合、登録段階402は、生体認証登録プロセスを含んでもよい。この生体認証登録プロセスは、例えば、登録ユーザから生体認証をキャプチャすること(例えば、ユーザの虹彩の画像をキャプチャすること、親指または指紋スキャンを実行することなどによって)、キャプチャされた生体認証を変換すること(例えば、虹彩コードまたは生体認証のその他の適切なデジタル表現に)、および生体認証インスタンスを安全に格納すること(例えば、第一のコンピュータ上のセキュア要素および/または第二のコンピュータ上の安全なデータベース内に)を含みうる。 As an example, a vector may correspond to biometric instances, and a scalar product of two vectors may correspond to a similarity between two biometric instances. Accordingly, a scalar product may be computed to determine whether two biometric instances match with a sufficient degree of certainty (eg, 75% match, 95% match, 99% match, etc.). In this case, the enrollment phase 402 may include a biometric enrollment process. This biometric enrollment process includes, for example, capturing a biometric from an enrolled user (e.g., by capturing an image of the user's iris, performing a thumb or fingerprint scan, etc.) and converting the captured biometric. (e.g., in an iris code or other suitable digital representation of the biometric) and securely storing the biometric instance (e.g., in a secure element on a first computer and/or a in a secure database).

上述のように、登録段階402の特徴は、相互作用段階414および相互作用の特徴に依存しうる。一例として、図4の方法400は、支払いを行うための生体認証承認システムに適用され得る。第一のベクトル

Figure 0007280285000020

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

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

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

に関連付けられて格納できるように第二のコンピュータに送信してもよい。 As noted above, the characteristics of the registration phase 402 may depend on the interaction phase 414 and the characteristics of the interaction. As an example, method 400 of FIG. 4 may be applied to a biometric authorization system for making payments. first vector
Figure 0007280285000020

A customer's biometric instance represented as a second vector
Figure 0007280285000021

and stored in the payment processing server. If the biometric vectors match (determined based on the scalar product of the first vector and the second vector), the payment processing server authenticates the customer and completes the transaction between the customer and the retailer (i.e., interaction of interaction step 414) may be allowed. In this case, since the interaction is a transaction, the registration step 402 sends the payment certificate (such as a PAN) to the biometric vector (second vector) stored on the payment processing server (second computer).
Figure 0007280285000022

). In this example, the registration step 402 further includes the user or consumer filling out a web form with information such as the user's PAN, which is then encrypted and sent to the second vector
Figure 0007280285000023

may be transmitted to a second computer so that it can be stored in association with the

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

Figure 0007280285000024

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

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

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

は、ユーザが移動しようとしているカフェなどのビジネスの位置を表してもよい。したがって、第一のコンピュータは、ユーザのスマートフォンを備えてもよく、第二のコンピュータは、ナビゲーションまたはマッピングサービスに関連付けられたサーバコンピュータを備えてもよい。二つのベクトルのスカラー積は、ユーザがカフェに移動するのを助けるために、ユーザのスマートフォンによって使用され得る。ユーザの位置ベクトルはGPSデータから推測でき、ナビゲーションサービスはすでにカフェの位置を知っている場合があるため、登録段階402を実施する必要はない場合がある。 However, as noted above, in some embodiments the registration step 402 may be optional. This means that the first computer and the second computer
Figure 0007280285000024

and a second vector
Figure 0007280285000025

, respectively from an external source (eg, via biometric capture). For example, the first vector
Figure 0007280285000026

may represent the user's location as determined from the GPS of the user's smartphone, and a second vector
Figure 0007280285000027

may represent the location of a business, such as a cafe, to which the user is traveling. Thus, the first computer may comprise the user's smart phone and the second computer may comprise the server computer associated with the navigation or mapping service. The scalar product of the two vectors can be used by the user's smart phone to help the user navigate to the cafe. Since the user's position vector can be inferred from GPS data and the navigation service may already know the café's location, it may not be necessary to perform the registration step 402 .

セットアップ段階404は、図5を参照するとより良く理解できる。一般に、セットアップ段階は、任意のデータが第一のコンピュータと第二のコンピュータとの間で送信される前に行われ得るステップを含み得る。 Setup phase 404 can be better understood with reference to FIG. In general, the setup phase may include steps that may occur before any data is transmitted between the first computer and the second computer.

図5は、実施形態による方法のセットアップ段階の間に実施されるステップのフローチャートを示す。添字Aは、一般的には、第一のコンピュータによって生成または使用されるベクトルまたは値を指し、一方で、添字Bは、一般的には、第二のコンピュータによって生成または使用されるベクトル、値、または暗号鍵を指すことに留意するのが有用であり得る。 FIG. 5 shows a flowchart of steps performed during the setup phase of the method according to an embodiment. Subscript A generally refers to vectors or values generated or used by a first computer, while subscript B generally refers to vectors, values generated or used by a second computer. , or cryptographic keys.

ステップ502Aで、第一のコンピュータは、第一のベクトル

Figure 0007280285000028

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

を取得することができる。 At step 502A, the first computer computes the first vector
Figure 0007280285000028

can be obtained safely. In some embodiments, the first computer may be a smart phone associated with the user. In these embodiments, the first computer receives the first vector data from the secure element of the first computer (eg, using the contactless element interface 220 of FIG. 2).
Figure 0007280285000029

can be obtained.

同様に、ステップ502Bで、第二のコンピュータは、第二のベクトル

Figure 0007280285000030

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

を安全に取得できる。 Similarly, at step 502B, the second computer computes the second vector
Figure 0007280285000030

can be obtained safely. In some embodiments, the second computer may be a remote server computer associated with some form of authenticating entity (eg, a government agency or a payment processing server associated with a payment processing network). A second computer retrieves a second vector from a secure or encrypted database
Figure 0007280285000031

can be obtained safely.

いくつかの実施形態では、第一のベクトル

Figure 0007280285000032

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

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

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

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

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

は、等しい長さであってもよく、すなわち、同じ数の構成要素を有してもよい。 In some embodiments, the first vector
Figure 0007280285000032

and a second vector
Figure 0007280285000033

may be the biometric vector, i.e. the first vector
Figure 0007280285000034

and a second vector
Figure 0007280285000035

may correspond to a first biometric template and a second biometric template (eg, an iris code, a digital representation of a fingerprint, a voice sample, a DNA segment, etc.). first vector
Figure 0007280285000036

and a second vector
Figure 0007280285000037

may be of equal length, ie have the same number of components.

ステップ504Aで、第一のコンピュータは、第一のランダムなベクトル

Figure 0007280285000038

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

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

は、第一のベクトル
Figure 0007280285000041

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

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

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

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

は、256個のランダムに生成されたバイトを含んでもよい。 At step 504A, the first computer generates a first random vector
Figure 0007280285000038

may be generated. first random vector
Figure 0007280285000039

may be generated according to any suitable means, including using a cryptographically secure pseudo-random number generator (CSPRNG). first random vector
Figure 0007280285000040

is the first vector
Figure 0007280285000041

may be of the same length as the first vector, i.e.
Figure 0007280285000042

and the first random vector
Figure 0007280285000043

may have the same number of components. For example, the first vector
Figure 0007280285000044

contains a vectorized iris code containing 256 1-byte components, then a first random vector
Figure 0007280285000045

may contain 256 randomly generated bytes.

同様に、ステップ504Bで、第二のコンピュータは第二のランダムなベクトル

Figure 0007280285000046

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

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

は、第二のベクトル
Figure 0007280285000049

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

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

は、同じ数の構成要素を有してもよい。 Similarly, at step 504B, the second computer generates a second random vector
Figure 0007280285000046

may be generated. second random vector
Figure 0007280285000047

may similarly be generated using any suitable means, including using a CSPRNG. second random vector
Figure 0007280285000048

is the second vector
Figure 0007280285000049

may be of the same length as the second vector, i.e.
Figure 0007280285000050

and a second random vector
Figure 0007280285000051

may have the same number of components.

ステップ506Aで、第一のコンピュータは、第一のベクトル

Figure 0007280285000052

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

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

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

は、第一のベクトル
Figure 0007280285000056

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

との合計と等しくてもよい。 At step 506A, the first computer computes the first vector
Figure 0007280285000052

and the first random vector
Figure 0007280285000053

by combining the first masked vector
Figure 0007280285000054

can be generated. In some embodiments, the first masked vector
Figure 0007280285000055

is the first vector
Figure 0007280285000056

and the first random vector
Figure 0007280285000057

may be equal to the sum of

Figure 0007280285000058
Figure 0007280285000058

同様に、ステップ506Bで、第二のコンピュータは、第二のベクトル

Figure 0007280285000059

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

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

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

は、第二のベクトル
Figure 0007280285000063

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

の合計と等しくてもよい。 Similarly, at step 506B, the second computer computes the second vector
Figure 0007280285000059

and a second random vector
Figure 0007280285000060

A second masked vector by combining
Figure 0007280285000061

can generate In some embodiments, the second masked vector
Figure 0007280285000062

is the second vector
Figure 0007280285000063

and a second random vector
Figure 0007280285000064

may be equal to the sum of

Figure 0007280285000065
Figure 0007280285000065

ステップ508Aで、第一のコンピュータは、第一の公開鍵Pbと第一の秘密鍵Prとを含む第一のキーペアを生成できる。第一の公開鍵Pbは、暗号化関数Eの使用を可能にしてもよく、第一の秘密鍵Prは、復号関数Dの使用を可能にしてもよい。すなわち、第一の公開鍵Pbで暗号化されたデータ(例えば、ベクトル)は、第一の秘密鍵Prで復号され得る。 At step 508A, the first computer can generate a first key pair including a first public key Pb A and a first private key Pr A. The first public key Pb A may enable the use of the encryption function EA and the first private key Pr A may enable the use of the decryption function DA . That is, data (eg, vectors) encrypted with the first public key Pb A can be decrypted with the first private key Pr A.

ステップ510Aで、第一のコンピュータは、第二の公開鍵Pb’および第二の秘密鍵Pr’を含む第二のキーペアを生成できる。第二の公開鍵Pb’は、暗号化関数E’の使用を可能にしてもよく、第二の秘密鍵Pr’は、復号関数D’の使用を可能にしてもよい。すなわち、第二の公開鍵Pb’で暗号化されたデータ(例えば、ベクトル)は、第二の秘密鍵Pr’で復号され得る。 At step 510A, the first computer can generate a second key pair including a second public key Pb'A and a second private key Pr'A . A second public key Pb'A may enable use of the encryption function E'A and a second private key Pr'A may enable use of the decryption function D' A . That is, data (eg, vectors) encrypted with the second public key Pb'A can be decrypted with the second private key Pr'A .

同様に、ステップ508Bで、第二のコンピュータは、第三の公開鍵Pbおよび第三の秘密鍵Prを含む第三のキーペアを生成できる。第三の公開鍵Pbは、暗号化関数Eの使用を可能にしてもよく、第三の秘密鍵Prは、復号関数Dの使用を可能にしてもよい。すなわち、第三の公開鍵Pbで暗号化されたデータ(例えば、ベクトル)は、第三の秘密鍵Prで復号され得る。 Similarly, at step 508B, the second computer can generate a third key pair including a third public key PbB and a third private key PrB . A third public key Pb B may enable use of the encryption function E B and a third private key Pr B may enable use of the decryption function D B . That is, data (eg, vectors) encrypted with a third public key Pb B can be decrypted with a third private key PrB .

同様に、ステップ510Bで、第二のコンピュータは、第四の公開鍵Pb’および第四の秘密鍵Pr’を含む第四のキーペアを生成できる。第四の公開鍵Pb’は、暗号化関数E’の使用を可能にしてもよく、第四の秘密鍵Pr’は、復号関数D’の使用を可能にしてもよい。すなわち、第四の公開鍵Pb’で暗号化されたデータ(例えば、ベクトル)は、第四の秘密鍵Pr’で復号され得る。 Similarly, at step 510B, the second computer can generate a fourth key pair including a fourth public key Pb'B and a fourth private key Pr'B . A fourth public key Pb'B may enable use of the encryption function E'B and a fourth private key Pr'B may enable use of the decryption function D' B . That is, data (eg, vectors) encrypted with the fourth public key Pb'B can be decrypted with the fourth private key Pr'B .

実施形態によっては、第一の公開鍵Pb、第一の秘密鍵Pr、第二の公開鍵Pb’、第二の秘密鍵Pr’、第三の公開鍵Pb、第三の秘密鍵Pr、第四の公開鍵Pb’、および第四の秘密鍵Pr’は、Paillier暗号鍵などの付加的準同型暗号鍵であってもよい。 In some embodiments, a first public key Pb A , a first private key Pr A , a second public key Pb′ A , a second private key Pr ′ A , a third public key Pb B , a third Private key Pr B , fourth public key Pb′ B , and fourth private key Pr′ B may be additional homomorphic encryption keys such as Paillier encryption keys.

これらの暗号キーペアの生成は、使用される暗号システムの性質によって異なる。次の暗号キーペアを生成する方法の例は、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’を生成するために、プロセスを二回繰り返すことができる。 The generation of these cryptographic key pairs depends on the nature of the cryptosystem used. The following example of how to generate a cryptographic key pair corresponds to using the Paillier cipher. First, a first computer or a second computer randomly and independently generates two large prime numbers p and q such that the greatest common divisor pq and (p−1)(q−1) is 1. You can choose. Second, the first computer or the second computer
Figure 0007280285000066

and
Figure 0007280285000067

can be calculated, where lcm is the function used to determine the lowest common multiple. Third, the first computer or the second computer
Figure 0007280285000068

A random integer g can be generated such that Fourth, the first computer or the second computer
Figure 0007280285000069

can be calculated. The public key (used for encryption) is the pair (n,g), while the private key (used for decryption) is the pair (λ,μ). This process can be repeated based on the number of keys to be generated, for example, the first computer generates a first public key Pb A , a first private key Pr A , a second public key Pb′. A , and a second private key Pr' A , the process can be repeated twice, and the second computer generates a third public key Pb B , a third private key Pr B , a fourth , and a fourth private key Pr'B , the process can be repeated twice.

ステップ512Aで、第一のコンピュータは、第一の公開鍵Pbを使用して第一のマスクされたベクトル

Figure 0007280285000070

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

を生成することができる。 At step 512A, the first computer uses the first public key Pb A to generate the first masked vector
Figure 0007280285000070

the first encrypted masked vector by encrypting
Figure 0007280285000071

can be generated.

同様に、ステップ514Aで、第一のコンピュータは、第二の公開鍵Pb’を使用して第一のランダムなベクトル

Figure 0007280285000072

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

を生成することができる。 Similarly, at step 514A, the first computer uses the second public key Pb'A to create a first random vector
Figure 0007280285000072

by encrypting the first encrypted random vector
Figure 0007280285000073

can be generated.

ステップ512Bで、第二のコンピュータは、第三の公開鍵Pbを使用して第二のマスクされたベクトル

Figure 0007280285000074

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

を生成できる。 At step 512B, the second computer uses the third public key Pb B to generate the second masked vector
Figure 0007280285000074

a second encrypted masked vector by encrypting the
Figure 0007280285000075

can generate

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

Figure 0007280285000076

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

を生成できる。 Similarly, at step 514B, the second computer uses the fourth public key Pb' B to generate a second random vector
Figure 0007280285000076

by encrypting a second encrypted random vector
Figure 0007280285000077

can generate

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

Figure 0007280285000078

の場合、 Generally, in embodiments of the present disclosure, an encrypted vector refers to a vector in which each component of the vector is encrypted. For example, the first encrypted masked vector
Figure 0007280285000078

in the case of,

Figure 0007280285000079
Figure 0007280285000079

図4に戻ると、セットアップ段階404に続くのは、第一の伝送段階406である。第一の送信段階406では、第一のコンピュータおよび第二のコンピュータは、データを互いに送信することができる。このデータは、その後の中間計算段階408およびスカラー積計算段階412で使用することができる。 Returning to FIG. 4, following the setup phase 404 is a first transmission phase 406 . In a first send step 406, the first computer and the second computer can send data to each other. This data can be used in subsequent intermediate computation stage 408 and scalar product computation stage 412 .

より具体的には、第一の伝送段階406では、第一のコンピュータは、第二のコンピュータに、第一の公開鍵Pb、第二の公開鍵Pb’、第一の暗号化されたマスクされたベクトル

Figure 0007280285000080

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

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

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

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

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

である。 More specifically, in a first transmission step 406, the first computer transmits to the second computer a first public key Pb A , a second public key Pb′ A , a first encrypted masked vector
Figure 0007280285000080

and the first encrypted random vector
Figure 0007280285000081

and the first encrypted masked vector
Figure 0007280285000082

is the first masked vector encrypted using the first public key Pb A
Figure 0007280285000083

and the first encrypted random vector
Figure 0007280285000084

is a first random vector encrypted using a second public key Pb' A
Figure 0007280285000085

is.

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

Figure 0007280285000086

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

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

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

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

である。 Additionally, the first transmission step 406 transfers from the second computer a third public key Pb B , a fourth public key Pb′ B , a second encrypted masked vector
Figure 0007280285000086

and a second encrypted random vector
Figure 0007280285000087

and the second encrypted masked vector is
Figure 0007280285000088

A second masked vector encrypted using a third public key Pb B
Figure 0007280285000089

and the second encrypted random vector is the second random vector encrypted using the fourth public key Pb'B
Figure 0007280285000090

is.

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

Figure 0007280285000091

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

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

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

は、任意の適切な形態で任意の適切なネットワークを介して送信され得る。例えば、これらのデータは、UDPまたはTCPパケットなどのデータパケットでインターネットなどのネットワークを介して送信され得る。 These data (i.e., first public key Pb A , second public key Pb′ A , third public key Pb B , fourth public key Pb′ B , first encrypted masked vector
Figure 0007280285000091

the second encrypted masked vector
Figure 0007280285000092

First Encrypted Random Vector
Figure 0007280285000093

and a second encrypted random vector
Figure 0007280285000094

may be transmitted over any suitable network in any suitable form. For example, these data may be sent over a network such as the Internet in data packets such as UDP or TCP packets.

第一の伝送段階406の後、第一のコンピュータおよび第二のコンピュータ408は、図6を参照するとより良く理解され得る、中間計算段階408に進むことができる。 After the first transmission stage 406, the first computer and the second computer 408 can proceed to an intermediate computation stage 408, which can be better understood with reference to FIG.

図6は、実施形態による方法の中間計算段階の間に実施されるステップのフローチャートを示す。 FIG. 6 shows a flow chart of the steps performed during the intermediate computation stage of the method according to the embodiment.

ステップ602Aで、第一のコンピュータは、第一のネゲーションベクトル

Figure 0007280285000095

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

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

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

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

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

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

である。 At step 602A, the first computer generates a first negation vector
Figure 0007280285000095

can be generated. First negation vector
Figure 0007280285000096

is the negation of the first vector
Figure 0007280285000097

, i.e. the first negation vector
Figure 0007280285000098

each component of the first vector
Figure 0007280285000099

may be equal to the negative value of the corresponding component of . For example, the first vector
Figure 0007280285000100

, the first negation vector is
Figure 0007280285000101

is.

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

Figure 0007280285000102

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

は、第二のベクトル
Figure 0007280285000104

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

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

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

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

である。 Similarly, at step 602B, the second computer determines the second negation vector
Figure 0007280285000102

can be generated. second negation vector
Figure 0007280285000103

is the second vector
Figure 0007280285000104

i.e. a second negation vector
Figure 0007280285000105

each component of the second vector
Figure 0007280285000106

may be equal to the negative value of the corresponding component of . For example, the second vector
Figure 0007280285000107

, the second negation vector is
Figure 0007280285000108

is.

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

Figure 0007280285000109

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

を生成することができる。第三の公開鍵Pbは、セットアップ段階(図4のセットアップ段階404)の間に第二のコンピュータによって以前に生成され、第一の伝送段階(図4の第一の伝送段階406)の間に第一のコンピュータに送信された可能性がある。 At step 604A, the first computer uses the third public key Pb B to generate the first negation vector
Figure 0007280285000109

by encrypting the first encrypted negation vector
Figure 0007280285000110

can be generated. The third public key Pb B was previously generated by the second computer during the setup phase (setup phase 404 in FIG. 4) and during the first transmission phase (first transmission phase 406 in FIG. 4) may have been sent to the first computer at

ステップ606Aで、第一のコンピュータは、第二の暗号化されたマスクされたベクトル

Figure 0007280285000111

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

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

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

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

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

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

を生成できてもよい。 At step 606A, the first computer generates a second encrypted masked vector
Figure 0007280285000111

and the first encrypted negation vector
Figure 0007280285000112

The first encrypted difference vector based on
Figure 0007280285000113

can be generated. the second encrypted masked vector
Figure 0007280285000114

may have been received from the second computer by the first computer during the first transmission phase. In some embodiments, the first computer stores the first encrypted difference vector
Figure 0007280285000115

A property of additive homomorphic encryption may be used to generate This causes the first computer to generate a second encrypted masked vector
Figure 0007280285000116

without first decrypting the first encrypted difference vector
Figure 0007280285000117

can be generated.

たとえば、Paillier暗号では、一般に、二つの暗号文cとdの積が、対応する平文の暗号化された合計と等しい。すなわち、 For example, in the Paillier cipher, the product of two ciphertexts c and d is generally equal to the encrypted sum of the corresponding plaintexts. i.e.

Figure 0007280285000118
Figure 0007280285000118

結果として、第一のコンピュータは、第二の暗号化されたマスクされたベクトル

Figure 0007280285000119

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

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

を生成することができる。 As a result, the first computer generates a second encrypted masked vector
Figure 0007280285000119

to each component of the first encrypted negation vector
Figure 0007280285000120

the first encrypted difference vector by multiplying the corresponding components of
Figure 0007280285000121

can be generated.

Figure 0007280285000122
Figure 0007280285000122

Figure 0007280285000123
Figure 0007280285000123

Figure 0007280285000124
Figure 0007280285000124

Figure 0007280285000125
Figure 0007280285000125

ステップ608Aで、第一のコンピュータは、第四の公開鍵Pb’を使用して第一のネゲーションベクトル

Figure 0007280285000126

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

を生成することができる。第四の公開鍵Pb’は、セットアップ段階中に第二のコンピュータによって生成され、第一の伝送段階の間に第一のコンピュータに送信された可能性がある。 At step 608A, the first computer uses the fourth public key Pb'B to generate the first negation vector
Figure 0007280285000126

by encrypting the second encrypted negation vector
Figure 0007280285000127

can be generated. The fourth public key Pb'B may have been generated by the second computer during the setup phase and sent to the first computer during the first transmission phase.

ステップ610Aで、第一のコンピュータは、第二の暗号化されたランダムなベクトル

Figure 0007280285000128

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

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

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

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

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

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

の対応する構成要素を乗じる。 At step 610A, the first computer generates a second encrypted random vector
Figure 0007280285000128

and a second encrypted negation vector
Figure 0007280285000129

A second encrypted difference vector based on
Figure 0007280285000130

can be generated. Second Encrypted Random Vector
Figure 0007280285000131

may have been received from the second computer during the first transmission phase. In some embodiments, the first computer stores the second encrypted difference vector
Figure 0007280285000132

A property of additive homomorphic encryption may be used to generate This can be accomplished using a series of steps or operations similar to those used to generate the first encrypted difference vector in step 606A. i.e. a second encrypted random vector
Figure 0007280285000133

a second encrypted negation vector
Figure 0007280285000134

Multiply the corresponding components of .

Figure 0007280285000135
Figure 0007280285000135

Figure 0007280285000136
Figure 0007280285000136

Figure 0007280285000137
Figure 0007280285000137

Figure 0007280285000138
Figure 0007280285000138

ステップ604Bで、第二のコンピュータは、第一の公開鍵Pbを使用して第二のネゲーションベクトル

Figure 0007280285000139

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

を生成することができる。第一の公開鍵Pbは、セットアップ段階の間に第一のコンピュータによって生成され、第一の伝送段階の間に第二のコンピュータに送信された可能性がある。 At step 604B, the second computer uses the first public key Pb A to create a second negation vector
Figure 0007280285000139

by encrypting the third encrypted negation vector
Figure 0007280285000140

can be generated. The first public key Pb A may have been generated by the first computer during the setup phase and sent to the second computer during the first transmission phase.

ステップ606Bで、第二のコンピュータは、第一の暗号化されたマスクされたベクトル

Figure 0007280285000141

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

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

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

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

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

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

の対応する暗号化された構成要素と、を乗じる。 At step 606B, the second computer generates the first encrypted masked vector
Figure 0007280285000141

and a third encrypted negation vector
Figure 0007280285000142

A third encrypted difference vector based on
Figure 0007280285000143

can be generated. The second computer receives the first encrypted masked vector from the first computer during the first transmission phase.
Figure 0007280285000144

may have received In some embodiments, the second computer stores the third encrypted difference vector
Figure 0007280285000145

A property of additive homomorphic encryption may be used to generate This can be accomplished using a series of steps or operations similar to those used to generate the first encrypted difference vector in step 606A. i.e. the first encrypted masked vector
Figure 0007280285000146

and a third encrypted negation vector
Figure 0007280285000147

with the corresponding encrypted component of .

Figure 0007280285000148
Figure 0007280285000148

Figure 0007280285000149
Figure 0007280285000149

Figure 0007280285000150
Figure 0007280285000150

Figure 0007280285000151
Figure 0007280285000151

ステップ608Bで、第二のコンピュータは、第二の公開鍵Pb’を使用して第二のネゲーションベクトル

Figure 0007280285000152

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

を生成できる。第二の公開鍵Pb’は、セットアップ段階の間に第一のコンピュータによって以前に生成され、第一の伝送段階の間に第二のコンピュータに送信された可能性がある。 At step 608B, the second computer uses the second public key Pb'A to create a second negation vector
Figure 0007280285000152

by encrypting the fourth encrypted negation vector
Figure 0007280285000153

can generate The second public key Pb' A may have been previously generated by the first computer during the setup phase and sent to the second computer during the first transmission phase.

ステップ610Bで、第二のコンピュータは、第一の暗号化されたランダムなベクトル

Figure 0007280285000154

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

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

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

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

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

の対応する暗号化された構成要素を乗じる。 At step 610B, the second computer generates the first encrypted random vector
Figure 0007280285000154

and a fourth encrypted negation vector
Figure 0007280285000155

A fourth encrypted difference vector based on
Figure 0007280285000156

can be generated. The second computer may have received the first encrypted random vector from the first computer during the first transmission phase. In some embodiments, the second computer stores the fourth encrypted difference vector
Figure 0007280285000157

A property of additive homomorphic encryption may be used to generate This can be accomplished using a similar series of steps or operations used to generate the third encrypted difference vector in step 606B. i.e. a second encrypted random vector
Figure 0007280285000158

a second encrypted negation vector
Figure 0007280285000159

Multiply the corresponding encrypted component of .

Figure 0007280285000160
Figure 0007280285000160

Figure 0007280285000161
Figure 0007280285000161

Figure 0007280285000162
Figure 0007280285000162

Figure 0007280285000163
Figure 0007280285000163

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

Figure 0007280285000164

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

に適用される置換
Figure 0007280285000166

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

をもたらすことができる。 At step 612A, the first computer may generate a first permutation π A1 and a second permutation π A2 . As mentioned above, a permutation is a way in which a set or things can be ordered or arranged. A permutation may be used to "permute" something according to a permutation, and the permutation may be represented as a vector. As an example, replace
Figure 0007280285000164

is for a vector containing three components, the third component should be located at the first position, the first component should be located at the second position, and the second It may indicate that the component should be placed in a third position. For example, vector
Figure 0007280285000165

permutation applied to
Figure 0007280285000166

is the permuted vector
Figure 0007280285000167

can bring

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

Figure 0007280285000168

と同じ数の構成要素を有してもよい。 The first computer can generate the first permutation π A1 and the second permutation π A2 in any number of ways. As an example, the first computer may shuffle the ordered array (ie, (1, 2, . . . , n)) using an algorithm (eg, Fisher-Yates shuffle, etc.). A shuffled ordered array can be used as the first permutation π A1 . The first computer can use a similar process to generate a second permutation, shuffle the ordered array twice, and use the result as the second permutation π A2 . The first permutation π A2 and the second permutation π A2 are represented by the first vector
Figure 0007280285000168

may have the same number of components as

ステップ612Bで、第二のコンピュータは、第三の置換πB1および第四の置換πB2を生成することができる。第一の置換πA1および第二の置換πA2を参照して上述したように、第三の置換πB1および第四の置換πB2は、例えば、フィッシャーイェーツなどのシャッフリングアルゴリズムを使用して、順序付けられた配列をシャッフルするなど、任意の数の方法で生成することができる。 At step 612B, the second computer can generate a third permutation π B1 and a fourth permutation π B2 . As described above with reference to the first permutation π A1 and the second permutation π A2 , the third permutation π B1 and the fourth permutation π B2 can be obtained using, for example, a shuffling algorithm such as Fisher-Yates It can be generated in any number of ways, including shuffling an ordered array.

ステップ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

をもたらすことができる。 At step 614A, the first computer computes the first permutation π A1 and the first encrypted difference vector
Figure 0007280285000169

using the first permuted encrypted difference vector
Figure 0007280285000170

can be generated. The first computer uses the first permutation π A1 to generate the first encrypted difference vector
Figure 0007280285000171

by replacing the first permuted encrypted difference vector
Figure 0007280285000172

may be generated. That is, replace the first permutation π A1 with the first encrypted difference vector
Figure 0007280285000173

apply to This uses the values or components of the first permutation π A1 as indices to index the first encrypted difference vector
Figure 0007280285000174

can be achieved by reordering the To repeat the example used above, the vector
Figure 0007280285000175

permutation applied to
Figure 0007280285000176

is the permuted vector
Figure 0007280285000177

can bring Similarly, the first encrypted difference vector
Figure 0007280285000178

The first permutation π A1 applied to the first permuted encrypted difference vector
Figure 0007280285000179

can bring

ステップ616Aで、第一のコンピュータは、第二の置換πA2と第二の暗号化された差分ベクトル

Figure 0007280285000180

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

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

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

を生成する。 At step 616A, the first computer computes the second permutation π A2 and the second encrypted difference vector
Figure 0007280285000180

using the second permuted encrypted difference vector
Figure 0007280285000181

can be generated. This can be accomplished in substantially the same manner as described above with reference to step 614A. That is, the first computer uses the second permutation π A2 to generate the second encrypted difference vector
Figure 0007280285000182

can reorder the components of the second permuted encrypted difference vector
Figure 0007280285000183

to generate

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

Figure 0007280285000184

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

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

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

を生成することができる。 At step 614B, the second computer generates the third permutation π B1 and the third encrypted difference vector
Figure 0007280285000184

using the third permuted encrypted difference vector
Figure 0007280285000185

can generate This can be accomplished in substantially the same manner as described above with reference to steps 614A and 616A. That is, the second computer uses the third permutation π B1 to generate the third encrypted difference vector
Figure 0007280285000186

to obtain a third permuted encrypted difference vector
Figure 0007280285000187

can be generated.

ステップ616Bで、第二のコンピュータは、第四の置換πB2および第四の暗号化された差分ベクトル

Figure 0007280285000188

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

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

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

を生成することができる。 At step 616B, the second computer generates the fourth permutation π B2 and the fourth encrypted difference vector
Figure 0007280285000188

the fourth permuted encrypted difference vector using
Figure 0007280285000189

can generate This can be accomplished in substantially the same manner as described above with reference to steps 614A, 614B and 616A. That is, the second computer uses the fourth permutation π B2 to generate the fourth encrypted difference vector
Figure 0007280285000190

to obtain a fourth permuted encrypted difference vector
Figure 0007280285000191

can be generated.

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

Figure 0007280285000192

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

も、記載される中間計算段階の間ではなく、セットアップ段階の間に生成されてもよい。 Of course, in some embodiments, some steps performed during an intermediate computational stage may instead be performed at an earlier or later stage. As an example, the first permutation π A1 , the second permutation π A1 , the third permutation π B1 , and the fourth permutation π B2 may be generated during the setup phase (setup phase 404 of FIG. 4). good. Similarly, the first negation vector
Figure 0007280285000192

and a second negation vector
Figure 0007280285000193

may also be generated during the setup phase rather than during the intermediate computation phase described.

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

Figure 0007280285000194

を計算するために、以下に説明するように使用され得る。 Returning to FIG. 4, after the intermediate computation stage 408, the first computer and the second computer may perform a second transmission stage 410. FIG. In a second transmission stage 410, the first computer and the second computer may transmit data generated during the intermediate computation stage 408 to each other. These data are used as the scalar product in the scalar product calculation step 412
Figure 0007280285000194

can be used as described below to calculate

より具体的には、第二の伝送段階410では、第一のコンピュータは、第二のコンピュータに、第一の置換された暗号化された差分ベクトル

Figure 0007280285000195

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

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

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

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

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

は、第二の公開鍵Pb’を使用して暗号化され、第四の置換πB2を使用して置換される。 More specifically, in a second transmission step 410, the first computer sends the second computer the first permuted encrypted difference vector
Figure 0007280285000195

and the second permuted encrypted difference vector
Figure 0007280285000196

may be sent. Similarly, in a second transmission step 410, the first computer receives from the second computer the third permuted encrypted difference vector
Figure 0007280285000197

and the fourth permuted encrypted difference vector
Figure 0007280285000198

and a third permuted encrypted difference vector
Figure 0007280285000199

is encrypted using the first public key Pb A , permuted using the third permutation π B1 , and the fourth permuted encrypted difference vector
Figure 0007280285000200

is encrypted using the second public key Pb' A and permuted using the fourth permutation π B2 .

第一の伝送段階406にあるように、これらのデータ(すなわち、第一の置換された暗号化された差分ベクトル

Figure 0007280285000201

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

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

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

)は、任意の適切な形態で任意の適切なネットワークを介して送信され得る。例えば、これらのデータは、UDPまたはTCPパケットなどのデータパケットでインターネットなどのネットワークを介して送信され得る。 As in the first transmission stage 406, these data (i.e. the first permuted encrypted difference vector
Figure 0007280285000201

second permuted encrypted difference vector
Figure 0007280285000202

the third permuted encrypted difference vector
Figure 0007280285000203

and the fourth permuted encrypted difference vector
Figure 0007280285000204

) may be transmitted over any suitable network in any suitable form. For example, these data may be sent over a network such as the Internet in data packets such as UDP or TCP packets.

第二の伝送段階410の後、第一のコンピュータおよび第二のコンピュータは、スカラー積計算段階412に進み得、そこで第一のコンピュータおよび第二のコンピュータは、第一のベクトル

Figure 0007280285000205

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

のスカラー積を計算する。スカラー積計算段階412は、図7を参照するとより良く理解できる。 After the second transmission step 410, the first computer and the second computer may proceed to a scalar product calculation step 412, where the first computer and the second computer calculate the first vector
Figure 0007280285000205

and a second vector
Figure 0007280285000206

Computes the scalar product of . The scalar product computation stage 412 can be better understood with reference to FIG.

ステップ702Aで、第一のコンピュータは、第一の秘密鍵Prを使用して第三の置換された暗号化された差分ベクトル

Figure 0007280285000207

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

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

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

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

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

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

が人に対応する生体認証ベクトルである場合)。 At step 702A, the first computer uses the first private key Pr A to generate a third permuted encrypted difference vector
Figure 0007280285000207

by decoding the third permuted difference vector
Figure 0007280285000208

can generate The first computer computes the first masked vector
Figure 0007280285000209

, but the third permutation π B1 is unknown to the first computer, so the first computer can replace the second vector
Figure 0007280285000210

It is not possible to determine the values of the components of So the second vector
Figure 0007280285000211

is protected from the first computer. This is the second vector
Figure 0007280285000212

(e.g., the second vector
Figure 0007280285000213

is the biometric vector corresponding to a person).

ステップ702Bで、第二のコンピュータは、第三の秘密鍵Prを使用して第一の置換された暗号化された差分ベクトル

Figure 0007280285000214

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

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

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

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

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

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

が人に対応する生体認証ベクトルである場合)。 At step 702B, the second computer uses the third private key Pr B to generate the first permuted encrypted difference vector
Figure 0007280285000214

by decoding the first permuted difference vector
Figure 0007280285000215

can generate A second computer generates a second masked vector
Figure 0007280285000216

but the first permutation π A1 is not known to the second computer, so the second computer knows the values of the components of the first vector
Figure 0007280285000217

It is not possible to determine the values of the components of Therefore, the first vector
Figure 0007280285000218

is protected from a second computer. This is the first vector
Figure 0007280285000219

(e.g., the first vector
Figure 0007280285000220

is the biometric vector corresponding to a person).

ステップ704Aで、第一のコンピュータは、第二の秘密鍵Pr’を使用して第四の置換された暗号化された差分ベクトル

Figure 0007280285000221

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

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

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

の構成要素の値を知っているが、第一のコンピュータは第四の置換πB2を知らないためである。 At step 704A, the first computer uses the second private key Pr'A to create a fourth permuted encrypted difference vector
Figure 0007280285000221

by decoding the fourth permuted difference vector
Figure 0007280285000222

can generate again the second vector
Figure 0007280285000223

is protected from the first computer, but this is because the first computer receives the first random vector
Figure 0007280285000224

, but the first computer does not know the fourth permutation πB2 .

ステップ704Bで、第二のコンピュータは、第四の秘密鍵Pr’を使用して第二の置換された暗号化された差分ベクトル

Figure 0007280285000225

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

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

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

の構成要素の値を知っているが、第二のコンピュータは第二の置換πA2を知らないためである。 At step 704B, the second computer uses the fourth private key Pr'B to generate the second permuted encrypted difference vector
Figure 0007280285000225

by decoding the second permuted difference vector
Figure 0007280285000226

can generate again the first vector
Figure 0007280285000227

is protected from the second computer, but this is because the second computer receives a second random vector
Figure 0007280285000228

but the second computer does not know the second permutation πA2 .

ステップ706Aで、第一のコンピュータは、第一のマスクされたベクトルの二乗の大きさα’を計算することができる。第一のマスクされたベクトルの二乗の大きさα’の値は、それ自体を有する第一のマスクされたベクトル

Figure 0007280285000229

のスカラー積と等しく、すなわち、 At step 706A, the first computer may compute the squared magnitude α' of the first masked vector. The value of the squared magnitude α' of the first masked vector is the value of the first masked vector with itself
Figure 0007280285000229

is equal to the scalar product of, i.e.

Figure 0007280285000230
Figure 0007280285000230

第一のコンピュータは、第一のマスクされたベクトル

Figure 0007280285000231

の各構成要素の値を二乗して、次に、結果として得られる二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って、第一のマスクされたベクトルの二乗の大きさα’を計算してもよい。 The first computer computes the first masked vector
Figure 0007280285000231

and then sum the resulting squares, i.e., the first computer calculates the magnitude of the squares of the first masked vector according to the following formula: α' may be calculated.

Figure 0007280285000232
Figure 0007280285000232

同様に、ステップ706Bで、第二のコンピュータは、第二のマスクされたベクトルの二乗の大きさβ’を計算できる。第二のマスクされたベクトルの二乗の大きさβ’の値は、それ自体を有する第二のマスクされたベクトル

Figure 0007280285000233

のスカラー積と等しい、すなわち、 Similarly, at step 706B, the second computer can compute the squared magnitude β' of the second masked vector. The value of the squared magnitude β' of the second masked vector is the value of the second masked vector with itself
Figure 0007280285000233

is equal to the scalar product of

Figure 0007280285000234
Figure 0007280285000234

第二のコンピュータは、第二のマスクされたベクトル

Figure 0007280285000235

の各構成要素の値を二乗して、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って、第二のマスクされたベクトルの二乗の大きさβ’を計算してもよい。 A second computer generates a second masked vector
Figure 0007280285000235

and sum the resulting squares, i.e., the second computer computes the squared magnitude of the second masked vector, β ' can be calculated.

Figure 0007280285000236
Figure 0007280285000236

ステップ708Aで、第一のコンピュータは、第一のランダムなベクトルの二乗の大きさρを計算できる。第一のランダムなベクトルの二乗の大きさρの値は、それ自体を有する第一のランダムなベクトル

Figure 0007280285000237

のスカラー積と等しく、すなわち、 At step 708A, the first computer can compute the squared magnitude ρ A of the first random vector. The value of the squared magnitude ρ A of the first random vector is the first random vector with itself
Figure 0007280285000237

is equal to the scalar product of, i.e.

Figure 0007280285000238
Figure 0007280285000238

第一のコンピュータは、第一のランダムなベクトル

Figure 0007280285000239

の各構成要素の値を二乗して、次いで、結果として得られる二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って第一のランダムなベクトルの二乗の大きさρを計算してもよい。 The first computer generates a first random vector
Figure 0007280285000239

and then sum the resulting squares, i.e., the first computer calculates the squared magnitude of the first random vector ρ A according to the following formula: can be calculated.

Figure 0007280285000240
Figure 0007280285000240

同様に、ステップ708Bで、第二のコンピュータは、第二のランダムなベクトルの二乗の大きさρを計算できる。第二のランダムなベクトルの二乗の大きさρの値は、それ自体を有する第二のランダムなベクトル

Figure 0007280285000241

のスカラー積と等しく、すなわち、 Similarly, at step 708B, the second computer can compute the squared magnitude ρ B of the second random vector. The value of the squared magnitude ρ of the second random vector is the value of the second random vector with itself
Figure 0007280285000241

is equal to the scalar product of, i.e.

Figure 0007280285000242
Figure 0007280285000242

第二のコンピュータは、第二のランダムなベクトル

Figure 0007280285000243

の各構成要素の値を二乗して、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って第二のランダムなベクトルの二乗の大きさρを計算してもよい。 A second computer generates a second random vector
Figure 0007280285000243

may be squared and the resulting squares summed, i.e., the second computer computes the squared magnitude ρ B of the second random vector according to the following formula: can be calculated.

Figure 0007280285000244
Figure 0007280285000244

ステップ710Aで、第一のコンピュータは、第三の置換された差分ベクトルの二乗の大きさδを計算できる。第三の置換された差分ベクトルの二乗の大きさδの値は、それ自体を有する第三の置換された差分ベクトル

Figure 0007280285000245

のスカラー積と等しい、すなわち、 At step 710A, the first computer can compute the squared magnitude δA of the third permuted difference vector. The value of the squared magnitude δA of the third permuted difference vector is the third permuted difference vector with itself
Figure 0007280285000245

is equal to the scalar product of

Figure 0007280285000246
Figure 0007280285000246

第一のコンピュータは、第三の置換された差分ベクトル

Figure 0007280285000247

の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って、第三の置換された差分ベクトルの二乗の大きさδを計算してもよい。 The first computer computes the third permuted difference vector
Figure 0007280285000247

and then sum the resulting squares, i.e., the first computer calculates the magnitude of the square of the third permuted difference vector according to the following formula: δA may be calculated.

Figure 0007280285000248
Figure 0007280285000248

同様に、ステップ710Bで、第二のコンピュータは、第一の置換された差分ベクトルの二乗の大きさδを計算できる。第一の置換された差分ベクトルの二乗の大きさδの値は、それ自体を有する第一の置換された差分ベクトル

Figure 0007280285000249

のスカラー積と等しい、すなわち、 Similarly, at step 710B, the second computer can compute the squared magnitude δ B of the first permuted difference vector. The value of the squared magnitude δ B of the first permuted difference vector is the first permuted difference vector with itself
Figure 0007280285000249

is equal to the scalar product of

Figure 0007280285000250
Figure 0007280285000250

第二のコンピュータは、第一の置換された差分ベクトル

Figure 0007280285000251

の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って、第一の置換された差分ベクトルの二乗の大きさδを計算してもよい。 A second computer stores the first permuted difference vector
Figure 0007280285000251

and then sum the resulting squares, i.e., the second computer calculates the magnitude of the square of the first permuted difference vector according to the following formula: δB may be calculated.

Figure 0007280285000252
Figure 0007280285000252

ステップ712Aで、第一のコンピュータは、第四の置換された差分ベクトルの二乗の大きさσを計算できる。第四の置換された差分ベクトルの二乗大きさσの値は、それ自体を有する第四の置換された差分ベクトル

Figure 0007280285000253

のスカラー積と等しく、すなわち、 At step 712A, the first computer can compute the squared magnitude σ A of the fourth permuted difference vector. The value of the squared magnitude σ A of the fourth permuted difference vector is the fourth permuted difference vector with itself
Figure 0007280285000253

is equal to the scalar product of, i.e.

Figure 0007280285000254
Figure 0007280285000254

第一のコンピュータは、第四の置換された差分ベクトル

Figure 0007280285000255

の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って、第四の置換された差分ベクトルの二乗の大きさσを計算してもよい。 The first computer computes the fourth permuted difference vector
Figure 0007280285000255

and then sum the resulting squares, i.e., the first computer calculates the magnitude of the square of the fourth permuted difference vector according to the following formula: σ A may be calculated.

Figure 0007280285000256
Figure 0007280285000256

同様に、ステップ712Bで、第二のコンピュータは、第二の置換された差分ベクトルの二乗の大きさσを計算できる。第二の置換された差分ベクトルの二乗大きさσの値は、それ自体を有する第二の置換された差分ベクトル

Figure 0007280285000257

のスカラー積と等しい、すなわち、 Similarly, at step 712B, the second computer can compute the squared magnitude σ B of the second permuted difference vector. The value of the squared magnitude σ B of the second permuted difference vector is the second permuted difference vector with itself
Figure 0007280285000257

is equal to the scalar product of

Figure 0007280285000258
Figure 0007280285000258

第二のコンピュータは、第二の置換された差分ベクトル

Figure 0007280285000259

の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って、第四の置換された差分ベクトルの二乗の大きさσを計算してもよい。 A second computer generates a second permuted difference vector
Figure 0007280285000259

and then sum the resulting squares, i.e., the second computer computes the magnitude of the square of the fourth permuted difference vector according to the following formula: σ B may be calculated.

Figure 0007280285000260
Figure 0007280285000260

ステップ714Aで、第一のコンピュータは、第一のマスクされたベクトルの二乗の大きさα’、第一のランダムなベクトルの二乗の大きさρ、第三の置換された差分ベクトルの二乗の大きさδ、および第四の置換された差分ベクトルの二乗の大きさσに基づいて、第一のベクトル

Figure 0007280285000261

と第二のベクトル
Figure 0007280285000262

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

と第二のベクトル
Figure 0007280285000264

のスカラー積を計算してもよい。 At step 714A, the first computer calculates the squared magnitude of the first masked vector α′, the squared magnitude of the first random vector ρ A , the squared magnitude of the third permuted difference vector Based on the magnitude δ A and the magnitude σ A of the square of the fourth permuted difference vector, the first vector
Figure 0007280285000261

and a second vector
Figure 0007280285000262

You may compute the scalar product of In some embodiments, the first computer computes the first vector
Figure 0007280285000263

and a second vector
Figure 0007280285000264

You may compute the scalar product of

Figure 0007280285000265
Figure 0007280285000265

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

Figure 0007280285000266

と第二のベクトル
Figure 0007280285000267

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

と第二のベクトル
Figure 0007280285000269

のスカラー積を計算してもよい。 Similarly, at step 714B, the second computer calculates the squared magnitude β' of the second masked vector, the squared magnitude ρB of the second random vector, the squared magnitude ρB of the first permuted vector Based on the squared magnitude δ B and the squared magnitude σ B of the second permuted vector, the first vector
Figure 0007280285000266

and a second vector
Figure 0007280285000267

You may compute the scalar product of In some embodiments, the second computer computes the first vector
Figure 0007280285000268

and a second vector
Figure 0007280285000269

You may compute the scalar product of

Figure 0007280285000270
Figure 0007280285000270

要約として、第一のベクトル

Figure 0007280285000271

と第二のベクトル
Figure 0007280285000272

のスカラー積を計算して、上述のようにスカラー積を正確に計算するため、第一のコンピュータおよび第二のコンピュータによって使用される方法を示すのが有用であり得る。 As a summary, the first vector
Figure 0007280285000271

and a second vector
Figure 0007280285000272

It may be useful to show the method used by the first computer and the second computer to compute the scalar product of and to compute the scalar product exactly as described above.

定義上、二つのベクトルのスカラー積は、各ベクトルの構成要素の積の合計に等しいことを思い出されたい。 Recall that by definition the scalar product of two vectors is equal to the sum of the products of the components of each vector.

Figure 0007280285000273
Figure 0007280285000273

上述のように、以下の式に従って、第一のコンピュータは、第一のマスクされたベクトルの二乗の大きさα’、第一のランダムなベクトルの二乗の大きさρ、第三の置換されたベクトルの二乗の大きさδ、および第四の置換されたベクトルの二乗の大きさσを使用して、第一のベクトル

Figure 0007280285000274

と第二のベクトル
Figure 0007280285000275

のスカラー積を計算する。 As described above, the first computer computes a first masked vector squared magnitude α′, a first random vector squared magnitude ρ A , a third permuted Using the squared magnitude of the vector δ A and the squared magnitude σ A of the fourth permuted vector, the first vector
Figure 0007280285000274

and a second vector
Figure 0007280285000275

Computes the scalar product of .

Figure 0007280285000276
Figure 0007280285000276

繰り返すが、所与のベクトル

Figure 0007280285000277

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

の二乗の構成要素の合計として定義される。 Again, given vector
Figure 0007280285000277

The magnitude of the square of the vector
Figure 0007280285000278

is defined as the sum of the squared components of

Figure 0007280285000279
Figure 0007280285000279

上記で定義されるように、第三の置換された差分ベクトル

Figure 0007280285000280

。第三の置換された差分ベクトルの二乗の大きさδは、以下のように表され得る。 the third permuted difference vector, as defined above
Figure 0007280285000280

. The squared magnitude δ A of the third permuted difference vector can be expressed as:

Figure 0007280285000281
Figure 0007280285000281

加算の可換特性のため、合計は置換から独立しており、したがって、 Because of the commutative property of addition, summation is independent of permutation, so

Figure 0007280285000282
Figure 0007280285000282

Figure 0007280285000283
Figure 0007280285000283

Figure 0007280285000284
Figure 0007280285000284

スカラー積および第一のマスクされたベクトルの二乗の大きさα’の定義により、第三の置換された差分ベクトルの二乗の大きさδは、さらに以下に表すことができる。 By definition of the scalar product and the squared magnitude α' of the first masked vector, the squared magnitude δA of the third permuted difference vector can be further expressed as:

Figure 0007280285000285
Figure 0007280285000285

同様の論法を使用して、第四の置換された差分ベクトルσを次のように表現できる。 Using similar reasoning, we can express the fourth permuted difference vector σ A as follows.

Figure 0007280285000286
Figure 0007280285000286

Figure 0007280285000287
Figure 0007280285000287

Figure 0007280285000288
Figure 0007280285000288

Figure 0007280285000289
Figure 0007280285000289

Figure 0007280285000290
Figure 0007280285000290

Figure 0007280285000291
Figure 0007280285000291

Figure 0007280285000292
Figure 0007280285000292

スカラー積の式に戻り、第三の置換された差分ベクトルの二乗の大きさδと第四の置換された差分ベクトルの二乗の大きさσの式を置換する。 Returning to the scalar product formula, replace the formulas for the squared magnitude of the third permuted difference vector δ A and the fourth permuted difference vector squared magnitude σ A .

Figure 0007280285000293
Figure 0007280285000293

Figure 0007280285000294
Figure 0007280285000294

類似の条件でグループ化する Group by similar criteria

Figure 0007280285000295
Figure 0007280285000295

Figure 0007280285000296
Figure 0007280285000296

第一のマスクされたベクトル

Figure 0007280285000297

は、第一のベクトル
Figure 0007280285000298

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

の合計と等しいことを思い出されたい。 the first masked vector
Figure 0007280285000297

is the first vector
Figure 0007280285000298

and the first random vector
Figure 0007280285000299

Recall that it is equal to the sum of

Figure 0007280285000300
Figure 0007280285000300

スカラー積の式は、以下のように簡略化できる。 The scalar product formula can be simplified as follows.

Figure 0007280285000301
Figure 0007280285000301

Figure 0007280285000302
Figure 0007280285000302

Figure 0007280285000303
Figure 0007280285000303

これは、第一のコンピュータが、第一のベクトル

Figure 0007280285000304

と第二のベクトル
Figure 0007280285000305

のスカラー積を計算するのに使用する式の精度を示す。 This means that the first computer, the first vector
Figure 0007280285000304

and a second vector
Figure 0007280285000305

Indicates the precision of the expression used to compute the scalar product of .

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

Figure 0007280285000306

と第二のベクトル
Figure 0007280285000307

のスカラー積を計算する。 Similarly, the second computer stores a second masked vector square magnitude β′, a second random vector square magnitude ρ B , a first permuted difference vector square magnitude The first vector
Figure 0007280285000306

and a second vector
Figure 0007280285000307

Computes the scalar product of .

Figure 0007280285000308
Figure 0007280285000308

同様の論法を使用して、第一の置換された差分ベクトルの二乗の大きさδの式を決定することができる。 Similar reasoning can be used to determine the formula for the squared magnitude δ B of the first permuted difference vector.

Figure 0007280285000309
Figure 0007280285000309

Figure 0007280285000310
Figure 0007280285000310

Figure 0007280285000311
Figure 0007280285000311

Figure 0007280285000312
Figure 0007280285000312

Figure 0007280285000313
Figure 0007280285000313

Figure 0007280285000314
Figure 0007280285000314

Figure 0007280285000315
Figure 0007280285000315

同様に、第二の置換された差分ベクトルの二乗の大きさσに対する式を決定することができる。 Similarly, the expression for the squared magnitude σ B of the second permuted difference vector can be determined.

Figure 0007280285000316
Figure 0007280285000316

Figure 0007280285000317
Figure 0007280285000317

Figure 0007280285000318
Figure 0007280285000318

Figure 0007280285000319
Figure 0007280285000319

Figure 0007280285000320
Figure 0007280285000320

Figure 0007280285000321
Figure 0007280285000321

Figure 0007280285000322
Figure 0007280285000322

スカラー積の式に戻り、第一の置換された差分ベクトルの二乗の大きさδと第二の置換された差分ベクトルの二乗の大きさσの式を置換する。 Returning to the scalar product formula, replace the formulas for the squared magnitude δ B of the first permuted difference vector and the squared magnitude σ B of the second permuted difference vector.

Figure 0007280285000323
Figure 0007280285000323

Figure 0007280285000324
Figure 0007280285000324

類似の条件でグループ化する Group by similar criteria

Figure 0007280285000325
Figure 0007280285000325

Figure 0007280285000326
Figure 0007280285000326

第二のマスクされたベクトル

Figure 0007280285000327

は、第二のベクトル
Figure 0007280285000328

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

の合計と等しい。 the second masked vector
Figure 0007280285000327

is the second vector
Figure 0007280285000328

and a second random vector
Figure 0007280285000329

equal to the sum of

Figure 0007280285000330
Figure 0007280285000330

スカラー積の式は、以下のように簡略化できる。 The scalar product formula can be simplified as follows.

Figure 0007280285000331
Figure 0007280285000331

Figure 0007280285000332
Figure 0007280285000332

Figure 0007280285000333
Figure 0007280285000333

これは、第二のコンピュータによって使用される方程式が、第一のベクトル

Figure 0007280285000334

と第二のベクトル
Figure 0007280285000335

のスカラー積を計算するのに正確であることを示す。 This is because the equation used by the second computer is the first vector
Figure 0007280285000334

and a second vector
Figure 0007280285000335

shows that it is accurate to compute the scalar product of .

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

Figure 0007280285000336

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

と第二のベクトル
Figure 0007280285000338

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

と第二のベクトル
Figure 0007280285000340

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

と第二のベクトル
Figure 0007280285000342

との間の角度の別の三角関数、またはマッチスコア、距離メトリックなどのいくつかの他の値が挙げられる。 Returning to FIG. 7, at step 716A, the first computer may compare the scalar product or a value derived from the scalar product to a first predetermined threshold Τ A , the scalar product or a value derived from the scalar product. If the value obtained exceeds a first predetermined threshold (i.e.
Figure 0007280285000336

), the first computer may conduct interactions with the second computer, such as payment transactions or entering a secure building for the user or owner of the first computer (i.e., FIG. 4 interaction phase 414). As an example of values that can be derived from the scalar product, the first vector
Figure 0007280285000337

and a second vector
Figure 0007280285000338

the angle between or the first vector
Figure 0007280285000339

and a second vector
Figure 0007280285000340

the cosine of the angle between and the first vector
Figure 0007280285000341

and a second vector
Figure 0007280285000342

or some other value such as a match score, a distance metric, etc.

例として、一致基準が、第一のベクトル

Figure 0007280285000343

と第二のベクトル
Figure 0007280285000344

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

と第二のベクトル
Figure 0007280285000346

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

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

と第二のベクトル
Figure 0007280285000349

との間の角度差が5度以下であり、潜在的に一致を示すことを示す。 As an example, if the match criterion is the first vector
Figure 0007280285000343

and a second vector
Figure 0007280285000344

is less than or equal to 5 degrees, and the value derived from the scalar product is the first vector
Figure 0007280285000345

and a second vector
Figure 0007280285000346

A first predetermined threshold Τ A , if the cosine of the angle between
Figure 0007280285000347

can be equal to If the value derived from the scalar product is greater than a first predetermined threshold ΤA , the first vector
Figure 0007280285000348

and a second vector
Figure 0007280285000349

is less than or equal to 5 degrees, potentially indicating a match.

いくつかの実施形態では、第一のベクトル

Figure 0007280285000350

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

は、第一の生体認証テンプレートおよび第二の生体認証テンプレートにそれぞれ対応することができ、第一の所定の閾値Τは、生体認証一致閾値であってもよい。 In some embodiments, the first vector
Figure 0007280285000350

and a second vector
Figure 0007280285000351

may correspond to the first biometric template and the second biometric template, respectively, and the first predetermined threshold Τ A may be a biometric match threshold.

ステップ716Bで、第二のコンピュータは、スカラー積またはスカラー積から導出された値(例えば、第一のベクトル

Figure 0007280285000352

と第二のベクトル
Figure 0007280285000353

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

と第二のベクトル
Figure 0007280285000355

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

)第二のコンピュータは、支払い取引の実行、または安全な建物への第一のコンピュータのユーザのアクセスの許可など、第一のコンピュータと相互作用を実施してもよい(すなわち、図4の相互作用段階414の間)。 At step 716B, the second computer generates the scalar product or a value derived from the scalar product (eg, the first vector
Figure 0007280285000352

and a second vector
Figure 0007280285000353

the angle between or the first vector
Figure 0007280285000354

and a second vector
Figure 0007280285000355

( trigonometric function of the angle between
Figure 0007280285000356

4.) The second computer may perform interactions with the first computer, such as executing payment transactions or granting access to the user of the first computer to a secure building (i.e., the interaction of FIG. 4). during the working phase 414).

いくつかの実施形態では、第一の所定の閾値Τおよび第二の所定の閾値Τは、等しくなくてもよく、第一のコンピュータまたは第二のコンピュータのいずれかが、相互作用を実行するためより高い閾値を有し得ることを示す。しかしながら、他の実施形態では、第一の所定の閾値Τおよび第二の所定の閾値Τが等しいことは有利であり得る。 In some embodiments, the first predetermined threshold ΤA and the second predetermined threshold ΤB may not be equal, and either the first computer or the second computer performs the interaction. We show that we can have a higher threshold for However, in other embodiments it may be advantageous that the first predetermined threshold ΤA and the second predetermined threshold ΤB are equal.

いくつかの実施形態では、スカラー積またはスカラー積から導出された値を第一の所定の閾値Τと比較した後、第一のコンピュータは、第一のコンピュータが比較に満足し、相互作用を進めることを示す表示メッセージを第二のコンピュータに送信してもよい。同様に、スカラー積またはスカラー積から導出された値を第二の所定の閾値Τと比較した後、第二のコンピュータは、第二のコンピュータが比較に満足し、相互作用に進むことを示す表示メッセージを第一のコンピュータに送信してもよい。代替でまたは追加で、第一のコンピュータおよび/または第二のコンピュータの各々は、適切な一致が判定される(例えば、緑色の光)、または判定されない(例えば、赤色の光)ときに、インジケータ(例えば、ディスプレイ上に)を含み得る。 In some embodiments, after comparing the scalar product or a value derived from the scalar product to a first predetermined threshold T A , the first computer determines that the first computer is satisfied with the comparison and that the interaction A display message may be sent to the second computer indicating to proceed. Similarly, after comparing the scalar product or a value derived from the scalar product with a second predetermined threshold T B , the second computer indicates that the second computer is satisfied with the comparison and proceeds to interact. A display message may be sent to the first computer. Alternatively or additionally, each of the first computer and/or the second computer displays an indicator when a suitable match is determined (e.g., green light) or not (e.g., red light). (eg, on a display).

スカラー積をそれぞれの閾値と比較する両方のコンピュータの利点は、両方のコンピュータが、スカラーがそれぞれの閾値を超えることを確認できることである。例えば、第一のコンピュータのみがスカラー積をそのそれぞれの閾値と比較した場合、第二のコンピュータは、第一のコンピュータがスカラー積を正しく計算したこと、および第一のコンピュータがスカラー積が第一の所定の閾値を超えることを正直に示したことを信頼しなければならない。しかし、両方のコンピュータがスカラー積を計算し、スカラー積またはスカラー積から導出された値をそれぞれの閾値と比較するため、各コンピュータは計算を確認でき、どちらのコンピュータも他方のコンピュータをだませない。 The advantage of both computers comparing the scalar product to their respective thresholds is that both computers can confirm that the scalar exceeds their respective thresholds. For example, if only the first computer compares the scalar product to its respective threshold, the second computer determines that the first computer computed the scalar product correctly, and that the first computer determines that the scalar product is the first It must be relied upon to honestly demonstrate that it exceeds a predetermined threshold of . However, because both computers compute the scalar product and compare the scalar product or the value derived from the scalar product to their respective thresholds, each computer can confirm the computation and neither computer can fool the other. .

図4に戻ると、スカラー積計算段階412の後、第一のコンピュータおよび第二のコンピュータは、相互作用段階414で相互作用を実行し得る。相互作用は、スカラー積、またはスカラー積から導出された値(例えば、角度、角度の発見的評価、角度のコサイン、角度のコサインの発見的評価、別の距離メトリックなど)が、図7を参照して説明されるように、所定の閾値を超える。 Returning to FIG. 4, after the scalar product calculation stage 412, the first computer and the second computer may perform an interaction at an interaction stage 414. FIG. An interaction is a scalar product, or a value derived from a scalar product (e.g., an angle, a heuristic evaluation of an angle, a cosine of an angle, a heuristic evaluation of a cosine of an angle, another distance metric, etc.), see FIG. exceed a predetermined threshold, as described in

相互作用段階414の相互作用は、多くの形態を取り得る。図8は、第一の例示的な相互作用、支払取引のブロック図を示す。図9は、第二の例示的な相互作用、建物アクセス順序のブロック図を示す。 The interaction of interaction stage 414 can take many forms. FIG. 8 shows a block diagram of a first exemplary interaction, payment transaction. FIG. 9 shows a block diagram of a second exemplary interaction, building access order.

図8は、例示的な取引処理システムを示す。この取引処理システムは、第一のコンピュータ804と第二のコンピュータ806との間の第一の例示的な相互作用の一部として使用され得る。 FIG. 8 shows an exemplary transaction processing system. This transaction processing system may be used as part of a first exemplary interaction between first computer 804 and second computer 806 .

ユーザ802は、第一のコンピュータ804(例えば、スマートフォン)を操作する顧客であってもよい。ユーザ802は、リソースプロバイダ(例えば、リソースプロバイダのコンピュータ810を操作する小売業者)から商品またはサービスを購入することを望む場合がある。リソースプロバイダは、アクセス端末808(例えば、POS端末)を追加的に操作し得る。リソースプロバイダ810は、アクワイアラコンピュータ812および支払処理ネットワーク814を介して発行人のコンピュータ816と通信することができる。 User 802 may be a customer operating a first computer 804 (eg, smart phone). A user 802 may wish to purchase goods or services from a resource provider (eg, a retailer operating the resource provider's computer 810). A resource provider may additionally operate an access terminal 808 (eg, a POS terminal). Resource provider 810 can communicate with issuer computer 816 via acquirer computer 812 and payment processing network 814 .

支払処理ネットワーク814は、承認サービス、例外ファイルサービス、ならびに清算および決済サービスをサポートし配信するのに使用される、データ処理サブシステム、ネットワーク、および演算を含んでいてもよい。例示的な支払処理ネットワーク814は、VisaNet(商標)を含んでいてもよい。VisaNet(商標)などの決済処理ネットワークは、クレジットカード取引、デビットカード取引、および他の種類の商取引を処理することができる。特にVisaNet(商標)には、承認要求を処理するVIPシステム(Visa統合支払システム)ならびに清算および決済サービスを実施するBase IIシステムが含まれる。支払処理ネットワークは、インターネットを含む、任意の好適な有線または無線ネットワークを使用することができる。 Payment processing network 814 may include data processing subsystems, networks, and operations used to support and deliver authorization services, exception file services, and clearing and settlement services. An exemplary payment processing network 814 may include VisaNet™. Payment processing networks such as VisaNet™ are capable of processing credit card transactions, debit card transactions, and other types of commercial transactions. Specifically, VisaNet™ includes the VIP system (Visa Integrated Payment System), which processes authorization requests, and the Base II system, which performs clearing and settlement services. The payment processing network can use any suitable wired or wireless network, including the Internet.

生体認証ベクトルに基づくプライバシー保護スカラー積計算を使用した例示的な支払取引は、以下に説明され得る。ユーザ802は、第一のコンピュータ804およびアクセス端末808が例えば、近距離無線通信を介して通信できるように、第一のコンピュータ804をアクセス端末808と接触させてもよい。第一のコンピュータ804は、ユーザ802が物品またはサービスに対して支払いを行うことを望む端末808にアクセスするように通信することができる。アクセス端末808は、発行人によって管理されるユーザ802に関連付けられた支払口座と、アクワイアラによって管理されるリソースプロバイダに関連付けられた支払アカウントとの間の支払を成立させるために使用できるアクセストークンなどの証明書を要求してもよい。 An exemplary payment transaction using privacy-preserving scalar product calculations based on biometric vectors can be described below. User 802 may bring first computer 804 into contact with access terminal 808 such that first computer 804 and access terminal 808 may communicate via, for example, near field communication. A first computer 804 can communicate to access a terminal 808 at which a user 802 wishes to pay for goods or services. The access terminal 808 is an access token or the like that can be used to establish a payment between a payment account associated with the user 802 managed by the issuer and a payment account associated with the resource provider managed by the acquirer. may request a certificate of

アクセストークンを取得するために、第一のコンピュータ804および第二のコンピュータ806は、第一のコンピュータ804に格納された第一の生体認証ベクトルおよび第二のコンピュータ806上の生体認証ベクトルデータベースに格納された第二の生体認証ベクトルのスカラー積を計算するために、プライバシー保護スカラー積計算を実行し得る。第一のコンピュータ804および第二のコンピュータ806は、図4~7を参照して上述したスカラー積計算を実行してもよい。スカラー積を計算する際、第二のコンピュータ806は、スカラー積またはスカラー積から導出された値を所定の閾値と比較し得る。スカラー積またはスカラー積から導出された値が所定の閾値を超える場合、第二のコンピュータ806は、アクセストークンを第一のコンピュータ804に送信し得る(この送信は、第一のコンピュータ804と第二のコンピュータ806との間の相互作用を含み得る)。 To obtain an access token, the first computer 804 and the second computer 806 store the first biometric vector stored on the first computer 804 and the biometric vector database on the second computer 806. A privacy preserving scalar product calculation may be performed to calculate a scalar product of the second biometric vectors obtained. First computer 804 and second computer 806 may perform the scalar product calculations described above with reference to FIGS. In calculating the scalar product, second computer 806 may compare the scalar product or a value derived from the scalar product to a predetermined threshold. If the scalar product or a value derived from the scalar product exceeds a predetermined threshold, the second computer 806 may transmit an access token to the first computer 804 (this transmission is between the first computer 804 and the second computer 804). computer 806).

第二のコンピュータ806からアクセストークンを受信した後、第一のコンピュータ804は、アクセストークンおよび任意の追加のアクセス証明書をアクセス端末808に送信してもよい。次に、アクセス端末808と通信して動作するリソースプロバイダコンピュータ810は、任意の追加の取引情報(例えば、取引金額、小売業者固有の情報など)と共にアクセス端末808によって受信された情報を含む承認要求メッセージを生成し、この情報をアクワイアラコンピュータ812に電子的に送信し得る。その後、アクワイアラコンピュータ812は、承認要求メッセージを受信し、処理し、承認のために支払処理ネットワーク814を介して発行人コンピュータ816に転送することができる。発行人コンピュータ816は、承認応答メッセージで応答してもよい。承認応答メッセージは、リソースプロバイダコンピュータ810、アクワイアラコンピュータ812、および支払処理ネットワーク814を介して、発行人コンピュータ816からアクセス端末808に送信されてもよい。 After receiving the access token from second computer 806 , first computer 804 may send the access token and any additional access credentials to access terminal 808 . Resource provider computer 810, operating in communication with access terminal 808, then sends an authorization request containing the information received by access terminal 808 along with any additional transaction information (eg, transaction amount, retailer-specific information, etc.). A message may be generated and this information electronically transmitted to the acquirer computer 812 . Acquirer computer 812 may then receive, process, and forward the authorization request message to issuer computer 816 via payment processing network 814 for authorization. Publisher computer 816 may respond with an authorization response message. The authorization response message may be sent from issuer computer 816 to access terminal 808 via resource provider computer 810 , acquirer computer 812 and payment processing network 814 .

一日の終わりに、または他の好適な時間間隔で、アクワイアラコンピュータ812と、支払処理ネットワーク814と、発行人コンピュータ816との間の清算および決済処理が、取引に対して行われ得る。 At the end of the day, or at other suitable time intervals, clearing and settlement processing between acquirer computer 812, payment processing network 814, and issuer computer 816 may occur for transactions.

図9は、いくつかの実施形態による第二の例示的な相互作用を示す。ユーザ902は、安全な施設である建物910(すなわち、安全なアパート複合施設または政府管理ビル)へアクセスしたいと考えている。建物910へのドアは、リソースプロバイダコンピュータ908によってロックされ、制御される。建物910にアクセスするために、ユーザ902は、アクセストークンまたは別の証明書を、第一のコンピュータ904(例えば、ユーザ902のスマートフォン)を介してリソースプロバイダのコンピュータ908に提供する必要がある。 FIG. 9 shows a second exemplary interaction according to some embodiments. User 902 wishes to access a secure facility, building 910 (ie, a secure apartment complex or government building). The door to building 910 is locked and controlled by resource provider computer 908 . To access building 910, user 902 must provide an access token or another credential to resource provider computer 908 via first computer 904 (eg, user 902's smart phone).

ユーザ902は、第二のコンピュータ906が関与する生体認証システムに以前に登録していてもよい。第二のコンピュータ906は、ユーザ902に対応する生体認証ベクトル(第二のベクトル)を生体認証データベースに格納してもよい。同様に、第一のコンピュータ904は、ユーザ902に対応する保存された生体認証ベクトル(第一のベクトル)をセキュア要素上に格納してもよい。あるいは、ユーザ902は、第一のコンピュータ904を使用して、例えば、スマートフォンカメラを自分の目に向け、写真を撮ることによって、生体認証インスタンスをキャプチャし、キャプチャされた生体認証インスタンスをベクトル化してもよい。 User 902 may have previously enrolled in a biometric system involving second computer 906 . A second computer 906 may store the biometric vector (second vector) corresponding to the user 902 in a biometric database. Similarly, first computer 904 may store a saved biometric vector (first vector) corresponding to user 902 on the secure element. Alternatively, the user 902 can use the first computer 904 to capture biometric instances, for example by pointing a smartphone camera at their eyes and taking a picture, and vectorizing the captured biometric instances. good too.

生体認証システムの一部として、第一のコンピュータ904および第二のコンピュータ906は、ユーザ902を認証するために、第一のベクトルと第二のベクトルのスカラー積を計算できる。スカラー積を計算した後(図4~7を参照して上述した通り)、第二のコンピュータ906は、スカラー積またはスカラー積から導出された値(例えば、第一のベクトルと第二のベクトルとの間の角度)を所定の閾値と比較することができる。スカラー積またはスカラー積から導出された値が所定の閾値を超える場合、ユーザ902は認証され得る。続いて、第二のコンピュータ906は、リソースプロバイダコンピュータ908に命令を送信して、リソースプロバイダコンピュータ908に、ドアを開けて、ユーザ902が建物910へアクセスするのを許可するように命令することができる。あるいは、第二のコンピュータ906は、アクセストークンを第一のコンピュータ904に発行することができる。第一のコンピュータ904は、その後、このアクセストークンをリソースプロバイダ908に(例えば、近距離無線通信を介して、またはインターネットもしくはLANなどのネットワークを介して)提供することができる。リソースプロバイダコンピュータ908は、アクセストークンを検証し、ユーザ902に建物910へのアクセスを認めることができる。 As part of a biometric authentication system, first computer 904 and second computer 906 can compute a scalar product of a first vector and a second vector to authenticate user 902 . After calculating the scalar product (as described above with reference to FIGS. 4-7), the second computer 906 processes the scalar product or values derived from the scalar product (eg, the first vector and the second vector and ) can be compared to a predetermined threshold. If the scalar product or a value derived from the scalar product exceeds a predetermined threshold, user 902 may be authenticated. Second computer 906 can then send an instruction to resource provider computer 908 instructing resource provider computer 908 to open the door and allow user 902 access to building 910 . can. Alternatively, second computer 906 can issue an access token to first computer 904 . First computer 904 can then provide this access token to resource provider 908 (eg, via short-range wireless communication or via a network such as the Internet or a LAN). Resource provider computer 908 can validate the access token and grant user 902 access to building 910 .

本明細書に記述したいずれのコンピュータシステムも、任意の適切な数のサブシステムを利用することができる。いくつかの実施形態では、コンピュータシステムは、単一のコンピュータ装置を含み、サブシステムはコンピュータ装置の構成要素であり得る。他の実施形態では、コンピュータシステムは、それぞれが内部構成要素を有するサブシステムである、複数のコンピュータ装置を含み得る。 Any computer system described herein may utilize any suitable number of subsystems. In some embodiments, a computer system may include a single computer device and a subsystem may be a component of the computer device. In other embodiments, the computer system may include multiple computer devices, each subsystem having internal components.

コンピュータシステムは、例えば、外部インタフェースによって、または内部インタフェースによって共に接続される、複数の同じ構成要素またはサブシステムを含み得る。一部の実施形態では、コンピュータシステム、サブシステムまたは装置は、ネットワーク上で通信し得る。そのような例では、一つのコンピュータをクライアント、別のコンピュータをサーバとみなすことができ、各々が、同一のコンピュータシステムの一部であり得る。クライアントおよびサーバは各々、複数のシステム、サブシステムまたは構成要素を含み得る。 A computer system, for example, may include multiple identical components or subsystems connected together by external interfaces or by internal interfaces. In some embodiments, computer systems, subsystems or devices may communicate over a network. In such instances, one computer can be considered a client and another computer a server, and each can be part of the same computer system. Clients and servers may each include multiple systems, subsystems, or components.

本発明の実施形態のいずれも、ハードウェア(例えば、特定用途向け集積回路またはフィールドプログラマブルゲートアレイ)を使用する、および/またはモジュール式のもしくは統合された方式で、一般的なプログラム可能プロセッサを有するコンピュータソフトウェアを使用する、制御ロジックの形態で実装され得ることは理解されるべきである。本明細書で使用される通り、プロセッサは、シングルコアプロセッサ、同じ集積チップ上のマルチコアプロセッサ、または単一回路基板上もしくはネットワーク上の複数の処理装置を含む。本明細書に提供する開示および教示に基づき、当業者は、ハードウェア、およびハードウェアとソフトウェアとの組み合わせを使用して、本発明の実施形態を実装する他のやり方および/または方法を知り、理解するであろう。 Any of the embodiments of the present invention use hardware (e.g., application specific integrated circuits or field programmable gate arrays) and/or have a generic programmable processor in a modular or integrated fashion. It should be understood that it can be implemented in the form of control logic using computer software. As used herein, a processor includes a single-core processor, a multi-core processor on the same integrated chip, or multiple processing units on a single circuit board or on a network. Based on the disclosure and teachings provided herein, a person of ordinary skill in the art will know other ways and/or methods of implementing embodiments of the present invention using hardware and combinations of hardware and software; will understand.

本出願に記載のソフトウェア構成要素または機能のいずれも、例えば、従来の技術またはオブジェクト指向の技術を使用する、例えば、Java、C、C++、C#、Objective-C、Swift、またはPerlもしくはPythonのようなスクリプト言語など、いずれの好適なコンピュータ言語を使用するプロセッサによって実行される、ソフトウェアコードとして実装されてもよい。ソフトウェアコードは、記憶および/もしくは送信用のコンピュータ可読媒体上に、一連の命令またはコマンドとして記憶されてもよく、好適な媒体には、ランダムアクセスメモリ(RAM)、読み出し専用メモリ(ROM)、ハードドライブもしくはフロッピーディスクなどの磁気媒体、またはコンパクトディスク(CD)もしくはDVD(デジタル多目的ディスク)などの光媒体、フラッシュメモリ、および同類のものを含む。コンピュータ可読媒体は、そのような記憶または送信デバイスのいかなる組み合わせであってもよい。 Any of the software components or functions described in this application may be written in, for example, Java, C, C++, C#, Objective-C, Swift, or Perl or Python using conventional or object-oriented techniques. It may be implemented as software code executed by a processor using any suitable computer language, such as a scripting language. The software code may be stored as a series of instructions or commands on a computer-readable medium for storage and/or transmission, suitable mediums including random access memory (RAM), read only memory (ROM), hard Including magnetic media such as drives or floppy disks, or optical media such as compact discs (CDs) or DVDs (digital versatile discs), flash memory, and the like. A computer readable medium may be any combination of such storage or transmission devices.

また、そのようなプログラムはコード化され、送信用に適応したキャリア信号を使用して、インターネットを含む、様々なプロトコルに適合する有線ネットワーク、光ネットワークおよび/または無線ネットワークによって送信されてもよい。このように、本発明の実施形態によるコンピュータ可読媒体は、そのようなプログラムでコード化されたデータ信号を使用して作成されてもよい。プログラムコードでコード化されたコンピュータ可読媒体は、互換デバイスでパッケージ化されてもよく、または他のデバイスから(例えば、インターネットのダウンロードによって)別個に提供されてもよい。いかなるそのようなコンピュータ可読媒体も、単一のコンピュータ製品(例えば、ハードドライブ、CDまたはコンピュータシステム全体)上またはその内部にあってもよく、システムもしくはネットワーク内の異なるコンピュータ製品上またはその内部に存在してもよい。コンピュータシステムは、本明細書で言及する結果のいずれをユーザに提供する、モニタ、プリンタまたは他の好適なディスプレイを含んでもよい。 Such programs may also be coded and transmitted over wired, optical and/or wireless networks conforming to various protocols, including the Internet, using carrier signals adapted for transmission. Thus, computer readable media according to embodiments of the present invention may be produced using data signals encoded with such programs. A computer-readable medium encoded with the program code may be packaged with a compatible device or provided separately from another device (eg, via Internet download). Any such computer-readable medium may be on or within a single computer product (e.g., a hard drive, CD, or an entire computer system) and may reside on or within different computer products within a system or network. You may A computer system may include a monitor, printer or other suitable display for providing any of the results referred to herein to a user.

本明細書に記載の方法のいずれかは、ステップを実行するように構成され得る、一つ以上のプロセッサを含むコンピュータシステムで、全部または部分的に実施され得る。したがって、実施形態は、潜在的にそれぞれのステップまたはそれぞれのステップ群を実施する異なる構成要素を用いて、本明細書に記載の方法のいずれかのステップを実施するように構成されるコンピュータシステムを含み得る。番号付けされたステップとして提示されるが、本明細書の方法のステップは、同時に、または異なる順序で実施され得る。さらに、これらのステップの一部は、他の方法からの他のステップの一部と共に使用されてもよい。また、ステップのすべてまたは一部分は、任意であってもよい。さらに、およびいずれかの方法のステップは、モジュール、回路、またはこれらのステップを実行するための他の手段を用いて実施することができる。 Any of the methods described herein can be implemented in whole or in part with a computer system including one or more processors that can be configured to perform the steps. Embodiments thus provide a computer system configured to perform the steps of any of the methods described herein, potentially using different components to perform each step or each group of steps. can contain. Although presented as numbered steps, the steps of the methods herein can be performed simultaneously or in a different order. Moreover, some of these steps may be used with some of other steps from other methods. Also, all or part of the steps may be optional. Additionally, and any method steps may be implemented using modules, circuits, or other means for performing those steps.

特定の実施形態の具体的な詳細は、本発明の実施形態の精神と範囲から逸脱することなく、任意の好適な方法で組み合わせてもよい。しかしながら、本発明の他の実施形態は、個々の態様に関する特定の実施形態またはこれらの個々の態様の特定の組み合わせを含んでもよい。本発明の例示的な実施形態の上記の説明は、例示および説明の目的で提示されている。これは、網羅的であることを意図しておらず、または本発明を記載された正確な形態に限定することを意図しておらず、上記の教示を考慮して多くの修正および変形が可能である。実施形態は、本発明の原理およびその実用的な用途を最もよく説明するために選択および記述され、それによって、当業者が、企図される特定の用途に適した様々な実施形態においておよび様々な修正を用いて、本発明を最も適切に利用することを可能にする。 The specific details of particular embodiments may be combined in any suitable manner without departing from the spirit and scope of embodiments of the invention. However, other embodiments of the invention may include specific embodiments of individual aspects or specific combinations of these individual aspects. The foregoing descriptions of exemplary embodiments of the invention have been presented for purposes of illustration and description. It is not intended to be exhaustive or to limit the invention to the precise forms described, and many modifications and variations are possible in light of the above teachings. is. The embodiments were chosen and described in order to best explain the principles of the invention and its practical applications, thereby enabling those skilled in the art to find various alternatives in various embodiments and suitable for the particular applications contemplated. Modifications are used to enable the invention to be most optimally utilized.

「一つの(a)」、「一つの(an)」、または「その(the)」の列挙は、特に反対の指示がない限り、「一つ以上」を意味することを意図している。「または」の使用は、特に反対の指示がない限り、「包含的論理和」を意味し、「排他的論理和」を意味することを意図するものではない。 A recitation of "a," "an," or "the" is intended to mean "one or more," unless specified to the contrary. The use of "or" means "inclusive or" and is not intended to mean "exclusive or," unless specifically stated to the contrary.

本明細書で言及したすべての特許、特許出願、刊行物および記載は、あらゆる目的のためにその全体が参照により本明細書に援用される。いずれも先行技術と認められない。
All patents, patent applications, publications and descriptions mentioned herein are hereby incorporated by reference in their entirety for all purposes. None of these are considered prior art.

Claims (20)

第一のコンピュータによって、第二のコンピュータに、第一の公開鍵、第二の公開鍵、第一の暗号化されたマスクされたベクトル、および第一の暗号化されたランダムなベクトルを送信することであって、前記第一の暗号化されたマスクされたベクトルは、前記第一の公開鍵を使用して暗号化された第一のマスクされたベクトルであり、前記第一の暗号化されたランダムなベクトルは、前記第二の公開鍵を使用して暗号化された第一のランダムなベクトルである、送信することと、
前記第一のコンピュータによって、前記第二のコンピュータから、第三の公開鍵、第四の公開鍵、第二の暗号化されたマスクされたベクトル、および第二の暗号化されたランダムなベクトルを受信することであって、前記第二の暗号化されたマスクされたベクトルは、前記第三の公開鍵を使用して暗号化された第二のマスクされたベクトルであり、前記第二の暗号化されたランダムなベクトルは、前記第四の公開鍵を使用して暗号化された第二のランダムなベクトルである、受信することと、
前記第一のコンピュータによって、前記第二のコンピュータから、第三の置換された暗号化された差分ベクトルおよび第四の置換された暗号化された差分ベクトルを受信することであって、前記第三の置換された暗号化された差分ベクトルは、前記第一の公開鍵を使用して暗号化され、第三の置換を使用して置換され、前記第四の置換された暗号化された差分ベクトルは、前記第二の公開鍵を使用して暗号化され、第四の置換を使用して置換される、受信することと、
前記第一のコンピュータによって、前記第一の公開鍵に対応する第一の秘密鍵を使用して前記第三の置換された暗号化された差分ベクトルを復号することによって、第三の置換された差分ベクトルを生成することと、
前記第一のコンピュータによって、前記第二の公開鍵に対応する第二の秘密鍵を使用して、前記第四の置換された暗号化された差分ベクトルを復号することによって、第四の置換された差分ベクトルを生成することと、
前記第一のコンピュータによって、前記第一のマスクされたベクトル、前記第一のランダムなベクトル、前記第三の置換された差分ベクトル、および前記第四の置換された差分ベクトルに基づいて、第一のベクトルと第二のベクトルのスカラー積を計算することと、を含む、方法。
transmitting, by the first computer, to the second computer the first public key, the second public key, the first encrypted masked vector, and the first encrypted random vector wherein said first encrypted masked vector is a first masked vector encrypted using said first public key; said first encrypted masked vector the random vector is a first random vector encrypted using the second public key;
a third public key, a fourth public key, a second encrypted masked vector, and a second encrypted random vector from the second computer by the first computer; receiving, wherein the second encrypted masked vector is a second masked vector encrypted using the third public key; the encrypted random vector is a second random vector encrypted using the fourth public key;
receiving, by the first computer, from the second computer a third permuted encrypted difference vector and a fourth permuted encrypted difference vector; is encrypted using said first public key, permuted using a third permutation, and said fourth permuted encrypted difference vector is encrypted using the second public key and permuted using a fourth permutation;
a third permuted encrypted difference vector by decrypting, by the first computer, the third permuted encrypted difference vector using a first private key corresponding to the first public key; generating a difference vector;
a fourth permuted encrypted difference vector by decrypting, by the first computer, the fourth permuted encrypted difference vector using a second private key corresponding to the second public key; generating a difference vector with
Based on the first masked vector, the first random vector, the third permuted difference vector, and the fourth permuted difference vector, by the first computer, a first computing a scalar product of the vector of and a second vector.
前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することは、
前記第一のコンピュータによって、前記第一のマスクされたベクトルの二乗の大きさを計算することと、
前記第一のコンピュータによって、前記第一のランダムなベクトルの二乗の大きさを計算することと、
前記第一のコンピュータによって、前記第三の置換された差分ベクトルの二乗の大きさを計算することと、
前記第一のコンピュータによって、前記第四の置換された差分ベクトルの二乗の大きさを計算することと、
前記第一のコンピュータによって、前記第一のマスクされたベクトルの前記二乗の大きさ、前記第一のランダムなベクトルの前記二乗の大きさ、前記第三の置換された差分ベクトルの前記二乗の大きさ、および前記第四の置換された差分ベクトルの前記二乗の大きさに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することと、を含む、請求項1に記載の方法。
Computing the scalar product of the first vector and the second vector comprises:
calculating, by the first computer, the squared magnitude of the first masked vector;
calculating, by the first computer, the squared magnitude of the first random vector;
calculating, by the first computer, the squared magnitude of the third permuted difference vector;
calculating, by the first computer, the squared magnitude of the fourth permuted difference vector;
by said first computer said squared magnitude of said first masked vector, said squared magnitude of said first random vector, said squared magnitude of said third permuted difference vector; and calculating the scalar product of the first vector and the second vector based on the magnitude of the square of the fourth permuted difference vector. described method.
前記第一のコンピュータによって、前記第二のコンピュータに、前記第一の公開鍵、前記第二の公開鍵、前記第一の暗号化されたマスクされたベクトル、および前記第一の暗号化されたランダムなベクトルを送信する前に、前記方法は、
前記第一のコンピュータによって、前記第一のランダムなベクトルを生成することと、
前記第一のコンピュータによって、前記第一のベクトルと前記第一のランダムなベクトルを組み合わせることによって、前記第一のマスクされたベクトルを生成することと、
前記第一のコンピュータによって、第一の置換および第二の置換を生成することと、
前記第一のコンピュータによって、前記第一の公開鍵および前記第一の秘密鍵を含む第一のキーペアを生成することと、
前記第一のコンピュータによって、前記第二の公開鍵および前記第二の秘密鍵を含む第二のキーペアを生成することと、
前記第一のコンピュータによって、前記第一の公開鍵を使用して前記第一のマスクされたベクトルを暗号化することと、
前記第一のコンピュータによって、前記第二の公開鍵を使用して前記第一のランダムなベクトルを暗号化することと、をさらに含む、請求項1に記載の方法。
by said first computer to said second computer said first public key, said second public key, said first encrypted masked vector, and said first encrypted Before sending the random vector, the method includes:
generating, by the first computer, the first random vector;
generating, by the first computer, the first masked vector by combining the first vector and the first random vector;
generating, by the first computer, a first permutation and a second permutation;
generating, by said first computer, a first key pair comprising said first public key and said first private key;
generating, by said first computer, a second key pair comprising said second public key and said second private key;
encrypting, by the first computer, the first masked vector using the first public key;
2. The method of claim 1, further comprising encrypting, by the first computer, the first random vector using the second public key.
前記第一の公開鍵、前記第一の秘密鍵、前記第二の公開鍵、前記第二の秘密鍵、前記第三の公開鍵、前記第三の公開鍵に対応する第三の秘密鍵、前記第四の公開鍵、および前記第四の公開鍵に対応する第四の秘密鍵は、付加的準同型暗号鍵である、請求項1に記載の方法。 the first public key, the first private key, the second public key, the second private key, the third public key, a third private key corresponding to the third public key; 2. The method of claim 1, wherein the fourth public key and a fourth private key corresponding to the fourth public key are additive homomorphic encryption keys. 前記第一のコンピュータによって、前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトル、および前記第二の暗号化されたランダムなベクトルを受信する前に、
前記第二のコンピュータが前記第二のランダムなベクトルを生成し、
前記第二のコンピュータが、前記第二のベクトルと前記第二のランダムなベクトルを組み合わせることによって前記第二のマスクされたベクトルを生成し、
前記第二のコンピュータが、前記第三の置換および前記第四の置換を生成し、
前記第二のコンピュータが、前記第三の公開鍵および第三の秘密鍵を含む第三のキーペアを生成し、
前記第二のコンピュータが、前記第四の公開鍵および第四の秘密鍵を含む第四のキーペアを生成し、
前記第二のコンピュータが、前記第三の公開鍵を使用して前記第二のマスクされたベクトルを暗号化し、
前記第二のコンピュータが、前記第四の公開鍵を使用して前記第二のランダムなベクトルを暗号化する、請求項1に記載の方法。
by said first computer, from said second computer, said third public key, said fourth public key, said second encrypted masked vector, and said second encrypted Before receiving the random vector,
said second computer generating said second random vector;
said second computer generating said second masked vector by combining said second vector and said second random vector;
said second computer generating said third permutation and said fourth permutation;
said second computer generating a third key pair comprising said third public key and a third private key;
said second computer generating a fourth key pair comprising said fourth public key and a fourth private key;
the second computer encrypting the second masked vector using the third public key;
2. The method of claim 1, wherein said second computer encrypts said second random vector using said fourth public key.
前記第二のコンピュータが、前記第一の公開鍵を使用して第二のネゲーションベクトルを暗号化することによって、第三の暗号化されたネゲーションベクトルを生成し、
前記第二のコンピュータが、前記第一の暗号化されたマスクされたベクトルおよび前記第三の暗号化されたネゲーションベクトルに基づいて、第三の暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、前記第二の公開鍵を使用して前記第二のネゲーションベクトルを暗号化することによって、第四の暗号化されたネゲーションベクトルを生成し、
前記第二のコンピュータが、前記第一の暗号化されたランダムなベクトルおよび前記第四の暗号化されたネゲーションベクトルに基づいて第四の暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、第三の置換および前記第三の暗号化された差分ベクトルを使用して、前記第三の置換された暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、第四の置換および前記第四の暗号化された差分ベクトルを使用して、前記第四の置換された暗号化された差分ベクトルを生成する、請求項1に記載の方法。
the second computer generates a third encrypted negation vector by encrypting the second negation vector using the first public key;
the second computer generates a third encrypted difference vector based on the first encrypted masked vector and the third encrypted negation vector;
the second computer generates a fourth encrypted negation vector by encrypting the second negation vector using the second public key;
the second computer generates a fourth encrypted difference vector based on the first encrypted random vector and the fourth encrypted negation vector;
said second computer using a third permutation and said third encrypted difference vector to generate said third permuted encrypted difference vector;
2. The second computer of claim 1, wherein said second computer uses a fourth permutation and said fourth encrypted difference vector to generate said fourth permuted encrypted difference vector. Method.
前記第一のコンピュータによって、前記スカラー積または前記スカラー積から導出された値を第一の所定の閾値と比較することと、
前記スカラー積または前記スカラー積から導出された前記値が、前記第一の所定の閾値を超える場合、前記第一のコンピュータによって、前記第二のコンピュータとの相互作用を実行することと、をさらに含む、請求項1に記載の方法。
comparing, by the first computer, the scalar product or a value derived from the scalar product to a first predetermined threshold;
further performing interaction with the second computer by the first computer if the scalar product or the value derived from the scalar product exceeds the first predetermined threshold. 2. The method of claim 1, comprising:
前記第一のベクトルおよび前記第二のベクトルが、第一の生体認証テンプレートおよび第二の生体認証テンプレートにそれぞれ対応し、前記第一の所定の閾値が生体認証一致閾値である、請求項7に記載の方法。 8. The method of claim 7, wherein the first vector and the second vector correspond to a first biometric template and a second biometric template, respectively, and the first predetermined threshold is a biometric match threshold. described method. 前記第一のコンピュータによって、前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトル、および前記第二の暗号化されたランダムなベクトルを受信した後で、かつ前記第一のコンピュータによって、前記第二のコンピュータから、前記第三の置換された差分ベクトルおよび前記第四の置換された差分ベクトルを受信する前に、前記方法は、
前記第一のコンピュータによって、前記第三の公開鍵を使用して第一のネゲーションベクトルを暗号化することによって、第一の暗号化されたネゲーションベクトルを生成することと、
前記第一のコンピュータによって、前記第二の暗号化されたマスクされたベクトルおよび前記第一の暗号化されたネゲーションベクトルに基づいて、第一の暗号化された差分ベクトルを生成することと、
前記第一のコンピュータによって、前記第四の公開鍵を使用して前記第一のネゲーションベクトルを暗号化することによって、第二の暗号化されたネゲーションベクトルを生成することと、
前記第一のコンピュータによって、前記第二の暗号化されたランダムなベクトルおよび前記第二の暗号化されたネゲーションベクトルに基づいて、第二の暗号化された差分ベクトルを生成することと、
前記第一のコンピュータによって、第一の置換および前記第一の暗号化された差分ベクトルを使用して、第一の置換された暗号化された差分ベクトルを生成することと、
前記第一のコンピュータによって、第二の置換および前記第二の暗号化された差分ベクトルを使用して、第二の置換された暗号化された差分ベクトルを生成することと、
前記第一のコンピュータによって、前記第二のコンピュータに、前記第一の置換された暗号化された差分ベクトル、および前記第二の置換された暗号化された差分ベクトルを送信することと、をさらに含む、請求項1に記載の方法。
by said first computer, from said second computer, said third public key, said fourth public key, said second encrypted masked vector, and said second encrypted after receiving the random vector and before receiving, by the first computer, the third permuted difference vector and the fourth permuted difference vector from the second computer; The method is
generating, by the first computer, a first encrypted negation vector by encrypting the first negation vector using the third public key;
generating, by the first computer, a first encrypted difference vector based on the second encrypted masked vector and the first encrypted negation vector;
generating, by the first computer, a second encrypted negation vector by encrypting the first negation vector using the fourth public key;
generating, by the first computer, a second encrypted difference vector based on the second encrypted random vector and the second encrypted negation vector;
generating, by the first computer, a first permuted encrypted difference vector using the first permutation and the first encrypted difference vector;
generating, by the first computer, a second permuted encrypted difference vector using the second permutation and the second encrypted difference vector;
further transmitting, by the first computer, the first permuted encrypted difference vector and the second permuted encrypted difference vector to the second computer; 2. The method of claim 1, comprising:
前記第二のコンピュータが、前記第三の公開鍵に対応する第三の秘密鍵を使用して、前記第一の置換された暗号化された差分ベクトルを復号することによって、第一の置換された差分ベクトルを生成し、
前記第二のコンピュータが、前記第四の公開鍵に対応する第四の秘密鍵を使用して、前記第二の置換された暗号化された差分ベクトルを復号することによって、第二の置換された差分ベクトルを生成し、
前記第二のコンピュータが、前記第二のマスクされたベクトル、前記第二のランダムなベクトル、前記第一の置換された差分ベクトル、および前記第二の置換された差分ベクトルに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算し、
前記第二のコンピュータが、前記スカラー積または前記スカラー積から導出された値を第二の所定の閾値と比較し、
前記スカラー積または前記スカラー積から導出された前記値が、前記第二の所定の閾値を超える場合、前記第二のコンピュータが、前記第一のコンピュータと相互作用を実行する、請求項9に記載の方法。
said second computer decrypting said first permuted encrypted difference vector using a third private key corresponding to said third public key, thereby performing a first permuted generates a difference vector with
said second computer decrypting said second permuted encrypted difference vector using a fourth private key corresponding to said fourth public key, thereby obtaining a second permuted generates a difference vector with
the second computer, based on the second masked vector, the second random vector, the first permuted difference vector, and the second permuted difference vector, the computing the scalar product of one vector and the second vector;
the second computer comparing the scalar product or a value derived from the scalar product to a second predetermined threshold;
10. The second computer performs interaction with the first computer if the scalar product or the value derived from the scalar product exceeds the second predetermined threshold. the method of.
プロセッサと、
前記プロセッサに連結された非一過性コンピュータ可読媒体であって、
第二のコンピュータに、第一の公開鍵、第二の公開鍵、第一の暗号化されたマスクされたベクトル、および第一の暗号化されたランダムなベクトルを送信することであって、前記第一の暗号化されたマスクされたベクトルは、前記第一の公開鍵を使用して暗号化された第一のマスクされたベクトルであり、前記第一の暗号化されたランダムなベクトルは、前記第二の公開鍵を使用して暗号化された第一のランダムなベクトルである、送信することと、
前記第二のコンピュータから、第三の公開鍵、第四の公開鍵、第二の暗号化されたマスクされたベクトル、および第二の暗号化されたランダムなベクトルを受信することであって、前記第二の暗号化されたマスクされたベクトルは、前記第三の公開鍵を使用して暗号化された第二のマスクされたベクトルであり、前記第二の暗号化されたランダムなベクトルは、前記第四の公開鍵を使用して暗号化された第二のランダムなベクトルである、受信することと、
前記第二のコンピュータから、第三の置換された暗号化された差分ベクトルおよび第四の置換された暗号化された差分ベクトルを受信することであって、前記第三の置換された暗号化された差分ベクトルは、前記第一の公開鍵を使用して暗号化され、第三の置換を使用して置換され、前記第四の置換された暗号化された差分ベクトルは、前記第二の公開鍵を使用して暗号化され、第四の置換を使用して置換される、受信することと、
前記第一の公開鍵に対応する第一の秘密鍵を使用して前記第三の置換された暗号化された差分ベクトルを復号することによって、第三の置換された差分ベクトルを生成することと、
前記第二の公開鍵に対応する第二の秘密鍵を使用して前記第四の置換された暗号化された差分ベクトルを復号することによって、第四の置換された差分ベクトルを生成することと、
前記第一のマスクされたベクトル、前記第一のランダムなベクトル、前記第三の置換された差分ベクトル、および前記第四の置換された差分ベクトルに基づいて、第一のベクトルと第二のベクトルのスカラー積を計算することと、を含む方法を実施するため前記プロセッサによって実行可能なコードを備える、非一過性コンピュータ可読媒体と、を備える、第一のコンピュータ。
a processor;
A non-transitory computer-readable medium coupled to the processor, comprising:
transmitting to a second computer the first public key, the second public key, the first encrypted masked vector, and the first encrypted random vector, said The first encrypted masked vector is a first masked vector encrypted using said first public key, said first encrypted random vector comprising: transmitting a first random vector encrypted using the second public key;
receiving from the second computer a third public key, a fourth public key, a second encrypted masked vector, and a second encrypted random vector, The second encrypted masked vector is a second masked vector encrypted using the third public key, and the second encrypted random vector is , a second random vector encrypted using the fourth public key;
receiving from the second computer a third permuted encrypted difference vector and a fourth permuted encrypted difference vector, wherein the third permuted encrypted difference vector is encrypted using said first public key, permuted using a third permutation, and said fourth permuted encrypted difference vector is encrypted using said second public key; receiving encrypted using a key and permuted using a fourth permutation;
generating a third permuted difference vector by decrypting the third permuted encrypted difference vector using a first private key corresponding to the first public key; ,
generating a fourth permuted difference vector by decrypting the fourth permuted encrypted difference vector using a second private key corresponding to the second public key; ,
a first vector and a second vector based on the first masked vector, the first random vector, the third permuted difference vector, and the fourth permuted difference vector; and a non-transitory computer-readable medium comprising code executable by said processor to perform a method comprising: computing a scalar product of .
前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することが、
前記第一のマスクされたベクトルの二乗の大きさを計算することと、
前記第一のランダムなベクトルの二乗の大きさを計算することと、
前記第三の置換された差分ベクトルの二乗の大きさを計算することと、
前記第四の置換された差分ベクトルの二乗の大きさを計算することと、
前記第一のマスクされたベクトルの前記二乗の大きさ、前記第一のランダムなベクトルの前記二乗の大きさ、前記第三の置換された差分ベクトルの前記二乗の大きさ、および前記第四の置換された差分ベクトルの前記二乗の大きさに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することと、を含む、請求項11に記載の第一のコンピュータ。
calculating the scalar product of the first vector and the second vector;
calculating the squared magnitude of the first masked vector;
calculating the squared magnitude of the first random vector;
calculating the squared magnitude of the third permuted difference vector;
calculating the squared magnitude of the fourth permuted difference vector;
the squared magnitude of the first masked vector, the squared magnitude of the first random vector, the squared magnitude of the third permuted difference vector, and the fourth 12. The first computer of claim 11, comprising calculating the scalar product of the first vector and the second vector based on the magnitude of the square of the permuted difference vector.
前記第二のコンピュータに、前記第一の公開鍵、前記第二の公開鍵、前記第一の暗号化されたマスクされたベクトル、および前記第一の暗号化されたランダムなベクトルを送信する前に、前記方法は、
前記第一のランダムなベクトルを生成することと、
前記第一のベクトルと前記第一のランダムなベクトルを組み合わせることによって前記第一のマスクされたベクトルを生成することと、
第一の置換および第二の置換を生成することと、
前記第一の公開鍵および前記第一の秘密鍵を含む第一のキーペアを生成することと、
前記第二の公開鍵および前記第二の秘密鍵を含む第二のキーペアを生成することと、
前記第一の公開鍵を使用して前記第一のマスクされたベクトルを暗号化することと、
前記第二の公開鍵を使用して前記第一のランダムなベクトルを暗号化することと、をさらに含む、請求項11に記載の第一のコンピュータ。
before transmitting to the second computer the first public key, the second public key, the first encrypted masked vector, and the first encrypted random vector; In addition, the method includes:
generating the first random vector;
generating the first masked vector by combining the first vector and the first random vector;
generating a first permutation and a second permutation;
generating a first key pair including the first public key and the first private key;
generating a second key pair including the second public key and the second private key;
encrypting the first masked vector using the first public key;
12. The first computer of claim 11, further comprising encrypting said first random vector using said second public key.
前記第一の公開鍵、前記第一の秘密鍵、前記第二の公開鍵、前記第二の秘密鍵、前記第三の公開鍵、前記第三の公開鍵に対応する第三の秘密鍵、前記第四の公開鍵、および前記第四の公開鍵に対応する第四の秘密鍵は、付加的準同型暗号鍵である、請求項11に記載の第一のコンピュータ。 the first public key, the first private key, the second public key, the second private key, the third public key, a third private key corresponding to the third public key; 12. The first computer of claim 11, wherein said fourth public key and a fourth private key corresponding to said fourth public key are additive homomorphic encryption keys. 前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトル、および前記第二の暗号化されたランダムなベクトルを受信する前に、
前記第二のコンピュータが前記第二のランダムなベクトルを生成し、
前記第二のコンピュータが、前記第二のベクトルと前記第二のランダムなベクトルを組み合わせることによって前記第二のマスクされたベクトルを生成し、
前記第二のコンピュータが、前記第三の置換および前記第四の置換を生成し、
前記第二のコンピュータが、前記第三の公開鍵および第三の秘密鍵を含む第三のキーペアを生成し、
前記第二のコンピュータが、前記第四の公開鍵および第四の秘密鍵を含む第四のキーペアを生成し、
前記第二のコンピュータが、前記第三の公開鍵を使用して前記第二のマスクされたベクトルを暗号化し、
前記第二のコンピュータが、前記第四の公開鍵を使用して前記第二のランダムなベクトルを暗号化する、請求項11に記載の第一のコンピュータ。
before receiving from the second computer the third public key, the fourth public key, the second encrypted masked vector, and the second encrypted random vector; to the
said second computer generating said second random vector;
said second computer generating said second masked vector by combining said second vector and said second random vector;
said second computer generating said third permutation and said fourth permutation;
said second computer generating a third key pair comprising said third public key and a third private key;
said second computer generating a fourth key pair comprising said fourth public key and a fourth private key;
the second computer encrypting the second masked vector using the third public key;
12. The first computer of claim 11, wherein said second computer encrypts said second random vector using said fourth public key.
前記第二のコンピュータが、前記第一の公開鍵を使用して第二のネゲーションベクトルを暗号化することによって、第三の暗号化されたネゲーションベクトルを生成し、
前記第二のコンピュータが、前記第一の暗号化されたマスクされたベクトルおよび前記第三の暗号化されたネゲーションベクトルに基づいて、第三の暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、前記第二の公開鍵を使用して前記第二のネゲーションベクトルを暗号化することによって、第四の暗号化されたネゲーションベクトルを生成し、
前記第二のコンピュータが、前記第一の暗号化されたランダムなベクトルおよび前記第四の暗号化されたネゲーションベクトルに基づいて第四の暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、第三の置換および前記第三の暗号化された差分ベクトルを使用して、前記第三の置換された暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、第四の置換および前記第四の暗号化された差分ベクトルを使用して、前記第四の置換された暗号化された差分ベクトルを生成する、請求項11に記載の第一のコンピュータ。
the second computer generates a third encrypted negation vector by encrypting the second negation vector using the first public key;
the second computer generates a third encrypted difference vector based on the first encrypted masked vector and the third encrypted negation vector;
the second computer generates a fourth encrypted negation vector by encrypting the second negation vector using the second public key;
the second computer generates a fourth encrypted difference vector based on the first encrypted random vector and the fourth encrypted negation vector;
said second computer using a third permutation and said third encrypted difference vector to generate said third permuted encrypted difference vector;
12. The second computer of claim 11, wherein said second computer uses a fourth permutation and said fourth encrypted difference vector to generate said fourth permuted encrypted difference vector. first computer.
前記方法は、
前記スカラー積または前記スカラー積から導出された値を第一の所定の閾値と比較することと、
前記スカラー積または前記スカラー積から導出された前記値が、前記第一の所定の閾値を超える場合、前記第二のコンピュータと相互作用を実施することと、をさらに含む、請求項11に記載の第一のコンピュータ。
The method includes:
comparing the scalar product or a value derived from the scalar product to a first predetermined threshold;
12. The method of claim 11, further comprising interacting with the second computer if the scalar product or the value derived from the scalar product exceeds the first predetermined threshold. first computer.
前記第一のベクトルおよび前記第二のベクトルが、第一の生体認証テンプレートおよび第二の生体認証テンプレートにそれぞれ対応し、前記第一の所定の閾値が生体認証一致閾値である、請求項17に記載の第一のコンピュータ。 18. The method of claim 17, wherein the first vector and the second vector correspond to a first biometric template and a second biometric template, respectively, and the first predetermined threshold is a biometric match threshold. The first computer described. 前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトルおよび前記第二の暗号化されたランダムなベクトルを受信した後で、かつ前記第二のコンピュータから、前記第三の置換された差分ベクトルおよび前記第四の置換された差分ベクトルを受信する前に、前記方法は、
前記第三の公開鍵を使用して第一のネゲーションベクトルを暗号化することによって、第一の暗号化されたネゲーションベクトルを生成することと、
前記第二の暗号化されたマスクされたベクトルおよび前記第一の暗号化されたネゲーションベクトルに基づいて、第一の暗号化された差分ベクトルを生成することと、
前記第四の公開鍵を使用して前記第一のネゲーションベクトルを暗号化することによって、第二の暗号化されたネゲーションベクトルを生成することと、
前記第二の暗号化されたランダムなベクトルおよび前記第二の暗号化されたネゲーションベクトルに基づいて、第二の暗号化された差分ベクトルを生成することと、
第一の置換および前記第一の暗号化された差分ベクトルを使用して、第一の置換された暗号化された差分ベクトルを生成することと、
第二の置換および前記第二の暗号化された差分ベクトルを使用して、第二の置換された暗号化された差分ベクトルを生成することと、
前記第二のコンピュータに、前記第一の置換された暗号化された差分ベクトル、および前記第二の置換された暗号化された差分ベクトルを送信することと、をさらに含む、請求項11に記載の第一のコンピュータ。
after receiving from the second computer the third public key, the fourth public key, the second encrypted masked vector and the second encrypted random vector and prior to receiving the third permuted difference vector and the fourth permuted difference vector from the second computer, the method comprising:
generating a first encrypted negation vector by encrypting the first negation vector using the third public key;
generating a first encrypted difference vector based on the second encrypted masked vector and the first encrypted negation vector;
generating a second encrypted negation vector by encrypting the first negation vector using the fourth public key;
generating a second encrypted difference vector based on the second encrypted random vector and the second encrypted negation vector;
generating a first permuted encrypted difference vector using the first permutation and the first encrypted difference vector;
generating a second permuted encrypted difference vector using the second permutation and the second encrypted difference vector;
12. The method of claim 11, further comprising transmitting the first permuted encrypted difference vector and the second permuted encrypted difference vector to the second computer. first computer.
前記第二のコンピュータが、前記第三の公開鍵に対応する第三の秘密鍵を使用して、前記第一の置換された暗号化された差分ベクトルを復号することによって、第一の置換された差分ベクトルを生成し、
前記第二のコンピュータが、前記第四の公開鍵に対応する第四の秘密鍵を使用して、前記第二の置換された暗号化された差分ベクトルを復号することによって、第二の置換された差分ベクトルを生成し、
前記第二のコンピュータが、前記第二のマスクされたベクトル、前記第二のランダムなベクトル、前記第一の置換された差分ベクトル、および前記第二の置換された差分ベクトルに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算し、
前記第二のコンピュータが、前記スカラー積または前記スカラー積から導出された値を第二の所定の閾値と比較し、
前記スカラー積または前記スカラー積から導出された前記値が、前記第二の所定の閾値を超える場合、前記第二のコンピュータは、前記第一のコンピュータと相互作用を実行する、請求項19に記載の第一のコンピュータ。
said second computer decrypting said first permuted encrypted difference vector using a third private key corresponding to said third public key, thereby performing a first permuted generates a difference vector with
said second computer decrypting said second permuted encrypted difference vector using a fourth private key corresponding to said fourth public key, thereby obtaining a second permuted generates a difference vector with
the second computer, based on the second masked vector, the second random vector, the first permuted difference vector, and the second permuted difference vector, the computing the scalar product of one vector and the second vector;
the second computer comparing the scalar product or a value derived from the scalar product to a second predetermined threshold;
20. The second computer performs interaction with the first computer if the scalar product or the value derived from the scalar product exceeds the second predetermined threshold. first computer.
JP2020565425A 2018-05-24 2019-05-24 Efficient simultaneous scalar product computation Active JP7280285B2 (en)

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 (en) 2021-09-24
JP7280285B2 true JP7280285B2 (en) 2023-05-23

Family

ID=68616032

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2020565425A Active JP7280285B2 (en) 2018-05-24 2019-05-24 Efficient simultaneous scalar product computation

Country Status (8)

Country Link
EP (1) EP3804214A1 (en)
JP (1) JP7280285B2 (en)
KR (1) KR20210000722A (en)
CN (1) CN112166577A (en)
AU (1) AU2019274602A1 (en)
BR (1) BR112020023826A2 (en)
SG (1) SG11202011250XA (en)
WO (1) WO2019226999A1 (en)

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2016508323A (en) 2013-03-15 2016-03-17 三菱電機株式会社 Method for authenticating encrypted data and system for authenticating biometric data

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
ES2346165T3 (en) * 2007-07-27 2010-10-11 Research In Motion Limited APPLIANCE AND METHODS FOR THE OPERATION OF A WIRELESS SERVER.
CN102314580A (en) * 2011-09-20 2012-01-11 西安交通大学 Vector and matrix operation-based calculation-supported encryption method
FR3018934B1 (en) * 2014-03-24 2017-05-26 Morpho METHOD OF INPUTTING DATA IN A BASE FOR THE PROTECTION OF THESE DATA
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 (en) * 2015-07-10 2020-11-18 富士通株式会社 Relationship encryption
FR3040842B1 (en) * 2015-09-03 2018-12-07 Commissariat A L'energie Atomique Et Aux Energies Alternatives METHOD OF CONFIDENTIAL INTERROGATION OF A GEODEPENDANT SERVICE BY HOMOMORPHIC CRYPTOGRAPHY
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 (en) 2013-03-15 2016-03-17 三菱電機株式会社 Method for authenticating encrypted data and system for authenticating biometric data

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
BR112020023826A2 (en) 2021-04-13
EP3804214A4 (en) 2021-04-14
CN112166577A (en) 2021-01-01
EP3804214A1 (en) 2021-04-14
AU2019274602A1 (en) 2020-11-26
SG11202011250XA (en) 2020-12-30
JP2021525386A (en) 2021-09-24
WO2019226999A1 (en) 2019-11-28
KR20210000722A (en) 2021-01-05

Similar Documents

Publication Publication Date Title
US10826702B2 (en) Secure authentication of user and mobile device
US11252136B2 (en) System and method for identity verification across mobile applications
US11736296B2 (en) Biometric verification process using certification token
US10873447B2 (en) Efficient concurrent scalar product calculation
CN110999212B (en) Online authentication of account holders using biometric identification and privacy preserving methods
US20220407709A1 (en) Biometric sensor on portable device
US20220215086A1 (en) Delegated biometric authentication
JP2006107406A (en) Biometric authentication device and terminal
US11792012B2 (en) Distributed biometric comparison framework
US20230062507A1 (en) User authentication at access control server using mobile device
JP7280285B2 (en) Efficient simultaneous scalar product computation
US20230131437A1 (en) Method, system, and computer program product for authentication
WO2023055562A1 (en) Remote identity interaction
CN117981274A (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