JP2017009914A - Index calculation system, index calculation method, index calculation program, and verification system - Google Patents
Index calculation system, index calculation method, index calculation program, and verification system Download PDFInfo
- Publication number
- JP2017009914A JP2017009914A JP2015127849A JP2015127849A JP2017009914A JP 2017009914 A JP2017009914 A JP 2017009914A JP 2015127849 A JP2015127849 A JP 2015127849A JP 2015127849 A JP2015127849 A JP 2015127849A JP 2017009914 A JP2017009914 A JP 2017009914A
- Authority
- JP
- Japan
- Prior art keywords
- encrypted
- value
- verification
- data
- unit
- 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.)
- Granted
Links
Images
Abstract
Description
本発明は、照合対象である情報を照合する場合に参照する情報を作成する指標算出システム等に関する。 The present invention relates to an index calculation system that creates information to be referred to when collating information to be collated.
クラウドコンピューティング(クラウド)が普及するにつれ、通信ネットワーク(以降、「ネットワーク」と表す)に通信接続している計算機資源を用いてデータを管理するサービスは広く普及している。該サービスは、機密性の高いデータを管理するので、該サービスにおいては、扱われるデータが安全であることを保証する必要がある。 As cloud computing (cloud) becomes widespread, services for managing data using computer resources that are communicatively connected to a communication network (hereinafter referred to as “network”) have become widespread. Since the service manages highly confidential data, the service needs to ensure that the data handled is secure.
利用者が通信ネットワークに自由に通信接続可能(オープン)なネットワーク環境において、データを暗号化されたままの状態で管理し、データを復号することなく、検索や、統計処理等を行う技術の研究開発が行われている。 Research on technology that manages data in an encrypted state in a network environment where users can freely connect to a communication network (open), and performs searches, statistical processing, etc. without decrypting the data Development is underway.
また、パスワード、または、磁気カードを用いた個人認証における脆弱性を利用した犯罪が頻発している。この結果、指紋、または、静脈等の生体が有する特徴(生体情報)に基づいた認証情報を用いて、より安全性の高い認証を実現する生体認証技術が注目を集めている。 In addition, crimes using vulnerabilities in personal authentication using passwords or magnetic cards are frequent. As a result, biometric authentication technology that realizes authentication with higher safety using authentication information based on features (biometric information) of a biometric such as fingerprints or veins has attracted attention.
生体認証技術においては、生体情報に基づきテンプレートが作成され、作成されたテンプレートが認証情報としてデータベースに保管される。生体認証技術においては、認証対象である生体に基づき作成された認証情報と、データベースに保管されているテンプレートとが類似(または、一致)している場合に認証対象が受理される。生体認証技術においては、該認証情報と、該テンプレートとが類似(または、一致)していない場合に、認証対象は受理されない。 In biometric authentication technology, a template is created based on biometric information, and the created template is stored in a database as authentication information. In the biometric authentication technique, an authentication target is accepted when authentication information created based on a biometric subject to authentication and a template stored in a database are similar (or coincident). In the biometric authentication technique, an authentication target is not accepted when the authentication information and the template are not similar (or coincident).
一つの生体から作成された複数の認証情報であっても、該複数の認証情報は、相互に一致するとは限らないが、類似しているか否かをある距離関数を用いて測定した場合に、該複数の認証情報間の距離は短い。これに対して、異なる生体から、それぞれ、作成された複数の認証情報間の距離は長い。生体認証技術は、上記の特質を利用することによって、データベースに保管されているテンプレートと、認証対象に関して作成された認証情報との照合を行う。 Even if a plurality of pieces of authentication information created from a single living body, the plurality of pieces of authentication information do not necessarily match each other, but when measuring whether they are similar or not using a distance function, The distance between the plurality of authentication information is short. On the other hand, the distance between a plurality of pieces of authentication information created from different living bodies is long. The biometric authentication technology collates the template stored in the database with the authentication information created for the authentication target by using the above characteristics.
たとえば、指紋、静脈等は、生体情報の一例であり、生涯不変のデータとされている。生体情報が照合システムの外部に漏洩された場合の被害が甚大であるので、該生体情報は、機密性が要求される情報の一つである。したがって、テンプレートが照合システムの外部に漏洩したとしても、生体情報が外部に漏洩しないテンプレート保護型の生体認証技術が重要である。 For example, fingerprints, veins, etc. are examples of biometric information, and are data that does not change throughout life. Since the damage when the biometric information is leaked outside the verification system is significant, the biometric information is one of the information that requires confidentiality. Therefore, even if a template leaks outside the verification system, a template protection type biometric authentication technique that prevents biometric information from leaking outside is important.
また、生体認証技術では、他の認証技術と同様に、認証情報を登録した生体に、該生体と異なる生体がなりすますこと(すなわち、「なりすまし」)を防ぐ必要がある。たとえば、特定の値を照合システムに送信することによって認証に成功する認証技術は、該なりすましへの耐性が十分でない。 Further, in the biometric authentication technique, it is necessary to prevent a living body in which authentication information is registered from impersonating a living body different from the living body (that is, “spoofing”), as in other authentication techniques. For example, an authentication technique that succeeds in authentication by sending a specific value to a matching system is not sufficiently resistant to impersonation.
さらに、認証技術においては、テンプレートが漏洩してしまうリスクだけでなく、通信情報が盗聴(傍受)されるリスクもある。認証技術においては、通信情報が盗聴されたとしても、なりすましを防ぐ必要がある。たとえば、正規のクライアントが照合システムに対する認証に成功した場合に該照合システムへ送信したデータを、異なるクライアントが再送することによって認証に成功する方式は、なりすましへの耐性が十分でない可能性が高い。 Further, in the authentication technology, there is a risk that the communication information is wiretapped (intercepted) as well as the risk of the template leaking. In the authentication technology, even if communication information is wiretapped, it is necessary to prevent spoofing. For example, when a legitimate client succeeds in authenticating the verification system, a method in which authentication is successful by retransmitting data transmitted to the verification system by a different client is likely to be insufficient in impersonation.
たとえば、特許文献1に開示された認証方式は、指紋の隆線の形状を表す座標値を含むにデータに、ランダムな座標値を付加することにより、該データが秘匿されたテンプレートを作成する。該方式は、該テンプレートに基づき、生体認証を実行する。しかし、該認証方式は、生体認証を繰り返した場合に、生体情報が十分な強度で保護されない課題がある。
For example, the authentication method disclosed in
非特許文献1に開示された方式は、加法に関して準同型性を有する公開鍵暗号の一例を利用することにより、認証を求めているクライアントの生体情報を保護する。非特許文献1に開示された生体認証方式は、準同型性を有する公開鍵暗号を用いて、サーバーが格納している生体情報の機密性を保つ。しかし、該生体認証方式によれば、クライアントが送信した認証情報と、サーバーが格納しているテンプレートとを照合する場合に、サーバーの負荷は大きい。この理由は、サーバーが、照合するたびに、クライアントが送信した認証情報を復号し、復号した復号結果を、再度、暗号化する必要があるからである。さらに、該生体認証方式においては、サーバーが格納しているテンプレートは、暗号化されていない平文である。すなわち、該テンプレートは、サーバーに対して秘匿されていない。したがって、該生体認証方式においては、テンプレートがサーバーの外部に漏洩した場合に、漏洩した該テンプレートを用いた「なりすまし」が発生する可能性が高い。該生体認証方式において、サーバーは、認証情報を表す特定の値を受信した場合に、必ず、該特定の値が該テンプレートに基づき受理可能であると判定する。このため、該特定の値を送信することにより、異なる生体が「なりすまし」を行うことは可能である。
The method disclosed in Non-Patent
特許文献2に開示された暗号文照合システムは、信頼できる第三者による介入をシステムに導入することにより、登録されるデータをサーバーに対して秘匿する。しかし、該暗号文照合システムによれば、照合処理における第三者の負荷が大きい。さらに、該暗号文照合システムによれば、ユーザが特定の値をサーバーに送信することによって、該ユーザは、正規のユーザであると受理される。 The ciphertext matching system disclosed in Patent Document 2 conceals registered data from a server by introducing a trusted third party intervention into the system. However, according to the ciphertext verification system, the load of a third party in the verification process is large. Further, according to the ciphertext matching system, the user is accepted as a legitimate user by transmitting a specific value to the server.
特許文献3には、信頼できる第三者による介入を導入したシステムにおいて、照合処理における第三者の負荷を小さくした技術が記載されている。しかし、特許文献3に記載の技術において距離の指標としてユークリッド距離を利用した場合、テンプレートのサイズは、受理可能な範囲の広さの4乗に比例して大きくなる。これに対して、非特許文献2においては、準同型暗号の代わりにSomewhat準同型暗号と呼ばれる公開鍵暗号を利用することにより、テンプレートのサイズを受理可能な範囲の広さの指標の2乗オーダに減らす技術が開示されている。
特許文献4には、テンプレートのサイズが、受理可能な範囲の広さのパラメータに依存せず、かつ、第三者の負荷が小さい技術が記載されている。しかし、この方式では、第三者に対し、登録された生体情報と照合する対象である生体情報との距離が明かされる。悪意を有した第三者が、照合時に得られる距離を利用することによる攻撃(ヒルクライミング攻撃)が可能であることが知られている。 Patent Document 4 describes a technology in which the size of a template does not depend on the parameter of the range of an acceptable range, and the load on a third party is small. However, in this method, the distance from the biometric information that is a target to be compared with the registered biometric information is disclosed to a third party. It is known that a malicious third party can perform an attack (hill climbing attack) by using the distance obtained at the time of collation.
しかし、特許文献1乃至特許文献4、非特許文献1、または、非特許文献2に開示された、機密性を担保する必要があるデータが漏洩してしまう可能性がある。たとえば、機密性を担保する必要があるデータは、テンプレートと、対象データとの距離である。この理由は、認証対象を表す対象データと、テンプレートとの距離を照合処理に際して復号する必要があるので、その復号により生じるデータが漏洩する可能性があるからである。
However, there is a possibility that data disclosed in
すなわち、上述したような技術を用いた場合には、たとえ、認証対象を表す対象データと、テンプレートとの距離が秘匿化されたまま算出されたとしても、該秘匿化された距離を復号し、その結果、算出される値が所定の条件を満たすか否かが、該対象データを受理するか否かを決定する。従って、該技術によれば、たとえば、復号された距離に基づき、ヒルクライミング攻撃を受ける可能性がある。 That is, when using the technique as described above, even if the distance between the target data representing the authentication target and the template is calculated while being concealed, the concealed distance is decoded, As a result, whether the calculated value satisfies a predetermined condition determines whether to accept the target data. Therefore, according to the technique, for example, there is a possibility of being subjected to a hill climbing attack based on the decoded distance.
そこで、本発明の主たる目的は、より安全な照合処理が可能になる指標を算出することができる指標算出システム等を提供することである。 Therefore, a main object of the present invention is to provide an index calculation system and the like that can calculate an index that enables safer verification processing.
前述の目的を達成するために、本発明の一態様において、指標算出システムは、
暗号鍵、及び、第1数値列に含まれる数値に基づいて、前記第1数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第1数値列を作成し、作成した前記暗号化第1数値列を記憶手段に格納し、前記第1数値列の大きさを表す第1サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第1指標を算出する第1指標算出手段と、
前記記憶手段に格納されている前記暗号化第1数値列に含まれている前記暗号化数値と、第2数値列とに基づき、前記第1数値列及び前記第2数値列が類似している程度を表す値から前記第1サイズを引き算した値を表す第2指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第2指標を算出する第2指標算出手段と
を備える。
In order to achieve the above object, in one aspect of the present invention, an index calculation system includes:
Based on an encryption key and a numerical value included in the first numerical value sequence, an encrypted first numerical value sequence including an encrypted numerical value obtained by encrypting the numerical value included in the first numerical value sequence using the encryption key is created. And storing the created encrypted first numerical sequence in the storage means, and a first size representing the size of the first numeric sequence representing a value encrypted using the encryption key. First index calculating means for calculating
Based on the encrypted numeric value contained in the encrypted first numeric value sequence stored in the storage means and the second numeric value sequence, the first numeric value sequence and the second numeric value sequence are similar. A second index that represents a value obtained by subtracting the first size from a value that represents a degree; and a second index calculating unit that calculates an encrypted second index that represents a value encrypted using the encryption key.
また、本発明の他の見地として、指標算出方法は、
暗号鍵、及び、第1数値列に含まれる数値に基づいて、前記第1数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第1数値列を作成し、作成した前記暗号化第1数値列を記憶手段に格納し、前記第1数値列の大きさを表す第1サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第1指標を算出し、前記記憶手段に格納されている前記暗号化第1数値列に含まれている前記暗号化数値と、第2数値列とに基づき、前記第1数値列及び前記第2数値列が類似している程度を表す値から前記第1サイズを引き算した値を表す第2指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第2指標を算出する。
As another aspect of the present invention, the index calculation method is:
Based on an encryption key and a numerical value included in the first numerical value sequence, an encrypted first numerical value sequence including an encrypted numerical value obtained by encrypting the numerical value included in the first numerical value sequence using the encryption key is created. And storing the created encrypted first numerical sequence in the storage means, and a first size representing the size of the first numeric sequence representing a value encrypted using the encryption key. And the first numeric value sequence and the second numeric value sequence are calculated based on the encrypted numeric value and the second numeric value sequence included in the encrypted first numeric value sequence stored in the storage unit. A second index representing a value obtained by subtracting the first size from a value representing a degree of similarity calculates an encrypted second index representing a value encrypted using the encryption key.
さらに、同目的は、係る指標算出プログラム、及び、そのプログラムを記録するコンピュータが読み取り可能な記録媒体によっても実現される。 Further, the object is realized by such an index calculation program and a computer-readable recording medium that records the program.
本発明に係る指標算出システム等によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。 According to the index calculation system and the like according to the present invention, it is possible to calculate an index that enables a safer verification process between information to be verified and information to be referred to.
はじめに、本願の各実施形態にて使用する演算子について説明する。 First, an operator used in each embodiment of the present application will be described.
以降に示す式番号に示される式において、等号演算子「=」を用いられることがあるが、該等号演算子は、該等号演算子を用いて結合される式(値)が等価であることを表す。また、各式の途中に記載された「・・・」は、該途中に含まれる同様の演算が省略されていることを表す。たとえば、「1+・・・+N」は、1からNまでの整数値の総和演算を表す。また、たとえば、「X(1)+・・・+X(N)」は、1からNまでの整数Iに関して、X(I)を足し合わせる演算を表す。たとえば、「1,・・・,N」は、1からNまでの整数を表す。また、以降に示す式において、べき乗演算子「^」が用いられることがある。たとえば、Q^Rは、QのR乗を表す。 The equality operator “=” may be used in the expressions shown in the following equation numbers, but the equality operator is equivalent to the expression (value) combined using the equality operator. It represents that. Further, “...” Described in the middle of each expression indicates that the same calculation included in the middle is omitted. For example, “1+... + N” represents a sum operation of integer values from 1 to N. For example, “X (1) +... + X (N)” represents an operation of adding X (I) with respect to the integer I from 1 to N. For example, “1,..., N” represents an integer from 1 to N. Further, in the following expressions, the power operator “^” may be used. For example, Q ^ R represents Q raised to the Rth power.
次に、理解を容易にするため、加法に関して準同型性を有する公開鍵暗号(加法準同型性暗号)について説明する。 Next, in order to facilitate understanding, public key cryptography (additive homomorphic encryption) having homomorphism with respect to addition will be described.
公開鍵暗号は、公開鍵、及び、秘密鍵を生成するアルゴリズム(鍵生成アルゴリズム)、生成した公開鍵を用いて暗号化するアルゴリズム(暗号化アルゴリズム)、及び、生成した秘密鍵を用いて暗号化された暗号データを復号するアルゴリズム(復号アルゴリズム)を含む。 Public key cryptography is an algorithm that generates a public key and a secret key (key generation algorithm), an algorithm that encrypts using the generated public key (encryption algorithm), and an encryption that uses the generated secret key Including an algorithm for decrypting the encrypted data (decryption algorithm).
鍵生成アルゴリズムは、暗号の安全性を表す尺度であり、公開鍵や秘密鍵の長さを決定するパラメータであるセキュリティパラメータ1kに基づき、公開鍵pkと、秘密鍵skとが算出されるアルゴリズムである。
The key generation algorithm is a measure representing the security of encryption, and an algorithm for calculating the public key pk and the secret key sk based on the
暗号化アルゴリズムは、公開鍵pkと、メッセージmとを受信し、受信した公開鍵pkを用いて、受信したメッセージmが暗号化された暗号文cが算出されるアルゴリズムである。 The encryption algorithm is an algorithm that receives a public key pk and a message m, and calculates a ciphertext c in which the received message m is encrypted using the received public key pk.
復号アルゴリズムは、秘密鍵skと暗号文cとを受信し、受信した秘密鍵skを用いて、暗号文cが復号された復号結果Mが算出されるアルゴリズムである。 The decryption algorithm is an algorithm that receives a secret key sk and a ciphertext c, and calculates a decryption result M obtained by decrypting the ciphertext c using the received secret key sk.
説明の便宜上、公開鍵暗号に含まれるアルゴリズムは、以下に示す3つのアルゴリズムを含むとする。すなわち、
鍵生成アルゴリズムKeyGen:(1k)→(pk,sk)、
暗号化アルゴリズムEnc:(pk,M)→C、
復号アルゴリズムDec:(sk,C)→M、
ただし、1k(すなわち、1がkビット並んだビット列)は、セキュリティパラメータを表す。pkは、公開鍵を表す。skは、秘密鍵を表す。Mは、入力されたメッセージを表す。Cは、暗号文を表す。Encは、暗号化する処理を表す。Decは、復号する処理を表す。右向きの矢印によって示される演算子「→」の左側は、入力を表し、演算子「→」の右側は該入力の場合に算出される出力を表す。
For convenience of explanation, it is assumed that algorithms included in public key cryptography include the following three algorithms. That is,
Key generation algorithm KeyGen: (1 k ) → (pk, sk),
Encryption algorithm Enc: (pk, M) → C,
Decoding algorithm Dec: (sk, C) → M,
However, 1 k (that is, a bit string in which 1 bits are arranged in k bits) represents a security parameter. pk represents a public key. sk represents a secret key. M represents the input message. C represents a ciphertext. Enc represents a process for encryption. Dec represents the process to decode. The left side of the operator “→” indicated by the right-pointing arrow represents an input, and the right side of the operator “→” represents an output calculated in the case of the input.
公開鍵暗号は、式1に示す条件を満たす場合に、準同型性を有する。
Public key cryptography has homomorphism when the condition shown in
Enc(pk,m1#m2)=Enc(pk,m1)@Enc(pk,m2)・・・(式1)、
ただし、#、及び、@は、それぞれ異なる、ある2項演算子を表す。また、m1、及び、m2は、それぞれ、メッセージを表す。
Enc (pk, m 1 #m 2 ) = Enc (pk, m 1 ) @Enc (pk, m 2 ) (Equation 1)
However, # and @ represent different binary operators. M 1 and m 2 each represent a message.
たとえば、Modified−Elgamal暗号は、式1における2項演算子「@」を乗算演算子、及び、式1における2項演算子「#」を加算(加法)演算子とする公開鍵暗号の一例である。すなわち、Modified−Elgamal暗号は、加法に関して準同型性を有する公開鍵暗号の一例である。Modified−Elgamal暗号において、暗号化アルゴリズムEncは、式2に示す関係を満たす。
For example, the Modified-Elgamal cipher is an example of public key cryptography in which the binary operator “@” in
Enc(pk,m1+m2)=Enc(pk,m1)×Enc(pk,m2)・・・(式2)、
ただし、m1、及び、m2は、それぞれ、メッセージを表す。
Enc (pk, m 1 + m 2 ) = Enc (pk, m 1 ) × Enc (pk, m 2 ) (Expression 2)
However, m 1 and m 2 each represent a message.
さらに、Modified−Elgamal暗号においては、式2を用いて、任意の定数iに対して、式3が成り立つ。
Further, in the Modified-Elmal encryption,
Enc(pk,i×m1)=Enc(pk,m1)i・・・(式3)。 Enc (pk, i × m 1 ) = Enc (pk, m 1 ) i (Expression 3).
式2に従えば、複数の平文に対して演算を適用し、その後、暗号化アルゴリズムを適用する演算順序を、該平文が暗号化された暗号文を作成し、その後、該暗号文に対して演算を適用する演算順序に変更することができる。たとえば、複数の平文に対する加算演算の後、暗号化アルゴリズムを適用する処理は、式2に従えば、該平文に対して、それぞれ、暗号化アルゴリズムを適用し、その結果、算出された暗号文に対して積を算出する処理と等価である。また、平文を定数倍した後、暗号化アルゴリズムを適用する処理は、式3に従えば、該平文に対して暗号化アルゴリズムを適用し、算出された暗号文をべき乗する演算と等価である。
According to Equation 2, an operation is applied to a plurality of plaintexts, and then an operation order in which an encryption algorithm is applied is set to create a ciphertext in which the plaintext is encrypted, and then to the ciphertext It is possible to change the calculation order to apply the calculation. For example, after the addition operation for a plurality of plaintexts, the processing for applying the encryption algorithm applies the encryption algorithm to each of the plaintexts according to Equation 2, and as a result, the calculated ciphertext is calculated. This is equivalent to the process of calculating the product. Further, the process of applying the encryption algorithm after multiplying the plaintext by a constant is equivalent to the operation of applying the encryption algorithm to the plaintext and raising the calculated ciphertext to the power according to
尚、式2を満たす暗号化アルゴリズムを含む公開鍵暗号は、加法に関して準同型性を有する公開鍵暗号と呼ばれる。Modified−Elgamal暗号は、準同型性を有する暗号の一例である。 Note that public key cryptography including an encryption algorithm satisfying Equation 2 is called public key cryptography having homomorphism with respect to addition. The Modified-Elgamal cipher is an example of a cipher having homomorphism.
次に、本願明細書の以下の説明において便宜上用いる用語である、登録データ、及び、対象データについて説明する。登録データは、秘匿する対象を表すデータであるとする。対象データは、登録データと照合する対象を表すデータであるとする。登録データは、たとえば、生体認証においてクライアントを登録する場合に、該クライアントの生体情報に基づき作成された特徴量を表す。対象データは、たとえば、生体認証においてクライアントを認証する場合に、該クライアントの生体情報に基づき作成された特徴量を表す。たとえば、生体認証においては、認証するクライアントの生体情報に基づき作成された特徴量(すなわち、対象データ)と、登録されたクライアントの生体情報に基づき作成された特徴量(すなわち、登録データ)とが照合される。さらに生体認証においては、照合した結果に応じて、認証するクライアントを受理(受け入れ)可能か否かが判定される。 Next, registration data and target data, which are terms used for convenience in the following description of the present specification, will be described. It is assumed that the registration data is data representing a target to be concealed. It is assumed that the target data is data representing a target to be checked against registered data. For example, when registering a client in biometric authentication, the registration data represents a feature amount created based on the biometric information of the client. For example, when authenticating a client in biometric authentication, the target data represents a feature amount created based on the biometric information of the client. For example, in biometric authentication, a feature quantity (that is, target data) created based on the biometric information of the client to be authenticated and a feature quantity created based on the biometric information of the registered client (that is, registered data) Matched. Furthermore, in biometric authentication, it is determined whether or not the client to be authenticated can be accepted (accepted) in accordance with the collation result.
以下の説明において、「受理」は、たとえば、登録データと、対象データとが類似している(または、一致している)場合に、該対象データを受け入れ可能であることを表す。 In the following description, “acceptance” indicates that, for example, when registration data and target data are similar (or match), the target data can be accepted.
以下の説明では、便宜上、本願の各実施形態において、「距離」という言葉を用いて、処理を説明する。距離は、たとえば、対象データを構成する要素と、登録データを構成する要素とを用いて算出されるユークリッド距離を表す。ただし、距離なる文言でなくともよく、他の指標(対象データと、登録データとが類似している程度を表す類似度)であってもよい。 In the following description, for the sake of convenience, the processing will be described using the word “distance” in each embodiment of the present application. The distance represents, for example, a Euclidean distance calculated using an element constituting the target data and an element constituting the registration data. However, it may not be a word of distance, but may be another index (similarity indicating the degree of similarity between the target data and the registered data).
<第1の実施形態>
図1を参照しながら、本発明の第1の実施形態に係る照合システム101が有する構成について詳細に説明する。図1は、本発明の第1の実施形態に係る照合システム101が有する構成を示すブロック図である。
<First Embodiment>
With reference to FIG. 1, the configuration of the
第1の実施形態に係る照合システム101は、大別して、登録データ装置102と、照合要求装置112と、記憶装置104と、照合装置119と、検証装置124とを有する。
The
登録データ装置102は、暗号化部103を有する。
The registered
記憶装置104は、識別子管理部106と、登録データ情報記憶部105と、登録データ検索部107とを有する。
The
検証装置124は、鍵生成部108と、鍵記憶部109と、検証データ復号部110と、検証部111とを有する。
The
照合装置119は、照合登録情報要求部120と、照合準備部121と、検証データ生成部123と、判定部122とを有する。
The collation device 119 includes a collation registration
照合要求装置112は、照合要求部113と、暗号化第2データ部114と、暗号化第2集合部115と、暗号化第2マスク部116と、検証マスク部117と、照合データ部118とを有する。
The
説明の便宜上、鍵記憶部109は、鍵生成部108、及び、検証データ復号部110のみが参照可能な記憶部であるとする。
For convenience of explanation, it is assumed that the
登録データ装置102と、照合要求装置112と、記憶装置104と、照合装置119と、検証装置124とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
It is assumed that the
尚、照合システム101においては、登録データ装置102と、照合要求装置112とをまとめて、「第1ノード」と表されてもよい。照合システム101においては、記憶装置104と、照合装置119とをまとめて、「第2ノード」と表されてもよい。また、照合システム101においては、検証装置124を、「第3ノード」と表されてもよい。すなわち、照合システム101は、図1に例示した様態に限定されない。
In the
次に、本発明の第1の実施形態に係る照合システム101における処理について説明する。照合システム101における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。まず、各フェーズにおける処理の概要について説明する。
Next, processing in the
準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、公開鍵、及び、秘密鍵が生成される。 In the preparation phase, a public key and a secret key are mainly generated using the received security parameters.
登録フェーズにおいては、主として、生成された公開鍵を用いて、登録データが暗号化された暗号化登録情報が作成される。 In the registration phase, encrypted registration information in which registration data is encrypted is created mainly using the generated public key.
照合フェーズにおいては、主として、登録データと、対象データとの間の距離を算出する場合に参照する暗号化第2データ(後述)が算出される。次に、該照合フェーズにおいては、対象データと、算出された暗号文とに基づき、暗号文が暗号化されたまま、対象データが受理可能であるか否かを検証する検証データが作成される。すなわち、検証データは、暗号化されている。さらに、該照合フェーズにおいては、準備フェーズにて作成された秘密鍵を用いて検証データが復号され、復号された結果に含まれる暗号化第2データを用いて距離が算出される。照合フェーズにおいては、算出された距離が、所定の条件を満たすか否かに応じて、対象データが受理可能であるか否かが判定される。 In the verification phase, encrypted second data (described later) that is referred to when calculating the distance between the registration data and the target data is calculated. Next, in the verification phase, based on the target data and the calculated ciphertext, verification data is created to verify whether the target data is acceptable while the ciphertext is encrypted. . That is, the verification data is encrypted. Further, in the verification phase, the verification data is decrypted using the secret key created in the preparation phase, and the distance is calculated using the encrypted second data included in the decrypted result. In the verification phase, it is determined whether the target data is acceptable depending on whether the calculated distance satisfies a predetermined condition.
次に、照合システム101が、上述した各フェーズにて実行する処理について詳細に説明する。
Next, the processing executed by the
図2を参照しながら、本実施形態に係る照合システム101が、準備フェーズにて実行する処理について説明する。図2は、準備フェーズにおいて、第1の実施形態に係る照合システム101が実行する処理の一例を示すフローチャートである。
With reference to FIG. 2, processing executed by the
検証装置124における鍵生成部108は、セキュリティパラメータを受信し、受信したセキュリティパラメータを用いて、たとえば、上述した鍵生成アルゴリズムに従い、公開鍵、及び、秘密鍵を生成する(ステップA1)。尚、生成される公開鍵、及び、秘密鍵は、該鍵生成アルゴリズムに従い生成されるので、加法に関して準同型性を有する公開鍵暗号に準拠する。鍵生成部108は、入力された値に対して、特定の値を算出するハッシュ関数を決定する(ステップA2)。たとえば、鍵生成部108は、所定のハッシュ関数から、あるハッシュ関数を選ぶことにより、ハッシュ関数を決定する。鍵生成部108は、該公開鍵と、該ハッシュ関数とを、照合システム101において公開する(ステップA3)。鍵生成部108は、該秘密鍵を、鍵記憶部109に格納する(ステップA4)。
The
尚、本実施形態に係る照合システム101が準備フェーズにて実行する処理は、図2に例示された様態に限定されない。
In addition, the process which the
図3を参照しながら、本実施形態に係る照合システム101が、登録フェーズにて実行する処理について説明する。図3は、登録フェーズにおいて、第1の実施形態に係る照合システム101が実行する処理の一例を示すフローチャートである。
Processing performed in the registration phase by the
登録データ装置102における暗号化部103は、暗号化登録情報を作成する基となる登録データを受信する。暗号化部103は、受信した登録データに関して所定の演算を適用することによって、該登録データに関する特徴を表す第1指標を算出する。たとえば、所定の演算は、該登録データの長さ(大きさ)を算出する関数であり、この場合に、第1指標は、該登録データの長さ(大きさ)である。
The
次に、暗号化部103は、受信した該登録データに含まれている要素、及び、該第1指標を、公開鍵を用いて暗号化することによって、該要素が暗号化された暗号文、及び、該第1指標が暗号化された暗号化第1指標を算出する。暗号化部103は、算出した該暗号文、及び、算出した該暗号化第1指標が含まれている暗号化登録情報を作成する(ステップB1)。暗号化部103は、作成した暗号化登録情報を、照合装置119における識別子管理部106に送信する(ステップB2)。
Next, the
記憶装置104における識別子管理部106は、暗号化部103が送信した暗号化登録情報を受信し、受信した暗号化登録情報を一意に識別可能な登録識別子を作成する(ステップB3)。識別子管理部106は、作成した登録識別子と、受信した暗号化登録情報とが関連付けされた登録データ情報を作成し、作成した該登録データ情報を、記憶装置104における登録データ情報記憶部105に格納する(ステップB4)。識別子管理部106は、作成した該登録識別子を、登録データ装置102に送信する(ステップB5)。
The
記憶装置104における登録データ装置102は、該登録識別子を受信し、たとえば、受信した該登録識別子を、ディスプレイ等のユーザインターフェース(UI)に表示する。あるいは、登録データ装置102は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、該登録識別子を格納してもよい。あるいは、識別子管理部106が、作成した該登録識別子を、ディスプレイ等のユーザインターフェース(UI)に表示してもよい。
The
尚、本実施形態に係る照合システム101が登録フェーズにて実行する処理は、図3に例示された様態に限定されない。
In addition, the process which the
図4A及び図4Bを参照しながら、本実施形態に係る照合システム101が、照合フェーズにて実行する処理について説明する。図4A及び図4Bは、照合フェーズにおいて、第1の実施形態に係る照合システム101が実行する処理の一例を示すフローチャートである。
With reference to FIG. 4A and FIG. 4B, processing executed by the
照合要求装置112における照合要求部113は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部113は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップC1)。照合要求部113は、作成した該照合要求を、照合装置119における照合登録情報要求部120に送信する(ステップC2)。照合要求は、たとえば、該登録識別子を含む。
The
照合装置119における照合登録情報要求部120は、照合要求部113が送信した照合要求を受信し、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部120は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップC3)、作成した該登録データ要求を、記憶装置104における登録データ検索部107に送信する(ステップC4)。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
The verification registration
記憶装置104における登録データ検索部107は、照合登録情報要求部120が送信した登録データ要求を受信する。登録データ検索部107は、登録データ情報(たとえば、登録データ情報記憶部105に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップC5)。登録データ検索部107は、特定した暗号化登録情報を、照合装置119における照合準備部121に送信する(ステップC6)。
The registration
照合装置119における照合準備部121は、登録データ検索部107が送信した暗号化登録情報を受信する。照合準備部121は、たとえば、擬似乱数を生成する手順に従い、乱数を生成する。照合準備部121は、受信した暗号化登録情報における各要素が該乱数乗された暗号文と、該乱数が暗号化された暗号文(説明の便宜上、「暗号化乱数」と表す)とを算出する。尚、ステップB1に関する処理にて説明したように、暗号化登録情報が登録データに含まれている各要素の暗号文を含むので、照合準備部121は、該暗号文を算出する処理において、登録データに含まれている各要素が乱数倍された値の暗号文を算出する。すなわち、照合準備部121は、該登録データに含まれている各要素が、該乱数を用いて変換された値の暗号文を算出する。また、ステップB1に関する処理にて説明したように、暗号化登録情報が暗号化第1指標を含むので、照合準備部121は、該暗号文を算出する処理において、暗号化第1指標の基である第1指標が乱数倍された値(第1掛け算結果)の暗号文である暗号化第1データを算出する(ステップC7)。尚、照合準備部121が、第1算出部を有しており、該第1算出部が、ステップC7に示した処理と同様の処理を実行することにより、該暗号化第1データを算出する態様であってもよい。
The
照合準備部121は、算出した該値のうち、登録データが暗号化された値を表す要素と、該暗号化乱数とを含む照合登録情報を作成し(ステップC8)、作成した照合登録情報を、照合要求装置112における暗号化第2データ部114に送信する(ステップC9)。さらに、照合準備部121は、算出した該値に含まれる暗号化第1データを照合装置119における検証データ生成部123に送信する。
The
照合要求装置112における暗号化第2データ部114は、対象データ、及び、照合準備部121が送信した照合登録情報を受信する。暗号化第2データ部114は、図5に示す、ステップS101乃至ステップS104に示す処理を実行することによって、暗号化第2データを算出する。図5は、暗号化第2データ部114が暗号化第2データを算出する処理を示すフローチャートである。
The encrypted
・ステップS101:対象データに関して、所定の関数に従い値を算出する、
・ステップS102:照合登録情報に含まれている暗号化乱数を、「ステップS101にて算出された値」乗する、
・ステップS103:照合登録情報に含まれている「登録データに関する要素」を表す第I要素(ただし、Iは、要素番号を表す)に関して、「(−2)×対象データの第I要素」乗の値を算出する、
・ステップS104:ステップS102及びステップS103において算出された値を掛け算した値を算出する。
Step S101: A value is calculated according to a predetermined function for the target data.
Step S102: Multiply the encrypted random number included in the verification registration information by the value calculated in Step S101.
Step S103: “(−2) × Ith element of target data” raised to the I element (where I represents an element number) representing “element related to registration data” included in the collation registration information Calculate the value of
Step S104: A value obtained by multiplying the values calculated in Step S102 and Step S103 is calculated.
ステップS101乃至ステップS104に示す処理によって、暗号化第2データ部114は、対象データと登録データとが類似している程度を表す値から、登録データのサイズを引き算した値(第2指標)と、暗号化乱数の基である乱数とが掛け算された値(第2掛け算結果)が暗号化された暗号文を算出する。すなわち、暗号化第2データ部114は、第2指標が該乱数を用いて変換された値の暗号文を算出する。
By the processing shown in steps S101 to S104, the encrypted
暗号化第2データ部114は、算出した暗号化第2データと、照合登録情報における暗号化乱数とを含む暗号化第2情報を作成し(ステップC10)、作成した暗号化第2情報を、照合要求装置112における暗号化第2集合部115に送信する。
The encrypted
照合要求装置112における暗号化第2集合部115は、暗号化第2データ部114が送信した暗号化第2情報を受信する。暗号化第2集合部115は、対象データが受理可能であるか否かを判定する基準である閾値tを読み取り、読み取った閾値tに基づき設定される区間[−t,0](すなわち、−tから0までの区間)に含まれている、ある値を算出する。たとえば、ある値は、整数値である。ある値は、複数であってもよい。
The encrypted
以降、説明の便宜上、ある値は、L(ただし、Lは、自然数を表す)個の整数値であるとする。 Hereinafter, for convenience of explanation, it is assumed that a certain value is L (where L represents a natural number) integer values.
暗号化第2集合部115は、受信した暗号化第2情報に含まれる暗号化乱数を、該整数値乗した値を算出し、算出した値と、該暗号化第2情報の中の暗号化第2データとを掛け算した値を算出する。暗号化第2集合部115は、算出した値と、受信した暗号化第2情報の中の暗号化第2データとを含む暗号化第2集合を作成する(ステップC11)。暗号化第2集合部115は、作成した暗号化第2集合を、照合要求装置112における暗号化第2マスク部116に送信する。
The encryption
照合要求装置112における暗号化第2マスク部116は、暗号化第2集合部115が送信した暗号化第2集合を受信する。暗号化第2マスク部116は、たとえば、擬似乱数を算出する手順に従い、L個の乱数を算出し、該L個の乱数を含むマスク値集合(「乱数情報」とも表す)を作成し、作成したマスク値集合を、検証マスク部117に送信する。さらに、暗号化第2マスク部116は、受信した暗号化第2集合に含まれている各要素に関して、該要素と、マスク値集合に含まれている1つの要素とを掛け算した値を算出し、算出した値を含む暗号化第2マスク(「暗号化参照情報」とも表す)を作成する(ステップC12)。暗号化第2マスク部116は、作成した暗号化第2マスクを、照合要求装置112における照合データ部118に送信する。
The encrypted
尚、暗号化第2マスク部を、暗号化参照情報部とも表す。 The encrypted second mask part is also referred to as an encrypted reference information part.
照合要求装置112における検証マスク部117は、暗号化第2マスク部116が送信したマスク値集合を受信する。次に、検証マスク部117は、受信したマスク値集合を入力として、ハッシュ関数を適用することにより、ハッシュ値を算出する。検証マスク部117は、算出したハッシュ値を含む検証マスクを作成し(ステップC13)、作成した検証マスクを、照合要求装置112における照合データ部118に送信する。
The
以降、検証マスクを、「検証情報」と表すこともある。また、検証マスク部を、「検証情報部」と表すこともある。 Hereinafter, the verification mask may be expressed as “verification information”. Further, the verification mask part may be expressed as a “verification information part”.
照合要求装置112における照合データ部118は、暗号化第2マスク部116が送信した暗号化第2マスク、及び、検証マスク部117が送信した検証マスクを受信する。照合データ部118は、特定の手順に従い、受信した暗号化第2集合における要素順、及び、受信した検証マスクにおける要素順を並び替える。照合データ部118は、並び替え後の暗号化第2マスクにおける要素、及び、並び替え後の検証マスクにおける要素が関連付けされた照合データを作成する(ステップC14)。この場合に、暗号化第2マスクの第I(ただし、Iは、要素番号を表す)要素は、検証マスクの第I要素に関連付けされている。照合データ部118は、作成した照合データを、照合装置119における検証データ生成部123に送信する(ステップC15)。
The
照合装置119における検証データ生成部123は、照合準備部121が送信した暗号化第1データ、及び、照合データ部118が送信した照合データを受信する。検証データ生成部123は、受信した照合データに含まれる暗号化第2マスクの各要素に関して、該要素と、受信した暗号化第1データとを掛け算した値を算出する。検証データ生成部123は、暗号化第2マスクの第I要素に関して算出した値と、受信した照合データに含まれる検証マスクの第I要素とが関連付けされた検証データを作成し(ステップC16)、作成した検証データを、検証装置124における検証データ復号部110に送信する(ステップC17)。
The verification
検証装置124における検証データ復号部110は、検証データ生成部123が送信した検証データを受信し、さらに、鍵記憶部109から秘密鍵を読み取る。検証データ復号部110は、受信した検証データに含まれている暗号文を、読み取った秘密鍵を用いて復号することによって、該検証データが復号された復号後検証データを作成する(ステップC18)。検証データ復号部110は、作成した復号後検証データを、検証装置124における検証部111に送信する。
The verification
検証装置124における検証部111は、検証データ復号部110が送信した復号後検証データを受信する。検証部111は、受信した復号後検証データにおいて検証データ復号部110が復号した値にハッシュ関数を適用することによりハッシュ値を算出する。検証部111は、算出したハッシュ値と、受信した復号後検証データに含まれるハッシュ値とを比較し、関連付けされた要素と一致するか否かを判定する。検証部111は、一致している要素がある場合に、一致を表す検証結果を作成し、一致する要素がない場合に、一致しないことを表す検証結果を作成する(ステップC19)。検証部111は、算出した検証結果を、照合装置119における判定部122に送信する(ステップC20)。
The
照合装置119における判定部122は、検証部111が送信した検証結果を受信する。判定部122は、検証結果が「一致」である場合に、判定結果として「受理」を算出し、検証結果が「不一致」である場合に、判定結果として「不受理」を算出する(ステップC21)。判定部122は、算出した判定結果を出力する(ステップC22)。
The determination unit 122 in the verification device 119 receives the verification result transmitted from the
尚、本実施形態に係る照合システム101が照合フェーズにて実行する処理は、図4A及び図4Bに例示された様態に限定されない。
In addition, the process which the
次に、第1の実施形態に係る照合システム101に関する効果について説明する。
Next, effects related to the
第1の実施形態に係る照合システム101によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。この理由は、照合処理に際して参照する、暗号化第1データと、暗号化第2データとが、通信接続可能な、複数の異なる装置にて、別々に算出されるからである。言い換えれば、本実施形態に係る照合システム101によれば、登録データと、対象データとの間の距離を算出可能な、暗号化第1データ及び暗号化第2データが、複数の異なる主体にて算出される。この結果、暗号化第1データ及び暗号化第2データのうち、少なくとも一方が傍受されたとしても、距離を復元することは不可能であるので、該暗号化第1データ及び暗号化第2データに基づく照合処理において、情報が漏洩するリスクは軽減する。
According to the
さらに、第1の実施形態に係る照合システム101によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、照合処理において、受理するか否かを判定する基準を表す閾値tに基づく範囲に含まれる第1値を、対象データ及び登録データ間の距離から引いた値が暗号化された第2値を、距離を復号することなく求めることができるからである。尚、これらの処理は、主として、ステップC10及びステップC11にて実行される。
Furthermore, according to the
本実施形態に係る照合システム101によれば、検証装置124のみが、暗号文を復号することができるので、照合システム101において、登録データ装置102、記憶装置104、照合要求装置112、及び、照合装置119は、復号された第2値を参照することができない。また、検証装置124が復号する値は第2値が乱数によってマスクされた値であるので、検証装置124も復号された第2値を参照することができない。この結果、復号された距離に基づきテンプレートを復元するヒルクライミング攻撃を受ける可能性は低下する。
According to the
さらに、第1の実施形態に係る照合システム101によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果を奏する。さらに、第1の実施形態に係る照合システム101によれば、たとえ、照合要求装置112が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果を奏する。
Furthermore, according to the
次に示すいずれの理由によっても、上述した効果を奏する。 The effects described above can be achieved for any of the following reasons.
・登録データ装置102における登録データ情報記憶部105には、暗号化部103が登録データを暗号化した暗号化登録情報が格納される。すなわち、記憶装置104は、暗号化登録情報を格納しているので、登録データを復元することができない。
The registration data
・本実施形態に係る照合システム101においては、照合装置119が暗号化第1データを算出し、照合要求装置112が暗号化第2データを算出する分散処理の態様であるので、照合要求装置112、照合装置119、及び、記憶装置104が、距離を算出することはできない。
In the
・検証装置124が算出するデータは、ハッシュ関数(ステップC13等における処理にて利用)や、乱数等(ステップC11、ステップC12等における処理にて利用)を用いて距離が隠ぺいされたデータである。したがって、第1の実施形態に係る照合システム101によれば、たとえ、このデータが傍受されたとしても、距離を推定することは難しい。
The data calculated by the
したがって、第1の実施形態に係る照合システム101によれば、より安全な照合処理が可能である。
Therefore, according to the
<第2の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第2の実施形態について説明する。
<Second Embodiment>
Next, a second embodiment of the present invention based on the first embodiment described above will be described.
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。 In the following description, the characteristic parts according to the present embodiment will be mainly described, and the same components as those in the first embodiment described above will be denoted by the same reference numerals, and redundant description will be omitted. To do.
図6を参照しながら、本発明の第2の実施形態に係る照合システム201が有する構成について詳細に説明する。図6は、本発明の第2の実施形態に係る照合システム201が有する構成を示すブロック図である。
With reference to FIG. 6, the configuration of the
第2の実施形態に係る照合システム201は、大別して、登録データ装置102と、照合要求装置212と、記憶装置104と、照合装置219と、検証装置224とを有する。
The
登録データ装置102は、暗号化部103を有する。
The registered
記憶装置104は、識別子管理部106と、登録データ情報記憶部105と、登録データ検索部107とを有する。
The
検証装置224は、鍵生成部108と、鍵記憶部109と、検証データ復号部110と、検証部111と、検証データ生成部223とを有する。
The
照合装置219は、照合登録情報要求部220と、照合準備部221と、判定部222とを有する。
The
照合要求装置212は、照合要求部213と、暗号化第2データ部214と、暗号化第2集合部215と、暗号化第2マスク部216と、検証マスク部217と、照合データ部218とを有する。
The
登録データ装置102と、照合要求装置212と、記憶装置104と、照合装置219と、検証装置224とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
It is assumed that the registered
尚、図6においては、照合システム201は、5つの装置を含む態様を例示したが、図6に例示された様態に限定されない。たとえば、登録データ装置102と、照合要求装置212とを含む第1ノード、記憶装置104と照合装置219とを含む第2ノードと、検証装置224を含む第3ノードとしてもよい。
In FIG. 6, the
次に、本発明の第2の実施形態に係る照合システム201における処理について詳細に説明する。照合システム201における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。
Next, processing in the
照合システム201が、上述した各フェーズにて実行する処理について詳細に説明する。
Processing performed by the
本実施形態に係る照合システム201に関する準備フェーズにおける処理は、第1の実施形態に係る照合システム101に関する準備フェーズにおける処理と同様である。このため、本実施形態に係る照合システム201に関する準備フェーズにおける処理に関する説明を省略する。さらに、本実施形態に係る照合システム201に関する登録フェーズにおける処理は、第1の実施形態に係る照合システム101に関する登録フェーズにおける処理と同様である。このため、本実施形態に係る照合システム201に関する登録フェーズにおける処理に関する説明を省略する。
The processing in the preparation phase related to the
図7A及び図7Bを参照しながら、本実施形態に係る照合システム201が、照合フェーズにて実行する処理について説明する。図7A及び図7Bは、照合フェーズにおいて、第2の実施形態に係る照合システム201が実行する処理の一例を示すフローチャートである。
With reference to FIG. 7A and FIG. 7B, processing executed by the
照合要求装置212における照合要求部213は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部213は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップD1)。照合要求部213は、作成した該照合要求を、照合装置219における照合登録情報要求部220に送信する(ステップD2)。照合要求は、たとえば、該登録識別子を含む。
The
照合装置219における照合登録情報要求部220は、照合要求部213が送信した照合要求を受信し、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部220は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップD3)、作成した該登録データ要求を、記憶装置104における登録データ検索部107に送信する(ステップD4)。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
The verification registration
記憶装置104における登録データ検索部107は、照合登録情報要求部220が送信した登録データ要求を受信する。登録データ検索部107は、登録データ情報(たとえば、登録データ情報記憶部105に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップD5)。登録データ検索部107は、特定した暗号化登録情報を、照合装置219における照合準備部221に送信する(ステップD6)。
The registration
照合装置219における照合準備部221は、登録データ検索部107が送信した暗号化登録情報を受信する。照合準備部221は、たとえば、擬似乱数を生成する手順に従い、乱数を生成する。照合準備部221は、受信した暗号化登録情報における各要素が該乱数乗された値と、該乱数が暗号化された暗号文(すなわち、「暗号化乱数」)とを算出する。尚、第1の実施形態に示したステップB1に関する処理にて説明したように、暗号化登録情報が登録データに含まれている各要素の暗号文を含むので、照合準備部221は、該暗号文を算出する処理において、登録データに含まれている各要素が乱数倍された値の暗号文を算出する。すなわち、照合準備部221は、該登録データに含まれている各要素が、該乱数を用いて変換された値の暗号文を算出する。また、ステップB1に関する処理にて説明したように、暗号化登録情報が暗号化第1指標を含むので、照合準備部221は、該暗号文を算出する処理において、暗号化第1指標の基である第1指標が乱数倍された値の暗号文である暗号化第1データを算出する(ステップD7)。照合準備部221は、算出した該値のうち、登録データが暗号化された値を表す要素と、該暗号化乱数とを含む照合登録情報を作成し(ステップD8)、作成した照合登録情報を、照合要求装置212における暗号化第2データ部214に送信する(ステップD9)。さらに、照合準備部221は、ステップD7にて算出された暗号化第1データを、検証装置224における検証データ生成部223に送信する(ステップD10)。
The
照合要求装置212における暗号化第2データ部214は、対象データ、及び、照合準備部221が送信した照合登録情報を受信する。暗号化第2データ部214は、上述したステップS101乃至ステップS104に示す処理を実行することによって、暗号化第2情報を作成する(ステップD11)。すなわち、暗号化第2情報は、暗号化乱数と、暗号化第2データとを含む。暗号化第2データ部214は、算出した暗号化第2情報を、照合要求装置212における暗号化第2集合部215に送信する。
The encrypted
照合要求装置212における暗号化第2集合部215は、暗号化第2データ部214が送信した暗号化第2情報を受信する。暗号化第2集合部215は、対象データが受理可能であるか否かを判定する基準を表す閾値tを読み取り、読み取った閾値tに基づき設定される区間[−t,0](すなわち、−tから0までの区間)における含まれている、ある値を算出する。たとえば、ある値は、整数値である。ある値は、複数であってもよい。
The encrypted
以降、説明の便宜上、ある値は、L(ただし、Lは、自然数を表す)個の整数値であるとする。 Hereinafter, for convenience of explanation, it is assumed that a certain value is L (where L represents a natural number) integer values.
暗号化第2集合部215は、受信した暗号化第2情報に含まれる暗号化乱数を、該整数値乗した値を算出し、算出した値と、該暗号化第2情報の中の暗号化第2データとを掛け算した値を算出する。暗号化第2集合部215は、算出した値と、受信した暗号化第2情報の中の暗号化第2データとを含む暗号化第2集合を作成する(ステップD12)。暗号化第2集合部215は、作成した暗号化第2集合を、照合要求装置212における暗号化第2マスク部216に送信する。
The encryption
照合要求装置212における暗号化第2マスク部216は、暗号化第2集合部215が送信した暗号化第2集合を受信する。暗号化第2マスク部216は、たとえば、擬似乱数を算出する手順に従い、L個の乱数を算出し、該L個の乱数を含むマスク値集合を作成し、作成したマスク値集合を、検証マスク部217に送信する。さらに、暗号化第2マスク部216は、受信した暗号化第2集合に含まれている各要素に関して、該要素と、マスク値集合に含まれている1つの要素とを掛け算した値を算出し、算出した値を含む暗号化第2マスクを作成する(ステップD13)。暗号化第2マスク部216は、作成した暗号化第2マスクを、照合要求装置212における照合データ部218に送信する。
The encrypted
照合要求装置212における検証マスク部217は、暗号化第2マスク部216が送信したマスク値集合を受信する。次に、検証マスク部217は、受信したマスク値集合を入力として、ハッシュ関数を適用することにより、ハッシュ値を算出する。検証マスク部217は、算出したハッシュ値を含む検証マスクを作成し(ステップD14)、作成した検証マスクを、照合要求装置212における照合データ部218に送信する。
The
照合要求装置212における照合データ部218は、暗号化第2マスク部216が送信した暗号化第2マスク、及び、検証マスク部217が送信した検証マスクを受信する。照合データ部218は、特定の手順に従い、受信した暗号化第2集合における要素順、及び、受信した検証マスクにおける要素順を並び替える。照合データ部218は、並び替え後の暗号化第2マスクにおける要素、及び、並び替え後の検証マスクにおける要素が関連付けされた照合データを作成する(ステップD15)。この場合に、暗号化第2マスクの第I(ただし、Iは、要素番号を表す)要素は、検証マスクの第I要素に関連付けされている。照合データ部218は、作成した照合データを、検証装置224における検証データ生成部223に送信する(ステップD16)。
The
検証装置224における検証データ生成部223は、照合準備部221が送信した暗号化第1データ、及び、照合データ部218が送信した照合データを受信する。検証データ生成部223は、受信した照合データに含まれる暗号化第2マスクの各要素に関して、該要素と、受信した暗号化第1データとを掛け算した値を算出する。検証データ生成部223は、暗号化第2マスクの第I要素に関して算出した値と、受信した照合データに含まれる検証マスクの第I要素とが関連付けされた検証データを作成し(ステップD17)、作成した検証データを、検証装置224における検証データ復号部110に送信する。
The verification
以降、ステップC18乃至ステップC22に示された処理と同様の処理が実行されるので、ステップD18乃至ステップD22に関する説明を省略する。 Thereafter, processing similar to the processing shown in steps C18 to C22 is executed, and thus the description regarding steps D18 to D22 is omitted.
次に、第2の実施形態に係る照合システム201に関する効果について説明する。
Next, effects related to the
第2の実施形態に係る照合システム201によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。この理由は、照合処理に際して参照する、暗号化第1データと、暗号化第2データとが、通信接続可能な、複数の異なる装置にて、別々に算出されるからである。言い換えれば、本実施形態に係る照合システム201によれば、登録データと、対象データとの間の距離を算出可能な、暗号化第1データ及び暗号化第2データが異なる主体にて算出される。この結果、暗号化第1データ及び暗号化第2データのうち、少なくとも一方が傍受されたとしても、距離を復元することは不可能であるので、該暗号化第1データ及び暗号化第2データに基づく照合処理において、情報が漏洩するリスクは軽減する。
According to the
さらに、第2の実施形態に係る照合システム201によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理を可能が可能である。この理由は、照合処理において、受理するか否かを判定する基準を表す閾値tに基づく範囲に含まれる第1値を、対象データ及び登録データ間の距離から引いた値が暗号化された第2値を、距離を復号することなく求めることができるからである。尚、これらの処理は、主として、ステップD11及びステップD12にて実行される。
Furthermore, according to the
検証装置224のみが、暗号文を復号することができるので、照合システム201において、登録データ装置102、記憶装置104、照合要求装置212、及び、照合装置219は、復号された第2値を参照することができない。また、検証装置224が復号する値は第2値が乱数によってマスクされた値であるので、検証装置224も復号された第2値を参照することができない。この結果、復号された距離に基づきテンプレートを復元するヒルクライミング攻撃を受ける可能性は低下する。
Since only the
さらに、第2の実施形態に係る照合システム201によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果を奏する。さらに、第2の実施形態に係る照合システム201によれば、たとえ、照合要求装置212が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果を奏する。
Furthermore, according to the
次に示すいずれの理由によっても、上述した効果を奏する。 The effects described above can be achieved for any of the following reasons.
・登録データ装置102における登録データ情報記憶部105には、暗号化部103が登録データを暗号化した暗号化登録情報が格納される。すなわち、記憶装置104は、暗号化登録情報を格納しているので、登録データを復元することができない。
The registration data
・本実施形態に係る照合システム201においては、照合装置219が暗号化第1データを算出し、照合要求装置212が暗号化第2データを算出する分散処理の態様であるので、照合要求装置212、照合装置219、及び、記憶装置104が、距離を算出することはできない。
In the
・検証装置224が算出するデータは、ハッシュ関数(ステップD14等における処理にて利用)や、乱数等(ステップD13、ステップD14等における処理にて利用)を用いて距離が隠ぺいされたデータである。したがって、第2の実施形態に係る照合システム201によれば、たとえ、このデータが傍受されたとしても、距離を推定することは難しい。
The data calculated by the
したがって、第2の実施形態に係る照合システム201によれば、より安全な照合処理が可能である。
Therefore, according to the
<第3の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第3の実施形態について説明する。
<Third Embodiment>
Next, a third embodiment of the present invention based on the first embodiment described above will be described.
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第1の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。 In the following description, the characteristic parts according to the present embodiment will be mainly described, and the same components as those in the first embodiment described above will be denoted by the same reference numerals, and redundant description will be omitted. To do.
図8を参照しながら、本発明の第3の実施形態に係る照合システム401が有する構成について詳細に説明する。図8は、本発明の第3の実施形態に係る照合システム401が有する構成を示すブロック図である。
With reference to FIG. 8, the configuration of the
第3の実施形態に係る照合システム401は、大別して、登録データ装置102と、照合要求装置412と、記憶装置104と、照合装置423と、検証装置422とを有する。
A
登録データ装置102は、暗号化部103を有する。
The registered
記憶装置104は、識別子管理部106と、登録データ情報記憶部105と、登録データ検索部107とを有する。
The
検証装置422は、鍵生成部108と、鍵記憶部109と、検証データ復号部110と、検証部111と、検証データ生成部411とを有する。
The
照合装置423は、照合登録情報要求部415と、照合準備部416と、判定部417と、暗号化第1集合部418と、暗号化第1マスク部419と、検証マスク部420と、照合データ部421とを有する。
The
照合要求装置412は、照合要求部413と、暗号化第2データ部414とを有する。
The
登録データ装置102と、照合要求装置412と、記憶装置104と、照合装置423と、検証装置422とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
It is assumed that the
尚、図8においては、照合システム401は、5つの装置を含む態様を例示したが、図8に例示された様態に限定されない。たとえば、登録データ装置102と、照合要求装置412とを含む第1ノード、記憶装置104と照合装置423とを含む第2ノードと、検証装置422を含む第3ノードとしてもよい。
In FIG. 8, the
次に、本発明の第3の実施形態に係る照合システム401における処理について詳細に説明する。照合システム401における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。
Next, processing in the
照合システム401が、上述した各フェーズにて実行する処理について詳細に説明する。
Processing performed by the
本実施形態に係る照合システム401に関する準備フェーズにおける処理は、第1の実施形態に係る照合システム101に関する準備フェーズにおける処理と同様である。このため、本実施形態に係る照合システム401に関する準備フェーズにおける処理に関する説明を省略する。さらに、本実施形態に係る照合システム401に関する登録フェーズにおける処理は、第1の実施形態に係る照合システム101に関する登録フェーズにおける処理と同様である。このため、本実施形態に係る照合システム401に関する準備フェーズにおける処理に関する説明を省略する。
The processing in the preparation phase related to the
図9A及び図9Bを参照しながら、本実施形態に係る照合システム401が、照合フェーズにて実行する処理について説明する。図9A及び図9Bは、照合フェーズにおいて、第3の実施形態に係る照合システム401が実行する処理の一例を示すフローチャートである。
With reference to FIG. 9A and FIG. 9B, processing performed by the
照合要求装置412における照合要求部413は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部413は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップF1)。照合要求部413は、作成した該照合要求を、照合装置423における照合登録情報要求部415に送信する(ステップF2)。照合要求は、たとえば、該登録識別子と、対象データとを含む。
The
照合装置423における照合登録情報要求部415は、照合要求部413が送信した照合要求を受信し、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部415は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップF3)、作成した該登録データ要求を、記憶装置104における登録データ検索部107に送信する(ステップF4)。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
The collation registration
記憶装置104における登録データ検索部107は、照合登録情報要求部415が送信した登録データ要求を受信する。登録データ検索部107は、登録データ情報(たとえば、登録データ情報記憶部105に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップF5)。登録データ検索部107は、特定した暗号化登録情報を、照合装置423における照合準備部416に送信する(ステップF6)。
The registration
照合装置423における照合準備部416は、登録データ検索部107が送信した暗号化登録情報を受信する。照合準備部416は、たとえば、擬似乱数を算出する手順に従い、乱数を生成する。照合準備部416は、受信した暗号化登録情報における各要素が該乱数乗された値と、該乱数が暗号化された暗号文(すなわち、「暗号化乱数」)とを算出する。尚、ステップB1に関する処理にて説明したように、暗号化登録情報が登録データに含まれている各要素の暗号文を含むので、照合準備部416は、該暗号文を算出する処理において、登録データに含まれている各要素が乱数倍された値の暗号文を算出する。すなわち、照合準備部416は、該登録データに含まれている各要素が、該乱数を用いて変換された値の暗号文を算出する。また、ステップB1に関する処理にて説明したように、暗号化登録情報が暗号化第1指標を含むので、照合準備部416は、該暗号文を算出する処理において、暗号化第1指標の基である第1指標が乱数倍された値の暗号文である暗号化第1データを算出する(ステップF7)。照合準備部416は、算出した該値のうち、登録データが暗号化された値を表す要素と、該暗号化乱数とを含む照合登録情報を作成し(ステップF8)、作成した照合登録情報を、照合要求装置412における暗号化第2データ部414に送信する(ステップF9)。さらに、照合準備部416は、ステップF7にて算出された暗号化第1データと暗号化乱数とを含む暗号化第1データ情報を作成し、作成した暗号化第1データ情報を、照合装置423における暗号化第1集合部418に送信する。
The
照合要求装置412における暗号化第2データ部414は、対象データ、及び、照合準備部416が送信した照合登録情報を受信する。暗号化第2データ部414は、上述したステップS101乃至ステップS104に示す処理を実行することによって、暗号化第2データを算出する(ステップF10)。すなわち、暗号化第2情報は、暗号化第2データを含む。暗号化第2データ部414は、算出した暗号化第2データを、検証装置422における検証データ生成部411に送信する(ステップF11)。
The encrypted
次に、照合装置423における暗号化第1集合部418は、照合準備部416が送信した、暗号化第1データと暗号化乱数とを含む暗号化第1データ情報を受信する。暗号化第1集合部418は、対象データが受理可能であるか否かを判定する基準を表す閾値tを読み取り、読み取った閾値tに基づき設定される区間[−t,0]に含まれている、ある値を算出する。たとえば、ある値は、整数値である。ある値は、複数であってもよい。
Next, the encrypted
以降、説明の便宜上、ある値は、L(ただし、Lは、自然数を表す)個の整数値であるとする。 Hereinafter, for convenience of explanation, it is assumed that a certain value is L (where L represents a natural number) integer values.
暗号化第1集合部418は、受信した暗号化第1データ情報に含まれている暗号化乱数を、該整数値乗した値を算出し、算出した値と該暗号化第1データ情報に含まれている暗号化第1データとを掛け算した値を算出する。暗号化第1集合部418は、算出した値を含む暗号化第1集合を作成し(ステップF12)、作成した暗号化第1集合を、照合装置423における暗号化第1マスク部419に送信する。
The
照合装置423における暗号化第1マスク部419は、暗号化第1集合部418が送信した暗号化第1集合を受信する。暗号化第1マスク部419は、たとえば、擬似乱数を算出する手順に従い、L個の乱数を算出し、該L個の乱数を含むマスク値集合を作成し、作成したマスク値集合を、照合装置423における検証マスク部420に送信する。さらに、暗号化第1マスク部419は、受信した暗号化第1集合に含まれている各要素に関して、該要素と、マスク値集合に含まれている1つの要素とを掛け算した値を算出し、算出された値を含む暗号化第1マスクを作成する(ステップF13)。暗号化第1マスク部419は、作成した暗号化第1マスクを、照合装置423における照合データ部421に送信する。
The encrypted
次に、照合装置423における検証マスク部420は、暗号化第1マスク部419が送信したマスク値集合を受信する。検証マスク部420は、受信したマスク値集合を入力として、ハッシュ関数を適用することにより、ハッシュ値を算出する。検証マスク部420は、算出したハッシュ値を含む検証マスクを作成し(ステップF14)、作成した検証マスクを、照合装置423における照合データ部421に送信する。
Next, the
次に、照合装置423における照合データ部421は、暗号化第1マスク部419が送信した暗号化第1マスク、及び、検証マスク部420が送信した検証マスクを受信する。照合データ部421は、特定の手順に従い、受信した暗号化第1マスクを並び替え、さらに、該特定の手順に従い受信した検証マスクを並び替える処理によって、並び替えられた結果を表す照合データを作成する(ステップF15)。照合データ部421は、作成した照合データを、検証装置422における検証データ生成部411に送信する(ステップF16)。
Next, the
次に、検証装置422における検証データ生成部411は、照合データ部421が送信した照合データ、及び、暗号化第2データ部414が送信した暗号化第2データを受信する。検証データ生成部411は、受信した照合データに含まれる暗号化第1マスクの各要素と、受信した暗号化第2データとを掛け算した値を算出し、算出した値と受信した照合データに含まれる検証マスクとを含む検証データを作成する(ステップF17)。検証データ生成部411は、作成した検証データを、検証装置422における検証データ復号部110に送信する。
Next, the verification
以降、ステップC18乃至ステップC22に示された処理と同様の処理が実行されるので、ステップF18乃至ステップF22に関する説明を省略する。 Thereafter, processing similar to the processing shown in steps C18 to C22 is executed, and thus the description regarding steps F18 to F22 is omitted.
次に、第3の実施形態に係る照合システム401に関する効果について説明する。
Next, effects related to the
第3の実施形態に係る照合システム401によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。この理由は、照合処理に際して参照する、暗号化第1データと、暗号化第2データとが、通信接続可能な、複数の異なる装置にて、別々に算出されるからである。言い換えれば、本実施形態に係る照合システム401によれば、登録データと、対象データとの間の距離を算出可能な、暗号化第1データ及び暗号化第2データが異なる主体にて算出される。この結果、暗号化第1データ及び暗号化第2データのうち、少なくとも一方が傍受されたとしても、距離を復元することは不可能であるので、該暗号化第1データ及び暗号化第2データに基づく照合処理において、情報が漏洩するリスクは軽減する。
According to the
さらに、第3の実施形態に係る照合システム401によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理を可能が可能である。この理由は、照合処理において、受理するか否かを判定する基準を表す閾値tに基づく範囲に含まれる第1値を、対象データ及び登録データ間の距離から引いた値が暗号化された第2値を、距離を復号することなく求めることができるからである。尚、これらの処理は、主として、ステップF17にて実行される。
Furthermore, according to the
検証装置422のみが、暗号文を復号することができるので、照合システム401において、登録データ装置102、記憶装置104、照合要求装置412、及び、照合装置423は、復号された第2値を参照することができない。また、検証装置422が復号する値は第2値が乱数によってマスクされた値であるので、検証装置422も復号された第2値を参照することができない。この結果、復号された距離に基づきテンプレートを復元するヒルクライミング攻撃を受ける可能性は低下する。
Since only the
さらに、第3の実施形態に係る照合システム401によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果を奏する。さらに、第3の実施形態に係る照合システム401によれば、たとえ、照合要求装置412が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果を奏する。
Furthermore, according to the
次に示すいずれの理由によっても、上述した効果を奏する。 The effects described above can be achieved for any of the following reasons.
・登録データ装置102における登録データ情報記憶部105には、暗号化部103が登録データを暗号化した暗号化登録情報が格納される。すなわち、記憶装置104は、暗号化登録情報を格納しているので、登録データを復元することができない。
The registration data
・本実施形態に係る照合システム401においては、照合装置423が暗号化第1データを算出し、照合要求装置412が暗号化第2データを算出する分散処理の態様であるので、照合要求装置412、照合装置423、及び、記憶装置104が、距離を算出することはできない、
・検証装置422が算出するデータは、ハッシュ関数(ステップF14等における処理にて利用)や、乱数等(ステップF13等における処理にて利用)を用いて距離が隠ぺいされたデータである。したがって、第3の実施形態に係る照合システム401によれば、たとえ、このデータが傍受されたとしても、距離を推定することは難しい。
In the
The data calculated by the
したがって、第3の実施形態に係る照合システム401によれば、より安全な照合処理が可能である。
Therefore, according to the
<第4の実施形態>
次に、上述した第1の実施形態を基本とする本発明の第4の実施形態について説明する。
<Fourth Embodiment>
Next, a fourth embodiment of the present invention based on the first embodiment described above will be described.
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明する。 In the following description, the characteristic part according to the present embodiment will be mainly described.
図10を参照しながら、本発明の第4の実施形態に係る照合システム501が有する構成について詳細に説明する。図10は、本発明の第4の実施形態に係る照合システム501が有する構成を示すブロック図である。
With reference to FIG. 10, the configuration of the
第4の実施形態に係る照合システム501は、大別して、登録データ装置502と、照合要求装置512と、記憶装置504と、照合装置519と、検証装置524とを有する。
The
登録データ装置502は、暗号化部503を有する。
The registered
記憶装置504は、識別子管理部506と、登録データ情報記憶部505と、登録データ検索部507とを有する。
The
検証装置524は、鍵生成部508と、鍵記憶部509と、検証データ復号部510と、検証部511とを有する。
The
照合装置519は、照合登録情報要求部520と、照合準備部521と、検証データ生成部523と、判定部522とを有する。
The
照合要求装置512は、照合要求部513と、暗号化第2データ部514と、暗号化第2集合部515と、暗号化第2マスク部516と、検証マスク部517と、照合データ部518とを有する。
The
登録データ装置502と、照合要求装置512と、記憶装置504と、照合装置519と、検証装置524とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
It is assumed that the
尚、図10においては、照合システム501は、5つの装置を含む態様を例示したが、図10に例示された様態に限定されない。たとえば、登録データ装置502と、照合要求装置512とを含む第1ノード、記憶装置504と照合装置519とを含む第2ノードと、検証装置524を含む第3ノードとしてもよい。
In addition, in FIG. 10, although the
本実施形態に係る照合システム501は、2つのデータ(たとえば、対象データと、登録データ)との距離を、n(ただし、nは、自然数)次元ユークリッド距離を用いて算出する。
The
データXが(x[1],x[2],・・・,x[n])と表され、データYが(y[1],y[2],・・・,y[n])と表される場合に、n次元ユークリッド距離Dは、式4に従い算出される値である。 Data X is expressed as (x [1], x [2],..., X [n]), and data Y is (y [1], y [2],..., Y [n]). The n-dimensional Euclidean distance D is a value calculated according to Equation 4.
D(X,Y)=(x[1]−y[1]){2}+(x[2]−y[2]){2}+・・・+(x[n]−y[n]){2}・・・(式4)、
ただし、x[i]、y[i](1≦i≦n)は整数を表す。
D (X, Y) = (x [1] −y [1]) {2} + (x [2] −y [2]) {2} +... + (X [n] −y [n ] {2} (Formula 4),
However, x [i] and y [i] (1 ≦ i ≦ n) represent integers.
説明の便宜上、データXが対象データを表し、データYが登録データを表すとする。 For convenience of explanation, it is assumed that data X represents target data and data Y represents registered data.
照合システム501は、たとえば、式4に従い算出した距離Dが、対象データが受理可能であるか否かを判定する基準を表す閾値t以下である場合に、データXが受理可能であると判定する。これに対して、照合システム501は、式4に従い算出した距離Dが、該閾値tよりも大きい場合に、データXが受理不可能であると判定する。
For example, the
本実施形態においては、加法に関して準同型性を有する公開鍵暗号としてModified−Elgamal暗号を用いる例を参照しながら、照合システム501における処理について説明する。しかし、Paillier暗号等の加法に関して準同型性を有する他の公開鍵暗号の場合であっても、本実施形態に係る照合システム501は、後述する説明と同様の処理を実行することによって、データXが受理可能であるか否かを判定することができる。
In the present embodiment, the processing in the
まず、Modified−Elgamal暗号について説明する。公開鍵暗号の一つであるModified−Elgamal暗号は、公開鍵、及び、秘密鍵を生成する鍵生成アルゴリズム、生成した公開鍵を用いて暗号化する暗号化アルゴリズム、及び、生成した秘密鍵を用いて暗号化された暗号データを復号する復号アルゴリズムを含む。 First, the Modified-Elgal encryption will be described. The Modified-Elgamal cipher, which is one of public key ciphers, uses a public key and a key generation algorithm for generating a secret key, an encryption algorithm for encryption using the generated public key, and a generated secret key. And a decryption algorithm for decrypting the encrypted data encrypted.
まず、該Modified−Elgamal暗号のアルゴリズムのうち、鍵生成アルゴリズムについて詳細に説明する。鍵生成アルゴリズムは、たとえば、ステップP1乃至ステップP5に示す処理によって実現することができる。 First, a key generation algorithm will be described in detail among the Modified-Elgal encryption algorithms. The key generation algorithm can be realized, for example, by the processes shown in Step P1 to Step P5.
・ステップP1:生成する鍵の長さを表す値を含むセキュリティパラメータ1kを受信する、
・ステップP2:位数がkビットの素数pである群Gと、その生成元gとを生成する、
・ステップP3:集合Zpの中から、値xをランダムに選び、生成した生成元gのx乗を算出することによって、gx(=yと表す)を算出する、
・ステップP4:算出した群G、素数p、生成元g、及び、値yが関連付けされた公開鍵pkを算出する。公開鍵pkは、たとえば、(G,p,g,y)として表すことができる、
・ステップP5:算出した公開鍵pk、及び、値xが関連付けされた秘密鍵skを算出する。秘密鍵skは、たとえば、(pk,x)のように表すことができる。
Step P1: Receive a security parameter 1k including a value representing the length of the key to be generated.
Step P2: Generate a group G whose order is a prime number p of k bits and its generation source g.
Step P3: g x (denoted as y) is calculated by randomly selecting a value x from the set Z p and calculating the x of the generated generator g.
Step P4: A public key pk associated with the calculated group G, prime number p, generator g, and value y is calculated. The public key pk can be represented as (G, p, g, y), for example,
Step P5: Calculate the calculated public key pk and the secret key sk associated with the value x. The secret key sk can be expressed as (pk, x), for example.
ただし、1k(すなわち、1がkビット並んだビット列)は、セキュリティパラメータを表す、Zpは、1から(p−1)までの整数値の集合を表す。尚、ステップP2における処理に関しては、様々な方法があり、それらの方法は、本実施形態においても採用できる。ここでは、それらの方法に関する詳細な説明を省略する。 However, 1 k (that is, a bit string in which 1 is arranged by k bits) represents a security parameter, and Z p represents a set of integer values from 1 to (p−1). There are various methods for the processing in step P2, and these methods can also be adopted in this embodiment. Here, detailed description regarding these methods is omitted.
次に、該Modified−Elgamal暗号のアルゴリズムのうち、暗号化アルゴリズムについて詳細に説明する。暗号化アルゴリズムは、たとえば、ステップQ1乃至ステップQ7に示す処理によって実現することができる。 Next, an encryption algorithm will be described in detail among the modified-Elgal encryption algorithms. The encryption algorithm can be realized, for example, by the processing shown in steps Q1 to Q7.
・ステップQ1:公開鍵pk、及び、メッセージmを受信する、
・ステップQ2:集合Zpの中から第8値rをランダムに選ぶ、
・ステップQ3:公開鍵pkに含まれている生成元gを読み取り、読み取った生成元gの乱数r乗を算出することによって、gr(=c[1]と表す)を算出する、
・ステップQ4:公開鍵pkに含まれている生成元gを読み取り、読み取った生成元gのm乗を算出することによって、gmを算出する、
・ステップQ5:公開鍵pkに含まれている値yを読み取り、読み取った値yのr乗を算出することによって、yrを算出する、
・ステップQ6:ステップQ4において算出した値、及び、ステップQ5において算出した値を掛け算することによって、yr×gm(=c[2]と表す)を算出する、
・ステップQ7:算出したc[1]、及び、c[2]が関連付けされた暗号文を算出する。
Step Q1: Receive public key pk and message m.
Step Q2: The eighth value r is randomly selected from the set Z p .
Step Q3: Read the generator g included in the public key pk, and calculate g r (= c [1]) by calculating the read generator g to the power of random number r.
Step Q4: Reads the generator g included in the public key pk, by calculating the m-th power of the generator g read, calculates the g m,
Step Q5: Calculate y r by reading the value y included in the public key pk and calculating the r of the read value y.
Step Q6: Calculate y r × g m (= c [2]) by multiplying the value calculated in Step Q4 and the value calculated in Step Q5.
Step Q7: A ciphertext associated with the calculated c [1] and c [2] is calculated.
ステップQ1乃至ステップQ7に示された暗号化アルゴリズムに従い算出される暗号文cは、たとえば、暗号文(c[1],c[2])のように表すことができる。または、暗号化アルゴリズムを関数Encとして表す場合に、ステップQ1乃至ステップQ7に示す処理は、Enc(pk,m)=(c[1],c[2])のように表すことができる。尚、この場合に、(pk,m)は入力を表し、(c[1],c[2])は出力を表す。関数Encは、公開鍵pk、及び、メッセージmが入力された場合に、暗号文(c[1],c[2])を算出する。 The ciphertext c calculated according to the encryption algorithm shown in steps Q1 to Q7 can be expressed as, for example, ciphertext (c [1], c [2]). Alternatively, when the encryption algorithm is expressed as a function Enc, the processing shown in steps Q1 to Q7 can be expressed as Enc (pk, m) = (c [1], c [2]). In this case, (pk, m) represents an input, and (c [1], c [2]) represents an output. The function Enc calculates the ciphertext (c [1], c [2]) when the public key pk and the message m are input.
該Modified−Elgamal暗号のアルゴリズムのうち、復号アルゴリズムについて詳細に説明する。復号アルゴリズムは、たとえば、ステップR1乃至ステップR3に示す処理によって実現することができる。 A decryption algorithm among the modified-elgal encryption algorithms will be described in detail. The decoding algorithm can be realized, for example, by the processes shown in steps R1 to R3.
・ステップR1:秘密鍵sk、暗号文(c[1],c[2])を受信する、
・ステップR2:受信した暗号文において、c[1]、及び、c[2]を読み取り、受信した秘密鍵skにおいて値xを読み取る、
・ステップR3:読み取ったc[2]を、c[1]の値のx乗によって割り算することによって、復号結果Mを算出する。復号結果Mは、たとえば、c[2]/(c[1]x)に従い演算することによって算出することができる。
Step R1: Receive a secret key sk and ciphertext (c [1], c [2]).
Step R2: Read c [1] and c [2] in the received ciphertext, and read the value x in the received secret key sk.
Step R3: The decoding result M is calculated by dividing the read c [2] by the xth power of the value of c [1]. The decoding result M can be calculated, for example, by calculating according to c [2] / (c [1] x ).
ただし、演算子「/」は、逆元を表すとする。たとえば、「1/QA」は、QAの逆元を表す。また。たとえば、「QA/QB」は、QAに、QBの逆元数を掛け算した値を表す。 However, the operator “/” represents an inverse element. For example, “1 / QA” represents an inverse element of QA. Also. For example, “QA / QB” represents a value obtained by multiplying QA by the inverse of QB.
復号アルゴリズムを関数Decとして表す場合に、ステップR1乃至ステップR3に示す処理は、Dec(sk,c)=Mのように表すことができる。すなわち、関数Decは、秘密鍵sk、及び、暗号文cが入力された場合に、暗号文cが復号された復号結果Mを算出する。 When the decryption algorithm is expressed as a function Dec, the processing shown in steps R1 to R3 can be expressed as Dec (sk, c) = M. That is, the function Dec calculates a decryption result M obtained by decrypting the ciphertext c when the secret key sk and the ciphertext c are input.
さらに、次のアルゴリズムによって暗号文を変形できる。 Furthermore, the ciphertext can be transformed by the following algorithm.
・ステップT1:暗号文(c[1],c[2])、変形パラメータxpを受信する、
・ステップT2:読み取ったc[1]を、c[1]の値xp乗に置き換える、
・ステップT3:変形結果(c[1]{xp},c[2])を算出する、
メッセージmに対する暗号文Enc(pk,m)=(c[1],c[2])にこの変形を加えた結果をTEnc(pk,xp,m)=(c[1]{xp},c[2])と表す。ある暗号文(c[1],c[2])および変形パラメータxpに対してこのアルゴリズムを実行した結果である(c[1]{xp},c[2])に対し,これと変形パラメータ1/xpに対してこのアルゴリズムを適用すると元の暗号文(c[1],c[2])が出力される。
Step T1: The ciphertext (c [1], c [2]) and the deformation parameter xp are received.
Step T2: Replace the read c [1] with the value xp of c [1].
Step T3: The deformation result (c [1] {xp} , c [2]) is calculated.
The result of adding this modification to the ciphertext Enc (pk, m) = (c [1], c [2]) for the message m is expressed as TEnc (pk, xp, m) = (c [1] {xp} , c [2]). For a certain ciphertext (c [1], c [2]) and the transformation parameter xp, this algorithm and the transformation parameter ( p [1] {xp} , c [2]) When this algorithm is applied to 1 / xp, the original ciphertext (c [1], c [2]) is output.
本発明の各実施形態においては、上述したように関数を用いて処理を説明することもある。たとえば、関数を「F(X)=Y」と表す場合に、該関数は、入力Xに対して、関数Fが表す処理を適用することによって、出力Yを算出する処理を表す。 In each embodiment of the present invention, processing may be described using a function as described above. For example, when a function is represented as “F (X) = Y”, the function represents a process of calculating the output Y by applying the process represented by the function F to the input X.
ここで、鍵生成アルゴリズム、暗号化アルゴリズム、及び、復号アルゴリズムに従えば、適切に暗号化処理、及び、復号処理が実行されることについて、式5を参照しながら説明する。尚、ここでは、適切に暗号化処理、及び、復号処理が実行されていることを示すために、暗号化アルゴリズムに従い算出されたメッセージmの暗号文を、復号アルゴリズムに従い復号することによって、gmが復元されることを示す。 Here, it will be described with reference to Equation 5 that the encryption process and the decryption process are appropriately executed according to the key generation algorithm, the encryption algorithm, and the decryption algorithm. Here, in order to show that the encryption process and the decryption process are appropriately executed, the ciphertext of the message m calculated according to the encryption algorithm is decrypted according to the decryption algorithm, so that g m Indicates that will be restored.
上述した暗号化アルゴリズムに従えば、メッセージmに対して、暗号文(gr,yr×gm)が算出される。該暗号文に対して復号アルゴリズムに従い処理を実行すると、復号結果Mとしてc[2]/(c[1]x)が算出される。 According to the encryption algorithm described above, a ciphertext (g r , y r × g m ) is calculated for the message m. When the ciphertext is processed according to the decryption algorithm, c [2] / (c [1] x ) is calculated as the decryption result M.
c[2]/(c[1]x)
=yr×gm/((gr)x)
=((gx)r)×gm/((gr)x)
=gm・・・(式5)。
c [2] / (c [1] x )
= Y r × g m / ((g r ) x )
= ((G x ) r ) × g m / ((g r ) x )
= G m (Formula 5).
すなわち、メッセージmに対して、ステップQ1乃至ステップQ7に示された暗号化アルゴリズム、及び、ステップR1乃至ステップR3に示された復号アルゴリズムを適用することによって、gmが算出される。したがって、上述した鍵生成アルゴリズム、暗号化アルゴリズム、及び、復号アルゴリズムに従えば、適切に暗号化処理、及び、復号処理が実行される
Modified−Elgamal暗号の場合に、複数の平文に対する加算演算は、該平文が暗号化された暗号文を復号することなく、実行することができる。同様に、Modified−Elgamal暗号の場合に、平文を定数倍する演算は、該平文が暗号化された暗号文を復号することなく、実行することができる。これらの演算が可能である理由について、式6及び式7を参照しながら説明する。
That is, g m is calculated by applying the encryption algorithm shown in steps Q1 to Q7 and the decryption algorithm shown in steps R1 to R3 to the message m. Therefore, according to the above-described key generation algorithm, encryption algorithm, and decryption algorithm, in the case of the Modified-Elgamal cipher in which the encryption process and the decryption process are appropriately executed, the addition operation for a plurality of plaintexts is This can be executed without decrypting the ciphertext obtained by encrypting the plaintext. Similarly, in the case of the Modified-Elgamal cipher, the operation of multiplying the plaintext by a constant can be executed without decrypting the ciphertext obtained by encrypting the plaintext. The reason why these operations are possible will be described with reference to Equation 6 and Equation 7.
まず、複数の平文に対する加算演算は、該平文が暗号化された暗号文を復号することなく、実行することができる理由について説明する。 First, the reason why the addition operation for a plurality of plaintexts can be executed without decrypting the ciphertext obtained by encrypting the plaintext will be described.
公開鍵pkを(G,p,g,y)、メッセージをm、メッセージをmp、メッセージmが暗号化された暗号文をc、及び、メッセージmpが暗号化された暗号文をcpと表す。暗号化アルゴリズムに従えば、メッセージmに対して、式6に示す暗号文cが算出される。 The public key pk is represented by (G, p, g, y), the message is represented by m, the message is represented by mp, the ciphertext obtained by encrypting the message m is represented by c, and the ciphertext obtained by encrypting the message mp is represented by cp. According to the encryption algorithm, the ciphertext c shown in Expression 6 is calculated for the message m.
c=Enc(pk,m)
=(c[1],c[2])
=(gr,yr×gm)・・・(式6)。
c = Enc (pk, m)
= (C [1], c [2])
= (G r, y r × g m) ··· ( Equation 6).
また、暗号化アルゴリズムに従えば、メッセージmpに対して、式7に示す暗号文が算出される。 Further, according to the encryption algorithm, the ciphertext shown in Expression 7 is calculated for the message mp.
cp=Enc(pk,mp)
=(cp[1],cp[2])
=(grp,yrp×gmp)・・・(式7)。
cp = Enc (pk, mp)
= (Cp [1], cp [2])
= (G rp , y rp × g mp ) (Expression 7).
この場合に、式8によれば、複数の平文を加算した値が暗号化された値は、該平文が、それぞれ、暗号化された値を掛け算した値に等価である。 In this case, according to Equation 8, a value obtained by encrypting a value obtained by adding a plurality of plaintexts is equivalent to a value obtained by multiplying the plaintexts by the encrypted values.
Enc(pk,m)*Enc(pk,mp)
=(c[1]×cp[1],c[2]×cp[2])
=(g{r+rp},y{r+rp}×g{m+mp})
=Enc(pk,m+mp)・・・(式8)。
Enc (pk, m) * Enc (pk, mp)
= (C [1] × cp [1], c [2] × cp [2])
= (G {r + rp} , y {r + rp} * g {m + mp} )
= Enc (pk, m + mp) (Formula 8).
ただし、rpは、メッセージmpに対する第8値を表す。また、演算子「*」は、各要素に対して掛け算した値を算出することを表す。 However, rp represents the eighth value for the message mp. The operator “*” represents that a value obtained by multiplying each element is calculated.
次に、平文を定数倍する演算は、該平文が暗号化された暗号文を復号することなく、実行することができる理由について説明する。 Next, the reason why the operation of multiplying the plaintext by a constant can be executed without decrypting the ciphertext obtained by encrypting the plaintext will be described.
暗号化アルゴリズムに従い、メッセージmに対して、式6に示す暗号文が算出されるとする。この場合に、式8によれば、平文を定数倍した結果を暗号化する処理は、平文を暗号化した後に算出される値を、該定数乗する処理に等価である。 Assume that the ciphertext shown in Equation 6 is calculated for the message m in accordance with the encryption algorithm. In this case, according to Equation 8, the process of encrypting the result obtained by multiplying the plaintext by a constant is equivalent to the process of multiplying the value calculated after encrypting the plaintext by the constant power.
Enc(pk,m)i
=(c[1]i,c[2]i)
=(g{i×r},y{i×r}×g{i×m})
=Enc(pk,i×m)・・・(式9)、
ただし、暗号文に対する指数乗は、該暗号文に含まれる各要素に関して指数乗する演算を表す。
Enc (pk, m) i
= (C [1] i , c [2] i )
= (G {i × r} , y {i × r} × g {i × m} )
= Enc (pk, i × m) (Equation 9)
However, the exponentiation with respect to the ciphertext represents an operation for exponentiation with respect to each element included in the ciphertext.
次に、本発明の第4の実施形態に係る照合システム501における処理について詳細に説明する。照合システム501における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。
Next, processing in the
まず、図11を参照しながら、本実施形態に係る照合システム501が、準備フェーズにて実行する処理について説明する。図11は、準備フェーズにおいて、第4の実施形態に係る照合システム501が実行する処理の一例を示すシーケンス図(フローチャート)である。
First, the process executed in the preparation phase by the
検証装置524における鍵生成部508は、セキュリティパラメータ1kを受信する。鍵生成部508は、受信したセキュリティパラメータ1kを用いて、たとえば、ステップP1乃至ステップP5に示された鍵生成アルゴリズムに従い、公開鍵pk、及び、秘密鍵skを生成する(ステップSA1)。鍵生成部508は、入力された値に対して、特定の値を算出するハッシュ関数Hを決定する(ステップSA2)。鍵生成部508は、該公開鍵pkと、該ハッシュ関数Hとを、照合システム501において公開する(ステップSA3)。鍵生成部508は、該秘密鍵skを、鍵記憶部509に格納する(ステップSA4)。
The
たとえば、照合システム501における鍵生成アルゴリズムが、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号における鍵生成アルゴリズムである場合の例を参照しながら、照合システム501における処理について説明する。この場合に、鍵生成部508は、セキュリティパラメータ1kを受信する。鍵生成部508は、位数がkビットである素数pである群Gと、群Gに関する生成元gとを生成する。鍵生成部508は、所定の集合Zpの中から値xをランダムに選び、生成元gのx乗を算出する。すなわち、鍵生成部508は、gx(=y)を算出する。鍵生成部508は、群G、素数p、生成元g、及び、算出した値yが関連付けされた公開鍵pkを算出する。鍵生成部508は、公開鍵pk、及び、値xが関連付けされた秘密鍵をsk=(pk,x)を算出する。
For example, with reference to an example in which the key generation algorithm in the
図12を参照しながら、本実施形態に係る照合システム501が、登録フェーズにて実行する処理について説明する。図12は、登録フェーズにおいて、第4の実施形態に係る照合システム501が実行する処理の一例を示すシーケンス図である。
Processing performed in the registration phase by the
説明の便宜上、暗号化部503は、式10に示すように、複数の要素を含む登録データXを受信するとする。
For convenience of explanation, it is assumed that the
X=(x[1],・・・,x[n])・・・(式10)。 X = (x [1],..., X [n]) (Expression 10).
ただし、nは、自然数を表す。x[i](1≦i≦n)は、実数(たとえば、整数)を表す。 However, n represents a natural number. x [i] (1 ≦ i ≦ n) represents a real number (for example, an integer).
暗号化部503は、式10に示すような登録データXを受信し、登録データXに含まれている要素の二乗和(式11)を算出することによって、第1指標を算出する。
The
x[1]{2}+・・・+x[n]{2}・・・(式11)。 x [1] {2} +... + x [n] {2} (Expression 11).
次に、暗号化部503は、データXに含まれている要素x[i]を暗号化することによって、要素x[i]が暗号化された暗号文Enc(pk,x[i])を算出する。暗号化部503は、式11に従い算出した第1指標を暗号化することによって、該第1指標が暗号化された暗号化第1指標cc1を算出する。この場合に、暗号化部503が算出する暗号文は式12に示すように表すことができる。
Next, the
Enc(pk,x[1])(=c1[1]と表す),
・・・、
Enc(pk,x[n])(=c1[n]と表す),
Enc(pk,x[1]{2}+・・・+x[n]{2})(すなわち、cc1)・・・(式12)。
Enc (pk, x [1]) (= denoted as c1 [1]),
...
Enc (pk, x [n]) (= denoted as c1 [n]),
Enc (pk, x [1] {2} +... + X [n] {2} ) (ie, cc1) (Equation 12).
次に、暗号化部503は、式12に従い算出された値が含まれている暗号化登録情報を作成する(ステップSB1)。暗号化登録情報は、式13として表すことができる。
Next, the
(c1[1],・・・,c1[n],cc1)・・・(式13)。 (C1 [1],..., C1 [n], cc1) (Equation 13).
暗号化部503は、作成した暗号化登録情報(式13)を、照合装置519における照合準備部521に送信する(ステップ(SB2−1))。
The
加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の場合の例を用いながら、ステップSB1における処理を説明する。この場合に、暗号化部503は、集合Zpの中から、複数の値(以降、説明の便宜上、「乱数」と表す)を選ぶ。暗号化部503が選んだ複数の乱数を、r1[1]、・・・、r1[n]、及び、rr1と表す。
The process in step SB1 will be described using an example of the modified-Elgamal cipher that is one of public key ciphers having homomorphism with respect to addition. In this case, the
暗号化部503は、データXを受信した場合に、式11に従い二乗和を算出する。次に、暗号化部503は、公開鍵pkから、生成元gと、値yとを読み取る。暗号化部503は、読み取った生成元gを乱数乗した値(「値7」と表す)を算出する。暗号化部503は、読み取った生成元yの該乱数乗と、読み取った生成元gを「データXに含まれる要素」乗した値とを掛け算した値を算出する(「値5」と表す)。さらに、暗号化部503は、読み取った生成元yの該乱数乗と、読み取った生成元gを「式11に従い算出した二乗和」乗した値とを掛け算した値(「値6」と表す)を算出する。次に、暗号化部503は、値6及び値7が関連付けされた暗号文(すなわち、二乗和に関する暗号文)を算出する。すなわち、暗号化部503は、式14に示された暗号文を算出する。すなわち、暗号化部503は、公開鍵pkを用いて、データXに関して、式14に示した暗号文を作成する。
When receiving the data X, the
(g{r1[1]},y{r1[1]}×g{x[1]})(すなわち、Enc(pk,x[1])である。説明の便宜上、c1[1]と表す),
・・・,
(g{r1[n]},y{r1[n]}×g{x[n]})(すなわち、Enc(pk,x[n])である。説明の便宜上、c1[n]と表す),
(g{rr1},y{rr1}×g{x[1]^{2}+・・・+x[n]^{2}})(すなわち、Enc(pk,x[1]{2}+・・・+x[n]{2})である。説明の便宜上、cc1と表す)・・・(式14)。
(G {r1 [1]} , y {r1 [1]} × g {x [1]} ) (that is, Enc (pk, x [1]). For convenience of explanation, it is expressed as c1 [1]. ),
...
(G {r1 [n]} , y {r1 [n]} × g {x [n]} ) (that is, Enc (pk, x [n]). For convenience of explanation, it is expressed as c1 [n]. ),
(G {rr1} , y {rr1} × g {x [1] ^ {2} +... + X [n] ^ {2}} ) (ie, Enc (pk, x [1] {2} + ... + X [n] {2} ) (for convenience of description, expressed as cc1) (Expression 14).
次に、暗号化部503は、式14に従い算出された値が含まれている暗号化登録情報を作成する(ステップSB1)。暗号化部503は、作成した暗号化登録情報(たとえば、式13)を、照合装置519における識別子管理部506に送信する(ステップ(SB2−1))。
Next, the
記憶装置504における識別子管理部506は、暗号化部503が送信した暗号化登録情報を受信し(ステップ(SB2−2))、受信した暗号化登録情報を一意に識別可能な登録識別子を作成する(ステップSB3)。識別子管理部506は、作成した登録識別子と、受信した暗号化登録情報とが関連付けされた登録データ情報を作成し、作成した該登録データ情報を、記憶装置504における登録データ情報記憶部505に格納する(ステップSB4)。識別子管理部506は、作成した該登録識別子を、登録データ装置502に送信する(ステップ(SB5−1))。
The
記憶装置504における登録データ装置502は、該登録識別子を受信し(ステップ(SB5−2))、たとえば、受信した該登録識別子を、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップSB6)。あるいは、登録データ装置502は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、該登録識別子を格納してもよい。また、識別子管理部506が、作成した該登録識別子を表示してもよい。
The
尚、本実施形態に係る照合システム501が登録フェーズにて実行する処理は、図12に例示された様態に限定されない。
In addition, the process which the
図13A及び図13Bを参照しながら、本実施形態に係る照合システム501が、照合フェーズにて実行する処理について説明する。図13A及び図13Bは、照合フェーズにおいて、第4の実施形態に係る照合システム501が実行する処理の一例を示すシーケンス図である。
With reference to FIG. 13A and FIG. 13B, processing executed by the
照合要求装置512における照合要求部513は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部513は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップSC1)。照合要求部513は、作成した該照合要求を、照合装置519における照合登録情報要求部520に送信する(ステップ(SC2−1))。照合要求は、たとえば、該登録識別子を含む。
The
照合装置519における照合登録情報要求部520は、照合要求部513が送信した照合要求を受信し(ステップ(SC2−2))、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部520は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップSC3)、作成した該登録データ要求を、記憶装置504における登録データ検索部507に送信する(ステップ(SC4−1))。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
The verification registration
記憶装置504における登録データ検索部507は、照合登録情報要求部520が送信した登録データ要求を受信する(ステップ(SC4−2))。登録データ検索部507は、登録データ情報(たとえば、登録データ情報記憶部505に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップSC5)。登録データ検索部507は、特定した暗号化登録情報を、照合装置519における照合準備部521に送信する(ステップ(SC6−1))。
The registration
照合装置519における照合準備部521は、登録データ検索部507が送信した暗号化登録情報(式13)を受信する(ステップ(SC6−2))。次に、照合準備部521は、たとえば、擬似乱数を生成する手順に従い、値S(以降、乱数Sと表す)を算出し、公開鍵pkを用いて、乱数Sを暗号化した暗号文を算出する。さらに、照合準備部521は、暗号化登録情報に含まれている各要素の乱数S乗を算出する。すなわち、照合準備部521は、c1[i]{S}(ただし、1≦i≦n)、及び、暗号化第1データcc1{S}を算出する(ステップSC7)。
The
ステップSC7に示した処理によって、照合準備部521は、暗号化登録情報を算出した基であるデータXに含まれている要素、及び、データXに関して式11に従い算出された二乗和に関して、それぞれ、乱数S倍された値が、公開鍵pkを用いて暗号化された値(式15)を算出する。
Through the process shown in step SC7, the
Enc(pk,S)(c2[0]と表す),
Enc(pk,S×x[1])(c2[1]と表す),
・・・,
Enc(pk,S×x[n])(c2[n]と表す),
Enc(pk,S×(x[1]{2}+・・・+x[n]{2}))(cc2、または、「暗号化第1データ」と表す)・・・(式15)。
Enc (pk, S) (denoted as c2 [0]),
Enc (pk, S × x [1]) (denoted as c2 [1]),
...
Enc (pk, S × x [n]) (denoted as c2 [n]),
Enc (pk, S × (x [1] {2} +... + X [n] {2} )) (represented as cc2 or “encrypted first data”) (Equation 15).
照合準備部521は、算出した値(式15)のうち、暗号化登録情報に関する要素と、乱数Sが暗号化された暗号文とを含む照合登録情報を作成する(ステップSC8)。照合登録情報は、式16に示す態様を用いて表すことができる。
The
(c2[0],c2[1],・・・,c2[n])・・・(式16)。 (C2 [0], c2 [1],..., C2 [n]) (Expression 16).
照合準備部521は、作成した照合登録情報を、照合要求装置512における暗号化第2データ部514に送信する(ステップ(SC9−1))。さらに、照合準備部521は、算出した該値に含まれる暗号化第1データを、照合装置519における検証データ生成部523に送信する。
The
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の場合の例を用いながら、ステップSC7における処理について説明する。この場合に、照合準備部521は、集合Zpの中から、値(以降、説明の便宜上、「乱数」と表す。)を選ぶ。この処理にて照合準備部521が選んだ乱数を、r2[0]と表す。さらに、照合準備部521は、擬似乱数を生成する手順に従い、乱数Sを生成する。
For example, the process in step SC7 will be described using an example of the modified-elgamal cipher that is one of public key ciphers having homomorphism with respect to addition. In this case, the
照合準備部521は、公開鍵pkから、生成元gと、値yとを読み取る。照合準備部521は、集合Zpの中から、乱数xpを選ぶ。照合準備部521は、読み取った生成元gのr2[0]乗の値を算出する。照合準備部521は、読み取った生成元yの該r2[0]乗と、読み取った生成元gをS乗した値とを掛け算した値を算出する。照合準備部521は、算出した2つの値が関連付けされた暗号文を作成する。すなわち、照合準備部521は、これらの処理によって、乱数Sが公開鍵pkを用いて暗号化された値TEnc(pk,p,S)を算出する。
The
照合準備部521が算出する暗号文は、式17に示すように表すこともできる。
The ciphertext calculated by the
(g{xp×r2[0]},y{r2[0]}×g{S})
=TEnc(pk,xp,S)(すなわち、c2[0])・・・(式17)。
(G {xp × r2 [0]} , y {r2 [0]} × g {S} )
= TEnc (pk, xp, S) (ie, c2 [0]) (Expression 17).
次に、照合準備部521は、式13に示された暗号文を含む暗号化登録情報に関して、該登録データに含まれる要素の値を乱数S乗した値を算出する。この処理によって、照合準備部521は、該登録データを算出した基であるデータXに含まれている要素、及び、データXに関して式11に従い算出された二乗和に関して、それぞれ、乱数S倍された値が、公開鍵pkおよびxpを用いて暗号化された値を算出する。
Next, the
上記の処理によって照合準備部521が算出する値は、式18のように表すことができる。
The value calculated by the
(c1[1][1]{xp×S},c1[1][2]{S})(すなわち、TEnc(pk,xp,S×x[1])、c2[1]),
・・・,
(c1[n][1]{xp×S},c1[n][2]{S})(すなわち、TEnc(pk,xp,S×x[n])、c2[n]),
(cc1[1]{xp×S},cc1[2]{S})(すなわち、TEnc(pk,xp,S×(x[1]{2}+・・・+x[n]{2})、cc2)・・・(式18)。
(C1 [1] [1] {xp × S} , c1 [1] [2] {S} ) (ie, TEnc (pk, xp, S × x [1]), c2 [1]),
...
(C1 [n] [1] {xp × S} , c1 [n] [2] {S} ) (ie, TEnc (pk, xp, S × x [n]), c2 [n]),
(Cc1 [1] {xp × S} , cc1 [2] {S} ) (ie, TEnc (pk, xp, S × (x [1] {2} +... + X [n] {2} ) , Cc2) (Equation 18).
ただし、暗号文c1[i]は、(c1[i][1],c1[i][2])である。iは、自然数を表す。 However, the ciphertext c1 [i] is (c1 [i] [1], c1 [i] [2]). i represents a natural number.
照合準備部521は、式15に従い算出した値を含む照合登録情報(c2[0],c2[1],・・・,c2[n])を作成する(ステップSC8)。照合準備部521は、作成した照合登録情報を、照合要求装置512における暗号化第2データ部514に送信する(ステップ(SC9−1))。さらに、照合準備部521は、算出した暗号化第1データ(Modified−Elgamal暗号を用いる場合は、暗号化第1データに乱数xpを追加する)を、照合装置519における検証データ生成部523に送信する。
The
照合要求装置512における暗号化第2データ部514は、照合する対象を表す対象データY、及び、照合準備部521が送信した照合登録情報(式16)を受信する(ステップ(SC9−2))。
The encrypted
説明の便宜上、対象データYは、上述した登録データと同様に、複数の要素(式19)を含むとする。さらに、登録データに含まれている要素と、対象データに含まれている要素とは、相互に比較可能に関連付けされているとする。たとえば、該関連付けに従えば、登録データにおける第I(ただし、Iは自然数)要素と、対象データにおける第I要素とが関連付けされている。 For convenience of explanation, it is assumed that the target data Y includes a plurality of elements (formula 19), similarly to the registration data described above. Furthermore, it is assumed that the elements included in the registration data and the elements included in the target data are associated with each other so that they can be compared with each other. For example, according to the association, the I-th element (where I is a natural number) in the registered data and the I-th element in the target data are associated.
Y=(y[1],y[2],・・・,y[n])・・・(式19)。 Y = (y [1], y [2],..., Y [n]) (Equation 19).
尚、該関連付けは、必ずしも、上述した例に限定されない。 The association is not necessarily limited to the example described above.
暗号化第2データ部514は、受信した対象データY、及び、受信した照合登録情報に基づき、該照合登録情報を算出した基であるデータXと、対象データYとの間の距離から、該データXの長さを引いた値(第2指標)が暗号化された暗号文(「暗号化第2指標」と表す)を算出する(ステップSC10)。
The encrypted
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の場合の例を用いながら、ステップSC10における処理について説明する。 For example, the process in step SC10 will be described using an example of the modified-elgamal cipher that is one of public key ciphers having homomorphism with respect to addition.
この場合に、暗号化第2データ部514は、たとえば、受信した対象データYに含まれている要素の2乗和を算出することにより、対象データYの長さを算出する。次に、暗号化第2データ部514は、式16に示された照合登録情報に含まれている第0要素(すなわち、乱数Sが暗号化された値)を読み取り、読み取った第0要素の値が「該長さ」乗された値を算出する。この場合に、暗号化第2データ部514が算出する値は、式20に示すように表すことができる。
In this case, the encrypted
(c2[0][1]{y[1]^{2}+・・・+y[n]^{2}},c2[0][2]{y[1]^{2}+・・・+y[n]^{2}})・・・(式20)。 (C2 [0] [1] {y [1] ^ {2} +... + Y [n] ^ {2}} , c2 [0] [2] {y [1] ^ {2} +. + Y [n] ^ {2}} ) (Equation 20).
ただし、暗号文c2[i]は、(c2[i][1],c2[i][2])である。iは、0以上の整数値を表す。 However, the ciphertext c2 [i] is (c2 [i] [1], c2 [i] [2]). i represents an integer value of 0 or more.
式20は、式15によれば、Enc(pk,S×{y[1]{2}+・・・+y[n]{2}})に等価である。
According to Expression 15,
次に、暗号化第2データ部514は、照合登録情報に含まれている第i要素と、読み取り、対象データYに含まれている第i要素と読み取り、照合登録情報に含まれている第i要素が、「−2×対象データYに含まれている第i要素」乗された値を算出する。ただし、iは、自然数を表す。この場合に、暗号化第2データ部514が算出する値は、式21に示すように表すことができる。
Next, the encrypted
(c2[i][1]{−2×y[i]},c2[i][2]{−2×y[i]})・・・(式21)。 (C2 [i] [1] {−2 × y [i]} , c2 [i] [2] {−2 × y [i]} ) (Expression 21).
式21は、式15によれば、Enc(pk,−2×S×x[i]×y[i])に等価である。
According to Equation 15,
次に、暗号化第2データ部514は、式21に従い算出した値と、第0要素に関して算出した値とを掛け算した値(式22)を算出する。
Next, the encrypted
(c2[0][1]{y[1]^{2}+・・・+y[n]^{2}}×c2[1][1]{−2×y[1]}×・・・×c2[n][1]{−2×y[n]},c2[0][2]{y[1]^{2}+・・・+y[n]^{2}}×c2[1][2]{−2×y[1]}×・・・×c2[n][2]{−2×y[n]})・・・(式22)。 (C2 [0] [1] {y [1] ^ {2} +... + Y [n] ^ {2}} × c2 [1] [1] {−2 × y [1]} ×. * C2 [n] [1] {-2 * y [n]} , c2 [0] [2] {y [1] ^ {2} + ... + y [n] ^ {2}} xc2 [1] [2] {−2 × y [1]} ×... × c2 [n] [2] {−2 × y [n]} ) (Expression 22).
式22は、
Enc(pk,S×{y[1]{2}+・・・+y[n]{2}})*Enc(pk,−2×S×x[1]×y[1])*・・・*Enc(pk,−2×S×x[n]×y[n])、
に等価である。すなわち、式22は、
Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2}))
に等価である。
Equation 22 is
Enc (pk, S × {y [1] {2} +... + Y [n] {2} }) * Enc (pk, −2 × S × x [1] × y [1]) * * Enc (pk, -2 x S x x [n] x y [n]),
Is equivalent to That is, Equation 22 is
Enc (pk, −2 × S × (x [1] × y [1] +... + X [n] × y [n]) + S × (y [1] {2} +... + Y [n ] {2} ))
Is equivalent to
説明の便宜上、式22に従い算出される暗号文を暗号化第2データ「cc3」と表す。 For convenience of explanation, the ciphertext calculated according to Equation 22 is expressed as encrypted second data “cc3”.
照合要求装置512における暗号化第2データ部514は、照合登録情報の中の乱数が暗号化された暗号文(すなわち、暗号化乱数)c2[0]と、算出した暗号化第2データcc3とを含む暗号化第2情報を作成し、作成した暗号化第2情報を、暗号化第2集合部515に送信する。暗号化第2情報は、たとえば、(c2[0],cc3)と表すことができる。
The encrypted
尚、以降の説明においては、説明の便宜上、「−2×(x[1]×y[1]+・・・+x[n]×y[n])+(y[1]{2}+・・・+y[n]{2})」を、D2(X,Y)と表すこともある。 In the following description, for convenience of description, “−2 × (x [1] × y [1] +... + X [n] × y [n]) + (y [1] {2} + ... + Y [n] {2} ) ”may be expressed as D2 (X, Y).
照合要求装置512における暗号化第2集合部515は、暗号化第2データ部514が送信した暗号化第2情報を受信する。暗号化第2集合部515は、対象データが受理可能であるか否かを判定する基準を表す閾値tを読み取り、読み取った閾値tに基づき区画される区間に含まれる値を算出する。たとえば、暗号化第2集合部515は、「−t」から「−1」に至る整数値を算出する。次に、暗号化第2集合部515は、受信した暗号化第2情報に含まれる暗号化乱数c2[0]の該整数値乗を算出し、さらに、該暗号化第2情報に含まれる暗号化第2データcc3と掛け算した値を算出する。暗号化第2集合部515は、算出した値を含む暗号化第2集合を作成する。
The encrypted
暗号化第2集合は、対象データYとデータXとの間の距離から、対象データYの大きさを引いた値から、S×1からS×tに至る各(S×i)(ただし、iは、1からtまでの整数である)を引いた値が暗号化された値を含む。すなわち、暗号化第2集合は、式23に示す値を含む。 The second set of encryption is a value obtained by subtracting the size of the target data Y from the distance between the target data Y and the data X, and each (S × i) (where S × i) (however, The value obtained by subtracting (i is an integer from 1 to t) is encrypted. That is, the encrypted second set includes the value shown in Expression 23.
Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×1)(以降、cc4[1]と表す),
・・・,
Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×t)(以降、cc4[t]と表す)・・・(式23)。
Enc (pk, −2 × S × (x [1] × y [1] +... + X [n] × y [n]) + S × (y [1] {2} +... + Y [n ] {2} )-S × 1) (hereinafter referred to as cc4 [1]),
...
Enc (pk, −2 × S × (x [1] × y [1] +... + X [n] × y [n]) + S × (y [1] {2} +... + Y [n ] {2} ) − S × t) (hereinafter referred to as cc4 [t]) (Formula 23).
また、暗号化第2集合部515は、さらに、暗号化第2集合に、暗号化第2情報の中の暗号化第2データcc3が追加された、新たな暗号化第2集合を作成する(ステップSC11)。
In addition, the encrypted
説明の便宜上、暗号化第2データcc3をcc4[0]と表す。この場合に、暗号化第2集合部515が算出する暗号化第2集合は、たとえば、式24に示す態様を用いて表すことができる。
For convenience of explanation, the encrypted second data cc3 is represented as cc4 [0]. In this case, the encrypted second set calculated by the encrypted
(cc4[0],・・・,cc4[t])・・・(式24)。 (Cc4 [0],..., Cc4 [t]) (Equation 24).
暗号化第2集合部515は、作成した暗号化第2集合を、照合要求装置512における暗号化第2マスク部516に送信する。
The encrypted
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の例を用いながら、ステップSC11における処理について説明する。この場合に、暗号化第2集合部515は、暗号化第2情報(c2[0],cc3)を受信する。次に、暗号化第2集合部515は、閾値tを読み取り、暗号化第2情報に含まれる暗号化乱数c2[0]に関して、「−t」から「−1」に至る各整数値のべき乗を表す値を算出する。次に、暗号化第2集合部515は、算出した値と、暗号化第2データcc3とを掛け算した値(すなわち、暗号文)を算出する。
For example, the process in step SC11 will be described using an example of a modified-elgamal cipher that is one of public key ciphers having homomorphism with respect to addition. In this case, the encrypted
暗号化第2集合部515が暗号文を算出する処理は、たとえば、式25として表すことができる。
The process in which the encryption
(cc3[0]×c2[0][1]{−1},cc3[1]×c2[0][2]{−1}),
(cc3[0]×c2[0][1]{−2},cc3[1]×c2[0][2]{−2}),
・・・,
(cc3[0]×c2[0][1]{−t},cc3[1]×c2[0][2]{−t})・・・(式25)。
(Cc3 [0] × c2 [0] [1] {−1} , cc3 [1] × c2 [0] [2] {−1} ),
(Cc3 [0] × c2 [0] [1] {− 2} , cc3 [1] × c2 [0] [2] {− 2} ),
...
(Cc3 [0] × c2 [0] [1] {− t} , cc3 [1] × c2 [0] [2] {− t} )) (Equation 25).
尚、式25は、式26と等価である。尚、uは、「−t」から「−1」までの整数値を表す。
Note that
(cc3[0]×c2[0][1]{−u},cc3[1]×c2[0][2]{−u})
=Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2}))×Enc(pk,S){−u}
=Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})×Enc(pk,−u×S)
=Enc(pk,−2×S×(x[1]y[1]+・・・+x[n]y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×u)・・・(式26)。
(Cc3 [0] × c2 [0] [1] {− u} , cc3 [1] × c2 [0] [2] {− u} )
= Enc (pk, -2 * S * (x [1] * y [1] + ... + x [n] * y [n]) + S * (y [1] {2} + ... + y [ n] {2} )) x Enc (pk, S) {-u}
= Enc (pk, -2 * S * (x [1] * y [1] + ... + x [n] * y [n]) + S * (y [1] {2} + ... + y [ n] {2} ) × Enc (pk, −u × S)
= Enc (pk, -2 * S * (x [1] y [1] + ... + x [n] y [n]) + S * (y [1] {2} + ... + y [n] {2} )-S × u) (Equation 26).
暗号化第2集合部515は、式25に示す処理によって算出された値を含む暗号化第2集合(式24)を作成し、作成した暗号化第2集合を、照合要求装置512における暗号化第2マスク部516に送信する。
The encrypted
照合要求装置512における暗号化第2マスク部516は、暗号化第2集合部515が送信した暗号化第2集合を受信する。次に、暗号化第2マスク部516は、たとえば、擬似乱数を算出する手順に従い、(t+1)個の乱数R[0]、・・・、R[t]を算出する。この場合に、暗号化第2マスク部516は、算出した乱数を含むマスク値集合(R[0],・・・,R[t])を作成してもよい。
The encrypted
次に、暗号化第2マスク部516は、算出した乱数R[i](ただし、0≦i≦t)を、公開鍵pkを用いて暗号化することにより、乱数R[i]が暗号化された暗号文Enc(pk,R[i])を作成する。暗号化第2マスク部516は、受信した暗号化第2集合に含まれている暗号文cc4[i]と、算出した暗号文Enc(pk,R[i])とを掛け算した値(式27)を算出する。
Next, the encryption
Enc(pk,R[i])*cc4[i]・・・(式27)。 Enc (pk, R [i]) * cc4 [i] (Equation 27).
尚、式27は式28に等価である。
Enc(pk,R[i])*cc4[i]
=Enc(pk,R[i])*Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×i)
=Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×i+R[i])・・・(式28)。
Enc (pk, R [i]) * cc4 [i]
= Enc (pk, R [i]) * Enc (pk, -2 × S × (x [1] × y [1] +... + X [n] × y [n]) + S × (y [1 ] {2} +... + Y [n] {2} ) − S × i)
= Enc (pk, -2 * S * (x [1] * y [1] + ... + x [n] * y [n]) + S * (y [1] {2} + ... + y [ n] {2} ) − S × i + R [i]) (Equation 28).
以降、式27に従い算出された値(暗号文)をcc5[i]と表す。
Hereinafter, the value (ciphertext) calculated according to
より具体的に、暗号化第2マスク部516は、式29に従い、値を算出する。
More specifically, the encrypted
Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×0+R[0]),
・・・,
Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×t+R[t])・・・(式29)
暗号化第2マスク部516は、算出した値(式27)を含む暗号化第2マスクを作成する(ステップSC12)。
Enc (pk, −2 × S × (x [1] × y [1] +... + X [n] × y [n]) + S × (y [1] {2} +... + Y [n ] {2} )-S × 0 + R [0]),
...
Enc (pk, −2 × S × (x [1] × y [1] +... + X [n] × y [n]) + S × (y [1] {2} +... + Y [n {2} )-S × t + R [t]) (Equation 29)
The encryption
加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の例を用いて、ステップSC12における処理について説明する。 The process in step SC12 will be described using an example of Modified-Elgamal cipher that is one of public key ciphers having homomorphism with respect to addition.
この例の場合に、暗号化第2マスク部516は、暗号化第2集合部515が送信した暗号化第2集合を受信する。次に、暗号化第2マスク部516は、たとえば、擬似乱数を生成する手順に従い、(t+1)個の乱数R[0]、・・・、R[t]を算出する。次に、暗号化第2マスク部516は、公開鍵pkから、生成元gを読み取り,生成元gを算出した乱数R[i]乗した値g{R[i]}(ただし、0≦i≦t)を算出する。次に、暗号化第2マスク部516は、受信した暗号化第2集合に含まれている暗号文cc4[i]の第2項と、算出した値とを掛け算した値(式31)を算出する。
In the case of this example, the encrypted
(cc4[0][1],cc4[0][2]×g{R[0]}),
・・・,
(cc4[t][1],cc4[t][2]×g{R[t]})・・・(式31)。
(Cc4 [0] [1], cc4 [0] [2] × g {R [0]} ),
...
(Cc4 [t] [1], cc4 [t] [2] × g {R [t]} ) (Expression 31).
尚、式31に示された(cc4[i][1],cc4[i][2]×g{R[i]})は、式32に示す式と等価である。 Note that (cc4 [i] [1], cc4 [i] [2] × g {R [i]} ) shown in Expression 31 is equivalent to the expression shown in Expression 32.
TEnc(pk,xp,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×i)*TEnc(pk,0,R[i])
=TEnc(pk,xp,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×i+R[i])・・・(式32)。
TEnc (pk, xp, −2 × S × (x [1] × y [1] +... + X [n] × y [n]) + S × (y [1] {2} +. [N] {2} ) − S × i) * TEnc (pk, 0, R [i])
= TEnc (pk, xp, -2 x S x (x [1] x y [1] + ... + x [n] x y [n]) + S x (y [1] {2} + ... + Y [n] {2} ) − S × i + R [i]) (Formula 32).
したがって、この場合に、式31に示された値の集合は、式33に示された値の集合と等価である。 Therefore, in this case, the set of values shown in Equation 31 is equivalent to the set of values shown in Equation 33.
(cc4[0][1],cc4[0][2]×g{R[0]})
=TEnc(pk,xp,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×0+R[0])
=cc5[0],
・・・,
(cc4[t][1],cc4[t][2]×g{R[t]})
=TEnc(pk,xp,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×t+R[t])
=cc5[t]・・・(式33)。
(Cc4 [0] [1], cc4 [0] [2] × g {R [0]} )
= TEnc (pk, xp, -2 x S x (x [1] x y [1] + ... + x [n] x y [n]) + S x (y [1] {2} + ... + Y [n] {2} ) − S × 0 + R [0])
= Cc5 [0],
...
(Cc4 [t] [1], cc4 [t] [2] × g {R [t]} )
= TEnc (pk, xp, -2 x S x (x [1] x y [1] + ... + x [n] x y [n]) + S x (y [1] {2} + ... + Y [n] {2} ) − S × t + R [t])
= Cc5 [t] (Expression 33).
暗号化第2マスク部516は、式31に従い算出した値を含む暗号化第2マスク(cc5[1],・・・cc5[t])を作成し、作成した暗号化第2マスクを、照合要求装置512における照合データ部518に送信する。暗号化第2マスク部516は、マスク値集合(R[0],・・・,R[t])を検証マスク部517に送信する。
The encryption
尚、式27を用いて算出された値を表すcc5[i]は、値D2(X,Y)を用いて式34として表すことができる。
Note that cc5 [i] representing the value calculated using
cc5[i]
=Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×i+R[i])
=Enc(pk,S×D2(X,Y)−S×i+R[i])・・・(式34)。
cc5 [i]
= Enc (pk, -2 * S * (x [1] * y [1] + ... + x [n] * y [n]) + S * (y [1] {2} + ... + y [ n] {2} ) − S × i + R [i])
= Enc (pk, S × D2 (X, Y) −S × i + R [i]) (Expression 34).
検証マスク部517は、暗号化第2マスク部516が送信したマスク値集合(R[0],・・・,R[t])を受信する。検証マスク部517は、公開鍵pkに含まれている生成元gを読み取り、該マスク値集合に含まれている値(乱数R[i]と表す)に関して、それぞれ、読み取った生成元gがR[i]乗された値を算出する。ただし、0≦i≦tである。次に、検証マスク部517は、算出した値を入力として、ハッシュ関数Hを適用することにより、該値に対するハッシュ値H(g{R[i]})(以降、h1[i]と表す)を算出する。すなわち、検証マスク部517が算出するハッシュ値H(g{R[i]})は、式35としても記述することができる。
The
H(g{R[0]}),
・・・,
H(g{R[t]})・・・(式35)。
H (g {R [0]} ),
...
H (g {R [t]} ) (Formula 35).
検証マスク部517は、算出したハッシュ値を含む検証マスクを作成する(ステップSC13)。たとえば、検証マスク部517が算出する検証マスクは、式36として表すことができる。
The
(h1[0],・・・,h1[t])・・・(式36)。 (H1 [0],..., H1 [t]) (Expression 36).
検証マスク部517は、作成した検証マスクを、照合要求装置512における照合データ部518に送信する。
The
照合要求装置512における照合データ部518は、暗号化第2集合部515が送信した暗号化第2マスク(cc5[0],・・・,cc5[t])、及び、検証マスク部517が送信した検証マスクを受信する。
The
照合データ部518は、0からtに至る値(以降、[0,t]と表す)に関する順列πをランダムに作成する。順列πは、すなわち、区間[0,t]に含まれる任意の整数iに対してπ(i)は[0,t]の要素である条件、及び、区間[0,t]に含まれる各整数iについてπ(i)に重複がない条件を満たす。
The
次に、照合データ部518は、作成した順列πに従い、受信した暗号化第2マスクに含まれている要素の順序を並び替え、さらに、作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える。
Next, the
説明の便宜上、作成した該順列πに従い、暗号化第2マスクに含まれている要素の順序を並び替える処理を、cc5[π(i)]と表す。作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える処理を、h1[π(i)]と表す。また、cc5[π(i)]をcc6[i]と表し、h1[π(i)]をh2[i]と表す。 For convenience of explanation, a process for rearranging the order of elements included in the encrypted second mask in accordance with the generated permutation π is represented as cc5 [π (i)]. A process of rearranging the order of elements included in the received verification mask according to the generated permutation π is represented as h1 [π (i)]. Also, cc5 [π (i)] is represented as cc6 [i], and h1 [π (i)] is represented as h2 [i].
この場合に、式34によれば、cc6[i]は、値D2(X,Y)を用いて、式37として表すことができる。 In this case, according to Expression 34, cc6 [i] can be expressed as Expression 37 using the value D2 (X, Y).
Enc(pk,S×D2(X,Y)−S×π(i)+R[π(i)])・・・(式37)。 Enc (pk, S × D2 (X, Y) −S × π (i) + R [π (i)]) (Expression 37)
次に、照合データ部518は、算出したcc6[i]と、算出したh2[i]とを含む情報を作成し、さらに、区間[0,t]に含まれているiに関して、該情報を含む照合データを作成する(ステップSC14)。照合データ部518が作成する照合データは、たとえば、式38に示された態様を用いて表すことができる。
Next, the
((cc6[0],h2[0]),・・・,(cc6[t],h2[t]))・・・(式38)。 ((Cc6 [0], h2 [0]),..., (Cc6 [t], h2 [t])) (Equation 38).
照合データ部518は、作成した照合データ(たとえば、式38に示された値)を、照合装置519における検証データ生成部523に送信する(ステップ(SC15−1))。
The
照合装置519における検証データ生成部523は、照合準備部521が送信した暗号化第1データcc2(たとえば、式15)、及び、照合データ部518が送信した照合データ(たとえば、式38に示された値)を受信する(ステップ(SC15−2))。検証データ生成部523は、受信した照合データに含まれているcc6[i](ただし、0≦i≦t)を読み取り、読み取ったcc6[i]と、受信した暗号化第1データcc2とが掛け算された値(式39)を算出する。
The verification
Enc(pk,S×(x[1]{2}+・・・+x[n]{2}))*Enc(pk,S×D2(X,Y)−S×π(i)+R[π(i)])・・・(式39)。 Enc (pk, S × (x [1] {2} +... + X [n] {2} )) * Enc (pk, S × D2 (X, Y) −S × π (i) + R [π (I)]) (Equation 39).
検証データ生成部523が算出する値(式39)は、式40と等価である。
The value (formula 39) calculated by the verification
Enc(pk,S×(x[1]{2}+・・・+x[n]{2})+S×D2(X,Y)−S×π(i)+R[π(i)])
=Enc(pk,S×((x[1]{2}+・・・+x[n]{2})−2×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2}))−S×π(i)+R[π(i)])
=Enc(pk,S×((x[1]−y[1]){2}+・・・+(x[n]−y[n]){2})−S×π(i)+R[π(i)])・・・(式40)。
Enc (pk, S × (x [1] {2} +... + X [n] {2} ) + S × D2 (X, Y) −S × π (i) + R [π (i)])
= Enc (pk, S × ((x [1] {2} +... + X [n] {2} ) −2 × (x [1] × y [1] +... + X [n] × y [n]) + S × (y [1] {2} +... + y [n] {2} )) − S × π (i) + R [π (i)])
= Enc (pk, S × ((x [1] −y [1]) {2} +... + (X [n] −y [n]) {2} ) −S × π (i) + R [Π (i)]) (Equation 40).
したがって、「(x[1]−y[1]){2}+・・・+(x[n]−y[n]){2})」をD(X,Y)と表すことによって、式40は、式41と等価である。 Therefore, by expressing “(x [1] −y [1]) {2} +... + (X [n] −y [n]) {2} )” as D (X, Y), Equation 40 is equivalent to Equation 41.
Enc(pk,S×D(X,Y)−S×π(i)+R[π(i)])・・・(式41)。 Enc (pk, S × D (X, Y) −S × π (i) + R [π (i)]) (Formula 41).
説明の便宜上、式39に示された値をcc7[i]と表す。 For convenience of explanation, the value shown in Expression 39 is expressed as cc7 [i].
すなわち、0≦i≦tなるiに対して、検証データ生成部523は、式42に示す値を算出する。
That is, for i satisfying 0 ≦ i ≦ t, the verification
Enc(pk,S×D(X,y)−S×π(0)+R[π(0)]),
・・・,
Enc(pk,S×D(X,y)−S×π(t)+R[π(t)])・・・(式42)。
Enc (pk, S × D (X, y) −S × π (0) + R [π (0)]),
...
Enc (pk, S × D (X, y) −S × π (t) + R [π (t)]) (Formula 42).
検証データ生成部523は、算出したcc7[i]と、受信した照合データに含まれているh2[i]とが関連付けされた情報(cc7[i],h2[i])を作成する。検証データ生成部523は、0≦i≦tなるiに対して、作成した情報を含む検証データを作成する(ステップSC16)。たとえば、検証データ生成部523が作成する検証データは、式43に示す態様にて表すことができる。
The verification
((cc7[0],h2[0]),・・・,(cc7[t],h2[t]))・・・(式43)。 ((Cc7 [0], h2 [0]),..., (Cc7 [t], h2 [t])) (Expression 43).
検証データ復号部510は、作成した検証データを、検証装置524における検証データ復号部510に送信する(ステップ(SC17−1))。
The verification
加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の例を用いながら、ステップSC16における処理について説明する。この場合に、検証データ生成部523は、照合準備部521から暗号化第1データcc2に加え,乱数xpを受信する。受信した照合データに含まれているcc6[i](ただし、0≦i≦t)を読み取り、読み取ったcc6[i]を変形パラメータ1/xpによって変形した値と、受信した暗号化第1データcc2とが掛け算された値(すなわち、TEnc(pk,1/xp,cc2)*cc6[i])を算出する。したがって、0≦i≦tなるiに対して、検証データ生成部523は、式44に示す値を算出する。
The process in step SC16 will be described using an example of the modified-Elgamal cipher that is one of public key ciphers having homomorphism with respect to addition. In this case, the verification
(cc2[1]{1/xp}×cc6[0][1]{1/xp},cc2[2]×cc6[0][2])(この値は、Enc(pk,S×D(X,y)−S×π(0)+R[π(0)])と等価である),
・・・,
(cc2[1]{1/xp}×cc6[t][1]{1/xp},cc2[2]×cc6[0][2])(この値は、Enc(pk,S×D(X,y)−S×π(t)+R[π(t)])と等価である)・・・(式44)。
(Cc2 [1] {1 / xp} × cc6 [0] [1] {1 / xp} , cc2 [2] × cc6 [0] [2]) (This value is Enc (pk, S × D ( X, y) −S × π (0) + R [π (0)])),
...
(Cc2 [1] {1 / xp} × cc6 [t] [1] {1 / xp} , cc2 [2] × cc6 [0] [2]) (This value is Enc (pk, S × D ( X, y) −S × π (t) + R [π (t)])) (formula 44).
検証データ生成部523は、算出したcc7[i]と、受信した照合データに含まれているh2[i]とが関連付けされた情報を作成する。検証データ生成部523は、0≦i≦tなるiに対して、作成した情報を含む検証データを作成する(ステップSC16)。検証データ生成部523は、作成した検証データ(たとえば、式43)を、検証装置524における検証データ復号部510に送信する(ステップ(SC17−1))。
The verification
検証装置524における検証データ復号部510は、検証データ生成部523が送信した検証データを受信し(ステップ(SC17−2))、さらに、鍵記憶部509から秘密鍵skを読み取る。次に、検証データ復号部510は、受信した検証データに含まれている暗号文cc7[i](ただし、0≦i≦t)を読み取り、読み取った暗号文cc7[i]を、秘密鍵skを用いて復号する。尚、検証データ復号部510が秘密鍵skを用いて、暗号文cc7[i]を復号する処理Decは、式45に示す態様にて表すことができる。
The verification
Dec(sk,cc7[i])・・・(式45)。 Dec (sk, cc7 [i]) (Formula 45).
尚、説明の便宜上、式45に示された値をdd1[i]と表す。 For convenience of explanation, the value shown in Expression 45 is represented as dd1 [i].
すなわち、上述した処理によって、検証データ復号部510は、式46に示す値を算出する。
That is, the verification
Dec(sk,cc7[0]),
・・・,
Dec(sk,cc7[t])・・・(式46)。
Dec (sk, cc7 [0]),
...
Dec (sk, cc7 [t]) (Formula 46).
検証データ復号部510は、算出したdd1[i]と、検証データに含まれているh2[i]とが関連付けされた情報を作成する。次に、検証データ復号部510は、0≦i≦tなるiに関して作成した情報が含まれている復号後検証データを作成する(ステップSC18)。検証データ復号部510が作成する復号後検証データは、たとえば、式47に示す態様に従い表すことができる。
The verification
((dd1[0],h2[0]),・・・,(dd1[t],h2[t]))・・・(式47)。 ((Dd1 [0], h2 [0]),..., (Dd1 [t], h2 [t])) (Expression 47).
たとえば、加法に関して準同型性を有する公開鍵暗号としてModified−Elgamal暗号の例を用いながら、ステップSC17における処理について説明する。検証データ復号部510は、秘密鍵skから読み取った値xを用いて、cc7[i]を復号する。すなわち、検証データ復号部510が処理する手順は、式48に示すように表すことができる。
For example, the process in step SC17 will be described using an example of the Modified-Elgamal cipher as a public key cipher having homomorphism regarding addition. The verification
cc7[0][2]/(cc7[0][1]{x}),
・・・,
cc7[t][2]/(cc7[t][1]{x})・・・(式48)。
cc7 [0] [2] / (cc7 [0] [1] {x} ),
...
cc7 [t] [2] / (cc7 [t] [1] {x} ) (Formula 48).
検証データ復号部510は、作成した復号後検証データを、検証装置524における検証部511に送信する。
The verification
検証装置524における検証部511は、検証データ復号部510が送信した復号後検証データ(式47)を受信する。検証部511は、受信した復号後検証データから、0≦i≦tなるiに関して、dd1[i]を読み取り、読み取ったdd1[i]にハッシュ関数Hが適用された値H(dd1[i])を算出する。
The
次に、検証部511は、0≦i≦tなるiに関して、復号後検証データからh2[i]を読み取り、読み取ったh2[i]と算出したH(dd1[i])とが一致するか否かを判定する。
Next, the
検証部511は、0≦i≦tなるiのうち、少なくとも1つ以上のiに関して、h2[i]とH(dd1[i])とが一致する場合に、「一致」を表す検証結果を作成する。さもなくば、検証部511は、「不一致」を表す検証結果を作成する(ステップSC19)。
The
検証部511は、算出した検証結果を、照合装置519における判定部522に送信する(ステップ(SC20−1))。
The
照合装置519における判定部522は、検証部511が送信した検証結果を受信する(ステップ(SC20−2))。判定部522は、検証結果が「一致」である場合に、判定結果として「受理」を算出し、検証結果が「不一致」である場合に、判定結果として「不受理」を算出する(ステップSC21)。判定部522は、算出した判定結果を出力してもよい(ステップSC22)。
The
次に、第4の実施形態に係る照合システム501に関する効果について説明する。
Next, effects related to the
第4の実施形態に係る照合システム501によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。さらに、第4の実施形態に係る照合システム501によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、第4の実施形態に係る照合システム501が、第1の実施形態に係る照合システム101が有する構成を含むからである。
According to the
さらに、第4の実施形態に係る照合システム501によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果も奏する。さらに、第4の実施形態に係る照合システム501によれば、たとえ、照合要求装置512が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果も奏する。
Furthermore, according to the
この理由は、第4の実施形態に係る照合システム501が有する構成が、第1の実施形態に係る照合システム101が有する構成を含むからである。
This is because the configuration of the
さらに、第4の実施形態に係る照合システム501によれば、該照合システム501における処理負荷が少ないという効果を奏する。
Furthermore, according to the
この理由は、暗号化登録情報に含まれている情報量が、少ないからである。すなわち、暗号化登録情報は、登録データがn個の要素を含む場合に、該登録データに関する暗号化登録情報は、(n+1)個の要素が暗号化された暗号文であるからである。 This is because the amount of information included in the encrypted registration information is small. That is, when the registration data includes n elements, the encryption registration information is encrypted text with (n + 1) elements encrypted when the registration data includes n elements.
尚、本実施形態においては、ユークリッド距離の例を挙げたが、他の距離(たとえば、ハミング距離、マハラノビス距離等)にも容易に適用可能である。 In the present embodiment, an example of the Euclidean distance has been described. However, the present embodiment can be easily applied to other distances (for example, a Hamming distance, a Mahalanobis distance, etc.).
<第5の実施形態>
次に、上述した第2の実施形態を基本とする本発明の第5の実施形態について説明する。
<Fifth Embodiment>
Next, a fifth embodiment of the present invention based on the above-described second embodiment will be described.
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第2の実施形態、または、第4の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。 In the following description, the characteristic parts according to the present embodiment will be mainly described, and the same reference numerals will be given to the same configurations as those in the second embodiment or the fourth embodiment described above. Therefore, the overlapping description is omitted.
図14を参照しながら、本発明の第5の実施形態に係る照合システム601が有する構成について詳細に説明する。図14は、本発明の第5の実施形態に係る照合システム601が有する構成を示すブロック図である。
With reference to FIG. 14, the configuration of the
第5の実施形態に係る照合システム601は、大別して、登録データ装置502と、照合要求装置612と、記憶装置504と、照合装置619と、検証装置624とを有する。
A
登録データ装置502は、暗号化部503を有する。
The registered
記憶装置504は、識別子管理部506と、登録データ情報記憶部505と、登録データ検索部507とを有する。
The
検証装置624は、鍵生成部508と、鍵記憶部509と、検証データ復号部510と、検証部511と、検証データ生成部623とを有する。
The
照合装置619は、照合登録情報要求部620と、照合準備部621と、判定部622とを有する。
The
照合要求装置612は、照合要求部613と、暗号化第2データ部614と、暗号化第2集合部615と、暗号化第2マスク部616と、検証マスク部617と、照合データ部618とを有する。
The
登録データ装置502と、照合要求装置612と、記憶装置504と、照合装置619と、検証装置624とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
It is assumed that the
本実施形態においては、距離としてn次元ユークリッド距離の場合の例を参照しながら、本実施形態に係る照合システム601における処理について説明する。また、本実施形態では、加法に関して準同型性を有する公開鍵暗号としてModified−Elgamal暗号を用いる場合の例を参照しながら該処理について説明するが、Paillier暗号等の他の加法に関して準同型性を有する暗号を利用しても構わない。尚、本実施形態において、n次元ユークリッド距離およびModified−Elgamal暗号は、第4の実施形態におけるn次元ユークリッド距離、及び、Modified−Elgamal暗号と同様であるので、これらの説明については省略する。
In the present embodiment, a process in the
次に、本発明の第5の実施形態に係る照合システム601における処理について詳細に説明する。照合システム601における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。
Next, processing in the
まず、図15を参照しながら、本実施形態に係る照合システム601が、準備フェーズにて実行する処理について説明する。図15は、準備フェーズにおいて、第5の実施形態に係る照合システム601が実行する処理の一例を示すフローチャート(シーケンス図)である。
First, the process executed in the preparation phase by the
検証装置624における鍵生成部508は、セキュリティパラメータ1kを受信し、加法に関して準同型性を有する公開鍵暗号に従い、受信したセキュリティパラメータ1kを用いて公開鍵pk、及び、秘密鍵skを生成する(ステップTA1)。尚、生成される公開鍵、及び、秘密鍵は、該鍵生成アルゴリズムに従い生成されるので、加法に関して準同型性を有する公開鍵暗号に準拠する。さらに、鍵生成部508は、入力された値に対して、特定の値を算出するハッシュ関数Hを決定する(ステップTA2)。鍵生成部508は、照合システム601における各部に、作成したハッシュ関数H、及び、生成した公開鍵を公開する(ステップTA3)。鍵生成部508は、生成した秘密鍵を鍵記憶部509に格納する(ステップTA4)。
The
たとえば、鍵生成アルゴリズムが、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号における鍵生成アルゴリズムである場合の例を参照しながら、ステップTA1における処理について説明する。 For example, the process in step TA1 will be described with reference to an example in which the key generation algorithm is a key generation algorithm in Modified-Elgamal cipher that is one of public key ciphers having homomorphism regarding addition.
鍵生成部508は、セキュリティパラメータ1kを受信する。次に、鍵生成部508は、受信したセキュリティパラメータ1kに基づき、位数がkビットである素数pである群Gと、群Gに関する生成元gとを生成する。鍵生成部508は、Zpの中から値xをランダムに選び、生成元gのx乗を算出する。すなわち、鍵生成部508は、gx(=y)を算出する。鍵生成部508は、群G、素数p、生成元g、及び、算出した値yが関連付けされた公開鍵pkを算出する(ステップTA1)。鍵生成部508は、公開鍵pk、及び、値xが関連付けされた(pk,x)を、秘密鍵skとして算出する(ステップTA1)。
The
次に、図16を参照しながら、本実施形態に係る照合システム601が、登録フェーズにて実行する処理について説明する。図16は、登録フェーズにおいて、第5の実施形態に係る照合システム601が実行する処理の一例を示すシーケンス図である。
Next, processing executed in the registration phase by the
登録データ装置502における暗号化部503は、式10に示すような複数の要素を含むデータXを受信する。暗号化部503は、受信したデータXに含まれている要素の二乗和(式11)を算出する。次に、暗号化部503は、データXに含まれている要素と、算出した二乗和とを、公開鍵pkを用いて暗号化する。次に、暗号化部503は、式12に従い算出された値が関連付けされた暗号化登録情報(式13)を作成する(ステップTB1)。
The
ステップTB1について、詳細に説明する。暗号化部503は、集合Zpの中から、複数の値(以降、説明の便宜上、「乱数」と表す)を選ぶ。暗号化部503が選んだ複数の乱数を、r1[1]、・・・、r1[n]、及び、rr1と表す。
Step TB1 will be described in detail. The
暗号化部503は、データXを受信した場合に、式11に従い二乗和を算出する。次に、暗号化部503は、公開鍵pkから、生成元gと、値yとを読み取る。暗号化部503は、読み取った生成元gを乱数乗した値(「値7」と表す)を算出する。暗号化部503は、読み取った生成元yの該乱数乗と、読み取った生成元gを「データXに含まれる要素」乗した値とが掛け算された値を算出する(「値5」と表す)。さらに、暗号化部503は、読み取った生成元yの該乱数乗と、読み取った生成元gを「式11に従い算出した二乗和」乗した値とが掛け算された値(「値6」と表す)を算出する。次に、暗号化部503は、値5及び値7が関連付けされた暗号文(すなわち、二乗和に関する暗号文)を算出する。すなわち、暗号化部503は、式12に示された暗号文を算出する。暗号化部503は、該2つの暗号文を含む暗号化登録情報(式13)を作成する(ステップTB1)。暗号化部503は、作成した暗号化登録情報を、照合装置619における識別子管理部506に送信する(ステップ(TB2−1))。
When receiving the data X, the
記憶装置504における識別子管理部506は、暗号化部503が送信した暗号化登録情報を受信し(ステップ(TB2−2))、受信した暗号化登録情報を一意に識別可能な登録識別子を作成する(ステップTB3)。識別子管理部506は、作成した登録識別子と、受信した暗号化登録情報とが関連付けされた登録データ情報を作成し、作成した該登録データ情報を、記憶装置504における登録データ情報記憶部505に格納する(ステップTB4)。識別子管理部506は、作成した該登録識別子を、登録データ装置502に送信する(ステップ(TB5−1))。
The
記憶装置504における登録データ装置502は、該登録識別子を受信し(ステップ(TB5−2))、たとえば、受信した該登録識別子を、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップTB6)。あるいは、登録データ装置502は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、該登録識別子を格納してもよい。また、識別子管理部506が、作成した該登録識別子を表示してもよい。
The
尚、本実施形態に係る照合システム601が登録フェーズにて実行する処理は、図16に例示された様態に限定されない。
In addition, the process which the
図17A及び図17Bを参照しながら、本実施形態に係る照合システム601が、照合フェーズにて実行する処理について説明する。図17A及び図17Bは、照合フェーズにおいて、第5の実施形態に係る照合システム601が実行する処理の一例を示すシーケンス図である。
With reference to FIG. 17A and FIG. 17B, processing executed by the
照合要求装置612における照合要求部613は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部613は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップSD1)。照合要求部613は、作成した該照合要求を、照合装置619における照合登録情報要求部620に送信する(ステップ(SD2−1))。照合要求は、たとえば、該登録識別子を含む。
The
照合装置619における照合登録情報要求部620は、照合要求部613が送信した照合要求を受信し(ステップ(SD2−2))、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部620は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップSD3)、作成した該登録データ要求を、記憶装置504における登録データ検索部507に送信する(ステップ(SD4−1))。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
The verification registration
記憶装置504における登録データ検索部507は、照合登録情報要求部620が送信した登録データ要求を受信する(ステップ(SD4−2))。登録データ検索部507は、登録データ情報(たとえば、登録データ情報記憶部505に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップSD5)。登録データ検索部507は、特定した暗号化登録情報を、照合装置619における照合準備部621に送信する(ステップ(SD6−1))。
The registration
照合装置619における照合準備部621は、登録データ検索部507が送信した暗号化登録情報(式13)を受信する(ステップ(SD6−2))。照合準備部621は、たとえば、擬似乱数を生成する手順に従い、値S(以降、乱数Sと表す)を生成する。照合準備部621は、暗号化登録情報に含まれている各要素が値S乗された値と、該乱数が暗号化された暗号文(すなわち、「暗号化乱数」)とを算出する。この処理によって、照合準備部621は、該暗号化登録情報の基となった登録データが「値S」倍された値が暗号化された暗号文、及び、該登録データの大きさが「値S」倍された値が暗号化された暗号文(すなわち、「暗号化第1データ」)を算出する(ステップSD7)。照合準備部621は、算出した値のうち登録データの各値が「値S」倍された値の暗号文と、算出した該暗号化乱数とを含む照合登録情報を作成し(ステップSD8)、作成した照合登録情報を、照合要求装置612における暗号化第2データ部614に送信する(ステップ(SD9−1))。さらに、照合準備部621は、ステップSD7にて算出された値のうち登録データの大きさが「値S」倍された値の暗号文(すなわち、「暗号化第1データ」)を、検証装置624における検証データ生成部623に送信する(ステップ(SD10−1))。
The
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の場合の例を参照しながら、ステップSD7、及び、ステップSD8について詳細に説明する。この場合に、照合準備部621は、集合Zpの中から、値(以降、説明の便宜上、「乱数」と表す)を選ぶ。この処理にて暗号化部503が選んだ複数の乱数を、r2[0]と表す。さらに、照合準備部621は、たとえば、擬似乱数を生成する手順に従い、乱数Sを生成する。
For example, step SD7 and step SD8 will be described in detail with reference to an example of a modified-Elgamal cipher that is one of public key ciphers having homomorphism with respect to addition. In this case, the
照合準備部621は、公開鍵pkから、生成元gと、値yとを読み取る。暗号化部503は、読み取った生成元gのr2[0]乗の値を算出する。照合準備部621は、読み取った生成元yの該r2[0]乗と、読み取った生成元gをS乗した値とが掛け算された値を算出する。照合準備部621は、算出した2つの値が関連付けされた暗号文を作成する。すなわち、照合準備部621は、これらの処理によって、乱数Sが公開鍵pkを用いて暗号化された暗号文Enc(pk,S)(式49、すなわち、暗号化乱数)を算出する。
The
(g{r2[0]},y{r2[0]}×g{S})
=Enc(pk,S)(すなわち、c2[0])・・・(式49)。
(G {r2 [0]} , y {r2 [0]} × g {S} )
= Enc (pk, S) (ie, c2 [0]) (Equation 49).
次に、照合準備部621は、式16に示された暗号文を含む照合登録情報に関して、該登録データに含まれる要素の値を乱数S乗した値(式50)を算出する。
Next, the
(c1[1][1]{S},c1[1][2]{S})(すなわち、Enc(pk,S×x[1])、c2[1]),
・・・,
(c1[n][1]{S},c1[n][2]{S})(すなわち、Enc(pk,S×x[n])、c2[n]),
(cc1[1]{S},cc1[2]{S})(すなわち、Enc(pk,S×(x[1]{2}+・・・+x[n]{2})、cc2)・・・(式50)。
(C1 [1] [1] {S} , c1 [1] [2] {S} ) (ie, Enc (pk, S × x [1]), c2 [1]),
...
(C1 [n] [1] {S} , c1 [n] [2] {S} ) (ie, Enc (pk, S × x [n]), c2 [n]),
(Cc1 [1] {S} , cc1 [2] {S} ) (ie, Enc (pk, S × (x [1] {2} +... + X [n] {2} ), cc2). (Equation 50)
ただし、暗号文c1[i]は、(c1[i][1],c1[i][2])である。iは、自然数を表す。 However, the ciphertext c1 [i] is (c1 [i] [1], c1 [i] [2]). i represents a natural number.
この処理によって、照合準備部621は、該登録データを算出した基であるデータXに含まれている要素、及び、データXに関して式11に従い算出された二乗和に関して、それぞれ、乱数S倍された値が、公開鍵pkを用いて暗号化された値(式15)を算出する(ステップSD7)。照合準備部621は、算出した値(式15)を含む照合登録情報(式16)を作成する(ステップSD8)。ステップSD7によって、照合準備部621は、該二乗和がS倍された値が暗号化された暗号化第1データ(式15におけるcc2)も算出している。
By this processing, the
照合要求装置612における暗号化第2データ部614は、対象データY、及び、照合準備部621が送信した照合登録情報を受信する(ステップ(SD9−2))。暗号化第2データ部614は、上述したステップS101乃至ステップS104に示す処理を実行することによって、暗号化第2情報(c2[0],cc3)を作成する(ステップSD11)。すなわち、暗号化第2情報は、暗号化乱数c2[0]と、暗号化第2データcc3とを含む。
The encrypted
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の場合の例を参照しながら、ステップSD11に示した処理について説明する。 For example, the process shown in step SD11 will be described with reference to an example of a modified-Elgamal cipher that is one of public key ciphers having homomorphism with respect to addition.
この場合に、暗号化第2データ部614は、たとえば、受信したデータY(式19)における各要素の2乗和を算出することにより、受信した対象データYの大きさを算出する。次に、暗号化第2データ部614は、式16に示された照合登録情報の中の暗号化乱数c2[0]を読み取り、読み取った暗号化乱数が該大きさ乗された値(式20)を算出する。
In this case, the encrypted
次に、暗号化第2データ部614は、照合登録情報に含まれている第i要素と、読み取り、対象データYに含まれている第i要素と読み取る。暗号化第2データ部614は、照合登録情報(式16)に含まれている第i要素が、「−2×対象データYに含まれている第i要素」乗された値(式21)を算出する。ただし、iは、自然数を表す。
Next, the encrypted
暗号化第2データ部614は、暗号化乱数c2[0]と、算出した暗号化第2データcc3(式22)とを含む暗号化第2情報(c2[0],cc3)を作成する。暗号化第2データ部614は、作成した暗号化第2情報を、照合要求装置612における暗号化第2集合部615に送信する。
The encrypted
照合要求装置612における暗号化第2集合部615は、暗号化第2データ部614が送信した暗号化第2情報(c2[0],cc3)を受信する。暗号化第2集合部615は、閾値tを読み取り、「−t」から「−1」に至る整数値を算出する。次に、暗号化第2集合部615は、受信した暗号化第2情報の中の暗号化乱数c2[0]の該整数値乗を算出する。この処理よって、暗号化第2集合は、(S×(−t))から(S×(−1))に至る各値(S×i)(ただし、iは、−tから−1に至る整数)が暗号化した値が算出される。暗号化第2集合は、算出した各値と、暗号化第2データcc3と掛け算する(式23)。暗号化第2集合部615は、算出した各値を含む暗号化第2集合(式24)を作成する(ステップSD12)。暗号化第2マスク部616は、作成したマスク値集合、及び、作成した暗号化第2集合を、照合要求装置612における暗号化第2マスク部616に送信する。
The encrypted
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の例を用いながら、ステップSD12における処理について説明する。この場合に、暗号化第2集合部615は、暗号化第2情報(c2[0],cc3)を受信する。次に、暗号化第2集合部615は、閾値tを読み取り、暗号化第2情報の中の暗号化乱数c2[0]に関して、「−t」から「−1」に至る各整数値のべき乗を表す値を算出する。次に、暗号化第2集合部615は、算出した値と、暗号化第2情報の中の暗号化第2データcc3とを掛け算した値を算出する(式25)。暗号化第2集合部615は、算出した値を含む暗号化第2集合(cc4[0],・・・,cc4[t])を作成する(ステップSD12)。暗号化第2集合部615は、作成した暗号化第2集合を、照合要求装置612における暗号化第2マスク部616に送信する。
For example, the processing in step SD12 will be described using an example of the modified-elgamal cipher that is one of public key ciphers having homomorphism with respect to addition. In this case, the encrypted
照合要求装置612における暗号化第2マスク部616は、暗号化第2集合部615が送信した暗号化第2集合を受信する。暗号化第2マスク部616は、たとえば、擬似乱数を算出する手順に従い、(t+1)個の乱数R[0]、・・・、R[t]を算出する。この場合に、暗号化第2マスク部616は、算出した乱数が関連付けされたマスク値集合(R[0],・・・,R[t])を作成してもよい。次に、暗号化第2マスク部616は、算出した乱数R[i](ただし、0≦i≦t)を、公開鍵pkを用いて暗号化することにより、乱数R[i]が暗号化された暗号文Enc(pk,R[i])を作成する。次に、暗号化第2マスク部616は、受信した暗号化第2集合に含まれている要素cc4[i]と、算出した暗号文Enc(pk,R[i])とを掛け算した値(式27)を算出する。すなわち、暗号化第2マスク部616は、1≦i≦nなるiに関して、式27に従い、式29に示された値を算出する。暗号化第2マスク部616は、算出した値(式29)を含む暗号化第2マスク(cc5[0],・・・,cc5[t])を作成する(ステップSD13)。暗号化第2マスク部616は、作成した暗号化第2マスクを、照合要求装置612における照合データ部618に送信する。暗号化第2マスク部616は、マスク値集合(R[0],・・・,R[t])を検証マスク部617に送信する。
The encrypted
加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の例を用いて、ステップSD13における処理について説明する
この例の場合に、暗号化第2マスク部616は、暗号化第2集合部615が送信した暗号化第2集合を受信する。次に、暗号化第2マスク部616は、たとえば、擬似乱数を算出する手順に従い、(t+1)個の乱数R[0]、・・・、R[t]を算出する。次に、暗号化第2マスク部616は、算出した乱数R[i](ただし、0≦i≦t)を算出し、算出した値を、公開鍵pkを用いて暗号化することにより、乱数R[i]が暗号化されたEnc(pk,R[i])を作成する。すなわち、暗号化第2マスク部616は、公開鍵pkから、生成元gと、値yとを読み取り、集合Zpから第8値ru[i]を選ぶ。次に、暗号化第2マスク部616は、式51に従い、乱数R[i]が暗号化されたEnc(pk,R[i])を作成する。
The process in step SD13 will be described using an example of the modified-elgamal cipher that is one of the public key ciphers having homomorphism with respect to the addition. In this example, the encryption
(g{ru[i]},y{ru[i]}×g{R[i]})
=Enc(pk,R[i])・・・(式51)。
(G {ru [i]} , y {ru [i]} × g {R [i]} )
= Enc (pk, R [i]) (Formula 51).
次に、暗号化第2マスク部616は、受信した暗号化第2集合に含まれている暗号文cc4[i]と、算出した暗号文Enc(pk,R[i])とを掛け算した値(式52)を算出する。
Next, the encryption
cc4[0]*Enc(pk,R[0]),
・・・,
cc4[t]*Enc(pk,R[t])・・・(式52)。
cc4 [0] * Enc (pk, R [0]),
...
cc4 [t] * Enc (pk, R [t]) (Formula 52).
照合要求装置612における暗号化第2マスク部616は、算出した値を含む暗号化第2マスク(cc5[1],・・・cc5[t])を作成し(ステップSD13)、作成した暗号化第2マスクを、照合要求装置612における照合データ部618に送信する。暗号化第2マスク部616は、マスク値集合(R[0],・・・,R[t])を、照合要求装置612における検証マスク部617に送信する。
The encryption
照合要求装置612における検証マスク部617は、暗号化第2マスク部616が送信したマスク値集合(R[0],・・・,R[t])を受信する。検証マスク部617は、公開鍵pkに含まれている生成元gを読み取り、該マスク値集合に含まれている値(乱数R[i]と表す)に関して、それぞれ、読み取った生成元gがR[i]乗された値を算出する。この処理によって、検証マスク部617は、乱数R[i]が暗号化された暗号文を算出する。ただし、0≦i≦tである。次に、検証マスク部617は、算出した暗号文を入力としてハッシュ関数Hを適用することにより、該値に対するハッシュ値H(g{R[i]})(=h1[i])を算出する。すなわち、検証マスク部617は、該暗号文に関するハッシュ値(式35)を算出する。検証マスク部617は、算出したハッシュ値を含む検証マスク(h1[0],・・・,h1[t])を作成する(ステップSD14)。検証マスク部617は、作成した検証マスクを、照合要求装置612における照合データ部618に送信する。
The
照合要求装置612における照合データ部618は、暗号化第2集合部615が送信した暗号化第2マスク(cc5[0],・・・,cc5[t])を受信する。照合データ部618は、さらに、検証マスク部617が送信した検証マスク(h1[0],・・・,h1[t])を受信する。
The
照合データ部618は、0からtに至る値(以降、[0,t]と表す)に関する順列πをランダムに作成する。次に、照合データ部618は、作成した順列πに従い、受信した暗号化第2集合に含まれている要素の順序を並び替え、作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える。この処理によって、照合データ部618は、暗号化第2集合における順序が並び替えられた(cc6[0],・・・,cc6[t])、及び、検証マスクにおける順序が並び替えられた(h2[0],・・・,h2[t])を算出する。
The
次に、照合データ部618は、算出したcc6[i]と、算出したh2[i]とが関連付けされた情報を作成し、さらに、区間[0,t]に含まれているiに関して、該情報を含む照合データ(式38)を作成する(ステップSD15)。照合データ部618は、作成した照合データを、検証装置624における検証データ生成部623に送信する(ステップ(SD16−1))。
Next, the
検証装置624における検証データ生成部623は、照合準備部621が送信した暗号化第1データcc2を受信し(ステップ(SD10−2))、さらに、照合データ部618が送信した照合データ(たとえば、式38に示された値)を受信する(ステップ(SD16−2))。検証データ生成部623は、たとえば、受信した照合データに含まれている値cc6[i](ただし、0≦i≦t)を読み取り、読み取った値cc6[i]と、受信した暗号化第1データcc2とが掛け算された値cc7[i](式39)を算出する。
The verification
検証データ生成部623は、算出した値cc7[i]と、受信した照合データに含まれているh2[i]とが関連付けされた情報(cc7[i],h2[i])を作成する。検証データ生成部623は、0≦i≦tなるiに対して、作成した情報を含む検証データ(式43)を作成する(ステップSD17)。
The verification
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の例を用いながら、ステップSD17における処理について説明する。この場合に、検証データ生成部623は、受信した照合データに含まれている値cc6[i](ただし、0≦i≦t)を読み取り、読み取った値cc6[i]と、受信した暗号化第1データcc2とが掛け算された値(すなわち、cc2*cc6[i])を算出する。したがって、0≦i≦tなるiに対して、検証データ生成部623は、式39に示す値(すなわち、cc7[0]乃至cc7[t])を算出する。
For example, the processing in step SD17 will be described using an example of Modified-Elgamal cipher that is one of public key ciphers having homomorphism regarding addition. In this case, the verification
検証データ生成部623は、算出したcc7[i]と、受信した照合データに含まれているh2[i]とが関連付けされた情報(cc7[i],h2[i])を作成する。検証データ生成部623は、0≦i≦tなるiに対して、作成した情報を含む検証データを作成する。検証データ生成部623は、作成した検証データ(たとえば、式43)を、検証装置624における検証データ復号部510に送信する。
The verification
検証装置624における検証データ復号部510は、検証データ生成部623が送信した検証データ(たとえば、式43)を受信し、鍵記憶部509から秘密鍵skを読み取る。次に、検証データ復号部510は、検証データに含まれている暗号文cc7[i](ただし、0≦i≦t)を読み取り、秘密鍵skを用いて読み取った暗号文cc7[i]を復号することによって、値dd1[i](式45)を算出する。
The verification
検証装置624における検証データ復号部510は、算出したdd1[i]と、検証データに含まれているh2[i]とが関連付けされた情報(dd1[i],h2[i])を作成する。次に、検証データ復号部510は、0≦i≦tなるiに関して作成した情報が含まれている復号後検証データ(式47)を作成する(ステップSD17)。検証データ生成部623は、作成した復号後検証データを、検証装置624における検証部511に送信する。
The verification
以降、ステップSC18乃至ステップSC22に示された処理と同様の処理が実行されるので、ステップSD18乃至ステップSD22に関する説明を省略する。 Thereafter, processing similar to that shown in steps SC18 to SC22 is executed, and thus the description regarding steps SD18 to SD22 is omitted.
次に、第5の実施形態に係る照合システム601に関する効果について説明する。
Next, effects related to the
第5の実施形態に係る照合システム601によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。さらに、第5の実施形態に係る照合システム601によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、第5の実施形態に係る照合システム601が、第2の実施形態に係る照合システム201が有する構成を含むからである。
According to the
さらに、第5の実施形態に係る照合システム601によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果も奏する。さらに、第5の実施形態に係る照合システム601によれば、たとえ、照合要求装置612が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果も奏する。
Furthermore, according to the
この理由は、第5の実施形態に係る照合システム601が有する構成が、第2の実施形態に係る照合システム201が有する構成を含むからである。
This is because the configuration of the
さらに、第5の実施形態に係る照合システム601によれば、該照合システム601における処理負荷が少ないという効果を奏する。
Furthermore, according to the
この理由は、暗号化登録情報に含まれている情報量が、少ないからである。すなわち、暗号化登録情報は、登録データがn個の要素を含む場合に、該登録データに関する暗号化登録情報は、(n+1)個の要素が暗号化された暗号文であるからである。 This is because the amount of information included in the encrypted registration information is small. That is, when the registration data includes n elements, the encryption registration information is encrypted text with (n + 1) elements encrypted when the registration data includes n elements.
尚、本実施形態においては、ユークリッド距離の例を挙げたが、他の距離(たとえば、ハミング距離、マハラノビス距離等)にも容易に適用可能である。 In the present embodiment, an example of the Euclidean distance has been described. However, the present embodiment can be easily applied to other distances (for example, a Hamming distance, a Mahalanobis distance, etc.).
<第6の実施形態>
次に、上述した第3の実施形態を基本とする本発明の第6の実施形態について説明する。
<Sixth Embodiment>
Next, a sixth embodiment of the present invention based on the above-described third embodiment will be described.
以降の説明においては、本実施形態に係る特徴的な部分を中心に説明すると共に、上述した第3の実施形態、または、第4の実施形態と同様な構成については、同一の参照番号を付すことにより、重複する説明を省略する。 In the following description, the characteristic portions according to the present embodiment will be mainly described, and the same reference numerals are assigned to the same configurations as those in the third embodiment or the fourth embodiment described above. Therefore, the overlapping description is omitted.
図18を参照しながら、本発明の第6の実施形態に係る照合システム801が有する構成について詳細に説明する。図18は、本発明の第6の実施形態に係る照合システム801が有する構成を示すブロック図である。
With reference to FIG. 18, the configuration of the
第6の実施形態に係る照合システム801は、大別して、登録データ装置502と、照合要求装置812と、記憶装置504と、照合装置823と、検証装置822とを有する。
The
登録データ装置502は、暗号化部503を有する。
The registered
記憶装置504は、識別子管理部506と、登録データ情報記憶部505と、登録データ検索部507とを有する。
The
検証装置822は、鍵生成部508と、鍵記憶部509と、検証データ復号部510と、検証部511と、検証データ生成部811とを有する。
The
照合装置823は、照合登録情報要求部815と、照合準備部816と、判定部817と、暗号化第1集合部818と、暗号化第1マスク部819と、検証マスク部820と、照合データ部821とを有する。
The
登録データ装置502と、照合要求装置812と、記憶装置504と、照合装置823と、検証装置822とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。
It is assumed that the
照合要求装置812は、照合要求部813と、暗号化第2データ部814とを有する。
The
本実施形態においては、距離としてn次元ユークリッド距離の場合の例を参照しながら、本実施形態に係る照合システム801における処理について説明する。また、本実施形態では、加法に関して準同型性を有する公開鍵暗号としてModified−Elgamal暗号を用いる場合の例を参照しながら該処理について説明するが、Paillier暗号等の他の加法に関して準同型性を有する暗号を利用しても構わない。尚、本実施形態において、n次元ユークリッド距離およびModified−Elgamal暗号は、第4の実施形態におけるn次元ユークリッド距離およびModified−Elgamal暗号と同様であるので、これらの説明については省略する。
In the present embodiment, processing in the
次に、本発明の第6の実施形態に係る照合システム801における処理について詳細に説明する。照合システム801における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。
Next, processing in the
本実施形態に係る照合システム801に関する準備フェーズにおける処理は、第4の実施形態に係る照合システム501に関する準備フェーズにおける処理と同様である。このため、本実施形態に係る照合システム801に関する準備フェーズにおける処理に関する説明を省略する。さらに、本実施形態に係る照合システム801に関する登録フェーズにおける処理は、第4の実施形態に係る照合システム501に関する登録フェーズにおける処理と同様である。このため、本実施形態に係る照合システム801に関する登録フェーズにおける処理に関する説明を省略する。
The processing in the preparation phase related to the
図19A及び図19Bを参照しながら、本実施形態に係る照合システム801が、照合フェーズにて実行する処理について説明する。図19A及び図19Bは、照合フェーズにおいて、第6の実施形態に係る照合システム801が実行する処理の一例を示すシーケンス図である。
Processing performed in the verification phase by the
照合要求装置812における照合要求部813は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部813は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップSF1)。照合要求部813は、作成した該照合要求を、照合装置823における照合登録情報要求部815に送信する(ステップ(SF2−1))。照合要求は、たとえば、該登録識別子を含む。
The
照合装置823における照合登録情報要求部815は、照合要求部813が送信した照合要求を受信し(ステップ(SF2−2))、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部815は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップSF3)、作成した該登録データ要求を、記憶装置504における登録データ検索部507に送信する(ステップ(SF4−1))。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。
The verification registration
記憶装置504における登録データ検索部507は、照合登録情報要求部815が送信した登録データ要求を受信する(ステップ(SF4−2))。登録データ検索部507は、登録データ情報(たとえば、登録データ情報記憶部505に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップSF5)。登録データ検索部507は、特定した暗号化登録情報を、照合装置823における照合準備部816に送信する(ステップ(SF6−1))。
The registration
照合装置823における照合準備部816は、登録データ検索部507が送信した暗号化登録情報(c1[1],・・・,c1[n],cc1)を受信する(ステップ(SF6−2))。尚、cc1は、暗号化第1指標を表す。照合準備部816は、たとえば、擬似乱数を算出する手順に従い乱数Sを算出し、受信した暗号化登録情報における各要素が該乱数S乗された値を算出することによって、暗号文(c2[1],・・・,c2[n],cc2)を作成する。すなわち、照合準備部816は、各要素が該乱数乗された値を算出することによって、暗号化登録情報の基である登録データの各要素を乱数倍した値が暗号化された値、及び、該登録データに関する第1指標を乱数倍した値が暗号化された暗号化第1データcc2を算出する(ステップSF7)。
The
照合準備部816は、乱数Sを暗号化することによって算出される暗号化乱数c2[0]を作成する。照合準備部816は、暗号化登録情報の基である登録データの各要素が暗号化された値(c2[1],・・・,c2[n])と、作成した暗号化乱数c2[0]とを含む照合登録情報(c2[0],c2[1],・・・,c2[n])を作成する(ステップSF8)。照合準備部816は、作成した照合登録情報を照合要求装置812における暗号化第2データ部814に送信する(ステップ(SF9−1))。
The
照合準備部816は、算出した暗号化第1データcc2と、乱数Sが暗号化された暗号化乱数c2[0]とを含む暗号化第1データ情報(式56)を作成し、作成した暗号化第1データ情報を、照合装置823における暗号化第1集合部818に送信する。
The
たとえば、暗号化第1データ情報は、式56に示す態様によって表すことができる。 For example, the encrypted first data information can be expressed by the form shown in Expression 56.
(c2[0],cc2)・・・(式56)。 (C2 [0], cc2) (Formula 56).
照合要求装置812における暗号化第2データ部814は、対象データY、及び、照合準備部816が送信した照合登録情報(c2[0],c2[1],・・・,c2[n])を受信する(ステップ(SF9−2))。暗号化第2データ部814は、ステップS101乃至ステップS104に示した処理と同様の処理を実行することにより、暗号化第2データcc3を算出する(ステップSF10)。暗号化第2データ部814は、算出した暗号化第2データcc3を、照合装置823における検証データ生成部811に送信する(ステップ(SF11−1))。
The encrypted
次に、照合装置823における暗号化第1集合部818は、照合準備部816が送信した暗号化第1データ情報(c2[0],cc2)を受信する。暗号化第1集合部818は、受信した暗号化第1データ情報から、暗号化乱数c2[0]を読み取り、読み取った暗号化乱数c2[0]に関して、「−t」から「−1」に至る各整数値のべき乗を表す値を算出する。尚、tは、受理可能か否かを判定する基準を表す閾値tである。次に、暗号化第1集合部818は、たとえば、算出した値と、受信した暗号化第1データ情報に含まれている暗号化第1データcc2とを掛け算した値(式57、すなわち、暗号文)を算出する。
Next, the
暗号化第1集合部818が暗号文を算出する処理は、たとえば、式57として表すことができる。
The process in which the encryption
(cc2[0]×c2[0]{−1},cc2[1]×c2[1]{−1}),
(cc2[0]×c2[0]{−2},cc2[1]×c2[1]{−2}),
・・・,
(cc2[0]×c2[0]{−t},cc2[1]×c2[1]{−t})・・・(式57)。
(Cc2 [0] × c2 [0] {− 1} , cc2 [1] × c2 [1] {− 1} ),
(Cc2 [0] × c2 [0] {− 2} , cc2 [1] × c2 [1] {− 2} ),
...
(Cc2 [0] × c2 [0] {− t} , cc2 [1] × c2 [1] {− t} )) (Formula 57).
uは、1からtまでの整数値のうち1つの整数値を表すとする。この場合に、式57における1つの値は、式58に等価である。 u represents one integer value among integer values from 1 to t. In this case, one value in Equation 57 is equivalent to Equation 58.
(cc2[0]×c2[0]{−u},cc2[1]×c2[1]{−u})
=Enc(pk,S×(x[1]{2}+・・・+x[n]{2})*Enc(pk,S){−u}
=Enc(pk,S×(x[1]{2}+・・・+x[n]{2})*Enc(pk,−S×u)
=Enc(pk,S×(x[1]{2}+・・・+x[n]{2}−S×u)・・・(式58)。
(Cc2 [0] × c2 [0] {− u} , cc2 [1] × c2 [1] {− u} )
= Enc (pk, S × (x [1] {2} +... + X [n] {2} ) * Enc (pk, S) {−u}
= Enc (pk, S × (x [1] {2} +... + X [n] {2} ) * Enc (pk, −S × u)
= Enc (pk, S × (x [1] {2} +... + X [n] {2} −S × u) (Expression 58).
尚、説明の便宜上、式57に従い算出される値をff4[u]と表す。したがって、暗号化第1集合部818が算出する値は、式59に示す値である。
For convenience of explanation, the value calculated according to Expression 57 is represented as ff4 [u]. Therefore, the value calculated by the encrypted
ff4[1](=Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×1)),
・・・,
ff4[t](=Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×t))・・・(式59)。
ff4 [1] (= Enc (pk, S × (x [1] {2} +... + x [n] {2} ) − S × 1)),
...
ff4 [t] (= Enc (pk, S × (x [1] {2} +... + x [n] {2} ) − S × t)) (Formula 59).
さらに、暗号化第1集合部818は、受信した暗号化第1データ情報に含まれている暗号化第1データcc2を、ff4[0]に設定する。
Further, the encrypted
暗号化第1集合部818は、算出した値(すなわち、ff4[0]乃至ff4[t])を含む暗号化第1集合を作成する(ステップSF12)。たとえば、暗号化第1集合部818が作成する暗号化第1集合は、式60に示すような態様にて表すことができる。したがって、
(ff4[0],・・・,ff4[t])・・・(式60)。
The first encryption set
(Ff4 [0],..., Ff4 [t]) (Equation 60).
暗号化第1集合部818は、作成した暗号化第1集合を、照合装置823における暗号化第1マスク部819に送信する。
The first encryption set
照合装置823における暗号化第1マスク部819は、暗号化第1集合部818が送信した暗号化第1集合(たとえば、式60)を受信する。次に、暗号化第1マスク部819は、たとえば、擬似乱数を算出する手順に従い、(t+1)個の乱数R[0]、・・・、R[t]を算出する。この場合に、暗号化第1マスク部819は、算出した乱数を含むマスク値集合(R[0],・・・,R[t])を作成してもよい。
The encrypted
暗号化第1マスク部819は、算出した乱数R[i](ただし、0≦i≦t)を、公開鍵pkを用いて暗号化することにより、乱数R[i]が暗号化されたEnc(pk,R[i])を作成する。暗号化第1マスク部819は、受信した暗号化第1集合に含まれている暗号文ff4[i]と、算出した暗号文Enc(pk,R[i])とを掛け算した値(式61)を算出する。
The encrypted
Enc(pk,R[i])*ff4[i]・・・(式61)。 Enc (pk, R [i]) * ff4 [i] (Equation 61).
尚、式61は式62に等価である。 Equation 61 is equivalent to Equation 62.
Enc(pk,R[i])*ff4[i]
=Enc(pk,R[i])*Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×i)
=Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×i+R[i])・・・(式62)。
Enc (pk, R [i]) * ff4 [i]
= Enc (pk, R [i]) * Enc (pk, S × (x [1] {2} +... + X [n] {2} ) − S × i)
= Enc (pk, S * (x [1] {2} + ... + x [n] {2} )-S * i + R [i]) (Expression 62).
以降、式62に従い算出された値(暗号文)をff5[i]と表す。 Hereinafter, the value (ciphertext) calculated according to Equation 62 is represented as ff5 [i].
より具体的に、暗号化第1マスク部819は、1≦i≦tなるiに関して、式63に従い、値を算出する。すなわち、
Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×0+R[0]),
・・・,
Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×t+R[t])・・・(式63)。
More specifically, the encryption
Enc (pk, S × (x [1] {2} +... + X [n] {2} ) −S × 0 + R [0]),
...
Enc (pk, S × (x [1] {2} +... + X [n] {2} ) −S × t + R [t]) (Equation 63).
暗号化第2マスク部は、算出した値(式63)を含む暗号化第1マスクを作成する(ステップSF13)。 The encryption second mask unit creates an encryption first mask including the calculated value (formula 63) (step SF13).
加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の例を用いて、ステップSF13における処理について説明する。 The process in step SF13 will be described using an example of a modified-Elgamal cipher that is one of public key ciphers having homomorphism with respect to addition.
この例の場合に、暗号化第1マスク部819は、暗号化第1集合部818が送信した暗号化第1集合を受信する。暗号化第1マスク部819は、たとえば、擬似乱数を算出する手順に従い、(t+1)個の乱数R[0]、・・・、R[t]を算出する。暗号化第1マスク部819は、算出した乱数R[i](ただし、0≦i≦t)を、公開鍵pkを用いて暗号化することにより、乱数R[i]が暗号化されたEnc(pk,R[i])を作成する。すなわち、暗号化第1マスク部819は、公開鍵pkから、生成元gと、値yとを読み取り、所定の集合Zpから第8値ru[i]を選ぶ。次に、暗号化第1マスク部819は、式64に従い、乱数R[i]が暗号化されたEnc(pk,R[i])を作成する、
(g{ru[i]},y{ru[i]}×gR[i])・・・(式64)。
In this example, the encrypted
(G {ru [i]} , y {ru [i]} × g R [i] ) (Expression 64).
次に、暗号化第1マスク部819は、受信した暗号化第1集合に含まれている暗号文ff4[i]と、算出した暗号文Enc(pk,R[i])とを掛け算した値(式65)を算出する。ステップSF13における処理は、受信した暗号化第1集合に含まれている暗号文ff4[i]と、算出した暗号文Enc(pk,R[i])とを掛け算した値(式65)を算出する処理とも表すことができる。
Next, the encrypted
ff4[0]*Enc(pk,R[0]),
・・・,
ff4[t]*Enc(pk,R[t])・・・(式65)。
ff4 [0] * Enc (pk, R [0]),
...
ff4 [t] * Enc (pk, R [t]) (Expression 65).
尚、式65に示されたff4[i]*Enc(pk,R[i])は、式66に示す式と等価である。 Note that ff4 [i] * Enc (pk, R [i]) shown in Expression 65 is equivalent to the expression shown in Expression 66.
=Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×i)*Enc(pk,R[i])
=Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×i+R[i])・・・(式66)。
= Enc (pk, S × (x [1] {2} +... + X [n] {2} ) − S × i) * Enc (pk, R [i])
= Enc (pk, S * (x [1] {2} + ... + x [n] {2} )-S * i + R [i]) (Formula 66).
したがって、この場合に、式65に示された値の集合は、式67に示された値の集合と等価である。 Therefore, in this case, the set of values shown in Equation 65 is equivalent to the set of values shown in Equation 67.
ff4[0]*Enc(pk,R[0])
=Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×0+R[0])
=ff5[0],
・・・,
ff4[t]*Enc(pk,R[t])
=Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×t+R[t])
=ff5[t]・・・(式67)。
ff4 [0] * Enc (pk, R [0])
= Enc (pk, S × (x [1] {2} +... + X [n] {2} ) −S × 0 + R [0])
= Ff5 [0],
...
ff4 [t] * Enc (pk, R [t])
= Enc (pk, S × (x [1] {2} +... + X [n] {2} ) −S × t + R [t])
= Ff5 [t] (Expression 67).
暗号化第1マスク部819は、式65に従い算出した値を含む暗号化第1マスク(ff5[0],・・・,ff5[t])を作成し(ステップSF13)、作成した暗号化第1マスクを、照合装置823における検証データ生成部811に送信する。暗号化第1マスク部819は、マスク値集合(R[0],・・・,R[t])を、照合装置823における検証マスク部820に送信する。
The encryption
次に、照合装置823における検証マスク部820は、暗号化第1マスク部819が送信したマスク値集合(R[0],・・・,R[t])を受信する。検証マスク部820は、受信したマスク値集合から要素の値を読み取り、公開鍵に含まれる生成元gを「読み取った値」乗した値を算出する。ただし、0≦i≦tである。検証マスク部820は、算出した暗号文を入力として、ハッシュ関数を適用することにより、ハッシュ値H(gR[i])(=h1[i])を算出する。検証マスク部820は、算出したハッシュ値を含む検証マスク(h1[0],・・・,h1[t])を作成し(ステップSF14)、作成した検証マスクを、照合装置823における検証データ生成部811に送信する。
Next, the
次に、照合装置823における照合データ部821は、検証マスク部820が送信した検証マスク(h1[0],・・・,h1[t])、及び、暗号化第1マスク部819が送信した暗号化第1マスク(ff5[0],・・・,ff5[t])を受信する。照合データ部821は、0からtに至る値(以降、[0,t]と表す)に関する順列πをランダムに作成する。ただし、tは、閾値を表す。照合データ部821は、作成した順列πに従い、受信した暗号化第1マスクに含まれている要素の順序を並び替え、作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える。
Next, the
説明の便宜上、作成した該順列πに従い、暗号化第1マスクに含まれている要素の順序を並び替える処理を、ff5[π(i)]と表す。作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える処理を、h1[π(i)]と表す。また、ff5[π(i)]をff6[i]と表す。h1[π(i)]を、h2[i]と表す。 For convenience of explanation, processing for rearranging the order of elements included in the encrypted first mask in accordance with the generated permutation π is represented as ff5 [π (i)]. A process of rearranging the order of elements included in the received verification mask according to the generated permutation π is represented as h1 [π (i)]. Further, ff5 [π (i)] is represented as ff6 [i]. h1 [π (i)] is represented as h2 [i].
次に、照合データ部821は、算出したff6[i]と、算出したh2[i]とが関連付けされた情報(ff6[i],h2[i])を作成し、さらに、区間[0,t]に含まれているiに関して、該情報を含む照合データを作成する(ステップSF15)。照合データ部821が作成する照合データは、たとえば、式68に示された態様を用いて表すことができる。
Next, the
((ff6[0],h2[0]),・・・,(ff6[t],h2[t]))・・・(式68)。 ((Ff6 [0], h2 [0]),..., (Ff6 [t], h2 [t])) (Expression 68).
照合データ部821は、作成した照合データ(たとえば、式68に示された値)を、検証装置822における検証データ生成部811に送信する(ステップ(SF16−1))。
The
次に、検証装置822における検証データ生成部811は、照合データ部821が送信した照合データを受信し(ステップ(SF16−2))、及び、暗号化第2データ部814が送信した暗号化第2データcc3を受信する(ステップ(SF11−2))。検証データ生成部811は、受信した照合データに含まれている要素ff6[i](ただし、0≦i≦t)を読み取り、読み取ったff6[i]と、受信した暗号化第2データcc3とが掛け算された値(式69)を算出する。
Next, the verification
Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−S×π(i)+R[π(i)])*Enc(pk,−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2}))・・・(式69)。 Enc (pk, S × (x [1] {2} +... + X [n] {2} ) − S × π (i) + R [π (i)]) * Enc (pk, −2 × S × (x [1] × y [1] +... + X [n] × y [n]) + S × (y [1] {2} +... + Y [n] {2} )) (Formula 69).
検証データ生成部811が算出する値(式69)は、以下の式70と等価である。
A value (formula 69) calculated by the verification
Enc(pk,S×(x[1]{2}+・・・+x[n]{2})−2×S×(x[1]×y[1]+・・・+x[n]×y[n])+S×(y[1]{2}+・・・+y[n]{2})−S×π(i)+R[π(i)])
=Enc(pk,S×((x[1]{2}+・・・+x[n]{2})−2×(x[1]×y[1]+・・・+x[n]×y[n])+(y[1]{2}+・・・+y[n]{2}))−S×π(i)+R[π(i)])
=Enc(pk,S×((x[1]−y[1]){2}+・・・+(x[n]−y[n]){2})−S×π(i)+R[π(i)])
=Enc(pk,S×D(X,Y)−S×π(i)+R[π(i)])・・・(式70)。
Enc (pk, S × (x [1] {2} +... + X [n] {2} ) −2 × S × (x [1] × y [1] +... + X [n] × y [n]) + S × (y [1] {2} +... + y [n] {2} ) −S × π (i) + R [π (i)])
= Enc (pk, S × ((x [1] {2} +... + X [n] {2} ) −2 × (x [1] × y [1] +... + X [n] × y [n]) + (y [1] {2} +... + y [n] {2} )) − S × π (i) + R [π (i)])
= Enc (pk, S × ((x [1] −y [1]) {2} +... + (X [n] −y [n]) {2} ) −S × π (i) + R [Π (i)])
= Enc (pk, S * D (X, Y) -S * [pi] (i) + R [[pi] (i)]) (Equation 70).
したがって、式70が式41と同じであるので、検証データ生成部811は、cc7[i]を算出する。
Therefore, since the equation 70 is the same as the equation 41, the verification
検証データ生成部811は、算出したcc7[i]と、受信した照合データに含まれているh2[i]とが関連付けされた情報(cc7[i],h2[i])を作成する。検証データ生成部811は、0≦i≦tなるiに対して、作成した情報を含む検証データを作成する(ステップSF17)。たとえば、検証データ生成部811が作成する検証データは、式43に示す態様にて表すことができる。
The verification
たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の例を用いながら、ステップSF17における処理について説明する。 For example, the processing in step SF17 will be described using an example of Modified-Elgamal cipher that is one of public key ciphers having homomorphism with respect to addition.
この場合に、検証データ生成部811は、受信した照合データに含まれているff6[i](ただし、0≦i≦t)を読み取り、読み取ったff6[i]と、受信した暗号化第2データcc3とが掛け算された値(すなわち、cc3*ff6[i])を算出する。したがって、0≦i≦tなるiに対して、検証データ生成部811は、式71に示す値を算出する。
In this case, the verification
cc3*ff6[0](この値は、Enc(pk,S×D(X,y)−S×π(0)+R[π(0)])と等価である),
・・・,
cc3*ff6[t](この値は、Enc(pk,S×D(X,y)−S×π(t)+R[π(t)])と等価である)・・・(式71)。
cc3 * ff6 [0] (this value is equivalent to Enc (pk, S × D (X, y) −S × π (0) + R [π (0)])),
...
cc3 * ff6 [t] (this value is equivalent to Enc (pk, S × D (X, y) −S × π (t) + R [π (t)])) (Equation 71) .
検証データ生成部811は、算出したcc7[i]と、受信した照合データに含まれているh2[i]とが関連付けされた情報(cc7[i],h2[i])を作成する。検証データ生成部811は、0≦i≦tなるiに対して、作成した情報を含む検証データを作成する。検証データ生成部811は、作成した検証データ(たとえば、式43)を、検証装置822における検証データ復号部510に送信する。
The verification
以降、ステップSC18乃至ステップSC22に示された処理と同様の処理が実行されるので、ステップSF18乃至ステップSF22に関する説明を省略する。 Thereafter, processing similar to the processing shown in steps SC18 to SC22 is executed, and thus the description regarding steps SF18 to SF22 is omitted.
次に、第6の実施形態に係る照合システム801に関する効果について説明する。
Next, effects related to the
第6の実施形態に係る照合システム801によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。さらに、第6の実施形態に係る照合システム801によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、第6の実施形態に係る照合システム801が、第3の実施形態に係る照合システム401が有する構成を含むからである。
According to the
さらに、第6の実施形態に係る照合システム801によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果も奏する。さらに、第6の実施形態に係る照合システム801によれば、たとえ、照合要求装置812が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果も奏する。
Furthermore, according to the
この理由は、第6の実施形態に係る照合システム801が有する構成が、第3の実施形態に係る照合システム401が有する構成を含むからである。
This is because the configuration of the
さらに、第6の実施形態に係る照合システム801によれば、該照合システム801における処理負荷が少ないという効果を奏する。
Furthermore, according to the
この理由は、暗号化登録情報に含まれている情報量が、少ないからである。すなわち、暗号化登録情報は、登録データがn個の要素を含む場合に、該登録データに関する暗号化登録情報は、(n+1)個の要素が暗号化された暗号文であるからである。 This is because the amount of information included in the encrypted registration information is small. That is, when the registration data includes n elements, the encryption registration information is encrypted text with (n + 1) elements encrypted when the registration data includes n elements.
尚、本実施形態においては、ユークリッド距離の例を挙げたが、他の距離(たとえば、ハミング距離、マハラノビス距離等)にも容易に適用可能である。 In the present embodiment, an example of the Euclidean distance has been described. However, the present embodiment can be easily applied to other distances (for example, a Hamming distance, a Mahalanobis distance, etc.).
<第7の実施形態>
図20、及び、図21を参照しながら、本発明の第7の実施形態に係る指標算出システム901が有する構成について詳細に説明する。図20は、本発明の第7の実施形態に係る指標算出システム901が有する構成を示すブロック図である。図21は、第7の実施形態に係る指標算出システム901における処理の流れを示すフローチャートである。
<Seventh Embodiment>
The configuration of the
第7の実施形態に係る指標算出システム901は、第1指標算出部902と、第2指標算出部903とを有する。指標算出システム901は、さらに、記憶部904を有してもよい。
An
第1指標算出部902、及び、記憶部904は、たとえば、通信ネットワークを介して、相互に通信接続することができる。第2指標算出部903、及び、記憶部904は、たとえば、通信ネットワークを介して、相互に通信接続することができる。
The first
第1指標算出部902、及び、第2指標算出部903は、通信ネットワークを介して、相互に通信接続可能であってもよい。
The first
第1指標算出部902は、たとえば、外部等の装置から、複数の数値を含む第1数値列を受信し、受信した第1数値列に関する大きさを表すサイズ(説明の便宜上、「第1サイズ」と表す)を算出する(ステップS501)。第1指標算出部902は、受信した第1数値列に含まれている数値を、加法に関して準同型性を有する暗号方式に従い算出された暗号鍵を用いて暗号化することによって、第1数値列が暗号化された暗号化第1数値列を作成する(ステップS502)。第1指標算出部902は、算出した第1サイズを、該暗号鍵を用いて暗号化することにより、第1サイズが暗号化された暗号化第1指標を算出する(ステップS503)。第1指標算出部902は、作成した該暗号化第1数値列を記憶部904に格納する(ステップS504)。
The first
第2指標算出部903は、第1指標算出部902が作成した該暗号化第1数値列を記憶部904から読み取る(ステップS505)。第2指標算出部903は、たとえば、外部等の装置から、複数の数値を含む第2数値列を受信し、受信した第2数値列に関する大きさを表すサイズ(説明の便宜上、「第2サイズ」と表す)を算出する(ステップS506)。第2指標算出部903は、加法に関して準同型性を有する暗号方式に従い、読み取った暗号化第1数値列と、受信した第2数値列とに基づいて演算する(ステップS507)。言い換えれば、第2指標算出部903は、加法に関して準同型性を有する暗号方式に従い、読み取った暗号化第1数値列に、受信した第2数値列に含まれている数値に基づく演算を適用することによって、値(以降、「算出値」と表す)を算出する。第2指標算出部903は、該算出値と、算出した第2サイズとに基づき、加法準同型性を利用して「第1数値列及び第2数値列が類似している程度を表す値から第1サイズを引き算した値(第2指標)」の暗号文を表す暗号化第2指標を算出する(ステップS508)。
The second
本実施形態において、ステップS501及びステップS506にて算出されるサイズは、たとえば、式11等の式に従い算出される大きさ(長さ)を表す。また、ステップS507にて算出される算出値は、たとえば、式21等に示すように、暗号化第1数値列に含まれている第I(ただし、Iは、要素番号を表す)要素を、「−2×第2数値列に含まれる第I要素」乗することにより算出される値である。この場合に、第2指標算出部903が算出する暗号化第2指標は、「第1数値列及び第2数値列が類似している程度を表す値から第1サイズを引き算した値」が暗号化された暗号文を表す。この結果、第1指標算出部902が算出する暗号化第1指標と、第2指標算出部903が算出する暗号化第2指標と掛け算した値は、第1数値列と、第2数値列との間が類似している程度を表す類似度(たとえば、距離)が暗号化された値と等しい。
In the present embodiment, the size calculated in step S501 and step S506 represents a size (length) calculated according to an expression such as expression 11, for example. Further, the calculated value calculated in step S507 is, for example, the element I included in the encrypted first numerical sequence (where I represents the element number), as shown in
たとえば、第1指標算出部902は、本発明の各実施形態に示した登録データ装置等が有する機能を用いて実現することができる。また、第2指標算出部903は、本発明の各実施形態に示した暗号化第2データ部等が有する機能を用いて実現することができる。
For example, the first
次に、第7の実施形態に係る指標算出システム901が奏する効果について説明する。
Next, effects produced by the
第7の実施形態に係る指標算出システム901によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理を可能にする指標を算出することができる。
According to the
このような効果を奏する理由について説明する。第1指標算出部902、及び、第2指標算出部903が、たとえば、通信ネットワークを介して、上述したような処理における通信を実行する場合に、暗号化第1指標と、暗号化第2指標とは、複数の異なる主体にて、別々に算出される。したがって、この場合に、本実施形態に係る指標算出システム901によれば、第1数値列と、第2数値列との間の類似度を算出可能な、暗号化第1指標及び暗号化第2指標は、複数の異なる主体にて算出される。この結果、暗号化第1指標及び暗号化第2指標のうち、少なくとも一方が傍受されたとしても、第1数値列、第2数値列、または、類似度を復元することは不可能であるので、該暗号化第1指標及び暗号化第2指標に基づく照合処理において、情報が漏洩するリスクは軽減する。
The reason for such an effect will be described. For example, when the first
すなわち、第7の実施形態に係る指標算出システム901によれば、照合対象である情報と、参照すべき情報とのより安全な照合処理を可能になる指標を算出することができる。
That is, according to the
(ハードウェア構成例)
上述した本発明の各実施形態における照合システム、または、指標算出システムを、1つの計算処理装置(情報処理装置、コンピュータ)を用いて実現するハードウェア資源の構成例について説明する。但し、係る指標算出システム(照合システム)は、物理的または機能的に少なくとも2つの計算処理装置を用いて実現してもよい。また、係る指標算出システム(照合システム)は、専用の装置として実現してもよい。
(Hardware configuration example)
A configuration example of hardware resources for realizing the above-described collation system or index calculation system in each embodiment of the present invention using one calculation processing device (information processing device, computer) will be described. However, the index calculation system (collation system) may be realized using at least two calculation processing devices physically or functionally. The index calculation system (collation system) may be realized as a dedicated device.
図22は、第1の実施形態乃至第6の実施形態に係る照合システム、または、第7の実施形態に係る指標算出システムを実現可能な計算処理装置のハードウェア構成例を概略的に示す図である。計算処理装置20は、中央処理演算装置(Central_Processing_Unit、以降「CPU」と表す)21、メモリ22、ディスク23、及び、不揮発性記録媒体24を有する。計算処理装置20は、通信インターフェース(以降、「通信IF」と表す)27を有する。計算処理装置20は、さらに、入力装置25、及び、出力装置26を有してもよい。計算処理装置20は、通信IF27を介して、他の計算処理装置、及び、通信装置と情報を送受信することができる。
FIG. 22 is a diagram schematically illustrating a hardware configuration example of a calculation processing apparatus capable of realizing the collation system according to the first to sixth embodiments or the index calculation system according to the seventh embodiment. It is. The
不揮発性記録媒体24は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact_Disc)、デジタルバーサタイルディスク(Digital_Versatile_Disc)である。また、不揮発性記録媒体24は、ユニバーサルシリアルバスメモリ(USBメモリ)、ソリッドステートドライブ(Solid_State_Drive)等であってもよい。不揮発性記録媒体24は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体24は、上述した媒体に限定されない。また、不揮発性記録媒体24の代わりに、通信IF27を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。
The
すなわち、CPU21は、ディスク23に記憶されているソフトウェア・プログラム(コンピュータ・プログラム:以下、単に「プログラム」と称する)を、実行する際にメモリ22にコピーし、演算処理を実行する。CPU21は、プログラム実行に必要なデータをメモリ22から読み取る。外部への出力が必要な場合には、CPU21は、出力装置26に出力結果を出力する。外部からプログラムを入力する場合、CPU21は、入力装置25からプログラムを読み取る。CPU21は、上述した図1、図6、図8、図10、図14、図18、または、図20に示す各部が表す機能(処理)に対応するところのメモリ22にある照合プログラム(図2、図3、図4A、図4B、図5、図7A、図7B、図9A、図9B、図11,図12、図13A、図13B、図15、図16、図17A、図17B、図19A、または、図19B)、または、指標算出プログラム(図21)を解釈し実行する。CPU21は、上述した本発明の各実施形態において説明した処理を順次実行する。
That is, the
すなわち、このような場合、本発明は、係る照合プログラム、または、係る指標算出プログラムによっても成し得ると捉えることができる。さらに、係る照合プログラム、または、係る指標算出プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。 That is, in such a case, it can be understood that the present invention can also be realized by such a collation program or such an index calculation program. Furthermore, it can be understood that the present invention can also be realized by a non-volatile recording medium that can be read by a computer in which the matching program or the index calculation program is recorded.
以上、上述した実施形態を模範的な例として本発明を説明した。しかし、本発明は、上述した実施形態には限定されない。すなわち、本発明は、本発明のスコープ内において、当業者が理解し得る様々な態様を適用することができる。 The present invention has been described above using the above-described embodiment as an exemplary example. However, the present invention is not limited to the above-described embodiment. That is, the present invention can apply various modes that can be understood by those skilled in the art within the scope of the present invention.
尚、上述した各実施形態の一部又は全部は、以下の付記のようにも記載されうる。しかし、上述した各実施形態により例示的に説明した本発明は、以下には限られない。すなわち、
(付記1)
暗号鍵、及び、第1数値列に含まれる数値に基づいて、前記第1数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第1数値列を作成し、作成した前記暗号化第1数値列を記憶手段に格納し、前記第1数値列の大きさを表す第1サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第1指標を算出する第1指標算出手段と、
前記記憶手段に格納されている前記暗号化第1数値列に含まれている前記暗号化数値と、第2数値列とに基づき、前記第1数値列及び前記第2数値列が類似している程度を表す値から前記第1サイズを引き算した値を表す第2指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第2指標を算出する第2指標算出手段と
を備える指標算出システム。
In addition, a part or all of each embodiment mentioned above can be described also as the following additional remarks. However, the present invention described by way of example with the above-described embodiments is not limited to the following. That is,
(Appendix 1)
Based on an encryption key and a numerical value included in the first numerical value sequence, an encrypted first numerical value sequence including an encrypted numerical value obtained by encrypting the numerical value included in the first numerical value sequence using the encryption key is created. And storing the created encrypted first numerical sequence in the storage means, and a first size representing the size of the first numeric sequence representing a value encrypted using the encryption key. First index calculating means for calculating
Based on the encrypted numeric value contained in the encrypted first numeric value sequence stored in the storage means and the second numeric value sequence, the first numeric value sequence and the second numeric value sequence are similar. An index comprising: a second index calculating unit that calculates a second index indicating a value obtained by subtracting the first size from a value indicating a degree, and a value encrypted using the encryption key. Calculation system.
(付記2)
暗号鍵、及び、第1数値列に含まれる数値に基づいて、前記第1数値列に含まれる数値が第1乱数に基づいて変換された値が、前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第1数値列を作成し、前記第1乱数が暗号化された暗号化乱数を算出し、前記第1数値列の大きさを表す第1サイズが前記第1乱数に基づいて変換された値である第1データが、前記暗号鍵を用いて暗号化された値を表す暗号化第1データを算出する第1算出手段と、
第2数値列、前記暗号化乱数、及び、前記暗号化第1数値列に基づいて、前記第1数値列及び前記第2数値列が類似している程度を表す値及び前記第1サイズから算出される第2指標が第1乱数に基づいて変換された値である第2データが暗号化された暗号文を表す暗号化第2データを算出する暗号化第2データ手段と
を備える指標算出システム。
(Appendix 2)
An encryption in which a value obtained by converting a numerical value included in the first numerical value sequence based on a first random number based on a cryptographic key and a numerical value included in the first numerical value sequence is encrypted using the encryption key An encrypted first numerical sequence including a digitized value is created, an encrypted random number obtained by encrypting the first random number is calculated, and a first size representing the size of the first numerical sequence is based on the first random number First calculation means for calculating encrypted first data representing a value obtained by encrypting the first data, which is the value converted by the encryption key, using the encryption key;
Based on the second numerical value sequence, the encrypted random number, and the encrypted first numerical value sequence, a value representing the degree of similarity between the first numerical value sequence and the second numerical value sequence and the first size are calculated. An index calculation system comprising: encrypted second data means for calculating encrypted second data representing ciphertext obtained by encrypting the second data whose second index is a value converted based on the first random number. .
(付記3)
付記2に記載の指標算出システムであって、
複数の平文の演算結果が暗号化された暗号文を、各前記平文が暗号化された暗号文に基づいて算出可能な準同型性に従い、閾値に基づく数値の範囲に含まれている第1値と、前記暗号化乱数と、前記暗号化第1データとに基づき、前記第1値が前記第1乱数に基づいて変換された値と、前記第1データとの前記準同型性に従う演算結果である第2値が前記暗号鍵を用いて暗号化された暗号文を算出し、算出した前記第2値が暗号化された前記暗号文を含む暗号化集合を作成する暗号化集合手段
をさらに備え、
前記第2指標が、前記第1数値列及び前記第2数値列が類似している程度を表す値と、前記第1サイズとに基づき、前記準同型性に従い算出される演算結果を表す
指標算出システム。
(Appendix 3)
An index calculation system according to attachment 2, wherein
A first value included in a range of numerical values based on a threshold according to a homomorphism that can be calculated based on ciphertext obtained by encrypting a plurality of plaintext operation results based on ciphertext obtained by encrypting each plaintext. And a calculation result according to the homomorphism of the first data and the value obtained by converting the first value based on the first random number based on the encrypted random number and the encrypted first data. Further comprising: encryption set means for calculating a ciphertext in which a certain second value is encrypted using the encryption key, and creating an encryption set including the ciphertext in which the calculated second value is encrypted. ,
The second index represents a calculation result calculated according to the homomorphism based on a value representing the degree of similarity between the first numeric value sequence and the second numeric value sequence and the first size. system.
(付記4)
付記2に記載の指標算出システムであって、
閾値に基づく数値の範囲に含まれている第1値に関して、前記暗号化乱数と、前記暗号化第2データとに基づき、前記準同型性に従い、前記第1値が前記第1乱数に基づいて変換された値と、前記第2データとの前記準同型性に従う演算結果である第2値が前記暗号鍵を用いて暗号化された暗号文を算出し、算出した前記第2値が暗号化された前記暗号文を含む暗号化集合を作成する暗号化集合手段
をさらに備え、
前記第2指標が、前記第1数値列及び前記第2数値列が類似している程度を表す値と、前記第1サイズとに基づき、前記準同型性に従い算出される演算結果を表す
指標算出システム。
(Appendix 4)
An index calculation system according to attachment 2, wherein
Regarding the first value included in the numerical value range based on the threshold value, the first value is based on the first random number based on the encrypted random number and the encrypted second data, according to the homomorphism. A ciphertext in which a second value that is an operation result according to the homomorphism of the converted value and the second data is encrypted using the encryption key is calculated, and the calculated second value is encrypted. An encryption set means for creating an encrypted set including the encrypted ciphertext,
The second index represents a calculation result calculated according to the homomorphism based on a value representing the degree of similarity between the first numeric value sequence and the second numeric value sequence and the first size. system.
(付記5)
第2乱数と前記第2値とに基づき、前記準同型性に従い算出される演算結果を表す第3値の暗号文を、前記第2乱数と、前記暗号化集合に含まれている前記暗号文とに基づき、前記準同型性に従い算出し、算出した前記暗号文を含む暗号化参照情報と、前記第2乱数を含む乱数情報とを作成する暗号化参照情報手段
をさらに備える付記3または付記4に記載の指標算出システム。
(Appendix 5)
Based on the second random number and the second value, a ciphertext of a third value representing an operation result calculated according to the homomorphism is used as the ciphertext included in the second random number and the encrypted set.
(付記6)
前記第3値と、前記第1データまたは前記第2データとに基づき、前記準同型性に従い算出される演算結果を表す第4値の暗号文を、前記暗号化参照情報に含まれている前記第3値に関する前記暗号文と、前記暗号化第1データとに基づき、前記準同型性に従い算出し、算出した前記第4値の暗号文を含む検証データを作成する検証データ生成手段
をさらに備える付記5に記載の指標算出システム。
(Appendix 6)
The ciphertext of the fourth value representing the calculation result calculated according to the homomorphism based on the third value and the first data or the second data is included in the encrypted reference information. A verification data generating unit configured to calculate according to the homomorphism based on the ciphertext relating to the third value and the encrypted first data, and to generate verification data including the calculated ciphertext of the fourth value; The index calculation system according to attachment 5.
(付記7)
前記乱数情報に含まれている前記第2乱数に、所定の関数を適用することによって値を算出し、算出した値を含む検証情報を作成する検証情報手段
をさらに備える付記6に記載の指標算出システム。
(Appendix 7)
The index calculation according to appendix 6, further comprising verification information means for calculating a value by applying a predetermined function to the second random number included in the random number information, and creating verification information including the calculated value system.
(付記8)
前記検証情報手段は、ある並び替え手順に従って、前記検証データに含まている前記第4値の暗号文を並び替え、前記ある並び替え手順に従って、前記検証情報に含まれている前記値を並び替える
付記7に記載の指標算出システム。
(Appendix 8)
The verification information means rearranges the ciphertext of the fourth value included in the verification data according to a certain rearrangement procedure, and rearranges the value included in the verification information according to the predetermined rearrangement procedure. The index calculation system according to attachment 7.
(付記9)
付記7または付記8に記載の指標算出システムと、
前記検証データに含まれている前記第4値の暗号文を復号し、算出された値に前記所定の関数を適用することによって算出される値と、前記検証情報に含まれている値とが一致するか否かに基づいて、前記第1数値列と前記第2数値列とが類似または一致しているか否かを判定する判定手段と
を備える照合システム。
(Appendix 9)
The index calculation system according to appendix 7 or appendix 8,
A value calculated by decrypting the ciphertext of the fourth value included in the verification data and applying the predetermined function to the calculated value, and a value included in the verification information A collation system comprising: determination means for determining whether or not the first numerical value sequence and the second numerical value sequence are similar or coincident based on whether or not they match.
(付記10)
暗号鍵、及び、第1数値列に含まれる数値に基づいて、前記第1数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第1数値列を作成し、作成した前記暗号化第1数値列を記憶手段に格納し、前記第1数値列の大きさを表す第1サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第1指標を算出し、前記記憶手段に格納されている前記暗号化第1数値列に含まれている前記暗号化数値と、第2数値列とに基づき、前記第1数値列及び前記第2数値列が類似している程度を表す値から前記第1サイズを引き算した値を表す第2指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第2指標を算出する指標算出方法。
(Appendix 10)
Based on an encryption key and a numerical value included in the first numerical value sequence, an encrypted first numerical value sequence including an encrypted numerical value obtained by encrypting the numerical value included in the first numerical value sequence using the encryption key is created. And storing the created encrypted first numerical sequence in the storage means, and a first size representing the size of the first numeric sequence representing a value encrypted using the encryption key. And the first numeric value sequence and the second numeric value sequence are calculated based on the encrypted numeric value and the second numeric value sequence included in the encrypted first numeric value sequence stored in the storage unit. An index calculation method in which a second index representing a value obtained by subtracting the first size from a value representing a degree of similarity is an encrypted second index representing a value encrypted using the encryption key.
(付記11)
暗号鍵、及び、第1数値列に含まれる数値に基づいて、前記第1数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第1数値列を作成し、作成した前記暗号化第1数値列を記憶手段に格納し、前記第1数値列の大きさを表す第1サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第1指標を算出する第1指標算出機能と、
前記記憶手段に格納されている前記暗号化第1数値列に含まれている前記暗号化数値と、第2数値列とに基づき、前記第1数値列及び前記第2数値列が類似している程度を表す値から前記第1サイズを引き算した値を表す第2指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第2指標を算出する第2指標算出機能と
をコンピュータに実現させる指標算出プログラム。
(Appendix 11)
Based on an encryption key and a numerical value included in the first numerical value sequence, an encrypted first numerical value sequence including an encrypted numerical value obtained by encrypting the numerical value included in the first numerical value sequence using the encryption key is created. And storing the created encrypted first numerical sequence in the storage means, and a first size representing the size of the first numeric sequence representing a value encrypted using the encryption key. A first index calculation function for calculating
Based on the encrypted numeric value contained in the encrypted first numeric value sequence stored in the storage means and the second numeric value sequence, the first numeric value sequence and the second numeric value sequence are similar. A second index calculating function for calculating a second index indicating a value obtained by subtracting the first size from a value indicating a degree, and an encrypted second index indicating a value encrypted using the encryption key; Index calculation program to be realized.
101 照合システム
102 登録データ装置
103 暗号化部
104 記憶装置
105 登録データ情報記憶部
106 識別子管理部
107 登録データ検索部
108 鍵生成部
109 鍵記憶部
110 検証データ復号部
111 検証部
112 照合要求装置
113 照合要求部
114 暗号化第2データ部
115 暗号化第2集合部
116 暗号化第2マスク部
117 検証マスク部
118 照合データ部
119 照合装置
120 照合登録情報要求部
121 照合準備部
122 判定部
123 検証データ生成部
124 検証装置
201 照合システム
212 照合要求装置
213 照合要求部
214 暗号化第2データ部
215 暗号化第2集合部
216 暗号化第2マスク部
217 検証マスク部
218 照合データ部
219 照合装置
220 照合登録情報要求部
221 照合準備部
222 判定部
223 検証データ生成部
224 検証装置
401 照合システム
411 検証データ生成部
412 照合要求装置
413 照合要求部
414 暗号化第2データ部
415 照合登録情報要求部
416 照合準備部
417 判定部
418 暗号化第1集合部
419 暗号化第1マスク部
420 検証マスク部
421 照合データ部
422 検証装置
423 照合装置
501 照合システム
502 登録データ装置
503 暗号化部
504 記憶装置
505 登録データ情報記憶部
506 識別子管理部
507 登録データ検索部
508 鍵生成部
509 鍵記憶部
510 検証データ復号部
511 検証部
512 照合要求装置
513 照合要求部
514 暗号化第2データ部
515 暗号化第2集合部
516 暗号化第2マスク部
517 検証マスク部
518 照合データ部
519 照合装置
520 照合登録情報要求部
521 照合準備部
522 判定部
523 検証データ生成部
524 検証装置
601 照合システム
612 照合要求装置
613 照合要求部
614 暗号化第2データ部
615 暗号化第2集合部
616 暗号化第2マスク部
617 検証マスク部
618 照合データ部
619 照合装置
620 照合登録情報要求部
621 照合準備部
622 判定部
623 検証データ生成部
624 検証装置
801 照合システム
811 検証データ生成部
812 照合要求装置
813 照合要求部
814 暗号化第2データ部
815 照合登録情報要求部
816 照合準備部
817 判定部
818 暗号化第1集合部
819 暗号化第1マスク部
820 検証マスク部
821 照合データ部
822 検証装置
823 照合装置
901 指標算出システム
902 第1指標算出部
903 第2指標算出部
904 記憶部
20 計算処理装置
21 CPU
22 メモリ
23 ディスク
24 不揮発性記録媒体
25 入力装置
26 出力装置
27 通信IF
DESCRIPTION OF SYMBOLS 101 Verification system 102 Registration data apparatus 103 Encryption part 104 Storage apparatus 105 Registration data information storage part 106 Identifier management part 107 Registration data search part 108 Key generation part 109 Key storage part 110 Verification data decryption part 111 Verification part 112 Verification request apparatus 113 Verification request unit 114 Encryption second data unit 115 Encryption second aggregation unit 116 Encryption second mask unit 117 Verification mask unit 118 Verification data unit 119 Verification device 120 Verification registration information request unit 121 Verification preparation unit 122 Verification unit 123 Verification Data generation unit 124 Verification device 201 Verification system 212 Verification request device 213 Verification request unit 214 Encryption second data unit 215 Encryption second aggregation unit 216 Encryption second mask unit 217 Verification mask unit 218 Verification data unit 219 Verification device 220 Verification registration Information request unit 221 Verification preparation unit 222 Determination unit 223 Verification data generation unit 224 Verification device 401 Verification system 411 Verification data generation unit 412 Verification request device 413 Verification request unit 414 Encrypted second data unit 415 Verification registration information request unit 416 Verification preparation Unit 417 determination unit 418 encryption first set unit 419 encryption first mask unit 420 verification mask unit 421 verification data unit 422 verification device 423 verification device 501 verification system 502 registration data device 503 encryption unit 504 storage device 505 registration data information Storage unit 506 Identifier management unit 507 Registration data search unit 508 Key generation unit 509 Key storage unit 510 Verification data decryption unit 511 Verification unit 512 Verification request device 513 Verification request unit 514 Encryption second data unit 515 Encryption second aggregation unit 516 encryption 2 mask unit 517 verification mask unit 518 verification data unit 519 verification device 520 verification registration information request unit 521 verification preparation unit 522 determination unit 523 verification data generation unit 524 verification device 601 verification system 612 verification request device 613 verification request unit 614 encryption first 2 data part 615 Encrypted second set part 616 Encrypted second mask part 617 Verification mask part 618 Verification data part 619 Verification apparatus 620 Verification registration information request part 621 Verification preparation part 622 Determination part 623 Verification data generation part 624 Verification apparatus 801 Verification system 811 Verification data generation unit 812 Verification request device 813 Verification request unit 814 Encrypted second data unit 815 Verification registration information request unit 816 Verification preparation unit 817 Determination unit 818 Encryption first aggregation unit 819 Encryption first mask unit 820 Verification mask part 821 Verification data unit 822 Verification device 823 Verification device 901 Index calculation system 902 First index calculation unit 903 Second index calculation unit 904 Storage unit 20 Calculation processing device 21 CPU
22 Memory 23
Claims (10)
前記記憶手段に格納されている前記暗号化第1数値列に含まれている前記暗号化数値と、第2数値列とに基づき、前記第1数値列及び前記第2数値列が類似している程度を表す値から前記第1サイズを引き算した値を表す第2指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第2指標を算出する第2指標算出手段と
を備える指標算出システム。 Based on an encryption key and a numerical value included in the first numerical value sequence, an encrypted first numerical value sequence including an encrypted numerical value obtained by encrypting the numerical value included in the first numerical value sequence using the encryption key is created. And storing the created encrypted first numerical sequence in the storage means, and a first size representing the size of the first numeric sequence representing a value encrypted using the encryption key. First index calculating means for calculating
Based on the encrypted numeric value contained in the encrypted first numeric value sequence stored in the storage means and the second numeric value sequence, the first numeric value sequence and the second numeric value sequence are similar. An index comprising: a second index calculating unit that calculates a second index indicating a value obtained by subtracting the first size from a value indicating a degree, and a value encrypted using the encryption key. Calculation system.
第2数値列、前記暗号化乱数、及び、前記暗号化第1数値列に基づいて、前記第1数値列及び前記第2数値列が類似している程度を表す値及び前記第1サイズから算出される第2指標が第1乱数に基づいて変換された値である第2データが暗号化された暗号文を表す暗号化第2データを算出する暗号化第2データ手段と
を備える指標算出システム。 An encryption in which a value obtained by converting a numerical value included in the first numerical value sequence based on a first random number based on a cryptographic key and a numerical value included in the first numerical value sequence is encrypted using the encryption key An encrypted first numerical sequence including a digitized value is created, an encrypted random number obtained by encrypting the first random number is calculated, and a first size representing the size of the first numerical sequence is based on the first random number First calculation means for calculating encrypted first data representing a value obtained by encrypting the first data, which is the value converted by the encryption key, using the encryption key;
Based on the second numerical value sequence, the encrypted random number, and the encrypted first numerical value sequence, a value representing the degree of similarity between the first numerical value sequence and the second numerical value sequence and the first size are calculated. An index calculation system comprising: encrypted second data means for calculating encrypted second data representing ciphertext obtained by encrypting the second data whose second index is a value converted based on the first random number. .
複数の平文の演算結果が暗号化された暗号文を、各前記平文が暗号化された暗号文に基づいて算出可能な準同型性に従い、閾値に基づく数値の範囲に含まれている第1値と、前記暗号化乱数と、前記暗号化第1データとに基づき、前記第1値が前記第1乱数に基づいて変換された値と、前記第1データとの前記準同型性に従う演算結果である第2値が前記暗号鍵を用いて暗号化された暗号文を算出し、算出した前記第2値が暗号化された前記暗号文を含む暗号化集合を作成する暗号化集合手段
をさらに備え、
前記第2指標が、前記第1数値列及び前記第2数値列が類似している程度を表す値と、前記第1サイズとに基づき、前記準同型性に従い算出される演算結果を表す
指標算出システム。 The index calculation system according to claim 2,
A first value included in a range of numerical values based on a threshold according to a homomorphism that can be calculated based on ciphertext obtained by encrypting a plurality of plaintext operation results based on ciphertext obtained by encrypting each plaintext. And a calculation result according to the homomorphism of the first data and the value obtained by converting the first value based on the first random number based on the encrypted random number and the encrypted first data. Further comprising: encryption set means for calculating a ciphertext in which a certain second value is encrypted using the encryption key, and creating an encryption set including the ciphertext in which the calculated second value is encrypted. ,
The second index represents a calculation result calculated according to the homomorphism based on a value representing the degree of similarity between the first numeric value sequence and the second numeric value sequence and the first size. system.
閾値に基づく数値の範囲に含まれている第1値に関して、前記暗号化乱数と、前記暗号化第2データとに基づき、前記準同型性に従い、前記第1値が前記第1乱数に基づいて変換された値と、前記第2データとの前記準同型性に従う演算結果である第2値が前記暗号鍵を用いて暗号化された暗号文を算出し、算出した前記第2値が暗号化された前記暗号文を含む暗号化集合を作成する暗号化集合手段
をさらに備え、
前記第2指標が、前記第1数値列及び前記第2数値列が類似している程度を表す値と、前記第1サイズとに基づき、前記準同型性に従い算出される演算結果を表す
指標算出システム。 The index calculation system according to claim 2,
Regarding the first value included in the numerical value range based on the threshold value, the first value is based on the first random number based on the encrypted random number and the encrypted second data, according to the homomorphism. A ciphertext in which a second value that is an operation result according to the homomorphism of the converted value and the second data is encrypted using the encryption key is calculated, and the calculated second value is encrypted. An encryption set means for creating an encrypted set including the encrypted ciphertext,
The second index represents a calculation result calculated according to the homomorphism based on a value representing the degree of similarity between the first numeric value sequence and the second numeric value sequence and the first size. system.
をさらに備える請求項3または請求項4に記載の指標算出システム。 Based on the second random number and the second value, a ciphertext of a third value representing an operation result calculated according to the homomorphism is used as the ciphertext included in the second random number and the encrypted set. And further comprising: encrypted reference information means for generating encrypted reference information including the calculated ciphertext and random number information including the second random number based on the homomorphism. Item 5. The index calculation system according to Item 4.
をさらに備える請求項5に記載の指標算出システム。 The ciphertext of the fourth value representing the calculation result calculated according to the homomorphism based on the third value and the first data or the second data is included in the encrypted reference information. A verification data generating unit configured to calculate according to the homomorphism based on the ciphertext relating to the third value and the encrypted first data, and to generate verification data including the calculated ciphertext of the fourth value; The index calculation system according to claim 5.
をさらに備える請求項6に記載の指標算出システム。 The index according to claim 6, further comprising verification information means for calculating a value by applying a predetermined function to the second random number included in the random number information and creating verification information including the calculated value. Calculation system.
前記検証データに含まれている前記第4値の暗号文を復号し、算出された値に前記所定の関数を適用することによって算出される値と、前記検証情報に含まれている値とが一致するか否かに基づいて、前記第1数値列と前記第2数値列とが類似または一致しているか否かを判定する判定手段と
を備える照合システム。 The index calculation system according to claim 7,
A value calculated by decrypting the ciphertext of the fourth value included in the verification data and applying the predetermined function to the calculated value, and a value included in the verification information A collation system comprising: determination means for determining whether or not the first numerical value sequence and the second numerical value sequence are similar or coincident based on whether or not they match.
前記記憶手段に格納されている前記暗号化第1数値列に含まれている前記暗号化数値と、第2数値列とに基づき、前記第1数値列及び前記第2数値列が類似している程度を表す値から前記第1サイズを引き算した値を表す第2指標が、前記暗号鍵を用いて暗号化された値を表す暗号化第2指標を算出する第2指標算出機能と
をコンピュータに実現させる指標算出プログラム。 Based on an encryption key and a numerical value included in the first numerical value sequence, an encrypted first numerical value sequence including an encrypted numerical value obtained by encrypting the numerical value included in the first numerical value sequence using the encryption key is created. And storing the created encrypted first numerical sequence in the storage means, and a first size representing the size of the first numeric sequence representing a value encrypted using the encryption key. A first index calculation function for calculating
Based on the encrypted numeric value contained in the encrypted first numeric value sequence stored in the storage means and the second numeric value sequence, the first numeric value sequence and the second numeric value sequence are similar. A second index calculating function for calculating a second index indicating a value obtained by subtracting the first size from a value indicating a degree, and an encrypted second index indicating a value encrypted using the encryption key; Index calculation program to be realized.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015127849A JP6528560B2 (en) | 2015-06-25 | 2015-06-25 | Index calculation system, index calculation method, index calculation program, and collation system |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2015127849A JP6528560B2 (en) | 2015-06-25 | 2015-06-25 | Index calculation system, index calculation method, index calculation program, and collation system |
Publications (2)
Publication Number | Publication Date |
---|---|
JP2017009914A true JP2017009914A (en) | 2017-01-12 |
JP6528560B2 JP6528560B2 (en) | 2019-06-12 |
Family
ID=57764035
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2015127849A Active JP6528560B2 (en) | 2015-06-25 | 2015-06-25 | Index calculation system, index calculation method, index calculation program, and collation system |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP6528560B2 (en) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008521025A (en) * | 2004-11-16 | 2008-06-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Secure calculation of similarity measures |
JP2009129292A (en) * | 2007-11-27 | 2009-06-11 | Hitachi Ltd | Method, apparatus and system for biometric authentication |
JP2010237653A (en) * | 2009-03-30 | 2010-10-21 | Mitsubishi Electric Research Laboratories Inc | Method and system for verifying similarity between first signal and second signal |
JP2010244218A (en) * | 2009-04-03 | 2010-10-28 | Hitachi Omron Terminal Solutions Corp | Biometric authentication device and system |
JP2016111594A (en) * | 2014-12-09 | 2016-06-20 | 日本電気株式会社 | Encrypted text collation system, method and program |
-
2015
- 2015-06-25 JP JP2015127849A patent/JP6528560B2/en active Active
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2008521025A (en) * | 2004-11-16 | 2008-06-19 | コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ | Secure calculation of similarity measures |
US20090006855A1 (en) * | 2004-11-16 | 2009-01-01 | Koninklijke Philips Electronics, N.V. | Securely Computing a Similarity Measure |
JP2009129292A (en) * | 2007-11-27 | 2009-06-11 | Hitachi Ltd | Method, apparatus and system for biometric authentication |
JP2010237653A (en) * | 2009-03-30 | 2010-10-21 | Mitsubishi Electric Research Laboratories Inc | Method and system for verifying similarity between first signal and second signal |
JP2010244218A (en) * | 2009-04-03 | 2010-10-28 | Hitachi Omron Terminal Solutions Corp | Biometric authentication device and system |
JP2016111594A (en) * | 2014-12-09 | 2016-06-20 | 日本電気株式会社 | Encrypted text collation system, method and program |
Also Published As
Publication number | Publication date |
---|---|
JP6528560B2 (en) | 2019-06-12 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Chen et al. | BL-MLE: Block-level message-locked encryption for secure large file deduplication | |
JP5562687B2 (en) | Securing communications sent by a first user to a second user | |
JP7127543B2 (en) | Matching system, method, device and program | |
JP2020502856A5 (en) | ||
WO2016203762A1 (en) | Crypto-information creation device, crypto-information creation method, recording medium, and collation system | |
JP5506704B2 (en) | Decryption system, key device, decryption method, and program | |
JP6931247B2 (en) | Ciphertext matching systems, methods, and programs | |
JP6451938B2 (en) | Ciphertext verification system, method, and program | |
KR20160131798A (en) | Method and system for additive homomorphic encryption scheme with error detection functionality | |
JPWO2014112550A1 (en) | Tamper detection device, tamper detection method, and program | |
Yang et al. | A compressive integrity auditing protocol for secure cloud storage | |
JP4737334B2 (en) | Encryption device, decryption device, encryption program, decryption program, and recording medium | |
JP6738061B2 (en) | Ciphertext verification system, method, and recording medium | |
WO2018043573A1 (en) | Key exchange method and key exchange system | |
Li et al. | Healthfort: A cloud-based ehealth system with conditional forward transparency and secure provenance via blockchain | |
JP2014137474A (en) | Tamper detection device, tamper detection method, and program | |
JP5964460B2 (en) | Data encryption storage system | |
Geihs et al. | Propyla: privacy preserving long-term secure storage | |
Hariss et al. | Cloud assisted privacy preserving using homomorphic encryption | |
JP5931795B2 (en) | KEY EXCHANGE SYSTEM, KEY GENERATION DEVICE, COMMUNICATION DEVICE, KEY EXCHANGE METHOD, AND PROGRAM | |
JP6528560B2 (en) | Index calculation system, index calculation method, index calculation program, and collation system | |
Sarma | An Asymmetric Key based Disk Encryption Scheme | |
JP6267657B2 (en) | Safety enhancement method, safety enhancement system, safety enhancement device, verification device, and program | |
WO2017170780A1 (en) | Cryptogram collation system, node device, cryptogram collation method, and program | |
Song et al. | Enabling Transparent Deduplication and Auditing for Encrypted Data in Cloud |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A621 | Written request for application examination |
Free format text: JAPANESE INTERMEDIATE CODE: A621 Effective date: 20180515 |
|
A977 | Report on retrieval |
Free format text: JAPANESE INTERMEDIATE CODE: A971007 Effective date: 20181219 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20190205 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190228 |
|
A521 | Request for written amendment filed |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20190402 |
|
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: 20190416 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20190429 |
|
R150 | Certificate of patent or registration of utility model |
Ref document number: 6528560 Country of ref document: JP Free format text: JAPANESE INTERMEDIATE CODE: R150 |