JP5496410B2 - 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法 - Google Patents
類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法 Download PDFInfo
- Publication number
- JP5496410B2 JP5496410B2 JP2013500748A JP2013500748A JP5496410B2 JP 5496410 B2 JP5496410 B2 JP 5496410B2 JP 2013500748 A JP2013500748 A JP 2013500748A JP 2013500748 A JP2013500748 A JP 2013500748A JP 5496410 B2 JP5496410 B2 JP 5496410B2
- Authority
- JP
- Japan
- Prior art keywords
- similarity
- ciphertext
- unit
- similarity calculation
- public key
- 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.)
- Expired - Fee Related
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/30—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
- H04L9/3066—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
- H04L9/3073—Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/008—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L9/00—Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
- H04L9/32—Cryptographic 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/3226—Cryptographic 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/3231—Biological data, e.g. fingerprint, voice or retina
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L2209/00—Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
- H04L2209/34—Encoding or coding, e.g. Huffman coding or error correction
Landscapes
- Engineering & Computer Science (AREA)
- Computer Security & Cryptography (AREA)
- Signal Processing (AREA)
- Computer Networks & Wireless Communication (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- Mathematical Analysis (AREA)
- Biomedical Technology (AREA)
- Biodiversity & Conservation Biology (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Physics & Mathematics (AREA)
- General Health & Medical Sciences (AREA)
- Mathematical Optimization (AREA)
- Mathematical Physics (AREA)
- Pure & Applied Mathematics (AREA)
- Life Sciences & Earth Sciences (AREA)
- Computing Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Storage Device Security (AREA)
Description
特に、ユーザを認証する認証システムなどにおいては、元のデータの秘密を守るだけでは十分でなく、システム内の装置間でやり取りされる情報や、それぞれの装置が記憶している情報から、ユーザになりすますことができる情報が漏れることを防ぐ必要がある。
この発明は、例えば、上記のような課題を解決するためになされたものであり、元のデータについての情報や、なりすましに利用される情報などが漏れることを防ぎつつ、データが暗号化されたままの状態で、データ間の類似度を算出することを目的とする。
比較データと対象データとの類似度を算出する類似度算出装置において、
データを記憶する記憶装置と、データを処理する処理装置と、比較暗号文記憶部と、対象暗号文取得部と、一時鍵生成部と、類似度途中暗号文算出部と、類似度途中暗号文通知部と、類似度途中復号文取得部と、類似度算出部とを有し、
上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
上記一時鍵生成部は、上記処理装置を用いて、一時鍵を生成し、
上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文を算出し、
上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知し、
上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文を取得し、
上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする。
実施の形態1について、図1〜図26を用いて説明する。
生体認証システム100は、ユーザの指紋などの生体情報を入力し、入力した生体情報と、あらかじめ登録された生体情報とを照合することにより、利用者を認証するシステムである。
生体認証システム100(類似度算出システム)は、例えば、証明装置101と、認証装置102と、復号装置103と、登録装置104とを有する。
登録装置104は、ユーザから生体情報を抽出し、抽出した生体情報を暗号化して、認証装置102に登録する。
証明装置101(暗号化装置)は、ユーザから生体情報を抽出し、抽出した生体情報を暗号化する。また、証明装置101は、認証装置102と対話を行い、認証を実施する。
認証装置102(類似度算出装置)は、登録装置104により登録されたユーザの暗号化生体情報を格納する。また、認証装置102は、証明装置101、復号装置103と対話を行い、認証を実施する。
復号装置103は、認証装置102と対話を行い、認証装置から送られてきた暗号化された類似度に関連したデータを復号する。
なお、証明装置101や登録装置104は、複数あってもよい。また、証明装置101と登録装置104とは、物理的に一つの装置であってもよい。また、証明装置101と復号装置103とは、物理的に一つの装置であってもよい。また、認証装置102と登録装置104とは、物理的に一つの装置であってもよい。
証明装置101、認証装置102、復号装置103、登録装置104は、例えばコンピュータであり、処理装置911と、入力装置912と、出力装置913と、記憶装置914とを有する。
記憶装置914は、処理装置911が実行するプログラムや、処理装置911が処理するデータなどを記憶する。記憶装置914は、例えば、揮発性メモリ、不揮発性メモリ、ハードディスク装置などである。
処理装置911は、記憶装置914が記憶したプログラムを実行することにより、データを処理し、装置全体を制御する。
入力装置912は、外部からの情報を、処理装置911が処理できるデータに変換する。入力装置912が変換したデータは、処理装置911が直接処理してもよいし、記憶装置914が記憶してもよい。入力装置912は、例えば、キーボードやマウスなど使用者の操作を入力する操作入力装置、ユーザの指紋や虹彩などの生体情報を抽出して入力する生体情報入力装置、他の装置が送信した信号を受信する受信装置(通信装置)、記録媒体からデータを読み出す読み出し装置などである。
出力装置913は、処理装置911が処理したデータや、記憶装置914が記憶したデータなどを変換して、外部に出力する装置である。出力装置913は、例えば、画像を表示する表示装置、他の装置に対して信号を送信する送信装置(通信装置)、記録媒体にデータを書き込む書き込み装置などである。
登録装置104は、例えば、公開鍵受信部208と、公開鍵記憶部202と、生体情報抽出部203と、特徴ベクトル形成部204と、乱数生成部205と、暗号化データ生成部206と、暗号化データ送信部201とを有する。
公開鍵受信部208(公開鍵取得部)は、通信装置などの入力装置912を用いて、復号装置103で生成された公開鍵を受信する。通信装置(通信部)は、認証装置102や復号装置103などの他の装置との間でデータのやりとりを行う。
暗号化データ送信部201(比較暗号文通知部)は、通信装置などの出力装置913を用いて、認証装置102に対して暗号化生体情報(比較暗号文)を送信する。
公開鍵記憶部202は、記憶装置914を用いて、公開鍵受信部208が受信した公開鍵を記憶する。記憶装置914(記憶部)は、復号装置103から送られてきた公開鍵などの各種データを格納する。
生体情報抽出部203は、光学カメラ、赤外線カメラ、その他の各種センサなどの入力装置912を用いて、個人識別を行うのに必要となる生体情報をユーザから抽出する。
特徴ベクトル形成部204(比較データ取得部)は、処理装置911を用いて、生体情報抽出部203が抽出した生体情報から、個人の特徴を表す特徴ベクトル(比較データ)を形成する。
乱数生成部205は、処理装置911を用いて、公開鍵記憶部202が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部205が生成した乱数は、暗号化データ生成部206などが使用する。
暗号化データ生成部206(暗号化部、比較暗号文生成部)は、処理装置911を用いて、乱数生成部205が生成した乱数に基づいて、特徴ベクトル形成部204が形成した特徴ベクトルを暗号化し、暗号化生体情報(暗号化特徴ベクトル)を生成する。
証明装置101は、例えば、公開鍵受信部218と、公開鍵記憶部212と、生体情報抽出部213と、特徴ベクトル形成部214と、乱数生成部215と、第一チャレンジ受信部211と、暗号化データ埋め込み部217と、第一レスポンス送信部221とを有する。
公開鍵受信部218(公開鍵取得部)は、通信装置などの入力装置912を用いて、復号装置103で生成された公開鍵を受信する。通信装置(通信部)は、認証装置102や復号装置103などの他の装置との間でデータのやりとりを行う。
第一チャレンジ受信部211(一時公開鍵取得部)は、通信装置などの入力装置912を用いて、認証装置102からの第一チャレンジ(一時公開鍵)を受信する。
第一レスポンス送信部221(対象二重暗号文通知部)は、通信装置などの入力装置912を用いて、第一チャレンジに対応した第一レスポンス(対象二重暗号文)を、認証装置102に対して返信する。
公開鍵記憶部212は、記憶装置914を用いて、公開鍵受信部218が受信した公開鍵を記憶する。記憶装置914(記憶部)は、復号装置103から送られてきた公開鍵などの各種データを格納する。
生体情報抽出部213は、光学カメラ、赤外線カメラ、その他の各種センサなどの入力装置912を用いて、個人識別を行うのに必要となる生体情報をユーザから抽出する。
特徴ベクトル形成部214(対象データ取得部)は、処理装置911を用いて、生体情報抽出部213が抽出した生体情報から、個人の特徴を表す特徴ベクトル(対象データ)を形成する。
乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部215が生成した乱数は、暗号化データ埋め込み部217などが使用する。
暗号化データ埋め込み部217(レスポンス生成部、対象二重暗号文算出部)は、処理装置911を用いて、認証装置102から送られてきた第一チャレンジを、特徴ベクトル形成部214が形成した特徴ベクトルの値に応じて処理を行う。すなわち、暗号化データ埋め込み部217は、第一チャレンジに暗号化生体情報を埋め込む。暗号化データ埋め込み部217は、認証装置102に返す第一レスポンスを計算する。
認証装置102は、例えば、公開鍵受信部308と、公開鍵記憶部302と、暗号化データ受信部301と、暗号化データ記憶部312と、乱数生成部303と、乱数記憶部322と、暗号化乱数生成部304と、第一チャレンジ送信部311と、第一レスポンス受信部331と、暗号化データ抽出部305と、暗号化ランダム類似度算出部314と、第二チャレンジ送信部321と、第二レスポンス受信部341と、平文類似度抽出部315と、判定部306とを有する。
公開鍵受信部308(公開鍵取得部)は、通信装置(通信部)などの入力装置912を用いて、復号装置103で生成された公開鍵を受信する。
暗号化データ受信部301(比較暗号文取得部)は、通信装置などの入力装置912を用いて、証明装置101から暗号化特徴ベクトル(比較暗号文)を受信する。
第一チャレンジ送信部311(一時公開鍵通知部)は、通信装置などの出力装置913を用いて、証明装置101へ第一チャレンジ(一時公開鍵)を送信する。
第一レスポンス受信部331(対象二重暗号文取得部)は、通信装置などの入力装置912を用いて、証明装置101から第一チャレンジに対応する第一レスポンス(対象二重暗号文)を受信する。
第二チャレンジ送信部321(類似度途中暗号文通知部)は、通信装置などの出力装置913を用いて、復号装置103へ第二チャレンジ(類似度途中暗号文)を送信する。
第二レスポンス受信部341(類似度途中復号文取得部)は、通信装置などの入力装置912を用いて、復号装置103から第二レスポンス(類似度途中復号文)を受信する。
公開鍵記憶部302は、記憶装置914(記憶部)を用いて、復号装置103から送付された公開鍵を格納する。
暗号化データ記憶部312(比較暗号文記憶部)は、記憶装置914を用いて、証明装置101から送られてきた暗号化特徴ベクトルを格納する。暗号化データ記憶部312は、複数の暗号化特徴ベクトルを、例えば、ユーザの識別子と対応づけて記憶する。
乱数記憶部322(一時秘密鍵記憶部、一時鍵記憶部)は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち一部の乱数(一時秘密鍵、一時鍵)を格納する。
乱数生成部303(一時秘密鍵生成部、一時鍵生成部)は、処理装置911を用いて、公開鍵記憶部302が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部303が生成した乱数は、暗号化乱数生成部304、暗号化データ抽出部305、暗号化ランダム類似度算出部314、平文類似度抽出部315などで用いられる。
暗号化乱数生成部304(チャレンジ生成部、一時公開鍵算出部)は、証明装置101と対話を行うために、処理装置911を用いて、第一チャレンジ(暗号化乱数)を生成する。
暗号化データ抽出部305(乱数除去部、対象暗号文取得部)は、処理装置911を用いて、証明装置101から送られてきた第一レスポンスに対して、その第一レスポンスに対応した第一チャレンジで使用した(乱数記憶部322が格納している)乱数を用いて、第一レスポンスに含まれている乱数を除去する。暗号化データ抽出部305は、第一レスポンスから第一チャレンジで用いた乱数の一部を取り除いて、暗号化特徴ベクトルを抽出する。
暗号化ランダム類似度算出部314(チャレンジ生成部、類似度途中暗号文算出部)は、復号装置103と対話を行うために、処理装置911を用いて、第二チャレンジ(暗号化ランダム類似度)を生成する。暗号化ランダム類似度算出部314は、暗号化データ抽出部305が抽出した暗号化特徴ベクトルと、暗号化データ記憶部312が記憶した暗号化特徴ベクトルとに基づいて、第二チャレンジを生成する。暗号化ランダム類似度算出部314は、暗号化データ記憶部312が記憶した暗号化特徴ベクトルのなかから、第一レスポンス受信部331が受信した第一レスポンスとユーザの識別子が一致する暗号化特徴ベクトルを取得して、第二チャレンジを生成する。
平文類似度抽出部315(乱数除去部、類似度算出部)は、復号装置103に送られてきた第二レスポンスから、その第二レスポンスに対応する第二チャレンジで使用した(乱数記憶部322が格納している)乱数を用いて、第二レスポンスに含まれている乱数を除去する。平文類似度抽出部315は、第二レスポンスから乱数を除去して、平文の類似度を算出する。
判定部306(類似判定部)は、処理装置911を用いて、平文類似度抽出部315が生成した平文の類似度を用いて個人識別を行い、本人か否かを判定する。つまり、判定部306は、平文の類似度を解析して、認証用の特徴ベクトルの発生源が正当であるか否かを判定する。
復号装置103は、例えば、鍵生成部401と、秘密鍵記憶部413と、公開鍵記憶部403と、公開鍵送信部408と、第二チャレンジ受信部402と、復号部404と、第二レスポンス送信部412とを有する。
鍵生成部401(パラメータ生成部、秘密鍵生成部、公開鍵算出部)は、処理装置911を用いて、公開鍵や秘密鍵など、暗号化と復号に必要なパラメータを生成する。
公開鍵送信部408(公開鍵通知部)は、通信装置(通信部)などの出力装置913を用いて、証明装置101や認証装置102などに対して、鍵生成部401が生成した公開鍵を送信する。
第二チャレンジ受信部402(類似途中暗号文取得部)は、通信装置などの入力装置912を用いて、認証装置102から、第二チャレンジ(類似途中暗号文)を受信する。
第二レスポンス送信部412(類似途中復号文通知部)は、通信装置などの出力装置913を用いて、認証装置102に対して、第二チャレンジに対応した第二レスポンス(類似途中復号文)を送信する。
公開鍵記憶部403は、記憶装置914(記憶部)を用いて、鍵生成部401が生成した公開鍵などの各種データを格納する。
秘密鍵記憶部413は、記憶装置914を用いて、鍵生成部401が生成した秘密鍵を格納する。
復号部404(レスポンス生成部、類似途中復号文算出部)は、処理装置911を用いて、認証装置102から送信された第二チャレンジに対応した第二レスポンスを生成する。復号部404は、第二チャレンジ(暗号化ランダム類似度)を復号して、第二レスポンスを算出する。
生体認証システム100の動作は、例えば、セットアップ処理S500と、登録処理S600と、認証処理S700との3つからなる。
セットアップ処理S500(設定処理)では、復号装置103が、暗号化と復号に必要となるパラメータや公開鍵・秘密鍵などを生成する。
登録処理S600では、登録装置104が、ユーザの生体情報(比較データ)を暗号化して認証装置102に送付する。認証装置102が、暗号化生体情報(比較暗号文)を格納する。
認証処理S700では、最初に、認証装置102が、証明装置101と対話を行い、その対話のデータ(第一チャレンジ及び第一レスポンス)から暗号化生体情報(対象暗号文)を抽出する。
次に、認証装置102が、抽出した暗号化生体情報と、登録処理S600であらかじめ登録された暗号化生体情報とに基づいて、復号装置103と対話を行い、その対話のデータ(第二チャレンジ及び第二レスポンス)からランダム類似度を抽出する。
最後に、認証装置102が、ランダム類似度から平文の類似度を抽出し、閾値と比較して本人であるかどうかの判定を行う。なお、ここでの閾値は、あらかじめ定められているシステムで共通の値であってもよいし、ユーザ毎に異なる値であってもよい。
セットアップ処理S500は、例えば、鍵生成工程S501と、公開鍵通知工程S502と、公開鍵取得工程S503〜S505とを有する。
最初に、鍵生成工程S501において、復号装置103の鍵生成部401が、処理装置911を用いて、準同型暗号方式の鍵生成アルゴリズムに基づき、秘密鍵skと公開鍵pkとを生成する。準同型暗号方式には、例えば、岡本−高島暗号方式、BGN暗号方式、Paillier暗号方式などがある。
次に、公開鍵通知工程S502において、復号装置103の公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkを記憶する。復号装置103の秘密鍵記憶部413が、記憶装置914を用いて、秘密鍵skを記憶する。復号装置103の公開鍵送信部408が、出力装置913を用いて、公開鍵pkを、登録装置104、証明装置101、認証装置102などに対して送信する。
公開鍵取得工程S503において、登録装置104の公開鍵受信部208が、入力装置912を用いて、復号装置103が送信した公開鍵pkを受信する。登録装置104の公開鍵記憶部202が、記憶装置914を用いて、公開鍵受信部208が受信した公開鍵pkを記憶する。
公開鍵取得工程S504において、証明装置101の公開鍵受信部218が、入力装置912を用いて、復号装置103が送信した公開鍵pkを受信する。証明装置101の公開鍵記憶部212が、記憶装置914を用いて、公開鍵受信部218が受信した公開鍵pkを記憶する。
公開鍵取得工程S505において、認証装置102の公開鍵受信部308が、入力装置912を用いて、復号装置103が送信した公開鍵pkを受信する。認証装置102の公開鍵記憶部302が、記憶装置914を用いて、公開鍵受信部308が受信した公開鍵pkを記憶する。
なお、ネットワークなどを介して公開鍵pkを送受信するのではなく、他の方式で、証明装置101などに公開鍵pkを配布する構成であってもよい。例えば、復号装置103が、公開鍵pkを、記録媒体(例えば、ハードディスクドライブや光学ディスクなど)に格納し、証明装置101などが、ネットワークなどを介してその記録媒体にアクセスし、あるいは、記録媒体自体を物理的に移動させて、記録媒体から公開鍵pkを読み出して格納する構成であってもよい。
登録処理S600は、例えば、生体情報抽出工程S601と、特徴ベクトル生成工程S602と、特徴ベクトル暗号化工程S603と、暗号化生体情報通知工程S604と、暗号化生体情報取得工程S605とを有する。
最初に、生体情報抽出工程S601において、登録装置104の生体情報抽出部203が、入力装置912を用いて、ユーザの生体情報を抽出する。
特徴ベクトル生成工程S602において、登録装置104の特徴ベクトル形成部204が、処理装置911を用いて、生体情報抽出工程S601で生体情報抽出部203が抽出した生体情報の特徴ベクトルbを生成する。
特徴ベクトル暗号化工程S603において、登録装置104の乱数生成部205が、処理装置911を用いて、公開鍵pkの一部などに基づいて、乱数を生成する。登録装置104の暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkを読み出す。登録装置104の暗号化データ生成部206が、処理装置911を用いて、読み出した公開鍵pkと、乱数生成部205が生成した乱数とに基づいて、暗号化特徴ベクトルCを生成する。暗号化特徴ベクトルCが、特徴ベクトルbを暗号化したものである。
暗号化生体情報通知工程S604において、登録装置104の暗号化データ送信部201が、出力装置913を用いて、特徴ベクトル暗号化工程S603で暗号化データ生成部206が生成した暗号化特徴ベクトルCを、認証装置102に対して送信する。
暗号化生体情報取得工程S605において、認証装置102の暗号化データ受信部301が、入力装置912を用いて、暗号化生体情報通知工程S604で登録装置104が送信した暗号化特徴ベクトルCを受信する。認証装置102の暗号化データ記憶部312が、記憶装置914を用いて、暗号化データ受信部301が受信した暗号化特徴ベクトルCを記憶する。
また、暗号化特徴ベクトルCは、復号装置の公開鍵で暗号化されているので、不正者が、登録装置104と認証装置102との間の通信を傍受したり、認証装置102の記憶装置914から窃取したりして、暗号化特徴ベクトルCを入手したとしても、復号装置の秘密鍵を使わなければ、ユーザの生体情報や特徴ベクトルを知ることはできない。
更に、後述するように、認証時における特徴ベクトルの情報を含む第一レスポンスは、特徴ベクトルからしか生成できず、暗号化特徴ベクトルから生成することはできない。不正者が、暗号化特徴ベクトルCを入手したとしても、第一レスポンスを生成できないので、正規のユーザになりすますことはできない。
認証処理S700は、例えば、第一チャレンジ生成工程S701と、乱数記憶工程S702と、第一チャレンジ通知工程S703と、第一チャレンジ取得工程S704と、生体情報抽出工程S705と、特徴ベクトル生成工程S706と、第一レスポンス生成工程S707と、第一レスポンス通知工程S708と、第一レスポンス取得工程S709と、暗号化生体情報抽出工程S710と、暗号化生体情報読出し工程S711と、第二チャレンジ生成工程S712と、乱数記憶工程S713と、第二チャレンジ通知工程S714と、第二チャレンジ取得工程S715と、第二レスポンス生成工程S716と、第二レスポンス通知工程S717と、第二レスポンス取得工程S718と、平文類似度算出工程S719と、認証判定工程S720とを有する。
乱数記憶工程S702において、認証装置102の乱数記憶部322が、記憶装置914を用いて、第一チャレンジ生成工程S701で乱数生成部303が生成した乱数を格納する。
第一チャレンジ通知工程S703において、認証装置102の第一チャレンジ送信部311が、出力装置913を用いて、第一チャレンジ生成工程S701で暗号化乱数生成部304が生成した第一チャレンジを、証明装置101に対して送信する。
生体情報抽出工程S705において、証明装置101の生体情報抽出部213が、入力装置912を用いて、ユーザの生体情報を抽出する。
特徴ベクトル生成工程S706において、証明装置101の特徴ベクトル形成部214が、処理装置911を用いて、生体情報抽出工程S705で生体情報抽出部213が抽出した生体情報の特徴ベクトルb’を形成する。
第一レスポンス生成工程S707において、証明装置101の乱数生成部215が、処理装置911を用いて、公開鍵記憶部212が格納している公開鍵pkを読み出し、乱数を生成する。証明装置101の暗号化データ埋め込み部217が、公開鍵記憶部212から公開鍵pkを読み出し、乱数生成部215が生成した乱数に基づいて、特徴ベクトル生成工程S706で特徴ベクトル形成部214が形成した特徴ベクトルb’の値に応じて第一チャレンジを処理して、第一レスポンスを生成する。第一レスポンスは、第一チャレンジに暗号化特徴ベクトルC’を埋め込んだものになる。
第一レスポンス通知工程S708において、証明装置101の第一レスポンス送信部221が、出力装置913を用いて、第一レスポンス生成工程S707で暗号化データ埋め込み部217が生成した第一レスポンスを認証装置102に対して送信する。
暗号化生体情報抽出工程S710において、認証装置102の暗号化データ抽出部305が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数生成部303が生成した乱数を乱数記憶部322から取り出し、第一レスポンスから乱数を除去して、暗号化特徴ベクトルC’を抽出する。
暗号化生体情報読出し工程S711において、認証装置102の暗号化ランダム類似度算出部314が、処理装置911を用いて、暗号化データ記憶部312から暗号化特徴ベクトルCを取り出す。
第二チャレンジ生成工程S712において、認証装置102の乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が格納している公開鍵pkを読み出し、乱数を生成する。認証装置102の暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302から公開鍵pkを読み出し、暗号化生体情報抽出工程S710で暗号化データ抽出部305が第一レスポンスから抽出した暗号化特徴ベクトルC’と、暗号化生体情報読出し工程S711で取り出した暗号化特徴ベクトルCと、読み出した公開鍵pkと、乱数生成部303が生成した乱数とに基づいて、第二チャレンジ(暗号化ランダム類似度)を生成する。
乱数記憶工程S713において、認証装置102の乱数記憶部322が、記憶装置914を用いて、第二チャレンジ生成工程S712で乱数生成部303が生成した乱数を格納する。
第二チャレンジ通知工程S714において、認証装置102の第二チャレンジ送信部321が、出力装置913を用いて、第二チャレンジ生成工程S712で暗号化ランダム類似度算出部314が生成した第二チャレンジを復号装置103に対して送信する。
第二レスポンス生成工程S716において、復号装置103の復号部404が、処理装置911を用いて、秘密鍵記憶部413から秘密鍵skを読み出し、第二チャレンジ取得工程S715で第二チャレンジ受信部402が受信した第二チャレンジ(暗号化ランダム類似度)に対して秘密鍵skを使った復号処理を行い、第二レスポンスを生成(ランダム類似度を導出)する。
第二レスポンス通知工程S717において、復号装置103の第二レスポンス送信部412が、出力装置913を用いて、第二レスポンス生成工程S716で復号部404が生成した第二レスポンスを認証装置102に対して送信する。
平文類似度算出工程S719において、認証装置102の平文類似度抽出部315が、処理装置911を用いて、第二チャレンジ生成工程S712で乱数生成部303が生成した乱数を乱数記憶部322から取り出し、第二レスポンス取得工程S718で第二レスポンス受信部341が受信した第二レスポンス(ランダム類似度)から乱数を除去して、平文の類似度を抽出する。
認証判定工程S720において、認証装置102の判定部306が、処理装置911を用いて、平文類似度算出工程S719で抽出した平文の類似度と、所定の閾値とに基づいて、本人認証を行う。
有限群における群演算で有限群の元aをn個(nは、整数。)結合した元を「n・a」と記述すると、n・E(m)=E(n・m)である。ここで、mは、平文を表わす。この演算のことを「スカラー倍」と呼ぶ。なお、ここでは有限群の群演算を加法として記述しているが、有限群の群演算を乗法として記述する場合、同じ演算を「累乗」と呼び、「na」のように記述する。
平文が、所定の数を法とする整数であるとすると、平文を元とする有限群は、環(または体)になる。環の演算には、加法と乗法とがある。平文を元とする有限環における加法は、暗号文を元とする有限群における群演算に対応づけられる。所定の数を法とする整数を元とする有限環における乗法は、スカラー倍と一致する。すなわち、平文を元とする有限環における乗法は、暗号文を元とする有限群における元のスカラー倍に対応づけられる。
平文を元とする有限環の乗法における元aの逆元を「a−1」と記述する。平文mの逆元m−1が存在する場合、暗号文を元とする有限群の群演算でE(n・m)をm−1個結合すると、平文nを暗号化した暗号文E(n)になる。
生体認証システム100は、このことを利用する。
第一チャレンジ生成工程S701において、乱数生成部303は、0以上q未満の整数のなかからランダムに選択した整数を、平文としての乱数とする。乱数生成部303は、T個の平文としての乱数x1,x2,…,xTを生成する。これを、特徴ベクトルと同じT次元のベクトル(x1,x2,…,xT)とみなす。
暗号化乱数生成部304は、T次元ベクトル(x1,x2,…,xT)の各成分を、暗号化変換したT次元ベクトル(E(x1),E(x2),…,E(xT))を生成する。これが、第一チャレンジである。
原理的には、これをそのまま第一レスポンスとしてもよいが、そうすると、第一チャレンジと第一レスポンスとの間の関係から、特徴ベクトルの値が計算できる可能性がある。
これを防ぐため、暗号化データ埋め込み部217は、乱数生成部215が生成した乱数を使ってランダム化処理をする。乱数生成部215が生成する乱数は、平文を暗号化するために使用する乱数である。暗号化データ埋め込み部217は、乱数生成部215が生成した乱数を使って、平文「0」を暗号化した暗号文E(0)をT個生成する。生体認証システム100が利用する暗号方式は、1つの平文に対応する暗号文が複数あり、そのなかからランダムに暗号文を選択することにより、暗号文から平文に関する情報が漏れるのを防ぐ。したがって、平文「0」に対応する暗号文E(0)も複数あり、暗号化データ埋め込み部217が生成するT個の暗号文E(0)は、通常、互いに異なっている。そこで、これをE01,E02,…,E0Tと記述する。暗号化データ埋め込み部217は、暗号文を元とする有限群における群演算により、算出したT次元ベクトル(y1・E(x1),y2・E(x2),…,yT・E(xT))の各成分と、算出した暗号文E01,E02,…,E0Tとを、それぞれ結合して、T次元ベクトル(y1・E(x1)+E01,y2・E(x2)+E02,…,yT・E(xT)+E0T)を算出する。暗号の加法的準同型性より、算出したT次元ベクトルの各成分yi・E(xi)+E0i(iは、1以上T以下の整数。)は、特徴ベクトルの成分yiと乱数xiとの積yi・xiを暗号化変換した暗号文E(yi・xi)になるが、暗号文E0iと結合する前の暗号文とは、異なる暗号文に変わっている。
このT次元ベクトル(y1・E(x1)+E01,y2・E(x2)+E02,…,yT・E(xT)+E0T)=(E(y1・x1),E(y2・x2),…,E(yT,xT))が、第一レスポンスである。
暗号化データ抽出部305は、第一レスポンス(E(y1・x1),E(y2・x2),…,E(yT,xT))の各成分を、算出した逆元でスカラー倍して、T次元ベクトル(x1 −1・E(y1,x1),x2 −1・E(y2,x2),…xT −1・E(yT・xT))を算出する。暗号の加法的準同型性より、算出したT次元ベクトルの各成分xi −1・E(yi・xi)(iは、1以上T以下の整数。)は、特徴ベクトルの成分yiを暗号化変換した暗号文E(yi)になる。
このようにして、認証装置102は、暗号化特徴ベクトルC’を算出する。
ここで、第一レスポンスは、特徴ベクトルを認証装置102の公開鍵で暗号化したものであると同時に、復号装置103の公開鍵pkでも暗号化したものであり、特徴ベクトルを二重に暗号化したものと言える。認証装置102は、秘密鍵で第一レスポンスを復号できるが、その結果として得られるのは、特徴ベクトルを復号装置103の公開鍵pkで暗号化した暗号化特徴ベクトルである。暗号化特徴ベクトルを更に復号して特徴ベクトルを得るには、復号装置103の秘密鍵skが必要である。認証装置102は、公開鍵pkに対応付けられている秘密鍵skを知らないので、暗号化特徴ベクトルCや暗号化特徴ベクトルC’を復号することはできない。
なお、認証装置102になりすました装置が、復号装置103の公開鍵pkを使った暗号化変換により第一チャレンジを生成するのではなく、秘密鍵sk’と公開鍵pk’との組を生成し、生成した公開鍵pk’を使った暗号化変換により第一チャレンジを生成したとしても、第一レスポンスから暗号化特徴ベクトルC’を復号することはできない。第一レスポンスの各成分には、復号装置103の公開鍵pkを使った暗号化変換により生成したE0iが結合されるから、その時点で、第一レスポンスは、いかなる秘密鍵でも復号できない無意味なデータになる。すなわち、第一レスポンスが意味のあるデータとなるためには、証明装置101が記憶している公開鍵と、認証装置102が記憶している公開鍵とが同じであることが条件となる。
第一チャレンジ生成工程S701で乱数生成部303が生成する平文としての乱数が、第一レスポンスを復号するための鍵(一時秘密鍵)であるのと同様、第二チャレンジ生成工程S712で乱数生成部303が生成する平文としての乱数は、第二レスポンスを復号するための鍵(一時鍵)である。
ただし、第二チャレンジと第二レスポンスとの関係は、第一チャレンジと第一レスポンスとの関係とは異なる。第一チャレンジは、認証装置102の一回限りの公開鍵である。証明装置101は、認証装置102の公開鍵と、復号装置103の公開鍵とを使って、特徴ベクトルを二重に暗号化することにより、第一レスポンスを生成する。これに対し、第二チャレンジは、それ自身が暗号化されたデータである。第二チャレンジは、認証装置102の鍵を使って、復号装置103の公開鍵で暗号化されたデータを更に暗号化したデータである。すなわち、第二チャレンジは、二重に暗号化されたデータである。復号装置103は、復号装置103の秘密鍵を使って、第二チャレンジを復号して第二レスポンスを生成する。復号装置103は、二重に暗号化された第二チャレンジを復号して、認証装置102の鍵だけで暗号化されたデータを生成する。認証装置102は、認証装置102の鍵を使って、第二レスポンスを復号することにより、平文の類似度を得る。
平文の類似度を算出するための計算は、いくつかの段階に分けられ、それぞれの段階が、例えば、第二チャレンジ生成工程S712、第二レスポンス生成工程S716などで実行される。第二チャレンジ生成工程S712において、認証装置102は、特徴ベクトルが暗号化されたままの状態で、類似度算出のための計算の一部を実行する。したがって、この段階で、認証装置102が特徴ベクトルを知ることはできない。第二チャレンジは、既に一部の計算が終わった状態のデータを二重に暗号化したものである。既に一部の計算が終わっているので、第二チャレンジのなかには、もとの特徴ベクトルの情報すべてが含まれるのではなく、類似度の計算に必要な情報だけが含まれている。第二レスポンス生成工程S716において、復号装置103は、第二チャレンジを復号して、類似度の計算に必要な情報を認証装置102の鍵で暗号化したデータを得る。復号装置103は、認証装置102の鍵で暗号化されたままの状態で、類似度算出のための計算の一部を実行する。したがって、この段階で、復号装置103が特徴ベクトルや平文の類似度を知ることはできない。第二レスポンスは、既にほとんどの計算が終わった状態のデータを暗号化したものである。既にほとんどの計算が終わっているので、第二レスポンスのなかには、もとの特徴ベクトルの情報は含まれていない。平文類似度算出工程S719において、認証装置102は、第二レスポンスを復号し、類似度を算出する。平文の類似度そのものは、平文類似度算出工程S719より前には現れない。
また、平文の類似度は、登録用の特徴ベクトルbと認証用の特徴ベクトルb’とがどの程度類似しているかのみを示す情報である。したがって、平文の類似度から特徴ベクトルや生体情報を計算することは困難である。
Vにおける加法「+」は、Vの任意の2つの元x=(gx1,gx2,…,gxn),y=(gy1,gy2,…,gyn)に対して、Vの元(gx1+y1,gx2+y2,…,gxn+yn)を、2つの元x,yの加法「+」による結合x+yとして定義する。
Vにおけるスカラー倍は、Vの任意の元x=(gx1,gx2,…,gxn)と、有限体Fqの任意の元αとに対して、Vの元(gαx1,gαx2,…,gαxn)を、元xを元αでスカラー倍した元αxとして定義する。
このとき、Vは、ベクトル空間となる。ベクトル空間Vの元を「ベクトル」と呼ぶ。
このとき、Aは、ベクトル空間Vの基底となる。基底Aを標準基底と呼ぶ。
n個の有限体Fqの直積Fq nの要素(x1,x2,…,xn)が与えられたとき、ベクトル空間Vにおけるベクトルx=x1ь1+x2ь2+…+xnьnは、容易に計算できる。また、ベクトル空間Vにおけるベクトルx=x1ь1+x2ь2+…+xLьL(Lは、2以上n以下の整数。)が与えられたとき、正則行列Xを使えば、ベクトル空間Vにおけるベクトルy=x1ь1+x2ь2+xlьl(lは、1以上L未満の整数。)を計算できる。しかし、正則行列Xを使わなければ、ベクトルyを計算することは、一般化されたディフィー−ヘルマン計算問題と同程度に困難である。
ベクトル分解処理S540は、ベクトル空間Vにおけるベクトルxと、ベクトルxから取り出したいベクトル成分<ь1,ь2,…,ьl>と、n次の正則行列Xと、ランダム基底Bとを入力し、ベクトル空間Vにおけるベクトルy=ΣiΣjΣk[ti,jχj,kφk,i(x)](iは、1以上L以下の整数。jは、1以上l以下の整数。kは、1以上L以下の整数。ti,jは、正則行列Xの逆行列T=X−1のi行j列成分。)を出力する。ベクトル分解処理S540は、例えば、逆行列算出工程S541と、第一初期化工程S542と、第一繰り返し工程S543と、第二初期化工程S544と、第二繰り返し工程S545と、第三初期化工程S546と、第三繰り返し工程S547と、係数累計工程S548と、写像計算工程S549と、スカラー倍工程S550と、ベクトル累計工程S551とを有する。
第一初期化工程S542において、ベクトル空間Vの元yを0に初期化する。整数iを0に初期化する。
第一繰り返し工程S543において、整数iに1を加える。整数iが整数Lより大きい場合、元yを出力して、ベクトル分解処理S540を終了する。整数iが整数L以下である場合、第二初期化工程S544へ進む。
第二初期化工程S544において、整数kを0に初期化する。
第二繰り返し工程S545において、整数kに1を加える。整数kが整数Lより大きい場合、第一繰り返し工程S543に戻る。整数kが整数L以下である場合、第三初期化工程S546へ進む。
第三初期化工程S546において、整数jを0に初期化し、係数κを0に初期化する。
第三繰り返し工程S547において、整数jに1を加える。整数jが整数lより大きい場合、写像計算工程S549へ進む。整数jが整数l以下である場合、係数累計工程S548へ進む。
係数累計工程S548において、逆行列算出工程S541で算出した逆行列X−1のi行j列の成分ti,jと、正則行列Xのj行k列の成分χj,kとの積を計算する。計算した積を係数κに加え、第三繰り返し工程S547に戻る。
写像計算工程S549において、ベクトル空間Vにおけるベクトルxのディストーション写像φk,i(x)を計算して、ベクトルφとする。
スカラー倍工程S550において、写像計算工程S549で計算したベクトルφ=φk,i(x)をκ倍したベクトルφ’=κφを計算する。
ベクトル累計工程S551において、スカラー倍工程S550で計算したベクトルφ’=κφk,i(x)をベクトルyに加え、第二繰り返し工程S545に戻る。
復号装置103の鍵生成部401は、例えば、群決定部421と、標準基底設定部422と、乱数生成部423と、行列式算出部424と、正則行列設定部425と、ランダム基底算出部426とを有する。
群決定部421は、処理装置911を用いて、セキュリティレベルに応じて定まる大きさ(ビット数)に基づいて、素数qを生成する。素数qが大きいほど、安全性は高くなるが、暗号文が大きくなり、暗号処理や復号処理に時間がかかる。素数qの大きさは、例えば200ビットや1024ビットなどである。群決定部421は、生成した素数qに基づいて、有限群Gと有限群GTとを決定する。群決定部421が決定する有限群Gと有限群GTとは、ともに位数がqであり、ペアリングe:G×G→GTを持つ。群決定部421は、有限群Gの生成元gを算出する。なお、設定の順序は異なっていてもよく、例えば、最初に有限群Gを決定してから、有限群Gの位数を算出し、有限群Gの位数が、セキュリティレベルを満たす大きさの素数であるかを判定する構成であってもよい。
標準基底設定部422は、処理装置911を用いて、セキュリティレベルに応じて定まる次元nに基づいて、n次元のベクトル空間Vを設定し、ベクトル空間Vの標準基底Aを設定する。次元nが大きいほど、安全性は高くなるが、暗号文が大きくなり、暗号処理や復号処理に時間がかかる。次元nは、例えば3などである。
乱数生成部423は、処理装置911を用いて、群決定部421が決定した有限群Gの位数qに基づいて、n2個の乱数χi,j(i,jは、1以上n以下の整数。)を生成する。乱数生成部423が生成する乱数χi,jは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。
行列式算出部424は、処理装置911を用いて、乱数生成部423が生成したn2個の乱数χi,jに基づいて、n次の正方行列Xを生成する。行列式算出部424が生成する正方行列Xは、それぞれの乱数χi,jをi行j列の成分とする行列である。行列式算出部424は、処理装置911を用いて、生成した正方行列Xの行列式|X|を算出する。
正則行列設定部425は、処理装置911を用いて、行列式算出部424が算出した行列式|X|が0でない場合に、行列式算出部424が生成した正方行列Xを、正則行列Xとして設定する。
ランダム基底算出部426は、処理装置911を用いて、標準基底設定部422が設定した標準基底Aと、正則行列設定部425が設定した正則行列Xとに基づいて、ランダム基底Bを算出する。ランダム基底算出部426が算出するランダム基底Bの各ベクトルьi(iは、1以上n以下の整数。)は、ьi=Σj[χi,jaj](jは、1以上n以下の整数。)である。ランダム基底算出部426は、例えば次のようにして、ランダム基底Bのi番目のベクトルьiを算出する。ランダム基底算出部426は、1以上n以下のすべての整数jについて、正則行列Xのi行j列の成分χi,jと、標準基底Aのj番目のベクトルajとに基づいて、ベクトル空間Vにおけるスカラー倍により、ベクトルajをχi,j倍したベクトルχi,jajを算出する。ランダム基底算出部426は、ベクトル空間Vにおける加法により、算出したn個のベクトルχi,jajを結合したベクトルΣj[χi,jaj]を算出する。
復号装置103の秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、正則行列設定部425が設定した正則行列Xを格納する。
鍵生成工程S501では、復号装置103が、公開鍵pkと秘密鍵skとの組を生成する。なお、ユーザごとに異なる公開鍵pkと秘密鍵skとの組を生成する構成であってもよいし、システム全体として1つの公開鍵pkと秘密鍵skとの組を生成する構成であってもよい。
鍵生成工程S501は、例えば、群決定工程S511と、標準基底設定工程S512と、行列生成工程S513と、正則判定工程S514と、ランダム基底算出工程S515とを有する。
標準基底設定工程S512において、標準基底設定部422が、処理装置911を用いて、群決定工程S511で群決定部421が決定した有限群Gに基づいて、ベクトル空間Vと、ベクトル空間Vの標準基底Aとを設定する。公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkの一部として、標準基底設定部422が設定したベクトル空間Vと標準基底Aとを記憶する。
行列生成工程S513において、乱数生成部423が、処理装置911を用いて、n2個の乱数χi,jを生成する。行列式算出部424が、処理装置911を用いて、乱数生成部423が生成したn2個の乱数χi,jに基づいて、n次の正方行列Xを生成する。
正則判定工程S514において、行列式算出部424が、処理装置911を用いて、行列生成工程S513で生成した正方行列Xの行列式|X|を計算する。
行列式算出部424が計算した行列式|X|が0である場合、行列式算出部424が、行列生成工程S513に処理を戻し、乱数生成部423が乱数を生成し直す。
行列式算出部424が計算した行列式|X|が0でない場合、正則行列設定部425が、処理装置911を用いて、正方行列Xを正則行列Xとして設定する。秘密鍵記憶部413が、記憶装置914を用いて、秘密鍵skとして、正則行列設定部425が設定した正則行列Xを記憶する。
ランダム基底算出工程S515において、ランダム基底算出部426が、処理装置911を用いて、標準基底設定工程S512で標準基底設定部422が設定した標準基底Aと、正則判定工程S514で正則行列設定部425が設定した正則行列Xとに基づいて、ランダム基底Bを算出する。公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkの一部として、ランダム基底算出部426が算出したランダム基底Bを記憶する。
特徴ベクトル暗号化工程S603では、登録装置104が、特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。特徴ベクトル暗号化工程S603は、例えば、初期化工程S610と、繰り返し工程S611と、乱数生成工程S612と、ベクトル算出工程S613とを有する。
暗号化データ生成部206が生成する暗号化特徴ベクトルCは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(c1,c2,…,cT)である。
繰り返し工程S611において、暗号化データ生成部206が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化データ生成部206は、特徴ベクトル暗号化工程S603を終了する。整数iがT以下である場合、暗号化データ生成部206は、乱数生成工程S612へ処理を進め、暗号化特徴ベクトルCのi番目の成分ciを生成する。
乱数生成工程S612において、乱数生成部205が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である位数qに基づいて、(n−1)個の乱数rj,i(jは、2以上n以下の整数。)を生成する。乱数生成部205が生成する乱数rj,iは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。
ベクトル算出工程S613において、暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部であるランダム基底Bと、特徴ベクトル形成部204が生成した特徴ベクトルbのi番目の成分biと、乱数生成工程S612で乱数生成部205が生成した(n−1)個の乱数rj,iとに基づいて、暗号化特徴ベクトルCのi番目の成分ciを算出する。暗号化データ生成部206が算出する暗号化特徴ベクトルCのi番目の成分ciは、ベクトル空間Vにおけるスカラー倍によりランダム基底Bの最初のベクトルь1を整数biでスカラー倍したベクトルbiь1と、ベクトル空間Vにおけるスカラー倍によりランダム基底Bの2番目以降のベクトルьj(jは、2以上n以下の整数。)をそれぞれ乱数rj,iでスカラー倍した(n−1)個のベクトルrj,iьjとを、ベクトル空間Vにおける加法により結合したベクトルbiь1+Σj[rj,iьj](jは、2以上n以下の整数。)である。例えば、暗号化データ生成部206は、ランダム基底Bの最初のベクトルь1と、特徴ベクトルbのi番目の成分biとに基づいて、ベクトル空間Vにおけるスカラー倍によりベクトルь1を整数biでスカラー倍したベクトルbiь1を算出する。また、暗号化データ生成部206は、2以上n以下のすべての整数jについて、ランダム基底Bのj番目のベクトルьjと、乱数生成部205が生成した(n−1)個の乱数のうち(j−1)番目の乱数rj,iとに基づいて、ベクトル空間Vにおけるスカラー倍によりベクトルьjを乱数rj,iでスカラー倍したベクトルrj,iьjを算出する。暗号化データ生成部206は、ベクトル空間Vにおける加法により、算出したベクトルbiь1と、算出した(n−1)個のベクトルrj,iьjとをすべて結合したベクトルbiь1+Σj[rj,iьj](jは、2以上n以下の整数。)を算出する。
暗号化データ生成部206は、繰り返し工程S611に処理を戻し、暗号化特徴ベクトルCの次の成分を生成する。
第一チャレンジ生成工程S701では、認証装置102が、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、ベクトル算出工程S723とを有する。
認証装置102の暗号化乱数生成部304が生成する第一チャレンジRは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(R1,R2,…,RT)である。
繰り返し工程S721において、暗号化乱数生成部304が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化乱数生成部304は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、暗号化乱数生成部304は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Riを生成する。
乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数qに基づいて、n個の乱数Rj,i(jは、1以上n以下の整数。)を生成する。乱数生成部303が生成する乱数Rj,iは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成したn個の乱数Rj,iのうち最初の乱数R1,iを記憶する。
ベクトル算出工程S723において、暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成工程S722で乱数生成部303が生成したn個の乱数Rj,iとに基づいて、第一チャレンジRのi番目の成分Riを算出する。暗号化乱数生成部304が算出する第一チャレンジRのi番目の成分Riは、ベクトル空間Vにおけるスカラー倍によりランダム基底Bの各ベクトルьj(jは、1以上n以下の整数。)をそれぞれ乱数Rj,iでスカラー倍したn個のベクトルRj,iьjを、ベクトル空間Vにおける加法により結合したベクトルΣj[Rj,iьj](jは、1以上n以下の整数。)である。例えば、暗号化乱数生成部304は、1以上n以下のすべての整数jについて、ランダム基底Bのj番目のベクトルьjと、乱数生成部205が生成したn個の乱数のうちj番目の乱数rj,iとに基づいて、ベクトル空間Vにおけるスカラー倍により、ベクトルьjを乱数Rj,iでスカラー倍したベクトルRj,iьjを算出する。暗号化乱数生成部304は、ベクトル空間Vにおける加法により、算出したn個のベクトルRj,iьjを結合したベクトルΣj[Rj,iьj](jは、1以上n以下の整数。)を算出する。
暗号化乱数生成部304は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。
証明装置101の暗号化データ埋め込み部217は、例えば、スカラー倍算出部231と、零生成部232と、ベクトル結合部233とを有する。
乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkの一部である位数qに基づいて、(n−1)T個の乱数R’j,i(iは、1以上T以下の整数。jは、2以上n以下の整数。)を生成する。乱数生成部215が生成する乱数R’j,iは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。
零生成部232は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成部215が生成した(n−1)T個の乱数R’j,iとに基づいて、暗号化零ベクトルOを生成する。暗号化零ベクトルOは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(o1,o2,…,oT)である。暗号化零ベクトルOのi番目の成分oi(iは、1以上T以下の整数。)は、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの2番目からn番目までのベクトルьj(jは、2以上n以下の整数。)をそれぞれ乱数R’j,iでスカラー倍した(n−1)個のベクトルR’j,iьjを、ベクトル空間Vにおける加法により結合したベクトルΣj[R’j,iьj](jは、2以上n以下の整数。)である。暗号化零ベクトルOの各成分は、0を暗号化したものである。
ベクトル結合部233は、処理装置911を用いて、スカラー倍算出部231が算出したスカラー倍ベクトルЯと、零生成部232が生成した暗号化零ベクトルOとに基づいて、第一レスポンスR’を算出する。第一レスポンスR’は、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(R’1,R’2,…,R’T)である。第一レスポンスR’のi番目の成分R’i(iは、1以上T以下の整数。)は、ベクトル空間Vにおける加法により、スカラー倍ベクトルЯのi番目の成分яiと、暗号化零ベクトルOのi番目の成分oiとを結合したベクトルяi+oiである。第一レスポンスR’の各成分R’iは、第一チャレンジRの成分Riにおいて暗号化されている平文としての乱数R1,iと、特徴ベクトルb’の成分b’iとの積を暗号化したものになる。
第一レスポンス生成工程S707では、証明装置101が、特徴ベクトルb’と、第一チャレンジRとに基づいて、第一レスポンスR’を生成する。第一レスポンス生成工程S707は、例えば、初期化工程S660と、繰り返し工程S661と、スカラー倍算出工程S662と、乱数生成工程S663と、零生成工程S664と、ベクトル結合工程S665とを有する。
繰り返し工程S661において、ベクトル結合部233が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、ベクトル結合部233は、第一レスポンス生成工程S707を終了する。整数iがT以下である場合、ベクトル結合部233は、スカラー倍算出工程S662へ処理を進め、第一レスポンスR’のi番目の成分R’iを生成する。
スカラー倍算出工程S662において、スカラー倍算出部231が、処理装置911を用いて、特徴ベクトル形成部214が生成した特徴ベクトルb’のi番目の成分b’iと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目のベクトルRiとに基づいて、スカラー倍ベクトルЯのi番目の成分яi=b’iRiを算出する。
乱数生成工程S663において、乱数生成部215が、処理装置911を用いて、(n−1)個の乱数R’j,i(jは、2以上n以下の整数。)を生成する。
零生成工程S664において、零生成部232が、処理装置911を用いて、乱数生成工程S663で乱数生成部215が生成した(n−1)個の乱数R’j,iに基づいて、暗号化零ベクトルOのi番目の成分oi=Σj[R’j,iьj](jは、2以上n以下の整数。)を算出する。例えば、零生成部232は、2以上n以下のすべての整数jについて、ランダム基底Bのj番目のベクトルьjと、乱数生成部215が生成した(n−1)個の乱数のうち(j−1)番目の乱数R’j,iとに基づいて、ベクトル空間Vにおけるスカラー倍により、ベクトルьjをR’j,iでスカラー倍したベクトルR’j,iьjを算出する。零生成部232は、ベクトル空間Vにおける加法により、算出した(n−1)個のベクトルR’j,iьjを結合したベクトルΣj[R’j,iьj]を算出する。
ベクトル結合工程S665において、ベクトル結合部233が、処理装置911を用いて、スカラー倍算出工程S662でスカラー倍算出部231が算出したスカラー倍ベクトルЯのi番目の成分яi=b’iRiと、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=Σj[R’j,iьj](jは、2以上n以下の整数。)とに基づいて、第一レスポンスR’のi番目の成分R’i=яi+oi=b’iRi+Σj[R’j,iьj]を算出する。
ベクトル結合部233は、繰り返し工程S661に処理を戻し、第一レスポンスR’の次の成分を生成する。
まず、スカラー倍する必要がないので、スカラー倍算出部231を設けず、スカラー倍算出工程S662を実行しない。
ベクトル結合工程S665において、ベクトル結合部233は、処理装置911を用いて、特徴ベクトルb’のi番目の成分b’iが0であるか1であるかを判定する。特徴ベクトルb’のi番目の成分b’iが0である場合、ベクトル結合部233は、処理装置911を用いて、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=Σj[R’j,iьj]を、第一レスポンスR’のi番目の成分R’iとする。特徴ベクトルb’のi番目の成分b’iが1である場合、ベクトル結合部233は、処理装置911を用いて、ベクトル空間Vにおける加法により、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=Σj[R’j,iьj]と、第一チャレンジ受信部211が受信した第一チャレンジRのi番目の成分Riとを結合したベクトルoi+Ri=Ri+Σj[R’j,iьj]を算出して、第一レスポンスR’のi番目の成分R’iとする。
認証装置102の暗号化データ抽出部305は、例えば、逆数算出部351と、スカラー倍算出部352とを有する。
スカラー倍算出部352は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’と、逆数算出部351が算出したT個の逆元κiとに基づいて、暗号化特徴ベクトルC’を算出する。スカラー倍算出部352が算出する暗号化特徴ベクトルC’のi番目の成分c’i(iは、1以上T以下の整数。)は、ベクトル空間Vにおけるスカラー倍により、第一レスポンスR’のi番目の成分R’iを、i番目の逆元κiでスカラー倍したベクトルκiR’iである。暗号化特徴ベクトルC’の各成分c’iは、特徴ベクトルb’の成分b’iを暗号化したものになる。
暗号化生体情報抽出工程S710では、認証装置102が、第一レスポンスR’に基づいて、暗号化特徴ベクトルC’を生成する。暗号化生体情報抽出工程S710は、例えば、初期化工程S730と、繰り返し工程S731と、逆数算出工程S732と、スカラー倍算出工程S733とを有する。
繰り返し工程S731において、スカラー倍算出部352が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、スカラー倍算出部352は、暗号化生体情報抽出工程S710を終了する。整数iがT以下である場合、スカラー倍算出部352は、逆数算出工程S732へ処理を進め、暗号化特徴ベクトルC’のi番目の成分c’iを生成する。
逆数算出工程S732において、逆数算出部351が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数記憶部322が記憶したT個の乱数のうちi番目の乱数R1,iに基づいて、有限体Fqの乗法における乱数R1,iの逆元κi=R1,i −1を算出する。
スカラー倍算出工程S733において、スカラー倍算出部352は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’のi番目の成分R’iと、逆数算出工程S732で算出した逆元κiとに基づいて、暗号化特徴ベクトルC’のi番目の成分c’i=κiR’iを算出する。
スカラー倍算出部352は、繰り返し工程S731に処理を戻し、暗号化特徴ベクトルC’の次の成分を生成する。
認証装置102の暗号化ランダム類似度算出部314は、例えば、差分算出部361と、撹乱ベクトル生成部362と、ベクトル結合部363と、スカラー倍算出部364と、二乗和算出部365と、暗号化鍵生成部366と、ベクトル累計部367とを有する。
乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数u1を記憶する。
なお、暗号化差分ベクトルΔCのi番目の成分Δciは、ベクトル空間Vにおける加法により、暗号化特徴ベクトルCのi番目の成分ciの逆ベクトル−ciと、暗号化特徴ベクトルC’のi番目の成分c’iとを結合したベクトルc’i−ciであってもよい。また、暗号化差分ベクトルΔCの成分Δciは、ベクトルci−c’iと、ベクトルc’i−ciとのなかから、ランダムに選択したいずれかのベクトルであってもよい。
撹乱ベクトル生成部362は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成部303が生成した乱数のうちnT個の乱数tj,iとに基づいて、撹乱ベクトルтを生成する。撹乱ベクトルтは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(t1,t2,…,tT)である。撹乱ベクトルтの各成分ti(iは、1以上T以下の整数。)は、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの各ベクトルьj(jは、1以上n以下の整数。)を、それぞれ乱数tj,iでスカラー倍したn個のベクトルtj,iьjを、ベクトル空間Vにおける加法により結合したベクトルΣj[tj,iьj](jは、1以上n以下の整数。)である。撹乱ベクトルтの各成分tiは、平文としての乱数t1,iを暗号化したものである。
ベクトル結合部363は、処理装置911を用いて、差分算出部361が算出した暗号化差分ベクトルΔCと、撹乱ベクトル生成部362が算出した撹乱ベクトルтとに基づいて、第二チャレンジC^の一部であるT個のベクトルc^ i(iは、1以上T以下の整数。)を算出する。ベクトルc^ iは、ベクトル空間Vにおけるベクトルである。i番目のベクトルc^ iは、ベクトル空間Vにおける加法により、暗号化差分ベクトルΔCのi番目の成分Δciと、撹乱ベクトルтのi番目の成分tiとを結合したベクトルΔci+tiである。ベクトルc^ iは、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差と平文としての乱数t1,iとの和(bi−b’i)+t1,iを暗号化したものである。
スカラー倍算出部364は、処理装置911を用いて、差分算出部361が算出した暗号化差分ベクトルΔCと、乱数生成部303が生成した乱数のうちT個の平文としての乱数t1,iとに基づいて、スカラー倍ベクトル¢を算出する。スカラー倍ベクトル¢は、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(¢1,¢2,…,¢T)である。スカラー倍算出部364が算出するスカラー倍ベクトル¢のi番目の成分¢i(iは、1以上T以下の整数。)は、ベクトル空間Vにおけるスカラー倍により、暗号化差分ベクトルΔCのi番目の成分Δciを、T個の平文としての乱数のうちのi番目の乱数t1,iの2倍でスカラー倍したベクトル2t1,iΔciである。スカラー倍算出部364が算出するスカラー倍ベクトル¢の各成分¢iは、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差と2t1,iとの積2t1,i(b−b’)を暗号化したものである。
二乗和算出部365は、処理装置911を用いて、乱数生成部303が生成した乱数のうちT個の平文としての乱数t1,iに基づいて、二乗和Σを算出する。二乗和Σは、T個の乱数t1,iの二乗を合計した値Σi[t1,i 2](iは、1以上T以下の整数。)である。
暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成部303が生成した乱数のうちn個の乱数ujと、二乗和算出部365が算出した二乗和Σとに基づいて、暗号化鍵цを算出する。暗号化鍵цは、ベクトル空間Vにおけるベクトルである、暗号化鍵цは、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの最初のベクトルь1を、n個の乱数のうちの最初の乱数u1と二乗和Σとの和でスカラー倍したベクトル(u1+Σ)ь1と、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの2番目以降のベクトルьj(jは、2以上n以下の整数。)を、n個の乱数のうちの2番目以降の乱数ujでそれぞれスカラー倍した(n−1)個のベクトルujьjとを、ベクトル空間Vにおける加法により結合したベクトル(u1+Σ)ь1+Σj[ujьj](jは、1以上n以下の整数。)である。例えば、暗号化鍵生成部366は、乱数生成部303が生成した乱数u1と、二乗和算出部365が算出した二乗和Σとの和u1+Σを算出する。暗号化鍵生成部366は、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの最初のベクトルь1を、算出した和u1+Σでスカラー倍したベクトル(u1+Σ)ь1を算出する。暗号化鍵生成部366は、2以上n以下のすべての整数jについて、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bのj番目のベクトルьjを、乱数生成部303が生成した乱数ujでスカラー倍したベクトルujьjを算出する。暗号化鍵生成部366は、ベクトル空間Vにおける加法により、算出したベクトル(u1+Σ)ь1と、算出した(n−1)個のベクトルujьjとを結合したベクトル(u1+Σ)ь1+Σj[ujьj](jは、1以上n以下の整数。)を算出する。
ベクトル累計部367は、処理装置911を用いて、スカラー倍算出部364が算出したスカラー倍ベクトル¢と、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、第二チャレンジC^の一部である1個のベクトルc^を算出する。ベクトルc^は、ベクトル空間Vにおけるベクトルである。ベクトルc^は、ベクトル空間Vにおける加法により、スカラー倍算出部364が算出したスカラー倍ベクトルの成分であるT個のベクトル¢i=2t1,iΔci(iは、1以上T以下の整数。)と、暗号化鍵ц=(u1+Σ)ь1+Σj[ujьj](jは、1以上n以下の整数。)とを結合したベクトルΣi[2t1,iΔci]+(u1+Σ)ь1+Σj[ujьj](iは、1以上T以下の整数。jは、1以上n以下の整数。)である。ベクトルc^は、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差と2t1,iとの積の総和と、t1,iの二乗の総和と、乱数u1との総合計u1+Σi[2t1,i(bi−b’i)+t1,i 2]を暗号化したものである。このうち、乱数u1は、類似度を暗号化・復号するための一時鍵としての乱数である。それ以外の部分であるΣi[2t1,i(bi−b’i)+t1,i 2]は、復号装置103が、平文としての乱数t1,iによる撹乱を除去して、暗号化された類似度を算出できるようにするための情報である。
なお、第二チャレンジC^の最初のT個のベクトルc^ iの順序は、特徴ベクトルb,b’の成分の順序と異なっていてもよい。
第二チャレンジ生成工程S712では、認証装置102が、2つの暗号化特徴ベクトルC,C’に基づいて、第二チャレンジC^を生成する。第二チャレンジ生成工程S712は、例えば、初期化工程S740と、繰り返し工程S741と、差分算出工程S742と、乱数生成工程S743と、撹乱ベクトル生成工程S744と、ベクトル結合工程S745と、スカラー倍算出工程S746と、ベクトル累計工程S747と、二乗累計工程S748と、乱数生成工程S749と、暗号化鍵生成工程S750と、ベクトル累計工程S751とを有する。
繰り返し工程S741において、ベクトル結合部363が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、ベクトル結合部363は、乱数生成工程S749へ処理を進める。整数iがT以下である場合、ベクトル結合部363は、差分算出工程S742へ処理を進め、第二チャレンジC^のi番目のベクトルc^ iを生成する。
差分算出工程S742において、差分算出部361が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iとに基づいて、暗号化差分ベクトルΔCのi番目の成分Δciを算出する。
乱数生成工程S743において、乱数生成部303が、処理装置911を用いて、n個の乱数tj,i(jは、1以上n以下の整数。)を生成する。
撹乱ベクトル生成工程S744において、撹乱ベクトル生成部362が、処理装置911を用いて、乱数生成工程S743で乱数生成部303が生成したn個の乱数tj,iに基づいて、撹乱ベクトルтのi番目の成分ti=Σj[tj,iьj](jは、1以上n以下の整数。)を生成する。
ベクトル結合工程S745において、ベクトル結合部363が、処理装置911を用いて、差分算出工程S742で差分算出部361が算出した暗号化差分ベクトルΔCのi番目の成分Δciと、撹乱ベクトル生成工程S744で撹乱ベクトル生成部362が算出した撹乱ベクトルтのi番目の成分tiとに基づいて、第二チャレンジC^のi番目のベクトルc^ i=Δci+tiを算出する。
なお、第二チャレンジC^の最初のT個のベクトルc^ iの順序と、特徴ベクトルb,b’の成分の順序とが異なる構成とする場合、ベクトル結合部363は、例えば、次のようにする。ベクトル結合部363は、初期化工程S740で、1以上T以下の整数をランダムに並べ替えた数列を生成しておく。ベクトル結合工程S745において、ベクトル結合部363は、その数列のi番目の整数を取得して整数jとし、算出したベクトルΔci+tiを、第二チャレンジC^のj番目のベクトルc^ jにする。
スカラー倍算出工程S746において、スカラー倍算出部364が、処理装置911を用いて、差分算出工程S742で差分算出部361が算出した暗号化差分ベクトルΔCのi番目の成分Δciと、乱数生成工程S743で乱数生成部303が生成したn個の乱数tj,iのうちの最初の乱数t1,iとに基づいて、スカラー倍ベクトル¢のi番目の成分¢i=t1,iΔciを算出する。
ベクトル累計工程S747において、ベクトル累計部367が、処理装置911を用いて、スカラー倍算出工程S746でスカラー倍算出部364が算出したスカラー倍ベクトル¢のi番目の成分¢i=t1,iΔciに基づいて、ベクトル空間Vにおける加法により、ベクトル¢iを、ベクトルc^に結合する。
二乗累計工程S748において、二乗和算出部365が、処理装置911を用いて、乱数生成工程S743で乱数生成部303が生成したn個の乱数tj,iのうちの最初の乱数t1,iに基づいて、有限体Fqにおける乗法により、乱数t1,iの二乗t1,i 2を算出し、有限体Fqにおける加法により、算出した二乗t1,i 2を、二乗和Σに結合する。
ベクトル結合部363は、繰り返し工程S741に処理を戻し、第二チャレンジC^の次のベクトルを生成する。
暗号化鍵生成工程S750において、暗号化鍵生成部366が、処理装置911を用いて、二乗累計工程S748で二乗和算出部365が累計した二乗和Σと、乱数生成工程S749で乱数生成部303が生成したn個の乱数ujとに基づいて、暗号化鍵цを生成する。
ベクトル累計工程S751において、ベクトル累計部367が、処理装置911を用いて、暗号化鍵生成工程S750で暗号化鍵生成部366が生成した暗号化鍵цに基づいて、ベクトル空間Vにおける加法により、暗号化鍵цを、ベクトルc^に結合する。これにより、第二チャレンジC^の(T+1)番目のベクトルc^が完成し、第二チャレンジC^も完成する。
復号装置103の復号部404は、例えば、逆行列算出部471と、ベクトル分解部472と、二乗算出部473と、群変換部474と、元結合部475とを有する。
ベクトル分解部472は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである正則行列Xと、第二チャレンジ受信部402が受信した第二チャレンジC^と、逆行列算出部471が算出した逆行列X−1とに基づいて、(T+1)個の復号ベクトルyi,y(iは、1以上T以下の整数。)を算出する。復号ベクトルyi,yは、ベクトル空間におけるベクトルである。i番目の復号ベクトルyi(iは、1以上T以下の整数。)は、第二チャレンジC^のi番目のベクトルc^ iを、ランダム基底Bの一次結合に分解し、2番目以降のベクトルьj(jは、2以上n以下の整数。)にかかる成分を取り除いて、ランダム基底Bの最初のベクトルь1のスカラー倍にしたベクトルである。復号ベクトルyは、第二チャレンジC^の(T+1)番目のベクトルc^を、ランダム基底Bの一次結合に分解し、2番目以降のベクトルьj(jは、2以上n以下の整数。)にかかる成分を取り除いて、ランダム基底Bの最初のベクトルь1のスカラー倍にしたベクトルである。ベクトル分解部472は、例えば、図11に示したベクトル分解処理S540の手順により、復号ベクトルyi,yを算出する。第二チャレンジC^のi番目のベクトルc^ i(iは、1以上T以下の整数。)は、Δci+tiであるから、i番目の復号ベクトルyiは、(bi−b’i+t1,i)ь1になる。また、第二チャレンジC^の(T+1)番目のベクトルc^は、Σi[2t1,iΔci]+(Σi[t1,i 2])ь1+Σj[ujьj](iは、1以上T以下の整数。jは、1以上n以下の整数。)であるから、復号ベクトルyは、(u1+Σi[2t1,i(bi−b’i)+t1,i 2])ь1になる。
二乗算出部473は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部であるペアリングeと、ベクトル分解部472が算出したT個の復号ベクトルyiとに基づいて、T個の二乗元y’i(iは、1以上T以下の整数。)を算出する。二乗元y’iは、有限群GTの元である。i番目の二乗元y’i(iは、1以上T以下の整数。)は、ペアリングeにより、i番目の復号ベクトルyi同士の組を変換した元e(yi,yi)である。i番目の復号ベクトルyiは、(bi−b’i+t1,i)ь1であるから、ペアリングeの双線形性より、i番目の二乗元y’iは、ペアリングeによりランダム基底Bの最初のベクトルь1同士の組を変換した有限群GTの元e(ь1,ь1)を、有限群GTにおける累乗により、(bi−b’i+t1,i)の二乗で累乗した元になる。
群変換部474は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部であるペアリングe及びランダム基底Bと、ベクトル分解部472が算出した復号ベクトルyとに基づいて、変換元y’を算出する。変換元y’は、有限群GTの元である。変換元y’は、ペアリングeにより、復号ベクトルyと、ランダム基底Bの最初のベクトルь1との組を変換した元e(y,ь1)である。復号ベクトルyは、(u1+Σi[2t1,i(bi−b’i)+t1,i 2])ь1であるから、ペアリングeの双線形性より、変換元y’は、有限群GTにおける累乗により、有限群GTの元e(ь1,ь1)を(u1+Σi[2t1,i(bi−b’i)+t1,i 2])(iは、1以上T以下の整数。)で累乗した元になる。
元結合部475は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部である有限群GTと、二乗算出部473が算出したT個の二乗元y’iと、群変換部474が算出した変換元y’とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、有限群GTの元である。元結合部475が算出する第二レスポンスZは、有限群GTにおける乗法により、T個の二乗元y’iと、変換元y’の逆元y’−1とを結合した元である。第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元e(ь1,ь1)を(Σi[(bi−b’i)2]−u1)(iは、1以上T以下の整数。)で累乗した元になる。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間のユークリッド距離の二乗Σi[(bi−b’i)2]を、一時鍵としての乱数u1で暗号化したものになる。
第二レスポンス生成工程S716では、復号装置103が、第二チャレンジC^から、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、逆行列算出工程S561と、ベクトル分解工程S566と、群変換工程S567と、初期化工程S560と、繰り返し工程S562と、ベクトル分解工程S563と、二乗算出工程S564と、元結合工程S565とを有する。
ベクトル分解工程S566において、ベクトル分解部472が、処理装置911を用いて、逆行列算出工程S561で逆行列算出部471が算出した逆行列X−1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジC^の最後のベクトルc^をベクトル分解して、復号ベクトルyを算出する。
群変換工程S567において、群変換部474が、処理装置911を用いて、ベクトル分解工程S566でベクトル分解部472が算出した復号ベクトルyに基づいて、変換元y’を算出する。
初期化工程S560において、元結合部475が、処理装置911を用いて、整数iを0に初期化し、第二レスポンスZを、有限群GTの乗法における変換元y’の逆元y’−1に初期化する。
繰り返し工程S562において、元結合部475が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二レスポンスZが完成したので、元結合部475は、第二レスポンス生成工程S716を終了する。整数iがT以下である場合、元結合部475は、ベクトル分解工程S563へ処理を進める。
ベクトル分解工程S563において、ベクトル分解部472が、処理装置911を用いて、逆行列算出工程S561で逆行列算出部471が算出した逆行列X−1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジC^のi番目のベクトルc^ iをベクトル分解して、i番目の復号ベクトルyiを算出する。
二乗算出工程S564において、二乗算出部473が、処理装置911を用いて、ベクトル分解工程S563でベクトル分解部472が算出したi番目の復号ベクトルyiに基づいて、i番目の二乗元y’i=e(yi,yi)を算出する。
元結合工程S565において、元結合部475が、処理装置911を用いて、二乗算出工程S564で二乗算出部473が算出したi番目の二乗元y’iに基づいて、有限群GTにおける乗法により、i番目の二乗元y’iを、第二レスポンスZに結合する。
元結合部475は、繰り返し工程S562に処理を戻し、第二チャレンジC^の次のベクトルを処理する。
認証装置102の平文類似度抽出部315は、例えば、群変換部371と、元結合部372と、離散対数算出部373とを有する。
群変換部371は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及びランダム基底Bと、乱数記憶部322が記憶した一時鍵としての乱数u1とに基づいて、復号鍵Цを算出する。復号鍵Цは、有限群GTの元である。群変換部371が算出する復号鍵Цは、ペアリングeによりランダム基底Bの最初のベクトルь1同士の組を変換した元e(ь1,ь1)を、有限群GTにおける累乗により、乱数u1で累乗した元e(ь1,ь1)u1である。
元結合部372は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である有限群GTと、第二レスポンス受信部341が受信した第二レスポンスZと、群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’を算出する。復号類似度元Z’は、有限群GTの元である。復号類似度元Z’は、有限群GTにおける乗法により、第二レスポンスZと、復号鍵Цとを結合した元である。第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元e(ь1,ь1)を(Σi[(bi−b’i)2]−u1)(iは、1以上T以下の整数。)で累乗した元であるから、復号類似度元Z’は、有限群GTにおける累乗により、有限群GTの元e(ь1,ь1)をΣi[(bi−b’i)2](iは、1以上T以下の整数。)で累乗した元になる。
離散対数算出部373は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及びランダム基底Bと、元結合部372が算出した復号類似度元Z’とに基づいて、類似度dを算出する。類似度dは、有限体Fqの元である。離散対数算出部373が算出する類似度dは、有限群GTにおける累乗による有限群GTの元e(ь1,ь1)の何乗が、復号類似度元Z’に一致するかを求めたものである。
離散対数算出部373が復号類似度元Z’から類似度dを算出することは、いわゆる離散対数問題を解くことであるから、一般的には、困難である。しかし、類似度dの範囲があらかじめ限定されていれば、類似度dを算出することが可能になる。例えば、その範囲内のすべての整数dについて、あらかじめe(ь1,ь1)を整数dで累乗した元e(ь1,ь1)dを算出しておき、復号類似度元Z’がどれと一致するかを判定すればよい。
類似度dは、2つの特徴ベクトルb,b’の間のユークリッド距離の二乗であるから、類似度dが小さいほど2つの特徴ベクトルb,b’が似ていることを表わす。判定部306は、例えば、類似度dを所定の閾値d0と比較して、類似度dのほうが小さい場合に、2つの特徴ベクトルb,b’が似ていると判定する。このため、類似度dが具体的にいくつであるかを知る必要はなく、類似度dが閾値d0より大きいか小さいかだけがわかればよい。
閾値d0は、位数qよりもはるかに小さい整数であり、例えば数百〜数万程度である。特徴ベクトルb,b’の成分が0か1かのいずれかの値である場合、2つの特徴ベクトルb,b’の間のユークリッド距離の二乗は、0以上T以下の整数になる。この場合、閾値d0が特徴ベクトルの次数Tよりも小さい整数でなければ、すべての場合に2つの特徴ベクトルb,b’が似ていると判定することになり、意味をなさない。
よって、0以上d0以下のすべての整数dについて、あらかじめe(ь1,ь1)dを算出しておくことは容易である。そうすれば、類似度dがd0以下である場合、離散対数算出部373は類似度dを算出できる。類似度dがd0より大きい場合、離散対数算出部373は類似度dを算出できないが、類似度dがd0より大きいことだけは判定できる。
平文類似度算出工程S719では、認証装置102が、第二レスポンスZから、類似度dを算出する。平文類似度算出工程S719は、例えば、群変換工程S691と、元結合工程S692と、離散対数算出工程S693とを有する。
元結合工程S692において、元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、群変換工程S691で群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’=ZЦを算出する。
離散対数算出工程S693において、離散対数算出部373は、処理装置911を用いて、元結合部372で元結合部372が算出した復号類似度元Z’に基づいて、類似度dを算出する。
この図は、認証処理S700から、類似度算出手順に関わる部分を抜き出したものである。なお、δi及びδ*は、第二チャレンジC^において暗号化されている情報を示し、ζは、第二レスポンスZによって表わされる情報を示す。
第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジC^を算出することにより、T個のδi=(bi−b’i)+t1,i(iは、1以上T以下の整数。)と、1個のδ*=Σi[2t1,i(bi−b’i)+t1,i 2]+u1(iは、1以上T以下の整数。)とを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζ=Σi[δi 2]−δ*(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の秘密鍵skによって復号された状態で行われるが、復号装置103は、一時鍵u1を知らないので、特徴ベクトルb,b’や類似度dについての情報を得ることができない。すなわち、この計算は、一時鍵u1で暗号化された状態で行われる。
第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ+u1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
データ抽出装置(認証装置102)は、前記鍵生成部から配布された前記公開鍵を保有する公開鍵記憶部(302)と、前記鍵生成部から配布された前記公開鍵を保有するデータ処理装置(登録装置104)が保有する前記公開鍵を用いて暗号化した第一データ(特徴ベクトルb)を暗号化第一データ(暗号化特徴ベクトルC)として記憶する暗号化データ記憶部(312)と、前記公開鍵の少なくとも一部を用いて第一乱数と第二乱数を生成する乱数生成部(303)と、前記第一乱数と前記第二乱数を記憶する乱数記憶部(322)と、前記第一乱数を暗号化して第一チャレンジを生成する暗号化乱数生成部(304)と、データ処理装置(証明装置101)が第二データ(特徴ベクトルb’)を前記第一チャレンジと演算して生成した第一レスポンスから前記乱数記憶部に記憶されている前記第一乱数を用いて処理し第二データの暗号化である暗号化第二データ(暗号化特徴ベクトルC’)を算出する暗号化データ抽出部(305)と、前記暗号化第二データと前記第二乱数を用いて第二チャレンジを生成する暗号化ランダム類似度算出部(314)と、前記復号装置もしくは前記データ処理装置が前記秘密鍵記憶部(413)に記憶されている前記秘密鍵を用いて前記第二チャレンジを処理した第二レスポンスを前記乱数記憶部に記憶されている前記第二乱数を用いて処理し平文の類似度を算出する平文類似度抽出部(315)とを有する。
データ処理装置(証明装置101)は、前記第二データを前記第一チャレンジと演算して前記第一レスポンスを生成する暗号化データ埋め込み部(217)を有する。
復号装置(103)もしくはデータ処理装置は、前記加法的準同型方式の鍵生成アルゴリズムに基づいて前記公開鍵と前記秘密鍵を生成する前記鍵生成部(401)と、前記秘密鍵を記憶する前記秘密鍵記憶部(413)と、前記第二チャレンジを前記秘密鍵記憶部に記憶されている前記秘密鍵を用いて処理し前記第二レスポンスを生成する復号部(404)とを有する。
この第一の理由としては、認証装置102によって生成された第一チャレンジR及び第二チャレンジC^や第一レスポンスR’及び第二レスポンスZで用いる平文としての乱数R1,i,u1は、認証が行われる度に毎回値が変わることから、これらのデータをそのまま再利用したリプレイ攻撃ができない。
第二の理由として、この実施の形態で説明した岡本−高島暗号方式や、BGN暗号、Paillier暗号などは、暗号文の識別不可能性という安全性を有している。このため、たとえ攻撃者が準同型性を利用したとしても、第一チャレンジR及び第二チャレンジC^とそれに対応する第一レスポンスR’及び第二レスポンスZとから、平文の特徴ベクトルb,b’や平文としての乱数R1,i,u1、また秘密鍵skが漏洩することはない。
第三の理由として、認証装置102と証明装置101とは、それぞれ相手の装置が知らない情報を用いて第一チャレンジRと第一レスポンスR’とを生成している。つまり、認証装置102は第一チャレンジRで用いた乱数R1,iを所持しており、また証明装置101はユーザの平文の特徴ベクトルb’を所持している。これらの秘密情報を知ることなしに、攻撃者は、第一チャレンジRや第一レスポンスR’から平文の特徴ベクトルb’や乱数R1,iについての情報を得ることができない。さらに、認証装置102は、乱数R1,iを知っていても平文の特徴ベクトルbを得ることができず、また証明装置101は、特徴ベクトルbを知っていても乱数R1,iの情報を得ることはできない。
また、第二チャレンジC^と第二レスポンスZとの関係も同様であり、認証装置102と復号装置103とは、それぞれ相手の装置が知らない情報を用いて第二チャレンジC^と第二レスポンスZとを生成している。つまり、認証装置102は第二チャレンジC^で用いた乱数u1を所持しており、また復号装置103は秘密鍵skを所持している。これらの秘密情報を知ることなしに、攻撃者は、第二チャレンジC^や第二レスポンスZから乱数u1や秘密鍵skについての情報を得ることができない。さらに、認証装置102は、乱数u1を知っていても秘密鍵skを得ることができず、また復号装置103は、秘密鍵skを知っていても乱数u1の情報を得ることはできない。
この実施の形態における乱数は、乱数空間から一様に生成されている。このため、乱数同士に相関がなく、乱数同士の相関から何らかの情報が漏れる可能性がない。
認証装置102には特徴ベクトルbがそのまま保管されるのではなく、暗号化された状態で保管される。このため、ユーザのプライバシー情報である特徴ベクトルbが、認証装置102の管理者に盗み見られるというリスクを低減させることができる。
認証装置102にとっては、暗号化特徴ベクトルCが仮に漏洩したとしても元の特徴ベクトルb自体が漏洩することはないため、特徴ベクトルbそのものを保管するのに比べてデータ管理の手間を削減できる。
例えば、認証装置102が、第二の暗号方式における公開鍵と秘密鍵との組を生成して、公開鍵を第一チャレンジRとして、証明装置101に対して送信する。証明装置101は、復号装置103の公開鍵を使って、加法的準同型性を有する第一の暗号方式により、特徴ベクトルb’を暗号化し、暗号化特徴ベクトルC’を生成する。次に、証明装置101は、第一チャレンジRとして認証装置102から受信した公開鍵を使って、第二の暗号方式により、生成した暗号化特徴ベクトルC’を暗号化して、第一レスポンスR’とし、認証装置102に対して送信する。認証装置102は、自身で生成した秘密鍵を使って、第二の暗号方式により、受信した第一レスポンスR’を復号して、暗号化特徴ベクトルC’を得る。
実施の形態2について、図27を用いて説明する。
なお、実施の形態1と共通する部分については、同一の符号を付し、説明を省略する。
生体認証システム100は、証明装置101と、認証装置102とを有する。証明装置101は、実施の形態1で説明した証明装置101としての機能と、復号装置103としての機能と、登録装置104としての機能とを兼ね備えている。
証明装置101は、公開鍵pkと秘密鍵skとの組を生成し、公開鍵pkを公開し、秘密鍵skを秘密裡に保持する。認証装置102は、証明装置101が公開した公開鍵pkを使って暗号処理をする。
生体認証システム100は、証明装置101を複数有する場合がある。例えば、生体認証システム100が認証すべき各ユーザが、それぞれ自分の証明装置101を持っている。ユーザは、自分の証明装置101をネットワークなどに接続し、証明装置101は、ネットワークなどを介して認証装置102との間で通信を行う。
認証装置102は、それぞれの証明装置101の公開鍵pkを記憶している。認証装置102は、認証を求めてきた証明装置101やユーザのIDなどに基づいて、記憶した公開鍵pkのなかから、その証明装置101の公開鍵pkを選択し、選択した公開鍵pkを使って暗号処理をする。
それぞれの証明装置101の公開鍵pkは、例えば、登録処理S600において、暗号化特徴ベクトルCとともに、証明装置101が認証装置102に対して送信し、認証装置102が、受信した公開鍵pkを、暗号化特徴ベクトルCと対応づけて記憶する。
実施の形態3について、図28〜図30を用いて説明する。
なお、実施の形態1〜実施の形態2と共通する部分については、同一の符号を付し、説明を省略する。
なお、特徴ベクトルの各成分は、1か0かの2つの値のいずれかであるものとする。
第二チャレンジ生成工程S712の処理の流れは、実施の形態1とほとんど同じであるが、ベクトル累計工程S747だけが異なっている。
ベクトル累計工程S747において、ベクトル累計部367が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iと、スカラー倍算出工程S746でスカラー倍算出部364が算出したスカラー倍ベクトル¢のi番目の成分¢i=2t1,iΔciとに基づいて、ベクトル空間Vにおける加法により、ベクトルciと、ベクトルc’iと、ベクトル¢iとを、ベクトルc^に結合する。
すなわち、第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元e(ь1,ь1)を(Σi[(bi−b’i)2−(bi+b’i)]−u1)(iは、1以上T以下の整数。)で累乗した元になる。ここで、bi及びb’iが0か1かのいずれかの値しか取らないので、常に、bi=bi 2かつb’i=b’i 2である。したがって、第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元e(ь1,ь1)を(−2Σi[bib’i]−u1)(iは、1以上T以下の整数。)で累乗した元になる。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との内積Σi[bib’i]を、一時鍵としての乱数u1で暗号化したものになる。
平文類似度算出工程S719は、実施の形態1で説明した工程に加えて、逆数算出工程S690を有する。
逆数算出工程S690において、元結合部372は、処理装置911を用いて、有限体Fqにおける乗法による(−2)の逆元шを算出する。なお、逆元шは、第二レスポンスZに関わらず一定なので、あらかじめ算出しておく構成であってもよい。
元結合工程S692において、元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、逆数算出工程S690で算出した逆元шと、群変換工程S691で群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’=(ZЦ)шを算出する。
第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジC^を算出することにより、T個のδi=(bi−b’i)+t1,i(iは、1以上T以下の整数。)と、1個のδ*=Σi[2t1,i(bi−b’i)+t1,i 2+bi+b’i]+u1(iは、1以上T以下の整数。)とを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζ=Σi[δi 2]−δ*(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、復号装置103は、一時鍵u1を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵u1で暗号化された状態で行われる。
第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ+u1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
実施の形態4について、図31〜図45を用いて説明する。
なお、実施の形態1〜実施の形態3と共通する部分については、同一の符号を付し、説明を省略する。
g及びuは、有限群Gの生成元のなかから一様ランダムに選択した元である。hは、有限群Gの元であり、有限群Gにおける累乗により、元uを素数qで累乗した元uqである。
有限群G及び有限群GTは、位数pの巡回群と、位数qの巡回群との直積である。したがって、元hの位数は、pである。
復号には、秘密鍵skである素数pを使う。有限群Gにおける累乗により、暗号文E(x)を素数pで累乗した元E(x)p=[gx]p=[gp]xを算出する。これが、gpの何乗であるかがわかれば、xが復号できる。
Lが小さい場合、例えば、Pollardのラムダ法を用いることにより、この離散対数問題を解くことができる。その場合に必要な計算量は、√Lに比例する。したがって、現実的な計算量で計算できるよう、Lの値を設定すれば、xを復号することができる。
復号装置103の鍵生成部401は、例えば、群決定部431と、生成元選択部432と、生成元累乗部433とを有する。
群決定部431は、処理装置911を用いて、セキュリティレベルに応じて定まる大きさ(例えば512ビットや1024ビットなど)に基づいて、互いに異なる2つの素数p,qを生成する。群決定部431は、処理装置911を用いて、生成した2つの素数p,qの積N=pqを計算する。群決定部431は、処理装置911を用いて、計算した積Nに基づいて、有限群Gと有限群GTとを決定する。有限群Gと有限群GTとは、ともに位数がNであり、ペアリングe:G×G→GTを持つ。
生成元選択部432は、処理装置911を用いて、群決定部431が決定した有限群Gに基づいて、有限群Gの2つの生成元g,uを選択する。
生成元累乗部433は、処理装置911を用いて、群決定部431が生成した素数qと、生成元選択部432が選択した生成元uとに基づいて、元hを算出する。元hは、有限群Gにおける累乗により、生成元uを素数qで累乗した元uqである。
底算出部434は、処理装置911を用いて、群決定部431が生成した素数pと、ペアリングeと、生成元選択部432が選択した生成元gとに基づいて、元πを算出する。元πは、有限群GTの元である。元πは、ペアリングeにより生成元g同士の組を変換した元e(g,g)を、有限群GTにおける累乗により、素数pで累乗した元e(g,g)pである。
秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、群決定部431が生成した素数pを記憶する。
鍵生成工程S501では、復号装置103が、公開鍵pkと秘密鍵skとの組を生成する。なお、ユーザごとに異なる公開鍵pkと秘密鍵skとの組を生成する構成であってもよいし、システム全体として1つの公開鍵pkと秘密鍵skとの組を生成する構成であってもよい。
鍵生成工程S501は、例えば、群決定工程S521と、生成元選択工程S522と、生成元累乗工程S523と、底算出工程S524とを有する。
生成元選択工程S522において、生成元選択部432が、処理装置911を用いて、群決定工程S521で群決定部431が決定した有限群Gに基づいて、有限群Gの2つの生成元g,uを選択する。公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkの一部として、生成元gを記憶する。
生成元累乗工程S523において、生成元累乗部433が、処理装置911を用いて、群決定工程S521で群決定部431が決定した素数qと、生成元選択工程S522で生成元選択部432が選択した生成元uとに基づいて、有限群Gの元h=uqを算出する。公開鍵記憶部403が、処理装置911を用いて、公開鍵pkの一部として、元hを記憶する。
底算出工程S524において、底算出部434が、処理装置911を用いて、群決定工程S521で群決定部431が決定した素数p及びペアリングeと、生成元選択工程S522で生成元選択部432が選択した生成元gとに基づいて、有限群GTの元π=e(g,g)pを算出する。公開鍵記憶部403が、処理装置911を用いて、公開鍵pkの一部として、元πを記憶する。
特徴ベクトル暗号化工程S603では、登録装置104が、特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。特徴ベクトル暗号化工程S603は、例えば、初期化工程S610と、繰り返し工程S611と、乱数生成工程S612と、元算出工程S613aとを有する。
登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbは、例えば、整数を成分とするT次元のベクトル(b1,b2,…,bT)(Tは、1以上の整数。)である。暗号化データ生成部206が生成する暗号化特徴ベクトルCは、有限群Gの元を成分とするT次元のベクトル(c1,c2,…,cT)である。
繰り返し工程S611において、暗号化データ生成部206が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化データ生成部206は、特徴ベクトル暗号化工程S603を終了する。整数iがT以下である場合、暗号化データ生成部206は、乱数生成工程S612へ処理を進め、暗号化特徴ベクトルCのi番目の成分ciを生成する。
乱数生成工程S612において、乱数生成部205が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である位数Nに基づいて、乱数riを生成する。乱数生成部205が生成する乱数riは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
元算出工程S613aにおいて、暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である生成元gと元hと、特徴ベクトル形成部204が生成した特徴ベクトルbのi番目の成分biと、乱数生成工程S612で特徴ベクトル形成部204が生成した乱数riとに基づいて、暗号化特徴ベクトルCのi番目の成分ciを算出する。暗号化データ生成部206が算出する暗号化特徴ベクトルCのi番目の成分ciは、有限群Gにおける累乗により生成元gを整数biで累乗した元gbiと、有限群Gにおける累乗により元hを乱数riで累乗した元hriとを、有限群Gにおける乗法により結合した元gbihriである。
暗号化データ生成部206は、繰り返し工程S611に処理を戻し、暗号化特徴ベクトルCの次の成分を生成する。
第一チャレンジ生成工程S701では、認証装置102が、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、元算出工程S723aとを有する。
認証装置102の暗号化乱数生成部304が生成する第一チャレンジRは、有限群Gの元を成分とするT次元のベクトル(R1,R2,…,RT)である。
繰り返し工程S721において、暗号化乱数生成部304が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化乱数生成部304は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、暗号化乱数生成部304は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Riを生成する。
乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数Nに基づいて、2個の乱数R1,i,R2,iを生成する。乱数生成部303が生成する乱数R1,i,R2,iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成した乱数R1,iを記憶する。
元算出工程S723aにおいて、暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である生成元g及び元hと、乱数生成工程S722で乱数生成部303が生成した2個の乱数R1,i,R2,iとに基づいて、第一チャレンジRのi番目の成分Riを算出する。暗号化乱数生成部304が算出する第一チャレンジRのi番目の成分Riは、有限群Gにおける累乗により生成元gを乱数R1,iで累乗した元と、有限群Gにおける累乗により元hを乱数R2,iで累乗した元とを、有限群Gにおける乗法により結合した元である。
暗号化乱数生成部304は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。
証明装置101の暗号化データ埋め込み部217は、例えば、累乗算出部234と、零生成部232と、元結合部235とを有する。
乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkの一部である位数Nに基づいて、T個の乱数r’i(iは、1以上T以下の整数。)を生成する。乱数生成部215が生成する乱数r’iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
零生成部232は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である元hと、乱数生成部215が生成したT個の乱数r’iとに基づいて、暗号化零ベクトルOを生成する。暗号化零ベクトルOは、有限群Gの元を成分とするT次元のベクトル(o1,o2,…,oT)である。暗号化零ベクトルOのi番目の成分oi(iは、1以上T以下の整数。)は、有限群Gにおける累乗により元hをi番目の乱数r’iで累乗した元hr’iである。暗号化零ベクトルOの各成分oiは、0を暗号化したものである。
第一レスポンス生成工程S707では、証明装置101が、特徴ベクトルb’と、第一チャレンジRとに基づいて、第一レスポンスR’を生成する。第一レスポンス生成工程S707は、例えば、初期化工程S660と、繰り返し工程S661と、累乗算出工程S662aと、乱数生成工程S663と、零生成工程S664と、元結合工程S665aとを有する。
繰り返し工程S661において、元結合部235が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、元結合部235は、第一レスポンス生成工程S707を終了する。整数iがT以下である場合、元結合部235は、累乗算出工程S662aへ処理を進め、第一レスポンスR’のi番目の成分R’iを生成する。
累乗算出工程S662aにおいて、累乗算出部234が、処理装置911を用いて、特徴ベクトル形成部214が生成した特徴ベクトルb’のi番目の成分b’iと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目のベクトルRiとに基づいて、累乗ベクトルЯのi番目の成分яi=Ri b’iを算出する。
乱数生成工程S663において、乱数生成部215が、処理装置911を用いて、乱数r’iを生成する。
零生成工程S664において、零生成部232が、処理装置911を用いて、乱数生成工程S663で乱数生成部215が生成した乱数r’iに基づいて、暗号化零ベクトルOのi番目の成分oi=hr’iを算出する。
元結合工程S665aにおいて、元結合部235が、処理装置911を用いて、累乗算出工程S662aで累乗算出部234が算出した累乗ベクトルЯのi番目の成分яiと、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oiとに基づいて、第一レスポンスR’のi番目の成分R’i=яioiを算出する。
元結合部235は、繰り返し工程S661に処理を戻し、第一レスポンスR’の次の成分を生成する。
まず、累乗の必要がないので、累乗算出部234を設けず、累乗算出工程S662aを実行しない。
元結合工程S665aにおいて、元結合部235は、処理装置911を用いて、特徴ベクトルb’のi番目の成分b’iが0であるか1であるかを判定する。特徴ベクトルb’のi番目の成分b’iが0である場合、元結合部235は、処理装置911を用いて、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=hr’iを、第一レスポンスR’のi番目の成分R’iとする。特徴ベクトルb’のi番目の成分b’iが1である場合、元結合部235は、処理装置911を用いて、有限群Gにおける乗法により、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=hr’iと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目の成分Riとを結合した元Rihr’iを算出して、第一レスポンスR’のi番目の成分R’iとする。
認証装置102の暗号化データ抽出部305は、例えば、逆数算出部351と、スカラー倍算出部352とを有する。
累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’と、逆数算出部351が算出したT個の逆数κiとに基づいて、暗号化特徴ベクトルC’を算出する。累乗算出部353が算出する暗号化特徴ベクトルC’のi番目の成分c’i(iは、1以上T以下の整数。)は、有限群Gにおける累乗により、第一レスポンスR’のi番目の成分R’iを、i番目の逆数κiで累乗した元である。暗号化特徴ベクトルC’の各成分c’iは、特徴ベクトルb’の成分b’iを暗号化したものになる。
暗号化生体情報抽出工程S710では、認証装置102が、第一レスポンスR’に基づいて、暗号化特徴ベクトルC’を生成する。暗号化生体情報抽出工程S710は、例えば、初期化工程S730と、繰り返し工程S731と、逆数算出工程S732と、累乗算出工程S733aとを有する。
繰り返し工程S731において、累乗算出部353が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、累乗算出部353は、暗号化生体情報抽出工程S710を終了する。整数iがT以下である場合、累乗算出部353は、逆数算出工程S732へ処理を進め、暗号化特徴ベクトルC’のi番目の成分c’iを生成する。
逆数算出工程S732において、逆数算出部351が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数記憶部322が記憶したT個の乱数のうちi番目の乱数R1,iに基づいて、逆数κi=R1,i −1を算出する。
累乗算出工程S733aにおいて、累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’のi番目の成分R’iと、逆数算出工程S732で算出した逆数κiとに基づいて、暗号化特徴ベクトルC’のi番目の成分c’i=R’i κiを算出する。
累乗算出部353は、繰り返し工程S731に処理を戻し、暗号化特徴ベクトルC’の次の成分を生成する。
認証装置102の暗号化ランダム類似度算出部314は、例えば、差分算出部361と、二乗算出部368と、暗号化鍵生成部366と、元結合部370とを有する。
乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数s1を記憶する。
なお、暗号化差分ベクトルΔCのi番目の成分Δciは、有限群Gにおける乗法により、暗号化特徴ベクトルCのi番目の成分ciの逆元ci −1と、暗号化特徴ベクトルC’のi番目の成分c’iとを結合した元ci −1c’iであってもよい。また、暗号化差分ベクトルΔCの成分Δciは、元cic’i −1と、元ci −1c’iとのなかから、ランダムに選択したいずれかの元であってもよい。
二乗算出部368は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、差分算出部361が算出した暗号化差分ベクトルΔCとに基づいて、暗号化二乗ベクトルΔC’を算出する。暗号化二乗ベクトルΔC’は、有限群GTの元を成分とするT次元のベクトル(Δc’1,Δc’2,…,Δc’T)である。暗号化二乗ベクトルΔC’のi番目の成分Δc’i(iは、1以上T以下の整数。)は、ペアリングeにより、暗号化差分ベクトルΔCのi番目の成分Δci同士の組を変換したペアリングe(Δci,Δci)である。暗号化二乗ベクトルΔC’の各成分Δc’iは、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差の二乗(bi−b’i)2を暗号化したものである。
暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及び生成元g及び元hと、乱数生成部303が生成した2つの乱数s1,s2とに基づいて、暗号化鍵цを算出する。暗号化鍵цは、有限群GTの元である。暗号化鍵цは、有限群Gにおける累乗により生成元gを乱数s1で累乗した元gs1と、有限群Gにおける累乗により元hを乱数s2で累乗した元hs2とを、有限群Gにおける乗法により結合した元gs1hs2と、生成元gとの組を、ペアリングeにより変換した元e(gs1hs2,g)である。例えば、暗号化鍵生成部366は、生成元gと乱数s1とに基づいて、有限群Gにおける累乗により、生成元gを乱数s1で累乗した元gs1を算出する。暗号化鍵生成部366は、元hと乱数s2とに基づいて、有限群Gにおける累乗により、元hを乱数s2で累乗した元hs2を算出する。暗号化鍵生成部366は、有限群Gにおける乗法により、算出した2つの元gs1,hs2を結合した元gs1hs2を算出する。暗号化鍵生成部366は、ペアリングeにより、算出した元gs1hs2と、生成元gとの組を変換した元e(gs1hs2,g)を算出する。暗号化鍵цは、乱数生成部303が算出した乱数s1を暗号化したものである。
元結合部370は、処理装置911を用いて、二乗算出部368が算出した暗号化二乗ベクトルΔC’と、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、第二チャレンジC^を算出する。第二チャレンジC^は、有限群GTの元である。元結合部370が算出する第二チャレンジC^は、有限群GTにおける乗法により、暗号化二乗ベクトルΔC’のT個の成分Δc’iと、暗号化鍵цとを結合した元Πi[Δc’i]цである。第二チャレンジC^は、特徴ベクトルbの成分biと特徴ベクトルb’の成分b’iとの差bi−b’iの二乗(bi−b’i)2と、乱数s1との総和Σi[(bi−b’i)2]+s1を暗号化したものである。
第二チャレンジ生成工程S712では、認証装置102が、2つの暗号化特徴ベクトルC,C’に基づいて、第二チャレンジC^を生成する。第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、暗号化鍵生成工程S752と、初期化工程S740と、繰り返し工程S741と、差分算出工程S742と、二乗算出工程S753と、元累計工程S748aとを有する。
暗号化鍵生成工程S752において、暗号化鍵生成部366が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s1,s2に基づいて、暗号化鍵ц=gs1hs2を算出する。元結合部370は、処理装置911を用いて、第二チャレンジC^を、暗号化鍵生成部366が算出した暗号化鍵цに初期化する。
初期化工程S740において、元結合部370は、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S741において、元結合部370が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジC^が完成したので、元結合部370は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、元結合部370は、差分算出工程S742へ処理を進める。
差分算出工程S742において、差分算出部361が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iとに基づいて、暗号化差分ベクトルΔCのi番目の成分Δciを算出する。
二乗算出工程S753において、二乗算出部368が、処理装置911を用いて、差分算出工程S742で差分算出部361が算出した元Δciに基づいて、暗号化二乗ベクトルΔC’のi番目の成分Δc’i=e(Δci,Δci)を算出する。
元累計工程S748aにおいて、元結合部370は、処理装置911を用いて、有限群GTの乗法により、二乗算出工程S753で二乗算出部368が算出した暗号化二乗ベクトルΔC’のi番目の成分Δc’iを、第二チャレンジC^に結合する。
元結合部370は、繰り返し工程S741に処理を戻す。
認証装置102の暗号化ランダム類似度算出部314は、例えば、2つの二乗算出部381,382と、積算出部383と、累乗算出部384と、元結合部370とを有する。
二乗算出部382は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、第二暗号化二乗ベクトルЖ’を算出する。第二暗号化二乗ベクトルЖ’は、有限群GTの元を成分とするT次元のベクトル(ж’1,ж’2,…,ж’T)である。第二暗号化二乗ベクトルЖ’のi番目の成分ж’i(iは、1以上T以下の整数。)は、ペアリングeにより、暗号化特徴ベクトルC’のi番目の成分c’i同士の組を変換した元e(c’i,c’i)である。
積算出部383は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化積ベクトル¢を算出する。暗号化積ベクトル¢は、有限群GTの元を成分とするT次元のベクトル(¢1,¢2,…,¢T)である。暗号化積ベクトル¢のi番目の成分¢i(iは、1以上T以下の整数。)は、ペアリングeにより、暗号化特徴ベクトルCのi番目の成分ciと、暗号化特徴ベクトルC’のi番目の成分c’iとの組を変換した元e(ci,c’i)である。
累乗算出部384は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及び生成元g及び元hと、乱数生成部303が生成した2つの乱数s1,s2とに基づいて、2つの累乗元ц1,ц2を算出する。第一の累乗元ц1は、ペアリングeにより生成元g同士の組を変換した元e(g,g)を、有限群GTにおける累乗により、乱数s1で累乗した元e(g,g)s1である。第二の累乗元ц2は、ペアリングeにより生成元gと元hとの組を変換した元e(g,h)を、有限群GTにおける累乗により、乱数s2で累乗した元e(g,h)s2である。
元結合部370は、処理装置911を用いて、二乗算出部381が算出した第一暗号化二乗ベクトルЖと、二乗算出部382が算出した第二暗号化二乗ベクトルЖ’と、積算出部383が算出した暗号化積ベクトル¢と、累乗算出部384が算出した2つの累乗元ц1,ц2とに基づいて、第二チャレンジC^を算出する。第二チャレンジC^は、有限群GTの元である。元結合部370が算出する第二チャレンジC^は、有限群GTの乗法により、第一暗号化二乗ベクトルЖのT個の成分жiと、第二暗号化二乗ベクトルЖ’のT個の成分ж’iと、暗号化積ベクトル¢のT個の成分¢iの(−2)乗と、2つの累乗元ц1,ц2とをすべて結合した元Πi[жiж’i¢i −2]ц1ц2である。この場合、第二チャレンジC^は、Σi[bi 2+b’i 2−2bib’i]+s1=Σi[(bi−b’i)2]+s1を暗号化したものである。
第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、累乗算出工程S752aと、初期化工程S740と、繰り返し工程S741と、二乗算出工程S753と、積算出工程S754と、元累計工程S748aとを有する。
累乗算出工程S752aにおいて、累乗算出部384が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s1,s2に基づいて、2つの累乗元ц1=e(g,g)s1,ц2=e(g,h)s2を算出する。
初期化工程S740において、元結合部370が、処理装置911を用いて、整数iを0に初期化する。また、元結合部370が、処理装置911を用いて、有限群GTにおける乗法により、累乗算出工程S752aで累乗算出部384が算出した2つの累乗元ц1,ц2を結合した元ц1ц2を算出する。元結合部370は、処理装置911を用いて、第二チャレンジC^を、算出した元ц1ц2に初期化する。
繰り返し工程S741において、元結合部370が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジC^が完成したので、元結合部370は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、元結合部370は、二乗算出工程S753へ処理を進める。
二乗算出工程S753において、二乗算出部381が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciに基づいて、第一暗号化二乗ベクトルЖのi番目の成分жi=e(ci,ci)を算出する。また、二乗算出部382が、処理装置911を用いて、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iに基づいて、第二暗号化二乗ベクトルЖ’のi番目の成分ж’i=e(c’i,c’i)を算出する。
積算出工程S754において、積算出部383が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iとに基づいて、暗号化積ベクトル¢のi番目の成分¢i=e(ci,c’i)を算出する。
元累計工程S748aにおいて、元結合部370は、処理装置911を用いて、有限群GTの乗法により、二乗算出工程S753で二乗算出部381が算出した第一暗号化二乗ベクトルЖのi番目の成分жiと、二乗算出工程S753で二乗算出部382が算出した第二暗号化二乗ベクトルЖ’のi番目の成分ж’iと、積算出工程S754で積算出部383が算出した暗号化積ベクトル¢のi番目の成分¢iの(−2)乗とを、第二チャレンジC^に結合する。
元結合部370は、繰り返し工程S741に処理を戻す。
また、ペアリングe(g,g)及びe(g,h)や、第一暗号化二乗ベクトルЖの成分e(ci,ci)は、暗号化特徴ベクトルC’と無関係であるから、前もって計算しておくことができる。これらを前もって計算しておくことにより、第二チャレンジC^を生成するのにかかる時間を短くすることができる。
第二レスポンス生成工程S716では、復号装置103が、第二チャレンジC^から、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、累乗算出工程S571を有する。
元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’を算出する。復号類似度元Z’は、有限群GTの元である。復号類似度元Z’は、有限群GTにおける乗法により、第二レスポンスZと、復号鍵Цとを結合した元ZЦである。第二レスポンスZは、有限群GTにおける累乗により元πをΣi[(bi−b’i)2]+s1で累乗した元であるから、復号類似度元Z’は、有限群GTにおける累乗により元πをΣi[(bi−b’i)2]で累乗した元になる。
離散対数算出部373は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である元πと、元結合部372が算出した復号類似度元Z’とに基づいて、復号類似度元Z’が元πの何乗であるかを算出して、類似度dとする。なお、実施の形態1と同様、離散対数算出部373は、類似度dが閾値d0以下である場合に、類似度dを算出し、類似度dが閾値d0より大きい場合は、類似度dが閾値d0より大きいことを判定する構成であってもよい。
平文類似度算出工程S719では、認証装置102が、第二レスポンスZから、類似度dを算出する。平文類似度算出工程S719は、例えば、群変換工程S691と、元結合工程S692と、離散対数算出工程S693とを有する。
元結合工程S692において、元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、群変換工程S691で群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’=ZЦを算出する。
離散対数算出工程S693において、離散対数算出部373は、処理装置911を用いて、元結合部372で元結合部372が算出した復号類似度元Z’に基づいて、類似度dを算出する。
第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジC^を算出することにより、δ=Σi[(bi−b’i)2]+s1(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζを算出する。復号装置103は、単に復号処理をするだけなので、ζは、δと等しい。復号装置103は、一時鍵s1を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵s1で暗号化された状態で行われる。
第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
また、認証装置102から復号装置103に送付する第二チャレンジのデータ量が低減するので、認証に必要な通信量を低減することができる。
実施の形態5について、図46〜図48を用いて説明する。
なお、実施の形態1〜実施の形態4と共通する部分については、同一の符号を付し、説明を省略する。
認証装置102の暗号化ランダム類似度算出部314は、例えば、積算出部383と、累乗算出部384と、元結合部370とを有する。
累乗算出部384は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及び生成元g及び元hと、乱数生成部303が生成した2つの乱数s1,s2とに基づいて、2つの累乗元ц1,ц2を算出する。第一の累乗元ц1は、ペアリングeにより生成元g同士の組を変換した元e(g,g)を、有限群GTにおける累乗により、乱数s1で累乗した元e(g,g)s1である。第二の累乗元ц2は、ペアリングeにより生成元gと元hとの組を変換した元e(g,h)を、有限群GTにおける累乗により、乱数s2で累乗した元e(g,h)s2である。
元結合部370は、処理装置911を用いて、積算出部383が算出した暗号化積ベクトル¢と、累乗算出部384が算出した2つの累乗元ц1,ц2とに基づいて、第二チャレンジC^を算出する。第二チャレンジC^は、有限群GTの元である。元結合部370が算出する第二チャレンジC^は、有限群GTの乗法ににより、暗号化積ベクトル¢のT個の成分¢iと、2つの累乗元ц1,ц2とをすべて結合した元Πi[¢i]ц1ц2である。第二チャレンジC^は、Σi[bib’i]+s1を暗号化したものになる。
第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、累乗算出工程S752aと、初期化工程S740と、繰り返し工程S741と、積算出工程S754と、元累計工程S748aとを有する。
累乗算出工程S752aにおいて、累乗算出部384が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s1,s2に基づいて、2つの累乗元ц1=e(g,g)s1,ц2=e(g,h)s2を算出する。
初期化工程S740において、元結合部370が、処理装置911を用いて、整数iを0に初期化する。また、元結合部370は、処理装置911を用いて、有限群GTにおける乗法により、累乗算出部384が算出した2つの累乗元ц1,ц2を結合した元ц1ц2を算出する。元結合部370は、処理装置911を用いて、第二チャレンジC^を、算出した元ц1ц2に初期化する。
繰り返し工程S741において、元結合部370が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジC^が完成したので、元結合部370は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、元結合部370は、積算出工程S754へ処理を進める。
積算出工程S754において、積算出部383が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’iとに基づいて、暗号化積ベクトル¢のi番目の成分¢i=e(ci,c’i)を算出する。
元累計工程S748aにおいて、元結合部370は、処理装置911を用いて、有限群GTの乗法により、積算出工程S754で積算出部383が算出した暗号化積ベクトル¢のi番目の成分¢iを、第二チャレンジC^に結合する。
元結合部370は、繰り返し工程S741に処理を戻す。
すなわち、第二レスポンスZは、有限群GTにおける累乗により、有限群GTの元πを(Σi[bib’i]+s1)(iは、1以上T以下の整数。)で累乗した元になる。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との内積Σi[bib’i]を、一時鍵としての乱数s1で暗号化したものになる。
元結合部370が算出する復号類似度元Z’は、有限群GTにおける累乗により元πを特徴ベクトルbと特徴ベクトルb’との内積Σi[bib’i]で累乗した元である。したがって、平文類似度抽出部315は、類似度dとして、特徴ベクトルbと特徴ベクトルb’との内積Σi[bib’i]を算出する。
これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。
第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジC^を算出することにより、δ=Σi[bib’i]+s1(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζを算出する。復号装置103は、単に復号処理をするだけなので、ζは、δと等しい。復号装置103は、一時鍵s1を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵s1で暗号化された状態で行われる。
第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
実施の形態6について、図49〜図61を用いて説明する。
なお、実施の形態1〜実施の形態5と共通する部分については、同一の符号を付し、説明を省略する。
復号には、秘密鍵skであるλを使う。E(x)λ≡1+xλN(mod N2)であることを利用すると、乱数rを消去できる。E(x)λ−1は、Nの倍数になるから、[E(x)λ−1]/Nは、整数である。Nを法とする整数の乗法におけるλの逆元をλ−1とすると、[E(x)λ−1]/Nと、λ−1との積をNで割った余りを求めると、平文xが復号できる。
復号装置103の鍵生成部401は、例えば、素数決定部441と、積算出部442と、公倍数算出部443とを有する。
素数決定部441は、処理装置911を用いて、セキュリティレベルに応じて定まる大きさ(例えば512ビットや1024ビットなど)に基づいて、互いに異なる2つの素数p,qを生成する。
積算出部442は、処理装置911を用いて、素数決定部441が生成した2つの素数p,qに基づいて、整数Nを算出する。整数Nは、2つの素数p,qの積である。
公倍数算出部443は、処理装置911を用いて、素数決定部441が生成した2つの素数p,qに基づいて、p−1とq−1との最小公倍数λ=LCM(p−1,q−1)を算出する。
秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、最小公倍数λを記憶する。
鍵生成工程S501では、復号装置103が、公開鍵pkと秘密鍵skとの組を生成する。なお、ユーザごとに異なる公開鍵pkと秘密鍵skとの組を生成する構成であってもよいし、システム全体として1つの公開鍵pkと秘密鍵skとの組を生成する構成であってもよい。
鍵生成工程S501は、例えば、素数決定工程S531と、積算出工程S532と、公倍数算出工程S533とを有する。
積算出工程S532において、積算出部442が、処理装置911を用いて、素数決定工程S531で素数決定部441が決定した2つの素数p,qに基づいて、整数N=pqを算出する。公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkとして、積算出部442が算出した整数Nを記憶する。
公倍数算出工程S533において、公倍数算出部443が、処理装置911を用いて、素数決定工程S531で素数決定部441が決定した2つの素数p,qに基づいて、最小公倍数λ=LCM(p−1,q−1)を算出する。秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、公倍数算出部443が算出した最小公倍数λを記憶する。
特徴ベクトル暗号化工程S603では、登録装置104が、特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。特徴ベクトル暗号化工程S603は、例えば、初期化工程S610と、繰り返し工程S611と、乱数生成工程S612と、整数算出工程S613bとを有する。
登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbは、例えば、0以上N未満の整数を成分とするT次元のベクトル(b1,b2,…,bT)(Tは、1以上の整数。)である。暗号化データ生成部206が生成する暗号化特徴ベクトルCは、0以上N2未満の整数を成分とするT次元のベクトル(c1,c2,…,cT)である。
繰り返し工程S611において、暗号化データ生成部206が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化データ生成部206は、特徴ベクトル暗号化工程S603を終了する。整数iがT以下である場合、暗号化データ生成部206は、乱数生成工程S612へ処理を進め、暗号化特徴ベクトルCのi番目の成分ciを生成する。
乱数生成工程S612において、乱数生成部205が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkである整数Nに基づいて、乱数riを生成する。乱数生成部205が生成する乱数riは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
整数算出工程S613bにおいて、暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkである整数Nと、特徴ベクトル形成部204が生成した特徴ベクトルbのi番目の成分biと、乱数生成工程S612で特徴ベクトル形成部204が生成した乱数riとに基づいて、暗号化特徴ベクトルCのi番目の成分ciを算出する。暗号化データ生成部206が算出する暗号化特徴ベクトルCのi番目の成分ciは、特徴ベクトルbのi番目の成分biと整数Nとの積biNに1を加えた和(1+biN)と、乱数riを整数Nで累乗した整数ri Nとの積ri N(1+biN)を、整数Nの2乗で割った余りである。
暗号化データ生成部206は、繰り返し工程S611に処理を戻し、暗号化特徴ベクトルCの次の成分を生成する。
第一チャレンジ生成工程S701では、認証装置102が、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、整数算出工程S723bとを有する。
認証装置102の暗号化乱数生成部304が生成する第一チャレンジRは、0以上N2未満の整数を成分とするT次元のベクトル(R1,R2,…,RT)である。
繰り返し工程S721において、暗号化乱数生成部304が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化乱数生成部304は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、暗号化乱数生成部304は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Riを生成する。
乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nに基づいて、2個の乱数R1,i,R2,iを生成する。乱数生成部303が生成する乱数R1,i,R2,iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成した乱数R1,iを記憶する。
元算出工程S723aにおいて、暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成工程S722で乱数生成部303が生成した2個の乱数R1,i,R2,iとに基づいて、第一チャレンジRのi番目の成分Riを算出する。暗号化乱数生成部304が算出する第一チャレンジRのi番目の成分Riは、乱数R1,iと整数Nとの積R1,iNに1を加えた和(1+R1,iN)と、乱数R2,iを整数Nで累乗した整数R2,i Nとの積を、整数Nの2乗で割った余りである。
暗号化乱数生成部304は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。
証明装置101の暗号化データ埋め込み部217は、例えば、累乗算出部234と、零生成部232と、整数結合部236とを有する。
乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkである整数Nに基づいて、T個の乱数r’i(iは、1以上T以下の整数。)を生成する。乱数生成部215が生成する乱数r’iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
零生成部232は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkである整数Nと、乱数生成部215が生成したT個の乱数r’iとに基づいて、暗号化零ベクトルOを生成する。暗号化零ベクトルOは、0以上N2未満の整数を成分とするT次元のベクトル(o1,o2,…,oT)である。暗号化零ベクトルOのi番目の成分oi(iは、1以上T以下の整数。)は、i番目の乱数r’iを整数Nで累乗した整数r’i Nを、整数Nの2乗で割った余りである。暗号化零ベクトルOの各成分oiは、0を暗号化したものである。
整数結合部236は、処理装置911を用いて、累乗算出部234が算出した累乗ベクトルЯと、零生成部232が生成した暗号化零ベクトルOとに基づいて、第一レスポンスR’を算出する。第一レスポンスR’は、0以上N2未満の整数を成分とするT次元のベクトル(R’1,R’2,…,R’T)である。第一レスポンスR’のi番目の成分R’i(iは、1以上T以下の整数。)は、累乗ベクトルЯのi番目の成分яiと、暗号化零ベクトルOのi番目の成分oiとの積を、整数Nの2乗で割った余りである。第一レスポンスR’の各成分R’iは、第一チャレンジRの成分Riにおいて暗号化されている平文としての乱数R1,iと、特徴ベクトルb’の成分b’iとの積を暗号化したものになる。
第一レスポンス生成工程S707では、証明装置101が、特徴ベクトルb’と、第一チャレンジRとに基づいて、第一レスポンスR’を生成する。第一レスポンス生成工程S707は、例えば、初期化工程S660と、繰り返し工程S661と、累乗算出工程S662aと、乱数生成工程S663と、零生成工程S664と、整数結合工程S665bとを有する。
繰り返し工程S661において、整数結合部236が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、整数結合部236は、第一レスポンス生成工程S707を終了する。整数iがT以下である場合、整数結合部236は、累乗算出工程S662aへ処理を進め、第一レスポンスR’のi番目の成分R’iを生成する。
累乗算出工程S662aにおいて、累乗算出部234が、処理装置911を用いて、特徴ベクトル形成部214が生成した特徴ベクトルb’のi番目の成分b’iと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目のベクトルRiとに基づいて、累乗ベクトルЯのi番目の成分яi=Ri b’i mod N2を算出する。
乱数生成工程S663において、乱数生成部215が、処理装置911を用いて、乱数r’iを生成する。
零生成工程S664において、零生成部232が、処理装置911を用いて、乱数生成工程S663で乱数生成部215が生成した乱数r’iに基づいて、暗号化零ベクトルOのi番目の成分oi=r’iN mod N2を算出する。
整数結合工程S665bにおいて、整数結合部236が、処理装置911を用いて、累乗算出工程S662aで累乗算出部234が算出した累乗ベクトルЯのi番目の成分яiと、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oiとに基づいて、第一レスポンスR’のi番目の成分R’iを算出する。
整数結合部236は、繰り返し工程S661に処理を戻し、第一レスポンスR’の次の成分を生成する。
まず、累乗の必要がないので、累乗算出部234を設けず、累乗算出工程S662aを実行しない。
整数結合工程S665bにおいて、整数結合部236は、処理装置911を用いて、特徴ベクトルb’のi番目の成分b’iが0であるか1であるかを判定する。特徴ベクトルb’のi番目の成分b’iが0である場合、整数結合部236は、処理装置911を用いて、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oi=r’iN mod N2を、第一レスポンスR’のi番目の成分R’iとする。特徴ベクトルb’のi番目の成分b’iが1である場合、元結合部235は、処理装置911を用いて、有限群Gにおける乗法により、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oiと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目の成分Riとの積を、整数Nの2乗で割った余りを算出して、第一レスポンスR’のi番目の成分R’iとする。
累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’と、逆数算出部351が算出したT個の逆数κiとに基づいて、暗号化特徴ベクトルC’を算出する。累乗算出部353が算出する暗号化特徴ベクトルC’のi番目の成分c’i(iは、1以上T以下の整数。)は、第一レスポンスR’のi番目の成分R’iを、i番目の逆数κiで累乗した整数を、整数Nの2乗で割った余りである。暗号化特徴ベクトルC’の各成分c’iは、特徴ベクトルb’の成分b’iを暗号化したものになる。
暗号化生体情報抽出工程S710では、認証装置102が、第一レスポンスR’に基づいて、暗号化特徴ベクトルC’を生成する。暗号化生体情報抽出工程S710は、例えば、初期化工程S730と、繰り返し工程S731と、逆数算出工程S732と、累乗算出工程S733aとを有する。
繰り返し工程S731において、累乗算出部353が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、累乗算出部353は、暗号化生体情報抽出工程S710を終了する。整数iがT以下である場合、累乗算出部353は、逆数算出工程S732へ処理を進め、暗号化特徴ベクトルC’のi番目の成分c’iを生成する。
逆数算出工程S732において、逆数算出部351が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数記憶部322が記憶したT個の乱数のうちi番目の乱数R1,iに基づいて、逆数κi=R1,i −1を算出する。
累乗算出工程S733aにおいて、累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’のi番目の成分R’iと、逆数算出工程S732で算出した逆数κiとに基づいて、暗号化特徴ベクトルC’のi番目の成分c’i=R’i κiを算出する。
累乗算出部353は、繰り返し工程S731に処理を戻し、暗号化特徴ベクトルC’の次の成分を生成する。
認証装置102の暗号化ランダム類似度算出部314が生成する第二チャレンジC^は、0以上N2未満の(T+1)個の整数c^ 1,c^ 2,…,c^ T,c^からなる。暗号化ランダム類似度算出部314は、例えば、差分算出部361と、並べ替え部385と、暗号化鍵生成部366とを有する。
乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数s1を記憶する。
並べ替え部385は、処理装置911を用いて、差分算出部361が算出した暗号化差分ベクトルΔCに基づいて、第二チャレンジC^の一部であるT個の整数c^ i(iは、1以上T以下の整数。)を生成する。整数c^ iは、0以上N2未満の整数である。T個の整数c^ iは、暗号化差分ベクトルΔCのT個の成分Δciの順序をランダムに並べ替えたものである。
暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成した2つの乱数s1,s2とに基づいて、第二チャレンジC^の一部である1個の整数c^を生成する。整数c^は、0以上N2未満の整数である。整数c^は、乱数s1と整数Nとの積に1を加えた整数(1+s1N)と、乱数s2を整数Nで累乗した整数s2 Nとの積を、整数Nの2乗で割った余りである。整数c^は、乱数生成部303が算出した乱数s1を暗号化したものである。
第二チャレンジ生成工程S712では、認証装置102が、2つの暗号化特徴ベクトルC,C’に基づいて、第二チャレンジC^を生成する。第二チャレンジ生成工程S712は、例えば、初期化工程S740と、繰り返し工程S741と、乱数生成工程S757と、2つの差分算出工程S742a,S742bと、乱数生成工程S758と、第二チャレンジ設定工程S759と、乱数生成工程S749と、暗号化鍵生成工程S752とを有する。
繰り返し工程S741において、並べ替え部385が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、並べ替え部385は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、並べ替え部385は、乱数生成工程S757へ処理を進める。
乱数生成工程S757において、乱数生成部303が、処理装置911を用いて、乱数tiを生成する。乱数tiは、0または1から一様ランダムに選択した整数である。
乱数tiが0である場合、差分算出部361は、差分算出工程S742aへ処理を進める。
乱数tiが1である場合、差分算出部361は、差分算出工程S742bへ処理を進める。
差分算出工程S742bにおいて、差分算出部361が、処理装置911を用いて、暗号化特徴ベクトルC’のi番目の成分c’iに基づいて、N2を法とする整数の乗法における整数c’iの逆数c’i −1を算出する。差分算出部361は、処理装置911を用いて、算出した逆数c’i −1と、暗号化特徴ベクトルCのi番目の成分ciとに基づいて、整数ciと逆数c’i −1との積を、整数Nの2乗で割った余りを算出して、暗号化差分ベクトルΔCのi番目の成分Δciとする。差分算出部361は、乱数生成工程S758へ処理を進める。
乱数生成工程S758において、乱数生成部303が、処理装置911を用いて、乱数jiを生成する。乱数jiは、集合Sの元のなかから一様ランダムに選択した整数である。並べ替え部385は、処理装置911を用いて、集合Sの元から、乱数jiを取り除く。
第二チャレンジ設定工程S759において、並べ替え部385は、処理装置911を用いて、暗号化差分ベクトルΔCのi番目の成分Δciを、第二チャレンジC^のji番目の整数c^ jiにする。
並べ替え部385は、繰り返し工程S741に処理を戻す。
暗号化鍵生成工程S752において、暗号化鍵生成部366が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した乱数s1,s2に基づいて、第二チャレンジC^の(T+1)番目の整数c^=s2 N(1+s1N) mod N2を算出する。
復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482と、二乗算出部473と、整数結合部485とを有する。
復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジC^と、逆数算出部481が算出した逆数λ−1とに基づいて、(T+1)個の整数zi,z’(iは、1以上T以下の整数。)を算出する。整数zi,z’は、0以上N未満の整数である。i番目の整数zi(iは、1以上T+1以下の整数。)は、第二チャレンジC^のi番目の整数c^ iを復号した整数である。整数z’は、第二チャレンジC^の(T+1)番目の整数c^を復号した整数である。したがって、整数ziは、特徴ベクトルbの成分と特徴ベクトルb’の対応する成分との差を表わす。また、整数z’は、認証装置102の乱数生成部303が生成した乱数s1と等しい。
第二チャレンジC^の1番目からT番目までの整数c^ iは、暗号化差分ベクトルΔCの成分の順序をランダムに並べ替えたものであるから、復号装置103は、整数ziが特徴ベクトルのどの成分の差であるかがを知ることができない。また、暗号化差分ベクトルΔCの成分Δciは、正負をランダムに変えてあるので、復号装置103は、2つの特徴ベクトルb,b’のうち、その成分が大きいのがどちらかを知ることもできない。
二乗算出部473は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出したT個の整数ziとに基づいて、二乗値z’i(iは、1以上T以下の整数。)を算出する。二乗値z’iは、0以上N未満の整数である。i番目の二乗値z’i(iは、1以上T以下の整数。)は、i番目の整数ziの2乗を、整数Nで割った余りである。
整数結合部485は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出した整数z’と、二乗算出部473が算出したT個の整数z’iとに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。整数結合部485が算出する第二レスポンスZは、T個の整数z’iと、整数z’とを合計した総和を、整数Nで割った余りである。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間のユークリッド距離の二乗Σi[(bi−b’i)2]と、乱数s1との和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間のユークリッド距離の二乗を、一時鍵としての乱数u1で暗号化したものである。
第二レスポンス生成工程S716では、復号装置103が、第二チャレンジC^から、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、逆数算出工程S561aと、復号整数算出工程S566aと、初期化工程S560と、繰り返し工程S562と、復号整数算出工程S563aと、二乗算出工程S564と、整数結合工程S565aとを有する。
復号整数算出工程S566aにおいて、復号整数算出部482が、処理装置911を用いて、逆数算出工程S561aで逆数算出部481が算出した逆数λ−1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジC^の最後の整数c^を復号して、整数z’を算出する。例えば、復号整数算出部482は、整数c^を整数λで累乗した整数から1を差し引いた整数(c^λ−1)を整数Nの2乗で割った余りを、Nで割った商yを算出する。復号整数算出部482は、算出した商yと逆数λ−1との積yλ−1をNで割った余りを算出して、整数z’とする。
初期化工程S560において、整数結合部485が、処理装置911を用いて、整数iを0に初期化し、第二レスポンスZを、復号整数算出工程S566aで復号整数算出部482が算出した整数z’に初期化する。
繰り返し工程S562において、整数結合部485が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二レスポンスZが完成したので、整数結合部485は、第二レスポンス生成工程S716を終了する。整数iがT以下である場合、整数結合部485は、復号整数算出工程S563aへ処理を進める。
復号整数算出工程S563aにおいて、復号整数算出部482が、処理装置911を用いて、逆数算出工程S561aで逆数算出部481が算出した逆数λ−1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジC^のi番目の整数c^ iを復号して、i番目の整数ziを算出する。例えば、復号整数算出部482は、整数c^ iを整数λで累乗した整数から1を差し引いた整数(c^ i λ−1)を整数Nの2乗で割った商yiを算出する。復号整数算出部482は、算出した整数yiと逆数λ−1との積yiλ−1をNで割った余りを算出して、整数ziとする。
二乗算出工程S564において、二乗算出部473が、処理装置911を用いて、復号整数算出工程S563aで復号整数算出部482が算出したi番目の整数ziに基づいて、i番目の二乗値z’iを算出する。
整数結合工程S565aにおいて、整数結合部485が、処理装置911を用いて、整数Nを法とする整数の加法により、二乗算出工程S564で二乗算出部473が算出したi番目の二乗値z’iを、第二レスポンスZに結合する。
整数結合部485は、繰り返し工程S562に処理を戻し、第二チャレンジC^の次の整数を処理する。
平文類似度算出工程S719では、認証装置102が、第二レスポンスZから、類似度dを算出する。平文類似度算出工程S719は、例えば、整数結合工程S692aを有する。
第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジC^を算出することにより、T個のδj=±(bi−b’i)(i及びjは、1以上T以下の整数。)と、1個のδ*=s1とを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。また、復号装置103に特徴ベクトルb,b’についての情報が渡らないよう、δjは、正負をランダムに変え、更に、順序もランダムに並べ替える。
第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζ=Σi[δi 2]+δ*(iは、1以上T以下の整数。)を算出する。第一項Σi[δi 2]は、類似度dであり、第二項δ*は、暗号化を意味する。すなわち、復号装置103は、類似度dを算出して、δ*=s1を使って、暗号化する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、第一段階でのランダム化により、復号装置103は、特徴ベクトルb,b’についての情報を得ることができない。
第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
実施の形態7について、図62〜図68を用いて説明する。
なお、実施の形態1〜実施の形態6と共通する部分については、同一の符号を付し、説明を省略する。
なお、この実施の形態では、実施の形態6で説明したPaillier暗号方式を使い、実施の形態3と同様、類似度dとして、内積Σi[bib’i]を算出する場合について説明する。
認証装置102の暗号化乱数生成部304は、例えば、累乗算出部334と、零生成部332と、整数結合部336とを有する。
零生成部332は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成したT個の乱数R2,iとに基づいて、暗号化零ベクトルO’を生成する。暗号化零ベクトルO’は、0以上N2未満の整数を成分とするT次元のベクトル(o’1,o’2,…,o’T)である。暗号化零ベクトルO’のi番目の成分o’i(iは、1以上T以下の整数。)は、i番目の乱数R2,iを整数Nで累乗した整数R2,i Nを、整数Nの2乗で割った余りである。暗号化零ベクトルO’の各成分o’iは、0を暗号化したものである。
整数結合部336は、処理装置911を用いて、累乗算出部334が算出した累乗ベクトルЯ’と、零生成部332が生成した暗号化零ベクトルO’とに基づいて、第一チャレンジRを算出する。第一チャレンジRは、0以上N2未満の整数を成分とするT次元のベクトル(R1,R2,…,RT)である。第一チャレンジRのi番目の成分Ri(iは、1以上T以下の整数。)は、累乗ベクトルЯ’のi番目の成分я’iと、暗号化零ベクトルO’のi番目の成分o’iとの積を、整数Nの2乗で割った余りである。第一チャレンジRの各成分Riは、特徴ベクトルbの成分biと、平文としての乱数R1,iとの積を暗号化したものになる。
第一チャレンジ生成工程S701では、認証装置102が、暗号化特徴ベクトルCに基づいて、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、累乗算出工程S724と、零生成工程S725と、整数結合工程S726とを有する。
繰り返し工程S721において、整数結合部336が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、整数結合部336は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、整数結合部336は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Riを生成する。
乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、2個の乱数R1,i,R2,iを生成する。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数R1,iを記憶する。
累乗算出工程S724において、累乗算出部334が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分ciと、乱数生成工程S722で乱数生成部303が生成した乱数R1,iとに基づいて、累乗ベクトルЯ’のi番目の成分я’iを算出する。
零生成工程S725において、零生成部332が、処理装置911を用いて、乱数生成工程S722で乱数生成部303が生成した乱数R2,iに基づいて、暗号化零ベクトルO’のi番目の成分o’iを算出する。
整数結合工程S726において、整数結合部336が、処理装置911を用いて、累乗算出工程S724aで累乗算出部334が算出した累乗ベクトルЯ’のi番目の成分я’iと、零生成工程S725で零生成部332が算出した暗号化零ベクトルO’のi番目の成分o’iとに基づいて、第一チャレンジRのi番目の成分Riを算出する。
整数結合部336は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。
すなわち、第一レスポンスR’のi番目の成分R’i(iは、1以上T以下の整数。)は、特徴ベクトルbのi番目の成分biと、特徴ベクトルb’のi番目の成分b’iと、乱数R1,iとの積を暗号化したものである。
暗号化データ抽出部305が生成する暗号化特徴ベクトルC’のi番目の成分c’i(iは、1以上T以下の整数。)は、特徴ベクトルb’のi番目の成分b’iの暗号化ではなく、2つの特徴ベクトルb,b’のi番目の成分bi,b’iの積bib’iを暗号化したものである。
認証装置102の暗号化ランダム類似度算出部314が生成する第二チャレンジC^は、0以上N2未満の(T+1)個の整数c^ 1,c^ 2,…,c^ T,c^からなる。暗号化ランダム類似度算出部314は、例えば、並べ替え部385と、暗号化鍵生成部366とを有する。
乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数s1を記憶する。
暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成した2つの乱数s1,s2とに基づいて、第二チャレンジC^の一部である1個の整数c^を生成する。整数c^は、0以上N2未満の整数である。整数c^は、乱数s1と整数Nとの積に1を加えた整数(1+s1N)と、乱数s2を整数Nで累乗した整数s2 Nとの積を、整数Nの2乗で割った余りである。整数c^は、乱数生成部303が算出した乱数s1を暗号化したものである。
第二チャレンジ生成工程S712の処理の流れは、実施の形態6とほとんど同じであるが、2つだけ異なる点がある。
第一点は、乱数生成工程S757と、2つの差分算出工程S742a,S742bとがなく、繰り返し工程S741で整数iがT以下である場合に、乱数生成工程S758へ処理を進める点である。
第二点は、第二チャレンジ設定工程S759の処理である。第二チャレンジ設定工程S759において、並べ替え部385は、処理装置911を用いて、暗号化特徴ベクトルC’のi番目の成分Δciを、第二チャレンジC^のji番目の整数c^ jiにする。
復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482と、整数結合部485とを有する。
復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジC^と、逆数算出部481が算出した逆数λ−1とに基づいて、(T+1)個の整数zi,z’(iは、1以上T以下の整数。)を算出する。整数zi,z’は、0以上N未満の整数である。i番目の整数zi(iは、1以上T+1以下の整数。)は、第二チャレンジC^のi番目の整数c^ iを復号した整数である。整数z’は、第二チャレンジC^の(T+1)番目の整数c^を復号した整数である。したがって、整数ziは、特徴ベクトルbの成分と特徴ベクトルb’の対応する成分との積を表わす。また、整数z’は、認証装置102の乱数生成部303が生成した乱数s1と等しい。
整数結合部485は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出した(T+1)個の整数zi,z’とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。整数結合部485が算出する第二レスポンスZは、T個の整数ziと、整数z’とを合計した総和を、整数Nで割った余りである。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積Σi[bib’i]と、乱数s1との和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積を、一時鍵としての乱数s1で暗号化したものである。
第二レスポンス生成工程S716の処理の流れは、実施の形態6とほとんど同じであるが、2つだけ異なる点がある。
第一点は、二乗算出工程S564がなく、復号整数算出工程S563aの次に、整数結合工程S565aへ処理を進める点である。
第二点は、整数結合工程S565aの処理である。整数結合工程S565aにおいて、整数結合部485は、処理装置911を用いて、整数Nを法とする加法により、復号整数算出工程S563aで復号整数算出部482が算出したi番目の整数ziを、第二レスポンスZに結合する。
平文類似度抽出部315は、類似度dとして、2つの特徴ベクトルb,b’の内積Σi[bib’i]を算出する。
これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。
なお、ρiは、第一レスポンスR’において暗号化されている情報を示す。
第一段階は、第二チャレンジ生成工程S712ではなく、第一レスポンス生成工程S707である。第一レスポンス生成工程S707において、証明装置101が、第一チャレンジRから第一レスポンスR’を算出することにより、T個のρi=bib’iを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、証明装置101は、特徴ベクトルbについての情報を得ることができない。
第二段階として、第二チャレンジ生成工程S712において、認証装置102が、暗号化特徴ベクトルC’から第二チャレンジC^を算出することにより、T個のδj(jは、1以上T以下の整数。)と、1個のδ*=s1とを算出する。δjは、復号装置103に特徴ベクトルb,b’についての情報が渡らないよう、ρiの順序を入れ換えたものなので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第三段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζ=Σi[δi]+δ*(iは、1以上T以下の整数。)を算出する。第一項Σi[δi]は、類似度dであり、第二項δ*は、暗号化を意味する。すなわち、復号装置103は、類似度dを算出して、δ*=s1を使って、暗号化する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、第二段階でのランダム化により、復号装置103は、特徴ベクトルb,b’についての情報を得ることができない。
第四段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
実施の形態8について、図69〜図72を用いて説明する。
なお、実施の形態1〜実施の形態7と共通する部分については、同一の符号を付し、説明を省略する。
認証装置102の暗号化ランダム類似度算出部314は、例えば、撹乱ベクトル生成部362と、整数結合部386とを有する。
整数結合部386は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’と、撹乱ベクトル生成部362が算出した撹乱ベクトルтとに基づいて、第二チャレンジC^を生成する。第二チャレンジC^は、T個の整数c^ 1,c^ 2,…,c^ Tからなる。T個の整数c^ iは、0以上N2未満の整数である。第二チャレンジC^のi番目の整数c^ i(iは、1以上T以下の整数。)は、暗号化特徴ベクトルC’のi番目の成分c’iと、撹乱ベクトルтのi番目の成分tiとの積を、整数Nの2乗で割った余りである。第二チャレンジC^の各整数c^ iは、暗号化特徴ベクトルC’の成分で暗号化されているbib’iと、乱数t1,iとの和bib’i+t1,iを暗号化したものである。
なお、第二チャレンジC^のT個の整数c^ iの順序は、特徴ベクトルb,b’の成分の順序と異なっていてもよい。
第二チャレンジ生成工程S712では、認証装置102が、暗号化特徴ベクトルC’に基づいて、第二チャレンジC^を生成する。第二チャレンジ生成工程S712は、例えば、初期化工程S740と、繰り返し工程S741と、乱数生成工程S743と、撹乱ベクトル生成工程S744と、整数結合工程S760とを有する。
繰り返し工程S741において、整数結合部386が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、整数結合部386は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、整数結合部386は、乱数生成工程S743へ処理を進め、第二チャレンジC^のi番目の整数c^ iを生成する。
乱数生成工程S743において、乱数生成部303が、処理装置911を用いて、2個の乱数t1,i,t2,iを生成する。乱数記憶部322は、処理装置911を用いて、乱数生成部303が生成した乱数t1,iを、整数s1に加え、記憶装置914を用いて、算出した整数s1を記憶する。
撹乱ベクトル生成工程S744において、撹乱ベクトル生成部362が、処理装置911を用いて、乱数生成工程S743で乱数生成部303が生成した2つの乱数t1,i,t2,iに基づいて、撹乱ベクトルтのi番目の成分tiを算出する。
整数結合工程S760において、整数結合部386が、処理装置911を用いて、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’のi番目の成分c’iと、撹乱ベクトル生成工程S744で撹乱ベクトル生成部362が算出した撹乱ベクトルтのi番目の成分tiとに基づいて、第二チャレンジC^のi番目の整数c^ iを算出する。
整数結合部386は、繰り返し工程S741に処理を戻し、第二チャレンジC^の次の整数を生成する。
復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジC^と、逆数算出部481が算出した逆数λ−1とに基づいて、T個の整数zi(iは、1以上T以下の整数。)を算出する。整数ziは、0以上N未満の整数である。i番目の整数zi(iは、1以上T+1以下の整数。)は、第二チャレンジC^のi番目の整数c^ iを復号した整数である。整数ziは、2つの特徴ベクトルbの対応する成分bi,b’iの積と、乱数t1,iとの和bib’i+t1,iと等しい。
整数結合部485は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出したT個の整数ziとに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。整数結合部485が算出する第二レスポンスZは、T個の整数ziを合計した総和を、整数Nで割った余りである。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積Σi[bib’i]と、乱数t1,iの合計値s1=Σi[t1,i]との和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積を、一時鍵としての乱数s1で暗号化したものである。
第二レスポンス生成工程S716の処理の流れは、実施の形態7とほとんど同じであるが、2つ異なる点がある。
第一点として、復号整数算出工程S566a、整数結合工程S568aがなく、逆数算出工程S561aの次に、初期化工程S560を実行する。
第二点として、初期化工程S560で、整数結合部485が、処理装置911を用いて、第二レスポンスZを0に初期化する。
平文類似度抽出部315は、類似度dとして、2つの特徴ベクトルb,b’の内積Σi[bib’i]を算出する。
これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。
第一段階として、第一レスポンス生成工程S707において、証明装置101が、第一チャレンジRから第一レスポンスR’を算出することにより、T個のρi=bib’iを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、証明装置101は、特徴ベクトルbについての情報を得ることができない。
第二段階として、第二チャレンジ生成工程S712において、認証装置102が、暗号化特徴ベクトルC’から第二チャレンジC^を算出することにより、T個のδi=ρi+t1,i(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’や類似度についての情報を得ることができない。
第三段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζ=Σi[δi](iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、復号装置103は、一時鍵s1=Σi[t1,i]を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵s1で暗号化された状態で行われる。
第四段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
実施の形態9について、図73〜図77を用いて説明する。
なお、実施の形態1〜実施の形態8と共通する部分については、同一の符号を付し、説明を省略する。
認証装置102の暗号化ランダム類似度算出部314は、例えば、暗号化鍵生成部366と、整数結合部386とを有する。
整数結合部386は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’と、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、第二チャレンジC^を生成する。第二チャレンジC^は、0以上N2未満の整数である。第二チャレンジC^は、暗号化特徴ベクトルC’のT個の成分c’iと、暗号化鍵цとの総積Πi[c’i]цを、整数Nの2乗で割った余りである。第二チャレンジC^は、暗号化特徴ベクトルC’の成分で暗号化されているbib’iの総和(すなわち、2つの特徴ベクトルb,b’の内積)と、平文としての乱数s1との和Σi[bib’i]+s1を暗号化したものである。
第二チャレンジ生成工程S712では、認証装置102が、暗号化特徴ベクトルC’に基づいて、第二チャレンジC^を生成する。第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、暗号化鍵生成工程S752と、初期化工程S740と、繰り返し工程S741と、整数結合工程S760とを有する。
暗号化鍵生成工程S752において、暗号化鍵生成部366が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s1,s2に基づいて、暗号化鍵цを算出する。
初期化工程S740において、整数結合部386が、処理装置911を用いて、整数iを0に初期化し、第二チャレンジC^を、暗号化鍵生成工程S752で暗号化鍵生成部366が算出した暗号化鍵цに初期化する。
繰り返し工程S741において、整数結合部386が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジC^が完成したので、整数結合部386は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、整数結合部386は、整数結合工程S760へ処理を進める。
整数結合工程S760において、整数結合部386が、処理装置911を用いて、整数Nの2乗を法とする整数の乗法により、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’のi番目の成分c’iを、第二チャレンジC^に結合する。
整数結合部386は、繰り返し工程S741に処理を戻す。
復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482とを有する。
逆数算出部481は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、秘密鍵記憶部413が記憶した秘密鍵skである整数λとに基づいて、Nを法とする整数の乗法における整数λの逆数λ−1を算出する。
復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジC^と、逆数算出部481が算出した逆数λ−1とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。第二レスポンスZは、第二チャレンジC^を復号した整数である。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積Σi[bib’i]と、乱数s1との和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積を、一時鍵としての乱数s1で暗号化したものである。
第二レスポンス生成工程S716では、復号装置103が、第二チャレンジC^から、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、逆数算出工程S561aと、復号整数算出工程S563aとを有する。
復号整数算出工程S563aにおいて、復号整数算出部482が、処理装置911を用いて、逆数算出工程S561aで逆数算出部481が算出した逆行列λ−1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジC^を復号して、第二レスポンスZを算出する。例えば、復号整数算出部482は、第二チャレンジC^を整数λで累乗した整数から1を差し引いた整数(C^λ−1)を整数Nの二乗で割った商yを算出する。復号整数算出部482は、算出した商yと逆数λ−1との積yλ−1を整数Nで割った余りを算出して、第二レスポンスZとする。
平文類似度抽出部315は、類似度dとして、2つの特徴ベクトルb,b’の内積Σi[bib’i]を算出する。
これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。
第一段階として、第一レスポンス生成工程S707において、証明装置101が、第一チャレンジRから第一レスポンスR’を算出することにより、T個のρi=bib’iを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、証明装置101は、特徴ベクトルbについての情報を得ることができない。
第二段階として、第二チャレンジ生成工程S712において、認証装置102が、暗号化特徴ベクトルC’から第二チャレンジC^を算出することにより、δ=Σi[bib’i]+s1(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第三段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジC^から第二レスポンスZを算出することにより、ζを算出する。復号装置103は、単に復号処理をするだけなので、ζは、δと等しい。復号装置103は、一時鍵s1を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵s1で暗号化された状態で行われる。
第四段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−s1を算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
実施の形態10について、図78〜図81を用いて説明する。
なお、実施の形態1〜実施の形態9と共通する部分については、同一の符号を付し、説明を省略する。
画像検索システム110は、暗号化されたままの状態で、登録された画像のなかから、指定された画像と似ているものを検索するシステムである。
画像検索システム110(類似度算出システム)は、例えば、端末装置111と、検索装置112と、復号装置103と、登録装置104とを有する。
登録装置104は、画像データを入力し、入力した画像データからその画像データが表わす画像の特徴を抽出して、特徴ベクトルbを生成する。登録装置104は、生成した特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。登録装置104は、入力した画像データを暗号化して暗号化画像データを生成する。登録装置104は、暗号化特徴ベクトルCと、暗号化画像データとを検索装置112に登録する。なお、暗号化画像データは、検索装置112とは別の場所に保管し、暗号化特徴ベクトルCと、暗号化画像データの所在を表わすデータとを検索装置112に登録する構成であってもよい。
端末装置111は、画像データを入力し、入力した画像データからその画像データが表わす画像の特徴を抽出して、特徴ベクトルb’を生成する。端末装置111は、生成した特徴ベクトルb’を暗号化して暗号化特徴ベクトルC’を生成し、検索装置112に検索を要求する。
検索装置112は、登録装置104によって登録された暗号化特徴ベクトルCを複数記憶している。検索装置112は、端末装置111からの検索要求に基づいて、記憶しているそれぞれの暗号化特徴ベクトルCと、端末装置111から送られた暗号化特徴ベクトルC’とに基づいて類似度dを算出する。検索装置112は、算出した類似度dに基づいて、登録された画像のなかから、指定された画像に似ている画像を判定し、判定した画像の暗号化画像データ、もしくは、暗号化画像データの所在を表わすデータを端末装置111に返す。
登録装置104は、例えば、公開鍵受信部208と、公開鍵記憶部202と、画像入力部209と、特徴ベクトル形成部204と、乱数生成部205と、暗号化データ生成部206と、暗号化データ送信部201と、画像暗号化部226と、暗号化画像送信部228とを有する。
公開鍵受信部208(公開鍵取得部)は、通信装置などの入力装置912を用いて、復号装置103の公開鍵pkを受信する。復号装置103の公開鍵pkは、復号装置103が秘密裡に記憶した秘密鍵skに対応する公開鍵であり、復号装置103の公開鍵pkで暗号化したデータは、復号装置103が記憶した秘密鍵skでなければ復号できない。
公開鍵記憶部202は、記憶装置914を用いて、公開鍵受信部208が受信した公開鍵pkを記憶する。
画像入力部209は、入力装置912を用いて、登録すべき画像データを入力する。
特徴ベクトル形成部204(比較データ取得部)は、処理装置911を用いて、画像入力部209が入力した画像データから特徴ベクトルb(比較データ)を生成する。特徴ベクトルbは、例えば、整数を成分とするT次元ベクトルである。
乱数生成部205は、処理装置911を用いて、特徴ベクトルbや画像データを暗号化するときに使用される乱数を生成する。
暗号化データ生成部206(比較暗号文生成部)は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵と、特徴ベクトル形成部204が生成した特徴ベクトルbと、乱数生成部205が生成した乱数とに基づいて、暗号化特徴ベクトルC(比較暗号文)を生成する。暗号化特徴ベクトルCは、暗号文を成分とするT次元のベクトルである。暗号化特徴ベクトルCの各成分は、特徴ベクトルbの各成分を暗号化したものである。
暗号化データ送信部201(比較暗号文通知部)は、暗号化データ生成部206が生成した暗号化特徴ベクトルCを検索装置112に登録するため、通信装置などの出力装置913を用いて、暗号化特徴ベクトルCを検索装置112に対して送信する。
画像暗号化部226は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵と、画像入力部209が入力した画像データと、乱数生成部205が生成した乱数とに基づいて、暗号化画像データを生成する。暗号化画像データは、画像データを暗号化したものである。なお、画像暗号化部226が画像データを暗号化するときに使用する暗号方式は、暗号化データ生成部206が特徴ベクトルbを暗号化するときに使用する暗号方式と同じ暗号方式であってもよいし、異なる暗号方式であってもよい。
暗号化画像送信部228は、画像暗号化部226が生成した暗号化画像データを登録するため、通信装置などの出力装置913を用いて、暗号化データ送信部201が送信する暗号化特徴ベクトルCとともに、暗号化画像データを検索装置112に対して送信する。なお、暗号化画像データを検索装置112に登録するのではなく、他の装置に登録する構成であってもよい。また、登録装置104自身が、暗号化画像データを保管する構成であってもよい。その場合、暗号化画像送信部228は、暗号化画像データのURI(統一資源識別子)など暗号化画像データの所在を表わすデータを、暗号化特徴ベクトルとともに、検索装置112に対して送信する。
端末装置111は、例えば、公開鍵受信部218と、公開鍵記憶部212と、画像入力部219と、特徴ベクトル形成部214と、乱数生成部215と、暗号化データ生成部216と、暗号化データ送信部222と、結果受信部223と、結果出力部224とを有する。
公開鍵受信部218(公開鍵取得部)は、通信装置などの入力装置912を用いて、復号装置103の公開鍵pkを受信する。
公開鍵記憶部202は、記憶装置914を用いて、公開鍵受信部218が受信した公開鍵pkを記憶する。
画像入力部219は、入力装置912を用いて、類似する画像を探すべき画像データを入力する。
特徴ベクトル形成部214(対象データ取得部)は、処理装置911を用いて、画像入力部219が入力した画像データから特徴ベクトルb’(対象データ)を生成する。特徴ベクトルb’は、例えば、整数を成分とするT次元ベクトルである。
乱数生成部215は、処理装置911を用いて、特徴ベクトルb’を暗号化するときに使用される乱数を生成する。
暗号化データ生成部216(対象暗号文生成部)は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵と、特徴ベクトル形成部214が生成した特徴ベクトルb’と、乱数生成部215が生成した乱数とに基づいて、暗号化特徴ベクトルC’(対象暗号文)を生成する。暗号化特徴ベクトルC’は、暗号文を成分とするT次元のベクトルである。暗号化特徴ベクトルC’の各成分は、特徴ベクトルb’の各成分を暗号化したものである。
暗号化データ送信部222(対象暗号文通知部)は、画像入力部219が入力した画像データに似た画像を検索するため、通信装置などの出力装置913を用いて、暗号化データ生成部216が生成した暗号化特徴ベクトルC’を検索装置112に対して送信する。
結果受信部223は、通信装置などの入力装置912を用いて、検索装置112が送信した検索結果を受信する。検索結果は、例えば、画像入力部219が入力した画像データに似た画像の暗号化画像データそのものや、その所在を表わすデータである。
結果出力部224は、表示装置などの出力装置913を用いて、結果受信部223が受信した検索結果を出力する。結果出力部224は、例えば、画像入力部219が入力した画像データが表わす画像に似た画像の数を表示する。あるいは、結果出力部224は、暗号化画像データを復号して画像を表示する構成であってもよい。
しかし、実施の形態1〜実施の形態9で説明した証明装置101と同じように、端末装置111は、検索装置112から第一チャレンジRを受信し、受信した第一チャレンジRと、特徴ベクトルb’とに基づいて、第一レスポンスR’を生成し、生成した第一レスポンスR’を検索装置112に対して送信する構成であってもよい。
検索装置112は、例えば、公開鍵受信部308と、公開鍵記憶部302と、2つの暗号化データ受信部301,325と、暗号化データ記憶部312と、乱数生成部303と、乱数記憶部322と、暗号化ランダム類似度算出部314と、第二チャレンジ送信部321と、第二レスポンス受信部341と、平文類似度抽出部315と、判定部306と、結果送信部323とを有する。
公開鍵受信部308(公開鍵取得部)は、通信装置などの入力装置912を用いて、復号装置103の公開鍵pkを受信する。
公開鍵記憶部302は、記憶装置914を用いて、公開鍵受信部308が受信した公開鍵pkを記憶する。
暗号化データ受信部301(比較暗号文取得部)は、通信装置などの入力装置912を用いて、登録装置104が送信した暗号化特徴ベクトルCを受信する。
暗号化データ記憶部312(比較暗号文記憶部)は、記憶装置914を用いて、暗号化データ受信部301が受信した暗号化特徴ベクトルCを記憶する。暗号化データ記憶部312は、複数の暗号化特徴ベクトルCを、暗号化画像データの所在を表わすデータと対応づけて記憶する。
暗号化データ受信部325(対象暗号文取得部)は、通信装置などの入力装置912を用いて、端末装置111が送信した暗号化特徴ベクトルC’を受信する。
乱数生成部303は、処理装置911を用いて、第二チャレンジC^の生成に使用する乱数を生成する。
乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、平文としての乱数を記憶する。
暗号化ランダム類似度算出部314は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCそれぞれについて、暗号化データ受信部325が受信した暗号化特徴ベクトルC’や乱数生成部303が生成した乱数などに基づいて、第二チャレンジC^を生成する。
第二チャレンジ送信部321は、通信装置などの出力装置913を用いて、暗号化ランダム類似度算出部314が生成した第二チャレンジC^を復号装置103に対して送信する。
第二レスポンス受信部341は、通信装置などの入力装置912を用いて、第二チャレンジ送信部321が送信した第二チャレンジC^に対する応答として、復号装置103が送信した第二レスポンスZを受信する。
平文類似度抽出部315は、処理装置911を用いて、乱数記憶部322が記憶した乱数や、第二レスポンス受信部341が受信した第二レスポンスZに基づいて、類似度dを算出する。
判定部306は、処理装置911を用いて、平文類似度抽出部315が算出した類似度dに基づいて、端末装置111が入力した画像データが表わす画像に似ている画像を判定する。例えば、類似度dが、ユークリッド距離の二乗など、小さいほど似ていることを表わすものである場合、判定部306は、類似度dが所定の閾値d0より小さい場合に、その画像が、端末装置111が入力した画像データが表わす画像に似ていると判定する。なお、判定部306は、類似度dが閾値d0より小さい画像の数が所定の数より多い場合、類似度dが小さい順に、所定の数の画像だけを、端末装置111が入力した画像データに似ていると判定する構成であってもよい。
また、復号装置103の構成も、実施の形態1〜実施の形態9で説明した復号装置103の構成と同様である。
類似度算出装置は、データを記憶する記憶装置(914)と、データを処理する処理装置(911)と、比較暗号文記憶部(暗号化データ記憶部312)と、対象暗号文取得部(暗号化データ抽出部305;暗号化データ受信部325)と、一時鍵生成部(乱数生成部303)と、類似度途中暗号文算出部(暗号化ランダム類似度算出部314)と、類似度途中暗号文通知部(第二チャレンジ送信部321)と、類似度途中復号文取得部(第二レスポンス受信部341)と、類似度算出部(平文類似度抽出部315)とを有する。
上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を使った暗号化変換により上記比較データを変換した比較暗号文(暗号化特徴ベクトルC)を記憶する。
上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文(暗号化特徴ベクトルC’)を取得する。
上記一時鍵生成部は、上記処理装置を用いて、一時鍵(乱数u1;乱数s1)を生成する。
上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文(第二チャレンジC^)を算出する。
上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知する。
上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文(第二レスポンスZ)を取得する。
上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出する。
上記復号装置は、データを記憶する記憶装置(914)と、データを処理する処理装置(911)と、秘密鍵記憶部(413)と、類似度途中暗号文取得部(第二チャレンジ受信部402)と、類似度途中復号文算出部(復号部404)と、類似度途中復号文通知部(第二レスポンス送信部412)とを有する。
上記復号装置の秘密鍵記憶部は、上記復号装置の記憶装置を用いて、秘密鍵(sk)を記憶する。
上記復号装置の類似度途中暗号文取得部は、上記復号装置の処理装置を用いて、上記類似度算出装置から通知された類似度途中暗号文を取得する。
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の秘密鍵記憶部が記憶した秘密鍵と、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、上記類似度途中復号文を算出する。
上記復号装置の類似度途中復号文通知部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中復号文算出部が算出した類似度途中復号文を上記類似度算出装置に対して通知する。
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分とするT次元ベクトル(Tは、1以上の整数。)である。
上記類似度算出装置(認証装置102;検索装置112)の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、上記類似度算出装置の処理装置(911)を用いて、上記比較暗号文(暗号化特徴ベクトルC)及び上記対象暗号文(暗号化特徴ベクトルC’)が暗号化されたままの状態で、上記比較データと上記対象データとの間の対応する成分の差または積を計算する。
上記復号装置(103)の類似度途中暗号文算出部(復号部404)は、上記復号装置の処理装置(911)を用いて、上記秘密鍵(sk)を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、上記類似度(d)を計算する。
上記類似度算出装置の類似度算出部(平文類似度抽出部315)は、上記類似度算出装置の処理装置を用いて、上記類似度途中復号文を復号することにより、上記類似度を取得する。
上記暗号化変換は、整数(0以上q未満の整数;0以上N未満の整数)を暗号文(ベクトル空間Vにおけるベクトル;有限群Gの元;0以上N2未満の整数)に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算(ベクトル空間Vにおける加法;有限群Gにおける乗法;N2を法とする整数の乗法)が計算可能であり、任意の第一の整数(x1)を変換した暗号文(E(x1))と、任意の第二の整数(x2)を変換した暗号文(E(x2))とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和(x1+x2)を変換した暗号文(E(x1+x2))になる。
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分(bi,b’i)とするT次元ベクトル(Tは、1以上の整数。)である。
上記比較暗号文(暗号化特徴ベクトルC)は、上記公開鍵(pk)を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文(ci)を成分とするT次元ベクトルである。
上記対象暗号文(暗号化特徴ベクトルC’)は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文(c’i)を成分とするT次元ベクトルである。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記類似度算出装置の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(u1)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、乱数平文生成部(撹乱ベクトル生成部362)と、第一暗号文算出部(ベクトル結合部363)と、第二暗号文算出部(ベクトル累計部367)とを有する。
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数(t1,i)を成分とするT次元ベクトルをランダムに生成して、乱数平文(撹乱ベクトルт)とする。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305;暗号化データ受信部325)が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和(bi−b’i+t1,i)を、上記公開鍵を使った上記暗号化変換により変換した暗号文(c^ i)を成分とするT次元ベクトルである。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文(c^)を算出する。上記第二の類似度途中暗号文は、補正値と、上記一時鍵(u1)との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文である。上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の2倍と、上記乱数平文の各成分の2乗とを、すべての成分について合計した整数(Σi[2t1,i(bi−b’i)+t1,i 2])である。
上記類似度算出装置の類似度途中暗号文通知部(第二チャレンジ送信部321)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、0または1を成分(bi,b’i)とするT次元ベクトル(Tは、1以上の整数。)である。
上記比較暗号文(暗号化特徴ベクトルC)は、上記公開鍵(pk)を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルである。
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分(b’i)を変換した暗号文を成分とするT次元ベクトルである。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記類似度算出装置の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(u1)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、乱数平文生成部(撹乱ベクトル生成部362)と、第一暗号文算出部(ベクトル結合部363)と、第二暗号文算出部(ベクトル累計部367)とを有する。
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分(t1,i)とするT次元ベクトルをランダムに生成して、乱数平文(撹乱ベクトルт)とする。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305;暗号化データ受信部325)が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和(bi−b’i+t1,i)を、上記公開鍵を使った上記暗号化変換により変換した暗号文(c^ i)を成分とするT次元ベクトルである。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文(c^)を算出する。上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文である。上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の2倍と、上記乱数平文の各成分の2乗と、上記比較データの各成分と、上記対象データの各成分とを、すべての成分について合計した整数(Σi[2t1,i(bi−b’i)+t1,i 2+bi+b’i])である。
上記類似度算出装置の類似度途中暗号文通知部(第二チャレンジ送信部321)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分(bi,b’i)とするT次元ベクトル(Tは、1以上の整数。)である。
上記比較暗号文(暗号化特徴ベクトルC)は、上記公開鍵(pk)を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文(ci)を成分とするT次元ベクトルである。
上記対象暗号文(暗号化特徴ベクトルC’)は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文(c’i)を成分とするT次元ベクトルである。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(ps)を記憶する。
上記類似度算出装置の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置を用いて、整数(s1)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部(差分算出部361,並べ替え部385)と、第二暗号文算出部(暗号化鍵生成部366)とを有する。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305;暗号化データ受信部325)が取得した対象暗号文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差(bi−b’i)を、上記公開鍵を使った上記暗号化変換により変換した暗号文(c^ i)を成分とするT次元ベクトルである。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文(c^)を、第二の類似度途中暗号文とする。
上記類似度算出装置の類似度途中暗号文通知部(第二チャレンジ送信部321)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。
上記類似度算出装置(認証装置102;検索装置112)の第一暗号文算出部(差分算出部361,並べ替え部385)は、上記類似度算出装置の処理装置(911)を用いて、上記比較データ(特徴ベクトルb)の成分から上記対象データ(特徴ベクトルb’)の対応する成分を差し引いた差を上記公開鍵(pk)を使った上記暗号化変換により変換した暗号文、及び、上記対象データの成分から上記比較データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文のうちから、各成分ごとにランダムに選択した暗号文を成分とし、成分の順序をランダムに入れ換えたT次元ベクトルを、上記第一の類似度途中暗号文とする。
上記復号装置(103)の類似度途中復号文算出部(復号部404)は、上記復号装置の処理装置(911)を用いて、上記復号装置の類似度途中暗号文取得部(第二チャレンジ受信部402)が取得した2つの類似度途中暗号文(第二チャレンジC^)に基づいて、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個(zは、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。)結合した元を算出して、上記類似度途中復号文(第二レスポンスZ)とする。
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分(bi,b’i)とするT次元ベクトル(Tは、1以上の整数。)である。
上記比較暗号文(暗号化特徴ベクトルC)は、上記公開鍵(pk)を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文(ci)を成分とするT次元ベクトルである。
上記対象暗号文(暗号化特徴ベクトルC’)は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文(c’i)を成分とするT次元ベクトルである。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記類似度算出装置の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(s1)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305;暗号化データ受信部325)が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記暗号文の演算を使って、上記類似度途中暗号文(第二チャレンジC^)を算出する。上記類似度途中暗号文は、合計値と上記一時鍵との和または差を、上記公開鍵を使った暗号化変換により変換した暗号文である。上記合計値は、上記比較データの各成分と上記対象データの対応する成分との差の二乗、または、上記比較データの各成分と上記対象データの対応する成分との積を、すべての成分について合計した整数(Σi[(bi−b’i)2];Σi[bib’i])である。
上記暗号化変換は、0以上q未満(qは、素数。)の整数を、ベクトル空間(V)におけるn次元ベクトル(nは、2以上の整数。)である暗号文に変換する変換である。
上記ベクトル空間は、位数qの巡回群n個の直積である。
上記暗号文の演算は、上記ベクトル空間におけるベクトルの加法である。
上記公開鍵(pk)は、上記ベクトル空間の基底であるランダム基底(B)を含む。
上記暗号化変換は、0以上q未満の整数xを、上記ランダム基底の第一のベクトル(ь1)のx倍と、上記ランダム基底の他のベクトル(ьj)の乱数倍とを合計したベクトルに変換する変換である。
上記暗号化変換は、0以上N未満(Nは、互いに異なる2つの素数p,qの積。)の整数を、位数Nの有限群(G)の元である暗号文に変換する変換である。
上記暗号文の演算は、上記有限群における群演算である。
上記公開鍵(pk)は、上記有限群の生成元(g)と、上記有限群の元であって位数が上記素数pである撹乱元(h)とを含む。
上記暗号化変換は、0以上N未満の整数xを、上記有限群における群演算により、x個の上記生成元と、ランダムな数の上記撹乱元とを結合した元に変換する変換である。
上記暗号化変換は、0以上N未満(Nは、互いに異なる2つの素数p,qの積。)の整数を、0以上N2未満の整数である暗号文に変換する変換である。
上記暗号文の演算は、N2を法とする整数の乗法である。
上記暗号化変換は、0以上N未満の整数xを、整数xと整数Nとの積に1を加えた和と、ランダムな数のN乗との積を、N2で割った余りに変換する変換である。
上記暗号化装置は、データを記憶する記憶装置(914)と、データを処理する処理装置(911)と、公開鍵記憶部(212)と、対象データ取得部(特徴ベクトル形成部214)と、一時公開鍵取得部(第一チャレンジ受信部211)と、対象二重暗号文算出部(暗号化データ埋め込み部217)と、対象二重暗号文通知部(第一レスポンス送信部221)とを有する。
上記暗号化装置の公開鍵記憶部は、上記暗号化装置の記憶装置を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記暗号化装置の対象データ取得部は、上記暗号化装置の処理装置を用いて、対象データ(特徴ベクトルb’)を取得する。
上記暗号化装置の一時公開鍵取得部は、上記暗号化装置の処理装置を用いて、上記類似度算出装置(認証装置102;検索装置112)から通知された一時公開鍵(第一チャレンジR)を取得する。
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵とに基づいて、上記公開鍵と上記一時公開鍵とを使った第二の暗号化変換により上記対象データを変換することにより、対象二重暗号文(第一レスポンスR’)を算出する。
上記暗号化装置の対象二重暗号文通知部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の対象二重暗号文算出部が算出した対象二重暗号文を上記類似度算出装置に対して通知する。
上記類似度算出装置は、更に、一時秘密鍵生成部(乱数生成部303、暗号化乱数生成部304)と、一時公開鍵通知部(第一チャレンジ送信部311)と、対象二重暗号文取得部(第一レスポンス受信部331)とを有する。
上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置(911)を用いて、一時秘密鍵(R1,i)と、上記一時秘密鍵に対応する一時公開鍵(第一チャレンジR)とを生成する。
上記類似度算出装置の一時公開鍵通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時公開鍵を上記暗号化装置に対して通知する。
上記類似度算出装置の対象二重暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置から通知された対象二重暗号文を取得する。
上記類似度算出装置の対象暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵と、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使った第二の復号変換により上記対象二重暗号文を変換することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文(暗号化特徴ベクトルC’)を算出する。
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分(bi,b’i)とするT次元ベクトル(Tは、1以上の整数。)である。
上記類似度算出装置(認証装置102;検索装置112)の一時秘密鍵生成部(乱数生成部303、暗号化乱数生成部304)は、上記類似度算出装置の処理装置(911)を用いて、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文(暗号化特徴ベクトルC)に基づいて、上記比較データについての暗号化された情報を含む一時公開鍵(第一チャレンジR)を生成する。
上記暗号化装置(証明装置101;端末装置111)の対象二重暗号文算出部(暗号化データ埋め込み部217)は、上記暗号化装置の処理装置(911)を用いて、上記一時公開鍵を使った上記第二の暗号化変換により、上記対象データの成分と上記比較データの対応する成分との積(bib’i)についての暗号化された情報を含む対象二重暗号文(第一レスポンスR’)を算出する。
上記暗号化変換は、整数(0以上q未満の整数;0以上N未満の整数)を暗号文(ベクトル空間Vにおけるベクトル;有限群Gの元;0以上N2未満の整数)に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算(ベクトル空間Vにおける加法;有限群Gにおける乗法;N2を法とする整数の乗法)が計算可能であり、任意の第一の整数(x1)を変換した暗号文(E(x1))と、任意の第二の整数(x2)を変換した暗号文(E(x2))とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和(x1+x2)を変換した暗号文(E(x1+x2))になる。
上記対象データ(特徴ベクトルb’)は、整数を成分とするT次元ベクトル(Tは、1以上の整数。)である。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記類似度算出装置の一時公開鍵生成部(乱数生成部303;暗号化乱数生成部304)は、上記類似度算出装置の処理装置(911)を用いて、整数(R1,i)を成分とするT次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、生成した一時秘密鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時秘密鍵の各成分を変換した暗号文(Ri)を成分とするT次元ベクトルを算出して、上記一時公開鍵(第一チャレンジR)とする。
上記暗号化装置(証明装置101;端末装置111)の対象二重暗号文算出部(暗号化データ埋め込み部217)は、上記暗号化装置の処理装置(911)を用いて、上記暗号化装置の公開鍵記憶部(212)が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文(oi)を成分とするT次元ベクトルをランダムに生成して、零暗号文(暗号化零ベクトルO)とし、上記暗号化装置の対象データ取得部(特徴ベクトル形成部214)が取得した対象データと、上記暗号化装置の一時公開鍵取得部(第一チャレンジ受信部211)が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分b’i個(b’iは、上記対象データの対応する成分である整数。)と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記対象二重暗号文(第一レスポンスR’)とする。
上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305)は、一時復号鍵算出部(逆数算出部351)と、対象暗号文算出部(スカラー倍算出部352)とを有する。
上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数(κi)を成分とするT次元ベクトルを算出して、一時復号鍵とする。
上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部(第一レスポンス受信部331)が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分(R’i)をRi −1個(Ri −1は、上記一時復号鍵の対応する成分である逆数。)結合した暗号文を成分とするT次元ベクトルを算出して、上記対象暗号文(暗号化特徴ベクトルC’)とする。
上記暗号化変換は、整数(0以上q未満の整数;0以上N未満の整数)を暗号文(ベクトル空間Vにおけるベクトル;有限群Gの元;0以上N2未満の整数)に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算(ベクトル空間Vにおける加法;有限群Gにおける乗法;N2を法とする整数の乗法)が計算可能である。任意の第一の整数(x1)を変換した暗号文(E(x1))と、任意の第二の整数(x2)を変換した暗号文(E(x2))とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和(x1+x2)を変換した暗号文(E(x1+x2))になる。
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分(bi,b’i)とするT次元ベクトル(Tは、1以上の整数。)である。
上記比較暗号文(暗号化特徴ベクトルC)は、上記公開鍵(pk)を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文(ci)を成分とするT次元ベクトルである。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記類似度算出装置の一時公開鍵生成部(乱数生成部303;暗号化乱数生成部304)は、上記類似度算出装置の処理装置(911)を用いて、整数(R1,i)を成分とするT次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文(o’i)を成分とするT次元ベクトルをランダムに生成して、零暗号文(暗号化零ベクトルO’)とし、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文と、生成した一時秘密鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記比較暗号文の各成分Ri個(Riは、上記一時秘密鍵の対応する成分である整数。)と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記一時公開鍵(第一チャレンジR)とする。
上記暗号化装置(証明装置101;端末装置111)の対象二重暗号文算出部(暗号化データ埋め込み部217)は、上記暗号化装置の処理装置(911)を用いて、上記暗号化装置の公開鍵記憶部(212)が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文(oi)を成分とするT次元ベクトルをランダムに生成して、零暗号文(暗号化零ベクトルO)とし、上記暗号化装置の対象データ取得部(特徴ベクトル形成部214)が取得した対象データと、上記暗号化装置の一時公開鍵取得部(第一チャレンジ受信部211)が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分b’i個(b’iは、上記対象データの対応する成分である整数。)と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記対象二重暗号文(第一レスポンスR’)とする。
上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305)は、一時復号鍵算出部(逆数算出部351)と、対象暗号文算出部(累乗算出部353)とを有する。
上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数(κi)を成分とするT次元ベクトルを算出して、一時復号鍵とする。
上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部(第一チャレンジ送信部311)が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をRi −1個(Ri −1は、上記一時復号鍵の対応する成分である逆数。)結合した暗号文を成分とするT次元ベクトルを算出して、上記対象暗号文(暗号化特徴ベクトルC’)とする。
上記類似度算出装置(認証装置102;検索装置112)の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、乱数平文生成部(暗号化鍵生成部366)と、暗号文算出部(整数結合部386)とを有する。
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置(911)を用いて、整数(t1,i)を成分とするT次元ベクトルをランダムに生成して、乱数平文(撹乱ベクトルт)とする。
上記類似度算出装置の一時鍵生成部(乱数記憶部322)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の乱数平文生成部が生成した乱数平文の成分の総和(Σi[t1,i])を算出し、算出した総和を上記一時鍵とする。
上記類似度算出装置の暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305)が取得した対象暗号文(暗号化特徴ベクトルC’)と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算により、上記対象暗号文の各成分と、上記乱数平文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、類似度途中暗号文(第二チャレンジC^)とする。
上記類似度算出装置(認証装置102;検索装置112)の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(s1)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、第一暗号文算出部(並べ替え部385)と、第二暗号文算出部(暗号化鍵生成部366)とを有する。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305)が取得した対象暗号文(暗号化特徴ベクトルC’)に基づいて、上記対象暗号文の成分の順序をランダムに入れ換えたT次元ベクトルを算出して、第一の類似度途中暗号文とする。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部(302)が記憶した公開鍵(pk)と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を算出して、第二の類似度途中暗号文とする。
上記類似度算出装置の類似度途中暗号文通知部(第二チャレンジ送信部321)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置(103)に対して通知する。
上記復号装置(103)の類似度途中復号文算出部(復号部404)は、上記復号装置の処理装置(911)を用いて、上記復号装置の類似度途中暗号文取得部(第二チャレンジ受信部402)が取得した2つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個(zは、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。)結合した元を算出して、上記類似度途中復号文(第二レスポンスZ)とする。
上記類似度算出装置(認証装置102;検索装置112)の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(s1)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、上記類似度算出装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部(302)が記憶した公開鍵(pk)と、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305)が取得した対象暗号文(暗号化特徴ベクトルC’)と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により上記一時鍵を変換した暗号文と、上記対象暗号文のT個の成分とを、上記暗号文の演算により結合した暗号文を算出して、上記類似度途中暗号文(第二チャレンジC^)とする。
上記復号装置(103)の類似度途中復号文算出部(復号部404)は、上記復号装置の処理装置(911)を用いて、上記復号装置の類似度途中暗号文取得部(第二チャレンジ受信部402)が取得した類似度途中暗号文(第二チャレンジC^)に基づいて、上記類似度途中暗号文を復号して得られる整数、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個(zは、上記類似度途中暗号文を復号して得られる整数。)結合した元を算出して、上記類似度途中復号文(第二レスポンスZ)とする。
上記類似度途中復号文(第二レスポンスZ)は、整数である。
上記類似度算出装置(認証装置102;検索装置112)の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(u1;s1)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度算出部(平文類似度抽出部315)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部(第二レスポンス受信部341)が取得した類似度途中復号文とに基づいて、上記一時鍵と、上記類似度途中復号文との和または差を算出して、上記類似度(d)とする。
上記類似度途中復号文(第二レスポンスZ)は、所定の有限群(GT)の元である。
上記類似度算出装置の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(u1;s1)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度算出部(平文類似度抽出部315)は、類似度復号文算出部(元結合部372)と、離散対数算出部(373)とを有する。
上記類似度算出装置の類似度復号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部(第二レスポンス受信部341)が取得した類似度途中復号文とに基づいて、上記所定の有限群の群演算により、上記所定の有限群の所定の元(e(ь1,ь1);π)u個(uは、上記一時鍵である整数。)と、上記類似度途中復号文とを結合した元を算出して、類似度復号文(復号類似度元Z’)とする。
上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の類似度復号文が算出した類似度復号文に基づいて、上記所定の有限群の群演算により、上記所定の元を何個結合したら、上記類似度復号文と一致するかを算出して、上記類似度(d)とする。
上記類似度算出装置(認証装置102;検索装置112)の離散対数算出部(373)は、上記類似度算出装置の処理装置(911)を用いて、上記類似度(d)が、所定の範囲内の整数である場合に、上記類似度を算出し、上記類似度が、上記所定の範囲外である場合に、上記類似度が上記所定の範囲外であることを判定する。
上記登録装置は、データを記憶する記憶装置(914)と、データを処理する処理装置(911)と、公開鍵記憶部(202)と、比較データ取得部(特徴ベクトル形成部204)と、比較暗号文算出部(暗号化データ生成部206)と、比較暗号文通知部(暗号化データ送信部201)とを有する。
上記登録装置の公開鍵記憶部は、上記登録装置の記憶装置を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記登録装置の比較データ取得部は、上記登録装置の処理装置を用いて、比較データ(特徴ベクトルb)を取得する。
上記登録装置の比較暗号文算出部は、上記登録装置の処理装置を用いて、上記登録装置の公開鍵記憶部が記憶した公開鍵と、上記登録装置の比較データ取得部が取得した比較データとに基づいて、上記公開鍵を使った暗号化変換により上記比較データを変換することにより、比較暗号文(暗号化特徴ベクトルC)を算出する。
上記登録装置の比較暗号文通知部は、上記登録装置の処理装置を用いて、上記登録装置の比較暗号文算出部が算出した比較暗号文を上記類似度算出装置(認証装置102;検索装置112)に対して通知する。
上記類似度算出装置は、更に、比較暗号文取得部(暗号化データ受信部301)を有する。
上記類似度算出装置の比較暗号文取得部は、上記類似度算出装置の処理装置(911)を用いて、上記登録装置から通知された比較暗号文を取得する。
上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)は、上記類似度算出装置の記憶装置(914)を用いて、上記類似度算出装置の比較暗号文取得部が取得した比較暗号文を記憶する。
Claims (19)
- 比較データと対象データとの類似度を算出する類似度算出装置において、
データを記憶する記憶装置と、データを処理する処理装置と、比較暗号文記憶部と、対象暗号文取得部と、一時鍵生成部と、類似度途中暗号文算出部と、類似度途中暗号文通知部と、類似度途中復号文取得部と、類似度算出部とを有し、
上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
上記一時鍵生成部は、上記処理装置を用いて、一時鍵を生成し、
上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文を算出し、
上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知し、
上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文を取得し、
上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする類似度算出装置。 - 上記類似度算出装置は、更に、一時秘密鍵生成部と、対象二重暗号文取得部と、一時秘密鍵記憶部とを有し、
上記一時秘密鍵生成部は、上記処理装置を用いて、一時秘密鍵と、上記一時秘密鍵に対応する一時公開鍵とを生成し、
上記対象二重暗号文取得部は、上記処理装置を用いて、上記一時秘密鍵生成部が生成した一時公開鍵を使って暗号化された対象二重暗号文を取得し、
上記対象暗号文取得部は、上記処理装置を用いて、上記一時秘密鍵記憶部が記憶した一時秘密鍵と、上記対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使って上記対象二重暗号文を復号することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得することを特徴とする請求項1に記載の類似度算出装置。 - 請求項1に記載の類似度算出装置と、復号装置とを有し、
上記復号装置は、データを記憶する記憶装置と、データを処理する処理装置と、秘密鍵記憶部と、類似度途中暗号文取得部と、類似度途中復号文算出部と、類似度途中復号文通知部とを有し、
上記復号装置の秘密鍵記憶部は、上記復号装置の記憶装置を用いて、秘密鍵を記憶し、
上記復号装置の類似度途中暗号文取得部は、上記復号装置の処理装置を用いて、上記類似度算出装置から通知された類似度途中暗号文を取得し、
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の秘密鍵記憶部が記憶した秘密鍵と、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、上記類似度途中復号文を算出し、
上記復号装置の類似度途中復号文通知部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中復号文算出部が算出した類似度途中復号文を上記類似度算出装置に対して通知することを特徴とする類似度算出システム。 - 上記比較データ及び上記対象データは、整数を成分とするT次元ベクトル(Tは、1以上の整数。)であり、
上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、上記比較データと上記対象データとの間の対応する成分の差または積を計算し、
上記復号装置の類似度途中暗号文算出部は、上記復号装置の処理装置を用いて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、上記類似度を計算し、
上記類似度算出装置の類似度算出部は、上記類似度算出装置の処理装置を用いて、上記類似度途中復号文を復号することにより、上記類似度を取得することを特徴とする請求項3に記載の類似度算出システム。 - 上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になることを特徴とする請求項3に記載の類似度算出システム。
- 上記比較データ及び上記対象データは、整数を成分とするT次元ベクトル(Tは、1以上の整数。)であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、乱数平文生成部と、第一暗号文算出部と、第二暗号文算出部とを有し、
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするT次元ベクトルをランダムに生成して、乱数平文とし、
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするT次元ベクトルであり、
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文を算出し、上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文であり、上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の2倍と、上記乱数平文の各成分の2乗とを、すべての成分について合計した整数であり、
上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項5に記載の類似度算出システム。 - 上記比較データ及び上記対象データは、整数を成分とするT次元ベクトル(Tは、1以上の整数。)であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部と、第二暗号文算出部とを有し、
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするT次元ベクトルであり、
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を、第二の類似度途中暗号文とし、
上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項5に記載の類似度算出システム。 - 上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記比較データの成分から上記対象データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文、及び、上記対象データの成分から上記比較データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文のうちから、各成分ごとにランダムに選択した暗号文を成分とし、成分の順序をランダムに入れ換えたT次元ベクトルを、上記第一の類似度途中暗号文とすることを特徴とする請求項7に記載の類似度算出システム。
- 上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した2つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個(zは、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。)結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項6乃至請求項8のいずれかに記載の類似度算出システム。
- 上記比較データ及び上記対象データは、整数を成分とするT次元ベクトル(Tは、1以上の整数。)であり、
上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記暗号文の演算を使って、上記類似度途中暗号文を算出し、上記類似度途中暗号文は、合計値と上記一時鍵との和または差を、上記公開鍵を使った暗号化変換により変換した暗号文であり、上記合計値は、上記比較データの各成分と上記対象データの対応する成分との差の二乗、または、上記比較データの各成分と上記対象データの対応する成分との積を、すべての成分について合計した整数であることを特徴とする請求項5に記載の類似度算出システム。 - 上記類似度算出システムは、更に、暗号化装置を有し、
上記暗号化装置は、データを記憶する記憶装置と、データを処理する処理装置と、公開鍵記憶部と、対象データ取得部と、一時公開鍵取得部と、対象二重暗号文算出部と、対象二重暗号文通知部とを有し、
上記暗号化装置の公開鍵記憶部は、上記暗号化装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記暗号化装置の対象データ取得部は、上記暗号化装置の処理装置を用いて、対象データを取得し、
上記暗号化装置の一時公開鍵取得部は、上記暗号化装置の処理装置を用いて、上記類似度算出装置から通知された一時公開鍵を取得し、
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵とに基づいて、上記公開鍵と上記一時公開鍵とを使った第二の暗号化変換により上記対象データを変換することにより、対象二重暗号文を算出し、
上記暗号化装置の対象二重暗号文通知部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の対象二重暗号文算出部が算出した対象二重暗号文を上記類似度算出装置に対して通知し、
上記類似度算出装置は、更に、一時秘密鍵生成部と、一時公開鍵通知部と、対象二重暗号文取得部とを有し、
上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置を用いて、一時秘密鍵と、上記一時秘密鍵に対応する一時公開鍵とを生成し、
上記類似度算出装置の一時公開鍵通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時公開鍵を上記暗号化装置に対して通知し、
上記類似度算出装置の対象二重暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置から通知された対象二重暗号文を取得し、
上記類似度算出装置の対象暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵と、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使った第二の復号変換により上記対象二重暗号文を変換することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を算出することを特徴とする請求項3に記載の類似度算出システム。 - 上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になり、
上記対象データは、整数を成分とするT次元ベクトル(Tは、1以上の整数。)であり、
上記類似度算出装置は、更に、公開鍵記憶部を有し、
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記類似度算出装置の一時公開鍵生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするT次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、生成した一時秘密鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時秘密鍵の各成分を変換した暗号文を成分とするT次元ベクトルを算出して、上記一時公開鍵とし、
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文を成分とするT次元ベクトルをランダムに生成して、零暗号文とし、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分b’i個(b’iは、上記対象データの対応する成分である整数。)と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記対象二重暗号文とし、
上記類似度算出装置の対象暗号文取得部は、一時復号鍵算出部と、対象暗号文算出部とを有し、
上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数を成分とするT次元ベクトルを算出して、一時復号鍵とし、
上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をRi −1個(Ri −1は、上記一時復号鍵の対応する成分である逆数。)結合した暗号文を成分とするT次元ベクトルを算出して、上記対象暗号文とすることを特徴とする請求項11に記載の類似度算出システム。 - 上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文に基づいて、上記類似度途中暗号文を復号して得られる整数、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個(zは、上記類似度途中暗号文を復号して得られる整数。)結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項10に記載の類似度算出システム。
- 上記類似度途中復号文は、整数であり、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵と、上記類似度途中復号文との和または差を算出して、上記類似度とすることを特徴とする請求項3乃至請求項8及び請求項10乃至請求項12のいずれかに記載の類似度算出システム。 - 上記類似度途中復号文は、所定の有限群の元であり、
上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
上記類似度算出装置の類似度算出部は、類似度復号文算出部と、離散対数算出部とを有し、
上記類似度算出装置の類似度復号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記所定の有限群の群演算により、上記所定の有限群の所定の元u個(uは、上記一時鍵である整数。)と、上記類似度途中復号文とを結合した元を算出して、類似度復号文とし、
上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の類似度復号文が算出した類似度復号文に基づいて、上記所定の有限群の群演算により、上記所定の元を何個結合したら、上記類似度復号文と一致するかを算出して、上記類似度とすることを特徴とする請求項3乃至請求項8及び請求項10乃至請求項12のいずれかに記載の類似度算出システム。 - 上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度が、所定の範囲内の整数である場合に、上記類似度を算出し、上記類似度が、上記所定の範囲外である場合に、上記類似度が上記所定の範囲外であることを判定することを特徴とする請求項15に記載の類似度算出システム。
- 上記類似度算出システムは、更に、登録装置を有し、
上記登録装置は、データを記憶する記憶装置と、データを処理する処理装置と、公開鍵記憶部と、比較データ取得部と、比較暗号文算出部と、比較暗号文通知部とを有し、
上記登録装置の公開鍵記憶部は、上記登録装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
上記登録装置の比較データ取得部は、上記登録装置の処理装置を用いて、比較データを取得し、
上記登録装置の比較暗号文算出部は、上記登録装置の処理装置を用いて、上記登録装置の公開鍵記憶部が記憶した公開鍵と、上記登録装置の比較データ取得部が取得した比較データとに基づいて、上記公開鍵を使った暗号化変換により上記比較データを変換することにより、比較暗号文を算出し、
上記登録装置の比較暗号文通知部は、上記登録装置の処理装置を用いて、上記登録装置の比較暗号文算出部が算出した比較暗号文を上記類似度算出装置に対して通知し、
上記類似度算出装置は、更に、比較暗号文取得部を有し、
上記類似度算出装置の比較暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記登録装置から通知された比較暗号文を取得し、
上記類似度算出装置の比較暗号文記憶部は、上記類似度算出装置の記憶装置を用いて、上記類似度算出装置の比較暗号文取得部が取得した比較暗号文を記憶することを特徴とする請求項3乃至請求項8及び請求項10乃至請求項12のいずれかに記載の類似度算出システム。 - データを記憶する記憶装置と、データを処理する処理装置とを有するコンピュータが実行することにより、上記コンピュータを請求項1または請求項2に記載の類似度算出装置として機能させることを特徴とするコンピュータプログラム。
- 類似度算出装置と、復号装置とを有する類似度算出システムが、比較データと対象データとの類似度を算出する類似度算出方法において、
上記類似度算出装置及び上記復号装置は、データを記憶する記憶装置と、データを処理する処理装置とを有し、
上記復号装置の記憶装置が、秘密鍵を記憶し、
上記類似度算出装置の記憶装置が、上記復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
上記類似度算出装置の処理装置が、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
上記類似度算出装置の処理装置が、一時鍵を生成し、
上記類似度算出装置の処理装置が、上記類似度算出装置の記憶装置が記憶した比較暗号文と、上記類似度算出装置の処理装置が取得した対象暗号文と、上記類似度算出装置の処理装置が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵で暗号化した類似度途中暗号文を算出し、
上記類似度算出装置の処理装置が、上記類似度算出装置の処理装置が算出した類似度途中暗号文を上記復号装置に対して通知し、
上記復号装置の処理装置が、上記類似度算出装置から通知された類似度途中暗号文を取得し、
上記復号装置の処理装置が、上記復号装置の記憶装置が記憶した秘密鍵と、上記復号装置の処理装置が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、類似度途中復号文を算出し、
上記復号装置の処理装置が、上記復号装置の処理装置が算出した類似度途中復号文を上記類似度算出装置に対して通知し、
上記類似度算出装置の処理装置が、上記復号装置から通知された類似度途中復号文を取得し、
上記類似度算出装置の処理装置が、上記類似度算出装置の処理装置が生成した一時鍵と、上記類似度算出装置の処理装置が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする類似度算出方法。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/JP2011/053797 WO2012114452A1 (ja) | 2011-02-22 | 2011-02-22 | 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
JP5496410B2 true JP5496410B2 (ja) | 2014-05-21 |
JPWO2012114452A1 JPWO2012114452A1 (ja) | 2014-07-07 |
Family
ID=46720272
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2013500748A Expired - Fee Related JP5496410B2 (ja) | 2011-02-22 | 2011-02-22 | 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20130318351A1 (ja) |
EP (1) | EP2680488B1 (ja) |
JP (1) | JP5496410B2 (ja) |
CN (1) | CN103380591B (ja) |
WO (1) | WO2012114452A1 (ja) |
Families Citing this family (74)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9172529B2 (en) * | 2011-09-16 | 2015-10-27 | Certicom Corp. | Hybrid encryption schemes |
US9935765B2 (en) * | 2011-11-03 | 2018-04-03 | Genformatic, Llc | Device, system and method for securing and comparing genomic data |
CN103793265B (zh) * | 2012-10-30 | 2016-05-11 | 腾讯科技(深圳)有限公司 | 优化进程的处理方法及装置 |
KR102017746B1 (ko) * | 2012-11-14 | 2019-09-04 | 한국전자통신연구원 | 유사도 산출 방법 및 그 장치 |
JP6083234B2 (ja) * | 2012-12-27 | 2017-02-22 | 富士通株式会社 | 暗号処理装置 |
JP5963936B2 (ja) | 2013-02-25 | 2016-08-03 | 三菱電機株式会社 | サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム |
US8966277B2 (en) | 2013-03-15 | 2015-02-24 | Mitsubishi Electric Research Laboratories, Inc. | Method for authenticating an encryption of biometric data |
US9619000B2 (en) * | 2013-05-17 | 2017-04-11 | Nec Corporation | Board, board apparatus and method for interconnection of boards |
JP6142704B2 (ja) | 2013-07-11 | 2017-06-07 | 富士通株式会社 | 秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法 |
JP6144992B2 (ja) * | 2013-08-08 | 2017-06-07 | 株式会社日立製作所 | 検索可能暗号処理システム及び方法 |
US9813246B2 (en) * | 2013-10-29 | 2017-11-07 | Jory Schwach | Encryption using biometric image-based key |
PL3066612T3 (pl) | 2013-11-07 | 2019-06-28 | Scantrust Sa | Dwuwymiarowy kod kreskowy oraz sposób uwierzytelniania takiego kodu kreskowego |
JP6281425B2 (ja) * | 2014-06-27 | 2018-02-21 | 富士通株式会社 | 秘匿データ照合装置、秘匿データ更新プログラムおよび秘匿データ更新方法 |
PL2993607T3 (pl) | 2014-09-02 | 2017-07-31 | Eckehard Kraska | Analiza zdarzenia zgodnie z polityką prywatności |
CN105447374B (zh) * | 2014-09-11 | 2018-08-21 | 塔塔咨询服务有限公司 | 用于产生和找回授权码的计算机实施系统及方法 |
US9438412B2 (en) * | 2014-12-23 | 2016-09-06 | Palo Alto Research Center Incorporated | Computer-implemented system and method for multi-party data function computing using discriminative dimensionality-reducing mappings |
CN107251479B (zh) * | 2015-02-20 | 2020-08-11 | 三菱电机株式会社 | 数据保管装置和数据处理方法 |
JP2016224400A (ja) * | 2015-05-29 | 2016-12-28 | パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America | 類似情報検索方法、端末装置及び類似情報検索システム |
US9875375B2 (en) * | 2015-05-29 | 2018-01-23 | Panasonic Intellectual Property Corporation Of America | Method for performing similar-information search while keeping content confidential by encryption |
JP6763378B2 (ja) | 2015-06-18 | 2020-09-30 | 日本電気株式会社 | 暗号情報作成装置、暗号情報作成方法、暗号情報作成プログラム、及び、照合システム |
CN104967516B (zh) * | 2015-07-24 | 2018-04-24 | 四川理工学院 | 多用户加密数据可比较加密方法及加密数据比较方法 |
JP5985123B1 (ja) | 2015-10-09 | 2016-09-06 | 三菱電機株式会社 | 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム |
JP6504013B2 (ja) * | 2015-10-13 | 2019-04-24 | 富士通株式会社 | 暗号処理方法、暗号処理装置、および暗号処理プログラム |
US10769255B2 (en) | 2015-11-11 | 2020-09-08 | Samsung Electronics Co., Ltd. | Methods and apparatuses for adaptively updating enrollment database for user authentication |
JP6524899B2 (ja) | 2015-12-02 | 2019-06-05 | 富士通株式会社 | 秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法 |
EP3182640B1 (en) * | 2015-12-14 | 2018-04-25 | Panasonic Intellectual Property Corporation of America | Search method, search device, search system, and program |
US10402750B2 (en) * | 2015-12-30 | 2019-09-03 | Facebook, Inc. | Identifying entities using a deep-learning model |
KR101834504B1 (ko) * | 2016-01-15 | 2018-03-06 | 단국대학교 산학협력단 | 암복호화 장치 및 방법 |
JP6507115B2 (ja) * | 2016-03-22 | 2019-04-24 | 株式会社日立製作所 | 1:n生体認証・暗号・署名システム |
KR101834522B1 (ko) | 2016-04-22 | 2018-03-06 | 단국대학교 산학협력단 | 데이터 확인 장치 및 이를 이용하여 데이터를 확인하는 방법 |
WO2018100740A1 (ja) * | 2016-12-02 | 2018-06-07 | 日本電気株式会社 | 暗号文照合システム及び暗号文照合方法 |
US11895240B2 (en) * | 2016-12-15 | 2024-02-06 | Nec Corporation | System, apparatus, method and program for preventing illegal distribution of an access token |
WO2018110608A1 (ja) * | 2016-12-15 | 2018-06-21 | 日本電気株式会社 | 照合システム、方法、装置及びプログラム |
US10438022B2 (en) * | 2016-12-16 | 2019-10-08 | Arm Limited | Logic encryption using on-chip memory cells |
US11196541B2 (en) | 2017-01-20 | 2021-12-07 | Enveil, Inc. | Secure machine learning analytics using homomorphic encryption |
US11777729B2 (en) * | 2017-01-20 | 2023-10-03 | Enveil, Inc. | Secure analytics using term generation and homomorphic encryption |
KR102476756B1 (ko) * | 2017-06-20 | 2022-12-09 | 삼성전자주식회사 | 사용자 인증을 위한 등록 데이터베이스의 적응적 갱신 방법 및 장치 |
CN111095332B (zh) * | 2017-07-06 | 2023-12-08 | 罗伯特·博世有限公司 | 用于保护隐私的社交媒体广告的方法和系统 |
WO2019014425A1 (en) * | 2017-07-13 | 2019-01-17 | Pindrop Security, Inc. | SAFE PARTY WITH SEVERAL PARTIES KNOWING NO VOICE IMPRESSIONS |
US10957355B2 (en) * | 2018-02-28 | 2021-03-23 | International Business Machines Corporation | Authenticating digital recordings |
US10938852B1 (en) | 2020-08-14 | 2021-03-02 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US11789699B2 (en) | 2018-03-07 | 2023-10-17 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US11265168B2 (en) | 2018-03-07 | 2022-03-01 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11394552B2 (en) | 2018-03-07 | 2022-07-19 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11210375B2 (en) | 2018-03-07 | 2021-12-28 | Private Identity Llc | Systems and methods for biometric processing with liveness |
US11170084B2 (en) | 2018-06-28 | 2021-11-09 | Private Identity Llc | Biometric authentication |
US11138333B2 (en) | 2018-03-07 | 2021-10-05 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US10721070B2 (en) | 2018-03-07 | 2020-07-21 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11489866B2 (en) | 2018-03-07 | 2022-11-01 | Private Identity Llc | Systems and methods for private authentication with helper networks |
US11502841B2 (en) | 2018-03-07 | 2022-11-15 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US11392802B2 (en) | 2018-03-07 | 2022-07-19 | Private Identity Llc | Systems and methods for privacy-enabled biometric processing |
US10665244B1 (en) | 2018-03-22 | 2020-05-26 | Pindrop Security, Inc. | Leveraging multiple audio channels for authentication |
US20190318118A1 (en) * | 2018-04-16 | 2019-10-17 | International Business Machines Corporation | Secure encrypted document retrieval |
JP2019207281A (ja) * | 2018-05-28 | 2019-12-05 | 株式会社日立製作所 | 大小判定サーバ、大小判定暗号化システム、及び大小判定方法 |
US11063936B2 (en) * | 2018-08-07 | 2021-07-13 | Microsoft Technology Licensing, Llc | Encryption parameter selection |
JP2020072348A (ja) * | 2018-10-30 | 2020-05-07 | キヤノン株式会社 | 認証方法、認証装置、被認証装置及び画像形成装置 |
US11368308B2 (en) | 2019-01-11 | 2022-06-21 | Visa International Service Association | Privacy preserving biometric authentication |
CN114641966A (zh) * | 2019-09-12 | 2022-06-17 | 索尼集团公司 | 认证装置、认证方法、程序和信息处理装置 |
WO2021076868A1 (en) * | 2019-10-16 | 2021-04-22 | Coinbase, Inc. | Systems and methods for re-using cold storage keys |
US11250116B2 (en) * | 2019-10-25 | 2022-02-15 | Visa International Service Association | Optimized private biometric matching |
US11621837B2 (en) | 2020-09-03 | 2023-04-04 | Theon Technology Llc | Secure encryption of data using partial-key cryptography |
US11310042B2 (en) | 2020-09-11 | 2022-04-19 | Crown Sterling Limited, LLC | Methods of storing and distributing large keys |
KR20220040309A (ko) * | 2020-09-23 | 2022-03-30 | 삼성전자주식회사 | 동형 암호화 장치 및 그 동작 방법 |
US11546164B2 (en) * | 2020-10-23 | 2023-01-03 | Visa International Service Association | Verification of biometric templates for privacy preserving authentication |
US11528136B2 (en) | 2020-11-24 | 2022-12-13 | Crown Sterling Limited, LLC | Decryption of encrypted data missing a private key |
WO2022172096A1 (en) * | 2021-02-10 | 2022-08-18 | Alipay Labs (singapore) Pte. Ltd. | Method and system for processing reference faces |
US11755772B2 (en) | 2021-09-20 | 2023-09-12 | Crown Sterling Limited, LLC | Securing data in a blockchain with a one-time pad |
US11943336B2 (en) | 2021-11-22 | 2024-03-26 | Theon Technology Llc | Use of gradient decent function in cryptography |
US11902420B2 (en) | 2021-11-23 | 2024-02-13 | Theon Technology Llc | Partial cryptographic key transport using one-time pad encryption |
CN114419719B (zh) * | 2022-03-29 | 2022-08-12 | 北京爱笔科技有限公司 | 一种生物特征的处理方法及装置 |
US11496288B1 (en) * | 2022-04-08 | 2022-11-08 | Verkada Inc. | Enhanced encryption for face-related data |
US11868305B2 (en) * | 2022-04-25 | 2024-01-09 | Simuli, Inc. | Nonlinear, decentralized processing unit and related systems or methodologies |
US11569842B1 (en) * | 2022-04-25 | 2023-01-31 | Simuli, Inc. | Nonlinear, decentralized processing unit and related systems or methodologies |
CN115834088A (zh) * | 2023-02-21 | 2023-03-21 | 杭州天谷信息科技有限公司 | 一种生物特征认证方法和系统 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007501975A (ja) * | 2003-08-08 | 2007-02-01 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ処理システム及びその方法 |
JP2008521025A (ja) * | 2004-11-16 | 2008-06-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 類似性指標のセキュアな計算 |
JP2009129292A (ja) * | 2007-11-27 | 2009-06-11 | Hitachi Ltd | 生体認証方法、装置およびシステム |
JP2011211593A (ja) * | 2010-03-30 | 2011-10-20 | Fujitsu Ltd | 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム |
Family Cites Families (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP4519963B2 (ja) | 1999-06-21 | 2010-08-04 | 富士通株式会社 | 生体情報の暗号化・復号化方法および装置並びに、生体情報を利用した本人認証システム |
US20040250073A1 (en) * | 2003-06-03 | 2004-12-09 | Cukier Johnas I. | Protocol for hybrid authenticated key establishment |
JP2006262333A (ja) | 2005-03-18 | 2006-09-28 | Ic Brains Co Ltd | 生体認証システム |
US8204213B2 (en) * | 2006-03-29 | 2012-06-19 | International Business Machines Corporation | System and method for performing a similarity measure of anonymized data |
CN101075868B (zh) * | 2006-05-19 | 2010-05-12 | 华为技术有限公司 | 一种远程身份认证的系统、终端、服务器和方法 |
US8417960B2 (en) * | 2006-09-06 | 2013-04-09 | Hitachi, Ltd. | Method for generating an encryption key using biometrics authentication and restoring the encryption key and personal authentication system |
CN101221612A (zh) * | 2007-01-11 | 2008-07-16 | 上海银晨智能识别科技有限公司 | 利用人脸识别进行加密解密电子文档的方法 |
JP2008271508A (ja) * | 2007-03-28 | 2008-11-06 | Sharp Corp | 画像処理装置、画像形成装置、画像送信装置、画像読取装置、画像処理システム、画像処理方法、画像処理プログラムおよびその記録媒体 |
CN101098232B (zh) * | 2007-07-12 | 2012-05-09 | 兰州大学 | 一种动态口令与多生物特征结合的身份认证方法 |
US8300904B2 (en) * | 2007-07-18 | 2012-10-30 | Agency For Science, Technology And Research | Method and device for determining a similarity value between minutiae templates |
JP2009129210A (ja) | 2007-11-25 | 2009-06-11 | Tokyo Institute Of Technology | チャレンジ・レスポンス生体認証方法 |
JP5426403B2 (ja) * | 2008-01-29 | 2014-02-26 | 株式会社ディー・ディー・エス | ハイブリッド生体認証装置、ハイブリッド生体認証方法、ハイブリッド生体認証用コンピュータプログラム。 |
JP2010054875A (ja) | 2008-08-29 | 2010-03-11 | Mitsubishi Electric Corp | 演算装置、復号装置、暗号化装置、情報共有システム、2dnf演算システム、署名生成装置、署名検証装置、署名処理システム、署名検証システム、演算方法及び演算プログラム |
US8249250B2 (en) * | 2009-03-30 | 2012-08-21 | Mitsubishi Electric Research Laboratories, Inc. | Secure similarity verification between homomorphically encrypted signals |
JP2010286937A (ja) * | 2009-06-10 | 2010-12-24 | Hitachi Ltd | 生体認証方法、及び、生体認証に用いるクライアント端末、認証サーバ |
US20100329448A1 (en) * | 2009-06-30 | 2010-12-30 | Rane Shantanu D | Method for Secure Evaluation of a Function Applied to Encrypted Signals |
WO2011052056A1 (ja) * | 2009-10-29 | 2011-05-05 | 三菱電機株式会社 | データ処理装置 |
-
2011
- 2011-02-22 WO PCT/JP2011/053797 patent/WO2012114452A1/ja active Application Filing
- 2011-02-22 JP JP2013500748A patent/JP5496410B2/ja not_active Expired - Fee Related
- 2011-02-22 EP EP11859252.6A patent/EP2680488B1/en active Active
- 2011-02-22 CN CN201180068222.1A patent/CN103380591B/zh not_active Expired - Fee Related
- 2011-02-22 US US13/982,546 patent/US20130318351A1/en not_active Abandoned
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2007501975A (ja) * | 2003-08-08 | 2007-02-01 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | データ処理システム及びその方法 |
JP2008521025A (ja) * | 2004-11-16 | 2008-06-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | 類似性指標のセキュアな計算 |
JP2009129292A (ja) * | 2007-11-27 | 2009-06-11 | Hitachi Ltd | 生体認証方法、装置およびシステム |
JP2011211593A (ja) * | 2010-03-30 | 2011-10-20 | Fujitsu Ltd | 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム |
Non-Patent Citations (2)
Title |
---|
CSNG200600929033; 佐久間 淳: 'プライバシを保護した内積比較プロトコルの提案' 情報処理学会研究報告 Vol.2006 No.81 , 20060721, 257〜264頁, 社団法人 情報処理学会 * |
JPN6014003875; 佐久間 淳: 'プライバシを保護した内積比較プロトコルの提案' 情報処理学会研究報告 Vol.2006 No.81 , 20060721, 257〜264頁, 社団法人 情報処理学会 * |
Also Published As
Publication number | Publication date |
---|---|
EP2680488B1 (en) | 2019-08-21 |
JPWO2012114452A1 (ja) | 2014-07-07 |
CN103380591A (zh) | 2013-10-30 |
EP2680488A1 (en) | 2014-01-01 |
US20130318351A1 (en) | 2013-11-28 |
WO2012114452A1 (ja) | 2012-08-30 |
CN103380591B (zh) | 2016-03-30 |
EP2680488A4 (en) | 2017-07-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5496410B2 (ja) | 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法 | |
US11882218B2 (en) | Matching system, method, apparatus, and program | |
Liu et al. | An efficient privacy-preserving outsourced calculation toolkit with multiple keys | |
Zhou et al. | Efficient homomorphic encryption on integer vectors and its applications | |
JP6488847B2 (ja) | リレーショナル暗号化 | |
EP2873186B1 (en) | Method and system for homomorphicly randomizing an input | |
US9749128B2 (en) | Compact fuzzy private matching using a fully-homomorphic encryption scheme | |
JP5300983B2 (ja) | データ処理装置 | |
EP2237474B1 (en) | Secure Distortion Computation Among Untrusting Parties Using Homomorphic Encryption | |
US9674189B1 (en) | Relational encryption | |
US20170104752A1 (en) | Method of processing a ciphertext, apparatus, and storage medium | |
JP5586795B2 (ja) | データ処理装置及びデータ処理方法及びプログラム | |
JP6421576B2 (ja) | 暗号処理装置、暗号処理方法、及び暗号処理プログラム | |
CN101938463A (zh) | 安全地评估对加密信号施加的函数的方法 | |
JP2016080766A (ja) | 暗号処理方法、暗号処理装置、及び暗号処理プログラム | |
WO2015103977A1 (zh) | 一种基于超球面的多变量公钥加密/解密系统及方法 | |
Sokouti et al. | Medical image encryption: an application for improved padding based GGH encryption algorithm | |
Yasuda | Secure Hamming distance computation for biometrics using ideal-lattice and ring-LWE homomorphic encryption | |
El Moustaine et al. | A lattice based authentication for low-cost RFID | |
Bhat et al. | Fuzzy extractor and chaos enhanced elliptic curve cryptography for image encryption and authentication | |
Al Etaiwi et al. | Structured encryption algorithm for text cryptography | |
Alarcon-Aquino et al. | Biometric Cryptosystem based on Keystroke Dynamics and K-medoids | |
Abidin et al. | An efficient entity authentication protocol with enhanced security and privacy properties | |
WO2021070838A1 (ja) | 秘匿認証方法および秘匿認証システム | |
Izmerly et al. | Chosen ciphertext attacks on lattice-based public key encryption and modern (non-quantum) cryptography in a quantum environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
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: 20140204 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20140304 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 5496410 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
R250 | Receipt of annual fees |
Free format text: JAPANESE INTERMEDIATE CODE: R250 |
|
LAPS | Cancellation because of no payment of annual fees |