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 PDF

Info

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
Application number
JP2015127849A
Other languages
Japanese (ja)
Other versions
JP6528560B2 (en
Inventor
春菜 肥後
Haruna Higo
春菜 肥後
寿幸 一色
Hisayuki Isshiki
寿幸 一色
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
NEC Corp
Original Assignee
NEC Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by NEC Corp filed Critical NEC Corp
Priority to JP2015127849A priority Critical patent/JP6528560B2/en
Publication of JP2017009914A publication Critical patent/JP2017009914A/en
Application granted granted Critical
Publication of JP6528560B2 publication Critical patent/JP6528560B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Abstract

PROBLEM TO BE SOLVED: To provide an index calculation system, etc., with which it is possible to calculate an index that makes a safer verification process possible.SOLUTION: An index calculation system 901 has: a first index calculation unit 902 for creating, on the basis of a cryptographic key and a numerical value included in a first number sequence, an encrypted first number sequence that includes an encrypted numerical value in which a numerical value included in the first number sequence is encrypted using the cryptographic key, storing the created encrypted first number sequence in a storage unit 904, and calculating an encrypted first index that represents an encrypted value in which a first size representing the magnitude of the first number sequence is encrypted using the cryptographic key; and a second index calculation unit 903 for calculating, on the basis of the encrypted numerical value included in the encrypted first number sequence stored in the storage unit 904 and a second number sequence, an encrypted second index in which a second index representing a value derived by subtracting the first size from a value representing the degree of similarity of the first number sequence and second number sequence represents a value encrypted using the cryptographic key.SELECTED DRAWING: Figure 20

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 Patent Document 1 creates a template in which the data is concealed by adding random coordinate values to the data including coordinate values representing the shape of the ridges of the fingerprint. In this method, biometric authentication is executed based on the template. However, the authentication method has a problem that biometric information is not protected with sufficient strength when biometric authentication is repeated.

非特許文献1に開示された方式は、加法に関して準同型性を有する公開鍵暗号の一例を利用することにより、認証を求めているクライアントの生体情報を保護する。非特許文献1に開示された生体認証方式は、準同型性を有する公開鍵暗号を用いて、サーバーが格納している生体情報の機密性を保つ。しかし、該生体認証方式によれば、クライアントが送信した認証情報と、サーバーが格納しているテンプレートとを照合する場合に、サーバーの負荷は大きい。この理由は、サーバーが、照合するたびに、クライアントが送信した認証情報を復号し、復号した復号結果を、再度、暗号化する必要があるからである。さらに、該生体認証方式においては、サーバーが格納しているテンプレートは、暗号化されていない平文である。すなわち、該テンプレートは、サーバーに対して秘匿されていない。したがって、該生体認証方式においては、テンプレートがサーバーの外部に漏洩した場合に、漏洩した該テンプレートを用いた「なりすまし」が発生する可能性が高い。該生体認証方式において、サーバーは、認証情報を表す特定の値を受信した場合に、必ず、該特定の値が該テンプレートに基づき受理可能であると判定する。このため、該特定の値を送信することにより、異なる生体が「なりすまし」を行うことは可能である。   The method disclosed in Non-Patent Document 1 protects the biometric information of a client seeking authentication by using an example of public key cryptography having homomorphism regarding addition. The biometric authentication method disclosed in Non-Patent Document 1 maintains the confidentiality of biometric information stored in a server using public key cryptography having homomorphism. However, according to the biometric authentication method, when the authentication information transmitted by the client is compared with the template stored in the server, the load on the server is large. This is because each time the server collates, it is necessary to decrypt the authentication information transmitted by the client and encrypt the decrypted decryption result again. Furthermore, in the biometric authentication method, the template stored in the server is plain text that is not encrypted. That is, the template is not concealed from the server. Therefore, in the biometric authentication method, when a template leaks outside the server, there is a high possibility of “spoofing” using the leaked template. In the biometric authentication method, when the server receives a specific value representing authentication information, the server always determines that the specific value is acceptable based on the template. For this reason, it is possible for different living bodies to perform “spoofing” by transmitting the specific value.

特許文献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乗オーダに減らす技術が開示されている。   Patent Document 3 describes a technology that reduces the load of a third party in the verification process in a system that introduces a trusted third party intervention. However, when the Euclidean distance is used as the distance index in the technique described in Patent Document 3, the size of the template increases in proportion to the fourth power of the size of the acceptable range. On the other hand, in Non-Patent Document 2, by using a public key cryptography called “Somewhat homomorphic cryptography” instead of a homomorphic cryptography, a square order of an index of the size of the range in which the template size can be accepted A technique for reducing the above is disclosed.

特許文献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.

特開2006−158851号公報JP 2006-158851 A 国際公開第2014/185450号International Publication No. 2014/185450 国際公開第2014/185447号International Publication No. 2014/185447 国際公開第2012/114452号International Publication No. 2012/114454

Siamak F.Shahandashti,ReihanehSafavi−Naini,and Philip Ogunbona,「Private Fingerprint matching」,ACISP 2012.、pp 426−433Siamak F.M. Shahandashti, Reihaneh Safavi-Naini, and Philip Ogunbona, “Private Fingerprint matching”, ACISP 2012. Pp 426-433 肥後,一色,森,尾花,「テンプレートサイズの小さい秘匿指紋認証方式」,暗号と情報セキュリティシンポジウム(SCIS2015),2015.Higo, Isshiki, Mori, Ohana, “Secret fingerprint authentication method with small template size”, Symposium on Encryption and Information Security (SCIS2015), 2015.

しかし、特許文献1乃至特許文献4、非特許文献1、または、非特許文献2に開示された、機密性を担保する必要があるデータが漏洩してしまう可能性がある。たとえば、機密性を担保する必要があるデータは、テンプレートと、対象データとの距離である。この理由は、認証対象を表す対象データと、テンプレートとの距離を照合処理に際して復号する必要があるので、その復号により生じるデータが漏洩する可能性があるからである。   However, there is a possibility that data disclosed in Patent Document 1 to Patent Document 4, Non-Patent Document 1, or Non-Patent Document 2 that needs to ensure confidentiality may be leaked. For example, the data that needs to ensure confidentiality is the distance between the template and the target data. This is because the distance between the target data representing the authentication target and the template needs to be decrypted in the collation process, and data generated by the decryption may be leaked.

すなわち、上述したような技術を用いた場合には、たとえ、認証対象を表す対象データと、テンプレートとの距離が秘匿化されたまま算出されたとしても、該秘匿化された距離を復号し、その結果、算出される値が所定の条件を満たすか否かが、該対象データを受理するか否かを決定する。従って、該技術によれば、たとえば、復号された距離に基づき、ヒルクライミング攻撃を受ける可能性がある。   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.

本発明の第1の実施形態に係る照合システムが有する構成を示すブロック図である。It is a block diagram which shows the structure which the collation system which concerns on the 1st Embodiment of this invention has. 準備フェーズにおいて、第1の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process which the collation system which concerns on 1st Embodiment performs in a preparation phase. 登録フェーズにおいて、第1の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process which the collation system which concerns on 1st Embodiment performs in a registration phase. 照合フェーズにおいて、第1の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process which the collation system which concerns on 1st Embodiment performs in a collation phase. 照合フェーズにおいて、第1の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process which the collation system which concerns on 1st Embodiment performs in a collation phase. 暗号化第2データ部が暗号化第2データを算出する処理を示すフローチャートである。It is a flowchart which shows the process in which an encryption 2nd data part calculates encryption 2nd data. 本発明の第2の実施形態に係る照合システムが有する構成を示すブロック図である。It is a block diagram which shows the structure which the collation system concerning the 2nd Embodiment of this invention has. 照合フェーズにおいて、第2の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process which the collation system which concerns on 2nd Embodiment performs in a collation phase. 照合フェーズにおいて、第2の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process which the collation system which concerns on 2nd Embodiment performs in a collation phase. 本発明の第3の実施形態に係る照合システムが有する構成を示すブロック図である。It is a block diagram which shows the structure which the collation system which concerns on the 3rd Embodiment of this invention has. 照合フェーズにおいて、第3の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process which the collation system which concerns on 3rd Embodiment performs in a collation phase. 照合フェーズにおいて、第3の実施形態に係る照合システムが実行する処理の一例を示すフローチャートである。It is a flowchart which shows an example of the process which the collation system which concerns on 3rd Embodiment performs in a collation phase. 本発明の第4の実施形態に係る照合システムが有する構成を示すブロック図である。It is a block diagram which shows the structure which the collation system which concerns on the 4th Embodiment of this invention has. 準備フェーズにおいて、第4の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図(フローチャート)である。It is a sequence diagram (flowchart) which shows an example of the process which the collation system which concerns on 4th Embodiment performs in a preparation phase. 登録フェーズにおいて、第4の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process which the collation system which concerns on 4th Embodiment performs in a registration phase. 照合フェーズにおいて、第4の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process which the collation system which concerns on 4th Embodiment performs in a collation phase. 照合フェーズにおいて、第4の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process which the collation system which concerns on 4th Embodiment performs in a collation phase. 本発明の第5の実施形態に係る照合システムが有する構成を示すブロック図である。It is a block diagram which shows the structure which the collation system which concerns on the 5th Embodiment of this invention has. 準備フェーズにおいて、第5の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process which the collation system which concerns on 5th Embodiment performs in a preparation phase. 登録フェーズにおいて、第5の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process which the collation system which concerns on 5th Embodiment performs in a registration phase. 照合フェーズにおいて、第5の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process which the collation system which concerns on 5th Embodiment performs in a collation phase. 照合フェーズにおいて、第5の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process which the collation system which concerns on 5th Embodiment performs in a collation phase. 本発明の第6の実施形態に係る照合システムが有する構成を示すブロック図である。It is a block diagram which shows the structure which the collation system which concerns on the 6th Embodiment of this invention has. 照合フェーズにおいて、第6の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process which the collation system which concerns on 6th Embodiment performs in a collation phase. 照合フェーズにおいて、第6の実施形態に係る照合システムが実行する処理の一例を示すシーケンス図である。It is a sequence diagram which shows an example of the process which the collation system which concerns on 6th Embodiment performs in a collation phase. 本発明の第7の実施形態に係る指標算出システムが有する構成を示すブロック図である。It is a block diagram which shows the structure which the parameter | index calculation system which concerns on the 7th Embodiment of this invention has. 第7の実施形態に係る指標算出システムにおける処理の流れを示すフローチャートである。It is a flowchart which shows the flow of a process in the parameter | index calculation system which concerns on 7th Embodiment. 本発明の各実施形態に係る指標算出システム(または、照合システム)を実現可能な計算処理装置のハードウェア構成例を、概略的に示すブロック図である。It is a block diagram which shows roughly the hardware structural example of the calculation processing apparatus which can implement | achieve the parameter | index calculation system (or collation system) which concerns on each embodiment of this invention.

はじめに、本願の各実施形態にて使用する演算子について説明する。   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).

鍵生成アルゴリズムは、暗号の安全性を表す尺度であり、公開鍵や秘密鍵の長さを決定するパラメータであるセキュリティパラメータ1に基づき、公開鍵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 security parameter 1 k that is a parameter for determining the length of the public key and the secret key. It is.

暗号化アルゴリズムは、公開鍵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:(1)→(pk,sk)、
暗号化アルゴリズムEnc:(pk,M)→C、
復号アルゴリズムDec:(sk,C)→M、
ただし、1(すなわち、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 Equation 1 is satisfied.

Enc(pk,m#m)=Enc(pk,m)@Enc(pk,m)・・・(式1)、
ただし、#、及び、@は、それぞれ異なる、ある2項演算子を表す。また、m、及び、mは、それぞれ、メッセージを表す。
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 Equation 1 is a multiplication operator and the binary operator “#” in Equation 1 is an addition (addition) operator. is there. That is, the Modified-Elgamal cipher is an example of a public key cipher having homomorphism with respect to addition. In the Modified-Elgamal cipher, the encryption algorithm Enc satisfies the relationship shown in Equation 2.

Enc(pk,m+m)=Enc(pk,m)×Enc(pk,m)・・・(式2)、
ただし、m、及び、mは、それぞれ、メッセージを表す。
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, Expression 3 is established for an arbitrary constant i using Expression 2.

Enc(pk,i×m)=Enc(pk,m・・・(式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 Equation 3.

尚、式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 verification system 101 according to the first embodiment of the present invention will be described in detail. FIG. 1 is a block diagram showing a configuration of a collation system 101 according to the first embodiment of the present invention.

第1の実施形態に係る照合システム101は、大別して、登録データ装置102と、照合要求装置112と、記憶装置104と、照合装置119と、検証装置124とを有する。   The collation system 101 according to the first embodiment roughly includes a registration data device 102, a collation request device 112, a storage device 104, a collation device 119, and a verification device 124.

登録データ装置102は、暗号化部103を有する。   The registered data device 102 has an encryption unit 103.

記憶装置104は、識別子管理部106と、登録データ情報記憶部105と、登録データ検索部107とを有する。   The storage device 104 includes an identifier management unit 106, a registration data information storage unit 105, and a registration data search unit 107.

検証装置124は、鍵生成部108と、鍵記憶部109と、検証データ復号部110と、検証部111とを有する。   The verification device 124 includes a key generation unit 108, a key storage unit 109, a verification data decryption unit 110, and a verification unit 111.

照合装置119は、照合登録情報要求部120と、照合準備部121と、検証データ生成部123と、判定部122とを有する。   The collation device 119 includes a collation registration information request unit 120, a collation preparation unit 121, a verification data generation unit 123, and a determination unit 122.

照合要求装置112は、照合要求部113と、暗号化第2データ部114と、暗号化第2集合部115と、暗号化第2マスク部116と、検証マスク部117と、照合データ部118とを有する。   The verification request device 112 includes a verification request unit 113, an encrypted second data unit 114, an encrypted second aggregation unit 115, an encrypted second mask unit 116, a verification mask unit 117, and a verification data unit 118. Have

説明の便宜上、鍵記憶部109は、鍵生成部108、及び、検証データ復号部110のみが参照可能な記憶部であるとする。   For convenience of explanation, it is assumed that the key storage unit 109 is a storage unit that can be referred to only by the key generation unit 108 and the verification data decryption unit 110.

登録データ装置102と、照合要求装置112と、記憶装置104と、照合装置119と、検証装置124とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。   It is assumed that the registration data device 102, the verification requesting device 112, the storage device 104, the verification device 119, and the verification device 124 can communicate with each other via a communication network, for example.

尚、照合システム101においては、登録データ装置102と、照合要求装置112とをまとめて、「第1ノード」と表されてもよい。照合システム101においては、記憶装置104と、照合装置119とをまとめて、「第2ノード」と表されてもよい。また、照合システム101においては、検証装置124を、「第3ノード」と表されてもよい。すなわち、照合システム101は、図1に例示した様態に限定されない。   In the verification system 101, the registration data device 102 and the verification request device 112 may be collectively represented as “first node”. In the verification system 101, the storage device 104 and the verification device 119 may be collectively represented as “second node”. In the verification system 101, the verification device 124 may be represented as “third node”. That is, the collation system 101 is not limited to the mode illustrated in FIG.

次に、本発明の第1の実施形態に係る照合システム101における処理について説明する。照合システム101における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。まず、各フェーズにおける処理の概要について説明する。   Next, processing in the collation system 101 according to the first embodiment of the present invention will be described. The processing in the verification system 101 is roughly divided into a preparation phase, a registration phase, and a verification phase. First, an overview of processing in each phase will be described.

準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、公開鍵、及び、秘密鍵が生成される。   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 verification system 101 in each phase described above will be described in detail.

図2を参照しながら、本実施形態に係る照合システム101が、準備フェーズにて実行する処理について説明する。図2は、準備フェーズにおいて、第1の実施形態に係る照合システム101が実行する処理の一例を示すフローチャートである。   With reference to FIG. 2, processing executed by the collation system 101 according to the present embodiment in the preparation phase will be described. FIG. 2 is a flowchart illustrating an example of processing executed by the collation system 101 according to the first embodiment in the preparation phase.

検証装置124における鍵生成部108は、セキュリティパラメータを受信し、受信したセキュリティパラメータを用いて、たとえば、上述した鍵生成アルゴリズムに従い、公開鍵、及び、秘密鍵を生成する(ステップA1)。尚、生成される公開鍵、及び、秘密鍵は、該鍵生成アルゴリズムに従い生成されるので、加法に関して準同型性を有する公開鍵暗号に準拠する。鍵生成部108は、入力された値に対して、特定の値を算出するハッシュ関数を決定する(ステップA2)。たとえば、鍵生成部108は、所定のハッシュ関数から、あるハッシュ関数を選ぶことにより、ハッシュ関数を決定する。鍵生成部108は、該公開鍵と、該ハッシュ関数とを、照合システム101において公開する(ステップA3)。鍵生成部108は、該秘密鍵を、鍵記憶部109に格納する(ステップA4)。   The key generation unit 108 in the verification device 124 receives the security parameter, and generates a public key and a secret key using the received security parameter, for example, according to the key generation algorithm described above (step A1). Note that the generated public key and secret key are generated according to the key generation algorithm, and therefore conform to public key cryptography having homomorphism with respect to addition. The key generation unit 108 determines a hash function for calculating a specific value for the input value (step A2). For example, the key generation unit 108 determines a hash function by selecting a hash function from a predetermined hash function. The key generation unit 108 makes the public key and the hash function public in the verification system 101 (step A3). The key generation unit 108 stores the secret key in the key storage unit 109 (step A4).

尚、本実施形態に係る照合システム101が準備フェーズにて実行する処理は、図2に例示された様態に限定されない。   In addition, the process which the collation system 101 which concerns on this embodiment performs in a preparation phase is not limited to the aspect illustrated in FIG.

図3を参照しながら、本実施形態に係る照合システム101が、登録フェーズにて実行する処理について説明する。図3は、登録フェーズにおいて、第1の実施形態に係る照合システム101が実行する処理の一例を示すフローチャートである。   Processing performed in the registration phase by the collation system 101 according to the present embodiment will be described with reference to FIG. FIG. 3 is a flowchart illustrating an example of processing executed by the matching system 101 according to the first embodiment in the registration phase.

登録データ装置102における暗号化部103は、暗号化登録情報を作成する基となる登録データを受信する。暗号化部103は、受信した登録データに関して所定の演算を適用することによって、該登録データに関する特徴を表す第1指標を算出する。たとえば、所定の演算は、該登録データの長さ(大きさ)を算出する関数であり、この場合に、第1指標は、該登録データの長さ(大きさ)である。   The encryption unit 103 in the registration data device 102 receives registration data that is a basis for creating encrypted registration information. The encryption unit 103 calculates a first index that represents a feature related to the registered data by applying a predetermined calculation to the received registered data. For example, the predetermined calculation is a function for calculating the length (size) of the registered data, and in this case, the first index is the length (size) of the registered data.

次に、暗号化部103は、受信した該登録データに含まれている要素、及び、該第1指標を、公開鍵を用いて暗号化することによって、該要素が暗号化された暗号文、及び、該第1指標が暗号化された暗号化第1指標を算出する。暗号化部103は、算出した該暗号文、及び、算出した該暗号化第1指標が含まれている暗号化登録情報を作成する(ステップB1)。暗号化部103は、作成した暗号化登録情報を、照合装置119における識別子管理部106に送信する(ステップB2)。   Next, the encryption unit 103 encrypts the element included in the received registration data and the first index using a public key, thereby encrypting the element, And the encryption 1st parameter | index with which this 1st parameter | index was encrypted is calculated. The encryption unit 103 creates encryption registration information including the calculated ciphertext and the calculated first index of encryption (step B1). The encryption unit 103 transmits the created encryption registration information to the identifier management unit 106 in the verification device 119 (step B2).

記憶装置104における識別子管理部106は、暗号化部103が送信した暗号化登録情報を受信し、受信した暗号化登録情報を一意に識別可能な登録識別子を作成する(ステップB3)。識別子管理部106は、作成した登録識別子と、受信した暗号化登録情報とが関連付けされた登録データ情報を作成し、作成した該登録データ情報を、記憶装置104における登録データ情報記憶部105に格納する(ステップB4)。識別子管理部106は、作成した該登録識別子を、登録データ装置102に送信する(ステップB5)。   The identifier management unit 106 in the storage device 104 receives the encrypted registration information transmitted by the encryption unit 103, and creates a registration identifier that can uniquely identify the received encrypted registration information (step B3). The identifier management unit 106 creates registration data information in which the created registration identifier is associated with the received encrypted registration information, and stores the created registration data information in the registration data information storage unit 105 in the storage device 104. (Step B4). The identifier management unit 106 transmits the created registration identifier to the registration data device 102 (step B5).

記憶装置104における登録データ装置102は、該登録識別子を受信し、たとえば、受信した該登録識別子を、ディスプレイ等のユーザインターフェース(UI)に表示する。あるいは、登録データ装置102は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、該登録識別子を格納してもよい。あるいは、識別子管理部106が、作成した該登録識別子を、ディスプレイ等のユーザインターフェース(UI)に表示してもよい。   The registration data device 102 in the storage device 104 receives the registration identifier, and displays the received registration identifier on a user interface (UI) such as a display. Alternatively, the registration data device 102 may store the registration identifier in an IC (integrated_circuit) card such as an employee ID card or an identifier card. Alternatively, the identifier management unit 106 may display the created registered identifier on a user interface (UI) such as a display.

尚、本実施形態に係る照合システム101が登録フェーズにて実行する処理は、図3に例示された様態に限定されない。   In addition, the process which the collation system 101 which concerns on this embodiment performs in a registration phase is not limited to the aspect illustrated in FIG.

図4A及び図4Bを参照しながら、本実施形態に係る照合システム101が、照合フェーズにて実行する処理について説明する。図4A及び図4Bは、照合フェーズにおいて、第1の実施形態に係る照合システム101が実行する処理の一例を示すフローチャートである。   With reference to FIG. 4A and FIG. 4B, processing executed by the matching system 101 according to the present embodiment in the matching phase will be described. 4A and 4B are flowcharts illustrating an example of processing executed by the verification system 101 according to the first embodiment in the verification phase.

照合要求装置112における照合要求部113は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部113は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップC1)。照合要求部113は、作成した該照合要求を、照合装置119における照合登録情報要求部120に送信する(ステップC2)。照合要求は、たとえば、該登録識別子を含む。   The collation request unit 113 in the collation request device 112 receives target data representing a target to be collated and a registration identifier. The verification request unit 113 creates a verification request for requesting verification of the received target data and the encrypted registration information associated with the received registration identifier (step C1). The verification request unit 113 transmits the generated verification request to the verification registration information request unit 120 in the verification device 119 (step C2). The verification request includes, for example, the registration identifier.

照合装置119における照合登録情報要求部120は、照合要求部113が送信した照合要求を受信し、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部120は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップC3)、作成した該登録データ要求を、記憶装置104における登録データ検索部107に送信する(ステップC4)。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。   The verification registration information request unit 120 in the verification device 119 receives the verification request transmitted by the verification request unit 113 and reads the registration identifier included in the received verification request. The verification registration information request unit 120 creates a registration data request for requesting encrypted registration information associated with the read registration identifier (step C3), and searches the registration data request in the storage device 104 for the created registration data request. It transmits to the part 107 (step C4). The registration data request can be realized using an aspect including the read registration identifier.

記憶装置104における登録データ検索部107は、照合登録情報要求部120が送信した登録データ要求を受信する。登録データ検索部107は、登録データ情報(たとえば、登録データ情報記憶部105に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップC5)。登録データ検索部107は、特定した暗号化登録情報を、照合装置119における照合準備部121に送信する(ステップC6)。   The registration data search unit 107 in the storage device 104 receives the registration data request transmitted by the verification registration information request unit 120. The registration data search unit 107 specifies encrypted registration information associated with the registration identifier included in the received registration data request in registration data information (for example, stored in the registration data information storage unit 105). (Step C5). The registration data search unit 107 transmits the specified encrypted registration information to the verification preparation unit 121 in the verification device 119 (step C6).

照合装置119における照合準備部121は、登録データ検索部107が送信した暗号化登録情報を受信する。照合準備部121は、たとえば、擬似乱数を生成する手順に従い、乱数を生成する。照合準備部121は、受信した暗号化登録情報における各要素が該乱数乗された暗号文と、該乱数が暗号化された暗号文(説明の便宜上、「暗号化乱数」と表す)とを算出する。尚、ステップB1に関する処理にて説明したように、暗号化登録情報が登録データに含まれている各要素の暗号文を含むので、照合準備部121は、該暗号文を算出する処理において、登録データに含まれている各要素が乱数倍された値の暗号文を算出する。すなわち、照合準備部121は、該登録データに含まれている各要素が、該乱数を用いて変換された値の暗号文を算出する。また、ステップB1に関する処理にて説明したように、暗号化登録情報が暗号化第1指標を含むので、照合準備部121は、該暗号文を算出する処理において、暗号化第1指標の基である第1指標が乱数倍された値(第1掛け算結果)の暗号文である暗号化第1データを算出する(ステップC7)。尚、照合準備部121が、第1算出部を有しており、該第1算出部が、ステップC7に示した処理と同様の処理を実行することにより、該暗号化第1データを算出する態様であってもよい。   The collation preparation unit 121 in the collation device 119 receives the encrypted registration information transmitted from the registration data search unit 107. The collation preparation part 121 produces | generates a random number according to the procedure which produces | generates a pseudorandom number, for example. The verification preparation unit 121 calculates a ciphertext obtained by multiplying each element in the received encrypted registration information by the random number, and a ciphertext obtained by encrypting the random number (represented as “encrypted random number” for convenience of explanation). To do. As described in the processing related to step B1, since the encrypted registration information includes the ciphertext of each element included in the registration data, the verification preparation unit 121 performs registration in the process of calculating the ciphertext. The ciphertext is calculated with each element included in the data multiplied by a random number. That is, the collation preparation unit 121 calculates a ciphertext having a value obtained by converting each element included in the registration data using the random number. Further, as described in the processing related to step B1, since the encrypted registration information includes the encrypted first index, the collation preparation unit 121 performs the ciphertext calculation based on the encrypted first index. Encrypted first data which is a ciphertext of a value (first multiplication result) obtained by multiplying a certain first index by a random number is calculated (step C7). The collation preparation unit 121 has a first calculation unit, and the first calculation unit calculates the encrypted first data by executing the same process as the process shown in Step C7. An aspect may be sufficient.

照合準備部121は、算出した該値のうち、登録データが暗号化された値を表す要素と、該暗号化乱数とを含む照合登録情報を作成し(ステップC8)、作成した照合登録情報を、照合要求装置112における暗号化第2データ部114に送信する(ステップC9)。さらに、照合準備部121は、算出した該値に含まれる暗号化第1データを照合装置119における検証データ生成部123に送信する。   The collation preparation unit 121 creates collation registration information including an element representing a value obtained by encrypting the registration data among the calculated values and the encrypted random number (Step C8), and creates the collation registration information. And transmitted to the encrypted second data unit 114 in the verification requesting device 112 (step C9). Furthermore, the collation preparation unit 121 transmits the encrypted first data included in the calculated value to the verification data generation unit 123 in the collation device 119.

照合要求装置112における暗号化第2データ部114は、対象データ、及び、照合準備部121が送信した照合登録情報を受信する。暗号化第2データ部114は、図5に示す、ステップS101乃至ステップS104に示す処理を実行することによって、暗号化第2データを算出する。図5は、暗号化第2データ部114が暗号化第2データを算出する処理を示すフローチャートである。   The encrypted second data unit 114 in the verification requesting device 112 receives the target data and the verification registration information transmitted by the verification preparation unit 121. The encrypted second data unit 114 calculates the encrypted second data by executing the processes shown in steps S101 to S104 shown in FIG. FIG. 5 is a flowchart showing a process in which the encrypted second data unit 114 calculates the encrypted second data.

・ステップ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 second data unit 114 obtains a value (second index) obtained by subtracting the size of the registration data from a value indicating the degree of similarity between the target data and the registration data. Then, a ciphertext obtained by encrypting a value (second multiplication result) obtained by multiplying the random number that is the basis of the encrypted random number is calculated. That is, the encrypted second data unit 114 calculates a ciphertext having a value obtained by converting the second index using the random number.

暗号化第2データ部114は、算出した暗号化第2データと、照合登録情報における暗号化乱数とを含む暗号化第2情報を作成し(ステップC10)、作成した暗号化第2情報を、照合要求装置112における暗号化第2集合部115に送信する。   The encrypted second data unit 114 creates encrypted second information including the calculated encrypted second data and the encrypted random number in the verification registration information (step C10), and the created encrypted second information is It transmits to the encryption 2nd collection part 115 in the collation request | requirement apparatus 112. FIG.

照合要求装置112における暗号化第2集合部115は、暗号化第2データ部114が送信した暗号化第2情報を受信する。暗号化第2集合部115は、対象データが受理可能であるか否かを判定する基準である閾値tを読み取り、読み取った閾値tに基づき設定される区間[−t,0](すなわち、−tから0までの区間)に含まれている、ある値を算出する。たとえば、ある値は、整数値である。ある値は、複数であってもよい。   The encrypted second aggregation unit 115 in the verification requesting device 112 receives the encrypted second information transmitted by the encrypted second data unit 114. The encrypted second aggregation unit 115 reads a threshold value t that is a criterion for determining whether or not the target data is acceptable, and an interval [−t, 0] (that is, −−, which is set based on the read threshold value t). A certain value included in the interval from t to 0) is calculated. For example, one value is an integer value. A certain value may be plural.

以降、説明の便宜上、ある値は、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 second aggregation unit 115 calculates a value obtained by multiplying the encrypted random number included in the received encrypted second information by the integer value, and the calculated value and the encryption in the encrypted second information A value obtained by multiplying the second data is calculated. The encrypted second set unit 115 creates an encrypted second set including the calculated value and the encrypted second data in the received encrypted second information (step C11). The encrypted second set unit 115 transmits the created encrypted second set to the encrypted second mask unit 116 in the verification requesting device 112.

照合要求装置112における暗号化第2マスク部116は、暗号化第2集合部115が送信した暗号化第2集合を受信する。暗号化第2マスク部116は、たとえば、擬似乱数を算出する手順に従い、L個の乱数を算出し、該L個の乱数を含むマスク値集合(「乱数情報」とも表す)を作成し、作成したマスク値集合を、検証マスク部117に送信する。さらに、暗号化第2マスク部116は、受信した暗号化第2集合に含まれている各要素に関して、該要素と、マスク値集合に含まれている1つの要素とを掛け算した値を算出し、算出した値を含む暗号化第2マスク(「暗号化参照情報」とも表す)を作成する(ステップC12)。暗号化第2マスク部116は、作成した暗号化第2マスクを、照合要求装置112における照合データ部118に送信する。   The encrypted second mask unit 116 in the verification requesting device 112 receives the encrypted second set transmitted by the encrypted second set unit 115. The encryption second mask unit 116 calculates, for example, L random numbers according to a procedure for calculating pseudo-random numbers, and creates a mask value set (also referred to as “random number information”) including the L random numbers. The mask value set thus transmitted is transmitted to the verification mask unit 117. Further, the encryption second mask unit 116 calculates, for each element included in the received encryption second set, a value obtained by multiplying the element and one element included in the mask value set. Then, an encrypted second mask (also referred to as “encrypted reference information”) including the calculated value is created (step C12). The encrypted second mask unit 116 transmits the created encrypted second mask to the verification data unit 118 in the verification requesting device 112.

尚、暗号化第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 verification mask unit 117 in the verification requesting device 112 receives the mask value set transmitted by the encrypted second mask unit 116. Next, the verification mask unit 117 calculates a hash value by applying the hash function with the received mask value set as an input. The verification mask unit 117 generates a verification mask including the calculated hash value (step C13), and transmits the generated verification mask to the verification data unit 118 in the verification request device 112.

以降、検証マスクを、「検証情報」と表すこともある。また、検証マスク部を、「検証情報部」と表すこともある。   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 verification data unit 118 in the verification requesting device 112 receives the encrypted second mask transmitted by the encrypted second mask unit 116 and the verification mask transmitted by the verification mask unit 117. The collation data unit 118 rearranges the element order in the received second encryption set and the element order in the received verification mask according to a specific procedure. The collation data unit 118 creates collation data in which elements in the encrypted second mask after sorting and elements in the verification mask after sorting are associated (step C14). In this case, the I-th element (where I represents the element number) of the encryption second mask is associated with the I-th element of the verification mask. The collation data unit 118 transmits the created collation data to the verification data generation unit 123 in the collation device 119 (step C15).

照合装置119における検証データ生成部123は、照合準備部121が送信した暗号化第1データ、及び、照合データ部118が送信した照合データを受信する。検証データ生成部123は、受信した照合データに含まれる暗号化第2マスクの各要素に関して、該要素と、受信した暗号化第1データとを掛け算した値を算出する。検証データ生成部123は、暗号化第2マスクの第I要素に関して算出した値と、受信した照合データに含まれる検証マスクの第I要素とが関連付けされた検証データを作成し(ステップC16)、作成した検証データを、検証装置124における検証データ復号部110に送信する(ステップC17)。   The verification data generation unit 123 in the verification device 119 receives the encrypted first data transmitted from the verification preparation unit 121 and the verification data transmitted from the verification data unit 118. The verification data generation unit 123 calculates, for each element of the encrypted second mask included in the received verification data, a value obtained by multiplying the element and the received encrypted first data. The verification data generation unit 123 creates verification data in which the value calculated for the first element of the encrypted second mask is associated with the first element of the verification mask included in the received verification data (step C16). The created verification data is transmitted to the verification data decoding unit 110 in the verification device 124 (step C17).

検証装置124における検証データ復号部110は、検証データ生成部123が送信した検証データを受信し、さらに、鍵記憶部109から秘密鍵を読み取る。検証データ復号部110は、受信した検証データに含まれている暗号文を、読み取った秘密鍵を用いて復号することによって、該検証データが復号された復号後検証データを作成する(ステップC18)。検証データ復号部110は、作成した復号後検証データを、検証装置124における検証部111に送信する。   The verification data decryption unit 110 in the verification device 124 receives the verification data transmitted from the verification data generation unit 123 and further reads the secret key from the key storage unit 109. The verification data decryption unit 110 decrypts the ciphertext included in the received verification data using the read secret key, thereby creating decrypted verification data in which the verification data is decrypted (step C18). . The verification data decoding unit 110 transmits the generated post-decryption verification data to the verification unit 111 in the verification device 124.

検証装置124における検証部111は、検証データ復号部110が送信した復号後検証データを受信する。検証部111は、受信した復号後検証データにおいて検証データ復号部110が復号した値にハッシュ関数を適用することによりハッシュ値を算出する。検証部111は、算出したハッシュ値と、受信した復号後検証データに含まれるハッシュ値とを比較し、関連付けされた要素と一致するか否かを判定する。検証部111は、一致している要素がある場合に、一致を表す検証結果を作成し、一致する要素がない場合に、一致しないことを表す検証結果を作成する(ステップC19)。検証部111は、算出した検証結果を、照合装置119における判定部122に送信する(ステップC20)。   The verification unit 111 in the verification device 124 receives the decrypted verification data transmitted by the verification data decoding unit 110. The verification unit 111 calculates a hash value by applying a hash function to the value decrypted by the verification data decryption unit 110 in the received decrypted verification data. The verification unit 111 compares the calculated hash value with the hash value included in the received decrypted verification data, and determines whether or not it matches the associated element. The verification unit 111 creates a verification result indicating a match when there is a matching element, and creates a verification result indicating a mismatch when there is no matching element (step C19). The verification unit 111 transmits the calculated verification result to the determination unit 122 in the verification device 119 (step C20).

照合装置119における判定部122は、検証部111が送信した検証結果を受信する。判定部122は、検証結果が「一致」である場合に、判定結果として「受理」を算出し、検証結果が「不一致」である場合に、判定結果として「不受理」を算出する(ステップC21)。判定部122は、算出した判定結果を出力する(ステップC22)。   The determination unit 122 in the verification device 119 receives the verification result transmitted from the verification unit 111. When the verification result is “match”, the determination unit 122 calculates “accept” as the determination result, and when the verification result is “mismatch”, the determination unit 122 calculates “non-accept” as the determination result (step C21). ). The determination unit 122 outputs the calculated determination result (step C22).

尚、本実施形態に係る照合システム101が照合フェーズにて実行する処理は、図4A及び図4Bに例示された様態に限定されない。   In addition, the process which the collation system 101 which concerns on this embodiment performs in a collation phase is not limited to the aspect illustrated by FIG. 4A and 4B.

次に、第1の実施形態に係る照合システム101に関する効果について説明する。   Next, effects related to the matching system 101 according to the first embodiment will be described.

第1の実施形態に係る照合システム101によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。この理由は、照合処理に際して参照する、暗号化第1データと、暗号化第2データとが、通信接続可能な、複数の異なる装置にて、別々に算出されるからである。言い換えれば、本実施形態に係る照合システム101によれば、登録データと、対象データとの間の距離を算出可能な、暗号化第1データ及び暗号化第2データが、複数の異なる主体にて算出される。この結果、暗号化第1データ及び暗号化第2データのうち、少なくとも一方が傍受されたとしても、距離を復元することは不可能であるので、該暗号化第1データ及び暗号化第2データに基づく照合処理において、情報が漏洩するリスクは軽減する。   According to the collation system 101 according to the first embodiment, it is possible to calculate an index that enables safer collation processing between information to be collated and information to be referred to. This is because the encrypted first data and the encrypted second data that are referred to in the collation process are separately calculated by a plurality of different devices that can be connected to each other. In other words, according to the collation system 101 according to the present embodiment, the encrypted first data and the encrypted second data that can calculate the distance between the registration data and the target data are a plurality of different entities. Calculated. As a result, even if at least one of the encrypted first data and the encrypted second data is intercepted, it is impossible to restore the distance. Therefore, the encrypted first data and the encrypted second data In the matching process based on, the risk of information leakage is reduced.

さらに、第1の実施形態に係る照合システム101によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、照合処理において、受理するか否かを判定する基準を表す閾値tに基づく範囲に含まれる第1値を、対象データ及び登録データ間の距離から引いた値が暗号化された第2値を、距離を復号することなく求めることができるからである。尚、これらの処理は、主として、ステップC10及びステップC11にて実行される。   Furthermore, according to the collation system 101 according to the first embodiment, it is possible to perform further safer collation processing between information to be collated and information to be referred to. This is because, in the verification process, the first value included in the range based on the threshold value t representing the criterion for determining whether or not to accept is subtracted from the distance between the target data and the registered data. This is because the binary value can be obtained without decoding the distance. These processes are mainly executed in step C10 and step C11.

本実施形態に係る照合システム101によれば、検証装置124のみが、暗号文を復号することができるので、照合システム101において、登録データ装置102、記憶装置104、照合要求装置112、及び、照合装置119は、復号された第2値を参照することができない。また、検証装置124が復号する値は第2値が乱数によってマスクされた値であるので、検証装置124も復号された第2値を参照することができない。この結果、復号された距離に基づきテンプレートを復元するヒルクライミング攻撃を受ける可能性は低下する。   According to the collation system 101 according to the present embodiment, only the verification device 124 can decrypt the ciphertext. Therefore, in the collation system 101, the registered data device 102, the storage device 104, the collation request device 112, and the collation The device 119 cannot refer to the decoded second value. Since the value decrypted by the verification device 124 is a value obtained by masking the second value with a random number, the verification device 124 cannot refer to the decrypted second value. As a result, the possibility of receiving a hill climbing attack that restores the template based on the decoded distance is reduced.

さらに、第1の実施形態に係る照合システム101によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果を奏する。さらに、第1の実施形態に係る照合システム101によれば、たとえ、照合要求装置112が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果を奏する。   Furthermore, according to the verification system 101 according to the first embodiment, even if encrypted registration information including encrypted text in which registration data is encrypted or information transmitted / received between the devices leaks, At this time, there is an effect that the data is not accepted unless the target data whose distance from the registered data is equal to or less than the threshold value is used. Furthermore, according to the collation system 101 according to the first embodiment, even if the collation request device 112 repeatedly receives the target data, it is possible to keep the distance between the target data and the registered data confidential. There is an effect.

次に示すいずれの理由によっても、上述した効果を奏する。   The effects described above can be achieved for any of the following reasons.

・登録データ装置102における登録データ情報記憶部105には、暗号化部103が登録データを暗号化した暗号化登録情報が格納される。すなわち、記憶装置104は、暗号化登録情報を格納しているので、登録データを復元することができない。     The registration data information storage unit 105 in the registration data device 102 stores encrypted registration information obtained by encrypting the registration data by the encryption unit 103. That is, since the storage device 104 stores the encrypted registration information, the registration data cannot be restored.

・本実施形態に係る照合システム101においては、照合装置119が暗号化第1データを算出し、照合要求装置112が暗号化第2データを算出する分散処理の態様であるので、照合要求装置112、照合装置119、及び、記憶装置104が、距離を算出することはできない。     In the collation system 101 according to the present embodiment, since the collation apparatus 119 calculates the encrypted first data and the collation request apparatus 112 calculates the encrypted second data, the collation request apparatus 112 The collation device 119 and the storage device 104 cannot calculate the distance.

・検証装置124が算出するデータは、ハッシュ関数(ステップC13等における処理にて利用)や、乱数等(ステップC11、ステップC12等における処理にて利用)を用いて距離が隠ぺいされたデータである。したがって、第1の実施形態に係る照合システム101によれば、たとえ、このデータが傍受されたとしても、距離を推定することは難しい。     The data calculated by the verification device 124 is data in which the distance is concealed using a hash function (used in processing in step C13, etc.), a random number, etc. (used in processing in step C11, step C12, etc.). . Therefore, according to the collation system 101 according to the first embodiment, it is difficult to estimate the distance even if this data is intercepted.

したがって、第1の実施形態に係る照合システム101によれば、より安全な照合処理が可能である。   Therefore, according to the collation system 101 according to the first embodiment, safer collation processing is possible.

<第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 verification system 201 according to the second embodiment of the present invention will be described in detail. FIG. 6 is a block diagram showing a configuration of the collation system 201 according to the second embodiment of the present invention.

第2の実施形態に係る照合システム201は、大別して、登録データ装置102と、照合要求装置212と、記憶装置104と、照合装置219と、検証装置224とを有する。   The collation system 201 according to the second embodiment roughly includes a registration data device 102, a collation request device 212, a storage device 104, a collation device 219, and a verification device 224.

登録データ装置102は、暗号化部103を有する。   The registered data device 102 has an encryption unit 103.

記憶装置104は、識別子管理部106と、登録データ情報記憶部105と、登録データ検索部107とを有する。   The storage device 104 includes an identifier management unit 106, a registration data information storage unit 105, and a registration data search unit 107.

検証装置224は、鍵生成部108と、鍵記憶部109と、検証データ復号部110と、検証部111と、検証データ生成部223とを有する。   The verification device 224 includes a key generation unit 108, a key storage unit 109, a verification data decryption unit 110, a verification unit 111, and a verification data generation unit 223.

照合装置219は、照合登録情報要求部220と、照合準備部221と、判定部222とを有する。   The collation device 219 includes a collation registration information request unit 220, a collation preparation unit 221, and a determination unit 222.

照合要求装置212は、照合要求部213と、暗号化第2データ部214と、暗号化第2集合部215と、暗号化第2マスク部216と、検証マスク部217と、照合データ部218とを有する。   The verification request device 212 includes a verification request unit 213, an encrypted second data unit 214, an encrypted second aggregation unit 215, an encrypted second mask unit 216, a verification mask unit 217, and a verification data unit 218. Have

登録データ装置102と、照合要求装置212と、記憶装置104と、照合装置219と、検証装置224とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。   It is assumed that the registered data device 102, the verification requesting device 212, the storage device 104, the verification device 219, and the verification device 224 can communicate with each other via a communication network, for example.

尚、図6においては、照合システム201は、5つの装置を含む態様を例示したが、図6に例示された様態に限定されない。たとえば、登録データ装置102と、照合要求装置212とを含む第1ノード、記憶装置104と照合装置219とを含む第2ノードと、検証装置224を含む第3ノードとしてもよい。   In FIG. 6, the verification system 201 exemplifies a mode including five devices, but is not limited to the mode illustrated in FIG. 6. For example, a first node including the registered data device 102 and the verification requesting device 212, a second node including the storage device 104 and the verification device 219, and a third node including the verification device 224 may be used.

次に、本発明の第2の実施形態に係る照合システム201における処理について詳細に説明する。照合システム201における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。   Next, processing in the verification system 201 according to the second embodiment of the present invention will be described in detail. The processing in the verification system 201 is roughly divided into a preparation phase, a registration phase, and a verification phase.

照合システム201が、上述した各フェーズにて実行する処理について詳細に説明する。   Processing performed by the verification system 201 in each phase described above will be described in detail.

本実施形態に係る照合システム201に関する準備フェーズにおける処理は、第1の実施形態に係る照合システム101に関する準備フェーズにおける処理と同様である。このため、本実施形態に係る照合システム201に関する準備フェーズにおける処理に関する説明を省略する。さらに、本実施形態に係る照合システム201に関する登録フェーズにおける処理は、第1の実施形態に係る照合システム101に関する登録フェーズにおける処理と同様である。このため、本実施形態に係る照合システム201に関する登録フェーズにおける処理に関する説明を省略する。   The processing in the preparation phase related to the collation system 201 according to the present embodiment is the same as the processing in the preparation phase related to the collation system 101 according to the first embodiment. For this reason, the description regarding the process in the preparation phase regarding the collation system 201 which concerns on this embodiment is abbreviate | omitted. Furthermore, the process in the registration phase related to the collation system 201 according to the present embodiment is the same as the process in the registration phase related to the collation system 101 according to the first embodiment. For this reason, the description regarding the process in the registration phase regarding the collation system 201 which concerns on this embodiment is abbreviate | omitted.

図7A及び図7Bを参照しながら、本実施形態に係る照合システム201が、照合フェーズにて実行する処理について説明する。図7A及び図7Bは、照合フェーズにおいて、第2の実施形態に係る照合システム201が実行する処理の一例を示すフローチャートである。   With reference to FIG. 7A and FIG. 7B, processing executed by the matching system 201 according to the present embodiment in the matching phase will be described. FIG. 7A and FIG. 7B are flowcharts illustrating an example of processing executed by the verification system 201 according to the second embodiment in the verification phase.

照合要求装置212における照合要求部213は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部213は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップD1)。照合要求部213は、作成した該照合要求を、照合装置219における照合登録情報要求部220に送信する(ステップD2)。照合要求は、たとえば、該登録識別子を含む。   The collation request unit 213 in the collation request device 212 receives target data representing a target to be collated and a registration identifier. The verification request unit 213 creates a verification request for requesting verification of the received target data and the encrypted registration information associated with the received registration identifier (step D1). The verification request unit 213 transmits the generated verification request to the verification registration information request unit 220 in the verification device 219 (step D2). The verification request includes, for example, the registration identifier.

照合装置219における照合登録情報要求部220は、照合要求部213が送信した照合要求を受信し、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部220は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップD3)、作成した該登録データ要求を、記憶装置104における登録データ検索部107に送信する(ステップD4)。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。   The verification registration information request unit 220 in the verification device 219 receives the verification request transmitted by the verification request unit 213, and reads the registration identifier included in the received verification request. The verification registration information request unit 220 creates a registration data request for requesting encrypted registration information associated with the read registration identifier (step D3), and searches the registration data request in the storage device 104 for the created registration data request. It transmits to the part 107 (step D4). The registration data request can be realized using an aspect including the read registration identifier.

記憶装置104における登録データ検索部107は、照合登録情報要求部220が送信した登録データ要求を受信する。登録データ検索部107は、登録データ情報(たとえば、登録データ情報記憶部105に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップD5)。登録データ検索部107は、特定した暗号化登録情報を、照合装置219における照合準備部221に送信する(ステップD6)。   The registration data search unit 107 in the storage device 104 receives the registration data request transmitted by the verification registration information request unit 220. The registration data search unit 107 specifies encrypted registration information associated with the registration identifier included in the received registration data request in registration data information (for example, stored in the registration data information storage unit 105). (Step D5). The registration data search unit 107 transmits the specified encrypted registration information to the verification preparation unit 221 in the verification device 219 (step D6).

照合装置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 verification preparation unit 221 in the verification device 219 receives the encrypted registration information transmitted by the registration data search unit 107. The collation preparation part 221 produces | generates a random number according to the procedure which produces | generates a pseudorandom number, for example. The verification preparation unit 221 calculates a value obtained by multiplying each element in the received encrypted registration information by the random number and a ciphertext obtained by encrypting the random number (that is, “encrypted random number”). As described in the processing related to step B1 shown in the first embodiment, since the encrypted registration information includes the ciphertext of each element included in the registration data, the verification preparation unit 221 In the process of calculating a sentence, a ciphertext having a value obtained by multiplying each element included in the registered data by a random number is calculated. That is, the collation preparation unit 221 calculates a ciphertext having a value obtained by converting each element included in the registration data using the random number. Further, as described in the processing related to step B1, since the encrypted registration information includes the encrypted first index, the verification preparation unit 221 uses the encryption first index in the process of calculating the ciphertext. Encrypted first data which is a ciphertext having a value obtained by multiplying a certain first index by a random number is calculated (step D7). The collation preparation unit 221 creates collation registration information including an element representing the encrypted value of the registered data and the encrypted random number among the calculated values (step D8), and creates the collation registration information. Then, the data is transmitted to the encrypted second data unit 214 in the verification requesting device 212 (step D9). Further, the collation preparation unit 221 transmits the encrypted first data calculated in step D7 to the verification data generation unit 223 in the verification device 224 (step D10).

照合要求装置212における暗号化第2データ部214は、対象データ、及び、照合準備部221が送信した照合登録情報を受信する。暗号化第2データ部214は、上述したステップS101乃至ステップS104に示す処理を実行することによって、暗号化第2情報を作成する(ステップD11)。すなわち、暗号化第2情報は、暗号化乱数と、暗号化第2データとを含む。暗号化第2データ部214は、算出した暗号化第2情報を、照合要求装置212における暗号化第2集合部215に送信する。   The encrypted second data unit 214 in the verification request device 212 receives the target data and verification registration information transmitted by the verification preparation unit 221. The encrypted second data unit 214 creates encrypted second information by executing the processing shown in steps S101 to S104 described above (step D11). That is, the encrypted second information includes an encrypted random number and encrypted second data. The encrypted second data unit 214 transmits the calculated encrypted second information to the encrypted second aggregation unit 215 in the verification requesting device 212.

照合要求装置212における暗号化第2集合部215は、暗号化第2データ部214が送信した暗号化第2情報を受信する。暗号化第2集合部215は、対象データが受理可能であるか否かを判定する基準を表す閾値tを読み取り、読み取った閾値tに基づき設定される区間[−t,0](すなわち、−tから0までの区間)における含まれている、ある値を算出する。たとえば、ある値は、整数値である。ある値は、複数であってもよい。   The encrypted second collection unit 215 in the verification requesting device 212 receives the encrypted second information transmitted by the encrypted second data unit 214. The encryption second aggregation unit 215 reads a threshold value t indicating a criterion for determining whether or not the target data is acceptable, and an interval [−t, 0] (that is, −−, which is set based on the read threshold value t). A certain value included in the interval from t to 0) is calculated. For example, one value is an integer value. A certain value may be plural.

以降、説明の便宜上、ある値は、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 second collection unit 215 calculates a value obtained by multiplying the encrypted random number included in the received encrypted second information by the integer value, and the calculated value and the encryption in the encrypted second information A value obtained by multiplying the second data is calculated. The encrypted second set unit 215 creates an encrypted second set including the calculated value and the encrypted second data in the received encrypted second information (step D12). The encrypted second set unit 215 transmits the created encrypted second set to the encrypted second mask unit 216 in the verification requesting device 212.

照合要求装置212における暗号化第2マスク部216は、暗号化第2集合部215が送信した暗号化第2集合を受信する。暗号化第2マスク部216は、たとえば、擬似乱数を算出する手順に従い、L個の乱数を算出し、該L個の乱数を含むマスク値集合を作成し、作成したマスク値集合を、検証マスク部217に送信する。さらに、暗号化第2マスク部216は、受信した暗号化第2集合に含まれている各要素に関して、該要素と、マスク値集合に含まれている1つの要素とを掛け算した値を算出し、算出した値を含む暗号化第2マスクを作成する(ステップD13)。暗号化第2マスク部216は、作成した暗号化第2マスクを、照合要求装置212における照合データ部218に送信する。   The encrypted second mask unit 216 in the verification requesting device 212 receives the encrypted second set transmitted by the encrypted second set unit 215. The encryption second mask unit 216 calculates, for example, L random numbers according to a procedure for calculating pseudo-random numbers, creates a mask value set including the L random numbers, and uses the created mask value set as a verification mask. To the unit 217. Further, the encryption second mask unit 216 calculates, for each element included in the received encryption second set, a value obtained by multiplying the element and one element included in the mask value set. Then, an encrypted second mask including the calculated value is created (step D13). The encrypted second mask unit 216 transmits the created encrypted second mask to the verification data unit 218 in the verification request device 212.

照合要求装置212における検証マスク部217は、暗号化第2マスク部216が送信したマスク値集合を受信する。次に、検証マスク部217は、受信したマスク値集合を入力として、ハッシュ関数を適用することにより、ハッシュ値を算出する。検証マスク部217は、算出したハッシュ値を含む検証マスクを作成し(ステップD14)、作成した検証マスクを、照合要求装置212における照合データ部218に送信する。   The verification mask unit 217 in the verification requesting device 212 receives the mask value set transmitted by the encrypted second mask unit 216. Next, the verification mask unit 217 calculates a hash value by applying the hash function with the received mask value set as an input. The verification mask unit 217 generates a verification mask including the calculated hash value (step D14), and transmits the generated verification mask to the verification data unit 218 in the verification request device 212.

照合要求装置212における照合データ部218は、暗号化第2マスク部216が送信した暗号化第2マスク、及び、検証マスク部217が送信した検証マスクを受信する。照合データ部218は、特定の手順に従い、受信した暗号化第2集合における要素順、及び、受信した検証マスクにおける要素順を並び替える。照合データ部218は、並び替え後の暗号化第2マスクにおける要素、及び、並び替え後の検証マスクにおける要素が関連付けされた照合データを作成する(ステップD15)。この場合に、暗号化第2マスクの第I(ただし、Iは、要素番号を表す)要素は、検証マスクの第I要素に関連付けされている。照合データ部218は、作成した照合データを、検証装置224における検証データ生成部223に送信する(ステップD16)。   The verification data unit 218 in the verification request device 212 receives the encrypted second mask transmitted by the encrypted second mask unit 216 and the verification mask transmitted by the verification mask unit 217. The collation data unit 218 rearranges the element order in the received second encrypted set and the element order in the received verification mask according to a specific procedure. The collation data unit 218 creates collation data in which the element in the encrypted second mask after the rearrangement and the element in the verification mask after the rearrangement are associated (step D15). In this case, the I-th element (where I represents the element number) of the encryption second mask is associated with the I-th element of the verification mask. The verification data unit 218 transmits the generated verification data to the verification data generation unit 223 in the verification device 224 (step D16).

検証装置224における検証データ生成部223は、照合準備部221が送信した暗号化第1データ、及び、照合データ部218が送信した照合データを受信する。検証データ生成部223は、受信した照合データに含まれる暗号化第2マスクの各要素に関して、該要素と、受信した暗号化第1データとを掛け算した値を算出する。検証データ生成部223は、暗号化第2マスクの第I要素に関して算出した値と、受信した照合データに含まれる検証マスクの第I要素とが関連付けされた検証データを作成し(ステップD17)、作成した検証データを、検証装置224における検証データ復号部110に送信する。   The verification data generation unit 223 in the verification device 224 receives the encrypted first data transmitted from the verification preparation unit 221 and the verification data transmitted from the verification data unit 218. The verification data generation unit 223 calculates, for each element of the encrypted second mask included in the received collation data, a value obtained by multiplying the element and the received encrypted first data. The verification data generation unit 223 creates verification data in which the value calculated for the first element of the encrypted second mask is associated with the first element of the verification mask included in the received verification data (step D17). The created verification data is transmitted to the verification data decoding unit 110 in the verification device 224.

以降、ステップ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 verification system 201 according to the second embodiment will be described.

第2の実施形態に係る照合システム201によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。この理由は、照合処理に際して参照する、暗号化第1データと、暗号化第2データとが、通信接続可能な、複数の異なる装置にて、別々に算出されるからである。言い換えれば、本実施形態に係る照合システム201によれば、登録データと、対象データとの間の距離を算出可能な、暗号化第1データ及び暗号化第2データが異なる主体にて算出される。この結果、暗号化第1データ及び暗号化第2データのうち、少なくとも一方が傍受されたとしても、距離を復元することは不可能であるので、該暗号化第1データ及び暗号化第2データに基づく照合処理において、情報が漏洩するリスクは軽減する。   According to the collation system 201 according to the second embodiment, it is possible to calculate an index that enables safer collation processing between information to be collated and information to be referred to. This is because the encrypted first data and the encrypted second data that are referred to in the collation process are separately calculated by a plurality of different devices that can be connected to each other. In other words, according to the collation system 201 according to the present embodiment, the encrypted first data and the encrypted second data that can calculate the distance between the registered data and the target data are calculated by different entities. . As a result, even if at least one of the encrypted first data and the encrypted second data is intercepted, it is impossible to restore the distance. Therefore, the encrypted first data and the encrypted second data In the matching process based on, the risk of information leakage is reduced.

さらに、第2の実施形態に係る照合システム201によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理を可能が可能である。この理由は、照合処理において、受理するか否かを判定する基準を表す閾値tに基づく範囲に含まれる第1値を、対象データ及び登録データ間の距離から引いた値が暗号化された第2値を、距離を復号することなく求めることができるからである。尚、これらの処理は、主として、ステップD11及びステップD12にて実行される。   Furthermore, according to the collation system 201 according to the second embodiment, it is possible to perform further safer collation processing between information to be collated and information to be referred to. This is because, in the verification process, the first value included in the range based on the threshold value t representing the criterion for determining whether or not to accept is subtracted from the distance between the target data and the registered data. This is because the binary value can be obtained without decoding the distance. These processes are mainly executed in step D11 and step D12.

検証装置224のみが、暗号文を復号することができるので、照合システム201において、登録データ装置102、記憶装置104、照合要求装置212、及び、照合装置219は、復号された第2値を参照することができない。また、検証装置224が復号する値は第2値が乱数によってマスクされた値であるので、検証装置224も復号された第2値を参照することができない。この結果、復号された距離に基づきテンプレートを復元するヒルクライミング攻撃を受ける可能性は低下する。   Since only the verification device 224 can decrypt the ciphertext, in the collation system 201, the registered data device 102, the storage device 104, the collation request device 212, and the collation device 219 refer to the decrypted second value. Can not do it. Further, since the value decrypted by the verification device 224 is a value obtained by masking the second value with a random number, the verification device 224 cannot refer to the decrypted second value. As a result, the possibility of receiving a hill climbing attack that restores the template based on the decoded distance is reduced.

さらに、第2の実施形態に係る照合システム201によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果を奏する。さらに、第2の実施形態に係る照合システム201によれば、たとえ、照合要求装置212が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果を奏する。   Furthermore, according to the collation system 201 according to the second embodiment, even if the encrypted registration information including the ciphertext in which the registration data is encrypted or the information transmitted / received between the devices leaks, At this time, there is an effect that the data is not accepted unless the target data whose distance from the registered data is equal to or less than the threshold value is used. Furthermore, according to the collation system 201 according to the second embodiment, even if the collation requesting device 212 repeatedly receives the target data, it is possible to conceal the distance between the target data and the registered data. There is an effect.

次に示すいずれの理由によっても、上述した効果を奏する。   The effects described above can be achieved for any of the following reasons.

・登録データ装置102における登録データ情報記憶部105には、暗号化部103が登録データを暗号化した暗号化登録情報が格納される。すなわち、記憶装置104は、暗号化登録情報を格納しているので、登録データを復元することができない。     The registration data information storage unit 105 in the registration data device 102 stores encrypted registration information obtained by encrypting the registration data by the encryption unit 103. That is, since the storage device 104 stores the encrypted registration information, the registration data cannot be restored.

・本実施形態に係る照合システム201においては、照合装置219が暗号化第1データを算出し、照合要求装置212が暗号化第2データを算出する分散処理の態様であるので、照合要求装置212、照合装置219、及び、記憶装置104が、距離を算出することはできない。     In the collation system 201 according to this embodiment, since the collation apparatus 219 calculates the encrypted first data and the collation request apparatus 212 calculates the encrypted second data, the collation request apparatus 212 The collation device 219 and the storage device 104 cannot calculate the distance.

・検証装置224が算出するデータは、ハッシュ関数(ステップD14等における処理にて利用)や、乱数等(ステップD13、ステップD14等における処理にて利用)を用いて距離が隠ぺいされたデータである。したがって、第2の実施形態に係る照合システム201によれば、たとえ、このデータが傍受されたとしても、距離を推定することは難しい。     The data calculated by the verification device 224 is data in which the distance is concealed using a hash function (used in processing in step D14 or the like) or a random number (used in processing in step D13, step D14 or the like). . Therefore, according to the collation system 201 according to the second embodiment, it is difficult to estimate the distance even if this data is intercepted.

したがって、第2の実施形態に係る照合システム201によれば、より安全な照合処理が可能である。   Therefore, according to the collation system 201 according to the second embodiment, safer collation processing is possible.

<第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 verification system 401 according to the third embodiment of the present invention will be described in detail. FIG. 8 is a block diagram showing the configuration of the collation system 401 according to the third embodiment of the present invention.

第3の実施形態に係る照合システム401は、大別して、登録データ装置102と、照合要求装置412と、記憶装置104と、照合装置423と、検証装置422とを有する。   A collation system 401 according to the third embodiment roughly includes a registration data device 102, a collation request device 412, a storage device 104, a collation device 423, and a verification device 422.

登録データ装置102は、暗号化部103を有する。   The registered data device 102 has an encryption unit 103.

記憶装置104は、識別子管理部106と、登録データ情報記憶部105と、登録データ検索部107とを有する。   The storage device 104 includes an identifier management unit 106, a registration data information storage unit 105, and a registration data search unit 107.

検証装置422は、鍵生成部108と、鍵記憶部109と、検証データ復号部110と、検証部111と、検証データ生成部411とを有する。   The verification device 422 includes a key generation unit 108, a key storage unit 109, a verification data decryption unit 110, a verification unit 111, and a verification data generation unit 411.

照合装置423は、照合登録情報要求部415と、照合準備部416と、判定部417と、暗号化第1集合部418と、暗号化第1マスク部419と、検証マスク部420と、照合データ部421とを有する。   The collation device 423 includes a collation registration information request unit 415, a collation preparation unit 416, a determination unit 417, an encryption first aggregation unit 418, an encryption first mask unit 419, a verification mask unit 420, and collation data Part 421.

照合要求装置412は、照合要求部413と、暗号化第2データ部414とを有する。   The verification request device 412 includes a verification request unit 413 and an encrypted second data unit 414.

登録データ装置102と、照合要求装置412と、記憶装置104と、照合装置423と、検証装置422とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。   It is assumed that the registration data device 102, the verification requesting device 412, the storage device 104, the verification device 423, and the verification device 422 can communicate with each other via a communication network, for example.

尚、図8においては、照合システム401は、5つの装置を含む態様を例示したが、図8に例示された様態に限定されない。たとえば、登録データ装置102と、照合要求装置412とを含む第1ノード、記憶装置104と照合装置423とを含む第2ノードと、検証装置422を含む第3ノードとしてもよい。   In FIG. 8, the collation system 401 exemplifies a mode including five devices, but is not limited to the mode illustrated in FIG. 8. For example, a first node including the registered data device 102 and the verification requesting device 412, a second node including the storage device 104 and the verification device 423, and a third node including the verification device 422 may be used.

次に、本発明の第3の実施形態に係る照合システム401における処理について詳細に説明する。照合システム401における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。   Next, processing in the collation system 401 according to the third embodiment of the present invention will be described in detail. The processing in the verification system 401 is roughly divided into a preparation phase, a registration phase, and a verification phase.

照合システム401が、上述した各フェーズにて実行する処理について詳細に説明する。   Processing performed by the verification system 401 in each phase described above will be described in detail.

本実施形態に係る照合システム401に関する準備フェーズにおける処理は、第1の実施形態に係る照合システム101に関する準備フェーズにおける処理と同様である。このため、本実施形態に係る照合システム401に関する準備フェーズにおける処理に関する説明を省略する。さらに、本実施形態に係る照合システム401に関する登録フェーズにおける処理は、第1の実施形態に係る照合システム101に関する登録フェーズにおける処理と同様である。このため、本実施形態に係る照合システム401に関する準備フェーズにおける処理に関する説明を省略する。   The processing in the preparation phase related to the collation system 401 according to the present embodiment is the same as the processing in the preparation phase related to the collation system 101 according to the first embodiment. For this reason, the description regarding the process in the preparation phase regarding the collation system 401 concerning this embodiment is abbreviate | omitted. Furthermore, the process in the registration phase related to the collation system 401 according to the present embodiment is the same as the process in the registration phase related to the collation system 101 according to the first embodiment. For this reason, the description regarding the process in the preparation phase regarding the collation system 401 concerning this embodiment is abbreviate | omitted.

図9A及び図9Bを参照しながら、本実施形態に係る照合システム401が、照合フェーズにて実行する処理について説明する。図9A及び図9Bは、照合フェーズにおいて、第3の実施形態に係る照合システム401が実行する処理の一例を示すフローチャートである。   With reference to FIG. 9A and FIG. 9B, processing performed by the collation system 401 according to the present embodiment in the collation phase will be described. 9A and 9B are flowcharts illustrating an example of processing executed by the verification system 401 according to the third embodiment in the verification phase.

照合要求装置412における照合要求部413は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部413は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップF1)。照合要求部413は、作成した該照合要求を、照合装置423における照合登録情報要求部415に送信する(ステップF2)。照合要求は、たとえば、該登録識別子と、対象データとを含む。   The collation request unit 413 in the collation request device 412 receives target data representing a target to be collated and a registration identifier. The verification request unit 413 creates a verification request for requesting verification of the received target data and the encrypted registration information associated with the received registration identifier (step F1). The verification request unit 413 transmits the generated verification request to the verification registration information request unit 415 in the verification device 423 (step F2). The verification request includes, for example, the registration identifier and target data.

照合装置423における照合登録情報要求部415は、照合要求部413が送信した照合要求を受信し、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部415は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップF3)、作成した該登録データ要求を、記憶装置104における登録データ検索部107に送信する(ステップF4)。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。   The collation registration information request unit 415 in the collation device 423 receives the collation request transmitted by the collation request unit 413 and reads the registration identifier included in the received collation request. The verification registration information request unit 415 creates a registration data request for requesting encrypted registration information associated with the read registration identifier (step F3), and searches the registration data request in the storage device 104 for the created registration data request. It transmits to the part 107 (step F4). The registration data request can be realized using an aspect including the read registration identifier.

記憶装置104における登録データ検索部107は、照合登録情報要求部415が送信した登録データ要求を受信する。登録データ検索部107は、登録データ情報(たとえば、登録データ情報記憶部105に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップF5)。登録データ検索部107は、特定した暗号化登録情報を、照合装置423における照合準備部416に送信する(ステップF6)。   The registration data search unit 107 in the storage device 104 receives the registration data request transmitted by the verification registration information request unit 415. The registration data search unit 107 specifies encrypted registration information associated with the registration identifier included in the received registration data request in registration data information (for example, stored in the registration data information storage unit 105). (Step F5). The registration data search unit 107 transmits the specified encrypted registration information to the collation preparation unit 416 in the collation device 423 (step F6).

照合装置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 collation preparation unit 416 in the collation device 423 receives the encrypted registration information transmitted from the registration data search unit 107. For example, the collation preparation unit 416 generates a random number according to a procedure for calculating a pseudo-random number. The verification preparation unit 416 calculates a value obtained by multiplying each element in the received encrypted registration information by the random number and a ciphertext obtained by encrypting the random number (that is, “encrypted random number”). As described in the processing related to step B1, since the encrypted registration information includes the ciphertext of each element included in the registration data, the collation preparation unit 416 performs registration in the process of calculating the ciphertext. The ciphertext is calculated with each element included in the data multiplied by a random number. That is, the collation preparation unit 416 calculates a ciphertext having a value obtained by converting each element included in the registration data using the random number. Further, as described in the processing related to step B1, since the encrypted registration information includes the encrypted first index, the collation preparing unit 416 performs the ciphertext processing based on the encrypted first index. Encrypted first data that is a ciphertext having a value obtained by multiplying a certain first index by a random number is calculated (step F7). The collation preparation unit 416 creates collation registration information including an element representing registration data encrypted among the calculated values and the encrypted random number (step F8), and creates the collation registration information. And transmitted to the encrypted second data unit 414 in the verification requesting device 412 (step F9). Further, the collation preparation unit 416 creates encrypted first data information including the encrypted first data and the encrypted random number calculated in step F7, and uses the created encrypted first data information as the collation device 423. Is transmitted to the encrypted first set unit 418.

照合要求装置412における暗号化第2データ部414は、対象データ、及び、照合準備部416が送信した照合登録情報を受信する。暗号化第2データ部414は、上述したステップS101乃至ステップS104に示す処理を実行することによって、暗号化第2データを算出する(ステップF10)。すなわち、暗号化第2情報は、暗号化第2データを含む。暗号化第2データ部414は、算出した暗号化第2データを、検証装置422における検証データ生成部411に送信する(ステップF11)。   The encrypted second data unit 414 in the verification requesting device 412 receives the target data and verification registration information transmitted by the verification preparation unit 416. The encrypted second data unit 414 calculates the encrypted second data by executing the processes shown in steps S101 to S104 described above (step F10). That is, the encrypted second information includes the encrypted second data. The encrypted second data unit 414 transmits the calculated encrypted second data to the verification data generation unit 411 in the verification device 422 (step F11).

次に、照合装置423における暗号化第1集合部418は、照合準備部416が送信した、暗号化第1データと暗号化乱数とを含む暗号化第1データ情報を受信する。暗号化第1集合部418は、対象データが受理可能であるか否かを判定する基準を表す閾値tを読み取り、読み取った閾値tに基づき設定される区間[−t,0]に含まれている、ある値を算出する。たとえば、ある値は、整数値である。ある値は、複数であってもよい。   Next, the encrypted first collection unit 418 in the verification device 423 receives the encrypted first data information including the encrypted first data and the encrypted random number transmitted from the verification preparation unit 416. The first encryption set unit 418 reads a threshold value t indicating a criterion for determining whether or not the target data is acceptable, and is included in the section [−t, 0] set based on the read threshold value t. A certain value is calculated. For example, one value is an integer value. A certain value may be plural.

以降、説明の便宜上、ある値は、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 first encryption unit 418 calculates a value obtained by multiplying the encrypted random number included in the received encrypted first data information by the integer value, and is included in the calculated value and the encrypted first data information. A value obtained by multiplying the encrypted first data is calculated. The encrypted first set unit 418 creates an encrypted first set including the calculated value (step F12), and transmits the created encrypted first set to the encrypted first mask unit 419 in the verification device 423. .

照合装置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 first mask unit 419 in the verification device 423 receives the encrypted first set transmitted by the encrypted first set unit 418. The encryption first mask unit 419 calculates, for example, L random numbers according to a procedure for calculating a pseudo-random number, creates a mask value set including the L random numbers, and uses the created mask value set as a collation device. It transmits to the verification mask part 420 in 423. Furthermore, the encryption first mask unit 419 calculates, for each element included in the received first encryption set, a value obtained by multiplying the element and one element included in the mask value set. Then, an encrypted first mask including the calculated value is created (step F13). The encrypted first mask unit 419 transmits the created encrypted first mask to the verification data unit 421 in the verification device 423.

次に、照合装置423における検証マスク部420は、暗号化第1マスク部419が送信したマスク値集合を受信する。検証マスク部420は、受信したマスク値集合を入力として、ハッシュ関数を適用することにより、ハッシュ値を算出する。検証マスク部420は、算出したハッシュ値を含む検証マスクを作成し(ステップF14)、作成した検証マスクを、照合装置423における照合データ部421に送信する。   Next, the verification mask unit 420 in the verification device 423 receives the mask value set transmitted by the encrypted first mask unit 419. The verification mask unit 420 calculates a hash value by applying a hash function with the received mask value set as an input. The verification mask unit 420 generates a verification mask including the calculated hash value (step F14), and transmits the generated verification mask to the verification data unit 421 in the verification device 423.

次に、照合装置423における照合データ部421は、暗号化第1マスク部419が送信した暗号化第1マスク、及び、検証マスク部420が送信した検証マスクを受信する。照合データ部421は、特定の手順に従い、受信した暗号化第1マスクを並び替え、さらに、該特定の手順に従い受信した検証マスクを並び替える処理によって、並び替えられた結果を表す照合データを作成する(ステップF15)。照合データ部421は、作成した照合データを、検証装置422における検証データ生成部411に送信する(ステップF16)。   Next, the verification data unit 421 in the verification device 423 receives the encrypted first mask transmitted by the encrypted first mask unit 419 and the verification mask transmitted by the verification mask unit 420. The collation data unit 421 creates collation data representing the sorted result by rearranging the received encrypted first mask according to a specific procedure and further rearranging the received verification mask according to the specific procedure. (Step F15). The verification data unit 421 transmits the generated verification data to the verification data generation unit 411 in the verification device 422 (step F16).

次に、検証装置422における検証データ生成部411は、照合データ部421が送信した照合データ、及び、暗号化第2データ部414が送信した暗号化第2データを受信する。検証データ生成部411は、受信した照合データに含まれる暗号化第1マスクの各要素と、受信した暗号化第2データとを掛け算した値を算出し、算出した値と受信した照合データに含まれる検証マスクとを含む検証データを作成する(ステップF17)。検証データ生成部411は、作成した検証データを、検証装置422における検証データ復号部110に送信する。   Next, the verification data generation unit 411 in the verification device 422 receives the verification data transmitted by the verification data unit 421 and the encrypted second data transmitted by the encrypted second data unit 414. The verification data generation unit 411 calculates a value obtained by multiplying each element of the encrypted first mask included in the received verification data by the received encrypted second data, and is included in the calculated value and the received verification data Verification data including the verification mask to be generated is created (step F17). The verification data generation unit 411 transmits the created verification data to the verification data decoding unit 110 in the verification device 422.

以降、ステップ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 matching system 401 according to the third embodiment will be described.

第3の実施形態に係る照合システム401によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。この理由は、照合処理に際して参照する、暗号化第1データと、暗号化第2データとが、通信接続可能な、複数の異なる装置にて、別々に算出されるからである。言い換えれば、本実施形態に係る照合システム401によれば、登録データと、対象データとの間の距離を算出可能な、暗号化第1データ及び暗号化第2データが異なる主体にて算出される。この結果、暗号化第1データ及び暗号化第2データのうち、少なくとも一方が傍受されたとしても、距離を復元することは不可能であるので、該暗号化第1データ及び暗号化第2データに基づく照合処理において、情報が漏洩するリスクは軽減する。   According to the collation system 401 according to the third embodiment, it is possible to calculate an index that enables safer collation processing between information to be collated and information to be referred to. This is because the encrypted first data and the encrypted second data that are referred to in the collation process are separately calculated by a plurality of different devices that can be connected to each other. In other words, according to the collation system 401 according to the present embodiment, the encrypted first data and the encrypted second data that can calculate the distance between the registered data and the target data are calculated by different entities. . As a result, even if at least one of the encrypted first data and the encrypted second data is intercepted, it is impossible to restore the distance. Therefore, the encrypted first data and the encrypted second data In the matching process based on, the risk of information leakage is reduced.

さらに、第3の実施形態に係る照合システム401によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理を可能が可能である。この理由は、照合処理において、受理するか否かを判定する基準を表す閾値tに基づく範囲に含まれる第1値を、対象データ及び登録データ間の距離から引いた値が暗号化された第2値を、距離を復号することなく求めることができるからである。尚、これらの処理は、主として、ステップF17にて実行される。   Furthermore, according to the collation system 401 according to the third embodiment, it is possible to perform further safer collation processing between information to be collated and information to be referred to. This is because, in the verification process, the first value included in the range based on the threshold value t representing the criterion for determining whether or not to accept is subtracted from the distance between the target data and the registered data. This is because the binary value can be obtained without decoding the distance. These processes are mainly executed in step F17.

検証装置422のみが、暗号文を復号することができるので、照合システム401において、登録データ装置102、記憶装置104、照合要求装置412、及び、照合装置423は、復号された第2値を参照することができない。また、検証装置422が復号する値は第2値が乱数によってマスクされた値であるので、検証装置422も復号された第2値を参照することができない。この結果、復号された距離に基づきテンプレートを復元するヒルクライミング攻撃を受ける可能性は低下する。   Since only the verification device 422 can decrypt the ciphertext, in the verification system 401, the registered data device 102, the storage device 104, the verification request device 412 and the verification device 423 refer to the decrypted second value. Can not do it. Since the value decrypted by the verification device 422 is a value obtained by masking the second value with a random number, the verification device 422 cannot refer to the decrypted second value. As a result, the possibility of receiving a hill climbing attack that restores the template based on the decoded distance is reduced.

さらに、第3の実施形態に係る照合システム401によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果を奏する。さらに、第3の実施形態に係る照合システム401によれば、たとえ、照合要求装置412が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果を奏する。   Furthermore, according to the collation system 401 according to the third embodiment, even if encrypted registration information including ciphertext in which registration data is encrypted or information transmitted / received between devices leaks, At this time, there is an effect that the data is not accepted unless the target data whose distance from the registered data is equal to or less than the threshold value is used. Furthermore, according to the collation system 401 according to the third embodiment, even if the collation requesting device 412 repeatedly receives the target data, it is possible to conceal the distance between the target data and the registered data. There is an effect.

次に示すいずれの理由によっても、上述した効果を奏する。   The effects described above can be achieved for any of the following reasons.

・登録データ装置102における登録データ情報記憶部105には、暗号化部103が登録データを暗号化した暗号化登録情報が格納される。すなわち、記憶装置104は、暗号化登録情報を格納しているので、登録データを復元することができない。     The registration data information storage unit 105 in the registration data device 102 stores encrypted registration information obtained by encrypting the registration data by the encryption unit 103. That is, since the storage device 104 stores the encrypted registration information, the registration data cannot be restored.

・本実施形態に係る照合システム401においては、照合装置423が暗号化第1データを算出し、照合要求装置412が暗号化第2データを算出する分散処理の態様であるので、照合要求装置412、照合装置423、及び、記憶装置104が、距離を算出することはできない、
・検証装置422が算出するデータは、ハッシュ関数(ステップF14等における処理にて利用)や、乱数等(ステップF13等における処理にて利用)を用いて距離が隠ぺいされたデータである。したがって、第3の実施形態に係る照合システム401によれば、たとえ、このデータが傍受されたとしても、距離を推定することは難しい。
In the collation system 401 according to the present embodiment, the collation request device 412 is a distributed processing mode in which the collation device 423 calculates the encrypted first data and the collation request device 412 calculates the encrypted second data. The collation device 423 and the storage device 104 cannot calculate the distance.
The data calculated by the verification device 422 is data in which the distance is concealed using a hash function (used in processing in step F14 or the like), a random number or the like (used in processing in step F13 or the like). Therefore, according to the collation system 401 according to the third embodiment, it is difficult to estimate the distance even if this data is intercepted.

したがって、第3の実施形態に係る照合システム401によれば、より安全な照合処理が可能である。   Therefore, according to the verification system 401 according to the third embodiment, safer verification processing is possible.

<第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 matching system 501 according to the fourth embodiment of the present invention will be described in detail. FIG. 10 is a block diagram showing a configuration of a collation system 501 according to the fourth embodiment of the present invention.

第4の実施形態に係る照合システム501は、大別して、登録データ装置502と、照合要求装置512と、記憶装置504と、照合装置519と、検証装置524とを有する。   The collation system 501 according to the fourth embodiment broadly includes a registration data device 502, a collation request device 512, a storage device 504, a collation device 519, and a verification device 524.

登録データ装置502は、暗号化部503を有する。   The registered data device 502 includes an encryption unit 503.

記憶装置504は、識別子管理部506と、登録データ情報記憶部505と、登録データ検索部507とを有する。   The storage device 504 includes an identifier management unit 506, a registration data information storage unit 505, and a registration data search unit 507.

検証装置524は、鍵生成部508と、鍵記憶部509と、検証データ復号部510と、検証部511とを有する。   The verification device 524 includes a key generation unit 508, a key storage unit 509, a verification data decryption unit 510, and a verification unit 511.

照合装置519は、照合登録情報要求部520と、照合準備部521と、検証データ生成部523と、判定部522とを有する。   The collation device 519 includes a collation registration information request unit 520, a collation preparation unit 521, a verification data generation unit 523, and a determination unit 522.

照合要求装置512は、照合要求部513と、暗号化第2データ部514と、暗号化第2集合部515と、暗号化第2マスク部516と、検証マスク部517と、照合データ部518とを有する。   The verification request device 512 includes a verification request unit 513, an encrypted second data unit 514, an encrypted second set unit 515, an encrypted second mask unit 516, a verification mask unit 517, and a verification data unit 518. Have

登録データ装置502と、照合要求装置512と、記憶装置504と、照合装置519と、検証装置524とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。   It is assumed that the registration data device 502, the verification requesting device 512, the storage device 504, the verification device 519, and the verification device 524 can communicate with each other via a communication network, for example.

尚、図10においては、照合システム501は、5つの装置を含む態様を例示したが、図10に例示された様態に限定されない。たとえば、登録データ装置502と、照合要求装置512とを含む第1ノード、記憶装置504と照合装置519とを含む第2ノードと、検証装置524を含む第3ノードとしてもよい。   In addition, in FIG. 10, although the collation system 501 illustrated the aspect containing five apparatuses, it is not limited to the aspect illustrated in FIG. For example, a first node including the registration data device 502 and the verification requesting device 512, a second node including the storage device 504 and the verification device 519, and a third node including the verification device 524 may be used.

本実施形態に係る照合システム501は、2つのデータ(たとえば、対象データと、登録データ)との距離を、n(ただし、nは、自然数)次元ユークリッド距離を用いて算出する。   The collation system 501 according to the present embodiment calculates a distance between two pieces of data (for example, target data and registered data) using an n (where n is a natural number) dimensional Euclidean distance.

データ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 collation system 501 determines that the data X is acceptable when the distance D calculated according to Equation 4 is equal to or less than a threshold value t that represents a criterion for determining whether the target data is acceptable. . On the other hand, the collation system 501 determines that the data X is unacceptable when the distance D calculated according to Equation 4 is greater than the threshold value t.

本実施形態においては、加法に関して準同型性を有する公開鍵暗号としてModified−Elgamal暗号を用いる例を参照しながら、照合システム501における処理について説明する。しかし、Paillier暗号等の加法に関して準同型性を有する他の公開鍵暗号の場合であっても、本実施形態に係る照合システム501は、後述する説明と同様の処理を実行することによって、データXが受理可能であるか否かを判定することができる。   In the present embodiment, the processing in the verification system 501 will be described with reference to an example in which Modified-Elgamal encryption is used as public key encryption having homomorphism regarding addition. However, even in the case of other public key ciphers having homomorphism with respect to addition such as the Palier cipher, the collation system 501 according to the present embodiment performs the same process as described later, thereby performing the data X It can be determined whether or not is acceptable.

まず、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:生成する鍵の長さを表す値を含むセキュリティパラメータ1を受信する、
・ステップP2:位数がkビットの素数pである群Gと、その生成元gとを生成する、
・ステップP3:集合Zの中から、値xをランダムに選び、生成した生成元gのx乗を算出することによって、g(=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.

ただし、1(すなわち、1がkビット並んだビット列)は、セキュリティパラメータを表す、Zは、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:集合Zの中から第8値rをランダムに選ぶ、
・ステップQ3:公開鍵pkに含まれている生成元gを読み取り、読み取った生成元gの乱数r乗を算出することによって、g(=c[1]と表す)を算出する、
・ステップQ4:公開鍵pkに含まれている生成元gを読み取り、読み取った生成元gのm乗を算出することによって、gを算出する、
・ステップQ5:公開鍵pkに含まれている値yを読み取り、読み取った値yのr乗を算出することによって、yを算出する、
・ステップQ6:ステップQ4において算出した値、及び、ステップQ5において算出した値を掛け算することによって、y×g(=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])に従い演算することによって算出することができる。
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の暗号文を、復号アルゴリズムに従い復号することによって、gが復元されることを示す。 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に対して、暗号文(g,y×g)が算出される。該暗号文に対して復号アルゴリズムに従い処理を実行すると、復号結果Mとしてc[2]/(c[1])が算出される。 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]
=y×g/((g
=((g)×g/((g
=g・・・(式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に示された復号アルゴリズムを適用することによって、gが算出される。したがって、上述した鍵生成アルゴリズム、暗号化アルゴリズム、及び、復号アルゴリズムに従えば、適切に暗号化処理、及び、復号処理が実行される
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])
=(g,y×g)・・・(式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)
=(c[1],c[2]
=(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 collation system 501 according to the fourth embodiment of the present invention will be described in detail. The processing in the verification system 501 roughly includes a preparation phase, a registration phase, and a verification phase.

まず、図11を参照しながら、本実施形態に係る照合システム501が、準備フェーズにて実行する処理について説明する。図11は、準備フェーズにおいて、第4の実施形態に係る照合システム501が実行する処理の一例を示すシーケンス図(フローチャート)である。   First, the process executed in the preparation phase by the matching system 501 according to the present embodiment will be described with reference to FIG. FIG. 11 is a sequence diagram (flow chart) illustrating an example of processing executed by the matching system 501 according to the fourth embodiment in the preparation phase.

検証装置524における鍵生成部508は、セキュリティパラメータ1を受信する。鍵生成部508は、受信したセキュリティパラメータ1を用いて、たとえば、ステップP1乃至ステップP5に示された鍵生成アルゴリズムに従い、公開鍵pk、及び、秘密鍵skを生成する(ステップSA1)。鍵生成部508は、入力された値に対して、特定の値を算出するハッシュ関数Hを決定する(ステップSA2)。鍵生成部508は、該公開鍵pkと、該ハッシュ関数Hとを、照合システム501において公開する(ステップSA3)。鍵生成部508は、該秘密鍵skを、鍵記憶部509に格納する(ステップSA4)。 The key generation unit 508 in the verification device 524 receives the security parameter 1 k . The key generation unit 508 generates the public key pk and the secret key sk using the received security parameter 1 k , for example, according to the key generation algorithm shown in steps P1 to P5 (step SA1). The key generation unit 508 determines a hash function H for calculating a specific value for the input value (step SA2). The key generation unit 508 makes the public key pk and the hash function H public in the verification system 501 (step SA3). The key generation unit 508 stores the secret key sk in the key storage unit 509 (step SA4).

たとえば、照合システム501における鍵生成アルゴリズムが、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号における鍵生成アルゴリズムである場合の例を参照しながら、照合システム501における処理について説明する。この場合に、鍵生成部508は、セキュリティパラメータ1を受信する。鍵生成部508は、位数がkビットである素数pである群Gと、群Gに関する生成元gとを生成する。鍵生成部508は、所定の集合Zの中から値xをランダムに選び、生成元gのx乗を算出する。すなわち、鍵生成部508は、g(=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 verification system 501 is a key generation algorithm in Modified-Elgamal encryption that is one of public key cryptosystems having homomorphism with respect to addition, the processing in the verification system 501 will be described. explain. In this case, the key generation unit 508 receives the security parameter 1 k. The key generation unit 508 generates a group G that is a prime number p having an order of k bits and a generation source g related to the group G. Key generating unit 508 randomly selects a value x from a predetermined set Z p, and calculates the multiplication x of origin g. That is, the key generation unit 508 calculates g x (= y). The key generation unit 508 calculates a public key pk associated with the group G, the prime number p, the generation source g, and the calculated value y. The key generation unit 508 calculates sk = (pk, x) for the public key pk and the secret key associated with the value x.

図12を参照しながら、本実施形態に係る照合システム501が、登録フェーズにて実行する処理について説明する。図12は、登録フェーズにおいて、第4の実施形態に係る照合システム501が実行する処理の一例を示すシーケンス図である。   Processing performed in the registration phase by the collation system 501 according to the present embodiment will be described with reference to FIG. FIG. 12 is a sequence diagram illustrating an example of processing executed by the matching system 501 according to the fourth embodiment in the registration phase.

説明の便宜上、暗号化部503は、式10に示すように、複数の要素を含む登録データXを受信するとする。   For convenience of explanation, it is assumed that the encryption unit 503 receives registration data X including a plurality of elements as shown in Expression 10.

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 encryption unit 503 receives the registration data X as shown in Expression 10, and calculates the first index by calculating the sum of squares of the elements included in the registration data X (Expression 11).

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 encryption unit 503 encrypts the element x [i] included in the data X, thereby encrypting the encrypted text Enc (pk, x [i]) in which the element x [i] is encrypted. calculate. The encryption unit 503 calculates the encrypted first index cc1 obtained by encrypting the first index calculated according to Equation 11 by encrypting the first index. In this case, the ciphertext calculated by the encryption unit 503 can be expressed as shown in Expression 12.

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 encryption unit 503 creates encryption registration information including a value calculated according to Equation 12 (step SB1). The encryption registration information can be expressed as Equation 13.

(c1[1],・・・,c1[n],cc1)・・・(式13)。       (C1 [1],..., C1 [n], cc1) (Equation 13).

暗号化部503は、作成した暗号化登録情報(式13)を、照合装置519における照合準備部521に送信する(ステップ(SB2−1))。   The encryption unit 503 transmits the created encryption registration information (Formula 13) to the collation preparation unit 521 in the collation device 519 (step (SB2-1)).

加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の場合の例を用いながら、ステップSB1における処理を説明する。この場合に、暗号化部503は、集合Zの中から、複数の値(以降、説明の便宜上、「乱数」と表す)を選ぶ。暗号化部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 encryption unit 503 selects a plurality of values (hereinafter referred to as “random numbers” for convenience of explanation) from the set Z p . The plurality of random numbers selected by the encryption unit 503 are represented as r1 [1],..., R1 [n], and rr1.

暗号化部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 encryption unit 503 calculates the sum of squares according to Equation 11. Next, the encryption unit 503 reads the generation source g and the value y from the public key pk. The encryption unit 503 calculates a value (represented as “value 7”) obtained by multiplying the read generation source g by a random number. The encryption unit 503 calculates a value obtained by multiplying the read generator y by the random power and the read generator g multiplied by the “element included in the data X” (represented as “value 5”). . Further, the encryption unit 503 multiplies the read generator y by the random power and the value obtained by multiplying the read generator g by the square sum calculated according to Equation 11 (represented as “value 6”). Is calculated. Next, the encryption unit 503 calculates a ciphertext associated with the value 6 and the value 7 (that is, a ciphertext regarding the sum of squares). That is, the encryption unit 503 calculates the ciphertext represented by Equation 14. That is, the encryption unit 503 creates the ciphertext shown in Expression 14 for the data X using the public key pk.

(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 encryption unit 503 creates encryption registration information including a value calculated according to Equation 14 (step SB1). The encryption unit 503 transmits the created encryption registration information (for example, Expression 13) to the identifier management unit 506 in the verification device 519 (step (SB2-1)).

記憶装置504における識別子管理部506は、暗号化部503が送信した暗号化登録情報を受信し(ステップ(SB2−2))、受信した暗号化登録情報を一意に識別可能な登録識別子を作成する(ステップSB3)。識別子管理部506は、作成した登録識別子と、受信した暗号化登録情報とが関連付けされた登録データ情報を作成し、作成した該登録データ情報を、記憶装置504における登録データ情報記憶部505に格納する(ステップSB4)。識別子管理部506は、作成した該登録識別子を、登録データ装置502に送信する(ステップ(SB5−1))。   The identifier management unit 506 in the storage device 504 receives the encrypted registration information transmitted by the encryption unit 503 (step (SB2-2)), and creates a registration identifier that can uniquely identify the received encrypted registration information. (Step SB3). The identifier management unit 506 creates registration data information in which the created registration identifier is associated with the received encrypted registration information, and stores the created registration data information in the registration data information storage unit 505 in the storage device 504. (Step SB4). The identifier management unit 506 transmits the created registration identifier to the registration data device 502 (step (SB5-1)).

記憶装置504における登録データ装置502は、該登録識別子を受信し(ステップ(SB5−2))、たとえば、受信した該登録識別子を、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップSB6)。あるいは、登録データ装置502は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、該登録識別子を格納してもよい。また、識別子管理部506が、作成した該登録識別子を表示してもよい。   The registration data device 502 in the storage device 504 receives the registration identifier (step (SB5-2)), and displays the received registration identifier on a user interface (UI) such as a display (step SB6). Alternatively, the registration data device 502 may store the registration identifier in an IC (integrated_circuit) card such as an employee ID card or an identifier card. Further, the identifier management unit 506 may display the created registered identifier.

尚、本実施形態に係る照合システム501が登録フェーズにて実行する処理は、図12に例示された様態に限定されない。   In addition, the process which the collation system 501 which concerns on this embodiment performs in a registration phase is not limited to the aspect illustrated in FIG.

図13A及び図13Bを参照しながら、本実施形態に係る照合システム501が、照合フェーズにて実行する処理について説明する。図13A及び図13Bは、照合フェーズにおいて、第4の実施形態に係る照合システム501が実行する処理の一例を示すシーケンス図である。   With reference to FIG. 13A and FIG. 13B, processing executed by the matching system 501 according to the present embodiment in the matching phase will be described. 13A and 13B are sequence diagrams illustrating an example of processing executed by the matching system 501 according to the fourth embodiment in the matching phase.

照合要求装置512における照合要求部513は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部513は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップSC1)。照合要求部513は、作成した該照合要求を、照合装置519における照合登録情報要求部520に送信する(ステップ(SC2−1))。照合要求は、たとえば、該登録識別子を含む。   The collation request unit 513 in the collation request apparatus 512 receives target data representing a target to be collated and a registration identifier. The collation request unit 513 creates a collation request for requesting collation between the received target data and the encrypted registration information associated with the received registration identifier (step SC1). The verification request unit 513 transmits the generated verification request to the verification registration information request unit 520 in the verification device 519 (step (SC2-1)). The verification request includes, for example, the registration identifier.

照合装置519における照合登録情報要求部520は、照合要求部513が送信した照合要求を受信し(ステップ(SC2−2))、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部520は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップSC3)、作成した該登録データ要求を、記憶装置504における登録データ検索部507に送信する(ステップ(SC4−1))。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。   The verification registration information request unit 520 in the verification device 519 receives the verification request transmitted by the verification request unit 513 (step (SC2-2)) and reads the registration identifier included in the received verification request. The verification registration information request unit 520 creates a registration data request for requesting encrypted registration information associated with the read registration identifier (step SC3), and searches the registration data request in the storage device 504 for the registration data request thus created. It transmits to the part 507 (step (SC4-1)). The registration data request can be realized using an aspect including the read registration identifier.

記憶装置504における登録データ検索部507は、照合登録情報要求部520が送信した登録データ要求を受信する(ステップ(SC4−2))。登録データ検索部507は、登録データ情報(たとえば、登録データ情報記憶部505に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップSC5)。登録データ検索部507は、特定した暗号化登録情報を、照合装置519における照合準備部521に送信する(ステップ(SC6−1))。   The registration data search unit 507 in the storage device 504 receives the registration data request transmitted by the verification registration information request unit 520 (step (SC4-2)). The registration data search unit 507 specifies encrypted registration information associated with the registration identifier included in the received registration data request in registration data information (for example, stored in the registration data information storage unit 505). (Step SC5). The registration data search unit 507 transmits the specified encrypted registration information to the verification preparation unit 521 in the verification device 519 (step (SC6-1)).

照合装置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 collation preparation unit 521 in the collation device 519 receives the encrypted registration information (formula 13) transmitted by the registration data search unit 507 (step (SC6-2)). Next, for example, according to a procedure for generating a pseudo-random number, the collation preparation unit 521 calculates a value S (hereinafter referred to as a random number S), and calculates a ciphertext obtained by encrypting the random number S using the public key pk. To do. Furthermore, the collation preparation unit 521 calculates the random number S power of each element included in the encryption registration information. That is, the collation preparation unit 521 calculates c1 [i] {S} (where 1 ≦ i ≦ n) and encrypted first data cc1 {S} (step SC7).

ステップSC7に示した処理によって、照合準備部521は、暗号化登録情報を算出した基であるデータXに含まれている要素、及び、データXに関して式11に従い算出された二乗和に関して、それぞれ、乱数S倍された値が、公開鍵pkを用いて暗号化された値(式15)を算出する。   Through the process shown in step SC7, the collation preparation unit 521 relates to the elements included in the data X that is the basis for calculating the encrypted registration information and the sum of squares calculated according to the equation 11 with respect to the data X, respectively. A value (equation 15) obtained by encrypting the value multiplied by the random number S using the public key pk is calculated.

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 collation preparation unit 521 creates collation / registration information including the element related to the encrypted registration information and the ciphertext obtained by encrypting the random number S in the calculated value (Formula 15) (step SC8). The verification registration information can be expressed using the form shown in Expression 16.

(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 collation preparation unit 521 transmits the created collation registration information to the encrypted second data unit 514 in the collation requesting device 512 (step (SC9-1)). Further, the collation preparation unit 521 transmits the encrypted first data included in the calculated value to the verification data generation unit 523 in the collation device 519.

たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の場合の例を用いながら、ステップSC7における処理について説明する。この場合に、照合準備部521は、集合Zの中から、値(以降、説明の便宜上、「乱数」と表す。)を選ぶ。この処理にて照合準備部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 verification preparation unit 521, from the set Z p, the value (hereinafter, for convenience of explanation, expressed. A "random number") to select. The random number selected by the collation preparation unit 521 in this process is represented as r2 [0]. Furthermore, the collation preparation unit 521 generates a random number S according to a procedure for generating a pseudo-random number.

照合準備部521は、公開鍵pkから、生成元gと、値yとを読み取る。照合準備部521は、集合Zの中から、乱数xpを選ぶ。照合準備部521は、読み取った生成元gのr2[0]乗の値を算出する。照合準備部521は、読み取った生成元yの該r2[0]乗と、読み取った生成元gをS乗した値とを掛け算した値を算出する。照合準備部521は、算出した2つの値が関連付けされた暗号文を作成する。すなわち、照合準備部521は、これらの処理によって、乱数Sが公開鍵pkを用いて暗号化された値TEnc(pk,p,S)を算出する。 The collation preparation unit 521 reads the generation source g and the value y from the public key pk. Collation preparation unit 521, from among the set Z p, choose a random number xp. The collation preparation unit 521 calculates the value of the read generator g to the power of r2 [0]. The collation preparation unit 521 calculates a value obtained by multiplying the read generation source y by the r2 [0] power and a value obtained by multiplying the read generation source g by the S power. The collation preparation unit 521 creates a ciphertext in which the two calculated values are associated with each other. That is, the collation preparation unit 521 calculates a value TEnc (pk, p, S) obtained by encrypting the random number S using the public key pk through these processes.

照合準備部521が算出する暗号文は、式17に示すように表すこともできる。   The ciphertext calculated by the collation preparation unit 521 can also be expressed as shown in Expression 17.

(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 collation preparation unit 521 calculates a value obtained by multiplying the value of the element included in the registration data by the random number S power with respect to the encrypted registration information including the ciphertext represented by Expression 13. By this processing, the collation preparation unit 521 has multiplied the random number S with respect to the elements included in the data X that is the basis for calculating the registration data and the sum of squares calculated according to the equation 11 with respect to the data X. The value is encrypted using the public keys pk and xp.

上記の処理によって照合準備部521が算出する値は、式18のように表すことができる。   The value calculated by the collation preparation unit 521 through the above processing can be expressed as in Expression 18.

(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 collation preparation unit 521 creates collation registration information (c2 [0], c2 [1],..., C2 [n]) including values calculated according to Equation 15 (step SC8). The collation preparation unit 521 transmits the created collation registration information to the encrypted second data unit 514 in the collation requesting device 512 (step (SC9-1)). Further, the collation preparation unit 521 transmits the calculated encrypted first data (in the case of using the Modified-Elgamal cipher, the random number xp is added to the encrypted first data) to the verification data generation unit 523 in the collation device 519. To do.

照合要求装置512における暗号化第2データ部514は、照合する対象を表す対象データY、及び、照合準備部521が送信した照合登録情報(式16)を受信する(ステップ(SC9−2))。   The encrypted second data unit 514 in the verification requesting device 512 receives the target data Y representing the target to be verified and the verification registration information (Equation 16) transmitted by the verification preparation unit 521 (step (SC9-2)). .

説明の便宜上、対象データ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 second data unit 514, based on the received target data Y and the data X that is the basis for calculating the matching registration information based on the received matching registration information, and the distance between the target data Y, A ciphertext (represented as “encrypted second index”) obtained by encrypting a value (second index) obtained by subtracting the length of data X is calculated (step SC10).

たとえば、加法に関して準同型性を有する公開鍵暗号の一つである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 second data unit 514 calculates the length of the target data Y, for example, by calculating the square sum of the elements included in the received target data Y. Next, the encrypted second data unit 514 reads the 0th element (that is, the value obtained by encrypting the random number S) included in the verification registration information shown in Expression 16, and the read 0th element A value obtained by multiplying the value by “the length” is calculated. In this case, the value calculated by the encrypted second data unit 514 can be expressed as shown in Equation 20.

(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, Expression 20 is equivalent to Enc (pk, S × {y [1] {2} +... + Y [n] {2} }).

次に、暗号化第2データ部514は、照合登録情報に含まれている第i要素と、読み取り、対象データYに含まれている第i要素と読み取り、照合登録情報に含まれている第i要素が、「−2×対象データYに含まれている第i要素」乗された値を算出する。ただし、iは、自然数を表す。この場合に、暗号化第2データ部514が算出する値は、式21に示すように表すことができる。   Next, the encrypted second data unit 514 reads the i-th element included in the verification registration information, reads the i-th element included in the target data Y, and reads the i-th element included in the verification registration information. The value obtained by multiplying the i element by “−2 × the i th element included in the target data Y” is calculated. However, i represents a natural number. In this case, the value calculated by the encrypted second data unit 514 can be expressed as shown in Equation 21.

(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, Equation 21 is equivalent to Enc (pk, −2 × S × x [i] × y [i]).

次に、暗号化第2データ部514は、式21に従い算出した値と、第0要素に関して算出した値とを掛け算した値(式22)を算出する。   Next, the encrypted second data unit 514 calculates a value (Expression 22) obtained by multiplying the value calculated according to Expression 21 by the value calculated regarding the 0th element.

(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 second data unit 514 in the verification requesting device 512 includes an encrypted text (that is, an encrypted random number) c2 [0] in which the random number in the verification registration information is encrypted, and the calculated encrypted second data cc3. Encrypted second information including is created, and the created encrypted second information is transmitted to the encrypted second aggregation unit 515. The encrypted second information can be expressed as, for example, (c2 [0], cc3).

尚、以降の説明においては、説明の便宜上、「−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 second collection unit 515 in the verification requesting device 512 receives the encrypted second information transmitted by the encrypted second data unit 514. The second encryption set unit 515 reads a threshold value t representing a criterion for determining whether or not the target data is acceptable, and calculates a value included in the section divided based on the read threshold value t. For example, the encryption second aggregation unit 515 calculates an integer value ranging from “−t” to “−1”. Next, the encrypted second aggregation unit 515 calculates the power of the integer value of the encrypted random number c2 [0] included in the received encrypted second information, and further, the encryption included in the encrypted second information The value multiplied by the second data cc3 is calculated. The encrypted second set unit 515 creates an encrypted second set including the calculated value.

暗号化第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 second set unit 515 further creates a new encrypted second set in which the encrypted second data cc3 in the encrypted second information is added to the encrypted second set ( Step SC11).

説明の便宜上、暗号化第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 second set unit 515 can be expressed using, for example, the form shown in Expression 24.

(cc4[0],・・・,cc4[t])・・・(式24)。     (Cc4 [0],..., Cc4 [t]) (Equation 24).

暗号化第2集合部515は、作成した暗号化第2集合を、照合要求装置512における暗号化第2マスク部516に送信する。   The encrypted second set unit 515 transmits the created encrypted second set to the encrypted second mask unit 516 in the verification requesting device 512.

たとえば、加法に関して準同型性を有する公開鍵暗号の一つである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 second aggregation unit 515 receives the encrypted second information (c2 [0], cc3). Next, the second encryption unit 515 reads the threshold value t, and with respect to the encrypted random number c2 [0] included in the second encryption information, the power of each integer value ranging from “−t” to “−1”. Is calculated. Next, the encrypted second aggregation unit 515 calculates a value (that is, ciphertext) obtained by multiplying the calculated value by the encrypted second data cc3.

暗号化第2集合部515が暗号文を算出する処理は、たとえば、式25として表すことができる。   The process in which the encryption 2nd collection part 515 calculates a ciphertext can be represented as Formula 25, for example.

(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 Expression 25 is equivalent to Expression 26. Note that u represents an integer value from “−t” to “−1”.

(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 second set unit 515 creates an encrypted second set (Equation 24) that includes the value calculated by the process shown in Equation 25, and encrypts the created encrypted second set in the verification requesting device 512. It transmits to the 2nd mask part 516.

照合要求装置512における暗号化第2マスク部516は、暗号化第2集合部515が送信した暗号化第2集合を受信する。次に、暗号化第2マスク部516は、たとえば、擬似乱数を算出する手順に従い、(t+1)個の乱数R[0]、・・・、R[t]を算出する。この場合に、暗号化第2マスク部516は、算出した乱数を含むマスク値集合(R[0],・・・,R[t])を作成してもよい。   The encrypted second mask unit 516 in the verification requesting device 512 receives the encrypted second set transmitted by the encrypted second set unit 515. Next, the encrypted second mask unit 516 calculates (t + 1) random numbers R [0],..., R [t], for example, according to a procedure for calculating pseudo-random numbers. In this case, the encryption second mask unit 516 may create a mask value set (R [0],..., R [t]) including the calculated random number.

次に、暗号化第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 second mask unit 516 encrypts the random number R [i] calculated by encrypting the calculated random number R [i] (where 0 ≦ i ≦ t) using the public key pk. The encrypted ciphertext Enc (pk, R [i]) is generated. The encrypted second mask unit 516 multiplies the ciphertext cc4 [i] included in the received second encrypted set by the calculated ciphertext Enc (pk, R [i]) (formula 27). ) Is calculated.

Enc(pk,R[i])*cc4[i]・・・(式27)。     Enc (pk, R [i]) * cc4 [i] (Equation 27).

尚、式27は式28に等価である。   Equation 27 is equivalent to Equation 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 Equation 27 is represented as cc5 [i].

より具体的に、暗号化第2マスク部516は、式29に従い、値を算出する。   More specifically, the encrypted second mask unit 516 calculates a value according to Equation 29.

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 second mask unit 516 creates an encryption second mask including the calculated value (Formula 27) (step SC12).

加法に関して準同型性を有する公開鍵暗号の一つである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 second mask unit 516 receives the encrypted second set transmitted by the encrypted second set unit 515. Next, the encrypted second mask unit 516 calculates (t + 1) random numbers R [0],..., R [t], for example, according to a procedure for generating pseudo-random numbers. Next, the encryption second mask unit 516 reads the generation source g from the public key pk, and calculates the generation source g by a random number R [i] raised to the value g {R [i]} (where 0 ≦ i ≦ t) is calculated. Next, the encryption second mask unit 516 calculates a value (Equation 31) obtained by multiplying the second term of the ciphertext cc4 [i] included in the received encryption second set by the calculated value. To do.

(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 second mask unit 516 creates an encryption second mask (cc5 [1],... Cc5 [t]) that includes the value calculated according to Equation 31, and compares the created encryption second mask. The data is transmitted to the verification data unit 518 in the requesting device 512. The encrypted second mask unit 516 transmits the mask value set (R [0],..., R [t]) to the verification mask unit 517.

尚、式27を用いて算出された値を表すcc5[i]は、値D2(X,Y)を用いて式34として表すことができる。   Note that cc5 [i] representing the value calculated using Expression 27 can be expressed as Expression 34 using the value D2 (X, Y).

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 verification mask unit 517 receives the mask value set (R [0],..., R [t]) transmitted by the encrypted second mask unit 516. The verification mask unit 517 reads the generator g included in the public key pk, and the read generator g is R for each of the values (represented by random numbers R [i]) included in the mask value set. [I] The value multiplied is calculated. However, 0 ≦ i ≦ t. Next, the verification mask unit 517 uses the calculated value as an input and applies the hash function H to thereby apply a hash value H (g {R [i]} ) (hereinafter referred to as h1 [i]) to the value. Is calculated. That is, the hash value H (g {R [i]} ) calculated by the verification mask unit 517 can also be described as Expression 35.

H(g{R[0]}),
・・・,
H(g{R[t]})・・・(式35)。
H (g {R [0]} ),
...
H (g {R [t]} ) (Formula 35).

検証マスク部517は、算出したハッシュ値を含む検証マスクを作成する(ステップSC13)。たとえば、検証マスク部517が算出する検証マスクは、式36として表すことができる。   The verification mask unit 517 creates a verification mask including the calculated hash value (step SC13). For example, the verification mask calculated by the verification mask unit 517 can be expressed as Expression 36.

(h1[0],・・・,h1[t])・・・(式36)。       (H1 [0],..., H1 [t]) (Expression 36).

検証マスク部517は、作成した検証マスクを、照合要求装置512における照合データ部518に送信する。   The verification mask unit 517 transmits the created verification mask to the verification data unit 518 in the verification request device 512.

照合要求装置512における照合データ部518は、暗号化第2集合部515が送信した暗号化第2マスク(cc5[0],・・・,cc5[t])、及び、検証マスク部517が送信した検証マスクを受信する。   The verification data unit 518 in the verification requesting device 512 includes the encrypted second mask (cc5 [0],..., Cc5 [t]) transmitted by the encrypted second aggregation unit 515 and the verification mask unit 517. Receive the verification mask.

照合データ部518は、0からtに至る値(以降、[0,t]と表す)に関する順列πをランダムに作成する。順列πは、すなわち、区間[0,t]に含まれる任意の整数iに対してπ(i)は[0,t]の要素である条件、及び、区間[0,t]に含まれる各整数iについてπ(i)に重複がない条件を満たす。   The collation data unit 518 randomly creates a permutation π relating to values ranging from 0 to t (hereinafter referred to as [0, t]). The permutation π, that is, the condition that π (i) is an element of [0, t] for any integer i included in the interval [0, t], and each of the conditions included in the interval [0, t] The condition that π (i) does not overlap is satisfied for the integer i.

次に、照合データ部518は、作成した順列πに従い、受信した暗号化第2マスクに含まれている要素の順序を並び替え、さらに、作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える。   Next, the collation data unit 518 rearranges the order of the elements included in the received encrypted second mask according to the created permutation π, and further includes the received verification mask according to the created permutation π. Rearrange the order of the active elements.

説明の便宜上、作成した該順列πに従い、暗号化第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 collation data unit 518 creates information including the calculated cc6 [i] and the calculated h2 [i], and further stores the information regarding i included in the section [0, t]. Including verification data is created (step SC14). The collation data created by the collation data unit 518 can be expressed using, for example, the mode shown in Expression 38.

((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 collation data unit 518 transmits the created collation data (for example, the value shown in Expression 38) to the verification data generation unit 523 in the collation device 519 (step (SC15-1)).

照合装置519における検証データ生成部523は、照合準備部521が送信した暗号化第1データcc2(たとえば、式15)、及び、照合データ部518が送信した照合データ(たとえば、式38に示された値)を受信する(ステップ(SC15−2))。検証データ生成部523は、受信した照合データに含まれているcc6[i](ただし、0≦i≦t)を読み取り、読み取ったcc6[i]と、受信した暗号化第1データcc2とが掛け算された値(式39)を算出する。   The verification data generation unit 523 in the verification device 519 includes the encrypted first data cc2 (for example, Equation 15) transmitted by the verification preparation unit 521 and the verification data (for example, shown in Equation 38) transmitted by the verification data unit 518. (Step (SC15-2)). The verification data generation unit 523 reads cc6 [i] (where 0 ≦ i ≦ t) included in the received collation data, and the read cc6 [i] and the received encrypted first data cc2 The multiplied value (formula 39) is calculated.

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 data generation unit 523 is equivalent to the formula 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)])・・・(式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 data generation unit 523 calculates the value shown in Expression 42.

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 data generation unit 523 creates information (cc7 [i], h2 [i]) in which the calculated cc7 [i] is associated with h2 [i] included in the received verification data. The verification data generation unit 523 generates verification data including the generated information for i satisfying 0 ≦ i ≦ t (step SC16). For example, the verification data created by the verification data generation unit 523 can be expressed in the form shown in Expression 43.

((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 data decoding unit 510 transmits the created verification data to the verification data decoding unit 510 in the verification device 524 (step (SC17-1)).

加法に関して準同型性を有する公開鍵暗号の一つである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 data generation unit 523 receives the random number xp from the verification preparation unit 521 in addition to the encrypted first data cc2. The cc6 [i] (where 0 ≦ i ≦ t) included in the received verification data is read, the read cc6 [i] is transformed by the transformation parameter 1 / xp, and the received encrypted first data A value obtained by multiplying cc2 (that is, TEnc (pk, 1 / xp, cc2) * cc6 [i]) is calculated. Accordingly, for i satisfying 0 ≦ i ≦ t, the verification data generation unit 523 calculates the value shown in Expression 44.

(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 data generation unit 523 creates information in which the calculated cc7 [i] is associated with h2 [i] included in the received verification data. The verification data generation unit 523 generates verification data including the generated information for i satisfying 0 ≦ i ≦ t (step SC16). The verification data generation unit 523 transmits the created verification data (for example, Expression 43) to the verification data decoding unit 510 in the verification device 524 (step (SC17-1)).

検証装置524における検証データ復号部510は、検証データ生成部523が送信した検証データを受信し(ステップ(SC17−2))、さらに、鍵記憶部509から秘密鍵skを読み取る。次に、検証データ復号部510は、受信した検証データに含まれている暗号文cc7[i](ただし、0≦i≦t)を読み取り、読み取った暗号文cc7[i]を、秘密鍵skを用いて復号する。尚、検証データ復号部510が秘密鍵skを用いて、暗号文cc7[i]を復号する処理Decは、式45に示す態様にて表すことができる。   The verification data decryption unit 510 in the verification device 524 receives the verification data transmitted by the verification data generation unit 523 (step (SC17-2)), and further reads the secret key sk from the key storage unit 509. Next, the verification data decryption unit 510 reads the ciphertext cc7 [i] (where 0 ≦ i ≦ t) included in the received verification data, and uses the read ciphertext cc7 [i] as the secret key sk. Decode using The process Dec in which the verification data decryption unit 510 decrypts the ciphertext cc7 [i] using the secret key sk can be expressed in the form shown in Expression 45.

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 data decoding unit 510 calculates the value shown in Expression 46 by the above-described processing.

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 data decoding unit 510 creates information in which the calculated dd1 [i] is associated with h2 [i] included in the verification data. Next, the verification data decoding unit 510 generates post-decryption verification data including information generated regarding i satisfying 0 ≦ i ≦ t (step SC18). The post-decryption verification data created by the verification data decoding unit 510 can be expressed according to the form shown in Equation 47, for example.

((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 data decryption unit 510 decrypts cc7 [i] using the value x read from the secret key sk. That is, the procedure processed by the verification data decoding unit 510 can be expressed as shown in Expression 48.

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 data decoding unit 510 transmits the created post-decryption verification data to the verification unit 511 in the verification device 524.

検証装置524における検証部511は、検証データ復号部510が送信した復号後検証データ(式47)を受信する。検証部511は、受信した復号後検証データから、0≦i≦tなるiに関して、dd1[i]を読み取り、読み取ったdd1[i]にハッシュ関数Hが適用された値H(dd1[i])を算出する。   The verification unit 511 in the verification device 524 receives the decrypted verification data (formula 47) transmitted by the verification data decoding unit 510. The verification unit 511 reads dd1 [i] for i satisfying 0 ≦ i ≦ t from the received decrypted verification data, and a value H (dd1 [i]) obtained by applying the hash function H to the read dd1 [i]. ) Is calculated.

次に、検証部511は、0≦i≦tなるiに関して、復号後検証データからh2[i]を読み取り、読み取ったh2[i]と算出したH(dd1[i])とが一致するか否かを判定する。   Next, the verification unit 511 reads h2 [i] from the post-decryption verification data for i where 0 ≦ i ≦ t, and whether the read h2 [i] matches the calculated H (dd1 [i]). Determine whether or not.

検証部511は、0≦i≦tなるiのうち、少なくとも1つ以上のiに関して、h2[i]とH(dd1[i])とが一致する場合に、「一致」を表す検証結果を作成する。さもなくば、検証部511は、「不一致」を表す検証結果を作成する(ステップSC19)。   The verification unit 511 displays a verification result indicating “match” when h2 [i] and H (dd1 [i]) match for at least one i among 0 ≦ i ≦ t. create. Otherwise, the verification unit 511 creates a verification result indicating “mismatch” (step SC19).

検証部511は、算出した検証結果を、照合装置519における判定部522に送信する(ステップ(SC20−1))。   The verification unit 511 transmits the calculated verification result to the determination unit 522 in the verification device 519 (step (SC20-1)).

照合装置519における判定部522は、検証部511が送信した検証結果を受信する(ステップ(SC20−2))。判定部522は、検証結果が「一致」である場合に、判定結果として「受理」を算出し、検証結果が「不一致」である場合に、判定結果として「不受理」を算出する(ステップSC21)。判定部522は、算出した判定結果を出力してもよい(ステップSC22)。   The determination unit 522 in the verification device 519 receives the verification result transmitted by the verification unit 511 (step (SC20-2)). When the verification result is “match”, the determination unit 522 calculates “accept” as the determination result, and when the verification result is “mismatch”, the determination unit 522 calculates “non-accept” as the determination result (step SC21). ). The determination unit 522 may output the calculated determination result (step SC22).

次に、第4の実施形態に係る照合システム501に関する効果について説明する。   Next, effects related to the matching system 501 according to the fourth embodiment will be described.

第4の実施形態に係る照合システム501によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。さらに、第4の実施形態に係る照合システム501によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、第4の実施形態に係る照合システム501が、第1の実施形態に係る照合システム101が有する構成を含むからである。   According to the collation system 501 according to the fourth embodiment, it is possible to calculate an index that enables safer collation processing between information to be collated and information to be referred to. Furthermore, according to the collation system 501 according to the fourth embodiment, it is possible to perform further safer collation processing between information to be collated and information to be referred to. This is because the collation system 501 according to the fourth embodiment includes the configuration of the collation system 101 according to the first embodiment.

さらに、第4の実施形態に係る照合システム501によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果も奏する。さらに、第4の実施形態に係る照合システム501によれば、たとえ、照合要求装置512が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果も奏する。   Furthermore, according to the collation system 501 according to the fourth embodiment, even if the encrypted registration information including the ciphertext in which the registration data is encrypted or the information transmitted / received between the devices leaks, At this time, there is an effect that the data is not accepted unless the target data whose distance from the registered data is equal to or less than the threshold value is used. Furthermore, according to the collation system 501 according to the fourth embodiment, even if the collation requesting device 512 repeatedly receives the target data, it is possible to conceal the distance between the target data and the registered data. There is also an effect.

この理由は、第4の実施形態に係る照合システム501が有する構成が、第1の実施形態に係る照合システム101が有する構成を含むからである。   This is because the configuration of the verification system 501 according to the fourth embodiment includes the configuration of the verification system 101 according to the first embodiment.

さらに、第4の実施形態に係る照合システム501によれば、該照合システム501における処理負荷が少ないという効果を奏する。   Furthermore, according to the collation system 501 according to the fourth embodiment, there is an effect that the processing load in the collation system 501 is small.

この理由は、暗号化登録情報に含まれている情報量が、少ないからである。すなわち、暗号化登録情報は、登録データが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 verification system 601 according to the fifth exemplary embodiment of the present invention will be described in detail. FIG. 14 is a block diagram showing a configuration of a collation system 601 according to the fifth embodiment of the present invention.

第5の実施形態に係る照合システム601は、大別して、登録データ装置502と、照合要求装置612と、記憶装置504と、照合装置619と、検証装置624とを有する。   A collation system 601 according to the fifth embodiment roughly includes a registration data device 502, a collation request device 612, a storage device 504, a collation device 619, and a verification device 624.

登録データ装置502は、暗号化部503を有する。   The registered data device 502 includes an encryption unit 503.

記憶装置504は、識別子管理部506と、登録データ情報記憶部505と、登録データ検索部507とを有する。   The storage device 504 includes an identifier management unit 506, a registration data information storage unit 505, and a registration data search unit 507.

検証装置624は、鍵生成部508と、鍵記憶部509と、検証データ復号部510と、検証部511と、検証データ生成部623とを有する。   The verification device 624 includes a key generation unit 508, a key storage unit 509, a verification data decryption unit 510, a verification unit 511, and a verification data generation unit 623.

照合装置619は、照合登録情報要求部620と、照合準備部621と、判定部622とを有する。   The collation device 619 includes a collation registration information request unit 620, a collation preparation unit 621, and a determination unit 622.

照合要求装置612は、照合要求部613と、暗号化第2データ部614と、暗号化第2集合部615と、暗号化第2マスク部616と、検証マスク部617と、照合データ部618とを有する。   The verification request device 612 includes a verification request unit 613, an encrypted second data unit 614, an encrypted second set unit 615, an encrypted second mask unit 616, a verification mask unit 617, and a verification data unit 618. Have

登録データ装置502と、照合要求装置612と、記憶装置504と、照合装置619と、検証装置624とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。   It is assumed that the registration data device 502, the verification requesting device 612, the storage device 504, the verification device 619, and the verification device 624 can communicate with each other via a communication network, for example.

本実施形態においては、距離としてn次元ユークリッド距離の場合の例を参照しながら、本実施形態に係る照合システム601における処理について説明する。また、本実施形態では、加法に関して準同型性を有する公開鍵暗号としてModified−Elgamal暗号を用いる場合の例を参照しながら該処理について説明するが、Paillier暗号等の他の加法に関して準同型性を有する暗号を利用しても構わない。尚、本実施形態において、n次元ユークリッド距離およびModified−Elgamal暗号は、第4の実施形態におけるn次元ユークリッド距離、及び、Modified−Elgamal暗号と同様であるので、これらの説明については省略する。   In the present embodiment, a process in the matching system 601 according to the present embodiment will be described with reference to an example in the case of an n-dimensional Euclidean distance as a distance. Further, in the present embodiment, the processing will be described with reference to an example in the case of using the Modified-Elgamal cipher as a public key cipher having homomorphism with respect to the addition. You may use the encryption which has. In the present embodiment, the n-dimensional Euclidean distance and the Modified-Elgamal cipher are the same as the n-dimensional Euclidean distance and the Modified-Elgamal cipher in the fourth embodiment, and thus description thereof is omitted.

次に、本発明の第5の実施形態に係る照合システム601における処理について詳細に説明する。照合システム601における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。   Next, processing in the collation system 601 according to the fifth exemplary embodiment of the present invention will be described in detail. The processing in the verification system 601 roughly includes a preparation phase, a registration phase, and a verification phase.

まず、図15を参照しながら、本実施形態に係る照合システム601が、準備フェーズにて実行する処理について説明する。図15は、準備フェーズにおいて、第5の実施形態に係る照合システム601が実行する処理の一例を示すフローチャート(シーケンス図)である。   First, the process executed in the preparation phase by the collation system 601 according to the present embodiment will be described with reference to FIG. FIG. 15 is a flowchart (sequence diagram) illustrating an example of processing executed by the matching system 601 according to the fifth embodiment in the preparation phase.

検証装置624における鍵生成部508は、セキュリティパラメータ1を受信し、加法に関して準同型性を有する公開鍵暗号に従い、受信したセキュリティパラメータ1を用いて公開鍵pk、及び、秘密鍵skを生成する(ステップTA1)。尚、生成される公開鍵、及び、秘密鍵は、該鍵生成アルゴリズムに従い生成されるので、加法に関して準同型性を有する公開鍵暗号に準拠する。さらに、鍵生成部508は、入力された値に対して、特定の値を算出するハッシュ関数Hを決定する(ステップTA2)。鍵生成部508は、照合システム601における各部に、作成したハッシュ関数H、及び、生成した公開鍵を公開する(ステップTA3)。鍵生成部508は、生成した秘密鍵を鍵記憶部509に格納する(ステップTA4)。 The key generation unit 508 in the verification device 624 receives security parameters 1 k, in accordance with public key encryption with homomorphism respect additive, the public key pk using the security parameter 1 k received, and generates a secret key sk (Step TA1). Note that the generated public key and secret key are generated according to the key generation algorithm, and therefore conform to public key cryptography having homomorphism with respect to addition. Further, the key generation unit 508 determines a hash function H for calculating a specific value for the input value (step TA2). The key generation unit 508 discloses the created hash function H and the generated public key to each unit in the verification system 601 (step TA3). The key generation unit 508 stores the generated secret key in the key storage unit 509 (step TA4).

たとえば、鍵生成アルゴリズムが、加法に関して準同型性を有する公開鍵暗号の一つである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は、セキュリティパラメータ1を受信する。次に、鍵生成部508は、受信したセキュリティパラメータ1に基づき、位数がkビットである素数pである群Gと、群Gに関する生成元gとを生成する。鍵生成部508は、Zの中から値xをランダムに選び、生成元gのx乗を算出する。すなわち、鍵生成部508は、g(=y)を算出する。鍵生成部508は、群G、素数p、生成元g、及び、算出した値yが関連付けされた公開鍵pkを算出する(ステップTA1)。鍵生成部508は、公開鍵pk、及び、値xが関連付けされた(pk,x)を、秘密鍵skとして算出する(ステップTA1)。 The key generation unit 508 receives the security parameter 1 k. Next, the key generation unit 508 generates a group G that is a prime number p having a rank of k bits and a generation source g related to the group G based on the received security parameter 1 k . The key generation unit 508, selects from among Z p values x randomly calculates the multiplication x of origin g. That is, the key generation unit 508 calculates g x (= y). The key generation unit 508 calculates a public key pk associated with the group G, the prime number p, the generation source g, and the calculated value y (step TA1). The key generation unit 508 calculates (pk, x) associated with the public key pk and the value x as the secret key sk (step TA1).

次に、図16を参照しながら、本実施形態に係る照合システム601が、登録フェーズにて実行する処理について説明する。図16は、登録フェーズにおいて、第5の実施形態に係る照合システム601が実行する処理の一例を示すシーケンス図である。   Next, processing executed in the registration phase by the collation system 601 according to the present embodiment will be described with reference to FIG. FIG. 16 is a sequence diagram illustrating an example of processing executed by the matching system 601 according to the fifth embodiment in the registration phase.

登録データ装置502における暗号化部503は、式10に示すような複数の要素を含むデータXを受信する。暗号化部503は、受信したデータXに含まれている要素の二乗和(式11)を算出する。次に、暗号化部503は、データXに含まれている要素と、算出した二乗和とを、公開鍵pkを用いて暗号化する。次に、暗号化部503は、式12に従い算出された値が関連付けされた暗号化登録情報(式13)を作成する(ステップTB1)。   The encryption unit 503 in the registered data device 502 receives data X including a plurality of elements as shown in Expression 10. The encryption unit 503 calculates the sum of squares of the elements included in the received data X (Formula 11). Next, the encryption unit 503 encrypts the elements included in the data X and the calculated sum of squares using the public key pk. Next, the encryption unit 503 creates encrypted registration information (Formula 13) associated with the value calculated according to Formula 12 (Step TB1).

ステップTB1について、詳細に説明する。暗号化部503は、集合Zの中から、複数の値(以降、説明の便宜上、「乱数」と表す)を選ぶ。暗号化部503が選んだ複数の乱数を、r1[1]、・・・、r1[n]、及び、rr1と表す。 Step TB1 will be described in detail. The encryption unit 503 selects a plurality of values (hereinafter referred to as “random numbers” for convenience of explanation) from the set Z p . The plurality of random numbers selected by the encryption unit 503 are represented as r1 [1],..., R1 [n], and rr1.

暗号化部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 encryption unit 503 calculates the sum of squares according to Equation 11. Next, the encryption unit 503 reads the generation source g and the value y from the public key pk. The encryption unit 503 calculates a value (represented as “value 7”) obtained by multiplying the read generation source g by a random number. The encryption unit 503 calculates a value obtained by multiplying the read generator y by the random power and the value obtained by multiplying the read generator g by the “element included in the data X” (represented as “value 5”). ). Further, the encryption unit 503 multiplies the read generator y by the random power and the value obtained by multiplying the read generator g by the “square sum calculated according to Equation 11” (represented as “value 6”). ) Is calculated. Next, the encryption unit 503 calculates a ciphertext associated with the value 5 and the value 7 (that is, a ciphertext regarding the sum of squares). That is, the encryption unit 503 calculates the ciphertext represented by Expression 12. The encryption unit 503 creates encryption registration information (Formula 13) including the two ciphertexts (step TB1). The encryption unit 503 transmits the created encryption registration information to the identifier management unit 506 in the verification device 619 (step (TB2-1)).

記憶装置504における識別子管理部506は、暗号化部503が送信した暗号化登録情報を受信し(ステップ(TB2−2))、受信した暗号化登録情報を一意に識別可能な登録識別子を作成する(ステップTB3)。識別子管理部506は、作成した登録識別子と、受信した暗号化登録情報とが関連付けされた登録データ情報を作成し、作成した該登録データ情報を、記憶装置504における登録データ情報記憶部505に格納する(ステップTB4)。識別子管理部506は、作成した該登録識別子を、登録データ装置502に送信する(ステップ(TB5−1))。   The identifier management unit 506 in the storage device 504 receives the encrypted registration information transmitted by the encryption unit 503 (step (TB2-2)), and creates a registration identifier that can uniquely identify the received encrypted registration information. (Step TB3). The identifier management unit 506 creates registration data information in which the created registration identifier is associated with the received encrypted registration information, and stores the created registration data information in the registration data information storage unit 505 in the storage device 504. (Step TB4). The identifier management unit 506 transmits the created registration identifier to the registration data device 502 (step (TB5-1)).

記憶装置504における登録データ装置502は、該登録識別子を受信し(ステップ(TB5−2))、たとえば、受信した該登録識別子を、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップTB6)。あるいは、登録データ装置502は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、該登録識別子を格納してもよい。また、識別子管理部506が、作成した該登録識別子を表示してもよい。   The registration data device 502 in the storage device 504 receives the registration identifier (step (TB5-2)), and displays the received registration identifier on a user interface (UI) such as a display (step TB6). Alternatively, the registration data device 502 may store the registration identifier in an IC (integrated_circuit) card such as an employee ID card or an identifier card. Further, the identifier management unit 506 may display the created registered identifier.

尚、本実施形態に係る照合システム601が登録フェーズにて実行する処理は、図16に例示された様態に限定されない。   In addition, the process which the collation system 601 which concerns on this embodiment performs in a registration phase is not limited to the aspect illustrated in FIG.

図17A及び図17Bを参照しながら、本実施形態に係る照合システム601が、照合フェーズにて実行する処理について説明する。図17A及び図17Bは、照合フェーズにおいて、第5の実施形態に係る照合システム601が実行する処理の一例を示すシーケンス図である。   With reference to FIG. 17A and FIG. 17B, processing executed by the matching system 601 according to the present embodiment in the matching phase will be described. FIG. 17A and FIG. 17B are sequence diagrams illustrating an example of processing executed by the collation system 601 according to the fifth embodiment in the collation phase.

照合要求装置612における照合要求部613は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部613は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップSD1)。照合要求部613は、作成した該照合要求を、照合装置619における照合登録情報要求部620に送信する(ステップ(SD2−1))。照合要求は、たとえば、該登録識別子を含む。   The collation request unit 613 in the collation request device 612 receives target data representing a target to be collated and a registration identifier. The collation request unit 613 creates a collation request for requesting collation between the received target data and the encrypted registration information associated with the received registration identifier (step SD1). The verification request unit 613 transmits the generated verification request to the verification registration information request unit 620 in the verification device 619 (step (SD2-1)). The verification request includes, for example, the registration identifier.

照合装置619における照合登録情報要求部620は、照合要求部613が送信した照合要求を受信し(ステップ(SD2−2))、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部620は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップSD3)、作成した該登録データ要求を、記憶装置504における登録データ検索部507に送信する(ステップ(SD4−1))。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。   The verification registration information request unit 620 in the verification device 619 receives the verification request transmitted by the verification request unit 613 (step (SD2-2)), and reads the registration identifier included in the received verification request. The verification registration information request unit 620 creates a registration data request for requesting encrypted registration information associated with the read registration identifier (step SD3), and searches the registration data request in the storage device 504 for the registration data request. It transmits to the part 507 (step (SD4-1)). The registration data request can be realized using an aspect including the read registration identifier.

記憶装置504における登録データ検索部507は、照合登録情報要求部620が送信した登録データ要求を受信する(ステップ(SD4−2))。登録データ検索部507は、登録データ情報(たとえば、登録データ情報記憶部505に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップSD5)。登録データ検索部507は、特定した暗号化登録情報を、照合装置619における照合準備部621に送信する(ステップ(SD6−1))。   The registration data search unit 507 in the storage device 504 receives the registration data request transmitted by the verification registration information request unit 620 (step (SD4-2)). The registration data search unit 507 specifies encrypted registration information associated with the registration identifier included in the received registration data request in registration data information (for example, stored in the registration data information storage unit 505). (Step SD5). The registration data search unit 507 transmits the specified encrypted registration information to the collation preparation unit 621 in the collation device 619 (step (SD6-1)).

照合装置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 collation preparation unit 621 in the collation device 619 receives the encrypted registration information (formula 13) transmitted by the registration data search unit 507 (step (SD6-2)). For example, the collation preparation unit 621 generates a value S (hereinafter referred to as a random number S) according to a procedure for generating a pseudo-random number. The collation preparation unit 621 calculates a value obtained by raising each element included in the encrypted registration information to the value S and a ciphertext obtained by encrypting the random number (that is, “encrypted random number”). By this processing, the collation preparation unit 621 encrypts the encrypted data obtained by multiplying the registration data that is the basis of the encrypted registration information by “value S”, and the size of the registration data is “value”. A ciphertext obtained by encrypting the value multiplied by “S” (that is, “encrypted first data”) is calculated (step SD7). The collation preparation unit 621 creates collation registration information including a ciphertext having a value obtained by multiplying each value of the registration data among the calculated values by “value S” and the calculated encrypted random number (step SD8). The created verification registration information is transmitted to the encrypted second data unit 614 in the verification requesting device 612 (step (SD9-1)). Furthermore, the collation preparation unit 621 generates a ciphertext (ie, “encrypted first data”) having a value obtained by multiplying the size of the registered data by “value S” among the values calculated in step SD7. It transmits to the verification data generation part 623 in 624 (step (SD10-1)).

たとえば、加法に関して準同型性を有する公開鍵暗号の一つであるModified−Elgamal暗号の場合の例を参照しながら、ステップSD7、及び、ステップSD8について詳細に説明する。この場合に、照合準備部621は、集合Zの中から、値(以降、説明の便宜上、「乱数」と表す)を選ぶ。この処理にて暗号化部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 verification preparation unit 621, from the set Z p, the value (hereinafter, for convenience of explanation, referred to as "random number") to select. A plurality of random numbers selected by the encryption unit 503 in this process is represented as r2 [0]. Furthermore, the collation preparation part 621 produces | generates the random number S according to the procedure which produces | generates a pseudorandom number, for example.

照合準備部621は、公開鍵pkから、生成元gと、値yとを読み取る。暗号化部503は、読み取った生成元gのr2[0]乗の値を算出する。照合準備部621は、読み取った生成元yの該r2[0]乗と、読み取った生成元gをS乗した値とが掛け算された値を算出する。照合準備部621は、算出した2つの値が関連付けされた暗号文を作成する。すなわち、照合準備部621は、これらの処理によって、乱数Sが公開鍵pkを用いて暗号化された暗号文Enc(pk,S)(式49、すなわち、暗号化乱数)を算出する。   The collation preparation unit 621 reads the generation source g and the value y from the public key pk. The encryption unit 503 calculates the value of the read generator g to the power of r2 [0]. The collation preparation unit 621 calculates a value obtained by multiplying the read generator y by the r2 [0] power and the read generator g multiplied by S. The collation preparation unit 621 creates a ciphertext in which the two calculated values are associated. That is, the collation preparation unit 621 calculates the ciphertext Enc (pk, S) (formula 49, that is, the encrypted random number) obtained by encrypting the random number S using the public key pk through these processes.

(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 collation preparation unit 621 calculates a value (Formula 50) obtained by multiplying the value of the element included in the registration data by a random number S to the collation registration information including the ciphertext represented by Formula 16.

(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 collation preparation unit 621 has multiplied the random number S with respect to the elements included in the data X that is the basis for calculating the registration data and the sum of squares calculated according to the expression 11 with respect to the data X. A value (expression 15) whose value is encrypted using the public key pk is calculated (step SD7). The collation preparation unit 621 creates collation registration information (Formula 16) including the calculated value (Formula 15) (Step SD8). Through step SD7, the collation preparation unit 621 also calculates encrypted first data (cc2 in Expression 15) obtained by encrypting the value obtained by multiplying the square sum by S.

照合要求装置612における暗号化第2データ部614は、対象データY、及び、照合準備部621が送信した照合登録情報を受信する(ステップ(SD9−2))。暗号化第2データ部614は、上述したステップS101乃至ステップS104に示す処理を実行することによって、暗号化第2情報(c2[0],cc3)を作成する(ステップSD11)。すなわち、暗号化第2情報は、暗号化乱数c2[0]と、暗号化第2データcc3とを含む。   The encrypted second data unit 614 in the verification requesting device 612 receives the target data Y and the verification registration information transmitted by the verification preparation unit 621 (step (SD9-2)). The encrypted second data unit 614 creates the encrypted second information (c2 [0], cc3) by executing the processing shown in steps S101 to S104 described above (step SD11). That is, the encrypted second information includes the encrypted random number c2 [0] and the encrypted second data cc3.

たとえば、加法に関して準同型性を有する公開鍵暗号の一つである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 second data unit 614 calculates the size of the received target data Y, for example, by calculating the square sum of each element in the received data Y (Equation 19). Next, the encrypted second data unit 614 reads the encrypted random number c2 [0] in the verification registration information shown in Expression 16, and the value obtained by multiplying the read encrypted random number by the magnitude (Expression 20). ) Is calculated.

次に、暗号化第2データ部614は、照合登録情報に含まれている第i要素と、読み取り、対象データYに含まれている第i要素と読み取る。暗号化第2データ部614は、照合登録情報(式16)に含まれている第i要素が、「−2×対象データYに含まれている第i要素」乗された値(式21)を算出する。ただし、iは、自然数を表す。   Next, the encrypted second data unit 614 reads the i-th element included in the verification registration information and reads the i-th element included in the target data Y. The encrypted second data unit 614 is a value obtained by multiplying the i-th element included in the verification registration information (Expression 16) by “−2 × the i-th element included in the target data Y” (Expression 21). Is calculated. However, i represents a natural number.

暗号化第2データ部614は、暗号化乱数c2[0]と、算出した暗号化第2データcc3(式22)とを含む暗号化第2情報(c2[0],cc3)を作成する。暗号化第2データ部614は、作成した暗号化第2情報を、照合要求装置612における暗号化第2集合部615に送信する。   The encrypted second data unit 614 creates encrypted second information (c2 [0], cc3) including the encrypted random number c2 [0] and the calculated encrypted second data cc3 (Equation 22). The encrypted second data unit 614 transmits the created encrypted second information to the encrypted second aggregation unit 615 in the verification requesting device 612.

照合要求装置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 second aggregation unit 615 in the verification requesting device 612 receives the encrypted second information (c2 [0], cc3) transmitted by the encrypted second data unit 614. The second encryption set unit 615 reads the threshold value t and calculates an integer value from “−t” to “−1”. Next, the encrypted second aggregation unit 615 calculates the power of the integer of the encrypted random number c2 [0] in the received encrypted second information. By this process, the second set of encryption is each value (S × i) (where i is from −t to −1) from (S × (−t)) to (S × (−1)). A value obtained by encrypting (integer) is calculated. The encrypted second set is multiplied by each calculated value and the encrypted second data cc3 (Equation 23). The encrypted second set unit 615 creates an encrypted second set (Equation 24) including the calculated values (step SD12). The encrypted second mask unit 616 transmits the created mask value set and the created encrypted second set to the encrypted second mask unit 616 in the verification requesting device 612.

たとえば、加法に関して準同型性を有する公開鍵暗号の一つである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 second aggregation unit 615 receives the encrypted second information (c2 [0], cc3). Next, the second encryption set unit 615 reads the threshold value t, and with respect to the encrypted random number c2 [0] in the second encrypted information, a power of each integer value from “−t” to “−1”. Is calculated. Next, the encrypted second aggregation unit 615 calculates a value obtained by multiplying the calculated value by the encrypted second data cc3 in the encrypted second information (Formula 25). The encrypted second set unit 615 creates an encrypted second set (cc4 [0],..., Cc4 [t]) including the calculated value (step SD12). The encrypted second set unit 615 transmits the created encrypted second set to the encrypted second mask unit 616 in the verification requesting device 612.

照合要求装置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 second mask unit 616 in the verification requesting device 612 receives the encrypted second set transmitted by the encrypted second set unit 615. The encrypted second mask unit 616 calculates (t + 1) random numbers R [0],..., R [t], for example, according to a procedure for calculating pseudo-random numbers. In this case, the encrypted second mask unit 616 may create a mask value set (R [0],..., R [t]) associated with the calculated random number. Next, the encryption second mask unit 616 encrypts the calculated random number R [i] (where 0 ≦ i ≦ t) using the public key pk, thereby encrypting the random number R [i]. The encrypted ciphertext Enc (pk, R [i]) is generated. Next, the encryption second mask unit 616 multiplies the element cc4 [i] included in the received encryption second set by the calculated ciphertext Enc (pk, R [i]) ( Equation 27) is calculated. That is, the encrypted second mask unit 616 calculates the value shown in Equation 29 according to Equation 27 for i where 1 ≦ i ≦ n. The encryption second mask unit 616 creates an encryption second mask (cc5 [0],..., Cc5 [t]) including the calculated value (Equation 29) (step SD13). The encrypted second mask unit 616 transmits the created encrypted second mask to the verification data unit 618 in the verification request device 612. The encrypted second mask unit 616 transmits the mask value set (R [0],..., R [t]) to the verification mask unit 617.

加法に関して準同型性を有する公開鍵暗号の一つである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とを読み取り、集合Zから第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 second mask unit 616 performs the encryption process. The second set 615 receives the encrypted second set transmitted. Next, the encrypted second mask unit 616 calculates (t + 1) random numbers R [0],..., R [t], for example, according to a procedure for calculating pseudo-random numbers. Next, the encryption second mask unit 616 calculates the calculated random number R [i] (where 0 ≦ i ≦ t), and encrypts the calculated value using the public key pk, thereby generating a random number. Enc (pk, R [i]) in which R [i] is encrypted is created. That is, the encrypted second mask portion 616, selected from the public key pk, and a generator g, reads the value y, the eighth value ru [i] from the set Z p. Next, the encrypted second mask unit 616 creates Enc (pk, R [i]) in which the random number R [i] is encrypted according to Equation 51.

(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 second mask unit 616 multiplies the ciphertext cc4 [i] included in the received second set of encryption by the calculated ciphertext Enc (pk, R [i]). (Formula 52) is calculated.

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 second mask unit 616 in the verification requesting device 612 generates an encryption second mask (cc5 [1],... Cc5 [t]) including the calculated value (step SD13), and the generated encryption The second mask is transmitted to the collation data unit 618 in the collation requesting device 612. The encrypted second mask unit 616 transmits the mask value set (R [0],..., R [t]) to the verification mask unit 617 in the verification requesting device 612.

照合要求装置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 verification mask unit 617 in the verification requesting device 612 receives the mask value set (R [0],..., R [t]) transmitted by the encrypted second mask unit 616. The verification mask unit 617 reads the generator g included in the public key pk, and the read generator g is R for each of the values (represented as random numbers R [i]) included in the mask value set. [I] The value multiplied is calculated. By this processing, the verification mask unit 617 calculates a ciphertext in which the random number R [i] is encrypted. However, 0 ≦ i ≦ t. Next, the verification mask unit 617 calculates a hash value H (g {R [i]} ) (= h1 [i]) for the value by applying the hash function H with the calculated ciphertext as an input. . That is, the verification mask unit 617 calculates a hash value (Formula 35) related to the ciphertext. The verification mask unit 617 creates a verification mask (h1 [0],..., H1 [t]) including the calculated hash value (step SD14). The verification mask unit 617 transmits the created verification mask to the verification data unit 618 in the verification request device 612.

照合要求装置612における照合データ部618は、暗号化第2集合部615が送信した暗号化第2マスク(cc5[0],・・・,cc5[t])を受信する。照合データ部618は、さらに、検証マスク部617が送信した検証マスク(h1[0],・・・,h1[t])を受信する。   The verification data unit 618 in the verification requesting device 612 receives the encrypted second mask (cc5 [0],..., Cc5 [t]) transmitted by the encrypted second aggregation unit 615. The collation data unit 618 further receives the verification mask (h1 [0],..., H1 [t]) transmitted by the verification mask unit 617.

照合データ部618は、0からtに至る値(以降、[0,t]と表す)に関する順列πをランダムに作成する。次に、照合データ部618は、作成した順列πに従い、受信した暗号化第2集合に含まれている要素の順序を並び替え、作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える。この処理によって、照合データ部618は、暗号化第2集合における順序が並び替えられた(cc6[0],・・・,cc6[t])、及び、検証マスクにおける順序が並び替えられた(h2[0],・・・,h2[t])を算出する。   The collation data unit 618 randomly creates a permutation π relating to values ranging from 0 to t (hereinafter referred to as [0, t]). Next, the collation data unit 618 rearranges the order of elements included in the received encrypted second set according to the generated permutation π, and is included in the received verification mask according to the generated permutation π. Rearrange the order of elements. By this processing, the collation data unit 618 has rearranged the order in the second encryption set (cc6 [0],..., Cc6 [t]), and has rearranged the order in the verification mask ( h2 [0],..., h2 [t]) are calculated.

次に、照合データ部618は、算出したcc6[i]と、算出したh2[i]とが関連付けされた情報を作成し、さらに、区間[0,t]に含まれているiに関して、該情報を含む照合データ(式38)を作成する(ステップSD15)。照合データ部618は、作成した照合データを、検証装置624における検証データ生成部623に送信する(ステップ(SD16−1))。   Next, the collation data unit 618 creates information in which the calculated cc6 [i] and the calculated h2 [i] are associated with each other, and regarding i included in the section [0, t], Collation data (formula 38) including information is created (step SD15). The verification data unit 618 transmits the generated verification data to the verification data generation unit 623 in the verification device 624 (step (SD16-1)).

検証装置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 data generation unit 623 in the verification device 624 receives the encrypted first data cc2 transmitted from the verification preparation unit 621 (step (SD10-2)), and further, verification data transmitted from the verification data unit 618 (for example, (Value shown in Expression 38) is received (step (SD16-2)). For example, the verification data generation unit 623 reads the value cc6 [i] (where 0 ≦ i ≦ t) included in the received collation data, and the read value cc6 [i] and the received encrypted first A value cc7 [i] (formula 39) obtained by multiplying the data cc2 is calculated.

検証データ生成部623は、算出した値cc7[i]と、受信した照合データに含まれているh2[i]とが関連付けされた情報(cc7[i],h2[i])を作成する。検証データ生成部623は、0≦i≦tなるiに対して、作成した情報を含む検証データ(式43)を作成する(ステップSD17)。   The verification data generation unit 623 creates information (cc7 [i], h2 [i]) in which the calculated value cc7 [i] is associated with h2 [i] included in the received verification data. The verification data generation unit 623 generates verification data (formula 43) including the generated information for i satisfying 0 ≦ i ≦ t (step SD17).

たとえば、加法に関して準同型性を有する公開鍵暗号の一つである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 data generation unit 623 reads the value cc6 [i] (where 0 ≦ i ≦ t) included in the received verification data, and the read value cc6 [i] and the received encryption A value obtained by multiplying the first data cc2 (that is, cc2 * cc6 [i]) is calculated. Therefore, for i satisfying 0 ≦ i ≦ t, the verification data generation unit 623 calculates the value shown in Expression 39 (that is, cc7 [0] to cc7 [t]).

検証データ生成部623は、算出したcc7[i]と、受信した照合データに含まれているh2[i]とが関連付けされた情報(cc7[i],h2[i])を作成する。検証データ生成部623は、0≦i≦tなるiに対して、作成した情報を含む検証データを作成する。検証データ生成部623は、作成した検証データ(たとえば、式43)を、検証装置624における検証データ復号部510に送信する。   The verification data generation unit 623 creates information (cc7 [i], h2 [i]) in which the calculated cc7 [i] is associated with h2 [i] included in the received verification data. The verification data generation unit 623 generates verification data including the generated information for i satisfying 0 ≦ i ≦ t. The verification data generation unit 623 transmits the created verification data (for example, Expression 43) to the verification data decoding unit 510 in the verification device 624.

検証装置624における検証データ復号部510は、検証データ生成部623が送信した検証データ(たとえば、式43)を受信し、鍵記憶部509から秘密鍵skを読み取る。次に、検証データ復号部510は、検証データに含まれている暗号文cc7[i](ただし、0≦i≦t)を読み取り、秘密鍵skを用いて読み取った暗号文cc7[i]を復号することによって、値dd1[i](式45)を算出する。   The verification data decryption unit 510 in the verification device 624 receives the verification data (for example, Expression 43) transmitted from the verification data generation unit 623 and reads the secret key sk from the key storage unit 509. Next, the verification data decryption unit 510 reads the ciphertext cc7 [i] (where 0 ≦ i ≦ t) included in the verification data, and reads the ciphertext cc7 [i] read using the secret key sk. By decoding, the value dd1 [i] (formula 45) is calculated.

検証装置624における検証データ復号部510は、算出したdd1[i]と、検証データに含まれているh2[i]とが関連付けされた情報(dd1[i],h2[i])を作成する。次に、検証データ復号部510は、0≦i≦tなるiに関して作成した情報が含まれている復号後検証データ(式47)を作成する(ステップSD17)。検証データ生成部623は、作成した復号後検証データを、検証装置624における検証部511に送信する。   The verification data decoding unit 510 in the verification device 624 creates information (dd1 [i], h2 [i]) in which the calculated dd1 [i] is associated with h2 [i] included in the verification data. . Next, the verification data decoding unit 510 generates post-decoding verification data (formula 47) including information generated for i satisfying 0 ≦ i ≦ t (step SD17). The verification data generation unit 623 transmits the created post-decryption verification data to the verification unit 511 in the verification device 624.

以降、ステップ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 matching system 601 according to the fifth embodiment will be described.

第5の実施形態に係る照合システム601によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。さらに、第5の実施形態に係る照合システム601によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、第5の実施形態に係る照合システム601が、第2の実施形態に係る照合システム201が有する構成を含むからである。   According to the collation system 601 according to the fifth embodiment, it is possible to calculate an index that enables safer collation processing between information to be collated and information to be referred to. Furthermore, according to the collation system 601 according to the fifth embodiment, it is possible to perform further safer collation processing between information to be collated and information to be referred to. This is because the collation system 601 according to the fifth embodiment includes the configuration of the collation system 201 according to the second embodiment.

さらに、第5の実施形態に係る照合システム601によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果も奏する。さらに、第5の実施形態に係る照合システム601によれば、たとえ、照合要求装置612が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果も奏する。   Furthermore, according to the collation system 601 according to the fifth embodiment, even if the encrypted registration information including the ciphertext in which the registration data is encrypted or the information transmitted / received between the devices leaks, the collation processing is performed. At this time, there is an effect that the data is not accepted unless the target data whose distance from the registered data is equal to or less than the threshold value is used. Furthermore, according to the collation system 601 according to the fifth embodiment, even if the collation requesting device 612 repeatedly receives the target data, it is possible to conceal the distance between the target data and the registered data. There is also an effect.

この理由は、第5の実施形態に係る照合システム601が有する構成が、第2の実施形態に係る照合システム201が有する構成を含むからである。   This is because the configuration of the verification system 601 according to the fifth embodiment includes the configuration of the verification system 201 according to the second embodiment.

さらに、第5の実施形態に係る照合システム601によれば、該照合システム601における処理負荷が少ないという効果を奏する。   Furthermore, according to the collation system 601 according to the fifth embodiment, there is an effect that the processing load in the collation system 601 is small.

この理由は、暗号化登録情報に含まれている情報量が、少ないからである。すなわち、暗号化登録情報は、登録データが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 verification system 801 according to the sixth exemplary embodiment of the present invention will be described in detail. FIG. 18 is a block diagram showing a configuration of a collation system 801 according to the sixth embodiment of the present invention.

第6の実施形態に係る照合システム801は、大別して、登録データ装置502と、照合要求装置812と、記憶装置504と、照合装置823と、検証装置822とを有する。   The collation system 801 according to the sixth embodiment is roughly divided into a registration data device 502, a collation request device 812, a storage device 504, a collation device 823, and a verification device 822.

登録データ装置502は、暗号化部503を有する。   The registered data device 502 includes an encryption unit 503.

記憶装置504は、識別子管理部506と、登録データ情報記憶部505と、登録データ検索部507とを有する。   The storage device 504 includes an identifier management unit 506, a registration data information storage unit 505, and a registration data search unit 507.

検証装置822は、鍵生成部508と、鍵記憶部509と、検証データ復号部510と、検証部511と、検証データ生成部811とを有する。   The verification device 822 includes a key generation unit 508, a key storage unit 509, a verification data decryption unit 510, a verification unit 511, and a verification data generation unit 811.

照合装置823は、照合登録情報要求部815と、照合準備部816と、判定部817と、暗号化第1集合部818と、暗号化第1マスク部819と、検証マスク部820と、照合データ部821とを有する。   The collation device 823 includes a collation registration information request unit 815, a collation preparation unit 816, a determination unit 817, an encryption first aggregation unit 818, an encryption first mask unit 819, a verification mask unit 820, and collation data Part 821.

登録データ装置502と、照合要求装置812と、記憶装置504と、照合装置823と、検証装置822とは、たとえば、通信ネットワークを介して、相互に通信することが可能であるとする。   It is assumed that the registration data device 502, the verification requesting device 812, the storage device 504, the verification device 823, and the verification device 822 can communicate with each other via a communication network, for example.

照合要求装置812は、照合要求部813と、暗号化第2データ部814とを有する。   The verification requesting device 812 includes a verification request unit 813 and an encrypted second data unit 814.

本実施形態においては、距離としてn次元ユークリッド距離の場合の例を参照しながら、本実施形態に係る照合システム801における処理について説明する。また、本実施形態では、加法に関して準同型性を有する公開鍵暗号としてModified−Elgamal暗号を用いる場合の例を参照しながら該処理について説明するが、Paillier暗号等の他の加法に関して準同型性を有する暗号を利用しても構わない。尚、本実施形態において、n次元ユークリッド距離およびModified−Elgamal暗号は、第4の実施形態におけるn次元ユークリッド距離およびModified−Elgamal暗号と同様であるので、これらの説明については省略する。   In the present embodiment, processing in the matching system 801 according to the present embodiment will be described with reference to an example in which the distance is an n-dimensional Euclidean distance. Further, in the present embodiment, the processing will be described with reference to an example in the case of using the Modified-Elgamal cipher as a public key cipher having homomorphism with respect to the addition. You may use the encryption which has. In the present embodiment, the n-dimensional Euclidean distance and the Modified-Elgamal cipher are the same as the n-dimensional Euclidean distance and the Modified-Elgamal cipher in the fourth embodiment, and thus description thereof will be omitted.

次に、本発明の第6の実施形態に係る照合システム801における処理について詳細に説明する。照合システム801における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。   Next, processing in the verification system 801 according to the sixth embodiment of the present invention will be described in detail. The processing in the verification system 801 roughly includes a preparation phase, a registration phase, and a verification phase.

本実施形態に係る照合システム801に関する準備フェーズにおける処理は、第4の実施形態に係る照合システム501に関する準備フェーズにおける処理と同様である。このため、本実施形態に係る照合システム801に関する準備フェーズにおける処理に関する説明を省略する。さらに、本実施形態に係る照合システム801に関する登録フェーズにおける処理は、第4の実施形態に係る照合システム501に関する登録フェーズにおける処理と同様である。このため、本実施形態に係る照合システム801に関する登録フェーズにおける処理に関する説明を省略する。   The processing in the preparation phase related to the collation system 801 according to the present embodiment is the same as the processing in the preparation phase related to the collation system 501 according to the fourth embodiment. For this reason, the description regarding the process in the preparation phase regarding the collation system 801 concerning this embodiment is abbreviate | omitted. Furthermore, the processing in the registration phase related to the matching system 801 according to the present embodiment is the same as the processing in the registration phase related to the matching system 501 according to the fourth embodiment. For this reason, the description regarding the process in the registration phase regarding the collation system 801 which concerns on this embodiment is abbreviate | omitted.

図19A及び図19Bを参照しながら、本実施形態に係る照合システム801が、照合フェーズにて実行する処理について説明する。図19A及び図19Bは、照合フェーズにおいて、第6の実施形態に係る照合システム801が実行する処理の一例を示すシーケンス図である。   Processing performed in the verification phase by the verification system 801 according to the present embodiment will be described with reference to FIGS. 19A and 19B. 19A and 19B are sequence diagrams illustrating an example of processing executed by the matching system 801 according to the sixth embodiment in the matching phase.

照合要求装置812における照合要求部813は、照合する対象を表す対象データと、登録識別子とを受信する。照合要求部813は、受信した対象データと、受信した登録識別子に関連付けされた暗号化登録情報とを照合することを要求する照合要求を作成する(ステップSF1)。照合要求部813は、作成した該照合要求を、照合装置823における照合登録情報要求部815に送信する(ステップ(SF2−1))。照合要求は、たとえば、該登録識別子を含む。   The collation request unit 813 in the collation request device 812 receives target data representing a target to be collated and a registration identifier. The verification request unit 813 creates a verification request for requesting verification of the received target data and the encrypted registration information associated with the received registration identifier (step SF1). The verification request unit 813 transmits the generated verification request to the verification registration information request unit 815 in the verification device 823 (step (SF2-1)). The verification request includes, for example, the registration identifier.

照合装置823における照合登録情報要求部815は、照合要求部813が送信した照合要求を受信し(ステップ(SF2−2))、受信した該照合要求に含まれる登録識別子を読み取る。照合登録情報要求部815は、読み取った該登録識別子に関連付けされた暗号化登録情報を要求する登録データ要求を作成し(ステップSF3)、作成した該登録データ要求を、記憶装置504における登録データ検索部507に送信する(ステップ(SF4−1))。登録データ要求は、読み取った登録識別子を含む態様を用いて実現することができる。   The verification registration information request unit 815 in the verification device 823 receives the verification request transmitted by the verification request unit 813 (step (SF2-2)), and reads the registration identifier included in the received verification request. The verification registration information request unit 815 creates a registration data request for requesting encrypted registration information associated with the read registration identifier (step SF3), and searches the registration data request in the storage device 504 for a registration data request. It transmits to the part 507 (step (SF4-1)). The registration data request can be realized using an aspect including the read registration identifier.

記憶装置504における登録データ検索部507は、照合登録情報要求部815が送信した登録データ要求を受信する(ステップ(SF4−2))。登録データ検索部507は、登録データ情報(たとえば、登録データ情報記憶部505に格納されている)において、受信した登録データ要求に含まれている登録識別子に関連付けされた暗号化登録情報を特定する(ステップSF5)。登録データ検索部507は、特定した暗号化登録情報を、照合装置823における照合準備部816に送信する(ステップ(SF6−1))。   The registration data search unit 507 in the storage device 504 receives the registration data request transmitted by the verification registration information request unit 815 (step (SF4-2)). The registration data search unit 507 specifies encrypted registration information associated with the registration identifier included in the received registration data request in registration data information (for example, stored in the registration data information storage unit 505). (Step SF5). The registration data search unit 507 transmits the specified encrypted registration information to the collation preparation unit 816 in the collation device 823 (step (SF6-1)).

照合装置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 collation preparation unit 816 in the collation device 823 receives the encrypted registration information (c1 [1],..., C1 [n], cc1) transmitted by the registration data search unit 507 (step (SF6-2)). . Note that cc1 represents an encryption first index. For example, the collation preparation unit 816 calculates a random number S in accordance with a procedure for calculating a pseudo-random number, and calculates a value obtained by multiplying each element in the received encrypted registration information by the random number S to obtain a ciphertext (c2 [1 ],..., C2 [n], cc2). That is, the collation preparation unit 816 calculates a value obtained by multiplying each element of the registration data that is the basis of the encrypted registration information by calculating a value obtained by multiplying each element by the random number, The encrypted first data cc2 obtained by encrypting a value obtained by multiplying the first index relating to the registered data by a random number is calculated (step SF7).

照合準備部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 collation preparation unit 816 creates an encrypted random number c2 [0] calculated by encrypting the random number S. The verification preparation unit 816 encrypts the values (c2 [1],..., C2 [n]) obtained by encrypting each element of the registration data, which is the basis of the encrypted registration information, and the generated encrypted random number c2 [0. ] (C2 [0], c2 [1],..., C2 [n]) are created (step SF8). The collation preparation unit 816 transmits the created collation registration information to the encrypted second data unit 814 in the collation requesting device 812 (step (SF9-1)).

照合準備部816は、算出した暗号化第1データcc2と、乱数Sが暗号化された暗号化乱数c2[0]とを含む暗号化第1データ情報(式56)を作成し、作成した暗号化第1データ情報を、照合装置823における暗号化第1集合部818に送信する。   The verification preparation unit 816 creates encrypted first data information (formula 56) including the calculated encrypted first data cc2 and the encrypted random number c2 [0] obtained by encrypting the random number S, and creates the created encryption The encrypted first data information is transmitted to the encrypted first aggregation unit 818 in the verification device 823.

たとえば、暗号化第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 second data unit 814 in the verification requesting device 812 includes the target data Y and verification registration information (c2 [0], c2 [1],..., C2 [n]) transmitted by the verification preparation unit 816. Is received (step (SF9-2)). The encrypted second data unit 814 calculates the encrypted second data cc3 by executing the same processing as the processing shown in steps S101 to S104 (step SF10). The encrypted second data unit 814 transmits the calculated encrypted second data cc3 to the verification data generation unit 811 in the verification device 823 (step (SF11-1)).

次に、照合装置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 first encryption unit 818 in the verification device 823 receives the encrypted first data information (c2 [0], cc2) transmitted by the verification preparation unit 816. The encrypted first collection unit 818 reads the encrypted random number c2 [0] from the received encrypted first data information, and changes the read encrypted random number c2 [0] from “−t” to “−1”. A value representing the power of each integer value is calculated. Note that t is a threshold value t that represents a criterion for determining whether or not acceptance is possible. Next, the first encryption unit 818, for example, multiplies the calculated value by the encrypted first data cc2 included in the received encrypted first data information (formula 57, ie, encryption Sentence).

暗号化第1集合部818が暗号文を算出する処理は、たとえば、式57として表すことができる。   The process in which the encryption first collection unit 818 calculates the ciphertext can be expressed as, for example, Expression 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})・・・(式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 first aggregation unit 818 is the value shown in Equation 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))・・・(式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 first aggregation unit 818 sets the encrypted first data cc2 included in the received encrypted first data information to ff4 [0].

暗号化第1集合部818は、算出した値(すなわち、ff4[0]乃至ff4[t])を含む暗号化第1集合を作成する(ステップSF12)。たとえば、暗号化第1集合部818が作成する暗号化第1集合は、式60に示すような態様にて表すことができる。したがって、
(ff4[0],・・・,ff4[t])・・・(式60)。
The first encryption set unit 818 creates a first encryption set including the calculated values (that is, ff4 [0] to ff4 [t]) (step SF12). For example, the encrypted first set created by the encrypted first set unit 818 can be expressed in the form shown in Equation 60. Therefore,
(Ff4 [0],..., Ff4 [t]) (Equation 60).

暗号化第1集合部818は、作成した暗号化第1集合を、照合装置823における暗号化第1マスク部819に送信する。   The first encryption set unit 818 transmits the created first encryption set to the first encryption mask unit 819 in the verification device 823.

照合装置823における暗号化第1マスク部819は、暗号化第1集合部818が送信した暗号化第1集合(たとえば、式60)を受信する。次に、暗号化第1マスク部819は、たとえば、擬似乱数を算出する手順に従い、(t+1)個の乱数R[0]、・・・、R[t]を算出する。この場合に、暗号化第1マスク部819は、算出した乱数を含むマスク値集合(R[0],・・・,R[t])を作成してもよい。   The encrypted first mask unit 819 in the verification device 823 receives the encrypted first set (for example, Expression 60) transmitted by the encrypted first set unit 818. Next, the encrypted first mask unit 819 calculates (t + 1) random numbers R [0],..., R [t], for example, according to a procedure for calculating pseudo-random numbers. In this case, the encryption first mask unit 819 may create a mask value set (R [0],..., R [t]) including the calculated random number.

暗号化第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 first mask unit 819 encrypts the calculated random number R [i] (where 0 ≦ i ≦ t) using the public key pk, thereby encrypting the random number R [i]. (Pk, R [i]) is created. The encrypted first mask unit 819 multiplies the ciphertext ff4 [i] included in the received first encrypted set by the calculated ciphertext Enc (pk, R [i]) (formula 61 ) Is calculated.

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 first mask unit 819 calculates a value according to Equation 63 for i where 1 ≦ i ≦ t. That is,
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とを読み取り、所定の集合Zから第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 first mask unit 819 receives the encrypted first set transmitted by the encrypted first set unit 818. The encryption first mask unit 819 calculates (t + 1) random numbers R [0],..., R [t], for example, according to a procedure for calculating pseudo-random numbers. The encrypted first mask unit 819 encrypts the calculated random number R [i] (where 0 ≦ i ≦ t) using the public key pk, thereby encrypting the random number R [i]. (Pk, R [i]) is created. That is, the encrypted first mask part 819, the public key pk, and a generator g, reads a value y, selecting an eighth value ru [i] from the predetermined set Z p. Next, the encrypted first mask unit 819 creates Enc (pk, R [i]) in which the random number R [i] is encrypted according to Equation 64.
(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 first mask unit 819 multiplies the ciphertext ff4 [i] included in the received first encrypted set by the calculated ciphertext Enc (pk, R [i]). (Expression 65) is calculated. The process in step SF13 calculates a value (formula 65) obtained by multiplying the ciphertext ff4 [i] included in the received encrypted first set and the calculated ciphertext Enc (pk, R [i]). It can also be expressed as a process to perform.

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 first mask unit 819 creates an encryption first mask (ff5 [0],..., Ff5 [t]) that includes the value calculated according to Expression 65 (step SF13), and creates the encryption first mask that has been created. One mask is transmitted to the verification data generation unit 811 in the verification device 823. The encrypted first mask unit 819 transmits the mask value set (R [0],..., R [t]) to the verification mask unit 820 in the verification device 823.

次に、照合装置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 verification mask unit 820 in the verification device 823 receives the mask value set (R [0],..., R [t]) transmitted by the encrypted first mask unit 819. The verification mask unit 820 reads the element value from the received mask value set, and calculates a value obtained by raising the generator g included in the public key to the “read value” power. However, 0 ≦ i ≦ t. The verification mask unit 820 calculates a hash value H (g R [i] ) (= h1 [i]) by using the calculated ciphertext as an input and applying a hash function. The verification mask unit 820 generates a verification mask (h1 [0],..., H1 [t]) including the calculated hash value (step SF14), and generates verification data in the verification device 823 using the generated verification mask. To the unit 811.

次に、照合装置823における照合データ部821は、検証マスク部820が送信した検証マスク(h1[0],・・・,h1[t])、及び、暗号化第1マスク部819が送信した暗号化第1マスク(ff5[0],・・・,ff5[t])を受信する。照合データ部821は、0からtに至る値(以降、[0,t]と表す)に関する順列πをランダムに作成する。ただし、tは、閾値を表す。照合データ部821は、作成した順列πに従い、受信した暗号化第1マスクに含まれている要素の順序を並び替え、作成した該順列πに従い、受信した検証マスクに含まれている要素の順序を並び替える。   Next, the verification data unit 821 in the verification device 823 transmits the verification mask (h1 [0],..., H1 [t]) transmitted by the verification mask unit 820 and the encrypted first mask unit 819. An encrypted first mask (ff5 [0],... Ff5 [t]) is received. The collation data unit 821 randomly creates a permutation π relating to values ranging from 0 to t (hereinafter referred to as [0, t]). However, t represents a threshold value. The collation data unit 821 rearranges the order of the elements included in the received encrypted first mask according to the generated permutation π, and the order of the elements included in the received verification mask according to the generated permutation π. Sort by.

説明の便宜上、作成した該順列πに従い、暗号化第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 collation data unit 821 creates information (ff6 [i], h2 [i]) in which the calculated ff6 [i] and the calculated h2 [i] are associated with each other, and further, the section [0, For i included in t], collation data including the information is created (step SF15). The collation data created by the collation data unit 821 can be expressed using the form shown in Expression 68, for example.

((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 collation data unit 821 transmits the created collation data (for example, the value shown in Expression 68) to the verification data generation unit 811 in the verification device 822 (step (SF16-1)).

次に、検証装置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 data generation unit 811 in the verification device 822 receives the verification data transmitted by the verification data unit 821 (step (SF16-2)), and the encrypted second data unit 814 transmits the encrypted data. 2 data cc3 is received (step (SF11-2)). The verification data generation unit 811 reads the element ff6 [i] (where 0 ≦ i ≦ t) included in the received collation data, reads ff6 [i], and the received encrypted second data cc3. Is multiplied by (Equation 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}))・・・(式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 data generation unit 811 is equivalent to the following formula 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×π(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 data generation unit 811 calculates cc7 [i].

検証データ生成部811は、算出したcc7[i]と、受信した照合データに含まれているh2[i]とが関連付けされた情報(cc7[i],h2[i])を作成する。検証データ生成部811は、0≦i≦tなるiに対して、作成した情報を含む検証データを作成する(ステップSF17)。たとえば、検証データ生成部811が作成する検証データは、式43に示す態様にて表すことができる。   The verification data generation unit 811 creates information (cc7 [i], h2 [i]) in which the calculated cc7 [i] is associated with h2 [i] included in the received verification data. The verification data generation unit 811 generates verification data including the generated information for i satisfying 0 ≦ i ≦ t (step SF17). For example, the verification data created by the verification data generation unit 811 can be expressed in the form shown in Expression 43.

たとえば、加法に関して準同型性を有する公開鍵暗号の一つである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 data generation unit 811 reads ff6 [i] (where 0 ≦ i ≦ t) included in the received collation data, reads the ff6 [i] read, and the received encrypted second A value obtained by multiplying the data cc3 (that is, cc3 * ff6 [i]) is calculated. Therefore, for i satisfying 0 ≦ i ≦ t, the verification data generation unit 811 calculates a value represented by Expression 71.

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 data generation unit 811 creates information (cc7 [i], h2 [i]) in which the calculated cc7 [i] is associated with h2 [i] included in the received verification data. The verification data generation unit 811 generates verification data including the generated information for i satisfying 0 ≦ i ≦ t. The verification data generation unit 811 transmits the created verification data (for example, Expression 43) to the verification data decoding unit 510 in the verification device 822.

以降、ステップ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 matching system 801 according to the sixth embodiment will be described.

第6の実施形態に係る照合システム801によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理が可能になる指標を算出することができる。さらに、第6の実施形態に係る照合システム801によれば、照合対象である情報と、参照すべき情報との、より一層安全な照合処理が可能である。この理由は、第6の実施形態に係る照合システム801が、第3の実施形態に係る照合システム401が有する構成を含むからである。   According to the collation system 801 according to the sixth embodiment, it is possible to calculate an index that enables safer collation processing between information to be collated and information to be referred to. Furthermore, according to the collation system 801 according to the sixth embodiment, it is possible to perform further safer collation processing between information to be collated and information to be referred to. This is because the collation system 801 according to the sixth embodiment includes the configuration of the collation system 401 according to the third embodiment.

さらに、第6の実施形態に係る照合システム801によれば、登録データが暗号化された暗号文を含む暗号化登録情報、または、各装置間において送受信される情報が漏洩しても、照合処理に際して、登録データとの距離が閾値以下である対象データを用いなければ受理されることがないという効果も奏する。さらに、第6の実施形態に係る照合システム801によれば、たとえ、照合要求装置812が対象データを繰り返し受信したとしても、該対象データと、登録データとの距離を秘匿することが可能であるという効果も奏する。   Furthermore, according to the collation system 801 according to the sixth embodiment, even if the encrypted registration information including the ciphertext in which the registration data is encrypted or the information transmitted / received between the devices leaks, At this time, there is an effect that the data is not accepted unless the target data whose distance from the registered data is equal to or less than the threshold value is used. Furthermore, according to the collation system 801 according to the sixth embodiment, even if the collation requesting device 812 repeatedly receives the target data, the distance between the target data and the registered data can be concealed. There is also an effect.

この理由は、第6の実施形態に係る照合システム801が有する構成が、第3の実施形態に係る照合システム401が有する構成を含むからである。   This is because the configuration of the verification system 801 according to the sixth embodiment includes the configuration of the verification system 401 according to the third embodiment.

さらに、第6の実施形態に係る照合システム801によれば、該照合システム801における処理負荷が少ないという効果を奏する。   Furthermore, according to the collation system 801 according to the sixth embodiment, there is an effect that the processing load in the collation system 801 is small.

この理由は、暗号化登録情報に含まれている情報量が、少ないからである。すなわち、暗号化登録情報は、登録データが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 index calculation system 901 according to the seventh embodiment of the present invention will be described in detail with reference to FIG. 20 and FIG. FIG. 20 is a block diagram showing a configuration of an index calculation system 901 according to the seventh embodiment of the present invention. FIG. 21 is a flowchart showing the flow of processing in the index calculation system 901 according to the seventh embodiment.

第7の実施形態に係る指標算出システム901は、第1指標算出部902と、第2指標算出部903とを有する。指標算出システム901は、さらに、記憶部904を有してもよい。   An index calculation system 901 according to the seventh embodiment includes a first index calculation unit 902 and a second index calculation unit 903. The index calculation system 901 may further include a storage unit 904.

第1指標算出部902、及び、記憶部904は、たとえば、通信ネットワークを介して、相互に通信接続することができる。第2指標算出部903、及び、記憶部904は、たとえば、通信ネットワークを介して、相互に通信接続することができる。   The first index calculation unit 902 and the storage unit 904 can be connected to each other via a communication network, for example. The second index calculation unit 903 and the storage unit 904 can be connected to each other via a communication network, for example.

第1指標算出部902、及び、第2指標算出部903は、通信ネットワークを介して、相互に通信接続可能であってもよい。   The first index calculation unit 902 and the second index calculation unit 903 may be communicable with each other via a communication network.

第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 index calculation unit 902 receives, for example, a first numerical sequence including a plurality of numerical values from an external device or the like, and represents a size related to the received first numerical sequence (for convenience of explanation, “first size Is expressed) (step S501). The first index calculation unit 902 encrypts a numerical value included in the received first numerical value sequence using an encryption key calculated according to an encryption method having homomorphism with respect to the addition, thereby obtaining the first numerical value sequence. An encrypted first numeric value sequence is generated (step S502). The first index calculation unit 902 calculates an encrypted first index in which the first size is encrypted by encrypting the calculated first size using the encryption key (step S503). The first index calculation unit 902 stores the created encrypted first numerical sequence in the storage unit 904 (step S504).

第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 index calculation unit 903 reads the encrypted first numerical value sequence created by the first index calculation unit 902 from the storage unit 904 (step S505). The second index calculation unit 903 receives, for example, a second numerical value sequence including a plurality of numerical values from an external device or the like, and represents a size related to the received second numerical value sequence (for convenience of explanation, “second size” Is expressed) (step S506). The second index calculation unit 903 performs an operation based on the read encrypted first numerical value sequence and the received second numerical value sequence according to an encryption method having homomorphism with respect to addition (step S507). In other words, the second index calculation unit 903 applies an operation based on a numerical value included in the received second numerical value sequence to the read encrypted first numerical value sequence according to an encryption method having homomorphism regarding addition. Thus, a value (hereinafter referred to as “calculated value”) is calculated. The second index calculation unit 903 uses the additive homomorphism based on the calculated value and the calculated second size to calculate “from a value representing the degree of similarity between the first numerical value sequence and the second numerical value sequence. An encrypted second index representing a ciphertext of “a value obtained by subtracting the first size (second index)” is calculated (step S508).

本実施形態において、ステップ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 Equation 21 and the like. This is a value calculated by multiplying “−2 × the first element included in the second numerical sequence”. In this case, the encrypted second index calculated by the second index calculation unit 903 is “a value obtained by subtracting the first size from the value indicating the degree of similarity between the first numeric string and the second numeric string”. Represents a ciphertext that is As a result, the value obtained by multiplying the encrypted first index calculated by the first index calculation unit 902 and the encrypted second index calculated by the second index calculation unit 903 is the first numeric value sequence, the second numeric value sequence, The degree of similarity (for example, distance) indicating the degree of similarity between the two is equal to the encrypted value.

たとえば、第1指標算出部902は、本発明の各実施形態に示した登録データ装置等が有する機能を用いて実現することができる。また、第2指標算出部903は、本発明の各実施形態に示した暗号化第2データ部等が有する機能を用いて実現することができる。   For example, the first index calculation unit 902 can be realized by using a function of the registration data device or the like shown in each embodiment of the present invention. Further, the second index calculation unit 903 can be realized by using the function of the encrypted second data unit shown in each embodiment of the present invention.

次に、第7の実施形態に係る指標算出システム901が奏する効果について説明する。   Next, effects produced by the index calculation system 901 according to the seventh embodiment will be described.

第7の実施形態に係る指標算出システム901によれば、照合対象である情報と、参照すべき情報との、より安全な照合処理を可能にする指標を算出することができる。   According to the index calculation system 901 according to the seventh embodiment, it is possible to calculate an index that enables safer verification processing between information to be verified and information to be referred to.

このような効果を奏する理由について説明する。第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 index calculation unit 902 and the second index calculation unit 903 execute communication in the process as described above via a communication network, the first index and the second index are encrypted. Is calculated separately by a plurality of different entities. Therefore, in this case, according to the index calculation system 901 according to the present embodiment, the encrypted first index and the encrypted second index that can calculate the similarity between the first numeric string and the second numeric string. The index is calculated by a plurality of different subjects. As a result, even if at least one of the encrypted first index and the encrypted second index is intercepted, it is impossible to restore the first numerical value sequence, the second numerical value sequence, or the similarity. In the verification process based on the first encryption index and the second encryption index, the risk of information leakage is reduced.

すなわち、第7の実施形態に係る指標算出システム901によれば、照合対象である情報と、参照すべき情報とのより安全な照合処理を可能になる指標を算出することができる。   That is, according to the index calculation system 901 according to the seventh embodiment, it is possible to calculate an index that enables a safer verification process between information to be verified and information to be referred to.

(ハードウェア構成例)
上述した本発明の各実施形態における照合システム、または、指標算出システムを、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 computer 20 includes a central processing unit (Central_Processing_Unit, hereinafter referred to as “CPU”) 21, a memory 22, a disk 23, and a nonvolatile recording medium 24. The calculation processing device 20 includes a communication interface (hereinafter referred to as “communication IF”) 27. The calculation processing device 20 may further include an input device 25 and an output device 26. The calculation processing device 20 can transmit / receive information to / from other calculation processing devices and communication devices via the communication IF 27.

不揮発性記録媒体24は、コンピュータが読み取り可能な、たとえば、コンパクトディスク(Compact_Disc)、デジタルバーサタイルディスク(Digital_Versatile_Disc)である。また、不揮発性記録媒体24は、ユニバーサルシリアルバスメモリ(USBメモリ)、ソリッドステートドライブ(Solid_State_Drive)等であってもよい。不揮発性記録媒体24は、電源を供給しなくても係るプログラムを保持し、持ち運びを可能にする。不揮発性記録媒体24は、上述した媒体に限定されない。また、不揮発性記録媒体24の代わりに、通信IF27を介して、通信ネットワークを介して係るプログラムを持ち運びしてもよい。   The nonvolatile recording medium 24 is, for example, a compact disk (Compact_Disc) or a digital versatile disk (Digital_Versatile_Disc) that can be read by a computer. The nonvolatile recording medium 24 may be a universal serial bus memory (USB memory), a solid state drive (Solid_State_Drive), or the like. The non-volatile recording medium 24 retains such a program without being supplied with power, and can be carried. The nonvolatile recording medium 24 is not limited to the above-described medium. Further, the program may be carried via the communication network via the communication IF 27 instead of the nonvolatile recording medium 24.

すなわち、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 CPU 21 copies a software program (computer program: hereinafter simply referred to as “program”) stored in the disk 23 to the memory 22 when executing it, and executes arithmetic processing. The CPU 21 reads data necessary for program execution from the memory 22. When output to the outside is necessary, the CPU 21 outputs an output result to the output device 26. When inputting a program from the outside, the CPU 21 reads the program from the input device 25. The CPU 21 performs a verification program (FIG. 2) in the memory 22 corresponding to the function (processing) represented by each unit shown in FIG. 1, FIG. 6, FIG. 8, FIG. 10, FIG. 3, 4A, 4B, 5, 7A, 7B, 9A, 9B, 11, 12, 13A, 13B, 15, 16, 17A, 17B, FIG. 19A or FIG. 19B) or the index calculation program (FIG. 21) is interpreted and executed. The CPU 21 sequentially executes the processes described in the above embodiments of the present invention.

すなわち、このような場合、本発明は、係る照合プログラム、または、係る指標算出プログラムによっても成し得ると捉えることができる。さらに、係る照合プログラム、または、係る指標算出プログラムが記録されたコンピュータが読み取り可能な不揮発性の記録媒体によっても、本発明は成し得ると捉えることができる。   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. Appendix 3 or Appendix 4 further comprising: encrypted reference information means for creating encrypted reference information including the calculated ciphertext and random number information including the second random number based on the homomorphism based on The index calculation system described in.

(付記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 Disk 24 Non-volatile recording medium 25 Input device 26 Output device 27 Communication IF

Claims (10)

暗号鍵、及び、第1数値列に含まれる数値に基づいて、前記第1数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第1数値列を作成し、作成した前記暗号化第1数値列を記憶手段に格納し、前記第1数値列の大きさを表す第1サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第1指標を算出する第1指標算出手段と、
前記記憶手段に格納されている前記暗号化第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.
暗号鍵、及び、第1数値列に含まれる数値に基づいて、前記第1数値列に含まれる数値が第1乱数に基づいて変換された値が、前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第1数値列を作成し、前記第1乱数が暗号化された暗号化乱数を算出し、前記第1数値列の大きさを表す第1サイズが前記第1乱数に基づいて変換された値である第1データが、前記暗号鍵を用いて暗号化された値を表す暗号化第1データを算出する第1算出手段と、
第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. .
請求項2に記載の指標算出システムであって、
複数の平文の演算結果が暗号化された暗号文を、各前記平文が暗号化された暗号文に基づいて算出可能な準同型性に従い、閾値に基づく数値の範囲に含まれている第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.
請求項2に記載の指標算出システムであって、
閾値に基づく数値の範囲に含まれている第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.
第2乱数と前記第2値とに基づき、前記準同型性に従い算出される演算結果を表す第3値の暗号文を、前記第2乱数と、前記暗号化集合に含まれている前記暗号文とに基づき、前記準同型性に従い算出し、算出した前記暗号文を含む暗号化参照情報と、前記第2乱数を含む乱数情報とを作成する暗号化参照情報手段
をさらに備える請求項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.
前記第3値と、前記第1データまたは前記第2データとに基づき、前記準同型性に従い算出される演算結果を表す第4値の暗号文を、前記暗号化参照情報に含まれている前記第3値に関する前記暗号文と、前記暗号化第1データとに基づき、前記準同型性に従い算出し、算出した前記第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.
前記乱数情報に含まれている前記第2乱数に、所定の関数を適用することによって値を算出し、算出した値を含む検証情報を作成する検証情報手段
をさらに備える請求項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.
請求項7に記載の指標算出システムと、
前記検証データに含まれている前記第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数値列に含まれる数値に基づいて、前記第1数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第1数値列を作成し、作成した前記暗号化第1数値列を記憶手段に格納し、前記第1数値列の大きさを表す第1サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第1指標を算出し、前記記憶手段に格納されている前記暗号化第1数値列に含まれている前記暗号化数値と、第2数値列とに基づき、前記第1数値列及び前記第2数値列が類似している程度を表す値から前記第1サイズを引き算した値を表す第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. 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. 暗号鍵、及び、第1数値列に含まれる数値に基づいて、前記第1数値列に含まれる数値が前記暗号鍵を用いて暗号化された暗号化数値を含む暗号化第1数値列を作成し、作成した前記暗号化第1数値列を記憶手段に格納し、前記第1数値列の大きさを表す第1サイズが前記暗号鍵を用いて暗号化された値を表す暗号化第1指標を算出する第1指標算出機能と、
前記記憶手段に格納されている前記暗号化第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.
JP2015127849A 2015-06-25 2015-06-25 Index calculation system, index calculation method, index calculation program, and collation system Active JP6528560B2 (en)

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)

* Cited by examiner, † Cited by third party
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

Patent Citations (6)

* Cited by examiner, † Cited by third party
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