(57)【要約】  プライバシー保護スカラー積計算を実行するための方法およびシステムが提供される。第一のベクトルおよび第二のベクトルをそれぞれ有する第一の当事者および第二の当事者（例えば、第一のコンピュータおよび第二のコンピュータ）は、一方のベクトルを他方の当事者に明らかにすることなく、二つのベクトルのスカラー積を同時に決定することができる。各ベクトルはマスクされ、その後、非対称キーペアの公開鍵を使用して暗号化され得る。準同型暗号化演算を使用して、ベクトルのスカラー積を、ベクトルがまだ暗号化されている間に決定することができる。各当事者は、スカラー積、またはスカラー積から導出された値を、所定の閾値と比較することができる。一例として、二つの当事者は、スカラー積を実行して、ベクトルとして表わされた二つの生体認証テンプレートを、生体認証テンプレートを互いに明らかにすることなく比較することができ、それらの生体認証に対応する個人のプライバシーを保護することができる。【選択図】図１
2021525386.tif 000002
【特許請求の範囲】
【請求項１】
第一のコンピュータによって、第二のコンピュータに、第一の公開鍵、第二の公開鍵、第一の暗号化されたマスクされたベクトル、および第一の暗号化されたランダムなベクトルを送信することであって、前記第一の暗号化されたマスクされたベクトルは、前記第一の公開鍵を使用して暗号化された第一のマスクされたベクトルであり、前記第一の暗号化されたランダムなベクトルは、前記第二の公開鍵を使用して暗号化された第一のランダムなベクトルである、送信することと、
前記第一のコンピュータによって、前記第二のコンピュータから、第三の公開鍵、第四の公開鍵、第二の暗号化されたマスクされたベクトル、および第二の暗号化されたランダムなベクトルを受信することであって、前記第二の暗号化されたマスクされたベクトルは、前記第三の公開鍵を使用して暗号化された第二のマスクされたベクトルであり、前記第二の暗号化されたランダムなベクトルは、前記第四の公開鍵を使用して暗号化された第二のランダムなベクトルである、受信することと、
前記第一のコンピュータによって、前記第二のコンピュータから、第三の置換された暗号化された差分ベクトルおよび第四の置換された暗号化された差分ベクトルを受信することであって、前記第三の置換された暗号化された差分ベクトルは、前記第一の公開鍵を使用して暗号化され、第三の置換を使用して置換され、前記第四の置換された暗号化された差分ベクトルは、前記第二の公開鍵を使用して暗号化され、第四の置換を使用して置換される、受信することと、
前記第一のコンピュータによって、前記第一の公開鍵に対応する第一の秘密鍵を使用して前記第三の置換された暗号化された差分ベクトルを復号することによって、第三の置換された差分ベクトルを生成することと、
前記第一のコンピュータによって、前記第二の公開鍵に対応する第二の秘密鍵を使用して、前記第四の置換された暗号化された差分ベクトルを復号することによって、第四の置換された差分ベクトルを生成することと、
前記第一のコンピュータによって、前記第一のマスクされたベクトル、前記第一のランダムなベクトル、前記第三の置換された差分ベクトル、および前記第四の置換された差分ベクトルに基づいて、第一のベクトルと第二のベクトルのスカラー積を計算することと、を含む、方法。
【請求項２】
前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することは、
前記第一のコンピュータによって、前記第一のマスクされたベクトルの二乗の大きさを計算することと、
前記第一のコンピュータによって、前記第一のランダムなベクトルの二乗の大きさを計算することと、
前記第一のコンピュータによって、前記第三の置換された差分ベクトルの二乗の大きさを計算することと、
前記第一のコンピュータによって、前記第四の置換された差分ベクトルの二乗の大きさを計算することと、
前記第一のコンピュータによって、前記第一のマスクされたベクトルの前記二乗の大きさ、前記第一のランダムなベクトルの前記二乗の大きさ、前記第三の置換された差分ベクトルの前記二乗の大きさ、および前記第四の置換された差分ベクトルの前記二乗の大きさに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することと、を含む、請求項１に記載の方法。
【請求項３】
前記第一のコンピュータによって、前記第二のコンピュータに、前記第一の公開鍵、前記第二の公開鍵、前記第一の暗号化されたマスクされたベクトル、および前記第一の暗号化されたランダムなベクトルを送信する前に、前記方法は、
前記第一のコンピュータによって、前記第一のランダムなベクトルを生成することと、
前記第一のコンピュータによって、前記第一のベクトルと前記第一のランダムなベクトルを組み合わせることによって、前記第一のマスクされたベクトルを生成することと、
前記第一のコンピュータによって、第一の置換および第二の置換を生成することと、
前記第一のコンピュータによって、前記第一の公開鍵および前記第一の秘密鍵を含む第一のキーペアを生成することと、
前記第一のコンピュータによって、前記第二の公開鍵および前記第二の秘密鍵を含む第二のキーペアを生成することと、
前記第一のコンピュータによって、前記第一の公開鍵を使用して前記第一のマスクされたベクトルを暗号化することと、
前記第一のコンピュータによって、前記第二の公開鍵を使用して前記第一のランダムなベクトルを暗号化することと、をさらに含む、請求項１に記載の方法。
【請求項４】
前記第一の公開鍵、前記第一の秘密鍵、前記第二の公開鍵、前記第二の秘密鍵、前記第三の公開鍵、前記第三の公開鍵に対応する第三の秘密鍵、前記第四の公開鍵、および前記第四の公開鍵に対応する第四の秘密鍵は、付加的準同型暗号鍵である、請求項１に記載の方法。
【請求項５】
前記第一のコンピュータによって、前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトル、および前記第二の暗号化されたランダムなベクトルを受信する前に、
前記第二のコンピュータが前記第二のランダムなベクトルを生成し、
前記第二のコンピュータが、前記第二のベクトルと前記第二のランダムなベクトルを組み合わせることによって前記第二のマスクされたベクトルを生成し、
前記第二のコンピュータが、前記第三の置換および前記第四の置換を生成し、
前記第二のコンピュータが、前記第三の公開鍵および第三の秘密鍵を含む第三のキーペアを生成し、
前記第二のコンピュータが、前記第四の公開鍵および第四の秘密鍵を含む第四のキーペアを生成し、
前記第二のコンピュータが、前記第三の公開鍵を使用して前記第二のマスクされたベクトルを暗号化し、
前記第二のコンピュータが、前記第四の公開鍵を使用して前記第二のランダムなベクトルを暗号化する、請求項１に記載の方法。
【請求項６】
前記第二のコンピュータが、前記第一の公開鍵を使用して第二のネゲーションベクトルを暗号化することによって、第三の暗号化されたネゲーションベクトルを生成し、
前記第二のコンピュータが、前記第一の暗号化されたマスクされたベクトルおよび前記第三の暗号化されたネゲーションベクトルに基づいて、第三の暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、前記第二の公開鍵を使用して前記第二のネゲーションベクトルを暗号化することによって、第四の暗号化されたネゲーションベクトルを生成し、
前記第二のコンピュータが、前記第一の暗号化されたランダムなベクトルおよび前記第四の暗号化されたネゲーションベクトルに基づいて第四の暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、第三の置換および前記第三の暗号化された差分ベクトルを使用して、前記第三の置換された暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、第四の置換および前記第四の暗号化された差分ベクトルを使用して、前記第四の置換された暗号化された差分ベクトルを生成する、請求項１に記載の方法。
【請求項７】
前記第一のコンピュータによって、前記スカラー積または前記スカラー積から導出された値を第一の所定の閾値と比較することと、
前記スカラー積または前記スカラー積から導出された前記値が、前記第一の所定の閾値を超える場合、前記第一のコンピュータによって、前記第二のコンピュータとの相互作用を実行することと、をさらに含む、請求項１に記載の方法。
【請求項８】
前記第一のベクトルおよび前記第二のベクトルが、第一の生体認証テンプレートおよび第二の生体認証テンプレートにそれぞれ対応し、前記第一の所定の閾値が生体認証一致閾値である、請求項７に記載の方法。
【請求項９】
前記第一のコンピュータによって、前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトル、および前記第二の暗号化されたランダムなベクトルを受信した後で、かつ前記第一のコンピュータによって、前記第二のコンピュータから、前記第三の置換された差分ベクトルおよび前記第四の置換された差分ベクトルを受信する前に、前記方法は、
前記第一のコンピュータによって、前記第三の公開鍵を使用して第一のネゲーションベクトルを暗号化することによって、第一の暗号化されたネゲーションベクトルを生成することと、
前記第一のコンピュータによって、前記第二の暗号化されたマスクされたベクトルおよび前記第一の暗号化されたネゲーションベクトルに基づいて、第一の暗号化された差分ベクトルを生成することと、
前記第一のコンピュータによって、前記第四の公開鍵を使用して前記第一のネゲーションベクトルを暗号化することによって、第二の暗号化されたネゲーションベクトルを生成することと、
前記第一のコンピュータによって、前記第二の暗号化されたランダムなベクトルおよび前記第二の暗号化されたネゲーションベクトルに基づいて、第二の暗号化された差分ベクトルを生成することと、
前記第一のコンピュータによって、第一の置換および前記第一の暗号化された差分ベクトルを使用して、第一の置換された暗号化された差分ベクトルを生成することと、
前記第一のコンピュータによって、第二の置換および前記第二の暗号化された差分ベクトルを使用して、第二の置換された暗号化された差分ベクトルを生成することと、
前記第一のコンピュータによって、前記第二のコンピュータに、前記第一の置換された暗号化された差分ベクトル、および前記第二の置換された暗号化された差分ベクトルを送信することと、をさらに含む、請求項１に記載の方法。
【請求項１０】
前記第二のコンピュータが、前記第三の公開鍵に対応する第三の秘密鍵を使用して、前記第一の置換された暗号化された差分ベクトルを復号することによって、第一の置換された差分ベクトルを生成し、
前記第二のコンピュータが、前記第四の公開鍵に対応する第四の秘密鍵を使用して、前記第二の置換された暗号化された差分ベクトルを復号することによって、第二の置換された差分ベクトルを生成し、
前記第二のコンピュータが、前記第二のマスクされたベクトル、前記第二のランダムなベクトル、前記第一の置換された差分ベクトル、および前記第二の置換された差分ベクトルに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算し、
前記第二のコンピュータが、前記スカラー積または前記スカラー積から導出された値を第二の所定の閾値と比較し、
前記スカラー積または前記スカラー積から導出された前記値が、前記第二の所定の閾値を超える場合、前記第二のコンピュータが、前記第一のコンピュータと相互作用を実行する、請求項９に記載の方法。
【請求項１１】
プロセッサと、
前記プロセッサに連結された非一過性コンピュータ可読媒体であって、
第二のコンピュータに、第一の公開鍵、第二の公開鍵、第一の暗号化されたマスクされたベクトル、および第一の暗号化されたランダムなベクトルを送信することであって、前記第一の暗号化されたマスクされたベクトルは、前記第一の公開鍵を使用して暗号化された第一のマスクされたベクトルであり、前記第一の暗号化されたランダムなベクトルは、前記第二の公開鍵を使用して暗号化された第一のランダムなベクトルである、送信することと、
前記第二のコンピュータから、第三の公開鍵、第四の公開鍵、第二の暗号化されたマスクされたベクトル、および第二の暗号化されたランダムなベクトルを受信することであって、前記第二の暗号化されたマスクされたベクトルは、前記第三の公開鍵を使用して暗号化された第二のマスクされたベクトルであり、前記第二の暗号化されたランダムなベクトルは、前記第四の公開鍵を使用して暗号化された第二のランダムなベクトルである、受信することと、
前記第二のコンピュータから、第三の置換された暗号化された差分ベクトルおよび第四の置換された暗号化された差分ベクトルを受信することであって、前記第三の置換された暗号化された差分ベクトルは、前記第一の公開鍵を使用して暗号化され、第三の置換を使用して置換され、前記第四の置換された暗号化された差分ベクトルは、前記第二の公開鍵を使用して暗号化され、第四の置換を使用して置換される、受信することと、
前記第一の公開鍵に対応する第一の秘密鍵を使用して前記第三の置換された暗号化された差分ベクトルを復号することによって、第三の置換された差分ベクトルを生成することと、
前記第二の公開鍵に対応する第二の秘密鍵を使用して前記第四の置換された暗号化された差分ベクトルを復号することによって、第四の置換された差分ベクトルを生成することと、
前記第一のマスクされたベクトル、前記第一のランダムなベクトル、前記第三の置換された差分ベクトル、および前記第四の置換された差分ベクトルに基づいて、第一のベクトルと第二のベクトルのスカラー積を計算することと、を含む方法を実施するため前記プロセッサによって実行可能なコードを備える、非一過性コンピュータ可読媒体と、を備える、第一のコンピュータ。
【請求項１２】
前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することが、
前記第一のマスクされたベクトルの二乗の大きさを計算することと、
前記第一のランダムなベクトルの二乗の大きさを計算することと、
前記第三の置換された差分ベクトルの二乗の大きさを計算することと、
前記第四の置換された差分ベクトルの二乗の大きさを計算することと、
前記第一のマスクされたベクトルの前記二乗の大きさ、前記第一のランダムなベクトルの前記二乗の大きさ、前記第三の置換された差分ベクトルの前記二乗の大きさ、および前記第四の置換された差分ベクトルの前記二乗の大きさに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算することと、を含む、請求項１１に記載の第一のコンピュータ。
【請求項１３】
前記第二のコンピュータに、前記第一の公開鍵、前記第二の公開鍵、前記第一の暗号化されたマスクされたベクトル、および前記第一の暗号化されたランダムなベクトルを送信する前に、前記方法は、
前記第一のランダムなベクトルを生成することと、
前記第一のベクトルと前記第一のランダムなベクトルを組み合わせることによって前記第一のマスクされたベクトルを生成することと、
第一の置換および第二の置換を生成することと、
前記第一の公開鍵および前記第一の秘密鍵を含む第一のキーペアを生成することと、
前記第二の公開鍵および前記第二の秘密鍵を含む第二のキーペアを生成することと、
前記第一の公開鍵を使用して前記第一のマスクされたベクトルを暗号化することと、
前記第二の公開鍵を使用して前記第一のランダムなベクトルを暗号化することと、をさらに含む、請求項１１に記載の第一のコンピュータ。
【請求項１４】
前記第一の公開鍵、前記第一の秘密鍵、前記第二の公開鍵、前記第二の秘密鍵、前記第三の公開鍵、前記第三の公開鍵に対応する第三の秘密鍵、前記第四の公開鍵、および前記第四の公開鍵に対応する第四の秘密鍵は、付加的準同型暗号鍵である、請求項１１に記載の第一のコンピュータ。
【請求項１５】
前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトル、および前記第二の暗号化されたランダムなベクトルを受信する前に、
前記第二のコンピュータが前記第二のランダムなベクトルを生成し、
前記第二のコンピュータが、前記第二のベクトルと前記第二のランダムなベクトルを組み合わせることによって前記第二のマスクされたベクトルを生成し、
前記第二のコンピュータが、前記第三の置換および前記第四の置換を生成し、
前記第二のコンピュータが、前記第三の公開鍵および第三の秘密鍵を含む第三のキーペアを生成し、
前記第二のコンピュータが、前記第四の公開鍵および第四の秘密鍵を含む第四のキーペアを生成し、
前記第二のコンピュータが、前記第三の公開鍵を使用して前記第二のマスクされたベクトルを暗号化し、
前記第二のコンピュータが、前記第四の公開鍵を使用して前記第二のランダムなベクトルを暗号化する、請求項１１に記載の第一のコンピュータ。
【請求項１６】
前記第二のコンピュータが、前記第一の公開鍵を使用して第二のネゲーションベクトルを暗号化することによって、第三の暗号化されたネゲーションベクトルを生成し、
前記第二のコンピュータが、前記第一の暗号化されたマスクされたベクトルおよび前記第三の暗号化されたネゲーションベクトルに基づいて、第三の暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、前記第二の公開鍵を使用して前記第二のネゲーションベクトルを暗号化することによって、第四の暗号化されたネゲーションベクトルを生成し、
前記第二のコンピュータが、前記第一の暗号化されたランダムなベクトルおよび前記第四の暗号化されたネゲーションベクトルに基づいて第四の暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、第三の置換および前記第三の暗号化された差分ベクトルを使用して、前記第三の置換された暗号化された差分ベクトルを生成し、
前記第二のコンピュータが、第四の置換および前記第四の暗号化された差分ベクトルを使用して、前記第四の置換された暗号化された差分ベクトルを生成する、請求項１１に記載の第一のコンピュータ。
【請求項１７】
前記方法は、
前記スカラー積または前記スカラー積から導出された値を第一の所定の閾値と比較することと、
前記スカラー積または前記スカラー積から導出された前記値が、前記第一の所定の閾値を超える場合、前記第二のコンピュータと相互作用を実施することと、をさらに含む、請求項１１に記載の第一のコンピュータ。
【請求項１８】
前記第一のベクトルおよび前記第二のベクトルが、第一の生体認証テンプレートおよび第二の生体認証テンプレートにそれぞれ対応し、前記第一の所定の閾値が生体認証一致閾値である、請求項１７に記載の第一のコンピュータ。
【請求項１９】
前記第二のコンピュータから、前記第三の公開鍵、前記第四の公開鍵、前記第二の暗号化されたマスクされたベクトルおよび前記第二の暗号化されたランダムなベクトルを受信した後で、かつ前記第二のコンピュータから、前記第三の置換された差分ベクトルおよび前記第四の置換された差分ベクトルを受信する前に、前記方法は、
前記第三の公開鍵を使用して第一のネゲーションベクトルを暗号化することによって、第一の暗号化されたネゲーションベクトルを生成することと、
前記第二の暗号化されたマスクされたベクトルおよび前記第一の暗号化されたネゲーションベクトルに基づいて、第一の暗号化された差分ベクトルを生成することと、
前記第四の公開鍵を使用して前記第一のネゲーションベクトルを暗号化することによって、第二の暗号化されたネゲーションベクトルを生成することと、
前記第二の暗号化されたランダムなベクトルおよび前記第二の暗号化されたネゲーションベクトルに基づいて、第二の暗号化された差分ベクトルを生成することと、
第一の置換および前記第一の暗号化された差分ベクトルを使用して、第一の置換された暗号化された差分ベクトルを生成することと、
第二の置換および前記第二の暗号化された差分ベクトルを使用して、第二の置換された暗号化された差分ベクトルを生成することと、
前記第二のコンピュータに、前記第一の置換された暗号化された差分ベクトル、および前記第二の置換された暗号化された差分ベクトルを送信することと、をさらに含む、請求項１１に記載の第一のコンピュータ。
【請求項２０】
前記第二のコンピュータが、前記第三の公開鍵に対応する第三の秘密鍵を使用して、前記第一の置換された暗号化された差分ベクトルを復号することによって、第一の置換された差分ベクトルを生成し、
前記第二のコンピュータが、前記第四の公開鍵に対応する第四の秘密鍵を使用して、前記第二の置換された暗号化された差分ベクトルを復号することによって、第二の置換された差分ベクトルを生成し、
前記第二のコンピュータが、前記第二のマスクされたベクトル、前記第二のランダムなベクトル、前記第一の置換された差分ベクトル、および前記第二の置換された差分ベクトルに基づいて、前記第一のベクトルと前記第二のベクトルの前記スカラー積を計算し、
前記第二のコンピュータが、前記スカラー積または前記スカラー積から導出された値を第二の所定の閾値と比較し、
前記スカラー積または前記スカラー積から導出された前記値が、前記第二の所定の閾値を超える場合、前記第二のコンピュータは、前記第一のコンピュータと相互作用を実行する、請求項１９に記載の第一のコンピュータ。
【発明の詳細な説明】
【背景技術】
【０００１】
関連出願の相互参照
本出願は、２０１８年５月２４日に出願された米国特許出願第６２／６７６，２１９号の非仮特許出願であり、この特許出願に対する優先権を主張するもので、その全体は参照により本明細書に組み込まれる。
【０００２】
多くの場合、特にデータがプライベートではない場合、コンピュータは、比較のために単にデータを互いに送信することができる。たとえば、ローカルソフトウェアが最新かどうか（つまり、そのソフトウェアが入手可能なそのソフトウェアの最新の安定版のバージョンかどうか）をユーザが確認したい場合がある。ユーザは、比較のためにソフトウェアに関するデータを外部サーバに送信しても問題がない場合がある。ただし、一部のケースでは、特に個人データや個人を識別できる情報（例えば、医療記録、支払口座番号、生体認証）を含む場合、ユーザは、外部コンピュータが不正または悪意のあるユーザや組織によって操作されている可能性があるという懸念から、そのデータを別の外部コンピュータに送信したくない場合がある。
【０００３】
幸いなことに、安全な多者間計算技術など、複数のコンピュータでそれぞれのデータを互いに開示することなくデータを比較したり、計算を実行したりできる技術がある。残念なことに、これらの手法は多くの場合、遅く、複雑で、大量のコンピューティング操作を必要とする。参加しているコンピュータの接続が悪い場合、安全な多者間計算の失敗の可能性が著しく高くなる。さらに、通信やコンピューティング操作が多数あるため、このようなプロトコルは、時間的制約のあるアプリケーションや低パフォーマンスのコンピューティング環境には適していない。
【０００４】
実施形態は、個別および総合的にこれらのおよびその他の問題を解決する。
【発明の概要】
【０００５】
本発明の実施形態は、二つのベクトルのスカラー積（または「ドット」積）を安全かつ同時に計算するための方法およびシステムを対象とする。第一のコンピュータおよび第二のコンピュータは、それぞれ第一および第二のベクトルを有し得、第一のコンピュータが第一のベクトルを第二のコンピュータに明らかにすることなく、かつ第二のコンピュータが第二のベクトルを第一のコンピュータに明らかにすることなく、第一および第二のベクトルのスカラー積を同時に計算することができる。各コンピュータは、スカラー積またはスカラー積から導出された値を所定の閾値と比較することができる。スカラー積またはスカラー積から導出された値が所定の閾値を超えることを条件として、第一のコンピュータおよび第二のコンピュータは、互いに相互作用を行うことができる。例えば、相互作用は、アクセストークンを第一のコンピュータに発行する第二のコンピュータを含み得る。
【０００６】
例として、生体認証承認システム（第二のコンピュータ）は、第一のコンピュータ（生体認証ベクトルに対応するユーザによって操作または所有される）によって提供される生体認証ベクトル（すなわち、ベクトル化された生体認証インスタンス）を第二のコンピュータに格納された生体認証ベクトルと比較することができ、第二のコンピュータは、生体認証が一致する場合、アクセストークン（支払トークン、またはユーザが建物にアクセスできるようにするトークンなど）を発行することができる。ただし、第二のコンピュータは、ユーザがなりすましを実行するために生体認証ベクトルを盗もうとする不正行為者である可能性があるため、格納された生体認証ベクトルのコピーをユーザに渡したくない場合がある。同様に、ユーザは、第二のコンピュータが不正行為者によって操作される可能性があるため、第二のコンピュータに生体認証ベクトルのコピーを渡したくない可能性がある。実施形態は、スカラー積を計算し、スカラー積を使用して二つの生体認証インスタンスの比較を実施するために使用することができ、ユーザが自身のそれぞれの生体認証ベクトルを第二のコンピュータに開示することなく、かつ第二のコンピュータがそのそれぞれの生体認証ベクトルをユーザに開示することなく使用できる。この方法では、機密データを公開するリスクなしにユーザを承認できる。
【０００７】
実施形態は、従来のシステムよりも改善を提供する。なぜなら、実施形態は、スカラー積を、コンピュータまたは事業体間の多くの通信のように実行することなく計算することを可能にし、速度と信頼性の向上をもたらすからである。本開示の実施形態では、第一のコンピュータおよび第二のコンピュータは、スカラー積を同時に計算し、第一のコンピュータも第二のコンピュータも、第一のベクトルαの二乗の大きさも、また第二のベクトルβの二乗の大きさも、他方のコンピュータに送信する必要はない。これにより、コンピュータ間で送信されるメッセージの数が減り、従来のシステムに比べてプロトコルの速度、効率、信頼性が向上する。
【０００８】
一つの実施形態は、第一のコンピュータによって、第二のコンピュータに、第一の公開鍵、第二の公開鍵、第一の暗号化されたマスクされたベクトル、および第一の暗号化されたランダムなベクトルを送信することであって、第一の暗号化されたマスクされたベクトルが、第一の公開鍵を使用して暗号化された第一のマスクされたベクトルであり、第一の暗号化されたランダムなベクトルは、第二の公開鍵を使用して暗号化された第一のランダムなベクトルである、送信することと、第一のコンピュータによって、第二のコンピュータから、第三の公開鍵、第四の公開鍵、第二の暗号化されたマスクされたベクトル、および第二の暗号化されたランダムなベクトルを受信することであって、第二の暗号化されたマスクされたベクトルが、第三の公開鍵を使用して暗号化された第二のマスクされたベクトルであり、第二の暗号化されたランダムなベクトルが、第四の公開鍵を使用して暗号化された第二のランダムなベクトルである、受信することと、第一のコンピュータによって、第二のコンピュータから、第三の置換された暗号化された差分ベクトルおよび第四の置換された暗号化された差分ベクトルを受信することであって、第三の置換された暗号化された差分ベクトルは、第一の公開鍵を使用して暗号化され、第三の置換を使用して置換され、第四の置換された暗号化された差分ベクトルは、第二の公開鍵を使用して暗号化され、第四の置換を使用して置換される、受信することと、第一のコンピュータによって、第一の公開鍵に対応する第一の秘密鍵を使用して、第三の置換された暗号化された差分ベクトルを復号することによって、第三の置換された差分ベクトルを生成することと、第一のコンピュータによって、第二の公開鍵に対応する第二の秘密鍵を使用して、第四の置換された暗号化された差分ベクトルを復号することによって、第四の置換された差分ベクトルを生成することと、第一のコンピュータによって、第一のマスクされたベクトル、第一のランダムなベクトル、第三の置換された差分ベクトルおよび第四の置換された差分ベクトルに基づいてベクトルと第二のベクトルのスカラー積を計算することと、を含む方法を対象とする。
【０００９】
別の実施形態は、プロセッサと、上述の方法を実施するためにプロセッサによって実行可能であるコードを含む、プロセッサに連結された非一時的コンピュータ可読媒体とを含む第一のコンピュータを対象とする。
【００１０】
これらの実施形態および他の実施形態について、以下に詳細に記載する。実施形態の性質および利点をよりよく理解することは、以下の詳細な説明および添付の図面を参照して得ることができる。
条件
【００１１】
「サーバコンピュータ」は、強力なコンピュータまたはコンピュータクラスタを含んでもよい。例えば、サーバコンピュータは、大型メインフレーム、ミニコンピュータクラスタ、またはユニットとして機能するサーバ群であり得る。一例では、サーバコンピュータは、ウェブサーバに連結されるデータベースサーバであり得る。サーバコンピュータは、一つ以上の計算装置を含んでもよく、一つ以上のクライアントコンピュータからの要求にサービスを提供する、さまざまなコンピュータ構造、配置およびコンパイルのうちのいずれを使用し得る。
【００１２】
「メモリ」は、電子データを格納することができる任意の好適な単数または複数のデバイスであってもよい。好適なメモリとして、所望の方法を実施するためにプロセッサにより実行され得る命令を保存する、非一過性コンピュータ可読媒体が含まれ得る。メモリの例として、一つ以上のメモリチップ、ディスクドライブなどが含まれ得る。一部のメモリは、任意の好適な電気的、光学的、および／または磁気的な動作モードを用いて動作することができる。
【００１３】
「プロセッサ」は、任意の好適な単数または複数のデータ計算デバイスを指すことができる。プロセッサは、所望の機能を達成するために一緒に動作する一つ以上のマイクロプロセッサを備えることができる。プロセッサは、ユーザおよび／またはシステム生成要求を実行するプログラム構成要素を実行するために適切な少なくとも一つの高速データプロセッサを備えるＣＰＵを含んでもよい。ＣＰＵは、ＡＭＤのアスロン、デュロン、および／もしくはオプテロン、ＩＢＭおよび／もしくはモトローラのＰｏｗｅｒＰＣ、ＩＢＭおよびソニーのセルプロセッサ、インテルのセレロン、アイテニウム、ペンティアム、ジーオン、および／もしくはＸＳｃａｌｅ、ならびに／または、同様のプロセッサなどのマイクロプロセッサであってもよい。
【００１４】
「セキュア要素」は、安全に機能を実行することができる構成要素を指しうる。セキュア要素は、データへのアクセスが保護されるように、データを安全に格納するメモリであってもよい。「セキュア要素」の例としては、プロセッサの信頼できる実行環境（ＴＥＥ）、セキュア領域がある。セキュア要素の別の例は、ユニバーサル集積回路カード（ＵＩＣＣ）、セキュアスマートカードである。セキュア要素の追加の例は、より大きな機械または電気システムの組み込みセキュア要素、組み込みハードウェア構成要素である。
【００１５】
「ベクトル」は、構成要素の順序付けられたリストを指してもよい。ベクトルの構成要素は、数値であってもよく、例えば、例示的なベクトルは、三つの構成要素、すなわち、
【数１】
2021525386.tif 000003
を有し得る。ベクトルの構成要素は、ラベルと関連付けられてもよく、例えば、第二の例示的なベクトル
【数２】
2021525386.tif 000004
は、三つの構成要素：
【数３】
2021525386.tif 000005
を有し得る。数学的演算は、ベクトルに適用されてもよく、例えば、二つのベクトルは、加算されてもよく、または互いに減算されてもよい。「ランダムなベクトル」は、例えば、乱数発生器または疑似乱数発生器を使用して、ランダムまたは疑似ランダムに生成された構成要素の順番付けられたリストを指してもよい。「差分ベクトル」は、例えば、二つのベクトル間の差に等しいベクトルを指してもよく、例えば：
【数４】
2021525386.tif 000006
「マスクされたベクトル」は、ベクトルとランダムベクトルとのベクトル和を指してもよい。「ベクトル化」という用語は、データのセットがベクトルに変換される任意のプロセス、例えば、人の身長、体重、および年齢が、その人の身長、体重、および年齢に対応する構成要素を含むベクトルに変換されるプロセスを指す場合がある。
【００１６】
「置換」は、何かが順序付けられ得るまたは配置され得る方法を指し得る。「置換された」という用語は、何かが置換を介して順序付けられたまたは配置されたことを示すことができる。例えば、置換されたベクトルは、置換に従って再配置されたベクトルを指してもよい。
【００１７】
「ユーザ」とは、何らかの目的で他のものを使用する人または物を指す。ユーザは、一つ以上の個人アカウントおよび／またはユーザデバイスと関連付けられ得る個人を含み得る。ユーザはまた、一部の実施形態では、カード保有者、アカウント保有者または消費者と称され得る。
【００１８】
「リソース」とは、事業体によって使用される、または事業体間で移転される可能性のあるものを指し得る。リソースの例には、物品、サービス、情報、および／または制限された場所へのアクセスが含まれる。
【００１９】
「リソースプロバイダ」とは、リソースを提供できる事業体を指し得る。リソースプロバイダの例には、小売業者、政府機関などが含まれる。リソースプロバイダは、リソースプロバイダのコンピュータを操作できる。
【００２０】
「通信デバイス」は、遠隔または直接の通信機能を提供できる任意の好適なデバイスを含み得る。遠隔通信機能の例には、携帯電話（無線）ネットワーク、無線データネットワーク（例えば、３Ｇ、４Ｇまたは同様のネットワーク）、Ｗｉ−Ｆｉ、Ｗｉ−Ｍａｘ、またはインターネットもしくはプライベートネットワークなどのネットワークへのアクセスを提供できるいかなる他の通信媒体を使用することが含まれる。通信デバイスの例として、デスクトップコンピュータ、ビデオゲームコンソール、移動電話（例えば、携帯電話）、ＰＤＡ、タブレットコンピュータ、ネットブック、ラップトップコンピュータ、パーソナル音楽プレーヤ、手持ち式専用リーダ、スマートカードなどが挙げられる。通信デバイスのさらなる例としては、スマートウォッチ、フィットネスバンド、アンクルブレスレット、リング、イヤリングなどのウェアラブルデバイスの他、遠隔または直接の通信機能付き自動車がある。
【００２１】
「相互作用」とは、相互の作用、効果または影響を指す場合がある。例えば、相互作用は、二人以上の当事者間の交換または取引である可能性がある。
【００２２】
「アクセス端子」は、リモートシステムへのアクセスを提供する任意の好適なデバイスであってもよい。また、アクセス端子は、小売業者コンピュータ、取引処理コンピュータ、認証コンピュータまたは任意の他の好適なシステムとの通信に使用されてもよい。アクセス端子は、概して、小売業者の位置など、任意の好適な位置に配置することができる。アクセス端子は、任意の好適な形態であり得る。アクセス端子の一部の例には、販売時点（例えば、ＰＯＳ）端末、携帯電話、ＰＤＡ、パーソナルコンピューター（ＰＣ）、タブレットＰＣ、手持ち式専用リーダ、セットトップボックス、電子キャッシュレジスタ（ＥＣＲ）、現金自動預入支払い機（ＡＴＭ）、仮想キャッシュレジスタ（ＶＣＲ）、キオスク、セキュリティシステム、アクセスシステムおよび類似のものを含む。アクセス端子は、任意の好適な接触または非接触動作モードを使用して、ユーザのモバイルデバイスとの間でデータ、またはモバイルデバイスに関連付けられたデータの送受信を行うことができる。アクセス端子がＰＯＳ端末を含んでもよい一部の実施形態では、任意の好適なＰＯＳ端末を使用でき、端末はリーダと、プロセッサと、コンピュータ可読媒体とを含むことができる。リーダは、任意の好適な接触または非接触動作モードを含むことができる。例えば、例示的なカードリーダは、決済デバイスおよび／またはモバイルデバイスと対話するために、無線周波数（ＲＦ）アンテナ、光学スキャナ、バーコードリーダまたは磁気ストライプリーダを含み得る。一部の実施形態では、ＰＯＳ端末として用いられる携帯電話、タブレット、または他の専用無線デバイスは、モバイル販売時点情報管理端末、または「ｍＰＯＳ」端末と称され得る。
【００２３】
「アクセスネットワーク」は、アクセス端末に関連付けられたネットワークを指しうる。アクセスネットワークは、いくつかの必要な機能を提供することによってアクセス端末をサポートするデバイスのアレイを含み得る。例えば、アクセスネットワークは、アクセス端末の代わりにモバイルデバイスの集合体と通信するように設計されたアンテナまたはビーコン（Ｗｉ−Ｆｉまたはブルートゥースビーコンなど）のアレイであってもよい。アクセスネットワークは、ローカルエリアネットワーク、ワイドエリアネットワーク、または携帯電話ネットワークまたはインターネットなどのネットワークを含み得る。
【００２４】
「生体認証インスタンス」という用語は、生物学的観察に関連する情報を含み得る。生体認証インスタンスは、生体認証サンプルに対応する生体認証データ、または生体認証サンプルまたは生体認証データから導出された生体認証テンプレートを含み得る。生体認証インスタンスは、ユーザの身元を検証するために使用できる。生体認証インスタンスは、生体認証インスタンスのキャプチャに使用されるハードウェアである生体認証インタフェースを介してキャプチャされ得る。例えば、生体認証インスタンスは、赤外線光源およびカメラを備える虹彩スキャナなどの生体認証インタフェースを介してキャプチャされてもよい。生体認証インスタンスの例には、虹彩スキャンのデジタル表現（虹彩を表すバイナリコードなど）、指紋、音声記録、顔スキャンなどが含まれる。生体認証インスタンスは、暗号化された形式で、および／またはモバイルデバイスのセキュアメモリに格納され得る。
【００２５】
「暗号鍵」という用語は、暗号化または復号で使用されるものを指すことができる。たとえば、暗号鍵は、二つの大きな素数の積を参照できる。暗号鍵は、ＲＳＡやＡＥＳなどの暗号化プロセスや暗号システムの入力として機能し、平文を暗号化して暗号文出力を生成する、または暗号文を復号して平文出力を生成するために使用することができる。
【００２６】
「平文」という用語は、平易な形式の文を指すことができる。例えば、平文は、「こんにちは、元気ですか。」といった句など、人間やコンピュータが何も処理せずに読める文を指すことができる。また、暗号化されていない形式のテキストを指す場合もある。数字やその他の記号も平文と見なされる場合がある。
【００２７】
「暗号文」という用語は、暗号化された形式である文を指すことができる。例えば、これは、人間またはコンピュータが理解できるようになる前に復号する必要があるテキストを指すことができる。暗号文は、ＲＳＡやＡＥＳなど、任意の数の暗号化アルゴリズムで生成できる。
【００２８】
「アクワイアラ」は通常、特定の小売業者または他の事業体とのビジネス関係を有するビジネス事業体（例えば、商業銀行）とすることができる。一部の事業体は、発行人およびアクワイアラの両方の機能を実行することができる。一部の実施形態は、こうした単一事業体の発行人アクワイアラを含み得る。アクワイアラは、総称的に「輸送コンピュータ」とも呼ばれ得る、アクワイアラコンピュータを操作し得る。
【００２９】
「承認事業体」は、要求を認可する事業体とすることができる。承認事業体の例は、発行人、政府機関、文書保管所、アクセス管理者などを含み得る。「発行人」は通常、ユーザ用のアカウントを保持するビジネス事業体（例えば、銀行）を指し得る。発行人はまた消費者に対して、携帯電話、スマートカートカード、タブレット、またはラップトップなどのモバイルデバイスに格納された支払証明書を発行することができる。承認事業体は、承認コンピュータを操作できる。
【００３０】
「認証データ」は、あるものが真実かつ有効であることを証明するのに適した任意のデータを含み得る。認証データは、ユーザまたはユーザによって操作される装置から取得することができる。ユーザから取得される認証データの例として、ＰＩＮ（個人識別番号）、パスワードなどを含みうる。モバイルデバイスから取得することができる認証データの例として、デバイスのシリアル番号、ハードウェアセキュリティ要素識別子、デバイスの指紋、電話番号、ＩＭＥＩ番号、モバイルデバイスに格納された生体認証インスタンスなどを含み得る。
【００３１】
「決済デバイス」には、小売業者に支払証明書を提供するなど、金融取引を実施するために使用できる任意の適切なデバイスが含まれ得る。決済デバイスは、ソフトウェアオブジェクト、ハードウェアオブジェクト、または物理的オブジェクトであってもよい。物理的オブジェクトの例として、この決済デバイスは、紙またはプラスチックのカードなどの基板および印刷された、エンボス化された、符号化されたあるいはその他の方法で物体にまたはその表面近くに含まれた情報を含むことができる。ハードウェアオブジェクトは、回路（例えば、永久電圧値）に関連し得、ソフトウェアオブジェクトは、デバイス上に格納された非永久データに関連し得る。決済デバイスは、貨幣価値、割引、またはストアクレジットなどの価値と関連付けられてもよく、決済デバイスは、銀行、小売業者、支払処理ネットワーク、または人などの事業体に関連付けられてもよい。決済デバイスは、支払取引をするために使用することができる。好適な決済デバイスは、それがユーザの財布および／またはポケットに収まることができるように（例えば、ポケットサイズの）、手持ち式でかつコンパクトであり得る。決済デバイスの例としては、スマートカード、磁気ストライプカード、キーチェーンデバイス（Ｅｘｘｏｎ−Ｍｏｂｉｌ  Ｃｏｒｐ．市販のＳｐｅｅｄ−ｐａｓｓ（商標）など）等が挙げられる。モバイルデバイスのその他の例には、ポケットベル、支払カード、セキュリティカード、アクセスカード、スマートメディア、トランスポンダなどが含まれる。決済デバイスがデビット、クレジット、またはスマートカードの形態である場合、決済デバイスは、磁気ストライプなどの機能も随意に有し得る。このようなデバイスは、接触非接触の両方のモードで動作し得る。実施形態によっては、モバイルデバイスは、決済デバイスとして機能することができる（例えば、モバイルデバイスは、取引に対する支払証明書を格納し、送信することができる）。
【００３２】
「証明書」とは、価値、所有権、身元、または権限の信頼できる証拠として機能する任意の適切な情報であり得る。「アクセス証明書」は、特定のリソース（例えば、物品、サービス、場所など）へのアクセスを得るために使用できる証明書であってもよい。証明書は、数字、文字、またはその他の任意の適切な記号の列、または確認の役目を果たすことができる任意のオブジェクトまたは文書であってもよい。証明書の例には、ＩＤカード、認証文書、アクセスカード、パスコードおよびその他のログイン情報、支払口座番号、アクセスバッジ番号、支払トークン、アクセストークンなどが含まれる。
【００３３】
「支払証明書」には、口座に関連付けられた任意の適切な情報（例えば、支払口座、および／または口座に関連付けられた決済デバイス）が含まれ得る。そのような情報は、口座に直接関係してもよく、または口座に関係する情報に由来してもよい。口座情報の例として、ＰＡＮ（主口座番号または「口座番号」）、ユーザ名、有効期限、ＣＶＶ（カード検証値）、ｄＣＶＶ（動的カード検証値）、ＣＶＶ２（カード検証値２）などが挙げられ得る。支払証明書は、支払口座を識別する、または支払口座に関連付けられる任意の情報であり得る。支払証明書は、支払口座から支払いを行うために提供され得る。支払証明書は、ユーザ名、有効期限、ギフトカード番号またはコード、および任意の他の適切な情報を含むこともできる。
【００３４】
「トークン」は、本物の証明書の置換値であってもよい。トークンは、一種の証明書であってもよく、数字、文字、またはその他の任意の適切な記号の列であってもよい。トークンの例には、支払トークン、アクセストークン、個人識別トークンなどが含まれる。
【００３５】
「支払トークン」は、主口座番号（ＰＡＮ）などの口座識別子の代替である支払口座のための識別子を含むことができる。例えば、トークンは、元の口座識別子の代替として使用することができる、ひと続きの英数字を含んでもよい。例えば、トークン「４９００  ００００  ００００  ０００１」を、ＰＡＮ「４１４７  ０９００  ００００  １２３４」の代わりに使用してもよい。実施形態によっては、トークンは、「形式保存」であってもよく、既存の取引処理ネットワークで使用される口座識別子に準拠する数値形式（例えば、ＩＳＯ８５８３金融取引メッセージ形式）を有することができる。一部の実施形態では、トークンは、支払取引を開始、認可、決済もしくは解決するように、または元の証明書が通常提供されるであろう他のシステムで元の証明書を表すように、ＰＡＮの代わりに使用されてもよい。一部の実施形態では、トークン値は、元のＰＡＮ、またはトークン値からの他の口座識別子の回復が、計算上導き出されないように生成されてもよい。さらに、一部の実施形態では、トークン形式は、トークンを受け取る事業体が、それをトークンとして識別し、トークンを発行した事業体を認識することが可能になるように構成されてもよい。
【００３６】
「承認要求メッセージ」は、取引のための承認を要求するために送信される電子メッセージとすることができる。一部の実施形態では、「承認要求メッセージ」は、支払処理ネットワークおよび／または支払カードの発行人へ送信されて、取引のための承認を要求する電子メッセージであってもよい。一部の実施形態による承認要求メッセージは、決済デバイスまたは支払口座を使用する消費者によりなされる支払いと関連付けられた、電子取引情報を交換するシステムの標準である、ＩＳＯ８５８３に準拠することができる。承認要求メッセージは、決済デバイスまたは支払口座と関連付けられてもよい、発行人口座識別子を含んでもよい。承認要求メッセージはまた、単に例として、サービスコード、ＣＶＶ（カード検証値）、ｄＣＶＶ（動的カード検証値）、有効期限などを含む、「識別情報」に対応する追加のデータ要素を含むことができる。承認要求メッセージはまた、取引を識別および／または承認するかの判定に利用されてもよい、いかなる他の情報だけでなく、取引額、小売業者識別子、小売業者所在地など、現在の取引と関連付けられた、任意の情報などの「取引情報」を含んでもよい。
【００３７】
「承認応答メッセージ」は、承認要求メッセージに応答する電子メッセージとすることができる。電子メッセージは、発行金融機関または支払処理ネットワークによって生成される場合がある。承認応答メッセージは、単に例として、次の状態指標のうちの一つ以上を含んでもよい。認可―取引が認可された。拒否―取引が認可されなかった。または、コールセンター―応答はより多くの情報を保留中で、小売業者は、フリーダイヤルの承認電話番号に電話する必要がある。承認応答メッセージはまた、承認コードを含んでもよく、クレジットカード発行銀行が、承認要求メッセージに応じて、小売業者のアクセスデバイス（例えば、ＰＯＳ機器）に、取引の許可を示す電子メッセージ（直接または支払処理ネットワークを介してのいずれか）の中で返信するコードであってもよい。コードは、承認の証明として役割を果たし得る。上述の通り、一部の実施形態では、支払処理ネットワークは、承認応答メッセージを生成してもよく、または承認応答メッセージを小売業者に転送してもよい。
【００３８】
「デバイスコード」または「デバイス識別子」は、デバイス（例えば、一つのデバイスのみ）と特に関連付けられたコードであってもよい。デバイスコードは、セキュア要素識別子（ＳＥ  ＩＤ）、ＩＭＥＩ番号、電話番号、地理的位置、デバイスのシリアル番号、デバイスの指紋などのうちの一つ以上を含むがこれに限定されない、任意のデバイス固有の情報から派生することができる。こうしたコードは、ハッシュ化および／または暗号化を含む任意の適切な数学的演算を使用して、こうした情報から派生しうる。デバイスコードは、任意の適切な数および／またはタイプの記号を含み得る。
【図面の簡単な説明】
【００３９】
【図１】図１は、本発明のいくつかの実施形態による、例示的なシステムのブロック図を示す。
【図２】図２は、いくつかの実施形態による例示的な第一のコンピュータのブロック図を示す。
【図３】図３は、いくつかの実施形態による例示的な第二のコンピュータのブロック図を示す。
【図４】図４は、いくつかの実施形態による、二つのベクトルのスカラー積を計算し、相互作用を実施する方法のフローチャートの概要を示す。
【図５】図５は、いくつかの実施形態による、二つのベクトルのスカラー積を計算する方法の一部である、セットアップ段階のフローチャートを示す。
【図６】図６は、いくつかの実施形態による、二つのベクトルのスカラー積を計算する方法の一部である中間計算段階のフローチャートを示す。
【図７】図７は、いくつかの実施形態による、二つのベクトルのスカラー積を計算する方法の一部である、スカラー積計算段階のフローチャートを示す。
【図８】図８は、第一のコンピュータのユーザとリソースプロバイダとの間の支払取引を含む、第一の例示的な相互作用を示す。
【図９】図９は、第一のコンピュータのユーザとリソースプロバイダとの間の建物入場認証プロセスを含む、第二の例示的な相互作用を示す。
【発明を実施するための形態】
【００４０】
実施形態は、二つのベクトルのスカラー積を計算するためのプライバシー保護方法およびシステムを対象とするため、ベクトルに関する簡単なプライマーは、実施形態をよりよく理解するために有用であり得る。
【００４１】
ベクトルという用語は、科学全体を通して異なる意味を持つが、一般的にベクトルは、構成要素の順序付けられたリストを指す。一部の事例では、ベクトルはまた、対の大きさおよび角度または方向として表され得る。たとえば、ベクトル（北１マイル、西１マイル）は、空間の第一の点と、空間の第二の点の間の直線経路が、正確に第一の点から１マイル北と１マイル西であることを表す。このベクトルは、代わりに（大きさ１．４１４マイル、方向４５度）として表されてもよく、ベクトルが１．４１４マイル、北から４５度時計回りに向けられることを表す。どちらの表現も、同じ経路を記述するため、同等である。数学方程式の変数として、ベクトルはしばしば、上部に矢印のある記号で表される。例えば、
【数５】
2021525386.tif 000007
である。ベクトルは、他の変数が従う多くの数学的関係に従う。例えば、類似したベクトルは、互いに加算または減算することができる。
【００４２】
多くの形態のデータをベクトル化することができる、すなわち、ベクトルに変換されるか、またはベクトルによって表され得る。例として、個人の健康統計（例えば、身長、体重、年齢）は、（身長６８インチ（１７２．７ｃｍ）、体重１４０ポンド（６３．５ｋｇ）、年齢２５歳）などのベクトルで表され得る。ベクトル化は、コンピュータによって迅速に実行できるベクトル演算を使用してデータを客観的に比較することができるため、有用である。
【００４３】
例えば、二つのデータのセットを比較する一つの方法は、各データのセットをベクトル化し、二つのベクトル間の角度を判定することである。同様のベクトルは、それらの間に小さな角度を有するが、異なるベクトルは、それらの間に大きな角度を有する。二つの同一ベクトル間の角度（例えば、（北１マイル、西０マイル）と（北１マイル、西０マイル））はゼロであるが、二つの直交ベクトル（例えば、（北１マイル、西０マイル）と（北０マイル、西１マイル））の角度は、それらの間が９０度であり、二つの逆向きのベクトル（例えば、（北１マイル、西０マイル）と（南１マイル、西０マイル））は、それらの間が１８０度である。二つのベクトル化されたデータのセットの間の角度（例えば、第一の人に対応する健康統計および第二の人に対応する健康統計）、または二つのベクトル化されたデータのセットの間の角度の三角関数（例えば、コサイン）は、それらの二つのデータのセットの間の類似性または相違性を評価するために、類似性または相違性メトリックとして使用することができる。
【００４４】
同様に、スカラー積などのベクトル演算を使用して、二つのベクトル間の類似性または相違性を評価することができる。二つのベクトルのスカラー積は、第一のベクトルの各構成要素に第二のベクトルの対応する構成要素を乗じ、結果を合計することによって計算することができる。すなわち、
【００４５】
【数６】
2021525386.tif 000008
である。
【００４６】
例として、
【数７】
2021525386.tif 000009
と
【数８】
2021525386.tif 000010
のスカラー積は、以下に等しい。
【００４７】
【数９】
2021525386.tif 000011
【００４８】
スカラー積は、他の理由の中でも、以下の等式によって示されるように、二つのベクトル間の角度に比例するため、有用であり、
【００４９】
【数１０】
2021525386.tif 000012
【００５０】
式中、
【数１１】
2021525386.tif 000013
はベクトル
【数１２】
2021525386.tif 000014
の大きさ（すなわち、「サイズ」）であり、
【数１３】
2021525386.tif 000015
はベクトル
【数１４】
2021525386.tif 000016
の大きさであり、θは二つのベクトル間の角度である。したがって、二つのベクトル化されたデータのセットのスカラー積を使用して、これらのデータのセット間の類似性または相違性を判定することができる。
【００５１】
ベクトル化は、生体認証などのデータの比較を簡素化または加速するために使用できる。一例では、キャプチャされた生体認証は、生体認証に対応する人を識別または認証するために、データベースに格納された生体認証または生体認証テンプレートと比較され得る。一例として、指紋採取がある。指紋採取では、人の指紋の画像がキャプチャされ（生体認証）、指紋データベースに格納されている指紋と比較されて、その人を識別する。キャプチャされた指紋および指紋データベースに格納された指紋がベクトル化された場合、キャプチャされたベクトル化された指紋とデータベースに格納されたベクトル化された指紋のスカラー積を計算するなどのベクトル演算を使用して、キャプチャされた指紋が指紋データベースに格納された指紋のセットと一致するかどうかを判定することができる。
【００５２】
生体認証または生体認証テンプレートのベクトル化の正確な方法は、本開示の範囲外である。しかしながら、例示的な生体認証がどのようにベクトル化され得るかを説明するために、以下の例が提供される。
【００５３】
虹彩コード（典型的には、虹彩認識を実行するために使用され得る２５６バイトを含む生体認証）は、２５６個の構成要素を有するベクトルに変換することによってベクトル化することができ、各構成要素は対応する虹彩コードの１バイトに対応する。代替として、虹彩コードを、対応する虹彩コードのうちの１ビットを各々含む２０４８個の構成要素を含むバイナリベクトルに、または代替で、各々が対応する虹彩コードの２バイトに対応する、１２８個の構成要素を有するベクトルに変換することができる。虹彩コードなどの生体認証をベクトルに変換することができ、その他の生体認証（例えば、指紋、顔スキャンなど）を同様の方法を使用してベクトルに変換することができる方法は多数存在する。
【００５４】
生体認証、ベクトル化、その他の方法での比較には多くの方法や技術があるが、被験者のプライバシーを保護することを指向する技術はほとんどない。例として、指紋スキャンを受ける場合、通常は、指紋をデータベースに格納されている指紋と比較するために、その指紋（生体認証）を事業体（例えば、法執行機関）に提供する必要がある。ただし、これにより、人はなりすましのリスクにさらされる。不正行為者は、正当な事業体になりすますことで、一見正当な認証要求の一部として、その人の生体認証を要求することができる（例えば、電子メールのフィッシング攻撃を介して）。不正行為者は、これらの生体認証を使用して、なりすましの手口の一部としてその人になりすます。
【００５５】
しかしながら、本開示の実施形態は、二つの事業体（例えば、ユーザおよびリモートサーバに属するスマートフォンなどの二つのコンピュータ）について、どちらの事業体もそのそれぞれの生体認証を他方の事業体に明らかにせずに二つのベクトル（例えば、二つのベクトル化された生体認証）のスカラー積を計算する方法を提供する。そのため、リモートサーバは、人の生体認証自体を実際に受け取ることなく、人の生体認証が生体認証データベースに格納されている生体認証と一致するかどうかを判定できる。これにより、情報セキュリティの確実な向上がもたらされ、上記のようななりすまし手口の防止策が講じられる。
【００５６】
実施形態は、Ｐａｉｌｌｉｅｒ暗号などの暗号システムを使用して、付加的準同型暗号化を使用してこれを達成する。付加的準同型暗号化により、参加している事業体は、最初にデータを復号することなく、暗号化されたデータの合計を計算できる。特に、Ｐａｉｌｌｉｅｒ暗号では、二つの暗号文（すなわち、暗号化されたデータ）の積は、対応する平文の暗号化された合計と等しくなる。
【００５７】
【数１５】
2021525386.tif 000017
【００５８】
本開示の実施形態は、この特性を利用して、二つのコンピュータが、ベクトルの構成要素が暗号化されている間に、二つのベクトルのスカラー積を計算することを可能にする。ベクトルの復号に使用される秘密鍵は、それぞれの事業体によってのみ知られている（すなわち、第一のコンピュータは第二のコンピュータには未知の秘密鍵を知っていて、その逆も同様である）ため、各事業体は、他の事業体がそのベクトルを知ることを妨げることができると同時に、その二つのベクトルのスカラー積を計算することができる。
【００５９】
図１は、第一のコンピュータ１０２、第二のコンピュータ１０４、リソースプロバイダコンピュータ１０６、およびユーザ１０８を含む、例示的なシステム１００のブロック図を示す。システム１００のコンピュータは、一つ以上の通信ネットワークを介して互いに動作可能に通信してもよい。
【００６０】
通信ネットワークは、任意の好適な形態を取ることができ、直接相互接続、インターネット、ローカルエリアネットワーク（ＬＡＮ）、メトロポリタンエリアネットワーク（ＭＡＮ）、インターネット上のノードとしての運用ミッション（Ｏｐｅｒａｔｉｎｇ  Ｍｉｓｓｉｏｎｓ  ａｓ  Ｎｏｄｅｓ  ｏｎ  ｔｈｅ  Ｉｎｔｅｒｎｅｔ（ＯＭＮＩ））、セキュリティ保護カスタム接続（ａ  ｓｅｃｕｒｅｄ  ｃｕｓｔｏｍ  ｃｏｎｎｅｃｔｉｏｎ）、ワイドエリアネットワーク（ＷＡＮ）、（例えば、無線アプリケーションプロトコル（ＷＡＰ）、Ｉ−モード、および／または同様のもののプロトコルを使用するがそれに限定されない）無線ネットワークおよび／または同様のもののうちのいずれか一つならびに／あるいはそれらの組み合わせであってもよい。事業体、プロバイダー、ユーザ、デバイス、コンピュータ、およびネットワーク間のメッセージは、ファイル転送プロトコル（ＦＴＰ）、ハイパーテキスト転送プロトコル（ＨＴＴＰ）、セキュアハイパーテキスト転送プロトコル（ＨＴＴＰＳ）、セキュアソケットレイヤー（ＳＳＬ）、ＩＳＯ（ＩＳＯ  ８５８３など）および／または同様のものなどであるがこれらに限定されない安全な通信プロトコルを使用して送信されうる。
【００６１】
実施形態による方法は、第一のコンピュータ１０２および第二のコンピュータ１０４が、それぞれがそれぞれのベクトルまたは計算されたスカラー積を他のコンピュータに明らかにすることなく、第一のベクトル１０２Ａおよび第二のベクトル１０４Ａのスカラー積を計算することを可能にする。図４〜図７を参照して後述する一連の段階を通して、第一のコンピュータ１０２および第二のコンピュータ１０４は、第一のコンピュータ１０２および第二のコンピュータ１０４が第一のベクトル１０２Ａおよび第二のベクトル１０４Ａのスカラー積を同時に計算することを可能にする情報を準備および交換することができる。第一のコンピュータ１０２および第二のコンピュータ１０４はそれぞれ、計算されたスカラー積またはスカラー積から導出された値（例えば、二つのベクトル間の角度）を、所定の閾値と同時に比較することができる。スカラー積から導出された値のスカラー積が所定の閾値を超える場合、第一のコンピュータ１０２および第二のコンピュータ１０４は、互いに相互作用を実行し得る。この相互作用はさらに、リソースプロバイダコンピュータ１０６を所有または操作し得るリソースプロバイダを含むことができる。
【００６２】
例示的な相互作用は、図８および図９を参照して以下により詳細に記述される。一般に、スカラー積またはスカラー積から導出された値を所定の閾値と比較することは、認証手順の一部として実施されてもよく、認証が成功した場合（すなわち、スカラー積またはスカラー積から導出された値が所定の閾値を超える）、相互作用が行われてもよい。例えば、第一のベクトル１０２Ａが、ユーザ１０８に対応する第一のコンピュータ１０２（例えば、ユーザ１０８によって所有されるスマートフォン）に格納された生体認証ベクトルであり、第二のベクトル１０４Ａが、第二のコンピュータ１０４に格納されたユーザ１０８に対応する生体認証ベクトル（例えば、ユーザ１０８に対応するファイル上の生体認証ベクトル）である場合、第一のベクトル１０２Ａと第二のベクトル１０４Ａのスカラー積を使用してユーザ１０８を認証してもよい。ユーザ１０８が認証されると、ユーザ１０８と小売業者（すなわち、リソースプロバイダコンピュータ１０６を操作するリソースプロバイダ）との間の支払取引などの相互作用が行われることができる。
【００６３】
図２は、いくつかの実施形態による例示的な第一のコンピュータ２００を示す。具体的には、図２は、モバイルデバイス（例えば、スマートフォン）としての第一のコンピュータ２００を示す。しかしながら、第一のコンピュータ２００は、用語セクションで上記に定義された任意の適切な通信デバイスなど、多くの形態を取りうることが理解されるべきである。
【００６４】
第一のコンピュータ２００は、無線通信またはテレフォニーなどの特定のデバイス機能を有効にするために使用される回路を含みうる。これらの機能を有効にするための機能要素は、デバイスの機能および動作を実行する命令を実行できるプロセッサ２０２を含んでもよい。プロセッサ２０２は、命令を実行するために使用される命令またはデータを取得するためデータストレージ２１０（または別の適切なメモリ領域または要素）にアクセスできる。キーボードまたはタッチスクリーンなどのデータ入力／出力要素２０６は、ユーザが第一のコンピュータ２００を操作することを可能にするために使用され得る（例えば、ユーザがモバイルウォレットアプリケーション２１４に移動することを可能にする）。データ入力／出力２０６はまた、（例えば、スピーカーを介して）データを出力するように構成され得る。ディスプレイ２０４はまた、ユーザにデータを出力するために使用することもできる。通信要素２０８は、第一のコンピュータ２００と有線または無線ネットワーク（例えば、アンテナ２２４を介して）の間のデータ転送を可能にし、データ転送機能を可能にするために使用されてもよく、インターネットまたは他のネットワークへの接続を支援するためにしようされてもよい。第一のコンピュータ２００はまた、非接触素子２２２とデバイスの他の素子との間のデータ転送を可能にする非接触素子インタフェース２２０を含んでもよい。非接触素子２２２は、セキュアメモリおよび近距離通信データ転送素子（または別の形態の短距離通信技術）を含み得る。前述のように、携帯電話、スマートフォン、ウェアラブルデバイス、ラップトップコンピュータ、またはその他の類似のデバイスは、モバイルデバイスの例であり、それによって実施形態に従い第一のコンピュータの例である。
【００６５】
データストレージ２１０は、通信モジュール２１２、モバイルウォレットアプリケーション２１４、生体認証アプリケーション２１６、およびスカラー積計算モジュール２１８などのいくつかのソフトウェアモジュールも含みうるコンピュータ可読媒体を備えてもよい。
【００６６】
通信モジュール２１２は、プロセッサ２０２が、第一のコンピュータ２００と、他のモバイルデバイス、アクセス端末、または第二のコンピュータなどの他のデバイスとの間の通信を実施または可能にできるコードを含み得る。通信モジュール２１２は、ＴＣＰ、ＵＤＰ、ＩＳ−ＩＳ、ＯＳＰＦ、ＩＧＲＰ、ＥＩＧＲＰ、ＲＩＰ、ＢＧＰなどの任意の適切なプロトコルに従って通信を許容し得る。それは、プロセッサ２０２が、第一のコンピュータ２００と他のデバイスとの間の安全なまたは暗号化された通信チャネルを確立できるようにすることによって、安全な通信を可能にし得る。例えば、通信モジュール２１２は、モバイルデバイス２００と別のデバイスとの間のキー交換（ディフィー・ヘルマン鍵交換など）を実行するために、プロセッサ２０２によって実行可能なコードを含み得る。通信モジュール２１２はさらに、暗号化または暗号化されていないベクトルおよび暗号鍵の送信を可能にすることに加えて、支払トークンを含むアクセストークンをアクセス端末などの他のデバイスに送信することを許可し得る。
【００６７】
モバイルウォレットアプリケーション２１４は、第一のコンピュータ２００がトークンを管理できるようにするコードを含み得る。例えば、モバイルウォレットアプリケーション２１４は、プロセッサ２０２が非接触素子インタフェース２２０を介してセキュアメモリ２２２に格納されたアクセストークンを取得できるようにするコードを含み得る。モバイルウォレットアプリケーション２１４は、アクセストークンがプロビジョニングされた日時、アクセストークンのエイリアスまたは識別子、アクセストークンが関与する直近の相互作用または取引の日時など、任意の適切なトークン情報を第一のコンピュータ２００が表示できるようにするコードをさらに含み得る。さらに、モバイルウォレットアプリケーション２１４は、プロセッサ２０２が、ユーザがトークン関連機能を有効化できるようにするグラフィカルユーザインタフェース（ＧＵＩ）を表示することを可能にするコードを含み得る。さらに、モバイルウォレットアプリケーション２１４は、第一のコンピュータ２００が、例えば、小売業者との取引中に、トークンをアクセス端末に送信することを可能にするコードを含み得る。
【００６８】
生体認証アプリケーション２１６は、第一のコンピュータ２００がデータ入力／出力２０６を介して生体認証インスタンスをキャプチャすることを可能にするコードを含んでもよい。例えば、登録プロセス（以下により詳細に説明される図４からの登録段階４０２など）の間、第一のコンピュータ２００は、カメラなどのデータ入力／出力要素２０６を使用して、顔スキャンなどの生体認証インスタンスをキャプチャするために使用されてもよい。生体認証アプリケーション２１６を使用して、この生体認証インスタンスをキャプチャし、暗号化または暗号化されていない形態のいずれかで、セキュアメモリ２２０上に生体認証インスタンスを格納してもよい。生体認証アプリケーション２１６は、さらに、プロセッサ２０２によって実行可能なコードまたは命令を含んで、生体認証インスタンスをベクトル化し、すなわち、これらの生体認証インスタンスに対応する生体認証ベクトルを生成してもよい。生体認証アプリケーション２１６はまた、プロセッサ２０２によって実行可能な、生体認証ベースの取引システムなどの生体認証ベースの相互作用システムに参加するためのコードまたは命令を含んでもよい。これらのコードまたは命令は、アクセス端末と通信し、生体認証ベクトルをアクセス端末に送信するなどの機能を実行するためのコードを含み得る。
【００６９】
スカラー積計算モジュール２１８は、いくつかの実施形態による、二つのベクトルのスカラー積のプライバシー保護計算を実行するためプロセッサ２０２によって実行可能なコードまたは命令を含み得る。これらの方法は、以下の図４〜７を参照してより良く理解され得る。コードまたは命令は、中でも、図４〜７を参照して以下に記載されるように、乱数またはランダムベクトルの生成、マスクされたベクトルの生成、プライベート暗号鍵（Ｐａｉｌｌｉｅｒ鍵などの付加的準同型暗号鍵を含む）の生成、ベクトルの暗号化および復号、ネゲーションベクトルの生成、差分ベクトルの、置換、二乗の大きさの計算、および二つのベクトルのスカラー積の計算を含み得る。
【００７０】
図３は、本開示のいくつかの実施形態による例示的な第二のコンピュータ３００を示す。第二のコンピュータ３００は、プロセッサ３０２、通信インタフェース３０４、およびコンピュータ可読媒体３０６を備えてもよい。コンピュータ可読媒体３０６は、特に、通信モジュール３０８、登録モジュール３１０、スカラー積計算モジュール３１２、相互作用モジュール３１４、およびベクトルデータベース３１６を含む複数のソフトウェアモジュールを備えてもよい。
【００７１】
プロセッサ３０２は、上記の用語セクションに記載の任意の適切な処理装置またはデバイスであってもよい。通信インタフェース３０４は、第二のコンピュータ３００が、インターネットなどのネットワークを介して他のコンピュータまたはシステム（例えば、第一のコンピュータ）と通信することを可能にするネットワークインタフェースを備えてもよい。
【００７２】
通信モジュール３０８は、第二のコンピュータ３００と第一のコンピュータを含む他の事業体との間の通信を確立するために、プロセッサ３０２によって実行可能なコードまたはソフトウェアを備えてもよい。例として、通信モジュール３０８は、ＵＤＰ（ユーザデータグラムプロトコル）またはＴＣＰ（伝送制御プロトコル）パケット、あるいは任意の他の適切な形態のネットワーク通信の生成を可能にするコードを備え得る。第二のコンピュータ３００は、通信モジュール３０８を使用して、第一のコンピュータなどの事業体からデータを送受信し得る。これらのデータには、以下の図４の第一の伝送段階４０６および第二の伝送段階４０８を参照して説明されるように、暗号化された、置換された、またはその他の方法のベクトル、および暗号鍵が含まれ得る。
【００７３】
登録モジュール３１０は、ユーザ（例えば、図１のユーザ１０８）が、生体認証ベクトル認証システムなどのベクトルベースの認証システムに登録することを可能にするコードを含み得る。実施形態に従う一部の方法では、登録は任意であってもよい。したがって、登録モジュール３１０は、同様に任意であってもよい。登録モジュール３１０は、第二のコンピュータ３００が、ユーザまたは第一のコンピュータに対応する生体認証ベクトルを、ユーザまたはユーザに対応する識別子のＩＤに関連付けることを可能にするコードを含み得る。例えば、登録モジュール３１０は、第二のコンピュータ３００が虹彩スキャンに対応する生体認証ベクトルをユーザ「Ｊｏｈｎ  Ｄｏｅ」に関連付けることを可能にするコードを含み得る。登録モジュール３１０は、第二のコンピュータ３００が生体認証データベース３１６の「Ｊｏｈｎ  Ｄｏｅ」に対応する識別子と関連して、例示的な生体認証ベクトルを保存できるようにするコードを追加的に含み得る。後に、「Ｊｏｈｎ  Ｄｏｅ」に対応する第一のコンピュータ（例えば、Ｊｏｈｎのスマートフォン）および第二のコンピュータ３００は、Ｊｏｈｎ  Ｄｏｅを認証し、相互作用を実行するために、生体認証データベース３１８に格納された生体認証ベクトルおよび第一のコンピュータに格納された生体認証ベクトルのプライバシー保護スカラー積計算を実行することができる。
【００７４】
スカラー積計算モジュール３１２は、いくつかの実施形態による、プライバシー保護スカラー積計算を実行するために、プロセッサ３０２によって実行可能なコードを含み得る。プライバシー保護スカラー積計算は、図４〜７のフローチャートを参照してより良く理解され得る。スカラー積計算モジュール３１２は、ベクトルの合計、ベクトル間の相違性、およびベクトルの大きさまたは二乗の大きさを計算するために使用される数学的演算に加えて、以下に記述されるように、ランダムなベクトル、マスクされたベクトル、暗号鍵、置換されたベクトルなどの生成を可能にするコードを含み得る。
【００７５】
相互作用モジュール３１４は、第一のコンピュータとの相互作用を実行するためにプロセッサ３０２によって実行可能なコードを備えてもよい。この相互作用は、例えば、第一のコンピュータまたは第一のコンピュータに関連付けられたユーザがリソースにアクセスすることができるように、第一のコンピュータをリソースプロバイダに認証することを含み得る。例えば、リソースプロバイダは、小売業者であってもよく、リソースは、顧客が購入を希望する商品またはサービスであってもよく、第一のコンピュータは、顧客が所有するスマートフォンであってもよく、第二のコンピュータ３００は、支払処理ネットワークに関連付けられたサーバコンピュータであってもよい。相互作用は、ユーザと小売業者との間の支払トランザクションを成立させることを含んでもよく、相互作用モジュール３１４は、ユーザと小売業者との間の支払取引を成立させるようにプロセッサ３０２によって実行可能なコードを含んでもよい。
【００７６】
第二の例示的な相互作用として、リソースプロバイダは、ロックされたコンピュータ化されたドアを介して建物へのアクセスを制御するコンピュータシステムであってもよい。第一のコンピュータと第二のコンピュータ３００との間の相互作用は、例えば、リソースプロバイダのコンピュータにドアを開くように指示する制御信号を送ることによって、または、リソースプロバイダのコンピュータがドアを開くように、第一のコンピュータに第一のコンピュータがリソースプロバイダのコンピュータに提供し得るアクセストークンまたは別の証明書を提供することによって、第一のコンピュータの所有者が建物にアクセスすることを可能にする第二のコンピュータを備えてもよい。
【００７７】
ベクトルデータベース３１６は、ベクトルを含む任意の適切なデータベース、ファイル、またはメモリ構造を備えてもよい。これらのベクトルは、例えば、複数の登録ユーザに対応する生体認証ベクトルを含み得る。第二のコンピュータ３００は、そのベクトルと第一のコンピュータに対応する別のベクトルのスカラー積を計算するために、ベクトルデータベース３１６からベクトルを取得してもよい。
【００７８】
図４は、いくつかの実施形態による、第一のベクトル
【数１６】
2021525386.tif 000018
および第二のベクトル
【数１７】
2021525386.tif 000019
のスカラー積を計算する方法４００のフローチャート概要を示す。方法は、登録段階４０２、セットアップ段階４０４、第一の伝送段階４０６、中間計算段階４０８、第二の伝送段階４１０、スカラー積計算段階４１２、および相互作用段階４１４の七つの段階に分けられる。
【００７９】
登録段階４０２は任意であってもよく、すなわち、一部の実施形態では、登録段階４０２が実施されてもよく、他の実施形態では、登録段階４０２は実施されなくてもよい。登録段階４０２の特徴は、第一のベクトル
【数１８】
2021525386.tif 000020
および第二のベクトル
【数１９】
2021525386.tif 000021
の特徴、ならびに相互作用段階４１４で実施される相互作用の性質に依存し得る。
【００８０】
一例として、ベクトルは生体認証インスタンスに対応してもよく、二つのベクトルのスカラー積は二つの生体認証インスタンス間の類似性に対応してもよい。したがって、スカラー積は、二つの生体認証インスタンスが確実性の十分な程度（例えば、７５％一致、９５％一致、９９％一致など）に一致するかどうかを判定するために計算され得る。この場合、登録段階４０２は、生体認証登録プロセスを含んでもよい。この生体認証登録プロセスは、例えば、登録ユーザから生体認証をキャプチャすること（例えば、ユーザの虹彩の画像をキャプチャすること、親指または指紋スキャンを実行することなどによって）、キャプチャされた生体認証を変換すること（例えば、虹彩コードまたは生体認証のその他の適切なデジタル表現に）、および生体認証インスタンスを安全に格納すること（例えば、第一のコンピュータ上のセキュア要素および／または第二のコンピュータ上の安全なデータベース内に）を含みうる。
【００８１】
上述のように、登録段階４０２の特徴は、相互作用段階４１４および相互作用の特徴に依存しうる。一例として、図４の方法４００は、支払いを行うための生体認証承認システムに適用され得る。第一のベクトル
【数２０】
2021525386.tif 000022
として表される顧客の生体認証インスタンスは、第二のベクトル
【数２１】
2021525386.tif 000023
として表される顧客の生体認証インスタンスと比較され、支払処理サーバに格納され得る。生体認証ベクトルが一致する場合（第一のベクトルおよび第二のベクトルのスカラー積に基づいて判定される）、支払処理サーバは、顧客を認証し、顧客と小売業者との間の取引（すなわち、相互作用段階４１４の相互作用）を許可することができる。この場合、相互作用が取引であるため、登録段階４０２は、支払証明書（ＰＡＮなど）を、支払処理サーバー（第二のコンピュータ）に格納された生体認証ベクトル（第二のベクトル
【数２２】
2021525386.tif 000024
）と関連付けることをさらに含んでもよい。この例では、登録段階４０２は、ユーザまたは消費者がユーザのＰＡＮなどの情報をウェブフォームに記入することをさらに含み、次に、それを暗号化し、第二のベクトル
【数２３】
2021525386.tif 000025
に関連付けられて格納できるように第二のコンピュータに送信してもよい。
【００８２】
しかしながら、上述のように、いくつかの実施形態では、登録段階４０２は任意であってもよい。これは、第一のコンピュータおよび第二のコンピュータが、第一のベクトル
【数２４】
2021525386.tif 000026
および第二のベクトル
【数２５】
2021525386.tif 000027
をそれぞれ外部ソースから（例えば、生体認証キャプチャを介して）受信する必要がない実施形態で生じ得る。例えば、第一のベクトル
【数２６】
2021525386.tif 000028
は、ユーザのスマートフォンのＧＰＳから判定されるユーザの位置を表してもよく、第二のベクトル
【数２７】
2021525386.tif 000029
は、ユーザが移動しようとしているカフェなどのビジネスの位置を表してもよい。したがって、第一のコンピュータは、ユーザのスマートフォンを備えてもよく、第二のコンピュータは、ナビゲーションまたはマッピングサービスに関連付けられたサーバコンピュータを備えてもよい。二つのベクトルのスカラー積は、ユーザがカフェに移動するのを助けるために、ユーザのスマートフォンによって使用され得る。ユーザの位置ベクトルはＧＰＳデータから推測でき、ナビゲーションサービスはすでにカフェの位置を知っている場合があるため、登録段階４０２を実施する必要はない場合がある。
【００８３】
セットアップ段階４０４は、図５を参照するとより良く理解できる。一般に、セットアップ段階は、任意のデータが第一のコンピュータと第二のコンピュータとの間で送信される前に行われ得るステップを含み得る。
【００８４】
図５は、実施形態による方法のセットアップ段階の間に実施されるステップのフローチャートを示す。添字Ａは、一般的には、第一のコンピュータによって生成または使用されるベクトルまたは値を指し、一方で、添字Ｂは、一般的には、第二のコンピュータによって生成または使用されるベクトル、値、または暗号鍵を指すことに留意するのが有用であり得る。
【００８５】
ステップ５０２Ａで、第一のコンピュータは、第一のベクトル
【数２８】
2021525386.tif 000030
を安全に取得することができる。いくつかの実施形態では、第一のコンピュータは、ユーザに関連付けられたスマートフォンであってもよい。これらの実施形態では、第一のコンピュータは、（例えば、図２の非接触素子インタフェース２２０を使用して）第一のコンピュータのセキュア要素から第一のベクトル
【数２９】
2021525386.tif 000031
を取得することができる。
【００８６】
同様に、ステップ５０２Ｂで、第二のコンピュータは、第二のベクトル
【数３０】
2021525386.tif 000032
を安全に取得することができる。いくつの実施形態では、第二のコンピュータは、何らかの形態の認証事業体（例えば、政府機関または支払処理ネットワークに関連付けられた支払処理サーバ）に関連付けられたリモートサーバコンピュータであってもよい。第二のコンピュータは、安全なまたは暗号化されたデータベースから第二のベクトル
【数３１】
2021525386.tif 000033
を安全に取得できる。
【００８７】
いくつかの実施形態では、第一のベクトル
【数３２】
2021525386.tif 000034
および第二のベクトル
【数３３】
2021525386.tif 000035
は、生体認証ベクトルであってもよく、すなわち、第一のベクトル
【数３４】
2021525386.tif 000036
および第二のベクトル
【数３５】
2021525386.tif 000037
は、第一の生体認証テンプレートおよび第二の生体認証テンプレート（例えば、虹彩コード、指紋のデジタル表現、音声サンプル、ＤＮＡセグメントなど）に対応してもよい。第一のベクトル
【数３６】
2021525386.tif 000038
および第二のベクトル
【数３７】
2021525386.tif 000039
は、等しい長さであってもよく、すなわち、同じ数の構成要素を有してもよい。
【００８８】
ステップ５０４Ａで、第一のコンピュータは、第一のランダムなベクトル
【数３８】
2021525386.tif 000040
を生成してもよい。第一のランダムなベクトル
【数３９】
2021525386.tif 000041
は、暗号的に安全な擬似ランダムな数値発生器（ＣＳＰＲＮＧ）の使用を含む、任意の適切な手段に従って生成され得る。第一のランダムなベクトル
【数４０】
2021525386.tif 000042
は、第一のベクトル
【数４１】
2021525386.tif 000043
と同じ長さであってもよく、すなわち、第一のベクトル
【数４２】
2021525386.tif 000044
と第一のランダムなベクトル
【数４３】
2021525386.tif 000045
は、同じ数の構成要素を有してもよい。例えば、第一のベクトル
【数４４】
2021525386.tif 000046
が、２５６個の１バイトの構成要素を含むベクトル化された虹彩コードを含む場合、第一のランダムなベクトル
【数４５】
2021525386.tif 000047
は、２５６個のランダムに生成されたバイトを含んでもよい。
【００８９】
同様に、ステップ５０４Ｂで、第二のコンピュータは第二のランダムなベクトル
【数４６】
2021525386.tif 000048
を生成してもよい。第二のランダムなベクトル
【数４７】
2021525386.tif 000049
は、ＣＳＰＲＮＧの使用を含む任意の適切な手段を使用して同様に生成されてもよい。第二のランダムなベクトル
【数４８】
2021525386.tif 000050
は、第二のベクトル
【数４９】
2021525386.tif 000051
と同じ長さであってもよく、すなわち、第二のベクトル
【数５０】
2021525386.tif 000052
と第二のランダムなベクトル
【数５１】
2021525386.tif 000053
は、同じ数の構成要素を有してもよい。
【００９０】
ステップ５０６Ａで、第一のコンピュータは、第一のベクトル
【数５２】
2021525386.tif 000054
と第一のランダムなベクトル
【数５３】
2021525386.tif 000055
を組み合わせることによって、第一のマスクされたベクトル
【数５４】
2021525386.tif 000056
を生成することができる。いくつかの実施形態では、第一のマスクされたベクトル
【数５５】
2021525386.tif 000057
は、第一のベクトル
【数５６】
2021525386.tif 000058
と第一のランダムなベクトル
【数５７】
2021525386.tif 000059
との合計と等しくてもよい。
【００９１】
【数５８】
2021525386.tif 000060
【００９２】
同様に、ステップ５０６Ｂで、第二のコンピュータは、第二のベクトル
【数５９】
2021525386.tif 000061
と第二のランダムなベクトル
【数６０】
2021525386.tif 000062
を組み合わせることによって第二のマスクされたベクトル
【数６１】
2021525386.tif 000063
を生成できる。いくつかの実施形態では、第二のマスクされたベクトル
【数６２】
2021525386.tif 000064
は、第二のベクトル
【数６３】
2021525386.tif 000065
と第二のランダムなベクトル
【数６４】
2021525386.tif 000066
の合計と等しくてもよい。
【００９３】
【数６５】
2021525386.tif 000067
【００９４】
ステップ５０８Ａで、第一のコンピュータは、第一の公開鍵ＰｂＡと第一の秘密鍵ＰｒＡとを含む第一のキーペアを生成できる。第一の公開鍵ＰｂＡは、暗号化関数ＥＡの使用を可能にしてもよく、第一の秘密鍵ＰｒＡは、復号関数ＤＡの使用を可能にしてもよい。すなわち、第一の公開鍵ＰｂＡで暗号化されたデータ（例えば、ベクトル）は、第一の秘密鍵ＰｒＡで復号され得る。
【００９５】
ステップ５１０Ａで、第一のコンピュータは、第二の公開鍵Ｐｂ’Ａおよび第二の秘密鍵Ｐｒ’Ａを含む第二のキーペアを生成できる。第二の公開鍵Ｐｂ’Ａは、暗号化関数Ｅ’Ａの使用を可能にしてもよく、第二の秘密鍵Ｐｒ’Ａは、復号関数Ｄ’Ａの使用を可能にしてもよい。すなわち、第二の公開鍵Ｐｂ’Ａで暗号化されたデータ（例えば、ベクトル）は、第二の秘密鍵Ｐｒ’Ａで復号され得る。
【００９６】
同様に、ステップ５０８Ｂで、第二のコンピュータは、第三の公開鍵ＰｂＢおよび第三の秘密鍵ＰｒＢを含む第三のキーペアを生成できる。第三の公開鍵ＰｂＢは、暗号化関数ＥＢの使用を可能にしてもよく、第三の秘密鍵ＰｒＢは、復号関数ＤＢの使用を可能にしてもよい。すなわち、第三の公開鍵ＰｂＢで暗号化されたデータ（例えば、ベクトル）は、第三の秘密鍵ＰｒＢで復号され得る。
【００９７】
同様に、ステップ５１０Ｂで、第二のコンピュータは、第四の公開鍵Ｐｂ’Ｂおよび第四の秘密鍵Ｐｒ’Ｂを含む第四のキーペアを生成できる。第四の公開鍵Ｐｂ’Ｂは、暗号化関数Ｅ’Ｂの使用を可能にしてもよく、第四の秘密鍵Ｐｒ’Ｂは、復号関数Ｄ’Ｂの使用を可能にしてもよい。すなわち、第四の公開鍵Ｐｂ’Ｂで暗号化されたデータ（例えば、ベクトル）は、第四の秘密鍵Ｐｒ’Ｂで復号され得る。
【００９８】
実施形態によっては、第一の公開鍵ＰｂＡ、第一の秘密鍵ＰｒＡ、第二の公開鍵Ｐｂ’Ａ、第二の秘密鍵Ｐｒ’Ａ、第三の公開鍵ＰｂＢ、第三の秘密鍵ＰｒＢ、第四の公開鍵Ｐｂ’Ｂ、および第四の秘密鍵Ｐｒ’Ｂは、Ｐａｉｌｌｉｅｒ暗号鍵などの付加的準同型暗号鍵であってもよい。
【００９９】
これらの暗号キーペアの生成は、使用される暗号システムの性質によって異なる。次の暗号キーペアを生成する方法の例は、Ｐａｉｌｌｉｅｒ暗号の使用に対応する。第一に、第一のコンピュータまたは第二のコンピュータは、最大公約数ｐｑおよび（ｐ−１）（ｑ−１）が１であるように、二つの大きな素数ｐおよびｑをランダムかつ独立して選択できる。第二に、第一のコンピュータまたは第二のコンピュータは、
【数６６】
2021525386.tif 000068
および
【数６７】
2021525386.tif 000069
を計算でき、式中、ｌｃｍは、最小公倍数を決定するために使用される関数である。第三に、第一のコンピュータまたは第二のコンピュータは、
【数６８】
2021525386.tif 000070
であるように、ランダムな整数ｇを生成できる。第四に、第一のコンピュータまたは第二のコンピュータは、
【数６９】
2021525386.tif 000071
を計算することができる。（暗号化に使用される）公開鍵は、ペア（ｎ、ｇ）であり、一方、（復号に使用される）秘密鍵は、ペア（λ、μ）である。このプロセスは、生成されるキーの数に基づいて繰り返されることができ、例えば、第一のコンピュータは、第一の公開鍵ＰｂＡ、第一の秘密鍵ＰｒＡ、第二の公開鍵Ｐｂ’Ａ、および第二の秘密鍵Ｐｒ’Ａを生成するためにこのプロセスを二回繰り返すことができ、第二のコンピュータは、第三の公開鍵ＰｂＢ、第三の秘密鍵ＰｒＢ、第四の公開鍵Ｐｂ’Ｂ、および第四の秘密鍵Ｐｒ’Ｂを生成するために、プロセスを二回繰り返すことができる。
【０１００】
ステップ５１２Ａで、第一のコンピュータは、第一の公開鍵ＰｂＡを使用して第一のマスクされたベクトル
【数７０】
2021525386.tif 000072
を暗号化することによって、第一の暗号化されたマスクされたベクトル
【数７１】
2021525386.tif 000073
を生成することができる。
【０１０１】
同様に、ステップ５１４Ａで、第一のコンピュータは、第二の公開鍵Ｐｂ’Ａを使用して第一のランダムなベクトル
【数７２】
2021525386.tif 000074
を暗号化することによって、第一の暗号化されたランダムなベクトル
【数７３】
2021525386.tif 000075
を生成することができる。
【０１０２】
ステップ５１２Ｂで、第二のコンピュータは、第三の公開鍵ＰｂＢを使用して第二のマスクされたベクトル
【数７４】
2021525386.tif 000076
を暗号化することによって、第二の暗号化されたマスクされたベクトル
【数７５】
2021525386.tif 000077
を生成できる。
【０１０３】
同様に、ステップ５１４Ｂで、第二のコンピュータは、第四の公開鍵Ｐｂ’Ｂを使用して第二のランダムなベクトル
【数７６】
2021525386.tif 000078
を暗号化することによって、第二の暗号化されたランダムなベクトル
【数７７】
2021525386.tif 000079
を生成できる。
【０１０４】
概して、本開示の実施形態では、暗号化されたベクトルは、ベクトルの各構成要素が暗号化されるベクトルを指す。たとえば、第一の暗号化されたマスクされたベクトル
【数７８】
2021525386.tif 000080
の場合、
【０１０５】
【数７９】
2021525386.tif 000081
【０１０６】
図４に戻ると、セットアップ段階４０４に続くのは、第一の伝送段階４０６である。第一の送信段階４０６では、第一のコンピュータおよび第二のコンピュータは、データを互いに送信することができる。このデータは、その後の中間計算段階４０８およびスカラー積計算段階４１２で使用することができる。
【０１０７】
より具体的には、第一の伝送段階４０６では、第一のコンピュータは、第二のコンピュータに、第一の公開鍵ＰｂＡ、第二の公開鍵Ｐｂ’Ａ、第一の暗号化されたマスクされたベクトル
【数８０】
2021525386.tif 000082
および第一の暗号化されたランダムなベクトル
【数８１】
2021525386.tif 000083
を送信することができ、第一の暗号化されたマスクされたベクトル
【数８２】
2021525386.tif 000084
は、第一の公開鍵ＰｂＡを使用して暗号化された第一のマスクされたベクトル
【数８３】
2021525386.tif 000085
であり、第一の暗号化されたランダムなベクトル
【数８４】
2021525386.tif 000086
は、第二の公開鍵Ｐｂ’Ａを使用して暗号化された第一のランダムなベクトル
【数８５】
2021525386.tif 000087
である。
【０１０８】
さらに、第一の伝送段階４０６は、第二のコンピュータから、第三の公開鍵ＰｂＢ、第四の公開鍵Ｐｂ’Ｂ、第二の暗号化されたマスクされたベクトル
【数８６】
2021525386.tif 000088
および第二の暗号化されたランダムなベクトル
【数８７】
2021525386.tif 000089
を受信する第一のコンピュータを備えてもよく、第二の暗号化されたマスクされたベクトルは
【数８８】
2021525386.tif 000090
第三の公開鍵ＰｂＢを使用して暗号化された第二のマスクされたベクトル
【数８９】
2021525386.tif 000091
であり、第二の暗号化されたランダムなベクトルは、第四の公開鍵Ｐｂ’Ｂを使用して暗号化された第二のランダムなベクトル
【数９０】
2021525386.tif 000092
である。
【０１０９】
これらのデータ（すなわち、第一の公開鍵ＰｂＡ、第二の公開鍵Ｐｂ’Ａ、第三の公開鍵ＰｂＢ、第四の公開鍵Ｐｂ’Ｂ、第一の暗号化されたマスクされたベクトル
【数９１】
2021525386.tif 000093
第二の暗号化されたマスクされたベクトル
【数９２】
2021525386.tif 000094
第一の暗号化されたランダムなベクトル
【数９３】
2021525386.tif 000095
および第二の暗号化されたランダムなベクトル
【数９４】
2021525386.tif 000096
は、任意の適切な形態で任意の適切なネットワークを介して送信され得る。例えば、これらのデータは、ＵＤＰまたはＴＣＰパケットなどのデータパケットでインターネットなどのネットワークを介して送信され得る。
【０１１０】
第一の伝送段階４０６の後、第一のコンピュータおよび第二のコンピュータ４０８は、図６を参照するとより良く理解され得る、中間計算段階４０８に進むことができる。
【０１１１】
図６は、実施形態による方法の中間計算段階の間に実施されるステップのフローチャートを示す。
【０１１２】
ステップ６０２Ａで、第一のコンピュータは、第一のネゲーションベクトル
【数９５】
2021525386.tif 000097
を生成することができる。第一のネゲーションベクトル
【数９６】
2021525386.tif 000098
は、第一のベクトルのネゲーション
【数９７】
2021525386.tif 000099
を含んでもよく、すなわち、第一のネゲーションベクトル
【数９８】
2021525386.tif 000100
の各構成要素は、第一のベクトル
【数９９】
2021525386.tif 000101
の対応する構成要素の負の値と等しくてもよい。例えば、第一のベクトル
【数１００】
2021525386.tif 000102
の場合、第一のネゲーションベクトルは、
【数１０１】
2021525386.tif 000103
である。
【０１１３】
同様に、ステップ６０２Ｂで、第二のコンピュータは、第二のネゲーションベクトル
【数１０２】
2021525386.tif 000104
を生成することができる。第二のネゲーションベクトル
【数１０３】
2021525386.tif 000105
は、第二のベクトル
【数１０４】
2021525386.tif 000106
のネゲーションを含んでもよく、すなわち、第二のネゲーションベクトル
【数１０５】
2021525386.tif 000107
の各構成要素は、第二のベクトル
【数１０６】
2021525386.tif 000108
の対応する構成要素の負の値と等しくてもよい。例えば、第二のベクトル
【数１０７】
2021525386.tif 000109
の場合、第二のネゲーションベクトルは、
【数１０８】
2021525386.tif 000110
である。
【０１１４】
ステップ６０４Ａで、第一のコンピュータは、第三の公開鍵ＰｂＢを使用して第一のネゲーションベクトル
【数１０９】
2021525386.tif 000111
を暗号化することによって、第一の暗号化されたネゲーションベクトル
【数１１０】
2021525386.tif 000112
を生成することができる。第三の公開鍵ＰｂＢは、セットアップ段階（図４のセットアップ段階４０４）の間に第二のコンピュータによって以前に生成され、第一の伝送段階（図４の第一の伝送段階４０６）の間に第一のコンピュータに送信された可能性がある。
【０１１５】
ステップ６０６Ａで、第一のコンピュータは、第二の暗号化されたマスクされたベクトル
【数１１１】
2021525386.tif 000113
および第一の暗号化されたネゲーションベクトル
【数１１２】
2021525386.tif 000114
に基づいて、第一の暗号化された差分ベクトル
【数１１３】
2021525386.tif 000115
を生成することができる。第二の暗号化されたマスクされたベクトル
【数１１４】
2021525386.tif 000116
は、第一の伝送段階の間に第一のコンピュータによって第二のコンピュータから受信されていてもよい。いくつかの実施形態では、第一のコンピュータは、第一の暗号化された差分ベクトル
【数１１５】
2021525386.tif 000117
を生成するために、付加的準同型暗号化の特性を利用してもよい。これにより、第一のコンピュータは、第二の暗号化されたマスクされたベクトル
【数１１６】
2021525386.tif 000118
を第一に復号することなく、第一の暗号化された差分ベクトル
【数１１７】
2021525386.tif 000119
を生成できてもよい。
【０１１６】
たとえば、Ｐａｉｌｌｉｅｒ暗号では、一般に、二つの暗号文ｃとｄの積が、対応する平文の暗号化された合計と等しい。すなわち、
【０１１７】
【数１１８】
2021525386.tif 000120
【０１１８】
結果として、第一のコンピュータは、第二の暗号化されたマスクされたベクトル
【数１１９】
2021525386.tif 000121
の各構成要素に、第一の暗号化されたネゲーションベクトル
【数１２０】
2021525386.tif 000122
の対応する構成要素を乗じることによって、第一の暗号化された差分ベクトル
【数１２１】
2021525386.tif 000123
を生成することができる。
【０１１９】
【数１２２】
2021525386.tif 000124
【０１２０】
【数１２３】
2021525386.tif 000125
【０１２１】
【数１２４】
2021525386.tif 000126
【０１２２】
【数１２５】
2021525386.tif 000127
【０１２３】
ステップ６０８Ａで、第一のコンピュータは、第四の公開鍵Ｐｂ’Ｂを使用して第一のネゲーションベクトル
【数１２６】
2021525386.tif 000128
を暗号化することによって、第二の暗号化されたネゲーションベクトル
【数１２７】
2021525386.tif 000129
を生成することができる。第四の公開鍵Ｐｂ’Ｂは、セットアップ段階中に第二のコンピュータによって生成され、第一の伝送段階の間に第一のコンピュータに送信された可能性がある。
【０１２４】
ステップ６１０Ａで、第一のコンピュータは、第二の暗号化されたランダムなベクトル
【数１２８】
2021525386.tif 000130
および第二の暗号化されたネゲーションベクトル
【数１２９】
2021525386.tif 000131
に基づいて、第二の暗号化された差分ベクトル
【数１３０】
2021525386.tif 000132
を生成することができる。第二の暗号化されたランダムなベクトル
【数１３１】
2021525386.tif 000133
は、第一の伝送段階の間に第二のコンピュータから受信されていてもよい。いくつかの実施形態では、第一のコンピュータは、第二の暗号化された差分ベクトル
【数１３２】
2021525386.tif 000134
を生成するために、付加的準同型暗号化の特性を利用してもよい。これは、ステップ６０６Ａで第一の暗号化された差分ベクトルを生成するために使用されたのと同様の一連のステップまたは演算を使用して達成することができる。すなわち、第二の暗号化されたランダムなベクトル
【数１３３】
2021525386.tif 000135
の各暗号化された構成要素に、第二の暗号化されたネゲーションベクトル
【数１３４】
2021525386.tif 000136
の対応する構成要素を乗じる。
【０１２５】
【数１３５】
2021525386.tif 000137
【０１２６】
【数１３６】
2021525386.tif 000138
【０１２７】
【数１３７】
2021525386.tif 000139
【０１２８】
【数１３８】
2021525386.tif 000140
【０１２９】
ステップ６０４Ｂで、第二のコンピュータは、第一の公開鍵ＰｂＡを使用して第二のネゲーションベクトル
【数１３９】
2021525386.tif 000141
を暗号化することによって、第三の暗号化されたネゲーションベクトル
【数１４０】
2021525386.tif 000142
を生成することができる。第一の公開鍵ＰｂＡは、セットアップ段階の間に第一のコンピュータによって生成され、第一の伝送段階の間に第二のコンピュータに送信された可能性がある。
【０１３０】
ステップ６０６Ｂで、第二のコンピュータは、第一の暗号化されたマスクされたベクトル
【数１４１】
2021525386.tif 000143
および第三の暗号化されたネゲーションベクトル
【数１４２】
2021525386.tif 000144
に基づいて、第三の暗号化された差分ベクトル
【数１４３】
2021525386.tif 000145
を生成することができる。第二のコンピュータは、第一の伝送段階の間に、第一のコンピュータから第一の暗号化されたマスクされたベクトル
【数１４４】
2021525386.tif 000146
を受信していてもよい。いくつかの実施形態では、第二のコンピュータは、第三の暗号化された差分ベクトル
【数１４５】
2021525386.tif 000147
を生成するために、付加的準同型暗号化の特性を利用してもよい。これは、ステップ６０６Ａで第一の暗号化された差分ベクトルを生成するために使用されたのと同様の一連のステップまたは演算を使用して達成することができる。すなわち、第一の暗号化されたマスクされたベクトル
【数１４６】
2021525386.tif 000148
の各暗号化された構成要素と、第三の暗号化されたネゲーションベクトル
【数１４７】
2021525386.tif 000149
の対応する暗号化された構成要素と、を乗じる。
【０１３１】
【数１４８】
2021525386.tif 000150
【０１３２】
【数１４９】
2021525386.tif 000151
【０１３３】
【数１５０】
2021525386.tif 000152
【０１３４】
【数１５１】
2021525386.tif 000153
【０１３５】
ステップ６０８Ｂで、第二のコンピュータは、第二の公開鍵Ｐｂ’Ａを使用して第二のネゲーションベクトル
【数１５２】
2021525386.tif 000154
を暗号化することによって、第四の暗号化されたネゲーションベクトル
【数１５３】
2021525386.tif 000155
を生成できる。第二の公開鍵Ｐｂ’Ａは、セットアップ段階の間に第一のコンピュータによって以前に生成され、第一の伝送段階の間に第二のコンピュータに送信された可能性がある。
【０１３６】
ステップ６１０Ｂで、第二のコンピュータは、第一の暗号化されたランダムなベクトル
【数１５４】
2021525386.tif 000156
および第四の暗号化されたネゲーションベクトル
【数１５５】
2021525386.tif 000157
に基づいて、第四の暗号化された差分ベクトル
【数１５６】
2021525386.tif 000158
を生成することができる。第二のコンピュータは、第一の伝送段階の間に、第一のコンピュータから第一の暗号化されたランダムなベクトルを受信していてもよい。いくつかの実施形態では、第二のコンピュータは、第四の暗号化された差分ベクトル
【数１５７】
2021525386.tif 000159
を生成するために、付加的準同型暗号化の特性を利用してもよい。これは、ステップ６０６Ｂで第三の暗号化された差分ベクトルを生成するために使用された同様の一連のステップまたは演算を使用して達成され得る。すなわち、第二の暗号化されたランダムなベクトル
【数１５８】
2021525386.tif 000160
の各暗号化された構成要素に、第二の暗号化されたネゲーションベクトル
【数１５９】
2021525386.tif 000161
の対応する暗号化された構成要素を乗じる。
【０１３７】
【数１６０】
2021525386.tif 000162
【０１３８】
【数１６１】
2021525386.tif 000163
【０１３９】
【数１６２】
2021525386.tif 000164
【０１４０】
【数１６３】
2021525386.tif 000165
【０１４１】
ステップ６１２Ａで、第一のコンピュータは、第一の置換πＡ１および第二の置換πＡ２を生成することができる。上述のように、置換は、一組のまたは複数の物を順序付けまたは配置できる方法である。置換は、置換に従って何かを「置換」するために使用されてもよく、置換はベクトルとして表されてもよい。一例として、置換
【数１６４】
2021525386.tif 000166
は、三つの構成要素を含むベクトルについて、第三の構成要素が第一の位置に位置されるべきであり、第一の構成要素が第二の位置に位置されるべきであり、第二の構成要素が第三の位置に位置されるべきであることを示し得る。例えば、ベクトル
【数１６５】
2021525386.tif 000167
に適用される置換
【数１６６】
2021525386.tif 000168
は、置換されたベクトル
【数１６７】
2021525386.tif 000169
をもたらすことができる。
【０１４２】
第一のコンピュータは、任意の数の方法で第一の置換πＡ１および第二の置換πＡ２を生成できる。例として、第一のコンピュータは、アルゴリズム（例えば、フィッシャーイェーツのシャッフルなど）を使用して、順序付けられた配列（すなわち、（１、２、．．．、ｎ））をシャッフルしてもよい。シャッフルされた順序付けられた配列は、第一の置換πＡ１として使用できる。第一のコンピュータは、同様のプロセスを使用して第二の置換を生成し、順序付けられた配列を二回シャッフルし、結果を第二の置換πＡ２として使用することができる。第一の置換πＡ２および第二の置換πＡ２は、第一のベクトル
【数１６８】
2021525386.tif 000170
と同じ数の構成要素を有してもよい。
【０１４３】
ステップ６１２Ｂで、第二のコンピュータは、第三の置換πＢ１および第四の置換πＢ２を生成することができる。第一の置換πＡ１および第二の置換πＡ２を参照して上述したように、第三の置換πＢ１および第四の置換πＢ２は、例えば、フィッシャーイェーツなどのシャッフリングアルゴリズムを使用して、順序付けられた配列をシャッフルするなど、任意の数の方法で生成することができる。
【０１４４】
ステップ６１４Ａで、第一のコンピュータは、第一の置換πＡ１および第一の暗号化された差分ベクトル
【数１６９】
2021525386.tif 000171
を使用して、第一の置換された暗号化された差分ベクトル
【数１７０】
2021525386.tif 000172
を生成することができる。第一のコンピュータは、第一の置換πＡ１を使用して第一の暗号化された差分ベクトル
【数１７１】
2021525386.tif 000173
を置換することによって、第一の置換された暗号化された差分ベクトル
【数１７２】
2021525386.tif 000174
を生成してもよい。すなわち、第一の置換πＡ１を第一の暗号化された差分ベクトル
【数１７３】
2021525386.tif 000175
に適用する。これは、第一の置換πＡ１の値または構成要素をインデックスとして使用して、第一の暗号化された差分ベクトル
【数１７４】
2021525386.tif 000176
を再順序付けすることによって達成され得る。上記で使用した例を繰り返すために、ベクトル
【数１７５】
2021525386.tif 000177
に適用される置換
【数１７６】
2021525386.tif 000178
は、置換されたベクトル
【数１７７】
2021525386.tif 000179
をもたらすことができる。同様に、第一の暗号化された差分ベクトル
【数１７８】
2021525386.tif 000180
に適用される第一の置換πＡ１は、第一の置換された暗号化された差分ベクトル
【数１７９】
2021525386.tif 000181
をもたらすことができる。
【０１４５】
ステップ６１６Ａで、第一のコンピュータは、第二の置換πＡ２と第二の暗号化された差分ベクトル
【数１８０】
2021525386.tif 000182
を使用して、第二の置換された暗号化された差分ベクトル
【数１８１】
2021525386.tif 000183
を生成することができる。これは、ステップ６１４Ａを参照して上述したのと実質的に同じ方法で達成され得る。すなわち、第一のコンピュータは、第二の置換πＡ２を使用して第二の暗号化された差分ベクトル
【数１８２】
2021525386.tif 000184
の構成要素を再順序付けすることができ、第二の置換された暗号化された差分ベクトル
【数１８３】
2021525386.tif 000185
を生成する。
【０１４６】
ステップ６１４Ｂで、第二のコンピュータは、第三の置換πＢ１および第三の暗号化された差分ベクトル
【数１８４】
2021525386.tif 000186
を使用して、第三の置換された暗号化された差分ベクトル
【数１８５】
2021525386.tif 000187
を生成できる。これは、ステップ６１４Ａおよび６１６Ａを参照して上述したのと実質的に同じ方法で達成することができる。すなわち、第二のコンピュータは、第三の置換πＢ１を使用して、第三の暗号化された差分ベクトル
【数１８６】
2021525386.tif 000188
の構成要素を再順序付けして第三の置換された暗号化された差分ベクトル
【数１８７】
2021525386.tif 000189
を生成することができる。
【０１４７】
ステップ６１６Ｂで、第二のコンピュータは、第四の置換πＢ２および第四の暗号化された差分ベクトル
【数１８８】
2021525386.tif 000190
を使用して第四の置換された暗号化された差分ベクトル
【数１８９】
2021525386.tif 000191
を生成できる。これは、ステップ６１４Ａ、６１４Ｂ、および６１６Ａを参照して上述したのと実質的に同じ方法で達成され得る。すなわち、第二のコンピュータは、第四の置換πＢ２を使用して、第四の暗号化された差分ベクトル
【数１９０】
2021525386.tif 000192
の構成要素を再順序付けして、第四の置換された暗号化された差分ベクトル
【数１９１】
2021525386.tif 000193
を生成することができる。
【０１４８】
当然のことながら、いくつかの実施形態では、中間計算段階の間に実施されるいくつかのステップは、代わりに、より早いまたは後の段階で実施され得る。例として、第一の置換πＡ１、第二の置換πＡ１、第三の置換πＢ１、および第四の置換πＢ２は、セットアップ段階（図４のセットアップ段階４０４）の間に生成されてもよい。同様に、第一のネゲーションベクトル
【数１９２】
2021525386.tif 000194
および第二のネゲーションベクトル
【数１９３】
2021525386.tif 000195
も、記載される中間計算段階の間ではなく、セットアップ段階の間に生成されてもよい。
【０１４９】
図４に戻ると、中間計算段階４０８の後、第一のコンピュータおよび第二のコンピュータは、第二の伝送段階４１０を実行し得る。第二の伝送段階４１０では、第一のコンピュータおよび第二のコンピュータは、中間計算段階４０８の間に生成されたデータを互いに送信してもよい。これらのデータは、スカラー積計算段階４１２におけるスカラー積
2021525386.tif 000196
を計算するために、以下に説明するように使用され得る。
【０１５０】
より具体的には、第二の伝送段階４１０では、第一のコンピュータは、第二のコンピュータに、第一の置換された暗号化された差分ベクトル
【数１９４】
2021525386.tif 000197
および第二の置換された暗号化された差分ベクトル
【数１９５】
2021525386.tif 000198
を送信してもよい。同様に、第二の伝送段階４１０では、第一のコンピュータは、第二のコンピュータから、第三の置換された暗号化された差分ベクトル
【数１９６】
2021525386.tif 000199
および第四の置換された暗号化された差分ベクトル
【数１９７】
2021525386.tif 000200
を受信し得、第三の置換された暗号化された差分ベクトル
【数１９８】
2021525386.tif 000201
は、第一の公開鍵ＰｂＡを使用して暗号化され、第三の置換πＢ１を使用して置換され、第四の置換された暗号化された差分ベクトル
【数１９９】
2021525386.tif 000202
は、第二の公開鍵Ｐｂ’Ａを使用して暗号化され、第四の置換πＢ２を使用して置換される。
【０１５１】
第一の伝送段階４０６にあるように、これらのデータ（すなわち、第一の置換された暗号化された差分ベクトル
【数２００】
2021525386.tif 000203
第二の置換された暗号化された差分ベクトル
【数２０１】
2021525386.tif 000204
第三の置換された暗号化された差分ベクトル
【数２０２】
2021525386.tif 000205
および第四の置換された暗号化された差分ベクトル
【数２０３】
2021525386.tif 000206
）は、任意の適切な形態で任意の適切なネットワークを介して送信され得る。例えば、これらのデータは、ＵＤＰまたはＴＣＰパケットなどのデータパケットでインターネットなどのネットワークを介して送信され得る。
【０１５２】
第二の伝送段階４１０の後、第一のコンピュータおよび第二のコンピュータは、スカラー積計算段階４１２に進み得、そこで第一のコンピュータおよび第二のコンピュータは、第一のベクトル
【数２０４】
2021525386.tif 000207
および第二のベクトル
【数２０５】
2021525386.tif 000208
のスカラー積を計算する。スカラー積計算段階４１２は、図７を参照するとより良く理解できる。
【０１５３】
ステップ７０２Ａで、第一のコンピュータは、第一の秘密鍵ＰｒＡを使用して第三の置換された暗号化された差分ベクトル
【数２０６】
2021525386.tif 000209
を復号することによって、第三の置換された差分ベクトル
【数２０７】
2021525386.tif 000210
を生成できる。第一のコンピュータは、第一のマスクされたベクトル
【数２０８】
2021525386.tif 000211
の構成要素の値を知っているが、第三の置換πＢ１は第一のコンピュータにはわからないため、第一のコンピュータは、第二のベクトル
【数２０９】
2021525386.tif 000212
の構成要素の値を決定することはできない。したがって、第二のベクトル
【数２１０】
2021525386.tif 000213
は、第一のコンピュータから保護される。これは、第二のベクトル
【数２１１】
2021525386.tif 000214
に対応する人のプライバシーを維持しうる（例えば、第二のベクトル
【数２１２】
2021525386.tif 000215
が人に対応する生体認証ベクトルである場合）。
【０１５４】
ステップ７０２Ｂで、第二のコンピュータは、第三の秘密鍵ＰｒＢを使用して第一の置換された暗号化された差分ベクトル
【数２１３】
2021525386.tif 000216
を復号することによって、第一の置換された差分ベクトル
【数２１４】
2021525386.tif 000217
を生成できる。第二のコンピュータは、第二のマスクされたベクトル
【数２１５】
2021525386.tif 000218
の構成要素の値を知っているが、第一の置換πＡ１は第二のコンピュータにはわからないため、第二のコンピュータは第一のベクトル
【数２１６】
2021525386.tif 000219
の構成要素の値を決定することはできない。したがって、第一のベクトル
【数２１７】
2021525386.tif 000220
は、第二のコンピュータから保護される。これは、第一のベクトル
【数２１８】
2021525386.tif 000221
に対応する個人のプライバシーを維持しうる（例えば、第一のベクトル
【数２１９】
2021525386.tif 000222
が人に対応する生体認証ベクトルである場合）。
【０１５５】
ステップ７０４Ａで、第一のコンピュータは、第二の秘密鍵Ｐｒ’Ａを使用して第四の置換された暗号化された差分ベクトル
【数２２０】
2021525386.tif 000223
を復号することによって、第四の置換された差分ベクトル
【数２２１】
2021525386.tif 000224
を生成できる。再度、第二のベクトル
【数２２２】
2021525386.tif 000225
は、第一のコンピュータから保護されるが、これは、第一のコンピュータは第一のランダムなベクトル
【数２２３】
2021525386.tif 000226
の構成要素の値を知っているが、第一のコンピュータは第四の置換πＢ２を知らないためである。
【０１５６】
ステップ７０４Ｂで、第二のコンピュータは、第四の秘密鍵Ｐｒ’Ｂを使用して第二の置換された暗号化された差分ベクトル
【数２２４】
2021525386.tif 000227
を復号することによって、第二の置換された差分ベクトル
【数２２５】
2021525386.tif 000228
を生成できる。再度、第一のベクトル
【数２２６】
2021525386.tif 000229
は第二のコンピュータから保護されるが、これは、第二のコンピュータは第二のランダムなベクトル
【数２２７】
2021525386.tif 000230
の構成要素の値を知っているが、第二のコンピュータは第二の置換πＡ２を知らないためである。
【０１５７】
ステップ７０６Ａで、第一のコンピュータは、第一のマスクされたベクトルの二乗の大きさα’を計算することができる。第一のマスクされたベクトルの二乗の大きさα’の値は、それ自体を有する第一のマスクされたベクトル
【数２２８】
2021525386.tif 000231
のスカラー積と等しく、すなわち、
【０１５８】
【数２２９】
2021525386.tif 000232
【０１５９】
第一のコンピュータは、第一のマスクされたベクトル
【数２３０】
2021525386.tif 000233
の各構成要素の値を二乗して、次に、結果として得られる二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って、第一のマスクされたベクトルの二乗の大きさα’を計算してもよい。
【０１６０】
【数２３１】
2021525386.tif 000234
【０１６１】
同様に、ステップ７０６Ｂで、第二のコンピュータは、第二のマスクされたベクトルの二乗の大きさβ’を計算できる。第二のマスクされたベクトルの二乗の大きさβ’の値は、それ自体を有する第二のマスクされたベクトル
【数２３２】
2021525386.tif 000235
のスカラー積と等しい、すなわち、
【０１６２】
【数２３３】
2021525386.tif 000236
【０１６３】
第二のコンピュータは、第二のマスクされたベクトル
【数２３４】
2021525386.tif 000237
の各構成要素の値を二乗して、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って、第二のマスクされたベクトルの二乗の大きさβ’を計算してもよい。
【０１６４】
【数２３５】
2021525386.tif 000238
【０１６５】
ステップ７０８Ａで、第一のコンピュータは、第一のランダムなベクトルの二乗の大きさρＡを計算できる。第一のランダムなベクトルの二乗の大きさρＡの値は、それ自体を有する第一のランダムなベクトル
【数２３６】
2021525386.tif 000239
のスカラー積と等しく、すなわち、
【０１６６】
【数２３７】
2021525386.tif 000240
【０１６７】
第一のコンピュータは、第一のランダムなベクトル
【数２３８】
2021525386.tif 000241
の各構成要素の値を二乗して、次いで、結果として得られる二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って第一のランダムなベクトルの二乗の大きさρＡを計算してもよい。
【０１６８】
【数２３９】
2021525386.tif 000242
【０１６９】
同様に、ステップ７０８Ｂで、第二のコンピュータは、第二のランダムなベクトルの二乗の大きさρＢを計算できる。第二のランダムなベクトルの二乗の大きさρの値は、それ自体を有する第二のランダムなベクトル
【数２４０】
2021525386.tif 000243
のスカラー積と等しく、すなわち、
【０１７０】
【数２４１】
2021525386.tif 000244
【０１７１】
第二のコンピュータは、第二のランダムなベクトル
【数２４２】
2021525386.tif 000245
の各構成要素の値を二乗して、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って第二のランダムなベクトルの二乗の大きさρＢを計算してもよい。
【０１７２】
【数２４３】
2021525386.tif 000246
【０１７３】
ステップ７１０Ａで、第一のコンピュータは、第三の置換された差分ベクトルの二乗の大きさδＡを計算できる。第三の置換された差分ベクトルの二乗の大きさδＡの値は、それ自体を有する第三の置換された差分ベクトル
【数２４４】
2021525386.tif 000247
のスカラー積と等しい、すなわち、
【０１７４】
【数２４５】
2021525386.tif 000248
【０１７５】
第一のコンピュータは、第三の置換された差分ベクトル
【数２４６】
2021525386.tif 000249
の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って、第三の置換された差分ベクトルの二乗の大きさδＡを計算してもよい。
【０１７６】
【数２４７】
2021525386.tif 000250
【０１７７】
同様に、ステップ７１０Ｂで、第二のコンピュータは、第一の置換された差分ベクトルの二乗の大きさδＢを計算できる。第一の置換された差分ベクトルの二乗の大きさδＢの値は、それ自体を有する第一の置換された差分ベクトル
【数２４８】
2021525386.tif 000251
のスカラー積と等しい、すなわち、
【０１７８】
【数２４９】
2021525386.tif 000252
【０１７９】
第二のコンピュータは、第一の置換された差分ベクトル
【数２５０】
2021525386.tif 000253
の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って、第一の置換された差分ベクトルの二乗の大きさδＢを計算してもよい。
【０１８０】
【数２５１】
2021525386.tif 000254
【０１８１】
ステップ７１２Ａで、第一のコンピュータは、第四の置換された差分ベクトルの二乗の大きさσＡを計算できる。第四の置換された差分ベクトルの二乗大きさσＡの値は、それ自体を有する第四の置換された差分ベクトル
【数２５２】
2021525386.tif 000255
のスカラー積と等しく、すなわち、
【０１８２】
【数２５３】
2021525386.tif 000256
【０１８３】
第一のコンピュータは、第四の置換された差分ベクトル
【数２５４】
2021525386.tif 000257
の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第一のコンピュータは、以下の式に従って、第四の置換された差分ベクトルの二乗の大きさσＡを計算してもよい。
【０１８４】
【数２５５】
2021525386.tif 000258
【０１８５】
同様に、ステップ７１２Ｂで、第二のコンピュータは、第二の置換された差分ベクトルの二乗の大きさσＢを計算できる。第二の置換された差分ベクトルの二乗大きさσＢの値は、それ自体を有する第二の置換された差分ベクトル
【数２５６】
2021525386.tif 000259
のスカラー積と等しい、すなわち、
【０１８６】
【数２５７】
2021525386.tif 000260
【０１８７】
第二のコンピュータは、第二の置換された差分ベクトル
【数２５８】
2021525386.tif 000261
の各構成要素の値を二乗し、次いで、結果として得られた二乗を合計してもよく、すなわち、第二のコンピュータは、以下の式に従って、第四の置換された差分ベクトルの二乗の大きさσＢを計算してもよい。
【０１８８】
【数２５９】
2021525386.tif 000262
【０１８９】
ステップ７１４Ａで、第一のコンピュータは、第一のマスクされたベクトルの二乗の大きさα’、第一のランダムなベクトルの二乗の大きさρＡ、第三の置換された差分ベクトルの二乗の大きさδＡ、および第四の置換された差分ベクトルの二乗の大きさσＡに基づいて、第一のベクトル
【数２６０】
2021525386.tif 000263
と第二のベクトル
【数２６１】
2021525386.tif 000264
のスカラー積を計算してもよい。いくつかの実施形態では、第一のコンピュータは、以下の式に基づいて、第一のベクトル
【数２６２】
2021525386.tif 000265
と第二のベクトル
【数２６３】
2021525386.tif 000266
のスカラー積を計算してもよい。
【０１９０】
【数２６４】
2021525386.tif 000267
【０１９１】
同様に、ステップ７１４Ｂで、第二のコンピュータは、第二のマスクされたベクトルの二乗の大きさβ’、第二のランダムなベクトルの二乗の大きさρＢ、第一の置換されたベクトルの二乗の大きさδＢ、および第二の置換されたベクトルの二乗の大きさσＢに基づいて、第一のベクトル
【数２６５】
2021525386.tif 000268
と第二のベクトル
【数２６６】
2021525386.tif 000269
のスカラー積を計算してもよい。いくつかの実施形態では、第二のコンピュータは、以下の式に基づいて、第一のベクトル
【数２６７】
2021525386.tif 000270
と第二のベクトル
【数２６８】
2021525386.tif 000271
のスカラー積を計算してもよい。
【０１９２】
【数２６９】
2021525386.tif 000272
【０１９３】
要約として、第一のベクトル
【数２７０】
2021525386.tif 000273
と第二のベクトル
【数２７１】
2021525386.tif 000274
のスカラー積を計算して、上述のようにスカラー積を正確に計算するため、第一のコンピュータおよび第二のコンピュータによって使用される方法を示すのが有用であり得る。
【０１９４】
定義上、二つのベクトルのスカラー積は、各ベクトルの構成要素の積の合計に等しいことを思い出されたい。
【０１９５】
【数２７２】
2021525386.tif 000275
【０１９６】
上述のように、以下の式に従って、第一のコンピュータは、第一のマスクされたベクトルの二乗の大きさα’、第一のランダムなベクトルの二乗の大きさρＡ、第三の置換されたベクトルの二乗の大きさδＡ、および第四の置換されたベクトルの二乗の大きさσＡを使用して、第一のベクトル
【数２７３】
2021525386.tif 000276
と第二のベクトル
【数２７４】
2021525386.tif 000277
のスカラー積を計算する。
【０１９７】
【数２７５】
2021525386.tif 000278
【０１９８】
繰り返すが、所与のベクトル
【数２７６】
2021525386.tif 000279
の二乗の大きさは、ベクトル
【数２７７】
2021525386.tif 000280
の二乗の構成要素の合計として定義される。
【０１９９】
【数２７８】
2021525386.tif 000281
【０２００】
上記で定義されるように、第三の置換された差分ベクトル
【数２７９】
2021525386.tif 000282
。第三の置換された差分ベクトルの二乗の大きさδＡは、以下のように表され得る。
【０２０１】
【数２８０】
2021525386.tif 000283
【０２０２】
加算の可換特性のため、合計は置換から独立しており、したがって、
【０２０３】
【数２８１】
2021525386.tif 000284
【０２０４】
【数２８２】
2021525386.tif 000285
【０２０５】
【数２８３】
2021525386.tif 000286
【０２０６】
スカラー積および第一のマスクされたベクトルの二乗の大きさα’の定義により、第三の置換された差分ベクトルの二乗の大きさδＡは、さらに以下に表すことができる。
【０２０７】
【数２８４】
2021525386.tif 000287
【０２０８】
同様の論法を使用して、第四の置換された差分ベクトルσＡを次のように表現できる。
【０２０９】
【数２８５】
2021525386.tif 000288
【０２１０】
【数２８６】
2021525386.tif 000289
【０２１１】
【数２８７】
2021525386.tif 000290
【０２１２】
【数２８８】
2021525386.tif 000291
【０２１３】
【数２８９】
2021525386.tif 000292
【０２１４】
【数２９０】
2021525386.tif 000293
【０２１５】
【数２９１】
2021525386.tif 000294
【０２１６】
スカラー積の式に戻り、第三の置換された差分ベクトルの二乗の大きさδＡと第四の置換された差分ベクトルの二乗の大きさσＡの式を置換する。
【０２１７】
【数２９２】
2021525386.tif 000295
【０２１８】
【数２９３】
2021525386.tif 000296
【０２１９】
類似の条件でグループ化する
【０２２０】
【数２９４】
2021525386.tif 000297
【０２２１】
【数２９５】
2021525386.tif 000298
【０２２２】
第一のマスクされたベクトル
【数２９６】
2021525386.tif 000299
は、第一のベクトル
【数２９７】
2021525386.tif 000300
と第一のランダムなベクトル
【数２９８】
2021525386.tif 000301
の合計と等しいことを思い出されたい。
【０２２３】
【数２９９】
2021525386.tif 000302
【０２２４】
スカラー積の式は、以下のように簡略化できる。
【０２２５】
【数３００】
2021525386.tif 000303
【０２２６】
【数３０１】
2021525386.tif 000304
【０２２７】
【数３０２】
2021525386.tif 000305
【０２２８】
これは、第一のコンピュータが、第一のベクトル
【数３０３】
2021525386.tif 000306
と第二のベクトル
【数３０４】
2021525386.tif 000307
のスカラー積を計算するのに使用する式の精度を示す。
【０２２９】
同様に、第二のコンピュータは、第二のマスクされたベクトルの二乗の大きさβ’、第二のランダムなベクトルの二乗の大きさρＢ、第一の置換された差分ベクトルの二乗の大きさδＢ、および第二の置換された差分ベクトルの二乗の大きさσＢを以下の式に従って用いて、第一のベクトル
【数３０５】
2021525386.tif 000308
と第二のベクトル
【数３０６】
2021525386.tif 000309
のスカラー積を計算する。
【０２３０】
【数３０７】
2021525386.tif 000310
【０２３１】
同様の論法を使用して、第一の置換された差分ベクトルの二乗の大きさδＢの式を決定することができる。
【０２３２】
【数３０８】
2021525386.tif 000311
【０２３３】
【数３０９】
2021525386.tif 000312
【０２３４】
【数３１０】
2021525386.tif 000313
【０２３５】
【数３１１】
2021525386.tif 000314
【０２３６】
【数３１２】
2021525386.tif 000315
【０２３７】
【数３１３】
2021525386.tif 000316
【０２３８】
【数３１４】
2021525386.tif 000317
【０２３９】
同様に、第二の置換された差分ベクトルの二乗の大きさσＢに対する式を決定することができる。
【０２４０】
【数３１５】
2021525386.tif 000318
【０２４１】
【数３１６】
2021525386.tif 000319
【０２４２】
【数３１７】
2021525386.tif 000320
【０２４３】
【数３１８】
2021525386.tif 000321
【０２４４】
【数３１９】
2021525386.tif 000322
【０２４５】
【数３２０】
2021525386.tif 000323
【０２４６】
【数３２１】
2021525386.tif 000324
【０２４７】
スカラー積の式に戻り、第一の置換された差分ベクトルの二乗の大きさδＢと第二の置換された差分ベクトルの二乗の大きさσＢの式を置換する。
【０２４８】
【数３２２】
2021525386.tif 000325
【０２４９】
【数３２３】
2021525386.tif 000326
【０２５０】
類似の条件でグループ化する
【０２５１】
【数３２４】
2021525386.tif 000327
【０２５２】
【数３２５】
2021525386.tif 000328
【０２５３】
第二のマスクされたベクトル
【数３２６】
2021525386.tif 000329
は、第二のベクトル
【数３２７】
2021525386.tif 000330
と第二のランダムなベクトル
【数３２８】
2021525386.tif 000331
の合計と等しい。
【０２５４】
【数３２９】
2021525386.tif 000332
【０２５５】
スカラー積の式は、以下のように簡略化できる。
【０２５６】
【数３３０】
2021525386.tif 000333
【０２５７】
【数３３１】
2021525386.tif 000334
【０２５８】
【数３３２】
2021525386.tif 000335
【０２５９】
これは、第二のコンピュータによって使用される方程式が、第一のベクトル
【数３３３】
2021525386.tif 000336
と第二のベクトル
【数３３４】
2021525386.tif 000337
のスカラー積を計算するのに正確であることを示す。
【０２６０】
図７に戻ると、ステップ７１６Ａで、第一のコンピュータは、スカラー積またはスカラー積から導出された値を、第一の所定の閾値ΤＡと比較してもよく、スカラー積またはスカラー積から導出された値が、第一の所定の閾値を超える場合（すなわち、
【数３３５】
2021525386.tif 000338
）、第一のコンピュータは、支払取引や、第一のコンピュータのユーザまたは所有者のために安全な建物に入場することなど、第二のコンピュータと相互作用を実施してもよい（すなわち、図４の相互作用段階４１４の間）。スカラー積から導出され得る値の例として、第一のベクトル
【数３３６】
2021525386.tif 000339
と第二のベクトル
【数３３７】
2021525386.tif 000340
との間の角度、または第一のベクトル
【数３３８】
2021525386.tif 000341
と第二のベクトル
【数３３９】
2021525386.tif 000342
との間の角度のコサイン、または第一のベクトル
【数３４０】
2021525386.tif 000343
と第二のベクトル
【数３４１】
2021525386.tif 000344
との間の角度の別の三角関数、またはマッチスコア、距離メトリックなどのいくつかの他の値が挙げられる。
【０２６１】
例として、一致基準が、第一のベクトル
【数３４２】
2021525386.tif 000345
と第二のベクトル
【数３４３】
2021525386.tif 000346
との間の角度が５度以下であり、スカラー積から導出された値が第一のベクトル
【数３４４】
2021525386.tif 000347
と第二のベクトル
【数３４５】
2021525386.tif 000348
との間の角度のコサインである場合、第一の所定の閾値ΤＡは、
【数３４６】
2021525386.tif 000349
に等しくなり得る。スカラー積から導出された値が第一の所定の閾値ΤＡよりも大きい場合、第一のベクトル
【数３４７】
2021525386.tif 000350
と第二のベクトル
【数３４８】
2021525386.tif 000351
との間の角度差が５度以下であり、潜在的に一致を示すことを示す。
【０２６２】
いくつかの実施形態では、第一のベクトル
【数３４９】
2021525386.tif 000352
および第二のベクトル
【数３５０】
2021525386.tif 000353
は、第一の生体認証テンプレートおよび第二の生体認証テンプレートにそれぞれ対応することができ、第一の所定の閾値ΤＡは、生体認証一致閾値であってもよい。
【０２６３】
ステップ７１６Ｂで、第二のコンピュータは、スカラー積またはスカラー積から導出された値（例えば、第一のベクトル
【数３５１】
2021525386.tif 000354
と第二のベクトル
【数３５２】
2021525386.tif 000355
との間の角度、または第一のベクトル
【数３５３】
2021525386.tif 000356
と第二のベクトル
【数３５４】
2021525386.tif 000357
の間の角度の三角関数）を、第二の所定の閾値ΤＢと比較してもよく、スカラー積またはスカラー積から導出された値が、第二の所定の閾値を超える場合、（すなわち、
【数３５５】
2021525386.tif 000358
）第二のコンピュータは、支払い取引の実行、または安全な建物への第一のコンピュータのユーザのアクセスの許可など、第一のコンピュータと相互作用を実施してもよい（すなわち、図４の相互作用段階４１４の間）。
【０２６４】
いくつかの実施形態では、第一の所定の閾値ΤＡおよび第二の所定の閾値ΤＢは、等しくなくてもよく、第一のコンピュータまたは第二のコンピュータのいずれかが、相互作用を実行するためより高い閾値を有し得ることを示す。しかしながら、他の実施形態では、第一の所定の閾値ΤＡおよび第二の所定の閾値ΤＢが等しいことは有利であり得る。
【０２６５】
いくつかの実施形態では、スカラー積またはスカラー積から導出された値を第一の所定の閾値ΤＡと比較した後、第一のコンピュータは、第一のコンピュータが比較に満足し、相互作用を進めることを示す表示メッセージを第二のコンピュータに送信してもよい。同様に、スカラー積またはスカラー積から導出された値を第二の所定の閾値ΤＢと比較した後、第二のコンピュータは、第二のコンピュータが比較に満足し、相互作用に進むことを示す表示メッセージを第一のコンピュータに送信してもよい。代替でまたは追加で、第一のコンピュータおよび／または第二のコンピュータの各々は、適切な一致が判定される（例えば、緑色の光）、または判定されない（例えば、赤色の光）ときに、インジケータ（例えば、ディスプレイ上に）を含み得る。
【０２６６】
スカラー積をそれぞれの閾値と比較する両方のコンピュータの利点は、両方のコンピュータが、スカラーがそれぞれの閾値を超えることを確認できることである。例えば、第一のコンピュータのみがスカラー積をそのそれぞれの閾値と比較した場合、第二のコンピュータは、第一のコンピュータがスカラー積を正しく計算したこと、および第一のコンピュータがスカラー積が第一の所定の閾値を超えることを正直に示したことを信頼しなければならない。しかし、両方のコンピュータがスカラー積を計算し、スカラー積またはスカラー積から導出された値をそれぞれの閾値と比較するため、各コンピュータは計算を確認でき、どちらのコンピュータも他方のコンピュータをだませない。
【０２６７】
図４に戻ると、スカラー積計算段階４１２の後、第一のコンピュータおよび第二のコンピュータは、相互作用段階４１４で相互作用を実行し得る。相互作用は、スカラー積、またはスカラー積から導出された値（例えば、角度、角度の発見的評価、角度のコサイン、角度のコサインの発見的評価、別の距離メトリックなど）が、図７を参照して説明されるように、所定の閾値を超える。
【０２６８】
相互作用段階４１４の相互作用は、多くの形態を取り得る。図８は、第一の例示的な相互作用、支払取引のブロック図を示す。図９は、第二の例示的な相互作用、建物アクセス順序のブロック図を示す。
【０２６９】
図８は、例示的な取引処理システムを示す。この取引処理システムは、第一のコンピュータ８０４と第二のコンピュータ８０６との間の第一の例示的な相互作用の一部として使用され得る。
【０２７０】
ユーザ８０２は、第一のコンピュータ８０４（例えば、スマートフォン）を操作する顧客であってもよい。ユーザ８０２は、リソースプロバイダ（例えば、リソースプロバイダのコンピュータ８１０を操作する小売業者）から商品またはサービスを購入することを望む場合がある。リソースプロバイダは、アクセス端末８０８（例えば、ＰＯＳ端末）を追加的に操作し得る。リソースプロバイダ８１０は、アクワイアラコンピュータ８１２および支払処理ネットワーク８１４を介して発行人のコンピュータ８１６と通信することができる。
【０２７１】
支払処理ネットワーク８１４は、承認サービス、例外ファイルサービス、ならびに清算および決済サービスをサポートし配信するのに使用される、データ処理サブシステム、ネットワーク、および演算を含んでいてもよい。例示的な支払処理ネットワーク８１４は、ＶｉｓａＮｅｔ（商標）を含んでいてもよい。ＶｉｓａＮｅｔ（商標）などの決済処理ネットワークは、クレジットカード取引、デビットカード取引、および他の種類の商取引を処理することができる。特にＶｉｓａＮｅｔ（商標）には、承認要求を処理するＶＩＰシステム（Ｖｉｓａ統合支払システム）ならびに清算および決済サービスを実施するＢａｓｅ  ＩＩシステムが含まれる。支払処理ネットワークは、インターネットを含む、任意の好適な有線または無線ネットワークを使用することができる。
【０２７２】
生体認証ベクトルに基づくプライバシー保護スカラー積計算を使用した例示的な支払取引は、以下に説明され得る。ユーザ８０２は、第一のコンピュータ８０４およびアクセス端末８０８が例えば、近距離無線通信を介して通信できるように、第一のコンピュータ８０４をアクセス端末８０８と接触させてもよい。第一のコンピュータ８０４は、ユーザ８０２が物品またはサービスに対して支払いを行うことを望む端末８０８にアクセスするように通信することができる。アクセス端末８０８は、発行人によって管理されるユーザ８０２に関連付けられた支払口座と、アクワイアラによって管理されるリソースプロバイダに関連付けられた支払アカウントとの間の支払を成立させるために使用できるアクセストークンなどの証明書を要求してもよい。
【０２７３】
アクセストークンを取得するために、第一のコンピュータ８０４および第二のコンピュータ８０６は、第一のコンピュータ８０４に格納された第一の生体認証ベクトルおよび第二のコンピュータ８０６上の生体認証ベクトルデータベースに格納された第二の生体認証ベクトルのスカラー積を計算するために、プライバシー保護スカラー積計算を実行し得る。第一のコンピュータ８０４および第二のコンピュータ８０６は、図４〜７を参照して上述したスカラー積計算を実行してもよい。スカラー積を計算する際、第二のコンピュータ８０６は、スカラー積またはスカラー積から導出された値を所定の閾値と比較し得る。スカラー積またはスカラー積から導出された値が所定の閾値を超える場合、第二のコンピュータ８０６は、アクセストークンを第一のコンピュータ８０４に送信し得る（この送信は、第一のコンピュータ８０４と第二のコンピュータ８０６との間の相互作用を含み得る）。
【０２７４】
第二のコンピュータ８０６からアクセストークンを受信した後、第一のコンピュータ８０４は、アクセストークンおよび任意の追加のアクセス証明書をアクセス端末８０８に送信してもよい。次に、アクセス端末８０８と通信して動作するリソースプロバイダコンピュータ８１０は、任意の追加の取引情報（例えば、取引金額、小売業者固有の情報など）と共にアクセス端末８０８によって受信された情報を含む承認要求メッセージを生成し、この情報をアクワイアラコンピュータ８１２に電子的に送信し得る。その後、アクワイアラコンピュータ８１２は、承認要求メッセージを受信し、処理し、承認のために支払処理ネットワーク８１４を介して発行人コンピュータ８１６に転送することができる。発行人コンピュータ８１６は、承認応答メッセージで応答してもよい。承認応答メッセージは、リソースプロバイダコンピュータ８１０、アクワイアラコンピュータ８１２、および支払処理ネットワーク８１４を介して、発行人コンピュータ８１６からアクセス端末８０８に送信されてもよい。
【０２７５】
一日の終わりに、または他の好適な時間間隔で、アクワイアラコンピュータ８１２と、支払処理ネットワーク８１４と、発行人コンピュータ８１６との間の清算および決済処理が、取引に対して行われ得る。
【０２７６】
図９は、いくつかの実施形態による第二の例示的な相互作用を示す。ユーザ９０２は、安全な施設である建物９１０（すなわち、安全なアパート複合施設または政府管理ビル）へアクセスしたいと考えている。建物９１０へのドアは、リソースプロバイダコンピュータ９０８によってロックされ、制御される。建物９１０にアクセスするために、ユーザ９０２は、アクセストークンまたは別の証明書を、第一のコンピュータ９０４（例えば、ユーザ９０２のスマートフォン）を介してリソースプロバイダのコンピュータ９０８に提供する必要がある。
【０２７７】
ユーザ９０２は、第二のコンピュータ９０６が関与する生体認証システムに以前に登録していてもよい。第二のコンピュータ９０６は、ユーザ９０２に対応する生体認証ベクトル（第二のベクトル）を生体認証データベースに格納してもよい。同様に、第一のコンピュータ９０４は、ユーザ９０２に対応する保存された生体認証ベクトル（第一のベクトル）をセキュア要素上に格納してもよい。あるいは、ユーザ９０２は、第一のコンピュータ９０４を使用して、例えば、スマートフォンカメラを自分の目に向け、写真を撮ることによって、生体認証インスタンスをキャプチャし、キャプチャされた生体認証インスタンスをベクトル化してもよい。
【０２７８】
生体認証システムの一部として、第一のコンピュータ９０４および第二のコンピュータ９０６は、ユーザ９０２を認証するために、第一のベクトルと第二のベクトルのスカラー積を計算できる。スカラー積を計算した後（図４〜７を参照して上述した通り）、第二のコンピュータ９０６は、スカラー積またはスカラー積から導出された値（例えば、第一のベクトルと第二のベクトルとの間の角度）を所定の閾値と比較することができる。スカラー積またはスカラー積から導出された値が所定の閾値を超える場合、ユーザ９０２は認証され得る。続いて、第二のコンピュータ９０６は、リソースプロバイダコンピュータ９０８に命令を送信して、リソースプロバイダコンピュータ９０８に、ドアを開けて、ユーザ９０２が建物９１０へアクセスするのを許可するように命令することができる。あるいは、第二のコンピュータ９０６は、アクセストークンを第一のコンピュータ９０４に発行することができる。第一のコンピュータ９０４は、その後、このアクセストークンをリソースプロバイダ９０８に（例えば、近距離無線通信を介して、またはインターネットもしくはＬＡＮなどのネットワークを介して）提供することができる。リソースプロバイダコンピュータ９０８は、アクセストークンを検証し、ユーザ９０２に建物９１０へのアクセスを認めることができる。
【０２７９】
本明細書に記述したいずれのコンピュータシステムも、任意の適切な数のサブシステムを利用することができる。いくつかの実施形態では、コンピュータシステムは、単一のコンピュータ装置を含み、サブシステムはコンピュータ装置の構成要素であり得る。他の実施形態では、コンピュータシステムは、それぞれが内部構成要素を有するサブシステムである、複数のコンピュータ装置を含み得る。
【０２８０】
コンピュータシステムは、例えば、外部インタフェースによって、または内部インタフェースによって共に接続される、複数の同じ構成要素またはサブシステムを含み得る。一部の実施形態では、コンピュータシステム、サブシステムまたは装置は、ネットワーク上で通信し得る。そのような例では、一つのコンピュータをクライアント、別のコンピュータをサーバとみなすことができ、各々が、同一のコンピュータシステムの一部であり得る。クライアントおよびサーバは各々、複数のシステム、サブシステムまたは構成要素を含み得る。
【０２８１】
本発明の実施形態のいずれも、ハードウェア（例えば、特定用途向け集積回路またはフィールドプログラマブルゲートアレイ）を使用する、および／またはモジュール式のもしくは統合された方式で、一般的なプログラム可能プロセッサを有するコンピュータソフトウェアを使用する、制御ロジックの形態で実装され得ることは理解されるべきである。本明細書で使用される通り、プロセッサは、シングルコアプロセッサ、同じ集積チップ上のマルチコアプロセッサ、または単一回路基板上もしくはネットワーク上の複数の処理装置を含む。本明細書に提供する開示および教示に基づき、当業者は、ハードウェア、およびハードウェアとソフトウェアとの組み合わせを使用して、本発明の実施形態を実装する他のやり方および／または方法を知り、理解するであろう。
【０２８２】
本出願に記載のソフトウェア構成要素または機能のいずれも、例えば、従来の技術またはオブジェクト指向の技術を使用する、例えば、Ｊａｖａ、Ｃ、Ｃ＋＋、Ｃ＃、Ｏｂｊｅｃｔｉｖｅ−Ｃ、Ｓｗｉｆｔ、またはＰｅｒｌもしくはＰｙｔｈｏｎのようなスクリプト言語など、いずれの好適なコンピュータ言語を使用するプロセッサによって実行される、ソフトウェアコードとして実装されてもよい。ソフトウェアコードは、記憶および／もしくは送信用のコンピュータ可読媒体上に、一連の命令またはコマンドとして記憶されてもよく、好適な媒体には、ランダムアクセスメモリ（ＲＡＭ）、読み出し専用メモリ（ＲＯＭ）、ハードドライブもしくはフロッピーディスクなどの磁気媒体、またはコンパクトディスク（ＣＤ）もしくはＤＶＤ（デジタル多目的ディスク）などの光媒体、フラッシュメモリ、および同類のものを含む。コンピュータ可読媒体は、そのような記憶または送信デバイスのいかなる組み合わせであってもよい。
【０２８３】
また、そのようなプログラムはコード化され、送信用に適応したキャリア信号を使用して、インターネットを含む、様々なプロトコルに適合する有線ネットワーク、光ネットワークおよび／または無線ネットワークによって送信されてもよい。このように、本発明の実施形態によるコンピュータ可読媒体は、そのようなプログラムでコード化されたデータ信号を使用して作成されてもよい。プログラムコードでコード化されたコンピュータ可読媒体は、互換デバイスでパッケージ化されてもよく、または他のデバイスから（例えば、インターネットのダウンロードによって）別個に提供されてもよい。いかなるそのようなコンピュータ可読媒体も、単一のコンピュータ製品（例えば、ハードドライブ、ＣＤまたはコンピュータシステム全体）上またはその内部にあってもよく、システムもしくはネットワーク内の異なるコンピュータ製品上またはその内部に存在してもよい。コンピュータシステムは、本明細書で言及する結果のいずれをユーザに提供する、モニタ、プリンタまたは他の好適なディスプレイを含んでもよい。
【０２８４】
本明細書に記載の方法のいずれかは、ステップを実行するように構成され得る、一つ以上のプロセッサを含むコンピュータシステムで、全部または部分的に実施され得る。したがって、実施形態は、潜在的にそれぞれのステップまたはそれぞれのステップ群を実施する異なる構成要素を用いて、本明細書に記載の方法のいずれかのステップを実施するように構成されるコンピュータシステムを含み得る。番号付けされたステップとして提示されるが、本明細書の方法のステップは、同時に、または異なる順序で実施され得る。さらに、これらのステップの一部は、他の方法からの他のステップの一部と共に使用されてもよい。また、ステップのすべてまたは一部分は、任意であってもよい。さらに、およびいずれかの方法のステップは、モジュール、回路、またはこれらのステップを実行するための他の手段を用いて実施することができる。
【０２８５】
特定の実施形態の具体的な詳細は、本発明の実施形態の精神と範囲から逸脱することなく、任意の好適な方法で組み合わせてもよい。しかしながら、本発明の他の実施形態は、個々の態様に関する特定の実施形態またはこれらの個々の態様の特定の組み合わせを含んでもよい。本発明の例示的な実施形態の上記の説明は、例示および説明の目的で提示されている。これは、網羅的であることを意図しておらず、または本発明を記載された正確な形態に限定することを意図しておらず、上記の教示を考慮して多くの修正および変形が可能である。実施形態は、本発明の原理およびその実用的な用途を最もよく説明するために選択および記述され、それによって、当業者が、企図される特定の用途に適した様々な実施形態においておよび様々な修正を用いて、本発明を最も適切に利用することを可能にする。
【０２８６】
「一つの（ａ）」、「一つの（ａｎ）」、または「その（ｔｈｅ）」の列挙は、特に反対の指示がない限り、「一つ以上」を意味することを意図している。「または」の使用は、特に反対の指示がない限り、「包含的論理和」を意味し、「排他的論理和」を意味することを意図するものではない。
【０２８７】
本明細書で言及したすべての特許、特許出願、刊行物および記載は、あらゆる目的のためにその全体が参照により本明細書に援用される。いずれも先行技術と認められない。
【図１】
2021525386.tif 000359
【図２】
2021525386.tif 000360
【図３】
2021525386.tif 000361
【図４】
2021525386.tif 000362
【図５】
2021525386.tif 000363
【図６】
2021525386.tif 000364
【図７】
2021525386.tif 000365
【図８】
2021525386.tif 000366
【図９】
2021525386.tif 000367
【国際調査報告】
2021525386.tif 000368
2021525386.tif 000369