JP6927199B2 - Ciphertext matching system, node device, ciphertext matching method, and program - Google Patents

Ciphertext matching system, node device, ciphertext matching method, and program Download PDF

Info

Publication number
JP6927199B2
JP6927199B2 JP2018509387A JP2018509387A JP6927199B2 JP 6927199 B2 JP6927199 B2 JP 6927199B2 JP 2018509387 A JP2018509387 A JP 2018509387A JP 2018509387 A JP2018509387 A JP 2018509387A JP 6927199 B2 JP6927199 B2 JP 6927199B2
Authority
JP
Japan
Prior art keywords
registration
authentication
ciphertext
verification
information
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2018509387A
Other languages
Japanese (ja)
Other versions
JPWO2017170780A1 (en
Inventor
春菜 肥後
春菜 肥後
寿幸 一色
寿幸 一色
健吾 森
健吾 森
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
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
Publication of JPWO2017170780A1 publication Critical patent/JPWO2017170780A1/en
Application granted granted Critical
Publication of JP6927199B2 publication Critical patent/JP6927199B2/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Hardware Design (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Collating Specific Patterns (AREA)

Description

(関連出願についての記載)
本発明は、日本国特許出願:特願2016−072770号(2016年3月31日出願)の優先権主張に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明は暗号化技術に関し、特に、暗号文照合システム、ノード装置、暗号文照合方法、およびプログラムに関する。
(Description of related application)
The present invention is based on the priority claim of Japanese patent application: Japanese Patent Application No. 2016-072770 (filed on March 31, 2016), and all the contents of the application are incorporated in this document by citation. Shall be.
The present invention relates to an encryption technique, and more particularly to a ciphertext matching system, a node device, a ciphertext matching method, and a program.

クラウドコンピューティング(クラウド)が普及するにつれ、クライアントが通信ネットワークに通信接続しているクラウド側の計算機資源を用いて当該クライアントのデータを管理するクラウドサービスが広く普及している。該サービスは、例えばクライアントの機密性の高いデータを管理することから、クラウド側では、該サービスにおいて扱われるデータが安全であることを保証する必要がある。 As cloud computing (cloud) becomes widespread, cloud services that manage the data of the client using the computer resources on the cloud side in which the client communicates with the communication network have become widespread. Since the service manages highly confidential data of the client, for example, it is necessary to ensure that the data handled by the service is secure on the cloud side.

利用者が通信ネットワークに自由に通信接続可能(オープン)なネットワーク環境において、データを暗号化されたままの状態で管理し、データを復号することなく、検索や、統計処理等を行う技術の研究開発が行われている。 Research on technology for managing data in an encrypted state in an open network environment where users can freely connect to a communication network, and performing search and statistical processing without decrypting the data. Development is in progress.

近時、パスワード、または、磁気カードを用いた個人認証における脆弱性を利用した犯罪が頻発している。この結果、指紋、または、静脈等の生体が有する特徴に基づいた情報(生体情報)を用いて、より安全性の高い認証を実現する生体認証技術が注目を集めている。 Recently, crimes using vulnerabilities in personal authentication using passwords or magnetic cards have frequently occurred. As a result, biometric authentication technology that realizes more secure authentication by using information (biological information) based on the characteristics of the living body such as fingerprints or veins is attracting attention.

良く知られた生体認証技術の典型例の一つにおいては、登録対象である生体から抽出した生体情報に基づきクライアントがテンプレートを作成し、作成されたテンプレートがサーバに送信され、サーバで保管される。生体認証技術において、サーバは、認証対象である生体からクライアントが抽出した生体情報と、サーバに保管されているテンプレート(クライアントが作成しサーバに送信したテンプレート)とを用いて照合処理を行う。 In one of the typical examples of well-known biometric authentication technology, a client creates a template based on biometric information extracted from the biometric information to be registered, and the created template is sent to a server and stored in the server. .. In the biometric authentication technology, the server performs collation processing using the biometric information extracted by the client from the living body to be authenticated and the template stored in the server (template created by the client and transmitted to the server).

同一の生体から抽出された複数の生体情報は完全に一致するとは限らないが、ある距離関数を用いて距離を測定すると、同一の生体から抽出された複数の生体情報間の距離は、異なる生体からそれぞれ抽出された複数の生体情報間の距離と比べて、短いことが知られている。 Multiple biological information extracted from the same living body does not always match exactly, but when the distance is measured using a certain distance function, the distance between multiple biological information extracted from the same living body is different. It is known that it is shorter than the distance between a plurality of biological information extracted from each of them.

生体認証技術は、上記の性質を利用することによって、登録対象に基づいて生成されたテンプレートと、認証対象に基づいて作成された生体情報との照合を行う。すなわち、生体認証技術においては、
・登録対象である生体から抽出された生体情報と、認証対象である生体から抽出された生体情報が類似(または、一致)している場合に、認証対象を受理する。
・登録対象である生体から抽出された生体情報と、認証対象である生体から抽出された生体情報が類似(または、一致)していない場合に、認証対象を受理しない。
By utilizing the above-mentioned properties, the biometric authentication technology collates the template generated based on the registration target with the biometric information created based on the authentication target. That is, in biometric authentication technology,
-If the biometric information extracted from the living body to be registered and the biometric information extracted from the living body to be authenticated are similar (or match), the authentication target is accepted.
-If the biometric information extracted from the living body to be registered and the biometric information extracted from the living body to be authenticated are not similar (or match), the authentication target is not accepted.

一般的に、生体情報の類似は、上記したように、距離によって判定される。すなわち、
・登録対象である生体から抽出された生体情報と、認証対象である生体から抽出された生体情報との間の距離が、事前に定められた閾値以下であれば受理される。
・登録対象である生体から抽出された生体情報と、認証対象である生体から抽出された生体情報との間の距離が、事前に定められた閾値より大きければ、受理されない。
In general, the similarity of biometric information is determined by distance, as described above. That is,
-If the distance between the biological information extracted from the living body to be registered and the biological information extracted from the living body to be authenticated is equal to or less than a predetermined threshold value, it is accepted.
-If the distance between the biological information extracted from the living body to be registered and the biological information extracted from the living body to be authenticated is larger than a predetermined threshold value, it will not be accepted.

例えば、指紋、静脈等の生体が有する特徴は、生涯不変のデータとされている。生体情報が照合システムの外部に漏洩された場合の被害が甚大であるので、生体情報は、機密性が要求される情報の一つである。したがって、たとえ、登録対象である生体から抽出した生体情報に基づき生成したテンプレートと認証対象に基づいて作成された生体情報との照合を行う照合システムから、外部に、該テンプレートが漏洩したとしても、生体情報が外部に漏洩しない性質を満たすことが望ましい。 For example, the characteristics of a living body such as fingerprints and veins are considered to be lifelong data. Biological information is one of the information that requires confidentiality because the damage caused when the biometric information is leaked to the outside of the collation system is enormous. Therefore, even if the template leaks to the outside from the collation system that collates the template generated based on the biometric information extracted from the living body to be registered with the biometric information created based on the authentication target. It is desirable to satisfy the property that biometric information does not leak to the outside.

また、生体認証技術では、他の認証技術と同様に、生体情報を登録した生体と異なる生体が登録対象の生体になりすますこと(すなわち、「なりすまし」)を防ぐ必要がある。例えば、特定の値を照合システムに送信することによって、認証に成功してしまうような認証技術は、なりすましへの耐性が十分でないといえる。 In addition, in biometric authentication technology, as with other authentication technologies, it is necessary to prevent a living body different from the living body in which biometric information is registered from impersonating the living body to be registered (that is, "spoofing"). For example, it can be said that an authentication technique that succeeds in authentication by transmitting a specific value to a matching system is not sufficiently resistant to spoofing.

さらに、認証技術においては、テンプレートが漏洩してしまうリスクだけでなく、認証時の通信内容が盗聴(傍受)されるリスクもある。認証技術においては、通信内容が盗聴されたとしても、上記したなりすましを防ぐ必要がある。例えば、認証対象が受理された場合に、照合システムへ送信されたデータを、再送することにより、再度受理される方式は、なりすましへの耐性が十分でない。 Further, in the authentication technology, there is a risk that not only the template is leaked but also the communication content at the time of authentication is eavesdropped (intercepted). In the authentication technology, it is necessary to prevent the above-mentioned spoofing even if the communication content is eavesdropped. For example, when the authentication target is accepted, the method of re-accepting the data transmitted to the verification system by retransmitting the data is not sufficiently resistant to spoofing.

例えば、非特許文献2には、登録対象である生体から抽出された生体情報や、認証対象である生体から抽出された生体情報を秘匿したまま、認証を行うことを可能とした生体認証方式が開示されている。また、非特許文献1には、加法及び乗法に関する準同型性を持つ準同型暗号方式が開示されている。 For example, Non-Patent Document 2 describes a biometric authentication method that enables authentication while concealing biometric information extracted from a living body to be registered and biometric information extracted from a living body to be authenticated. It is disclosed. Further, Non-Patent Document 1 discloses a homomorphic encryption system having homomorphism regarding addition and multiplication.

準同型暗号方式について概説する。準同型暗号方式は、準同型あるいは準同型性(homomorphism)と呼ばれる特殊な性質を持つ公開鍵暗号方式である。 The homomorphic encryption method will be outlined. Homomorphic encryption is a public key cryptosystem with a special property called homomorphism or homomorphism.

公開鍵暗号方式は、
・公開鍵(「暗号化鍵」という)、及び、秘密鍵(「復号鍵」という)を生成するアルゴリズム(鍵生成アルゴリズム)、
・生成した暗号化鍵を用いてメッセージを暗号化するアルゴリズム(暗号化アルゴリズム)、及び、
・生成した復号鍵を用いて暗号文を復号するアルゴリズム(復号アルゴリズム)
を含む。
Public key cryptography is
-Algorithm (key generation algorithm) that generates a public key (called "encryption key") and a private key (called "decryption key"),
-Algorithm that encrypts messages using the generated encryption key (encryption algorithm), and
-Algorithm that decrypts the ciphertext using the generated decryption key (decryption algorithm)
including.

鍵生成アルゴリズム(「Gen」と表記する)は、セキュリティパラメータλに基づき、暗号化鍵pkと、復号鍵skとを算出するアルゴリズムであり、
Gen(λ)→(pk,sk) ・・・(式1)
と表される。セキュリティパラメータλは、暗号の安全性を表す尺度であり、暗号化鍵や復号鍵の長さを決定するパラメータである。
The key generation algorithm (denoted as "Gen") is an algorithm that calculates the encryption key pk and the decryption key sk based on the security parameter λ.
Gen (λ) → (pk, sk) ・ ・ ・ (Equation 1)
It is expressed as. The security parameter λ is a measure of the security of the cipher, and is a parameter that determines the length of the encryption key or the decryption key.

暗号化アルゴリズム(「Enc」と表記する)は、暗号化鍵pkと、メッセージxとに基づき、暗号化鍵pkを用いてメッセージxが暗号化された暗号文cを算出するアルゴリズムであり、
Enc(pk,M)→c ・・・(式2)
と表される。
The encryption algorithm (denoted as "Enc") is an algorithm that calculates the ciphertext c in which the message x is encrypted by using the encryption key pk based on the encryption key pk and the message x.
Enc (pk, M) → c ・ ・ ・ (Equation 2)
It is expressed as.

復号アルゴリズム(「Dec」と表記する)は、復号鍵skと暗号文cとに基づき、復号鍵skを用いて暗号文cが復号された復号結果Xを算出するアルゴリズムであり、
Dec(sk,c)→X ・・・(式3)
と表される。
The decryption algorithm (denoted as "Dec") is an algorithm that calculates the decryption result X in which the ciphertext c is decrypted using the decryption key sk based on the decryption key sk and the ciphertext c.
Dec (sk, c) → X ... (Equation 3)
It is expressed as.

ただし、
A(B)→C ・・・(式4)
は、アルゴリズムAにBを入力すると、Cが出力される、ことを意味する。
However,
A (B) → C ... (Equation 4)
Means that when B is input to algorithm A, C is output.

公開鍵暗号方式は、次の式5に示す条件を満たす場合に、準同型性を持つ。 The public key cryptosystem has homomorphism when the conditions shown in the following equation 5 are satisfied.

Enc(pk,x1#x2)=Enc(pk,x1)@Enc(pk,x2) ・・・(式5) Enc (pk, x1 # x2) = Enc (pk, x1) @ Enc (pk, x2) ... (Equation 5)

ただし、#、及び、@は、それぞれ2項演算子を表す。また、x1、及び、x2は、それぞれ、メッセージを表す。 However, # and @ each represent a binary operator. Further, x1 and x2 each represent a message.

特に、#が加算である場合、式5に示す条件を満たす公開鍵暗号方式は、加算について準同型性を持つという。この場合のEnc(pk,x1)@Enc(pk,x2)の計算を、「暗号文の加算」と呼ぶ。 In particular, when # is addition, the public key cryptosystem that satisfies the condition shown in Equation 5 is said to have homomorphism for addition. The calculation of Enc (pk, x1) @ Enc (pk, x2) in this case is called "addition of ciphertext".

また、#が乗算である場合に、式5に示す条件を満たす公開鍵暗号方式は、乗算について準同型性を持つという。この場合のEnc(pk,x1)@Enc(pk,x2)の計算を、「暗号文の乗算」と呼ぶ。 Further, when # is multiplication, the public key cryptosystem that satisfies the condition shown in Equation 5 is said to have homomorphism for multiplication. The calculation of Enc (pk, x1) @ Enc (pk, x2) in this case is called "ciphertext multiplication".

さらに、暗号文の加算や暗号文の乗算を応用することにより、次の式6に示す条件を満たす準同型暗号も存在する。 Further, there is also a homomorphic encryption that satisfies the condition shown in the following equation 6 by applying ciphertext addition and ciphertext multiplication.

Enc(pk,n#x)=Enc(pk,x)@n ・・・(式6) Enc (pk, n # x) = Enc (pk, x) @n ... (Equation 6)

ただし、#、及び、@は、それぞれ2項演算子を表す。また、x、及び、nは、それぞれ、メッセージを表す。 However, # and @ each represent a binary operator. Further, x and n each represent a message.

特に、#が加算である場合、式6に示す条件を満たす公開鍵暗号方式は、スカラー倍について準同型性を持つという。この場合のEnc(pk,x)@nの計算を、「暗号文のスカラー倍」と呼ぶ。 In particular, when # is addition, the public key cryptosystem that satisfies the condition shown in Equation 6 is said to have homomorphism in terms of scalar multiplication. The calculation of Enc (pk, x) @ n in this case is called "scalar times of ciphertext".

非特許文献1に記載された、加法及び乗法について準同型性を持つ準同型暗号方式について説明する。この方式は、メッセージとして多項式を扱う、ring−LWE問題の困難性に基づく暗号である。ring−LWE問題の困難性に基づく暗号の特徴として、演算が高速に行えることが挙げられる。 A homomorphic encryption method having homomorphism with respect to addition and multiplication described in Non-Patent Document 1 will be described. This method is a cipher based on the difficulty of the ring-LWE problem, which treats polynomials as messages. A feature of cryptography based on the difficulty of the ring-LWE problem is that operations can be performed at high speed.

鍵生成アルゴリズムは入力として、主に4つのパラメータN、q、t、σを受け取る。 The key generation algorithm mainly receives four parameters N, q, t, and σ as inputs.

Nは2冪の整数で、多項式x+1による剰余環である多項式環R=Z[x]/<x+1>を定める。N is an integer of two powers, and defines a polynomial ring R = Z [x] / <x N +1>, which is a quotient ring by the polynomial x N +1.

qは2Nを法として1と合同(q≡1 mod 2N)な素数であり、暗号文空間を表す多項式環R=R/qR=Z[x]/<x+1>を定める(Rqの元は、各係数が群Zqの元である(N−1)次多項式)。q is a prime number congruent with 1 (q≡1 mod 2N) modulo 2N, and defines the polynomial ring R q = R / qR = Z q [x] / <x N +1> representing the ciphertext space (Rq). The elements of are (N-1) degree polynomials in which each coefficient is an element of the group Zq).

tはqより小さい正の整数(素数とは限らない)であり、暗号方式における平文空間を表す多項式環R=R/tR=(Z/tZ)[x]/<x+1>を定める(Rの元は、各係数が剰余群Z/tZの元である(N−1)次多項式)。t is a positive integer (not necessarily a prime number) smaller than q, and defines a polynomial ring R t = R / tR = (Z / tZ) [x] / <x N +1> representing a plain space in a cryptosystem. (The elements of R t are (N-1) degree polynomials in which each coefficient is an element of the remainder group Z / tZ).

σは、N次元離散ガウス分布χ=D(Z,σ)の標準偏差である。N次元離散ガウス分布によってサンプルされるN次元整数ベクトルは、標準偏差がσであるガウス分布(正規分布とも呼ばれる)に従う実数値を丸めた整数値を各成分に持つベクトルである。
標準偏差がσであるN次元離散ガウス分布の確率密度関数は、

Figure 0006927199
σ is the standard deviation of the N-dimensional discrete Gaussian distribution χ = D (Z N, σ). The N-dimensional integer vector sampled by the N-dimensional discrete Gaussian distribution is a vector having an integer value rounded to a real value according to a Gaussian distribution (also called a normal distribution) having a standard deviation of σ for each component.
The probability density function of an N-dimensional discrete Gaussian distribution with a standard deviation of σ is

Figure 0006927199

標準偏差がσであるN次元離散ガウス分布χ=D(Z,σ)から、多項式ε(x)∈Rがサンプルされる。多項式の加算と乗算はmodulo(x+1,q)で定義される。The polynomial ε (x) ∈ R is sampled from the N -dimensional discrete Gaussian distribution χ = D (Z N, σ) with a standard deviation of σ. Polynomial addition and multiplication are defined by modulo (x N + 1, q).

次に、標準偏差がσであるN次元離散ガウス分布χからサンプリングされた元(N−1次多項式)s∈Rを一つ固定する。 Next, one element (N-1 degree polynomial) s ∈ R sampled from the N-dimensional discrete Gaussian distribution χ whose standard deviation is σ is fixed.

次に、Rから一様ランダムにサンプルした環の要素(各係数がqより小さいN−1次多項式)p∈Rとする。標準偏差がσであるN次元離散ガウス分布χから得られる元e∈Rをとる。Next, the elements of rings sample uniformly randomly from R q (each coefficient q less than N-1 order polynomial) and p 1 ∈R q. Take the element e ∈ R obtained from the N-dimensional discrete Gaussian distribution χ with standard deviation σ.

次に、
=−(p×s+t×e) ・・・(式8)
を計算する。
next,
p 0 =-(p 1 x s + t x e) ... (Equation 8)
To calculate.

pk=(p,p) ・・・(式9)
を公開鍵(暗号化鍵)とし、
sk=s ・・・(式10)
を秘密鍵(復号鍵)とする。
pk = (p 0 , p 1 ) ... (Equation 9)
Is the public key (encryption key)
sk = s ... (expression 10)
Is the private key (decryption key).

ただし、多項式pの計算時のように、多項式の積を計算する場合において、多項式の次数がN以上となった場合には、以下のような置き換えが行われる。However, in the case of calculating the product of polynomials as in the calculation of polynomial p 0 , when the degree of the polynomial is N or more, the following replacement is performed.

=(x+1)−1=−1 mod(x+1) ・・・(式11−1)
N+1=x(x+1)−x=−x mod(x+1) ・・・(式11−2)
x N = (x N +1) -1 = -1 mod (x N +1) ... (Equation 11-1)
x N + 1 = x (x N +1) -x = -x mod (x N +1) ... (Equation 11-2)

さらに、多項式の和や積を計算する場合において、各係数がq以上となった場合には、その係数をqで割った余りに置き換えて計算する(mod q)。これにより、計算される多項式は、常に、各係数がqより小さい、N−1次以下の多項式となる。以下の計算においても同様に行う。 Further, when calculating the sum or product of polynomials, if each coefficient is q or more, the coefficient is divided by q and replaced with the remainder (mod q). As a result, the polynomial to be calculated is always a polynomial of degree N-1 or lower in which each coefficient is smaller than q. The same applies to the following calculations.

暗号化アルゴリズムは、入力として、上記の鍵生成アルゴリズムに入力された4つのパラメータの組(N,q,t,σ)、上記の鍵生成アルゴリズムで生成した暗号化鍵pk=(p,p)およびメッセージxを受けとる。The encryption algorithm uses a set of four parameters (N, q, t, σ) input to the above key generation algorithm as inputs, and an encryption key pk = (p 0 , p) generated by the above key generation algorithm. 1 ) and receive message x.

ただし、メッセージx(x∈R)は、各係数がtより小さい、N−1次多項式である。However, the message x (x ∈ R t ) is an N-1 degree polynomial in which each coefficient is smaller than t.

次に、3つのN−1次多項式u、gおよびfを、標準偏差がσであるN次元離散ガウス分布χに従って生成する。 Next, three N-1 degree polynomials u, g and f are generated according to an N-dimensional discrete Gaussian distribution χ with a standard deviation of σ.

次に、N−1次多項式u、gおよびf、暗号化鍵(公開鍵)pk、tから、
=p×u+t×g+x ・・・(式12−1)
=p×u+t×f ・・・(式12−2)
を計算する。
Next, from the N-1 degree polynomials u, g and f, and the encryption key (public key) pk, t,
c 0 = p 0 x u + t x g + x ... (Equation 12-1)
c 1 = p 1 × u + t × f ・ ・ ・ (Equation 12-2)
To calculate.

そして、
c=(c,c)∈(R ・・・(式13)
を暗号文(ciphertext)として出力する。
and,
c = (c 0 , c 1 ) ∈ (R q ) 2 ... (Equation 13)
Is output as a ciphertext.

復号アルゴリズムは入力として、上記の鍵生成アルゴリズムに入力された4つのパラメータの組(N,q,t,σ)、上記の復号鍵skおよび暗号文
c=(c,c)∈(Rまたは(c,c,c)∈(R
を受け取る。以下、前者の場合は、c=0であるとみなす。
As input, the decoding algorithm is a set of four parameters (N, q, t, σ) input to the above key generation algorithm, the above decoding key sk, and the ciphertext c = (c 0 , c 1 ) ∈ (R). q ) 2 or (c 0 , c 1 , c 2 ) ∈ (R q ) 3
To receive. Hereinafter, in the former case, it is considered that c 2 = 0.

次に、
C=c+c×sk+c×sk ・・・(式14)
を計算する。
next,
C = c 0 + c 1 x sk + c 2 x sk 2 ... (Equation 14)
To calculate.

暗号文が含む多項式の数をl+1とすると、
c=(c,・・・,c)∈(Rl+1について、
C=Σi=0〜lsk∈R ・・・(式15)
を計算する。
Assuming that the number of polynomials contained in the ciphertext is l + 1,
c = (c 0, ···, c l) for ∈ (R q) l + 1 ,
C = Σ i = 0 to l c i sk i ∈ R q ··· (Equation 15)
To calculate.

Cをqで割った余りをDとする。Dがq/2以上である場合には、DをD−qに変更する。これは、Dのqを法とした[−q/2,q/2)への剰余演算である。 Let D be the remainder of dividing C by q. When D is q / 2 or more, D is changed to Dq. This is a modulo operation on [−q / 2, q / 2] modulo q of D.

次に、Dをtで割った余り(D mod t)を復号結果Xとして出力する。 Next, the remainder (D mod t) obtained by dividing D by t is output as the decoding result X.

この公開鍵暗号方式は,加法及び情報について準同型性を持つ。 This public key cryptosystem has homomorphism in addition and information.

2つのメッセージxおよびyについて、その暗号文をそれぞれ
Enc(pk,x)→(c,c) ・・・(式16−1)
Enc(pk,y)→(d,d) ・・・(式16−2)
とする。
For the two messages x and y, the ciphertext is changed from Enc (pk, x) → (c 0 , c 1 ) ... (Equation 16-1).
Enc (pk, y) → (d 0 , d 1 ) ... (Equation 16-2)
And.

このとき、暗号文の加算は、
Enc(pk,x)+Enc(pk,y)=(c+d,c+d) ・・・(式17)
によって計算できる。
At this time, the addition of the ciphertext is
Enc (pk, x) + Enc (pk, y) = (c 0 + d 0 , c 1 + d 1 ) ... (Equation 17)
Can be calculated by.

暗号文の加算において、x=yである場合を応用すると、tより小さい任意の整数nについて、暗号文のスカラー倍を計算できる。すなわち、暗号文のスカラー倍は、
n×Enc(pk,x)=(n×c,n×c) ・・・(式18)
によって計算できる。
By applying the case where x = y in the addition of the ciphertext, the scalar multiple of the ciphertext can be calculated for any integer n smaller than t. That is, the scalar multiple of the ciphertext is
n × Enc (pk, x) = (n × c 0 , n × c 1 ) ・ ・ ・ (Equation 18)
Can be calculated by.

暗号文の乗算は、
Enc(pk,x)@Enc(pk,y)=(c×d,c×d+c×d,c×d) ・・・(式19)
によって計算できる。
Ciphertext multiplication is
Enc (pk, x) @ Enc (pk, y) = (c 0 x d 0 , c 0 x d 1 + c 1 x d 0 , c 1 x d 1 ) ... (Equation 19)
Can be calculated by.

この公開鍵暗号方式はメッセージとして多項式を扱う。ベクトルは、その各成分を、多項式の各係数とみなすことにより、多項式とみなすことができる。したがって、この公開鍵暗号方式を用いてベクトルを暗号化することができる。 This public key cryptosystem treats polynomials as messages. A vector can be regarded as a polynomial by regarding each component of the vector as each coefficient of the polynomial. Therefore, the vector can be encrypted using this public key cryptosystem.

ベクトルを多項式にする方法を工夫し、さらに加法準同型性および乗法準同型性を利用することにより、2つのベクトルを暗号化したまま、その内積の暗号文を計算する方法について説明する。 A method of calculating the ciphertext of the inner product of two vectors while encrypting the two vectors will be described by devising a method of converting the vector into a polynomial and further using the additive homomorphism and the multiplication homomorphism.

各成分がtより小さい、2つのL(L<N)次のベクトルを、
A=(a,…,aL−1)、
B=(b,…,bL−1
とする。
Two L (L <N) -order vectors, each component less than t,
A = (a 0 , ..., a L-1 ),
B = (b 0 , ..., b L-1 )
And.

ベクトルAの各成分は昇順に、ベクトルBの各成分は降順にそれぞれ係数として用いることにより、多項式fおよびfを、それぞれ式20、式21にしたがって得る。 The polynomials f A and f B are obtained according to Equations 20 and 21, respectively, by using each component of the vector A as a coefficient in ascending order and each component of the vector B as a coefficient in descending order.

(x)=Σi=0〜L−1×x ・・・(式20)f A (x) = Σ i = 0 to L-1 a i × x i ... (Equation 20)

(x)=−Σi=0〜L−1×xN−i ・・・(式21) f B (x) = - Σ i = 0~L-1 b i × x N-i ··· ( Formula 21)

ベクトルを多項式に変換するための式20および式21の計算方法をそれぞれ、「昇順多項式化」および「降順多項式化」と呼ぶ。二つの多項式fおよびfの積は次の通り計算される。The calculation methods of Equations 20 and 21 for converting a vector into a polynomial are called "ascending polynomialization" and "descending polynomialization", respectively. The product of the two polynomials f A and f B is calculated as follows.

(x)×f(x)=−Σi=N−L+1〜N−1(Σj=0〜i(a×bN−i+j))x+Σi=0〜L−1Σj=i〜L−1(a×bj−i)x ・・・(式22)f A (x) × f B (x) = −Σ i = N−L + 1 to N-1j = 0 to i (a j × b N−i + j )) x i + Σ i = 0 to L-1 Σ j = i to L-1 (a j × b j-i ) x i ... (Equation 22)

式22の多項式の定数項は、Σ(a×b)、すなわちベクトルA、Bの内積
<A,B>=Σi=0〜n−1×b ・・・(式23)
と等しい。
Constant term of the polynomial equation 22, Σ j (a j × b j), i.e. vectors A, inner product of B <A, B> = Σ i = 0~n-1 a i × b i ··· ( wherein 23)
Is equal to.

各成分が0または1である2つのベクトル
A=(a,…,aL−1)、
B=(b,…,bL−1
について、対応する成分のうち異なるものの個数をハミング距離d(A,B)という。
Two vectors A = (a 0 , ..., a L-1 ) where each component is 0 or 1.
B = (b 0 , ..., b L-1 )
The number of different components among the corresponding components is called the Hamming distance d H (A, B).

すなわち、各i(i=0,…,L−1)に対し、a≠bを満たすiの数がハミング距離である。2つのベクトルのハミング距離は内積を用いて計算できる。That is, for each i (i = 0, ..., L-1), the Hamming distance is the number of i satisfying a i ≠ bi. The Hamming distance between the two vectors can be calculated using the inner product.

N次元ベクトルCを、全成分が1であるベクトル、すなわちC=(1,…,1)とする。このとき、ハミング距離について、次の式24が成り立つ。 Let the N-dimensional vector C be a vector in which all components are 1, that is, C = (1, ..., 1). At this time, the following equation 24 holds for the Hamming distance.

(A,B)=<A,C>+<C,B>−2<A,B> ・・・(式24)d H (A, B) = <A, C> + <C, B> -2 <A, B> ... (Equation 24)

また、2つのベクトル
A=(a,…,aL−1)、
B=(b,…,bL−1
について、A、B間のユークリッド距離は、
(A,B)=Σi=0〜n−1(a−b ・・・(式25)
で定義される。
Also, two vectors A = (a 0 , ..., a L-1 ),
B = (b 0 , ..., b L-1 )
About, the Euclidean distance between A and B is
d E (A, B) = Σ i = 0~n-1 (a i -b i) 2 ··· ( Equation 25)
Defined in.

2つのベクトルのユークリッド距離は、次の式26の通り、内積を用いて計算できる。 The Euclidean distance between the two vectors can be calculated using the inner product as shown in Equation 26 below.

(A,B)=(Σi=0〜n−1 )+(Σi=0〜n−1 )−2<A,B> ・・・(式26) d E (A, B) = (Σ i = 0~n-1 a i 2) + (Σ i = 0~n-1 b i 2) -2 <A, B> ··· ( Formula 26)

非特許文献2に記載された生体認証方式は、上記の非特許文献1に記載された、加法及び乗法について、準同型性を持つ準同型暗号方式(Gen,Enc,Dec)を用いて構成される。 The biometric authentication method described in Non-Patent Document 2 is configured by using the homomorphic encryption method (Gen, Enc, Dec) having homomorphism with respect to addition and multiplication described in Non-Patent Document 1 above. NS.

この方式では、生体からN次未満のベクトルが抽出でき、同一の生体から抽出したベクトルのハミング距離は短く、異なる生体から抽出したベクトルのハミング距離は長いことを仮定する。ハミング距離の計算には、上記の式24を用いる。 In this method, it is assumed that vectors of less than Nth order can be extracted from a living body, the Hamming distance of vectors extracted from the same living body is short, and the Hamming distance of vectors extracted from different living bodies is long. The above equation 24 is used to calculate the Hamming distance.

非特許文献1に記載された生体認証方式は次のように実行される。各成分が0または1であるベクトルの形で表される生体情報
A=(a,…,aL−1
を登録する際に、クライアントは、ベクトルAを、上記の式20に従って昇順多項式化してfとし、暗号化鍵pkを用いて暗号化した暗号文Enc(pk,f)をテンプレートとして、サーバに記憶させる。
The biometric authentication method described in Non-Patent Document 1 is executed as follows. Biological information A = (a 0 , ..., a L-1 ) represented in the form of a vector in which each component is 0 or 1.
When registering, the client a vector A, and f A by ascending polynomial in accordance with Equation 20 above, the encryption is encrypted using the encryption key pk text Enc (pk, f A) as a template, the server To memorize.

各成分が0または1であるベクトルの形で表される生体情報
B=(b,…,bL−1
について、認証を行う際に、クライアントは、ベクトルBを、上記の式21に従って降順多項式化してfとし、暗号化鍵pkを用いて暗号化した暗号文Enc(pk,f)をサーバに送付する。
Biological information B = (b 0 , ..., b L-1 ) represented in the form of a vector in which each component is 0 or 1.
When performing authentication, the client converts the vector B into a descending polynomial according to the above equation 21 to obtain f B, and sends the ciphertext Enc (pk, f B ) encrypted using the encryption key pk to the server. I will send it.

サーバは、全ての係数が1である多項式
=Σi=0〜n−1 ・・・(式27)
を暗号化鍵pkを用いて暗号化したEnc(pk、f)を計算し、上記式24に従って、
Enc(pk,f)@Enc(pk,f)+Enc(pk,f)@Enc(pk,f)−2Enc(pk,f)@Enc(pk,f) ・・・(式28)
を計算する。
The server has a polynomial f C = Σ i = 0 to n-1 x i ... (Equation 27) in which all coefficients are 1.
Enc (pk, f C ) encrypted using the encryption key pk is calculated, and according to the above equation 24,
Enc (pk, f A) @Enc (pk, f C) + Enc (pk, f C) @Enc (pk, f B) -2Enc (pk, f A) @Enc (pk, f B) ··· ( Equation 28)
To calculate.

これを、当該サーバおよび当該クライアントとは異なる復号鍵を持つエンティティに送ることにより、該エンティティが、暗号文を復号する。 By sending this to an entity having a decryption key different from that of the server and the client, the entity decrypts the ciphertext.

該エンティティで復号して得られたメッセージである多項式の定数項が、2つのベクトルAおよびBのハミング距離d(A、B)である。The constant term of the polynomial, which is the message obtained by decoding with the entity, is the Hamming distance d H (A, B) of the two vectors A and B.

得られたハミング距離が、事前に定められた閾値と比べて長いか短いかによって、認証結果を決められる。 The authentication result is determined by whether the obtained Hamming distance is longer or shorter than a predetermined threshold value.

また、非特許文献3には、非特許文献2の方法と、上記式26(2つのベクトルの距離)を用いることにより、ユークリッド距離の長短による認証を行うこともできることが指摘されている。 Further, it is pointed out in Non-Patent Document 3 that authentication can be performed according to the length of the Euclidean distance by using the method of Non-Patent Document 2 and the above equation 26 (distance between two vectors).

また、非特許文献2の方式は、なりすまし攻撃への耐性を持たない。例えば、通信内容が盗聴された場合であって、これが受理された場合に、照合システムへ送信されたデータを再送することにより、再度、受理される。 Further, the method of Non-Patent Document 2 does not have resistance to spoofing attacks. For example, when the communication content is eavesdropped and it is accepted, it is accepted again by resending the data transmitted to the collation system.

具体的には、クライアントが、生体情報B=(b、…、bL−1)について認証を行う際に、該クライアントは、ベクトルBを、上記式21に従って、降順多項式化してfとし、暗号文Enc(pk、f)をサーバに送付し、受理されたとする。Specifically, when the client authenticates the biometric information B = (b 0 , ..., B L-1 ), the client converts the vector B into a descending polynomial according to the above equation 21 to obtain f B. , Ciphertext Enc (pk, f B ) is sent to the server and accepted.

このEnc(pk、f)を盗聴した攻撃者がEnc(pk、f)をそのまま再送すると、攻撃者が受理されることになる。If an attacker who eavesdrops on this Enc (pk, f B ) resends the Enc (pk, f B ) as it is, the attacker will be accepted.

非特許文献2および非特許文献3の方式では、復号鍵を持つエンティティが、生体情報間の距離を算出する。非特許文献4では、生体情報間の距離を得られるエンティティが能動的な攻撃を行うことができる状況下において、該エンティティによる登録された生体情報の復元を防ぐことができないことが指摘されている。さらに非特許文献4には、復号鍵を持つ該エンティティを含むすべてのエンティティに対して、生体情報間の距離を秘匿したまま、認証結果を計算する方法が記載されている。 In the methods of Non-Patent Document 2 and Non-Patent Document 3, the entity having the decryption key calculates the distance between the biometric information. In Non-Patent Document 4, it is pointed out that the restoration of the registered biometric information by the entity cannot be prevented in the situation where the entity that can obtain the distance between the biometric information can make an active attack. .. Further, Non-Patent Document 4 describes a method of calculating an authentication result for all entities including the entity having a decryption key while keeping the distance between biometric information secret.

Brakerski, Z.; Vaikuntanathan, V., "Fully homomorphic encryption from ring-LWE and security for key dependent messages", CRYPTO 2011Brakerski, Z .; Vaikuntanathan, V., "Fully homomorphic encryption from ring-LWE and security for key dependent messages", CRYPTO 2011 Yasuda, M.; Shimoyama, T.; Kogure, J.; Yokoyama, K.; Koshiba, T., "Secure Pattern Matching Using Somewhat Homomorphic Encryption", CCSW 2013.Yasuda, M .; Shimoyama, T .; Kogure, J .; Yokoyama, K .; Koshiba, T., "Secure Pattern Matching Using Somewhat Homomorphic Encryption", CCSW 2013. Yasuda, M.; Shimoyama, T.; Kogure, J.; Yokoyama, K.; Koshiba, T., "Practical Packing Method in Somewhat Homomorphic Encryption", DPM2013.Yasuda, M .; Shimoyama, T .; Kogure, J .; Yokoyama, K .; Koshiba, T., "Practical Packing Method in Somewhat Homomorphic Encryption", DPM2013. 肥後 春菜; 一色 寿幸; 森 健吾; 尾花 賢, "生体情報間の距離を秘匿する秘匿生体認証方式", 2016年暗号と情報セキュリティシンポジウム (SCIS2016).Haruna Higo; Toshiyuki Isshiki; Kengo Mori; Ken Obana, "Secret biometric authentication method that conceals the distance between biometric information", 2016 Cryptography and Information Security Symposium (SCIS2016).

関連技術の分析を以下に与える。 An analysis of related technologies is given below.

非特許文献2に記載された生体認証方式は、ring−LWE問題の困難性に基づく暗号を用いて構成されているため、認証時の演算が軽い。 Since the biometric authentication method described in Non-Patent Document 2 is configured by using a cipher based on the difficulty of the ring-LWE problem, the calculation at the time of authentication is light.

しかし、上記で述べたとおり、非特許文献2に記載された生体認証方式は、なりすましへの耐性が十分でない。 However, as described above, the biometric authentication method described in Non-Patent Document 2 is not sufficiently resistant to spoofing.

そこで、演算を高速に行うことができ、かつ、生体情報の漏洩やなりすまし攻撃を防ぐことができる生体認証方式が要望される。 Therefore, there is a demand for a biometric authentication method that can perform calculations at high speed and can prevent leakage of biometric information and spoofing attacks.

本発明の目的は、上述した課題に鑑みて創案されたものであって、その目的の一つは、演算の高速化、及び生体情報の漏洩やなりすまし攻撃を防ぐことを可能とする暗号文照合システム、ノード、方法、およびそのためのプログラムを提供することにある。 An object of the present invention has been devised in view of the above-mentioned problems, and one of the objects is ciphertext matching which enables speeding up of calculation and prevention of leakage of biometric information and spoofing attacks. To provide systems, nodes, methods, and programs for them.

本発明の一様態に係る暗号文照合システムは、登録要求装置と、照合補助装置と、認証要求装置と、検証装置とを含む。前記検証装置は、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開する。前記登録要求装置は、数値ベクトルである登録情報を多項式化し、多項式化した前記登録情報を、前記暗号化鍵を用いて暗号化する。前記照合補助装置は、前記認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした項式を生成し、前記項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付する。前記認証要求装置は、数値ベクトルである認証情報を多項式化し、多項式化した前記認証情報と、前記照合補助装置からの前記チャレンジと、に基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の前記暗号文を、前記レスポンスとして、前記照合補助装置に送付する。前記照合補助装置は、前記認証要求装置からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、前記登録要求装置で暗号化された前記登録情報とに基づき、前記暗号化鍵を用いて、前記登録情報と前記認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を前記検証装置に送付する。前記検証装置は、前記照合補助装置から受け取った、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する。 The ciphertext verification system according to the uniform state of the present invention includes a registration request device, a verification auxiliary device, an authentication request device, and a verification device. The verification device calculates a pair of an encryption key and a decryption key of a homomorphic encryption method capable of polynomial operations, and discloses the encryption key. The registration requesting device polynomializes the registration information, which is a numerical vector, and encrypts the polynomialized registration information using the encryption key. The verification auxiliary apparatus receives an authentication request from the authentication request device, one factor of the order selected at random, to generate a single term equation where the coefficients other than the coefficient of the order is set to 0, the single term A challenge consisting of an encrypted text in which the expression is encrypted using the encryption key is sent to the authentication requesting device. The authentication requesting device uses the encryption key to polynomialize the authentication information, which is a numerical vector, based on the polynomialized authentication information and the challenge from the collation assisting device. information and calculates a product ciphertext with the single term expression used for the generation of the challenge, the ciphertext of the product of the said used to generate the polynomial of the said authentication information challenge single polynomial Is sent to the collation assisting device as the response. When the collation assisting device receives a response from the authentication requesting device, the collation assisting device is based on the response, a challenge assist composed of the one coefficient and its order, and the registration information encrypted by the registration requesting device. Using the encryption key, the ciphertext of the distance between the registration information and the authentication information is calculated, and the ciphertext of the distance between the registration information and the authentication information is sent to the verification device. The verification device decodes the ciphertext of the distance between the registration information and the authentication information received from the verification assisting device using the decryption key to calculate the distance, and calculates the distance or the distance. And the comparison result with the predetermined threshold value are output as the collation result.

本発明の一様態に係る装置は、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出する検証装置が公開した前記暗号化鍵を取得する照合補助装置であって、認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした項式を生成し、前記項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付するチャレンジ生成部と、数値ベクトルである認証情報を多項式化し、前記チャレンジに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の前記暗号文を、レスポンスとして出力する前記認証要求装置からレスポンスを受け、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化され記憶装置に記憶されている、多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を検証装置に送付するクエリ生成部と、を備える。前記検証装置では、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を照合結果として出力する。 The device according to the uniformity of the present invention is a collation assisting device for acquiring the encryption key published by a verification device for calculating a pair of encryption key and decryption key of a quasi-identical encryption method capable of polymorphic operation. Upon receiving the authentication request from the authentication request device, one factor of the order selected at random, to generate a single term equation where the coefficients other than the coefficient of the order is set to 0, the single term formulas, the encryption key A challenge generator that sends a challenge consisting of a cipher statement encrypted using wherein calculating the ciphertext of the product of the authentication information and the single term expression used for the generation of the challenge, the encryption of the product of the used to generate the polynomial of the said authentication information challenge single polynomial The statement is received from the authentication requesting device that outputs the statement as a response, and the response, the challenge assistance consisting of the one coefficient and its order, and the polymorphization that is encrypted by the registration requesting device and stored in the storage device. Based on the registered information and the encryption key, the encryption text of the distance between the registration information and the authentication information is calculated, and the encryption text of the distance between the registration information and the authentication information is sent to the verification device. It includes a query generation unit. In the verification device, the ciphertext of the distance between the registration information and the authentication information is decrypted using the decryption key to calculate the distance, and the calculated distance or the distance and a predetermined threshold value are used. The comparison result is output as the collation result.

本発明の一様態に係る装置は、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し前記暗号化鍵を公開する検証装置から前記暗号化鍵を取得する認証要求装置であって、数値ベクトルである認証情報を多項式化する認証情報抽出部と、照合補助装置に送信する認証要求を生成する認証要求生成部と、を備えている。さらに、前記認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした項式を生成し、前記項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付する前記照合補助装置から前記チャレンジを受け取り、前記認証要求生成部で多項式化した前記認証情報と、前記チャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と、前記チャレンジの生成に用いられた項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の前記暗号文を、レスポンスとして、前記照合補助装置に送付するレスポンス生成部をさらに備えている。前記照合補助装置では、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化された多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を、検証装置に送付する。 The device according to the uniformity of the present invention is an authentication request for calculating a pair of an encryption key and a decryption key of a quasi-isomorphic encryption method capable of polymorphic operation and acquiring the encryption key from a verification device that discloses the encryption key. The device includes an authentication information extraction unit that converts authentication information that is a numerical vector into a polymorphism, and an authentication request generation unit that generates an authentication request to be transmitted to a verification assisting device. Further, when receiving the authentication request, one factor of the order selected at random, to generate a single term equation where the coefficients other than the coefficient of the order is set to 0, the single term formulas, the encryption key The cipher is based on the authentication information obtained by receiving the challenge from the collation assisting device that sends the challenge composed of the encrypted text encrypted by the use to the authentication requesting device and polynomializing the authentication request generation unit, and the challenge. using encryption key, and the authentication information polynomial of, calculates a cryptogram of the product of the single-term expression used for the generation of the challenge, were used to generate the polynomial of the said authentication information challenge wherein the ciphertext of the product of the single-term equation, as a response, further comprising a response generation unit to be sent to the verification auxiliary apparatus. The collation assisting device uses the encryption key based on the response, the challenge assist consisting of the one coefficient and its order, and the polymorphic registration information encrypted by the registration requesting device. The ciphertext of the distance between the registration information and the authentication information is calculated, and the ciphertext of the distance between the registration information and the authentication information is sent to the verification device.

本発明の一様態に係る装置は、認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした項式を生成し、前記項式を、暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付し、前記認証要求装置からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化され記憶装置に記憶されている、多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出する照合補助装置に接続される検証装置であって、多項式演算が可能な準同型暗号方式の前記暗号化鍵と復号鍵のペアを算出し前記暗号化鍵を公開する鍵生成部と、前記照合補助装置から前記登録情報と前記認証情報の距離の前記暗号文を受け取ると、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出するクエリ検証部と、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する照合結果生成部と、を備えている。 Apparatus according to one aspect of the present invention, when receiving an authentication request from the authentication request device, one factor of the order selected at random, to generate a single term equation where the coefficients other than the coefficient of the order is set to 0, the single-term equation, the challenge consists of ciphertext encrypted using the encryption key and send it to the authentication request device receives a response from the authentication request device, its degree the and response, the one coefficient Based on the challenge assistance consisting of the challenge assistance and the polymorphic registration information stored in the storage device encrypted by the registration request device, the encryption key is used to encrypt the distance between the registration information and the authentication information. A verification device connected to a collation assisting device for calculating Upon receiving the cipher of the distance between the registration information and the authentication information from the collation assisting device, the cipher of the distance between the registration information and the authentication information is decrypted using the decryption key to calculate the distance. It includes a query verification unit and a collation result generation unit that outputs the calculated distance or the comparison result between the distance and a predetermined threshold as a collation result.

本発明の一様態における方法は、少なくとも一つのコンピュータによる暗号文処理方法であって、
(A)多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開し、
(B)登録情報の登録にあたり、
数値ベクトルである登録情報を多項式化し、
多項式化した前記登録情報を、前記暗号化鍵を用いて暗号化し、
(C)照合補助処理では、
認証要求を受けると、一つの係数とその次数をランダムに選択し、
前記次数の係数以外の係数を0とした項式を生成し、
前記項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求の要求元に送付し、
(D)前記認証要求元では、
数値ベクトルである認証情報を多項式化し、
多項式化した前記認証情報と、前記照合補助処理からの前記チャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の暗号文を算出し、
多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の前記暗号文を、前記レスポンスとして、前記照合補助処理に送付し、
(E)前記照合補助処理では、
前記認証要求元からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、暗号化された前記登録情報とに基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、
前記登録情報と前記認証情報の距離の前記暗号文を、検証先に送付し、
(F)前記検証先では、
前記照合補助処理から受け取った、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、
算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する。
The method in the uniform state of the present invention is a ciphertext processing method by at least one computer.
(A) Calculate a pair of encryption key and decryption key of homomorphic encryption method capable of polynomial arithmetic, and publish the encryption key.
(B) When registering registration information
Polynomialize the registered information, which is a numerical vector,
The polynomialized registration information is encrypted using the encryption key,
(C) In the collation assistance process,
Upon receiving an authentication request, one coefficient and its order are randomly selected,
The coefficients other than the coefficient of the order to generate the 0 and the single section type,
The single-term equation, send a challenge consisting of ciphertext encrypted by using the encryption key to the requesting of the authentication request,
(D) At the authentication request source,
Polynomialize the authentication information, which is a numerical vector,
A polynomial of the said authentication information, based on said challenge from said verification auxiliary processing, using the encryption key, the product of the single term expression used for the generation of the polynomial of the said authentication information challenge Calculate the ciphertext of
The ciphertext of the product of the polynomial of the said authentication information used for the generation of the challenge the single term formulas, the response sent to the verification auxiliary processing,
(E) In the collation assistance process,
When a response is received from the authentication requester, the registration information is obtained by using the encryption key based on the response, the challenge assistance consisting of the one coefficient and its order, and the encrypted registration information. Calculate the ciphertext of the distance of the authentication information,
The ciphertext of the distance between the registration information and the authentication information is sent to the verification destination.
(F) At the verification destination,
The ciphertext of the distance between the registration information and the authentication information received from the verification assistance process is decrypted using the decryption key to calculate the distance.
The calculated distance or the comparison result between the distance and a predetermined threshold value is output as a collation result.

本発明の一様態に係るプログラムは、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し前記暗号化鍵を公開する検証装置に接続され、認証要求装置に接続された照合補助装置を構成するコンピュータに、
前記認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、
前記次数の係数以外の係数を0とした項式を生成し、
前記項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付する処理と、
数値ベクトルである認証情報を多項式化し、前記チャレンジに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の前記暗号文を、レスポンスとして出力する前記認証要求装置からレスポンスを受ける処理と、
前記認証要求装置からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化され記憶装置に記憶されている、多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を前記検証装置に送付する処理と、を実行させるプログラムからなる。
The program according to the uniformity of the present invention is connected to a verification device that calculates a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operations and publishes the encryption key, and is connected to an authentication request device. For the computers that make up the verification assist device
When an authentication request is received from the authentication request device, one coefficient and its order are randomly selected.
The coefficients other than the coefficient of the order to generate the 0 and the single section type,
Wherein a process of a single section type, sends a challenge consisting of ciphertext encrypted by using the encryption key to the authentication request device,
Polynomial the authentication information is a numeric vector, based on said challenge using said encryption key, it calculates a cryptogram of the product of the single-term expression used for the generation of the polynomial of the said authentication information challenge , the ciphertext of the product of the said used to generate the polynomial of the said authentication information challenge single section type, a process of receiving a response from the authentication request device for outputting as a response,
When a response is received from the authentication request device, the response, the challenge assistance consisting of the one coefficient and its order, and the polymorphic registration information encrypted by the registration request device and stored in the storage device are displayed. Based on this, the process of calculating the ciphertext of the distance between the registration information and the authentication information using the encryption key and sending the ciphertext of the distance between the registration information and the authentication information to the verification device is executed. It consists of a program to let you.

本発明の一様態に係るプログラムは、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出する検証装置が公開した暗号化鍵を取得し、
認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした項式を生成し、前記項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを認証要求装置に送付し、前記認証要求装置から受け取ったレスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化された多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を前記検証装置に送付する照合補助装置に接続された前記認証要求装置を構成するコンピュータに、
前記認証要求を生成して前記照合補助装置に送信する処理と、
前記照合補助装置からチャレンジを受け取る処理と、
数値ベクトルである認証情報を多項式化し、多項式化した前記認証情報と、前記照合補助装置から受け取ったチャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と、前記チャレンジの生成に用いられた項式との積の暗号文を算出し、
多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の前記暗号文を、前記レスポンスとして、前記照合補助装置に送付する処理と、を実行させるプログラムからなる。
The program according to the uniformity of the present invention obtains an encryption key published by a verification device that calculates a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operations.
Upon receiving the authentication request, one factor of the order is randomly selected, the coefficients other than the coefficient of the order to generate the 0 and the single section type, the single term equation, using the encryption key cryptography A challenge consisting of the encrypted encrypted text is sent to the authentication requesting device, the response received from the authentication requesting device, the challenge assistance consisting of the one coefficient and its order, and the polynomialized registration encrypted by the registration requesting device. Based on the information, the encryption key is used to calculate the encryption text of the distance between the registration information and the authentication information, and the encryption text of the distance between the registration information and the authentication information is sent to the verification device. To the computer that constitutes the authentication request device connected to the auxiliary device,
The process of generating the authentication request and transmitting it to the verification assisting device, and
The process of receiving a challenge from the verification assist device and
Based on the authentication information that is polynomialized and polynomialized from the authentication information that is a numerical vector and the challenge received from the collation assisting device, the authentication information that is polynomialized and the challenge are generated using the encryption key. calculating a product ciphertext between the single term expression used in,
The ciphertext of the product of the polynomial of the said authentication information and said single-term expression used for the generation of the challenge, as the response consists of a program for executing a processing to be sent to the verification auxiliary apparatus.

本発明の一様態に係るプログラムは、認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした項式を生成し、前記項式を、暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付し、前記認証要求装置からレスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、登録要求装置で暗号化され記憶装置に記憶されている、多項式化した登録情報と、に基づき、前記暗号化鍵を用いて、前記登録情報と認証情報の距離の暗号文を算出する照合補助装置に接続される検証装置を構成するコンピュータに、
多項式演算が可能な準同型暗号方式の前記暗号化鍵と復号鍵のペアを算出し前記暗号化鍵を公開する鍵生成処理と、
前記照合補助装置から前記登録情報と前記認証情報の距離の前記暗号文を受け取ると、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号前記距離を算出するクエリ検証処理と、
算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する照合結果生成処理と、を実行させるプログラムからなる。本発明の一態様によれば、上記プログラムを記録したコンピュータ読み出し可能な記憶媒体(半導体メモリ、磁気ディスク媒体/光ディスク媒体等:non-transitory computer-readable recording medium)が提供される。
Program according to one aspect of the present invention, when receiving an authentication request from the authentication request device, one factor of the order selected at random, to generate a single term equation where the coefficients other than the coefficient of the order is set to 0, the single-term equation, the challenge consists of ciphertext encrypted using the encryption key and send it to the authentication request device receives a response from the authentication request device, its degree the and response, the one coefficient Based on the challenge assistance consisting of the challenge assistance and the polynomialized registration information stored in the storage device encrypted by the registration request device, the encryption key is used to encrypt the distance between the registration information and the authentication information. To the computer that configures the verification device connected to the verification auxiliary device that calculates
A key generation process that calculates a pair of the encryption key and the decryption key of the homomorphic encryption method capable of polynomial operations and publishes the encryption key.
When the ciphertext of the distance between the registration information and the authentication information is received from the collation assisting device, the ciphertext of the distance between the registration information and the authentication information is decrypted using the decryption key. Query verification for calculating the distance. Processing and
The program comprises a program for executing a collation result generation process that outputs the calculated distance or the comparison result between the distance and a predetermined threshold value as a collation result. According to one aspect of the present invention, a computer-readable storage medium (semiconductor memory, magnetic disk medium / optical disk medium, etc .: non-transitory computer-readable recording medium) on which the above program is recorded is provided.

本発明によれば、照合処理を高速に行い、平文データの漏洩やなりすまし攻撃を防ぐことを可能としている。 According to the present invention, it is possible to perform collation processing at high speed and prevent leakage of plaintext data and spoofing attacks.

本発明の第1、第3の例示的な実施形態の構成を例示する図である。It is a figure which illustrates the structure of the 1st and 3rd exemplary embodiments of this invention. 本発明の第1、第3の例示的な実施形態の準備フェーズの処理の一例を説明する図である。It is a figure explaining an example of the process of the preparation phase of the 1st and 3rd exemplary embodiments of this invention. 本発明の第1、第3の例示的な実施形態の登録フェーズの処理の一例を説明する図である。It is a figure explaining an example of the process of the registration phase of the 1st and 3rd exemplary embodiments of this invention. 本発明の第1、第3の例示的な実施形態の認証フェーズの処理の一例を説明する図である。It is a figure explaining an example of the processing of the authentication phase of the 1st and 3rd exemplary embodiments of this invention. 本発明の第2、第4の例示的な実施形態の構成を例示する図である。It is a figure which illustrates the structure of the 2nd and 4th exemplary embodiments of this invention. 本発明の第2、第4の例示的な実施形態の準備フェーズの処理の一例を説明する図である。It is a figure explaining an example of the process of the preparation phase of the 2nd and 4th exemplary embodiments of this invention. 本発明の第2、第4の例示的な実施形態の登録フェーズの処理の一例を説明する図である。It is a figure explaining an example of the process of the registration phase of the 2nd and 4th exemplary embodiments of this invention. 本発明の第2、第4の例示的な実施形態の認証フェーズの処理の一例を説明する図である。It is a figure explaining an example of the processing of the authentication phase of the 2nd and 4th exemplary embodiments of this invention.

はじめに本発明の基本概念を説明する。本発明の一態様に係るシステム(暗号文照合システム)において、検証装置(手段)は、多項式演算が可能な準同型暗号方式の暗号化鍵pkと復号鍵skのペアを算出し、前記暗号化鍵pkを公開する。 First, the basic concept of the present invention will be described. In the system (ciphertext verification system) according to one aspect of the present invention, the verification device (means) calculates a pair of an encryption key pk and a decryption key sk of a quasi-isomorphic encryption method capable of polypoly arithmetic, and performs the encryption. Publish the key pk.

登録要求装置(手段)(例えば図1の110)は、数値ベクトルである登録情報(A=(a,…,aL−1))を多項式化し(例えばf)、多項式化した前記登録情報を、前記暗号化鍵(pk)を用いて暗号化する(例えばEnc(pk,f)、多項式の各係数(数値ベクトルの各成分)の2乗和Enc(pk,Σi=0〜n−1 ))を含んでもよい)。The registration requesting device (means) (for example, 110 in FIG. 1) converts the registration information (A = (a 0 , ..., a L-1 )) which is a numerical vector into a polynomial (for example, f A ), and the registration is made into a polynomial. Information is encrypted using the encryption key (pk) (for example, Enc (pk, f A )), and the sum of squares Enc (pk, Σ i = 0 to ) of each coefficient of the polynomial (each component of the numerical vector). n-1 ai 2 )) may be included).

照合補助装置(手段)(例えば図1の140)は、認証要求装置(手段)(例えば図1の130)から認証要求を受けると、一つの係数(r)とその次数(h)をランダムに選択し、前記次数(h)の係数以外の係数を0とした項式(r×x)を生成し、前記項式(r×x)を、前記暗号化鍵pkを用いて暗号化した暗号文(Enc(pk,r×x))からなるチャレンジを前記認証要求装置(手段)に送付する。 When the verification auxiliary device (means) (for example, 140 in FIG. 1) receives an authentication request from the authentication request device (means) (for example, 130 in FIG. 1), one coefficient (r) and its order (h) are randomly assigned. selected, the coefficients other than the coefficient of the degree (h) to generate a single term expression was 0 (r × x h), the single term formula (r × x h), using the encryption key pk A challenge consisting of an encrypted encrypted text (Enc (pk, r × x h )) is sent to the authentication requesting device (means).

前記照合補助装置(手段)は、前記認証要求装置(手段)からレスポンス(Enc(pk、(r×x)×(f))を受け取ると、前記レスポンスと、前記一つの係数(r)とその次数(h)からなるチャレンジ補助(r,h)と、登録要求装置(手段)(例えば図1の110)で暗号化された前記登録情報(Enc(pk,f))とに基づき、前記暗号化鍵(pk)を用いて、前記登録情報Enc(pk,f)と認証情報の暗号化内積(Enc(pk,f×f))を生成する。前記照合補助装置(手段)は、暗号化鍵(pk)と暗号化内積(Enc(pk,f×f))と、暗号化された登録情報(Enc(pk,Σi=0〜n−1 ))と、前記レスポンスに含まれるEnc(pk,Σi=0〜n−1 )に基づき、距離(d(A,B))の暗号文(Enc(pk,d(A,B)))を算出する。When the collation assisting device (means) receives a response (Enc (pk, (r × x h ) × (f B )) from the authentication requesting device (means), the response and the one coefficient (r) based on and its degree (h) challenge auxiliary consisting of (r, h), and the registration information encrypted by the registration request unit (means) (e.g., 110 in FIG. 1) (Enc (pk, f a)) , The encryption key (pk) is used to generate an encrypted inner product (Enc (pk, f A × f B )) of the registration information Enc (pk, f A) and the authentication information. The means) are an encryption key (pk), an encryption inner product (Enc (pk, f A × f B )), and encrypted registration information (Enc (pk, Σ i = 0 to n-1 a i 2). a)), Enc (pk included in the response, sigma i = based on 0~n-1 b i 2), the distance (d E (a, B) ) ciphertext (Enc (pk, d E ( a , B))) are calculated.

前記照合補助装置(手段)は、暗号化された前記登録情報と前記認証情報の距離の前記暗号文を検証装置(例えば図1の150)に送付する。 The collation assisting device (means) sends the ciphertext of the distance between the encrypted registration information and the authentication information to the verification device (for example, 150 in FIG. 1).

前記認証要求装置(手段)は、数値ベクトルである認証情報(b,…,bL−1)を多項式化し、多項式化した前記認証情報と、前記照合補助装置(手段)から送信された前記チャレンジ(Enc(pk,r×x)とに基づき、前記暗号化鍵(pk)を用いて、多項式化した前記認証情報(f)と前記チャレンジの生成に用いられた前記項式(r×x)との積の暗号文(Enc(pk,(r×x)×(f)))、および、多項式の各係数(数値ベクトルの各成分)の2乗和の暗号文(Enc(pk,Σi=0〜n−1 ))を算出する。 The authentication requesting device (means) is a polynomialized authentication information (b 0 , ..., B L-1 ) which is a numerical vector, and the polynomialized authentication information and the collation assisting device (means) transmitted. Challenge (based on the Enc (pk, r × x h ), using said encryption key (pk), a polynomial of the said authentication information (f B) and used for the generation of the challenge the single term formula ( A cipher of the product of r × x h ) (Enc (pk, (r × x h ) × (f B ))) and a cipher of the sum of squares of each coefficient of the polynomial (each component of the numerical vector). (Enc (pk, Σ i = 0~n-1 b i 2)) is calculated.

前記認証要求装置(手段)は、多項式化した前記認証情報(f)と、前記チャレンジの生成に用いられた前記項式(r×x)との積の前記暗号文(Enc(pk,r×x)×(f))、および、多項式の各係数(数値ベクトルの各成分)の2乗和の暗号文(Enc(pk,Σi=0〜n−1 ))を、前記レスポンスとして、前記照合補助装置(手段)に送付する。 The authentication request device (means), a polynomial of the said authentication information (f B), the ciphertext of the product of the said used to generate the challenge single term formula (r × x h) (Enc (pk , r × x h) × ( f B)), and the ciphertext of the sum of the squares of the coefficients of the polynomial (each component of a numeric vector) (Enc (pk, Σ i = 0~n-1 b i 2) ) Is sent to the collation assisting device (means) as the response.

前記検証装置(手段)は、前記照合補助装置(手段)から受け取った、前記登録情報と前記認証情報の距離の暗号文(Enc(pk,d(A,B)))を、前記復号鍵(sk)を用いて復号し、前記登録情報と前記認証情報の距離を算出し、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力する。 The verification device (means) converts the ciphertext (Enc (pk, d E (A, B))) of the distance between the registration information and the authentication information received from the verification auxiliary device (means) into the decryption key. Decryption is performed using (sk), the distance between the registration information and the authentication information is calculated, and the calculated distance or the comparison result between the distance and a predetermined threshold value is output as a collation result.

本発明の一形態によれば、記憶装置(例えば図1の120)をさらに備えている。該記憶装置は、
登録データ記憶部(例えば図1の123)と、
前記登録要求装置(手段)から受け取った、暗号化された前記登録情報に対して識別子を付与する識別子付与部(手段)(例えば図1の121)と、
暗号化された前記登録情報と前記識別子との組からなる登録データを生成し前記登録データ記憶部に格納する登録データ生成部(手段)(例えば図1の122)と、
前記照合補助装置(手段)からの登録データ要求を受け、前記登録データ記憶部に記憶されている前記登録データの中から、前記登録データ要求に含まれる識別子と組とされている、暗号化された登録情報を、前記照合補助装置(手段)に送付する登録データ検索部(手段)(例えば図1の124)と、を備えた構成としてもよい。
According to one embodiment of the present invention, a storage device (for example, 120 in FIG. 1) is further provided. The storage device is
The registered data storage unit (for example, 123 in FIG. 1) and
An identifier assigning unit (means) (for example, 121 in FIG. 1) that assigns an identifier to the encrypted registration information received from the registration requesting device (means).
A registration data generation unit (means) (for example, 122 in FIG. 1) that generates registration data composed of a set of the encrypted registration information and the identifier and stores the registration data in the registration data storage unit.
Upon receiving the registration data request from the collation assisting device (means), the registered data stored in the registration data storage unit is encrypted and is paired with the identifier included in the registration data request. The configuration may include a registration data search unit (means) (for example, 124 in FIG. 1) for sending the registered information to the collation assisting device (means).

この場合、前記照合補助装置(手段)は、前記認証要求装置(手段)から受け取った認証要求に含まれ、前記認証情報に対応する認証識別子を含む登録データ要求を前記記憶装置(手段)に送付する構成としてもよい。前記照合補助装置(手段)は、前記記憶装置(手段)から、前記認証識別子に対応する暗号化された前記登録情報を受け取り、前記認証要求装置(手段)から受け取った前記レスポンスと、前記チャレンジ補助と、前記記憶装置(手段)から受け取った暗号化された前記登録情報とに基づき、前記登録情報と前記認証情報の距離の暗号文を算出する構成としてもよい。 In this case, the verification auxiliary device (means) is included in the authentication request received from the authentication request device (means), and sends a registration data request including an authentication identifier corresponding to the authentication information to the storage device (means). It may be configured to be used. The collation assisting device (means) receives the encrypted registration information corresponding to the authentication identifier from the storage device (means), the response received from the authentication requesting device (means), and the challenge assist. And, based on the encrypted registration information received from the storage device (means), the encrypted text of the distance between the registration information and the authentication information may be calculated.

本発明の一形態によれば、記憶装置(例えば図5の220)をさらに備えている。該記憶装置は、
登録データ記憶部(例えば図5の223)と、
前記登録要求装置(手段)から受け取った、暗号化された前記登録情報に対して識別子を付与する識別子付与部(手段)(例えば図5の221)と、
暗号化された前記登録情報と前記識別子との組からなる登録データを生成し前記登録データ記憶部に格納する登録データ生成部(手段)(例えば図5の222)と、
を備えた構成としてもよい。
According to one embodiment of the present invention, a storage device (for example, 220 in FIG. 5) is further provided. The storage device is
With the registered data storage unit (for example, 223 in FIG. 5),
An identifier assigning unit (means) (for example, 221 in FIG. 5) that assigns an identifier to the encrypted registration information received from the registration requesting device (means).
A registration data generation unit (means) (for example, 222 in FIG. 5) that generates registration data composed of a set of the encrypted registration information and the identifier and stores the registration data in the registration data storage unit.
It may be configured to include.

この場合、前記照合補助装置(手段)(例えば図5の240)からの登録データ要求を受け、前記登録データ記憶部(図5の223)に格納されている一つ又は複数の登録データのうち、一部又はすべての登録データを、前記照合補助装置(手段)(図5の240)に送信する構成としてもよい。前記照合補助装置(手段)(図5の240)は、前記記憶装置(手段)から、一つ又は複数の登録データを受け取り、前記記憶装置(手段)から受け取った各登録データについて、前記認証要求装置(手段)(例えば図5の230)から受け取った前記レスポンスと、前記チャレンジ補助と、前記登録データに含まれる暗号化された登録情報とに基づき、暗号化された前記登録情報と前記認証情報の距離の暗号文を算出し、前記登録データについて、算出した前記登録情報と前記認証情報の距離の暗号文と、前記登録データに含まれる識別子との組を検証データとし、生成した一つ又は複数の前記検証データを前記検証装置(手段)(例えば図5の250)に送付する構成としてもよい。 In this case, among one or a plurality of registered data stored in the registered data storage unit (223 in FIG. 5) in response to a registration data request from the collation assisting device (means) (for example, 240 in FIG. 5). , A part or all of the registered data may be transmitted to the collation assisting device (means) (240 in FIG. 5). The collation assisting device (means) (240 in FIG. 5) receives one or more registered data from the storage device (means), and requests the authentication for each registered data received from the storage device (means). The encrypted registration information and the authentication information based on the response received from the device (means) (for example, 230 in FIG. 5), the challenge assistance, and the encrypted registration information included in the registration data. The ciphertext of the distance is calculated, and for the registered data, the pair of the calculated ciphertext of the distance between the registration information and the authentication information and the identifier included in the registration data is used as verification data, and one or the generated one or A plurality of the verification data may be sent to the verification device (means) (for example, 250 in FIG. 5).

前記検証装置(手段)(図5の250)は、前記照合補助装置(手段)(図5の240)から、一つ又は複数の前記検証データを受け取り、各検証データについて、当該検証データに含まれる距離の暗号文を、前記復号鍵を用いて復号して距離を算出し、算出した前記距離と予め定められた閾値との比較結果、又は、算出した前記距離と前記検証データに含まれる識別子との組を、照合結果とし、該照合結果を出力する構成としてもよい。 The verification device (means) (250 in FIG. 5) receives one or more of the verification data from the verification auxiliary device (means) (240 in FIG. 5), and each verification data is included in the verification data. The ciphertext of the distance to be obtained is decrypted using the decryption key to calculate the distance, and the result of comparison between the calculated distance and a predetermined threshold, or the calculated distance and the identifier included in the verification data. The pair with and may be used as the collation result, and the collation result may be output.

上記したように、本発明の一態様によれば、数値ベクトルである登録情報に基づき生成された多項式を暗号化鍵を用いて暗号化し、一つの項の係数が乱数でその他の項の係数が0である項式を暗号化したチャレンジと、数値ベクトルである認証情報に基づき生成された多項式との積の暗号文を生成し、登録情報に基づき生成された多項式の暗号文と、前記チャレンジと、チャレンジと認証情報に基づき生成された多項式との積の暗号文と、から、登録情報と認証情報との距離の暗号文を生成する。そして、前記暗号文(前記登録情報と前記認証情報との距離の暗号文)を復号鍵を用いて復号し前記距離を算出する。 As described above, according to one aspect of the present invention, the polynomial generated based on the registration information which is a numerical vector is encrypted by using the encryption key, and the coefficient of one term is a random number and the coefficient of the other term is and challenge the single term expression was encrypted is 0, it generates a ciphertext of the product of the generated polynomial based on the authentication information is a numeric vector, and ciphertext generated polynomial based on the registration information, the challenge And the cipher of the product of the polynomial generated based on the challenge and the authentication information, the cipher of the distance between the registration information and the authentication information is generated. Then, the ciphertext (the ciphertext of the distance between the registration information and the authentication information) is decrypted using the decryption key, and the distance is calculated.

上記態様では、前記登録要求装置は、登録情報(登録ベクトル)の第i成分(ただしiはL−1以下の非負整数、Lは2以上の正整数)をi次の項の係数とするL−1次多項式(fA)を生成し、前記認証要求装置は認証情報(認証ベクトル)の第i成分(ただしiはL−1以下の非負整数)の逆元を、N−i次(NはLより大の正整数)の項の係数とするN次多項式を生成するが、前記登録要求装置が登録情報(登録ベクトル)の第i成分(ただしiはL−1以下の非負整数)の逆元を、N−i次(NはLより大の正整数)の項の係数とするN次多項式を生成し、認証要求装置が認証情報(認証ベクトル)の第i成分(ただしiはL−1以下の非負整数、Lは2以上の正整数)を、i次の項の係数とするL−1次多項式fAを生成してもよい。 In the above aspect, the registration requesting device uses the i-th component of the registration information (registration vector) (where i is a non-negative integer of L-1 or less and L is a positive integer of 2 or more) as the coefficient of the i-order term. A -1st order polypoly (fA) is generated, and the authentication requesting device uses the inverse element of the i-th component (where i is a non-negative integer less than or equal to L-1) of the authentication information (authentication vector) as the N−i order (N is). An Nth-order polypoly is generated as a coefficient of the term (a positive integer greater than L), but the registration requesting device is the inverse of the i-th component (where i is a non-negative integer less than or equal to L-1) of the registration information (registration vector). An N-th order polymorphic element is generated with the element as a coefficient of the term of N-th order (N is a positive integer larger than L), and the authentication requesting device generates the i-th component (where i is L-) of the authentication information (authentication vector). A non-negative integer of 1 or less and L is a positive integer of 2 or more) may be used as the coefficient of the i-th order term to generate an L-1st order polymorphic fA.

本発明の例示的な実施形態について図面を参照して詳細に説明する。 An exemplary embodiment of the present invention will be described in detail with reference to the drawings.

以下の各例示的な実施形態では、本発明を生体認証として用いた場合について説明する。各実施形態の暗号文照合システムは、生体認証の用途に限定されない。 In each of the following exemplary embodiments, the case where the present invention is used as biometric authentication will be described. The ciphertext verification system of each embodiment is not limited to the use of biometric authentication.

(第1の実施形態)
図1は、第1の例示的な実施形態に係る暗号文照合システム100の構成を例示する図である。暗号文照合システム100は、コンピュータシステム等による情報処理システムから構成される。第1の例示的な実施形態に係る暗号文照合システム100は、大別して、登録要求装置110と、記憶装置120と、認証要求装置130と、照合補助装置140と、検証装置150とを有する。
(First Embodiment)
FIG. 1 is a diagram illustrating the configuration of the ciphertext verification system 100 according to the first exemplary embodiment. The ciphertext verification system 100 is composed of an information processing system such as a computer system. The ciphertext verification system 100 according to the first exemplary embodiment is roughly classified into a registration request device 110, a storage device 120, an authentication request device 130, a verification auxiliary device 140, and a verification device 150.

登録要求装置110は、登録情報抽出部111と、第一テンプレート生成部112と、第二テンプレート生成部113と、テンプレート生成部114とを有する。 The registration request device 110 includes a registration information extraction unit 111, a first template generation unit 112, a second template generation unit 113, and a template generation unit 114.

記憶装置120は、識別子付与部121と、登録データ生成部122と、登録データ記憶部123と、登録データ検索部124とを有する。 The storage device 120 includes an identifier assigning unit 121, a registration data generation unit 122, a registration data storage unit 123, and a registration data search unit 124.

認証要求装置130は、認証要求生成部131と、認証情報抽出部132と、第一レスポンス生成部133と、第二レスポンス生成部134と、レスポンス生成部135とを有する。 The authentication request device 130 includes an authentication request generation unit 131, an authentication information extraction unit 132, a first response generation unit 133, a second response generation unit 134, and a response generation unit 135.

照合補助装置140は、チャレンジ補助生成部141と、チャレンジ生成部142と、登録データ要求生成部143と、暗号化内積計算部144と、クエリ生成部145とを有する。 The collation auxiliary device 140 includes a challenge auxiliary generation unit 141, a challenge generation unit 142, a registration data request generation unit 143, an encryption inner product calculation unit 144, and a query generation unit 145.

検証装置150は、鍵生成部151と、復号鍵記憶部152と、クエリ検証部153と、照合結果生成部154とを有する。 The verification device 150 includes a key generation unit 151, a decryption key storage unit 152, a query verification unit 153, and a collation result generation unit 154.

登録要求装置110と記憶装置120、記憶装置120と照合補助装置140、認証要求装置130と照合要求装置140、照合補助装置140と検証装置150は、例えば、通信ネットワークを介して、相互に通信することが可能であるものとする。あるいは、登録要求装置110、記憶装置120、照合補助装置140、認証要求装置130、検証装置150はLAN(Local Area Network)、あるいは、WAN(Wide Area Netwrok)等のネットワークを介して接続する分散構成としてもよい。なお、登録要求装置110、記憶装置120、照合補助装置140、認証要求装置130、検証装置150のうち、複数の装置を一つのユニットに実装してもよいことは勿論である。登録要求装置110、記憶装置120、照合補助装置140、認証要求装置130は、検証装置150が公開した公開鍵(検証装置150が作成した、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアのうちの前記暗号化鍵)を取得可能に構成されている。登録要求装置110、記憶装置120、照合補助装置140、認証要求装置130、検証装置150の少なくとも一つの装置、又は全部の装置において、各部の少なくとも一部又は全部の処理は、コンピュータ(CPU(Central Processing Unit)、プロセッサ)で実行されるプログラムによって実現するようにしてもよい。この場合、当該プログラムを記録したコンピュータ読み出し可能な半導体メモリ、HDD(Hard Disk Drive)、CD(Compact Disk)、DVD(Digital Versatile Disk)等からプログラムをコンピュータの主メモリ等に読み出して実行することで各部の処理が実現される。 The registration request device 110 and the storage device 120, the storage device 120 and the verification auxiliary device 140, the authentication request device 130 and the verification request device 140, and the verification auxiliary device 140 and the verification device 150 communicate with each other via, for example, a communication network. It shall be possible. Alternatively, the registration request device 110, the storage device 120, the verification auxiliary device 140, the authentication request device 130, and the verification device 150 are connected via a network such as a LAN (Local Area Network) or a WAN (Wide Area Network). May be. Of course, a plurality of devices among the registration request device 110, the storage device 120, the verification assist device 140, the authentication request device 130, and the verification device 150 may be mounted in one unit. The registration request device 110, the storage device 120, the verification auxiliary device 140, and the authentication request device 130 are the public keys disclosed by the verification device 150 (the encryption key of the homomorphic encryption method created by the verification device 150 and capable of polymorphic operation). The encryption key of the decryption key pair) can be obtained. In at least one device of the registration request device 110, the storage device 120, the verification auxiliary device 140, the authentication request device 130, and the verification device 150, or all the devices, at least a part or all of the processing of each part is performed by a computer (CPU (Central)). It may be realized by a program executed by a processing unit) or a processor). In this case, the program is read from a computer-readable semiconductor memory, HDD (Hard Disk Drive), CD (Compact Disk), DVD (Digital Versaille Disk), etc. on which the program is recorded into the main memory of the computer and executed. The processing of each part is realized.

なお、暗号文照合システム100においては、登録要求装置110と、認証要求装置130とをまとめて、「第1ノード」と表してもよい。暗号文照合システム100においては、記憶装置120と、照合補助装置140とをまとめて、「第2ノード」と表してもよい。また、暗号文照合システム100においては、検証装置150を、「第3ノード」と表してもよい。すなわち、暗号文照合システム100は、図1に例示した様態に限定されない。 In the ciphertext verification system 100, the registration request device 110 and the authentication request device 130 may be collectively referred to as a "first node". In the ciphertext verification system 100, the storage device 120 and the verification auxiliary device 140 may be collectively referred to as a “second node”. Further, in the ciphertext verification system 100, the verification device 150 may be referred to as a "third node". That is, the ciphertext verification system 100 is not limited to the mode illustrated in FIG.

[動作の説明]
次に、図面を参照して、本実施形態に係る暗号文照合システム100の動作について説明する。本発明の第1の例示的な実施形態に係る暗号文照合システム100における処理について説明する。
[Explanation of operation]
Next, the operation of the ciphertext verification system 100 according to the present embodiment will be described with reference to the drawings. The processing in the ciphertext verification system 100 according to the first exemplary embodiment of the present invention will be described.

暗号文照合システム100における処理は、大別して、
・準備フェーズ、
・登録フェーズ、及び、
・照合フェーズを含む。
The processing in the ciphertext verification system 100 is roughly classified.
・ Preparation phase,
・ Registration phase and
-Includes collation phase.

まず、各フェーズにおける処理の概要について説明する。本発明の第1の例示的な実施形態に係る暗号文照合システム100では、加法及び乗法について準同型性を持つ準同型暗号方式を用いる。説明の便宜上、用いる暗号方式はメッセージとして、各係数がtよりも小さい非負整数である、N−1次多項式を扱うものとする(係数∈Z={0,1,2,・・・,t−1})。First, the outline of the processing in each phase will be described. The ciphertext verification system 100 according to the first exemplary embodiment of the present invention uses a homomorphic encryption system having homomorphism in addition and multiplication. For convenience of explanation, the cryptosystem used is assumed to handle an N-1 degree polynomial in which each coefficient is a non-negative integer smaller than t as a message (coefficient ∈ Z t = {0, 1, 2, ..., t-1}).

準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、暗号化鍵、及び、復号鍵が生成される。 In the preparation phase, the encryption key and the decryption key are mainly generated using the received security parameters.

登録フェーズにおいては、主として、準備フェーズで生成された暗号化鍵を用いて、抽出された登録ベクトルが暗号化されたテンプレートが作成され、保存される。 In the registration phase, a template in which the extracted registration vector is encrypted is mainly created and stored using the encryption key generated in the preparation phase.

照合フェーズにおいては、主として、準備フェーズで生成された復号鍵を用いて、新たに抽出された認証ベクトルと一つの登録ベクトルとの間の距離が算出される。 In the collation phase, the distance between the newly extracted authentication vector and one registration vector is calculated mainly by using the decryption key generated in the preparation phase.

次に、暗号文照合システム100が、上述した各フェーズにて実行する処理について詳細に説明する。 Next, the process executed by the ciphertext verification system 100 in each of the above-mentioned phases will be described in detail.

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

検証装置150における鍵生成部151は、セキュリティパラメータを受信し、受信したセキュリティパラメータを用いて、例えば、上述した鍵生成アルゴリズム(非特許文献1)に従い、暗号化鍵(公開鍵)pk、及び、復号鍵(秘密鍵)skを生成する(ステップA1)。なお、生成される暗号化鍵、及び、復号鍵は、加法及び乗法に関して準同型性を有する公開鍵暗号方式に準拠する。 The key generation unit 151 in the verification device 150 receives the security parameter, and uses the received security parameter, for example, according to the above-mentioned key generation algorithm (Non-Patent Document 1), the encryption key (public key) pk, and the key generation unit 151. A decryption key (private key) sk is generated (step A1). The generated encryption key and decryption key conform to the public key cryptosystem having homomorphism in addition and multiplication.

鍵生成部151は、生成した暗号化鍵pkを、暗号文照合システム100において公開する(ステップA2)。 The key generation unit 151 publishes the generated encryption key pk in the ciphertext verification system 100 (step A2).

鍵生成部151は、生成した復号鍵skを、復号鍵記憶部152に格納する(ステップA3)。 The key generation unit 151 stores the generated decryption key sk in the decryption key storage unit 152 (step A3).

なお、本実施形態に係る暗号文照合システム100が準備フェーズにて実行する処理は、図2に例示された様態に限定されない。 The process executed by the ciphertext verification system 100 according to the present embodiment in the preparation phase is not limited to the mode illustrated in FIG.

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

登録要求装置110における登録情報抽出部111は、登録対象の生体から生体情報(「登録ベクトル」と呼ぶ)
A=(a,…,aL−1) ・・・(式29)
を抽出する(ステップB1)。
The registration information extraction unit 111 in the registration request device 110 receives biological information (referred to as “registration vector”) from the living body to be registered.
A = (a 0 , ..., a L-1 ) ... (Equation 29)
Is extracted (step B1).

次に、登録要求装置110における第一テンプレート生成部112は、暗号化鍵pkを用いて、次の式30に従って生成される、登録ベクトルAの各i番目(i=0,…,L−1)の成分aをi次の項の係数に持つL−1次多項式
(x)=Σi=0〜L−1×x ・・・(式30)
の暗号文
Enc(pk,f
を計算する(ステップB2)。
Next, the first template generation unit 112 in the registration request device 110 uses the encryption key pk to generate each i-th (i = 0, ..., L-1) of the registration vector A according to the following equation 30. component a i a i-th order having the coefficients of the terms L-1 order polynomial f a of) (x) = Σ i = 0~L-1 a i × x i ··· ( formula 30)
Ciphertext Enc (pk, f A )
Is calculated (step B2).

ステップB2で計算した暗号文Enc(pk,f)を「第一テンプレート」と呼ぶことにする。Ciphertext calculated in step B2 Enc (pk, f A) being referred to as the "first template".

次に、登録要求装置110における第二テンプレート生成部113は、暗号化鍵pkを用いて、登録ベクトルAの各成分の二乗和
Σi=0〜L−1 ・・・(式31)
の暗号文
Enc(pk,Σi=0〜L−1
を計算する(ステップB3)。
Next, the second template generation unit 113 in the registration request device 110 uses the encryption key pk to sum the squares of each component of the registration vector A Σ i = 0 to L-1 a i 2 ... (Equation 31). )
Ciphertext Enc (pk, Σ i = 0 to L-1 a i 2 )
Is calculated (step B3).

ステップB3で計算した登録ベクトルAの各成分の二乗和暗号文Enc(pk,Σi=0〜L−1 )を「第二テンプレート」と呼ぶことにする。 The squared sum ciphertext Enc (pk, Σ i = 0 to L-1 ai 2 ) of each component of the registration vector A calculated in step B3 is referred to as a “second template”.

次に、登録要求装置110におけるテンプレート生成部114は、第一テンプレートと第二テンプレートをまとめ、テンプレート
(Enc(pk,f),Enc(pk,Σi=0〜n−1 )) ・・・(式32)
とする(ステップB4)。
Next, the template generation unit 114 in the registration request device 110 puts together the first template and the second template, and the templates (Enc (pk, f A ), Enc (pk, Σ i = 0 to n-1 a i 2 )). ) ・ ・ ・ (Equation 32)
(Step B4).

登録要求装置110は、テンプレート(Enc(pk,f)、Enc(pk,Σi=0〜n−1 ))を記憶装置120に送付する(ステップB5)。The registration requesting device 110 sends the template (Enc (pk, f A ), Enc (pk, Σ i = 0 to n-1 ai 2 )) to the storage device 120 (step B5).

次に、記憶装置120は、登録要求装置110から、テンプレート(Enc(pk,f),Enc(pk,Σi=0〜n−1 ))を受け取る(ステップB6)。Next, the storage device 120 receives a template (Enc (pk, f A ), Enc (pk, Σ i = 0 to n-1 a i 2 )) from the registration request device 110 (step B6).

記憶装置120における識別子付与部121は、登録要求装置110から受け取ったテンプレート(Enc(pk,f),Enc(pk,Σi=0〜n−1 ))に固有の識別子である登録識別子idを決定する(ステップB7)。The identifier assigning unit 121 in the storage device 120 is an identifier unique to the template (Enc (pk, f A ), Enc (pk, Σ i = 0 to n-1 a i 2 )) received from the registration request device 110. The registration identifier id is determined (step B7).

記憶装置120は、登録識別子idを登録要求装置110に送付する(ステップB8)。 The storage device 120 sends the registration identifier id to the registration request device 110 (step B8).

次に、登録要求装置110は、記憶装置120から登録識別子idを受け取る(ステップB9)。 Next, the registration request device 110 receives the registration identifier id from the storage device 120 (step B9).

登録要求装置110は、受信した登録識別子idを、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップB10)。あるいは、登録要求装置110は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、受信した登録識別子idを格納してもよい。 The registration request device 110 displays the received registration identifier id on a user interface (UI) such as a display (step B10). Alternatively, the registration request device 110 may store the received registration identifier id in an IC (integrated_cycle) card such as an employee ID card or an identifier card.

次に、記憶装置120における登録データ生成部122は、テンプレートと登録識別子idをまとめ、登録データ
((Enc(pk,f),Enc(pk,Σi=0〜n−1 )),id) ・・・(式33)
とする(ステップB11)。
Next, the registration data generation unit 122 in the storage device 120 puts together the template and the registration identifier id, and the registration data ((Enc (pk, f A ), Enc (pk, Σ i = 0 to n-1 a i 2 )). ), Id) ・ ・ ・ (Equation 33)
(Step B11).

記憶装置120における登録データ記憶部123に、上記登録データ(式33)を格納する(ステップB12)。 The registration data (Equation 33) is stored in the registration data storage unit 123 in the storage device 120 (step B12).

なお、本実施形態に係る暗号文照合システム100が登録フェーズにて実行する処理は、図3に例示された様態に限定されない。例えば、ステップB8に先だってステップB11とステップB12とが実行されてもよい。 The process executed by the ciphertext verification system 100 according to the present embodiment in the registration phase is not limited to the mode illustrated in FIG. For example, step B11 and step B12 may be executed prior to step B8.

図4は、認証フェーズにおいて、第1の例示的な実施形態に係る暗号文照合システム100が実行する処理の一例を示すフローチャートである。図4を参照しながら、本実施形態に係る照合システム100が、認証フェーズにて実行する処理について説明する。 FIG. 4 is a flowchart showing an example of processing executed by the ciphertext verification system 100 according to the first exemplary embodiment in the authentication phase. The process executed by the collation system 100 according to the present embodiment in the authentication phase will be described with reference to FIG.

認証要求装置130は、認証対象の持つ識別子(「認証識別子」と呼ぶ)を受け取る(ステップC1)。 The authentication requesting device 130 receives an identifier (referred to as an “authentication identifier”) possessed by the authentication target (step C1).

次に、認証要求装置130における認証要求生成部131は、受け取った認証識別子を含む認証要求を生成する(ステップC2)。 Next, the authentication request generation unit 131 in the authentication request device 130 generates an authentication request including the received authentication identifier (step C2).

認証要求装置130は、認証要求を照合補助装置140に送付する(ステップC3)。 The authentication request device 130 sends an authentication request to the verification auxiliary device 140 (step C3).

照合補助装置140は、認証要求装置130から認証要求を受け取る(ステップC4)。 The verification auxiliary device 140 receives an authentication request from the authentication request device 130 (step C4).

次に、照合補助装置140におけるチャレンジ補助生成部141は、整数tより小さい整数rと、N−1より小さい整数hとをランダムに選択する。チャレンジ補助生成部141は、選択した値r、hをまとめ、チャレンジ補助(r,h)とする(ステップC5)。 Next, the challenge auxiliary generation unit 141 in the collation auxiliary device 140 randomly selects an integer r smaller than the integer t and an integer h smaller than N-1. The challenge assistance generation unit 141 collects the selected values r and h and sets them as challenge assistance (r, h) (step C5).

次に、照合補助装置140におけるチャレンジ生成部142は、暗号化鍵pkを用いて、チャレンジ補助(r,h)から算出される項式
r×x ・・・(式34)
の暗号文Enc(pk,r×x)を計算する(ステップC6)。ステップC6で計算した暗号文Enc(pk,r×x)を「チャレンジ」と呼ぶ。
Then, the challenge generating unit 142 in the verification auxiliary apparatus 140 uses the encryption key pk, challenge auxiliary (r, h) the single term equation r × x h ··· calculated from (Equation 34)
The ciphertext Enc (pk, r × x h ) of is calculated (step C6). The ciphertext Enc (pk, r × x h ) calculated in step C6 is called a “challenge”.

照合補助装置140は、チャレンジEnc(pk,r×x)を認証要求装置130に送付する(ステップC7)。The collation assisting device 140 sends the challenge Enc (pk, r × h ) to the authentication requesting device 130 (step C7).

次に、照合補助装置140における登録データ要求生成部143は、認証要求装置130から受け取った認証要求に含まれる認証識別子を含む登録データ要求を生成する(ステップC8)。 Next, the registration data request generation unit 143 in the collation assisting device 140 generates a registration data request including the authentication identifier included in the authentication request received from the authentication request device 130 (step C8).

照合補助装置140は、登録データ要求を記憶装置120に送付する(ステップC9)。 The collation assisting device 140 sends the registration data request to the storage device 120 (step C9).

次に、記憶装置120は、照合補助装置140から登録データ要求を受け取る(ステップC10)。 Next, the storage device 120 receives a registration data request from the collation assisting device 140 (step C10).

記憶装置120における登録データ検索部124は、登録データ記憶部123に格納されている、一つまたは複数の登録データのうち、登録データ要求に含まれる認証識別子を含む登録データを特定する(ステップC11)。特定された登録データに含まれるテンプレートを「照合対象テンプレート」と呼ぶ。 The registration data search unit 124 in the storage device 120 identifies the registration data including the authentication identifier included in the registration data request among one or a plurality of registration data stored in the registration data storage unit 123 (step C11). ). The template included in the specified registration data is called a "matching target template".

記憶装置120は、照合対象テンプレートを照合補助装置140に送付する(ステップC12)。 The storage device 120 sends the collation target template to the collation assisting device 140 (step C12).

照合補助装置140は、記憶装置120から照合対象テンプレートを受け取る(ステップC13)。 The collation assisting device 140 receives the collation target template from the storage device 120 (step C13).

認証要求装置130は、照合補助装置140がステップC7で送信したチャレンジを受け取る(ステップC14)。 The authentication requesting device 130 receives the challenge transmitted by the verification assisting device 140 in step C7 (step C14).

次に、認証要求装置130における認証情報抽出部132は、認証対象の生体から生体情報(「認証ベクトル」という)
B=(b,…,bL−1) ・・・(式35)
を抽出する(ステップC15)。
Next, the authentication information extraction unit 132 in the authentication request device 130 receives biometric information (referred to as “authentication vector”) from the living body to be authenticated.
B = (b 0 , ..., b L-1 ) ... (Equation 35)
Is extracted (step C15).

次に、認証要求装置130における第一レスポンス生成部133は、上記式21に従って、認証ベクトルBの各i番目(i=0,…,L−1)の成分bの加法に関する逆元−bを、N−i次の項の係数に持つN次多項式
(x)=−Σi=0〜n−1×xN−i ・・・(式36)
を算出する。さらに、
・暗号化鍵pkと、
・生成した多項式fと、
・照合補助装置140から受け取ったチャレンジEnc(pk,r×x)と、
に基づき、
例えば暗号方式の、暗号文のスカラー倍を計算できる性質(式6)を利用して、第一レスポンス
Enc(pk,(r×x)×(f)) ・・・(式37)
を生成する(ステップC16)。
Then, the first response generator 133 of the authentication requesting device 130 in accordance with the above equation 21, the authentication each i-th vector B (i = 0, ..., L-1) inverse -b concerning the addition component b i of i a, N-i Next N order polynomial f B having the coefficient of the term (x) = - Σ i = 0~n-1 b i × x N-i ··· ( formula 36)
Is calculated. Moreover,
・ Encryption key PK and
・ The generated polynomial f B and
-Challenge Enc (pk, r × x h ) received from the collation assisting device 140 and
Based on
For example, using the property (Equation 6) of the encryption method that can calculate the scalar multiple of the ciphertext, the first response Enc (pk, (r × x h ) × (f B )) ... (Equation 37)
Is generated (step C16).

次に、認証要求装置130における第二レスポンス生成部134は、暗号化鍵pkを用いて、認証ベクトルBの各成分の二乗和
Σi=0〜L−1 ・・・(式38)
の暗号文
Enc(pk,Σi=0〜L−1
を計算する(ステップC17)。ステップC17で計算した認証ベクトルBの各成分の二乗和の暗号文を「第二レスポンス」と呼ぶ。
Then, the second response generator 134 in the authentication request unit 130 uses the encryption key pk, the authentication vector = 0 to L-1 square sum sigma i of each component of B b i 2 ··· (wherein 38 )
Ciphertext Enc (pk, Σ i = 0~L -1 b i 2)
Is calculated (step C17). The ciphertext of the sum of squares of each component of the authentication vector B calculated in step C17 is called a "second response".

次に、認証要求装置130におけるレスポンス生成部135は、
・第一レスポンスEnc(pk,(r×x)×(f))と、
・第二レスポンスEnc(pk,Σi=0〜L−1 )と
をまとめ、レスポンス
(Enc(pk,(r×x)×(f)),Enc(pk,Σi=0〜L−1 )) ・・・(式39)
とする(ステップC18)。
Next, the response generation unit 135 in the authentication request device 130
-First response Enc (pk, (r × x h ) × (f B )),
And second response Enc (pk, Σ i = 0~L -1 b i 2) and combined, the response (Enc (pk, (r × x h) × (f B)), Enc (pk, Σ i = 0~L-1 b i 2)) ··· ( equation 39)
(Step C18).

認証要求装置130は、ステップC18で生成した上記レスポンス(式39)を照合補助装置140に送付する(ステップC19)。 The authentication request device 130 sends the above response (Equation 39) generated in step C18 to the collation assisting device 140 (step C19).

次に、照合補助装置140は、認証要求装置130から、上記レスポンス(式39)を受け取る(ステップC20)。 Next, the collation assisting device 140 receives the above response (Equation 39) from the authentication requesting device 130 (step C20).

次に、照合補助装置140における暗号化内積計算部144は、
・暗号化鍵pkと、
・ステップC5で生成したチャレンジ補助(r,h)から生成される項式−r−1×xN−hと、
・ステップC20で受け取ったレスポンス(Enc(pk,(r×x)×(f)),Enc(pk,Σi=0〜L−1 ))に含まれる第一レスポンスEnc(pk,(r×x)×(f))と、
に基づき、
例えば暗号方式の、暗号文のスカラー倍を計算できる性質(式5)を用いて、
Enc(pk,f)=(−r−1×xN−h)×Enc(pk,(r×x)×(f)) ・・・(式40)
を計算する。
Next, the encryption inner product calculation unit 144 in the collation auxiliary device 140
・ Encryption key PK and
· Generated challenge auxiliary in step C5 (r, h) the single term expression -r -1 × x N-h generated from,
Response (Enc (pk, (r × x h) × (f B)), Enc (pk, Σ i = 0~L-1 b i 2)) received in step C20 to the first response Enc included ( pk, (r × x h ) × (f B )),
Based on
For example, using the property (Equation 5) of the encryption method that can calculate the scalar multiple of the ciphertext,
Enc (pk, f B ) = (-r -1 x x N-h ) x Enc (pk, (r x x h ) x (f B )) ... (Equation 40)
To calculate.

さらに、暗号化内積計算部144は、
・暗号化鍵pkと、
・ステップC13で受け取った照合対象テンプレートに含まれる第一テンプレートEnc(pk,f)と、
・計算した暗号文Enc(pk,f)と、
に基づき、
暗号方式の乗法準同型性を利用して、暗号化内積
Enc(pk,f×f
を生成する(ステップC21)。
Further, the encrypted inner product calculation unit 144
・ Encryption key PK and
· First template Enc (pk, f A) included in the comparison target template received in step C13 and,
-Calculated ciphertext Enc (pk, f B ) and
Based on
Cryptographic inner product Enc (pk, f A x f B ) using the multiplication homomorphism of the cryptosystem
Is generated (step C21).

なお、前述の通り(式22、式23)、f×fの定数項は、登録ベクトルAと認証ベクトルBとの内積
<A,B>=Σi=0〜n−1×b
と等しい。
Incidentally, as described above (Equation 22, Equation 23), the constant term of f A × f B is the inner product of the registration vectors A and authentication vector B <A, B> = Σ i = 0~n-1 a i × bi i
Is equal to.

次に、照合補助装置140におけるクエリ生成部145は、
・暗号化鍵pkと、
・ステップC21で生成した暗号化内積Enc(pk,f×f
と、
・ステップC13で受け取った照合対象テンプレートに含まれる第二テンプレートEnc(pk,Σi=0〜n−1 )と、
・ステップC20で受け取ったレスポンスに含まれる第二レスポンスEnc(pk,Σi=0〜L−1 )と、
から、暗号方式の加法準同型性を利用して、クエリ
Enc(pk,f)
を生成する(ステップC22)。
Next, the query generation unit 145 in the collation assisting device 140
・ Encryption key PK and
-Encryption inner product Enc (pk, f A x f B ) generated in step C21.
When,
-The second template Enc (pk, Σ i = 0 to n-1 ai 2 ) included in the collation target template received in step C13, and
And second response Enc (pk, Σ i = 0~L -1 b i 2) included in the response received in step C20 and,
From, using the additive homomorphism of the cryptosystem, the query Enc (pk, f)
Is generated (step C22).

ただし、クエリEnc(pk,f)において、fの定数項は、上記式26に従う、登録ベクトルAと認証ベクトルBとのユークリッド距離
(A,B)=(Σi=0〜n−1 )+(Σi=0〜n−1 )−2<A,B>
とする。
However, in the query Enc (pk, f), the constant term of f is the Euclidean distance d E (A, B) = (Σ i = 0 to n-1) between the registration vector A and the authentication vector B according to the above equation 26. a i 2) + (Σ i = 0~n-1 b i 2) -2 <A, B>
And.

照合補助装置140は、上記クエリEnc(pk,f)を検証装置150に送付する(ステップC23)。 The collation assisting device 140 sends the query Enc (pk, f) to the verification device 150 (step C23).

次に、検証装置150は、照合補助装置140から、上記クエリEnc(pk,f)を受け取る(ステップC24)。 Next, the verification device 150 receives the query Enc (pk, f) from the collation assisting device 140 (step C24).

次に、検証装置150におけるクエリ検証部153は、復号鍵skを用いてクエリEnc(pk,f)を復号する。 Next, the query verification unit 153 in the verification device 150 decodes the query Enc (pk, f) using the decryption key sk.

復号結果Dec(sk,Enc(pk,f))として得られる多項式の定数項を、検証結果とする(ステップC25)。 The constant term of the polynomial obtained as the decoding result Dec (sk, Enc (pk, f)) is used as the verification result (step C25).

前述の通り、検証結果は、登録ベクトルAと認証ベクトルBとのユークリッド距離d(A,B)である。As described above, the verification result is the Euclidean distance d E (A, B) between the registration vector A and the authentication vector B.

次に、検証装置150における照合結果生成部154は、検証結果を照合結果とする。あるいは、照合結果生成部154は、検証結果とあらかじめ定められた閾値との大小を比較した結果を照合結果としてもよい(ステップC26)。 Next, the collation result generation unit 154 in the verification device 150 uses the verification result as the collation result. Alternatively, the collation result generation unit 154 may use the result of comparing the magnitude of the verification result with the predetermined threshold value as the collation result (step C26).

検証装置150は、算出した照合結果を出力する(ステップC27)。 The verification device 150 outputs the calculated collation result (step C27).

なお、本実施形態に係る暗号文照合システム100が認証フェーズにて実行する処理は、図4に例示された様態に限定されない。例えば、ステップC5に先だってステップC9からステップC13が実行されてもよい。 The process executed by the ciphertext verification system 100 according to the present embodiment in the authentication phase is not limited to the mode illustrated in FIG. For example, steps C9 to C13 may be executed prior to step C5.

本実施形態に係る暗号文照合システム100の上記の説明において、
・登録要求装置110における第一テンプレート生成部112が図3のステップB2において生成する多項式fは、登録ベクトルAから式19に従って生成される多項式であるとし、
・認証要求装置130における第一レスポンス生成部133が図4のステップC16において生成する多項式fは、認証ベクトルから式21に従って生成される多項式であるとした。しかし、本実施形態における二つの多項式の生成方法は、上記の方法にのみ限定されるものでないことは明らかである。例えば、
・登録要求装置110における第一テンプレート生成部112がステップB2において生成する多項式fを、登録ベクトルAに基づき、式21に従って生成される多項式とし、
・認証要求装置130における第一レスポンス生成部133がステップC16において生成する多項式fを、認証ベクトルに基づき、式20に従って生成される多項式としてもよい。
In the above description of the ciphertext verification system 100 according to the present embodiment,
· Polynomial f A of the first template generation unit 112 is generated in step B2 in FIG. 3 in the registration request unit 110, and a polynomial generated according to equation 19 from the registration vectors A,
The polynomial f B generated by the first response generation unit 133 in the authentication request device 130 in step C16 of FIG. 4 is assumed to be a polynomial generated from the authentication vector according to the equation 21. However, it is clear that the method of generating the two polynomials in this embodiment is not limited to the above method. for example,
· A polynomial f A of the first template generation unit 112 is generated in step B2 in the registration request unit 110, based on the registration vector A, the polynomial to be generated according to Equation 21,
The polynomial f B generated by the first response generation unit 133 in the authentication request device 130 in step C16 may be a polynomial generated according to the equation 20 based on the authentication vector.

[効果の説明]
次に、第1の例示的な実施形態に係る暗号文照合システム100に関する効果について説明する。
[Explanation of effect]
Next, the effect of the ciphertext verification system 100 according to the first exemplary embodiment will be described.

第1の例示的な実施形態に係る照合システム100によれば、認証を要求するユーザが、自身の生体と識別子を提示して認証を行う、1:1認証を、安全に実現することが可能である。すなわち、次の2つの効果を有する。 According to the collation system 100 according to the first exemplary embodiment, it is possible to safely realize 1: 1 authentication in which a user requesting authentication presents his / her own living body and an identifier to perform authentication. Is. That is, it has the following two effects.

第1の例示的な実施形態に係る暗号文照合システム100によれば、登録要求装置110が抽出した登録ベクトルは、登録要求装置110上で暗号化され、記憶装置120に送られる。また、認証要求装置130が抽出した認証ベクトルは、認証要求装置130上で暗号化され、照合補助装置140に送られる。 According to the ciphertext verification system 100 according to the first exemplary embodiment, the registration vector extracted by the registration request device 110 is encrypted on the registration request device 110 and sent to the storage device 120. Further, the authentication vector extracted by the authentication request device 130 is encrypted on the authentication request device 130 and sent to the verification auxiliary device 140.

これらの暗号文を復号できるのは、復号鍵を持つ検証装置150であるが、検証装置150が受け取るデータは、登録ベクトルと認証ベクトルの間のユークリッド距離の暗号文であり、登録ベクトルや認証ベクトルの値は開示されない。したがって、第1の例示的な実施形態に係る暗号文照合システム100によれば、それぞれのベクトルを抽出する装置以外の装置には、登録ベクトルと認証ベクトルの距離以外の値は漏洩せず、検証装置において、登録ベクトルと認証ベクトルの間の距離を算出することが可能である。 It is the verification device 150 having the decryption key that can decrypt these ciphertexts, but the data received by the verification device 150 is the ciphertext of the Euclidean distance between the registration vector and the authentication vector, and the registration vector and the authentication vector. The value of is not disclosed. Therefore, according to the ciphertext verification system 100 according to the first exemplary embodiment, values other than the distance between the registration vector and the authentication vector are not leaked to devices other than the device that extracts each vector, and verification is performed. In the device, it is possible to calculate the distance between the registration vector and the authentication vector.

また、第1の例示的な実施形態に係る暗号文照合システム100によれば、同じ登録ベクトルとの認証を行う際であっても、図4のステップC5で選ばれた乱数を用いた処理が行われる。したがって、照合処理の通信内容が漏洩したとしても、
・漏洩した内容を再送したり、
・漏洩した内容を利用して作成したデータを送付したりしても、
漏洩した照合時の距離と等しい距離を算出したり、小さい値を算出したりすることはできない。特に、第1の例示的な実施形態に係る暗号文照合システム100を、登録ベクトルと認証ベクトルの間の距離が閾値より小さいときに「受理」とする認証に利用する場合、登録ベクトルを知らない攻撃者が「受理」とされない性質、すなわち、なりすまし攻撃への耐性を有する。
Further, according to the ciphertext verification system 100 according to the first exemplary embodiment, even when authenticating with the same registration vector, the process using the random number selected in step C5 of FIG. 4 can be performed. Will be done. Therefore, even if the communication content of the verification process is leaked,
・ Resend the leaked content or
・ Even if you send data created using the leaked content,
It is not possible to calculate a distance equal to or a small value at the time of the leaked collation. In particular, when the ciphertext verification system 100 according to the first exemplary embodiment is used for authentication of "acceptance" when the distance between the registration vector and the authentication vector is smaller than the threshold value, the registration vector is not known. It has the property that an attacker is not "accepted", that is, it is resistant to spoofing attacks.

さらに、第1の例示的な実施形態に係る暗号文照合システム100では、復号鍵を持つ検証装置150に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しないように変形可能である。例えば、非特許文献4に記載された方式と同じ方法を適用することにより、復号鍵を持つ検証装置150が、登録ベクトルと認証ベクトルの間のユークリッド距離を算出できない方式に変形できる。復号鍵を持つ検証装置150に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しない方式は、特別な状況下においても復号鍵を持つ検証装置150が登録ベクトルの値を算出することを防ぐことができるため、より高い安全性を達成できる。 Further, the ciphertext verification system 100 according to the first exemplary embodiment can be modified so as not to disclose the Euclidean distance between the registration vector and the authentication vector to the verification device 150 having the decryption key. For example, by applying the same method as that described in Non-Patent Document 4, the verification device 150 having a decryption key can be transformed into a method in which the Euclidean distance between the registration vector and the authentication vector cannot be calculated. The method of not disclosing the Euclidean distance between the registration vector and the authentication vector to the verification device 150 having the decryption key means that the verification device 150 having the decryption key calculates the value of the registration vector even under special circumstances. Since it can be prevented, higher safety can be achieved.

[第2の実施形態]
[構成の説明]
図5は、第2の例示的な実施形態に係る暗号文照合システム(「情報処理システム」ともいう)200の構成を模式的に例示する図である。第2の例示的な実施形態に係る暗号文照合システム200は、大別して、登録要求装置210と、記憶装置220と、認証要求装置230と、照合補助装置240と、検証装置250とを有する。
[Second Embodiment]
[Description of configuration]
FIG. 5 is a diagram schematically illustrating the configuration of the ciphertext verification system (also referred to as “information processing system”) 200 according to the second exemplary embodiment. The ciphertext verification system 200 according to the second exemplary embodiment is roughly classified into a registration request device 210, a storage device 220, an authentication request device 230, a verification auxiliary device 240, and a verification device 250.

登録要求装置210は、登録情報抽出部211と、第一テンプレート生成部212と、第二テンプレート生成部213と、テンプレート生成部214とを有する。 The registration request device 210 includes a registration information extraction unit 211, a first template generation unit 212, a second template generation unit 213, and a template generation unit 214.

記憶装置220は、識別子付与部221と、登録データ生成部222と、登録データ記憶部223とを有する。 The storage device 220 includes an identifier assigning unit 221, a registration data generation unit 222, and a registration data storage unit 223.

認証要求装置230は、認証要求生成部231と、認証情報抽出部232と、第一レスポンス生成部233と、第二レスポンス生成部234と、レスポンス生成部235とを有する。 The authentication request device 230 includes an authentication request generation unit 231, an authentication information extraction unit 232, a first response generation unit 233, a second response generation unit 234, and a response generation unit 235.

照合補助装置240は、チャレンジ補助生成部241と、チャレンジ生成部242と、登録データ要求生成部243と、暗号化内積計算部244と、クエリ生成部245と、検証データ生成部246と、を有する。 The collation auxiliary device 240 has a challenge auxiliary generation unit 241, a challenge generation unit 242, a registration data request generation unit 243, an encryption inner product calculation unit 244, a query generation unit 245, and a verification data generation unit 246. ..

検証装置250は、鍵生成部251と、復号鍵記憶部252と、クエリ検証部253と、照合結果生成部254と、を有する。 The verification device 250 includes a key generation unit 251, a decryption key storage unit 252, a query verification unit 253, and a collation result generation unit 254.

登録要求装置210と記憶装置220、記憶装置220と照合補助装置240、認証要求装置230と照合要求装置240、照合補助装置240と検証装置250は、例えば、通信ネットワークを介して、相互に通信することが可能であるとする。 The registration request device 210 and the storage device 220, the storage device 220 and the verification auxiliary device 240, the authentication request device 230 and the verification request device 240, and the verification auxiliary device 240 and the verification device 250 communicate with each other via, for example, a communication network. Is possible.

なお、暗号文照合システム200においては、登録要求装置210と、認証要求装置230とをまとめて、「第1ノード」と表してもよい。暗号文照合システム200においては、記憶装置220と、照合補助装置240とをまとめて、「第2ノード」と表してもよい。また、暗号文照合システム200においては、検証装置250を、「第3ノード」と表してもよい。すなわち、暗号文照合システム200は、図5に例示した様態に限定されない。 In the ciphertext verification system 200, the registration request device 210 and the authentication request device 230 may be collectively referred to as a "first node". In the ciphertext verification system 200, the storage device 220 and the verification auxiliary device 240 may be collectively referred to as a "second node". Further, in the ciphertext verification system 200, the verification device 250 may be referred to as a "third node". That is, the ciphertext verification system 200 is not limited to the mode illustrated in FIG.

[動作の説明]
次に、第2の例示的な実施形態に係る暗号文照合システム200の動作について説明する。
[Explanation of operation]
Next, the operation of the ciphertext verification system 200 according to the second exemplary embodiment will be described.

本発明の第2の例示的な実施形態に係る暗号文照合システム200における動作について説明する。暗号文照合システム200における処理は、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。まず、各フェーズにおける処理の概要について説明する。 The operation in the ciphertext verification system 200 according to the second exemplary embodiment of the present invention will be described. The processing in the ciphertext verification system 200 is roughly classified into a preparation phase, a registration phase, and a verification phase. First, the outline of the processing in each phase will be described.

本発明の第2の例示的な実施形態に係る暗号文照合システムでは、加法及び乗法について準同型性を持つ準同型暗号方式を用いる。説明の便宜上、用いる暗号方式はメッセージとして、各係数がtより小さい非負整数である、N−1次多項式を扱うものとする。 In the ciphertext verification system according to the second exemplary embodiment of the present invention, a homomorphic encryption method having homomorphism in addition and multiplication is used. For convenience of explanation, it is assumed that the encryption method used handles an N-1 degree polynomial in which each coefficient is a non-negative integer smaller than t as a message.

準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、暗号化鍵、及び、復号鍵が生成される。 In the preparation phase, the encryption key and the decryption key are mainly generated using the received security parameters.

登録フェーズにおいては、主として、準備フェーズで生成された暗号化鍵を用いて、抽出された登録ベクトルが暗号化されたテンプレートが作成され、保存される。 In the registration phase, a template in which the extracted registration vector is encrypted is mainly created and stored using the encryption key generated in the preparation phase.

照合フェーズにおいては、主として、準備フェーズで生成された復号鍵を用いて、新たに抽出された認証ベクトルと一つないし複数の登録ベクトルとの間の距離が算出される。 In the collation phase, the distance between the newly extracted authentication vector and one or more registration vectors is calculated, mainly using the decryption key generated in the preparation phase.

次に、暗号文照合システム200が、上述した各フェーズにて実行する処理について詳細に説明する。 Next, the process executed by the ciphertext verification system 200 in each of the above-mentioned phases will be described in detail.

図6は、準備フェーズにおいて、第2の例示的な実施形態に係る暗号文照合システム200が実行する処理の一例を示すフローチャートである。図6を参照しながら、第2の例示的な実施形態に係る暗号文照合システム200が、準備フェーズにて実行する処理について説明する。 FIG. 6 is a flowchart showing an example of processing executed by the ciphertext verification system 200 according to the second exemplary embodiment in the preparation phase. The process executed by the ciphertext verification system 200 according to the second exemplary embodiment in the preparation phase will be described with reference to FIG.

検証装置250における鍵生成部251は、セキュリティパラメータを受信し、受信したセキュリティパラメータを用いて、例えば、上述した鍵生成アルゴリズムに従い、暗号化鍵pk、及び、復号鍵skを生成する(ステップD1)。なお、生成される暗号化鍵、及び、復号鍵は、加法及び乗法に関して準同型性を有する公開鍵暗号方式に準拠する。 The key generation unit 251 in the verification device 250 receives the security parameters, and uses the received security parameters to generate the encryption key pk and the decryption key sk according to, for example, the above-mentioned key generation algorithm (step D1). .. The generated encryption key and decryption key conform to the public key cryptosystem having homomorphism in addition and multiplication.

鍵生成部251は、暗号化鍵pkを、暗号文照合システム200において公開する(ステップD2)。 The key generation unit 251 discloses the encryption key pk in the ciphertext verification system 200 (step D2).

鍵生成部251は、復号鍵skを、復号鍵記憶部252に格納する(ステップD3)。 The key generation unit 251 stores the decryption key sk in the decryption key storage unit 252 (step D3).

なお、本実施形態に係る暗号文照合システム200が準備フェーズにて実行する処理は、図6に例示された様態に限定されない。 The process executed by the ciphertext verification system 200 according to the present embodiment in the preparation phase is not limited to the mode illustrated in FIG.

図7は、登録フェーズにおいて、第2の例示的な実施形態に係る暗号文照合システム200が実行する処理の一例を示すフローチャートである。図7を参照しながら、本実施形態に係る照合システム200が、登録フェーズにて実行する処理について説明する。 FIG. 7 is a flowchart showing an example of processing executed by the ciphertext verification system 200 according to the second exemplary embodiment in the registration phase. The process executed by the collation system 200 according to the present embodiment in the registration phase will be described with reference to FIG. 7.

登録要求装置210における登録情報抽出部211は、登録対象の生体から生体情報(「登録ベクトル」と呼ぶ)
A=(a、…、aL−1) ・・・(式41)
を抽出する(ステップE1)。
The registration information extraction unit 211 in the registration request device 210 receives biological information (referred to as “registration vector”) from the living body to be registered.
A = (a 0 , ..., a L-1 ) ... (Equation 41)
Is extracted (step E1).

次に、登録要求装置210における第一テンプレート生成部212は、暗号化鍵pkを用いて、次の式42に従って生成される、登録ベクトルAの各i番目(i=0,…,L−1)の成分aをi次の項の係数に持つL−1次多項式
(x)=Σi=0〜L−1×x ・・・(式42)

の暗号文
Enc(pk,f)を計算する(ステップE2)。
Next, the first template generation unit 212 in the registration request device 210 uses the encryption key pk to generate each i-th (i = 0, ..., L-1) of the registration vector A according to the following equation 42. component a i a i following sections having a coefficient L-1 order polynomial f a of) (x) = Σ i = 0~L-1 a i × x i ··· ( formula 42)

Ciphertext Enc (pk, f A) to calculate the (step E2).

ステップE2で計算した暗号文Enc(pk,f)を「第一テンプレート」と呼ぶ。Ciphertext calculated at step E2 Enc (pk, f A) is referred to as "first template".

次に、登録要求装置210における第二テンプレート生成部213は、暗号化鍵pkを用いて、登録ベクトルAの各成分の二乗和
Σi=0〜L−1 ・・・(式43)
の暗号文
Enc(pk,Σi=0〜L−1 )を計算する(ステップE3)。ステップE3で計算した登録ベクトルAの各成分の二乗和暗号文Enc(pk,Σi=0〜L−1 )を「第二テンプレート」と呼ぶ。
Next, the second template generation unit 213 in the registration request device 210 uses the encryption key pk to sum the squares of each component of the registration vector A Σ i = 0 to L-1 a i 2 ... (Equation 43). )
The ciphertext Enc (pk, Σ i = 0 to L-1 ai 2 ) of is calculated (step E3). The squared sum ciphertext Enc (pk, Σ i = 0 to L-1 ai 2 ) of each component of the registration vector A calculated in step E3 is called a “second template”.

次に、登録要求装置210におけるテンプレート生成部214は、第一テンプレートと第二テンプレートをまとめ、テンプレート
(Enc(pk,f),Enc(pk,Σi=0〜n−1 )) ・・・(式44)
とする(ステップE4)。
Next, the template generation unit 214 in the registration request device 210 puts together the first template and the second template, and the templates (Enc (pk, f A ), Enc (pk, Σ i = 0 to n-1 a i 2 )). ) ・ ・ ・ (Equation 44)
(Step E4).

登録要求装置210は、上記テンプレート(Enc(pk,f),Enc(pk,Σi=0〜n−1 ))を記憶装置220に送付する(ステップE5)。The registration requesting device 210 sends the above template (Enc (pk, f A ), Enc (pk, Σ i = 0 to n-1 ai 2 )) to the storage device 220 (step E5).

次に、記憶装置220は、登録要求装置210から上記テンプレート(Enc(pk,f),Enc(pk,Σi=0〜n−1 ))を受け取る(ステップE6)。Next, the storage device 220 receives the above template (Enc (pk, f A ), Enc (pk, Σ i = 0 to n-1 a i 2 )) from the registration request device 210 (step E6).

記憶装置220における識別子付与部221は、受け取ったテンプレートに固有の識別子である登録識別子idを決定する(ステップE7)。 The identifier assigning unit 221 in the storage device 220 determines the registration identifier id, which is an identifier unique to the received template (step E7).

記憶装置220は、登録識別子idを登録要求装置210に送付する(ステップE8)。 The storage device 220 sends the registration identifier id to the registration request device 210 (step E8).

次に、登録要求装置210は、記憶装置220から登録識別子idを受け取る(ステップE9)。登録要求装置210は、例えば、受信した登録識別子idを、ディスプレイ等のユーザインターフェース(UI)に表示するようにしてもよい(ステップE10)。あるいは、登録要求装置210は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、受信した登録識別子を格納してもよい。 Next, the registration request device 210 receives the registration identifier id from the storage device 220 (step E9). For example, the registration requesting device 210 may display the received registration identifier id on a user interface (UI) such as a display (step E10). Alternatively, the registration request device 210 may store the received registration identifier in an IC (integrated_cycle) card such as an employee ID card or an identifier card.

次に、記憶装置220における登録データ生成部222は、テンプレートと登録識別子をまとめ、登録データ
((Enc(pk,f),Enc(pk,Σi=0〜n−1 )),id) ・・・(式45)
とする(ステップE11)。
Next, the registration data generation unit 222 in the storage device 220 puts together the template and the registration identifier, and the registration data ((Enc (pk, f A ), Enc (pk, Σ i = 0 to n-1 ai 2 ))). , Id) ・ ・ ・ (Equation 45)
(Step E11).

記憶装置220における登録データ生成部222は、登録データ記憶部223に、上記登録データを格納する(ステップE12)。 The registration data generation unit 222 in the storage device 220 stores the registration data in the registration data storage unit 223 (step E12).

なお、第2の例示的な実施形態に係る暗号文照合システム200が登録フェーズで実行する処理は、図7に例示された様態に限定されない。例えば、ステップE8に先だってステップE11とステップE12とが実行されてもよい。 The process executed by the ciphertext verification system 200 according to the second exemplary embodiment in the registration phase is not limited to the mode illustrated in FIG. 7. For example, step E11 and step E12 may be executed prior to step E8.

図8は、認証フェーズにおいて、第2の例示的な実施形態に係る暗号文照合システム200が実行する処理の一例を示すフローチャートである。図8を参照しながら、本実施形態に係る照合システム200が、認証フェーズにて実行する処理について説明する。 FIG. 8 is a flowchart showing an example of processing executed by the ciphertext verification system 200 according to the second exemplary embodiment in the authentication phase. The process executed by the collation system 200 according to the present embodiment in the authentication phase will be described with reference to FIG.

認証要求装置230における認証要求生成部231は、認証要求を生成する(ステップF1)。 The authentication request generation unit 231 in the authentication request device 230 generates an authentication request (step F1).

認証要求装置230は、認証要求を照合補助装置240に送付する(ステップF2)。 The authentication request device 230 sends an authentication request to the verification assist device 240 (step F2).

照合補助装置240は、認証要求装置230から認証要求を受け取る(ステップF3)。 The verification auxiliary device 240 receives an authentication request from the authentication request device 230 (step F3).

次に、照合補助装置240におけるチャレンジ補助生成部241は、tより小さい整数をrと、N−1よりも小さい整数hと、をランダムに選択する。選択した値をまとめ、チャレンジ補助(r,h)とする(ステップF4)。 Next, the challenge auxiliary generation unit 241 in the collation auxiliary device 240 randomly selects r as an integer smaller than t and an integer h smaller than N-1. The selected values are put together and used as challenge assistance (r, h) (step F4).

次に、照合補助装置240におけるチャレンジ生成部242は、暗号化鍵pkを用いて、チャレンジ補助(r,h)から算出される項式
r×x ・・・(式46)
の暗号文Enc(pk,r×x)を計算する(ステップF5)。
Then, the challenge generating unit 242 in the verification auxiliary apparatus 240 uses the encryption key pk, challenge auxiliary (r, h) the single term equation r × x h ··· calculated from (Equation 46)
The ciphertext Enc (pk, r × x h ) of is calculated (step F5).

ステップF5で計算した暗号文Enc(pk,r×x)を「チャレンジ」と呼ぶ。The ciphertext Enc (pk, r × x h ) calculated in step F5 is called a “challenge”.

照合補助装置240は、上記チャレンジを認証要求装置230に送付する(ステップF6)。 The collation assisting device 240 sends the challenge to the authentication requesting device 230 (step F6).

次に、照合補助装置240における登録データ要求生成部243は、登録データ要求を生成する(ステップF7)。 Next, the registration data request generation unit 243 in the collation assisting device 240 generates a registration data request (step F7).

照合補助装置240は、登録データ要求を記憶装置220に送付する(ステップF8)。 The collation assisting device 240 sends the registration data request to the storage device 220 (step F8).

次に、記憶装置220は、照合補助装置240から登録データ要求を受け取る(ステップF9)。 Next, the storage device 220 receives a registration data request from the collation assisting device 240 (step F9).

記憶装置220は、登録データ記憶部223に格納されている一つまたは複数の登録データのうち、一部またはすべて(M個とする)の登録データを、照合補助装置240に送付する(ステップF10)。ただし、各登録データは、テンプレートと登録識別子の組である。 The storage device 220 sends a part or all (M pieces) of registered data of one or a plurality of registered data stored in the registered data storage unit 223 to the collation assisting device 240 (step F10). ). However, each registration data is a set of a template and a registration identifier.

照合補助装置240は、記憶装置220からM個の登録データを受け取る(ステップF11)。 The collation assisting device 240 receives M registration data from the storage device 220 (step F11).

以下では、各j番目(j=1,…,M)の登録データに含まれるテンプレートは、登録ベクトルAから生成されたものとする。In the following, it is assumed that the template included in each j-th (j = 1, ..., M) registration data is generated from the registration vector Aj.

また、各j番目(j=1、…、M)の登録データに含まれる第一テンプレートは、登録ベクトルAから生成された多項式fA,jの暗号文Enc(pk,fA,j)であるものとする。Each j-th (j = 1, ..., M ) a first template that is included in the registration data of the registration vector A j polynomial generated from f A, ciphertext j Enc (pk, f A, j) Suppose that

また、各j番目(j=1,…,M)の登録データに含まれる第二テンプレートは、登録ベクトルAの各成分の二乗和
Σi=0〜n−1j,i ・・・(式47)
の暗号文Enc(pk,Σi=0〜n−1j,i
であるものとする。
Each j-th (j = 1, ..., M ) second templates included in the registration data of the registration vector A j square sum Σ i = 0~n-1 a j of the components, i 2 · ·・ (Equation 47)
Ciphertext Enc (pk, Σ i = 0 to n-1 a j, i 2 )
Suppose that

認証要求装置230は、照合補助装置240から、上記チャレンジEnc(pk,r×x)を受け取る(ステップF12)。The authentication requesting device 230 receives the challenge Enc (pk, r × h ) from the verification assisting device 240 (step F12).

次に、認証要求装置230における認証情報抽出部232は、認証対象の生体から生体情報(「認証ベクトル」と呼ぶ)
B=(b,…,bL−1) ・・・(式48)
を抽出する(ステップF13)。
Next, the authentication information extraction unit 232 in the authentication request device 230 receives biometric information (referred to as "authentication vector") from the living body to be authenticated.
B = (b 0 , ..., b L-1 ) ... (Equation 48)
Is extracted (step F13).

次に、認証要求装置230における第一レスポンス生成部233は、上記式21に従って、認証ベクトルBの各i番目(i=0,…,L−1)の成分bの加法に関する逆元−bを、N−i次の項の係数に持つN次多項式
(x)=−Σi=0〜n−1×xN−i ・・・(式49)
を算出する。さらに、
・暗号化鍵pkと、
・生成した多項式fと、
・受け取ったチャレンジEnc(pk,r×x)と、
から、
例えば、暗号方式の、暗号文のスカラー倍を計算できる性質(式6)を利用して、
第一レスポンス
Enc(pk,(r×x)×(f)) ・・・(式50)
を生成する(ステップF14)。
Then, the first response generator 233 of the authentication requesting device 230 according to the above formula 21, the authentication each i-th vector B (i = 0, ..., L-1) inverse -b concerning the addition component b i of i a, N order polynomial f B with a coefficient of N-i following section (x) = - Σ i = 0~n-1 b i × x N-i ··· ( formula 49)
Is calculated. Moreover,
・ Encryption key PK and
・ The generated polynomial f B and
・ The challenge Enc (pk, r × x h ) received and
from,
For example, using the property of the encryption method that can calculate the scalar multiple of the ciphertext (Equation 6),
First response Enc (pk, (r × x h ) × (f B )) ・ ・ ・ (Equation 50)
Is generated (step F14).

次に、認証要求装置230における第二レスポンス生成部234は、暗号化鍵pkを用いて、認証ベクトルBの各成分の二乗和
Σi=0〜L−1 ・・・(式51)
の暗号文Enc(pk,Σi=0〜L−1 )を計算する(ステップF15)。ステップF15で計算した認証ベクトルBの各成分の二乗和の暗号文Enc(pk,Σi=0〜L−1 )を「第二レスポンス」と呼ぶ。
Then, the second response generator 234 of the authentication requesting device 230 uses the encryption key pk, the authentication vector = 0 to L-1 square sum sigma i of each component of B b i 2 ··· (wherein 51 )
Ciphertext Enc (pk, Σ i = 0~L -1 b i 2) to calculate the (step F15). Step F15 In ciphertext Enc (pk, Σ i = 0~L -1 b i 2) of the square sum of the components of the calculated authentication vector B is referred to as a "second response".

次に、認証要求装置230におけるレスポンス生成部235は、第一レスポンスと第二レスポンスをまとめ、レスポンス
(Enc(pk,(r×x)×(f)),Enc(pk,Σi=0〜L−1 )) ・・・(式52)
とする(ステップF16)。
Next, the response generation unit 235 in the authentication request device 230 summarizes the first response and the second response, and the response (Enc (pk, (r × x h ) × (f B )), Enc (pk, Σ i =). 0~L-1 b i 2)) ··· ( formula 52)
(Step F16).

認証要求装置230は、第一レスポンスと第二レスポンスをまとめた上記レスポンスを照合補助装置240に送付する(ステップF17)。 The authentication request device 230 sends the above-mentioned response, which is a combination of the first response and the second response, to the verification assisting device 240 (step F17).

次に、照合補助装置240は、認証要求装置230から、上記レスポンスを受け取る(ステップF18)。 Next, the collation assisting device 240 receives the above response from the authentication requesting device 230 (step F18).

次に、照合補助装置240における暗号化内積計算部244は、
・暗号化鍵pkと、
・ステップF4で生成したチャレンジ補助(r,h)から生成される項式−r−1×xN−hと、
・ステップF18で受け取ったレスポンスに含まれる第一レスポンスEnc(pk,(r×x)×(f))と、
に基づき、
例えば暗号方式の、暗号文のスカラー倍を計算できる性質(式6)を用いて、
Enc(pk,f)=(−r−1×xN−h)×Enc(pk,(r×x)×(f)) ・・・(式53)
を計算する。
さらに、照合補助装置240における暗号化内積計算部244は、各j(j=1,…,M)について、
・暗号化鍵pkと、
・ステップF11で受け取ったM個の登録データのうちj番目の登録データに含まれる第一テンプレートEnc(pk,fA,j)と、
・計算した暗号文Enc(pk,f)と、
に基づき、暗号方式の乗法準同型性を利用して、暗号化内積
Enc(pk,fA,j×f) ・・・(式54)
を生成する(ステップF19)。
Next, the encrypted inner product calculation unit 244 in the collation assisting device 240
・ Encryption key PK and
-The term expression -r -1 x x N-h generated from the challenge assistance (r, h) generated in step F4,
-The first response Enc (pk, (r × x h ) × (f B )) included in the response received in step F18,
Based on
For example, using the property (Equation 6) of the encryption method that can calculate the scalar multiple of the ciphertext,
Enc (pk, f B ) = (-r -1 x x N-h ) x Enc (pk, (r x x h ) x (f B )) ... (Equation 53)
To calculate.
Further, the encryption inner product calculation unit 244 in the collation assisting device 240 describes each j (j = 1, ..., M).
・ Encryption key PK and
-The first template Enc (pk, fA, j ) included in the jth registered data among the M registered data received in step F11, and
-Calculated ciphertext Enc (pk, f B ) and
(Pk, f A, j × f B ) ... (Equation 54)
Is generated (step F19).

なお、前述の通り、各j(j=1,…,M)について、fA,j×fの定数項は、登録ベクトルAと認証ベクトルBとの内積
<A,B>=Σi=0〜n−1j,i×b
と等しい。
Incidentally, as described above, each of j (j = 1, ..., M) for, f A, the constant term of the j × f B is the inner product of the registration vector A j and an authentication vector B <A j ,B> = Σ i = 0~n-1 a j, i × b i
Is equal to.

次に、照合補助装置240におけるクエリ生成部245は、各j(j=1,…,M)について、
・暗号化鍵pkと、
・ステップF19で生成した暗号化内積Enc(pk,fA,j×f
と、
・ステップF11で受け取ったM個の登録データのうちj番目の登録データに含まれる第二テンプレートEnc(pk,Σi=0〜n−1j,i )と、
・ステップF18で受け取ったレスポンスに含まれる第二レスポンスEnc(pk,Σi=0〜L−1 )と、
に基づき、暗号方式の加法準同型性を利用して、
クエリ
Enc(pk,f
を生成する(ステップF20)。
Next, the query generation unit 245 in the collation assisting device 240 describes each j (j = 1, ..., M).
・ Encryption key PK and
-Encryption inner product Enc (pk, f A, j × f B ) generated in step F19.
When,
-The second template Enc (pk, Σ i = 0 to n-1 a j, i 2 ) included in the jth registered data among the M registered data received in step F11, and
And second response Enc (pk, Σ i = 0~L -1 b i 2) contained has a response received in step F18 and,
Based on, using the additive homomorphism of the cryptosystem,
Query Enc (pk, f j )
Is generated (step F20).

ただし、各j(j=1,…,M)について、fの定数項は、上記式26に従う、登録ベクトルAと認証ベクトルBとのユークリッド距離
(A,B)=(Σi=0〜n−1j,i )+(Σi=0〜n−1 )−2<A,B>
とする。
However, for each j (j = 1, ..., M), the constant term of f j follows the above equation 26, and the Euclidean distance d E (A j , B) = (Σ) between the registration vector A j and the authentication vector B. i = 0~n-1 a j, i 2) + (Σ i = 0~n-1 b i 2) -2 <A j ,B>
And.

次に、照合補助装置240における検証データ生成部246は、各j(j=1,…,M)について、M個の登録データのうちj番目の登録データに含まれる第二テンプレートからステップF20で生成したクエリと、M個の登録データのうちj番目の登録データに含まれる登録識別子とを、j番目の検証データとする(ステップF21)。 Next, the verification data generation unit 246 in the collation assisting device 240 uses step F20 from the second template included in the jth registered data among the M registered data for each j (j = 1, ..., M). The generated query and the registration identifier included in the j-th registration data among the M registration data are set as the j-th verification data (step F21).

次に、照合補助装置240は、M個の検証データを検証装置250に送付する(ステップF22)。 Next, the collation assisting device 240 sends M verification data to the verification device 250 (step F22).

次に、検証装置250は、照合補助装置240からM個の検証データを受け取る(ステップF23)。 Next, the verification device 250 receives M verification data from the verification auxiliary device 240 (step F23).

検証装置250におけるクエリ検証部253は、各j(j=1,…,M)について、復号鍵pkを用いて、M個の検証データのうち、j番目の検証データに含まれるクエリを復号し、復号結果として得られる多項式の定数項を、検証結果とする(ステップF24)。 The query verification unit 253 in the verification device 250 uses the decryption key pk for each j (j = 1, ..., M) to decode the query included in the jth verification data among the M verification data. , The constant term of the polynomial obtained as the decoding result is used as the verification result (step F24).

前述の通り、各j(j=1,…,M)について、M個の検証データのうちj番目の検証データから生成された復号結果として得られる多項式の定数項は、登録ベクトルAと認証ベクトルBとのユークリッド距離d(A,B)である。As described above, for each j (j = 1, ..., M), the constant term of the polynomial obtained as the decoding result generated from the j-th verification data among the M verification data is authenticated with the registration vector Aj. The Euclidean distance d E (A j , B) from the vector B.

次に、検証装置250における照合結果生成部254は、各j(j=1,…,M)について、M個の検証データのうち、j番目の検証データに含まれるクエリからステップF24で生成した検証結果と、j番目の検証データに含まれる登録識別子と、をまとめ、j番目の照合結果とする。 Next, the collation result generation unit 254 in the verification device 250 generated each j (j = 1, ..., M) from the query included in the j-th verification data among the M verification data in step F24. The verification result and the registration identifier included in the j-th verification data are put together and used as the j-th verification result.

あるいは、各j(j=1,…,M)について、検証装置250における照合結果生成部254は、M個の検証データのうち、j番目の検証データに含まれるクエリからステップF24で生成したj番目の検証結果と、あらかじめ定められた閾値との大小を比較した結果と、j番目の検証データに含まれる登録識別子と、をまとめ、j番目の照合結果としてもよい(ステップF25)。 Alternatively, for each j (j = 1, ..., M), the collation result generation unit 254 in the verification device 250 generates j generated in step F24 from the query included in the j-th verification data among the M verification data. The result of comparing the magnitude of the second verification result with the predetermined threshold value and the registration identifier included in the jth verification data may be combined and used as the jth verification result (step F25).

検証装置250は、算出したM個の照合結果を出力する(ステップF26)。 The verification device 250 outputs the calculated M collation results (step F26).

なお、第2の例示的な実施形態に係る暗号文照合システム200が認証フェーズにて実行する処理は、図8に例示された様態に限定されない。例えば、ステップF7に先だってステップF12からステップF17が実行されてもよい。 The process executed by the ciphertext verification system 200 according to the second exemplary embodiment in the authentication phase is not limited to the mode illustrated in FIG. For example, steps F12 to F17 may be executed prior to step F7.

第2の例示的な実施形態に係る暗号文照合システム200の上記の説明において、登録要求装置210における第一テンプレート生成部212が図7のステップE2において生成する多項式fは、登録ベクトルAに基づき上記式20に従って生成される多項式であるとした。また、認証要求装置230における第一レスポンス生成部233が図8のステップF16において生成する多項式fは、認証ベクトルに基づき上記式21に従って生成される多項式であるとした。 In the above description of the ciphertext matching system 200 according to the second exemplary embodiment, the polynomial f A generated by the first template generation unit 212 in the registration request device 210 in step E2 of FIG. 7 is set to the registration vector A. Based on this, it is assumed that the polynomial is generated according to the above equation 20. Further, the polynomial f B generated by the first response generation unit 233 in the authentication request device 230 in step F16 of FIG. 8 is assumed to be a polynomial generated according to the above equation 21 based on the authentication vector.

第2の例示的な実施形態における二つの多項式の生成方法は、上記の方法に限らない。例えば、登録要求装置210における第一テンプレート生成部212がステップE2において生成する多項式fを、登録ベクトルAに基づき上記式21に従って生成される多項式とし、認証要求装置230における第一レスポンス生成部233が図8のステップF16において生成する多項式fを、認証ベクトルに基づき上記式20に従って生成される多項式としてもよい。The method of generating the two polynomials in the second exemplary embodiment is not limited to the above method. For example, a polynomial f A of the first template generation unit 212 in the registration request unit 210 generates in step E2, a polynomial generated according to the formula 21 based on the registration vector A, the first response generator 233 of the authentication requesting device 230 The polynomial f B generated in step F16 of FIG. 8 may be a polynomial generated according to the above equation 20 based on the authentication vector.

[効果の説明]
次に、第2の例示的な実施形態に係る暗号文照合システム200に関する効果について説明する。第2の実施形態に係る照合システム200によれば、認証を要求するユーザが、自身の識別子を提示せず、登録された全ての情報と、認証に用いられる情報の照合を行う、1:N認証を安全に実現することが可能である。すなわち、次の2つの効果を有する。
[Explanation of effect]
Next, the effect of the ciphertext verification system 200 according to the second exemplary embodiment will be described. According to the collation system 200 according to the second embodiment, the user requesting the authentication collates all the registered information with the information used for the authentication without presenting his / her own identifier, 1: N. It is possible to realize authentication securely. That is, it has the following two effects.

第2の例示的な実施形態に係る暗号文照合システム200によれば、登録要求装置210が抽出した登録ベクトルは、登録要求装置210上で暗号化され、記憶装置220に送られる。 According to the ciphertext verification system 200 according to the second exemplary embodiment, the registration vector extracted by the registration request device 210 is encrypted on the registration request device 210 and sent to the storage device 220.

また、認証要求装置230が抽出した認証ベクトルは、認証要求装置230上で暗号化され、照合補助装置240に送られる。これらの暗号文を復号できるのは、復号鍵を持つ検証装置250であるが、検証装置250の受け取るデータは登録ベクトルと認証ベクトルの間のユークリッド距離の暗号文であり、登録ベクトルや認証ベクトルの値を開示しない。 Further, the authentication vector extracted by the authentication request device 230 is encrypted on the authentication request device 230 and sent to the verification auxiliary device 240. It is the verification device 250 that has the decryption key that can decrypt these ciphertexts, but the data received by the verification device 250 is the ciphertext of the Euclidean distance between the registration vector and the authentication vector, and the registration vector and the authentication vector Do not disclose the value.

したがって、第2の例示的な実施形態に係る暗号文照合システム200によれば、それぞれのベクトルを抽出する装置以外の装置に登録ベクトルと認証ベクトルの距離以外の値を漏洩せず、登録ベクトルと認証ベクトルの間の距離を算出することが可能である。 Therefore, according to the ciphertext verification system 200 according to the second exemplary embodiment, the value other than the distance between the registration vector and the authentication vector is not leaked to the device other than the device that extracts each vector, and the registration vector and the registration vector are used. It is possible to calculate the distance between the authentication vectors.

また、第2の例示的な実施形態に係る暗号文照合システム200によれば、同じ登録ベクトルとの認証を行う際であっても、図8のステップF5で選ばれた乱数を用いた処理が行われる。 Further, according to the ciphertext verification system 200 according to the second exemplary embodiment, even when authenticating with the same registration vector, the process using the random number selected in step F5 of FIG. 8 can be performed. Will be done.

したがって、照合処理の通信内容が漏洩したとしても、漏洩した内容を再送したり、漏洩した内容を利用して作成したデータを送付したりすることによって、漏洩した照合時の距離と等しい距離を算出させたり、小さい値を算出させたりすることができない。 Therefore, even if the communication content of the collation process is leaked, the distance equal to the distance at the time of the leaked collation is calculated by resending the leaked content or sending the data created by using the leaked content. It is not possible to make it or calculate a small value.

特に、第2の例示的な実施形態に係る暗号文照合システム200を、距離が閾値より小さいときに「受理」とする認証に利用する場合、登録ベクトルを知らない攻撃者が「受理」とされない性質、すなわちなりすまし攻撃への耐性を有する。 In particular, when the ciphertext verification system 200 according to the second exemplary embodiment is used for authentication to be "accepted" when the distance is smaller than the threshold value, an attacker who does not know the registration vector is not regarded as "accepted". It has the property of being resistant to spoofing attacks.

さらに、第2の例示的な実施形態に係る暗号文照合システム200では、復号鍵を持つ検証装置250に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しないように変形することも可能である。例えば、非特許文献4に記載された方式と同じ方法を適用することにより、復号鍵を持つ検証装置250が、登録ベクトルと認証ベクトルの間のユークリッド距離を算出できない方式に変形できる。復号鍵を持つ検証装置250に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しない方式は、特別な状況下においても、復号鍵を持つ検証装置250が登録ベクトルの値を算出することを防ぐことができる。このため、より高い安全性を達成できる。 Further, in the ciphertext verification system 200 according to the second exemplary embodiment, it is possible to modify the verification device 250 having the decryption key so as not to disclose the Euclidean distance between the registration vector and the authentication vector. Is. For example, by applying the same method as that described in Non-Patent Document 4, the verification device 250 having a decryption key can be transformed into a method in which the Euclidean distance between the registration vector and the authentication vector cannot be calculated. In the method of not disclosing the Euclidean distance between the registration vector and the authentication vector to the verification device 250 having the decryption key, the verification device 250 having the decryption key calculates the value of the registration vector even under special circumstances. Can be prevented. Therefore, higher safety can be achieved.

[第3の実施形態]
次に、第3の例示的な実施形態について説明する。第3の例示的な実施形態は、前記第1の例示的な実施形態の説明で参照した図1に示す暗号文照合システム100において、非特許文献1に示された暗号方式を用いる場合である。以下では、第3の例示的な実施形態に係る特徴的な部分を中心に説明し、前記第1の例示的な実施形態と同じ部分については説明を適宜省略する。
[Third Embodiment]
Next, a third exemplary embodiment will be described. The third exemplary embodiment is a case where the ciphertext method shown in Non-Patent Document 1 is used in the ciphertext matching system 100 shown in FIG. 1 referred to in the description of the first exemplary embodiment. .. In the following, the characteristic parts according to the third exemplary embodiment will be mainly described, and the same parts as those in the first exemplary embodiment will be omitted as appropriate.

第3の例示的な実施形態は、前述の、非特許文献1に記載された、加法及び情報に関して準同型性を持つ暗号方式を用いて構成される。本実施形態の構成には、非特許文献1の暗号方式の持つ次の特徴を利用する。 The third exemplary embodiment is constructed using the cryptosystem described in Non-Patent Document 1 described above, which has homomorphism in terms of addition and information. The following features of the encryption method of Non-Patent Document 1 are used for the configuration of the present embodiment.

非特許文献1の暗号方式の鍵生成アルゴリズムの受け取るパラメータは、整数Nおよび素数tを含む。非特許文献1の暗号方式の暗号化アルゴリズムは、各係数がtより小さい、N−1次多項式をメッセージとして受け取る。 The parameters received by the key generation algorithm of the encryption method of Non-Patent Document 1 include an integer N and a prime number t. The encryption algorithm of the encryption method of Non-Patent Document 1 receives an N-1 degree polynomial in which each coefficient is smaller than t as a message.

各係数がtより小さいN−1次多項式fに対し、f×f−1=1を満たすf−1は必ずしも存在しない。すなわち、非特許文献1の暗号方式が暗号化するメッセージには、乗法に関する逆元は必ずしも存在しない。For each coefficient is smaller than t N-1 order polynomial f, f -1 satisfying f × f -1 = 1 does not necessarily exist. That is, the message encrypted by the encryption method of Non-Patent Document 1 does not necessarily have an inverse element related to multiplication.

一方、tは素数であるため、任意の1以上t未満の整数rに対し、tを法としてr×r−1=1を満たす、1以上t未満の整数r−1が存在する。On the other hand, since t is a prime number, for any integer r of 1 or more and less than t, there exists an integer r -1 of 1 or more and less than t that satisfies r × r -1 = 1 by modulo t.

さらに、hを0以上N−1以下の整数とする。
×(−xN−h)=−xN=1 ・・・(式55)
が成り立つ。
Further, h is an integer of 0 or more and N-1 or less.
x h x (-x N-h ) = -x N = 1 ... (Equation 55)
Is established.

rおよびhについて、
(r×x)×(r−1×(−xN−h))=1 ・・・(式56)
が成り立つ。
About r and h
(R x x h ) x (r -1 x (-x N-h )) = 1 ... (Equation 56)
Is established.

したがって、任意の1以上t未満の整数rおよび0以上N−1以下の整数hについて、r×xは非特許文献1の暗号方式を用いて暗号化できるメッセージであり、かつ逆元−r−1×xN−hを持つ。Therefore, for any integer r of 1 or more and less than t and an integer h of 0 or more and N-1 or less, r × x h is a message that can be encrypted using the encryption method of Non-Patent Document 1, and the inverse element −r. It has -1 × x N−h .

[構成の説明]
第3の例示的な実施形態の構成は、図1に示した前記第1の実施形態に係る暗号文照合システム100の構成と同様であるため、説明は省略する。
[Description of configuration]
Since the configuration of the third exemplary embodiment is the same as the configuration of the ciphertext verification system 100 according to the first embodiment shown in FIG. 1, the description thereof will be omitted.

[動作の説明]
次に、第3の例示的な実施形態に係る暗号文照合システム100の動作について説明する。本実施形態に係る照合システム100における動作は、前記第1の例示的な実施形態と同様に、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。まず、各フェーズにおける処理の概要について説明する。
[Explanation of operation]
Next, the operation of the ciphertext verification system 100 according to the third exemplary embodiment will be described. The operation in the collation system 100 according to the present embodiment is roughly classified into a preparation phase, a registration phase, and a collation phase, as in the first exemplary embodiment. First, the outline of the processing in each phase will be described.

準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、暗号化鍵、及び、復号鍵が生成される。 In the preparation phase, the encryption key and the decryption key are mainly generated using the received security parameters.

登録フェーズにおいては、主として、準備フェーズで生成された暗号化鍵を用いて、抽出された登録ベクトルが暗号化されたテンプレートが作成され、保存される。 In the registration phase, a template in which the extracted registration vector is encrypted is mainly created and stored using the encryption key generated in the preparation phase.

照合フェーズにおいては、主として、準備フェーズで生成された復号鍵を用いて、新たに 抽出された認証ベクトルと一つの登録ベクトルとの間の距離が算出される。 In the collation phase, the distance between the newly extracted authentication vector and one registration vector is calculated mainly using the decryption key generated in the preparation phase.

次に、暗号文照合システム100が、上述した各フェーズにて実行する処理について詳細に説明する。 Next, the process executed by the ciphertext verification system 100 in each of the above-mentioned phases will be described in detail.

第3の例示的な実施形態の準備フェーズは、前記第1の例示的な実施形態の図2のフローチャートに従う。図2を参照しながら、第3の実施形態に係る暗号文照合システム100が、準備フェーズにて実行する処理について説明する。 The preparation phase of the third exemplary embodiment follows the flowchart of FIG. 2 of the first exemplary embodiment. The process executed by the ciphertext verification system 100 according to the third embodiment in the preparation phase will be described with reference to FIG.

検証装置150における鍵生成部151は、4つのパラメータの組
λ=(N,q,t,σ) ・・・(式57)
を受け取る。ただし、前述したように、Nは2冪の整数、qは2Nを法として1と合同な素数、tはqより小さい正の素数、σはN次元離散ガウス分布の標準偏差である。
The key generation unit 151 in the verification device 150 has a set of four parameters λ = (N, q, t, σ) ... (Equation 57).
To receive. However, as described above, N is an integer of two powers, q is a prime number congruent with 1 modulo 2N, t is a positive prime number smaller than q, and σ is the standard deviation of the N-dimensional discrete Gaussian distribution.

次に、2つのN−1次多項式sおよびeを標準偏差がσであるN次元離散ガウス分布に従って生成する。すなわち、離散ガウス分布に従って生成されたN個の値を係数とする多項式を生成する。sは秘密鍵となる。 Next, two N-1 degree polynomials s and e are generated according to an N-dimensional discrete Gaussian distribution with a standard deviation of σ. That is, a polynomial with N values generated according to a discrete Gaussian distribution as coefficients is generated. s is the private key.

次に、各係数がtより小さいN−1次多項式pをランダムに生成する。Then, each coefficient is generated randomly smaller than t N-1 degree polynomial p 1.

次に、
=−(p×s+t×e) ・・・(式58)
を計算する(ステップA1)。
(λ,p,p)を暗号化鍵pk、
(λ,p,p,s)を復号鍵skとする。
next,
p 0 =-(p 1 x s + t x e) ... (Equation 58)
Is calculated (step A1).
(Λ, p 0 , p 1 ) is the encryption key pk,
Let (λ, p 0 , p 1 , s) be the decryption key sk.

鍵生成部151は、暗号化鍵pkを、暗号文照合システム100において公開する(ステップA2)。鍵生成部151は、復号鍵skを、復号鍵記憶部152に格納する(ステップA3)。 The key generation unit 151 discloses the encryption key pk in the ciphertext verification system 100 (step A2). The key generation unit 151 stores the decryption key sk in the decryption key storage unit 152 (step A3).

なお、第3の実施形態に係る暗号文照合システム100が準備フェーズにて実行する処理は、図2に例示された様態に限定されない。 The process executed by the ciphertext verification system 100 according to the third embodiment in the preparation phase is not limited to the mode illustrated in FIG.

第3の例示的な実施形態の登録フェーズは、第1の例示的な実施形態の図3のフローチャートに従う。図3を参照しながら、第3の実施形態に係る暗号文照合システム100が、登録フェーズにて実行する処理について説明する。 The registration phase of the third exemplary embodiment follows the flowchart of FIG. 3 of the first exemplary embodiment. The process executed by the ciphertext verification system 100 according to the third embodiment in the registration phase will be described with reference to FIG.

登録要求装置110における登録情報抽出部111は、登録対象の生体から生体情報(「登録ベクトル」と呼ぶ)
A=(a,…,aL−1) ・・・(式59)
を抽出する(ステップB1)。
The registration information extraction unit 111 in the registration request device 110 receives biological information (referred to as “registration vector”) from the living body to be registered.
A = (a 0 , ..., a L-1 ) ... (Equation 59)
Is extracted (step B1).

次に、登録要求装置110における第一テンプレート生成部112は、登録ベクトルA=(a,…,aL−1)から、次の式60(上記式20)に従って生成される、登録ベクトルAの各i番目(i=0,…,L−1)の成分aを、i次の項の係数に持つL−1次多項式
=Σi=0〜L−1×x ・・・(式60)
を生成する。
Next, the first template generation unit 112 in the registration request device 110 is generated from the registration vector A = (a 0 , ..., A L-1 ) according to the following equation 60 (the above equation 20), the registration vector A. each i-th (i = 0, ..., L -1) to component a i of, L-1 degree polynomial f having the coefficient of i-th order term a = Σ i = 0~L-1 a i × x i ... (Equation 60)
To generate.

次に、準備フェーズのステップA2において検証装置150が公開した暗号化鍵pk=(λ,p,p)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN−1次多項式uとgとfとを生成する。 Next, using the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the verification device 150 in step A2 of the preparation phase, 3 according to the N-dimensional discrete Gaussian distribution having a standard deviation of σ. Generate two N-1 degree polynomials u 1 , g 1 and f 1.

次に、これらと、暗号化鍵pkに含まれるt、p、pと、生成した多項式fと、に基づき、以下の二つの多項式、
1,0=p×u+t×g+f ・・・(式61−1)
1,1=p×u+t×f ・・・(式61−2)
を計算する。(c1,0,c1,1)を暗号文Cとする(ステップB2)。
Then, with these, t contained in the encryption key pk, and p 0, p 1, and the polynomial f A which generated, based on the following two polynomials,
c 1,0 = p 0 × u 1 + t × g 1 + f A ... (Equation 61-1)
c 1, 1 = p 1 × u 1 + t × f 1 ... (Equation 61-2)
To calculate. Let (c 1,0, c 1,1 ) be the ciphertext C 1 (step B2).

すなわち、Cは暗号化鍵pkによるfの暗号文である。ステップB2で計算した暗号文C=(c1,0,c1,1)を「第一テンプレート」と呼ぶ。That is, C 1 is the ciphertext of f A by the encryption key pk. The ciphertext C 1 = (c 1,0 , c 1,1 ) calculated in step B2 is called the "first template".

次に、登録要求装置110における第二テンプレート生成部113は、登録ベクトルAの各成分の二乗和
Σi=0〜L−1 ・・・(式62)
を計算する。
Next, the second template generation unit 113 in the registration request device 110 uses the sum of squares of each component of the registration vector A Σ i = 0 to L-1 a i 2 ... (Equation 62).
To calculate.

次に、準備フェーズのステップA2において検証装置150が公開した暗号化鍵pk=(λ,p,p)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN−1次多項式uとgとfとを生成する。 Next, using the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the verification device 150 in step A2 of the preparation phase, 3 according to the N-dimensional discrete Gaussian distribution having a standard deviation of σ. Generate two N-1 degree polynomials u 2 , g 2 and f 2.

次に、これらと、暗号化鍵の含むt、p、pと、生成した値Σi=0〜L−1 と、に基づき、以下の二つの多項式、
2,0=p×u+t×g+(Σi=0〜L−1 ) ・・・(式63−1)
2,1=p×u+t×f ・・・(式63−2)
を計算する。(c2,0,c2,1)を暗号文Cとする(ステップB3)。すなわち、Cは暗号化鍵pkによるΣi=0〜L−1 の暗号文である。ステップB3で計算した暗号文C=(c2,0,c2,1)を「第二テンプレート」と呼ぶ。
Next, based on these, t, p 0 , p 1 included in the encryption key, and the generated value Σ i = 0 to L-1 a i 2 , the following two polynomials,
c 2,0 = p 0 × u 2 + t × g 2 + (Σ i = 0 to L-1 a i 2 ) ・ ・ ・ (Equation 63-1)
c 2, 1 = p 1 × u 2 + t × f 2 ... (Equation 63-2)
To calculate. Let (c 2, 0, c 2 , 1) be the ciphertext C 2 (step B3). That is, C 2 is a ciphertext of Σ i = 0 to L-1 a i 2 by the encryption key pk. The ciphertext C 2 = (c 2 , 0, c 2 , 1) calculated in step B3 is called a "second template".

次に、登録要求装置110におけるテンプレート生成部114は、第一テンプレートC=(c1,0,c1,1)と第二テンプレートC=(c2,0,c2,1)をまとめ、テンプレート(C,C)とする(ステップB4)。Next, the template generation unit 114 in the registration request device 110 sets the first template C 1 = (c 1,0 , c 1 , 1) and the second template C 2 = (c 2 , 0, c 2 , 1). In summary, it is used as a template (C 1 , C 2 ) (step B4).

登録要求装置110は、上記テンプレート(C,C)を記憶装置120に送付する(ステップB5)。The registration request device 110 sends the above templates (C 1 , C 2 ) to the storage device 120 (step B5).

次に、記憶装置120は、登録要求装置110からテンプレート(C,C)を受け取る(ステップB6)。Next, the storage device 120 receives the templates (C 1 , C 2 ) from the registration request device 110 (step B6).

記憶装置120における識別子付与部121は、受け取ったテンプレート(C,C)に固有の識別子である登録識別子idを決定する(ステップB7)。The identifier assigning unit 121 in the storage device 120 determines the registration identifier id, which is an identifier unique to the received templates (C 1 , C 2) (step B7).

記憶装置120は、登録識別子idを登録要求装置110に送付する(ステップB8)。 The storage device 120 sends the registration identifier id to the registration request device 110 (step B8).

次に、登録要求装置110は、記憶装置から登録識別子idを受け取る(ステップB9)。 Next, the registration request device 110 receives the registration identifier id from the storage device (step B9).

登録要求装置110は、例えば、受信した登録識別子idを、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップB10)。あるいは、登録データ装置102は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、受信した登録識別子idを格納してもよい。 The registration request device 110 displays, for example, the received registration identifier id on a user interface (UI) such as a display (step B10). Alternatively, the registration data device 102 may store the received registration identifier id in an IC (integrated_cycle) card such as an employee ID card or an identifier card.

次に、記憶装置120における登録データ生成部122は、テンプレート(C,C)と登録識別子idをまとめ、登録データ
((C,C),id)
とする(ステップB11)。
Next, the registration data generation unit 122 in the storage device 120 collects the templates (C 1 , C 2 ) and the registration identifier id, and registers the registration data ((C 1 , C 2 ), id).
(Step B11).

記憶装置120における登録データ生成部122は、登録データ記憶部123に、登録データ((C,C),id)を格納する(ステップB12)。The registration data generation unit 122 in the storage device 120 stores the registration data ((C 1 , C 2 ), id) in the registration data storage unit 123 (step B12).

なお、第3の実施形態に係る暗号文照合システム100が登録フェーズにて実行する処理は、図3に例示された様態に限定されない。例えば、ステップB8に先だってステップB11とステップB12とが実行されてもよい。 The process executed by the ciphertext verification system 100 according to the third embodiment in the registration phase is not limited to the mode illustrated in FIG. For example, step B11 and step B12 may be executed prior to step B8.

第3の例示的な実施形態の認証フェーズは、前記第1の例示的な実施形態の図4のフローチャートに従う。図4を参照しながら、第3の実施形態に係る暗号文照合システム100が、認証フェーズにて実行する処理について説明する。 The authentication phase of the third exemplary embodiment follows the flowchart of FIG. 4 of the first exemplary embodiment. The process executed by the ciphertext verification system 100 according to the third embodiment in the authentication phase will be described with reference to FIG.

認証要求装置130は認証対象の持つ識別子id(「認証識別子」と呼ぶ)を受け取る(ステップC1)。 The authentication requesting device 130 receives the identifier id (referred to as “authentication identifier”) possessed by the authentication target (step C1).

次に、認証要求装置130における認証要求生成部131は、受け取った認証識別子idを含む認証要求を生成する(ステップC2)。 Next, the authentication request generation unit 131 in the authentication request device 130 generates an authentication request including the received authentication identifier id (step C2).

認証要求装置130は、認証要求を照合補助装置140に送付する(ステップC3)。 The authentication request device 130 sends an authentication request to the verification auxiliary device 140 (step C3).

照合補助装置140は、認証要求装置130から認証要求を受け取る(ステップC4)。 The verification auxiliary device 140 receives an authentication request from the authentication request device 130 (step C4).

次に、照合補助装置140におけるチャレンジ補助生成部141は、tより小さい整数rと、N−1より小さい整数hとをランダムに選択する。選択した値をまとめ、チャレンジ補助(r,h)とする(ステップC5)。 Next, the challenge auxiliary generation unit 141 in the collation auxiliary device 140 randomly selects an integer r smaller than t and an integer h smaller than N-1. The selected values are put together and used as challenge assistance (r, h) (step C5).

次に、照合補助装置140におけるチャレンジ生成部142は、チャレンジ補助(r,h)から項式
r×x ・・・(式64)
を算出する。
Then, the challenge generating unit 142 in the verification auxiliary apparatus 140, the challenge auxiliary (r, h) from a single term equation r × x h ··· (Formula 64)
Is calculated.

次に、準備フェーズのステップA2において検証装置150が公開した暗号化鍵pk=(λ,p,p)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN−1次多項式uとgとfとを生成する。 Next, using the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the verification device 150 in step A2 of the preparation phase, 3 according to the N-dimensional discrete Gaussian distribution having a standard deviation of σ. Generate two N-1 degree polynomials u 3 , g 3, and f 3.

次に、N−1次多項式uとgとfと、暗号化鍵の含むt、p、pと、項式r×xと、に基づき、以下の二つの多項式、
3,0=p×u+t×g+(r×x) ・・・(式65−1)
3,1=p×u+t×f ・・・(式65−2)
を計算する。(c3,0,c3,1)を暗号文Cとする(ステップC6)。すなわち、Cは暗号化鍵pkによるr×xの暗号文である。ステップC6で計算した暗号文C=(c3,0,c3,1)を「チャレンジ」と呼ぶ。
Next, the N-1 order polynomial u 3 and g 3 and f 3, t comprising the encryption key, and p 0, p 1, based on the single-term equation r × x h,, the following two polynomials,
c 3,0 = p 0 × u 3 + t × g 3 + (r × x h ) ・ ・ ・ (Equation 65-1)
c 3,1 = p 1 × u 3 + t × f 3 ... (Equation 65-2)
To calculate. Let (c 3, 0, c 3, 1 ) be the ciphertext C 3 (step C6). That is, C 3 is a ciphertext of r × x h with the encryption key pk. The ciphertext C 3 = (c 3,0 , c 3,1 ) calculated in step C6 is called a "challenge".

照合補助装置140は、チャレンジCを認証要求装置130に送付する(ステップC7)。Verification auxiliary apparatus 140, sends the challenge C 3 to the authentication request unit 130 (step C7).

次に、照合補助装置140における登録データ要求生成部143は、認証要求装置130から受け取った認証要求に含まれる認証識別子idを含む登録データ要求を生成する(ステップC8)。 Next, the registration data request generation unit 143 in the collation assisting device 140 generates a registration data request including the authentication identifier id included in the authentication request received from the authentication request device 130 (step C8).

照合補助装置140は、登録データ要求を記憶装置120に送付する(ステップC9)。 The collation assisting device 140 sends the registration data request to the storage device 120 (step C9).

次に、記憶装置120は、照合補助装置140から登録データ要求を受け取る(ステップC10)。 Next, the storage device 120 receives a registration data request from the collation assisting device 140 (step C10).

記憶装置120における登録データ検索部124は、登録データ記憶部に格納されている一つまたは複数の登録データのうち、登録データ要求に含まれる認証識別子idを含む登録データ((C,C),id)を特定する(ステップC11)。 The registration data search unit 124 in the storage device 120 has registered data ((C 1 , C 2) including the authentication identifier id included in the registration data request among one or more registration data stored in the registration data storage unit. ), Id) (step C11).

特定された登録データに含まれるテンプレート(C,C)を「照合対象テンプレート」と呼ぶ。 The templates (C 1 , C 2 ) included in the specified registration data are called "matching target templates".

記憶装置120は、照合対象テンプレート(C,C)を照合補助装置140に送付する(ステップC12)。The storage device 120 sends the collation target template (C 1 , C 2 ) to the collation assisting device 140 (step C12).

照合補助装置140は、記憶装置120から照合対象テンプレート(C,C)を受け取る(ステップC13)。The collation assisting device 140 receives the collation target template (C 1 , C 2 ) from the storage device 120 (step C13).

認証要求装置130は、照合補助装置140からチャレンジC=(c3,0,c3,1-)を受け取る(ステップC14)。The authentication requesting device 130 receives the challenge C 3 = (c 3,0 , c 3,1- ) from the collation assisting device 140 (step C14).

次に、認証要求装置130における認証情報抽出部132は、認証対象の生体から生体情報(認証ベクトルと呼ぶ)
B=(b,…,bL−1) ・・・(式66)
を抽出する(ステップC15)。
Next, the authentication information extraction unit 132 in the authentication request device 130 receives biometric information (referred to as an authentication vector) from the living body to be authenticated.
B = (b 0 , ..., b L-1 ) ... (Equation 66)
Is extracted (step C15).

次に、認証要求装置130における第一レスポンス生成部133は、次の式67に従って生成される、認証ベクトルBの各i番目(i=0,…,L−1)の成分bの加法に関する逆元−bをN−i次の項の係数に持つ多項式
=−Σi=0〜n−1×xN−i ・・・(式67)

を生成する。
Then, the first response generator 133 of the authentication requesting device 130 is generated according to the following equation 67, the authentication each i-th vector B (i = 0, ..., L-1) concerning the addition of components b i inverse polynomial having -b i to the coefficient of N-i following section f B = -Σ i = 0~n- 1 b i × x N-i ··· ( formula 67)

To generate.

ただし、多項式の次数がN以上となった場合には、前述したように、
=−1、
N+1=−x、…
と置き換えることにより、多項式をN−1次以下にする。以下の計算においても同様に行う。
However, when the degree of the polynomial is N or more, as described above,
x N = -1,
x N + 1 = -x, ...
By replacing with, the polynomial is made N-1th order or less. The same applies to the following calculations.

次に、ステップC14で受け取ったチャレンジC=(c3,0,c3,1)と、
生成した多項式fとに基づき、
4,0=f×c3,0 ・・・(式68−1)
4,1=f×c3,1 ・・・(式68−2)
を計算する。(c4,0,c4,1)を暗号文Cとする(ステップC16)。すなわち、Cは暗号化鍵pkによるr×x×fの暗号文である。C=(c4,0,c4,1)を「第一レスポンス」と呼ぶ。
Next, the challenge C 3 = (c 3,0 , c 3,1 ) received in step C14 and
Based on the generated polynomial f B
c 4,0 = f B × c 3,0 ... (Equation 68-1)
c 4,1 = f B × c 3,1 ... (Equation 68-2)
To calculate. Let (c 4, 0, c 4 , 1) be the ciphertext C 4 (step C16). That is, C 4 is a ciphertext of r × x h × f B by the encryption key pk. C 4 = (c 4 , 0, c 4 , 1) is called the "first response".

次に、認証要求装置130における第二レスポンス生成部134は、認証ベクトルBの各成分の二乗和
Σi=0〜L−1 ・・・(式69)
を計算する。
Then, the second response generator 134 in the authentication request unit 130, the authentication vector each component of the square sum Σ i = 0~L-1 b i 2 ··· and B (Formula 69)
To calculate.

次に、準備フェーズのステップA2において検証装置150が公開した暗号化鍵pk=(λ,p,p)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN−1次多項式uとgとfとを生成する。 Next, using the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the verification device 150 in step A2 of the preparation phase, 3 according to the N-dimensional discrete Gaussian distribution having a standard deviation of σ. Generate two N-1 degree polynomials u 5 , g 5, and f 5.

次に、3つのN−1次多項式uとgとfと、暗号化鍵の含むt、p、pと、生成した値Σi=0〜L−1 と、に基づき、以下の二つの多項式、
5,0=p×u+t×g+(Σi=0〜L−1 ) ・・・(式70−1)
5,1=p×u+t×f ・・・(式70−2)
を計算する。(c5,0,c5,1)を暗号文Cとする(ステップC17)。
Next, and the three N-1 order polynomial u 5 g 5 and f 5, t comprising the encryption key, and p 0, p 1, and the resulting value Σ i = 0~L-1 b i 2, Based on the following two polynomials,
c 5,0 = p 0 × u 5 + t × g 5 + (Σ i = 0~L-1 b i 2) ··· ( Formula 70-1)
c 5,1 = p 1 × u 5 + t × f 5 ... (Equation 70-2)
To calculate. Let (c 5,0, c 5,1 ) be the ciphertext C 5 (step C17).

すなわち、Cは暗号化鍵pkによるΣi=0〜L−1 の暗号文である。ステップC17で計算した暗号文C=(c5,0,c5,1)を「第二レスポンス」と呼ぶ。That, C 5 is the ciphertext Σ i = 0~L-1 b i 2 by the encryption key pk. The ciphertext C 5 = (c 5,0 , c 5,1 ) calculated in step C17 is called a "second response".

次に、認証要求装置130におけるレスポンス生成部135は、第一レスポンスC=(c4,0,c4,1)と第二レスポンスC=(c5,0,c5,1)をまとめ、レスポンス(C,C)とする(ステップC18)。Next, the response generation unit 135 in the authentication request device 130 sets the first response C 4 = (c 4 , 0, c 4 , 1) and the second response C 5 = (c 5 , 0, c 5, 1 ). Conclusion, a response (C 4, C 5) and (step C18).

認証要求装置130は、上記レスポンス(C,C)を照合補助装置140に送付する(ステップC19)。The authentication request device 130 sends the above responses (C 4 , C 5 ) to the collation assisting device 140 (step C19).

次に、照合補助装置140は、認証要求装置130から上記レスポンス(C,C)を受け取る(ステップC20)。Next, verification auxiliary apparatus 140 receives the response from the authentication request device 130 (C 4, C 5) ( Step C20).

次に、照合補助装置140における暗号化内積計算部144は、ステップC5で生成したチャレンジ補助(r,h)から、
−r−1×xN−h ・・・(式71)
を計算する。ただし、r−1はtを法としてr×r−1=1を満たす、1以上t未満の整数である。
Next, the encryption inner product calculation unit 144 in the collation assisting device 140 starts with the challenge assist (r, h) generated in step C5.
−r -1 × x N−h・ ・ ・ (Equation 71)
To calculate. However, r -1 is an integer of 1 or more and less than t that satisfies r × r -1 = 1 modulo t.

次に、照合補助装置140における暗号化内積計算部144は、
・ステップ19で受け取った上記レスポンス(C,C)に含まれる第一レスポンスC=(c4,0,c4,1)と、
・生成した−r−1×xN−hと、に基づき、
6,0=(−r−1×xN−h)×c4,0 ・・・(式72−1)
6,1=(−r−1×xN−h)×c4,1 ・・・(式72−2)
を計算する。
(c6,0,c6,1) ・・・(式73)
を暗号文Cとする。すなわち、Cは、暗号化鍵pkによる
(r×x×f)×(−r−1×xN−h)=f ・・・(式74)
の暗号文である。
Next, the encryption inner product calculation unit 144 in the collation auxiliary device 140
-The first response C 4 = (c 4, 0, c 4 , 1) included in the above response (C 4 , C 5) received in step 19 and
・ Based on the generated −r -1 ×xN −h
c 6,0 = (-r -1 x x N-h ) x c 4,0 ... (Equation 72-1)
c 6,1 = (-r -1 x x N-h ) x c 4, 1 ... (Equation 72-2)
To calculate.
(C 6,0 , c 6,1 ) ... (Equation 73)
It is referred to as ciphertext C 6. That is, C 6 is based on the encryption key pk (r × x h × f B ) × (−r -1 × x N−h ) = f B ... (Equation 74).
Ciphertext.

次に、照合補助装置140における暗号化内積計算部144は、
・ステップC13で受け取った照合対象テンプレート(C,C)に含まれる第一テンプレートC=(c1,0,c1,1)と、
・生成した暗号文C=(c6,0,c6,1)と、に基づき、
7,0=c1,0×c6,0 ・・・(式75−1)
7,1=c1,0×c6,1+c1,1×c6,0 ・・・(式75−2)
7,2=c1,1×c6,1 ・・・(式75−3)
を計算する。
(c7,0,c7,1,c7,2) ・・・(式76)
を暗号文Cとする(ステップC21)。すなわち、Cは、暗号化鍵pkによるf×fの暗号文である。ステップC21で計算した暗号文C=(c7,0,c7,1,c7,2)を「暗号化内積」と呼ぶ。なお、前述の通り、f×fの定数項は登録ベクトルAと認証ベクトルBとの内積<A,B>=Σi=0〜n−1×bと等しい。
Next, the encryption inner product calculation unit 144 in the collation auxiliary device 140
-The first template C 1 = (c 1 , 0, c 1 , 1) included in the collation target template (C 1 , C 2) received in step C13,
-Based on the generated ciphertext C 6 = (c 6,0, c 6,1 )
c 7,0 = c 1,0 × c 6,0 ... (Equation 75-1)
c 7,1 = c 1,0 x c 6,1 + c 1,1 x c 6,0 ... (Equation 75-2)
c 7,2 = c 1,1 x c 6,1 ... (Equation 75-3)
To calculate.
(C 7,0 , c 7 , 1, c 7 , 2) ... (Equation 76)
Is the ciphertext C 7 (step C21). That is, C 7 is a ciphertext of f A × f B by the encryption key pk. The ciphertext C 7 = ( c 7 , 0 , c 7, 1, c 7 , 2) calculated in step C 21 is called an “encryption inner product”. Incidentally, as described above, the constant term of f A × f B is the inner product of the registration vectors A and authentication vector B <A, B> = Σ i = equals 0~n-1 a i × b i .

次に、照合補助装置140におけるクエリ生成部145は、
・ステップC13で受け取った照合対象テンプレート(C,C)に含まれる第二テンプレートC=(c2,0,c2,1)と、
・ステップC20で受け取ったレスポンス(C,C)に含まれる第二レスポンスC=(c5,0,c5,1)と、
・ステップC21で生成した暗号化内積C=(c7,0,c7,1,c7,2)と、に基づき、
8,0=c2,0+c5,0+−2×c7,0 ・・・(式77−1)
8,1=c2,1+c5,1−2×c7,1 ・・・(式77−2)
8,2=−2×c7,2 ・・・(式77−3)
を計算する。(c8,0,c8,1,c8,2)を暗号文Cとする(ステップC22)。すなわち、Cは、暗号化鍵pkによる
(Σi=0〜n−1 )+(Σi=0〜n−1 )−2×f×f ・・・(式78)
の暗号文である。計算した暗号文C=(c8,0,c8,1,c8,2)を「クエリ」と呼ぶ。
Next, the query generation unit 145 in the collation assisting device 140
-The second template C 2 = (c 2 , 0, c 2 , 1) included in the collation target template (C 1 , C 2) received in step C13,
-The second response C 5 = (c 5 , 0, c 5, 1 ) included in the response (C 4 , C 5) received in step C20,
-Based on the encrypted inner product C 7 = ( c 7 , 0, c 7, 1, c 7 , 2) generated in step C21.
c 8,0 = c 2,0 + c 5,0 + -2 × c 7,0 ... (Equation 77-1)
c 8,1 = c 2,1 + c 5,1-2 × c 7,1 ... (Equation 77-2)
c 8, 2 = -2 x c 7, 2 ... (Equation 77-3)
To calculate. Let (c 8, 0, c 8 , 1, c 8 , 2) be the ciphertext C 8 (step C22). That, C 8 is due to the encryption key pk (Σ i = 0~n-1 a i 2) + (Σ i = 0~n-1 b i 2) -2 × f A × f B ··· ( Equation 78)
Ciphertext. The calculated ciphertext C 8 = (c 8 , 0, c 8 , 1, c 8 , 2) is called a "query".

なお、前述の通り、f×fの定数項は、登録ベクトルAと認証ベクトルBとの内積<A、B>=Σi=0〜n−1×bと等しい。したがって、Cは登録ベクトルAと認証ベクトルBとのユークリッド距離d(A,B)を定数項に持つ多項式の暗号文である。Incidentally, as described above, the constant term of f A × f B is the inner product of the registration vectors A and authentication vector B <A, B> = Σ i = equals 0~n-1 a i × b i . Therefore, C 8 is a ciphertext of a polynomial having the Euclidean distance d E (A, B) between the registration vector A and the authentication vector B as a constant term.

次に、照合補助装置140は、上記クエリC=(c8,0,c8,1,c8,2)を検証装置150に送付する(ステップC23)。Next, the collation assisting device 140 sends the query C 8 = (c 8 , 0, c 8 , 1, c 8 , 2) to the verification device 150 (step C23).

次に、検証装置150は、照合補助装置140から上記クエリCを受け取る(ステップC24)。Next, the verification device 150 receives the query C 8 from the collation assisting device 140 (step C24).

検証装置150におけるクエリ検証部153は、
・クエリC=(c8,0,c8,1,c8,2)と、
・秘密鍵sk=(λ,p,p,s)と
に基づき、
=c8,0+c8,1×s+c8,2×s ・・・(式79)
を計算する。
The query verification unit 153 in the verification device 150
-Query C 8 = (c 8, 0, c 8 , 1, c 8 , 2) and
-Based on the private key sk = (λ, p 0 , p 1 , s)
D 1 = c 8,0 + c 8,1 x s + c 8,2 x s 2 ... (Equation 79)
To calculate.

次に、Dをqで割った余りをDとする。Dがq/2以上であれば、D=D−qとする。Dがq/2より小さければ、D=Dとする(D∈Z(q)= [−q/2,q/2)∩Z)。Next, let D 2 be the remainder obtained by dividing D 1 by q. If D 2 is q / 2 or more, then D 3 = D 2- q. If D 2 is less than q / 2, then D 3 = D 2 (D 2 ∈ Z (q) = [−q / 2, q / 2) ∩Z).

次に、Dをtで割った余りの多項式をDとする。Dの定数項をDとする(ステップC25)。算出した値Dを、「検証結果」と呼ぶ。前述の通り、この定数項Dは登録ベクトルAと認証ベクトルBとのユークリッド距離d(A,B)である。Next, let D 4 be the remainder polynomial obtained by dividing D 3 by t. Let the constant term of D 4 be D 5 (step C25). The calculated value D 5 is called a “verification result”. As described above, the constant term D 5 is the Euclidean distance d E (A, B) between the registration vector A and the authentication vector B.

次に、検証装置150における照合結果生成部154は、検証結果Dを照合結果dとする。あるいは、検証結果Dと、あらかじめ定められた閾値との大小を比較した結果を照合結果dとしてもよい(ステップC26)。Next, the collation result generation unit 154 in the verification device 150 sets the verification result D 5 as the collation result d. Alternatively, the result of comparing the magnitude of the verification result D 5 with the predetermined threshold value may be used as the collation result d (step C26).

検証装置150は、算出した照合結果dを出力する(ステップC27)。 The verification device 150 outputs the calculated collation result d (step C27).

なお、第3の実施形態に係る暗号文照合システム100が認証フェーズにて実行する処理は、図4に例示された様態に限定されない。例えば、ステップC5に先だってステップC9からステップC13が実行されてもよい。 The process executed by the ciphertext verification system 100 according to the third embodiment in the authentication phase is not limited to the mode illustrated in FIG. For example, steps C9 to C13 may be executed prior to step C5.

第3の実施形態に係る暗号文照合システム100の上記の説明において、登録要求装置110における第一テンプレート生成部112がステップB2において生成する多項式fは、登録ベクトルAに基づき上記式20に従って生成される多項式であるとし、認証要求装置130における第一レスポンス生成部133がステップC16において生成する多項式fは、認証ベクトルに基づき上記式21に従って生成される多項式であるとした。In the above description of the ciphertext matching system 100 according to the third embodiment, the polynomial f A generated by the first template generation unit 112 in the registration request device 110 in step B2 is generated according to the above equation 20 based on the registration vector A. and a polynomial that is, the polynomial f B of the first response generator 133 of the authentication requesting device 130 is generated in step C16 was to be a polynomial generated according to the formula 21 based on the authentication vector.

第3の実施形態における二つの多項式の生成方法は、上記の方法に限らない。例えば、登録要求装置110における第一テンプレート生成部112がステップB2において生成する多項式fを、登録ベクトルAに基づき式21に従って生成される多項式とし、認証要求装置130における第一レスポンス生成部133がステップC16において生成する多項式fを、認証ベクトルに基づき式20に従って生成される多項式としてもよい。The method of generating the two polynomials in the third embodiment is not limited to the above method. For example, a polynomial f A of the first template generation unit 112 in the registration request unit 110 is generated in step B2, the polynomial is generated in accordance basis formula 21 Registered vector A, the first response generator 133 of the authentication requesting device 130 The polynomial f B generated in step C16 may be a polynomial generated according to Equation 20 based on the authentication vector.

[効果の説明]
次に、第3の例示的な実施形態に係る暗号文照合システム100に関する効果について説明する。
[Explanation of effect]
Next, the effect of the ciphertext verification system 100 according to the third exemplary embodiment will be described.

第3の例示的な実施形態に係る暗号文照合システム100によれば、認証を要求するユーザが、自身の生体と識別子を提示して認証を行う、1:1認証を安全に実現することが可能である。すなわち、次の2つの効果を有する。 According to the ciphertext verification system 100 according to the third exemplary embodiment, it is possible to safely realize 1: 1 authentication in which a user requesting authentication presents his / her own living body and an identifier to perform authentication. It is possible. That is, it has the following two effects.

第3の例示的な実施形態に係る暗号文照合システム100によれば、登録要求装置110が抽出した登録ベクトルは、登録要求装置110上で暗号化され、記憶装置120に送られる。また、認証要求装置130が抽出した認証ベクトルは、認証要求装置130上で暗号化され、照合補助装置140に送られる。 According to the ciphertext verification system 100 according to the third exemplary embodiment, the registration vector extracted by the registration request device 110 is encrypted on the registration request device 110 and sent to the storage device 120. Further, the authentication vector extracted by the authentication request device 130 is encrypted on the authentication request device 130 and sent to the verification auxiliary device 140.

これらの暗号文を復号できるのは、復号鍵を持つ検証装置150であるが、検証装置150の受け取るデータは登録ベクトルと認証ベクトルの間のユークリッド距離の暗号文であり、登録ベクトルや認証ベクトルの値を開示しない。 It is the verification device 150 that has the decryption key that can decrypt these ciphertexts, but the data received by the verification device 150 is the ciphertext of the Euclidean distance between the registration vector and the authentication vector, and the registration vector and the authentication vector Do not disclose the value.

したがって、第3の例示的な実施形態に係る暗号文照合システム100によれば、それぞれのベクトルを抽出する装置以外の装置に登録ベクトルと認証ベクトルの距離以外の値を漏洩せず、登録ベクトルと認証ベクトルの間の距離を算出することが可能である。 Therefore, according to the ciphertext verification system 100 according to the third exemplary embodiment, the value other than the distance between the registration vector and the authentication vector is not leaked to the device other than the device that extracts each vector, and the registration vector and the registration vector are used. It is possible to calculate the distance between the authentication vectors.

また、第3の例示的な実施形態に係る暗号文照合システム100によれば、同じ登録ベクトルとの認証を行う際であっても、ステップC5で選ばれた乱数を用いた処理が行われる。 Further, according to the ciphertext verification system 100 according to the third exemplary embodiment, even when authenticating with the same registration vector, the process using the random number selected in step C5 is performed.

したがって、照合処理の通信内容が漏洩したとしても、漏洩した内容を再送したり、漏洩した内容を利用して作成したデータを送付したりすることによって、漏洩した照合時の距離と等しい距離を算出させたり、小さい値を算出させたりすることができない。 Therefore, even if the communication content of the collation process is leaked, the distance equal to the distance at the time of the leaked collation is calculated by resending the leaked content or sending the data created by using the leaked content. It is not possible to make it or calculate a small value.

特に、第3の例示的な実施形態に係る暗号文照合システム100を、距離が閾値より小さいときに「受理」とする認証に利用する場合、登録ベクトルを知らない攻撃者が「受理」とされない性質、すなわちなりすまし攻撃への耐性を有する。 In particular, when the ciphertext verification system 100 according to the third exemplary embodiment is used for authentication to be "accepted" when the distance is smaller than the threshold value, an attacker who does not know the registration vector is not regarded as "accepted". It has the property of being resistant to spoofing attacks.

さらに、第3の例示的な実施形態に係る暗号文照合システム100は、高速な処理が可能な暗号方式である非特許文献1に記載された暗号方式を用いて構成される。そのため、高速な照合処理が可能である。 Further, the ciphertext verification system 100 according to the third exemplary embodiment is configured by using the ciphertext described in Non-Patent Document 1, which is a ciphertext capable of high-speed processing. Therefore, high-speed collation processing is possible.

さらに、第3の例示的な実施形態に係る暗号文照合システム100では、復号鍵を持つ検証装置150に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しないように変形することが可能である。例えば、非特許文献4に記載された方式と同じ方法を適用することにより、復号鍵を持つ検証装置150が、登録ベクトルと認証ベクトルの間のユークリッド距離を算出できない方式に変形できる。復号鍵を持つ検証装置150に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しない方式は、特別な状況下においても復号鍵を持つ検証装置150が登録ベクトルの値を算出することを防ぐことができる。このため、より高い安全性を達成できる。 Further, in the ciphertext verification system 100 according to the third exemplary embodiment, it is possible to modify the verification device 150 having the decryption key so as not to disclose the Euclidean distance between the registration vector and the authentication vector. Is. For example, by applying the same method as that described in Non-Patent Document 4, the verification device 150 having a decryption key can be transformed into a method in which the Euclidean distance between the registration vector and the authentication vector cannot be calculated. The method of not disclosing the Euclidean distance between the registration vector and the authentication vector to the verification device 150 having the decryption key means that the verification device 150 having the decryption key calculates the value of the registration vector even under special circumstances. Can be prevented. Therefore, higher safety can be achieved.

[第4の実施形態]
次に、第4の例示的な実施形態について説明する。第4の例示的な実施形態は、前記第2の例示的な実施形態の説明で参照した図5に示す暗号文照合システム200において、非特許文献1に示された暗号方式を用いる場合である。以下では、第4の例示的な実施形態に係る特徴的な部分を中心に説明し、前記第2の例示的な実施形態と同じ部分についての説明は適宜省略する。
[Fourth Embodiment]
Next, a fourth exemplary embodiment will be described. The fourth exemplary embodiment is a case where the ciphertext method shown in Non-Patent Document 1 is used in the ciphertext matching system 200 shown in FIG. 5 referred to in the description of the second exemplary embodiment. .. Hereinafter, the characteristic parts relating to the fourth exemplary embodiment will be mainly described, and the description of the same parts as those of the second exemplary embodiment will be omitted as appropriate.

第4の例示的な実施形態は、非特許文献1に記載された、加法及び情報に関して準同型性を持つ暗号方式を用いて構成される。第4の例示的な実施形態の構成には、非特許文献1の暗号方式の持つ次の特徴を利用する。 The fourth exemplary embodiment is constructed using the cryptosystem described in Non-Patent Document 1, which has homomorphism in terms of addition and information. The following features of the encryption method of Non-Patent Document 1 are utilized in the configuration of the fourth exemplary embodiment.

非特許文献1の暗号方式の鍵生成アルゴリズムの受け取るパラメータは、整数Nおよび素数tを含む。 The parameters received by the key generation algorithm of the encryption method of Non-Patent Document 1 include an integer N and a prime number t.

非特許文献1の暗号方式の暗号化アルゴリズムは、各係数がtより小さい、N−1次多項式をメッセージとして受け取る。各係数がtより小さいN−1次多項式fに対し、f×f−1=1を満たすf−1は必ずしも存在しない。すなわち、非特許文献1の暗号方式が暗号化するメッセージには、必ずしも逆元が存在しない。The encryption algorithm of the encryption method of Non-Patent Document 1 receives an N-1 degree polynomial in which each coefficient is smaller than t as a message. For each coefficient is smaller than t N-1 order polynomial f, f -1 satisfying f × f -1 = 1 does not necessarily exist. That is, the message encrypted by the encryption method of Non-Patent Document 1 does not necessarily have an inverse element.

一方、tは素数であるため、任意の1以上t未満の整数rに対し、tを法として
r×r−1=1 ・・・(式80)
を満たす、1以上t未満の整数r−1が存在する。
On the other hand, since t is a prime number, r × r -1 = 1 ... (Equation 80), modulo t, for any integer r greater than or equal to 1 and less than t.
There is an integer r -1 that satisfies and is 1 or more and less than t.

さらに、hを0以上N−1以下の整数とする。rおよびhについて、
(r×x)×(r−1×(−xN−h))=1 ・・・(式81)
が成り立つ。
Further, h is an integer of 0 or more and N-1 or less. About r and h
(R × x h ) × (r -1 × (−x N−h )) = 1 ・ ・ ・ (Equation 81)
Is established.

したがって、任意の1以上t未満の整数rおよび0以上N−1以下の整数hについて、r×xは非特許文献1の暗号方式を用いて暗号化できるメッセージであり、かつ逆元−r−1×xN−hを持つ。Therefore, for any integer r of 1 or more and less than t and an integer h of 0 or more and N-1 or less, r × x h is a message that can be encrypted using the encryption method of Non-Patent Document 1, and the inverse element −r. It has -1 × x N−h .

[構成の説明]
第4の例示的な実施形態の構成は、図5に示した前記第2の例示的な実施形態に係る暗号文照合システム200の構成と同様であるため、説明は省略する。
[動作の説明]
次に、第4の例示的な実施形態に係る暗号文照合システム200の動作について説明する。
[Description of configuration]
Since the configuration of the fourth exemplary embodiment is the same as the configuration of the ciphertext verification system 200 according to the second exemplary embodiment shown in FIG. 5, the description thereof will be omitted.
[Explanation of operation]
Next, the operation of the ciphertext verification system 200 according to the fourth exemplary embodiment will be described.

次に、第4の例示的な実施形態に係る暗号文照合システム200における動作は、前記第2の例示的な実施形態と同様に、大別して、準備フェーズ、登録フェーズ、及び、照合フェーズを含む。まず、各フェーズにおける処理の概要について説明する。 Next, the operation in the ciphertext verification system 200 according to the fourth exemplary embodiment is roughly classified into a preparation phase, a registration phase, and a verification phase, as in the second exemplary embodiment. .. First, the outline of the processing in each phase will be described.

準備フェーズにおいては、主として、受信したセキュリティパラメータを用いて、暗号化鍵、及び、復号鍵が生成される。 In the preparation phase, the encryption key and the decryption key are mainly generated using the received security parameters.

登録フェーズにおいては、主として、準備フェーズで生成された暗号化鍵を用いて、抽出された登録ベクトルが暗号化されたテンプレートが作成され、保存される。 In the registration phase, a template in which the extracted registration vector is encrypted is mainly created and stored using the encryption key generated in the preparation phase.

照合フェーズにおいては、主として、準備フェーズで生成された復号鍵を用いて、新たに抽出された認証ベクトルと一つないし複数の登録ベクトルとの間の距離が算出される。 In the collation phase, the distance between the newly extracted authentication vector and one or more registration vectors is calculated, mainly using the decryption key generated in the preparation phase.

次に、暗号文照合システム200が、上述した各フェーズにて実行する処理について詳細に説明する。第4の例示的な実施形態の準備フェーズは、前記第2の例示的な実施形態に係る暗号文照合システム200が実行する準備フェーズの処理の一例を示した図6のフローチャートに従う。図6を参照しながら、第4の例示的な実施形態に係る照合システム200が準備フェーズにて実行する処理について説明する。 Next, the process executed by the ciphertext verification system 200 in each of the above-mentioned phases will be described in detail. The preparation phase of the fourth exemplary embodiment follows the flowchart of FIG. 6 showing an example of processing of the preparation phase executed by the ciphertext verification system 200 according to the second exemplary embodiment. The process executed by the collation system 200 according to the fourth exemplary embodiment in the preparation phase will be described with reference to FIG.

検証装置250における鍵生成部251は、4つのパラメータの組
λ=(N,q,t,σ) ・・・(式82)
を受け取る。ただしNは2冪の整数、qは2Nを法として1と合同な素数、tはqより小さい正の整数、σはN−1次多項式上のある離散ガウス分布の標準偏差である。
The key generation unit 251 in the verification device 250 has a set of four parameters λ = (N, q, t, σ) ... (Equation 82).
To receive. Where N is a two-power integer, q is a prime number congruent with 1 modulo 2N, t is a positive integer smaller than q, and σ is the standard deviation of a discrete Gaussian distribution on an N-1 degree polynomial.

次に、2つのN−1次多項式sおよびeを標準偏差がσであるN次元離散ガウス分布に従って生成する。次に、各係数がqより小さいN−1次多項式pをランダムに生成する。Next, two N-1 degree polynomials s and e are generated according to an N-dimensional discrete Gaussian distribution with a standard deviation of σ. Then, each coefficient is generated randomly q smaller N-1 degree polynomial p 1.

次に、p=−(p×s+t×e) ・・・(式83)
を計算する。
(λ,p,p)を暗号化鍵(公開鍵)pk、
(λ,p,p,s)を復号鍵(秘密鍵)skとする(ステップD1)。
Next, p 0 =-(p 1 x s + t x e) ... (Equation 83)
To calculate.
(Λ, p 0 , p 1 ) is the encryption key (public key) pk,
Let (λ, p 0 , p 1 , s) be the decryption key (private key) sk (step D1).

鍵生成部251は、暗号化鍵pkを、暗号文照合システム200において公開する(ステップD2)。鍵生成部251は、復号鍵skを、復号鍵記憶部252に格納する(ステップD3)。 The key generation unit 251 discloses the encryption key pk in the ciphertext verification system 200 (step D2). The key generation unit 251 stores the decryption key sk in the decryption key storage unit 252 (step D3).

なお、第4の例示的な実施形態に係る暗号文照合システム200が準備フェーズにて実行する処理は、図6に例示された様態に限定されない。 The process executed by the ciphertext verification system 200 according to the fourth exemplary embodiment in the preparation phase is not limited to the mode illustrated in FIG.

第4の例示的な実施形態の登録フェーズは、前記第2の例示的な実施形態に係る暗号文照合システム200が実行する登録フェーズの処理の一例を示した図7のフローチャートに従う。図7を参照しながら、第4の例示的な実施形態に係る照合システム200が、登録フェーズにて実行する処理について説明する。 The registration phase of the fourth exemplary embodiment follows the flowchart of FIG. 7 showing an example of processing of the registration phase executed by the ciphertext verification system 200 according to the second exemplary embodiment. The process executed by the collation system 200 according to the fourth exemplary embodiment in the registration phase will be described with reference to FIG. 7.

登録要求装置210における登録情報抽出部211は、登録対象の生体から生体情報(登録ベクトルと呼ぶ)A=(a,…,aL−1) ・・・(式84)
を抽出する(ステップE1)。
The registration information extraction unit 211 in the registration request device 210 receives biological information (called a registration vector) A = (a 0 , ..., a L-1 ) ... (Equation 84) from the living body to be registered.
Is extracted (step E1).

次に、登録要求装置210における第一テンプレート生成部212は、登録ベクトルA=(a,…,aL−1)から、次の式85(上記式20)に従って生成される、登録ベクトルAの各i番目(i=0,…,L−1)の成分aをi次の項の係数に持つL−1次多項式
=Σi=0〜L−1×x ・・・(式85)
を生成する。
Next, the first template generation unit 212 in the registration request device 210 is generated from the registration vector A = (a 0 , ..., a L-1 ) according to the following equation 85 (the above equation 20), the registration vector A. each i-th (i = 0, ..., L -1) component a i a i following L-1 degree polynomial f a = Σ i = 0~L- 1 a i × with the coefficients of the terms x i · a・ ・ (Equation 85)
To generate.

次に、準備フェーズのステップD2において検証装置250が公開した暗号化鍵pk=(λ,p,p)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN−1次多項式uとgとfとを生成する。 Next, using the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the verification device 250 in step D2 of the preparation phase, 3 according to the N-dimensional discrete Gaussian distribution in which the standard deviation is σ. Generate two N-1 degree polynomials u 1 , g 1 and f 1.

次に、N−1次多項式uとgとfと、暗号化鍵pkに含まれるt、p、pと、生成した多項式fと、に基づき、以下の二つの多項式、
1,0=p×u+t×g+f ・・・(式86−1)
1,1=p×u+t×f ・・・(式86−2)
を計算する。(c1,0,c1,1)を暗号文Cとする(ステップE2)。すなわち、Cは暗号化鍵pkによるfの暗号文である。計算した暗号文C=(c1,0,c1,1)を「第一テンプレート」と呼ぶ。
Next, based on the N-1 degree polynomials u 1 , g 1 and f 1 , t, p 0 , p 1 included in the encryption key pk, and the generated polynomial f A , the following two polynomials,
c 1,0 = p 0 × u 1 + t × g 1 + f A ... (Equation 86-1)
c 1, 1 = p 1 × u 1 + t × f 1 ... (Equation 86-2)
To calculate. Let (c 1,0, c 1,1 ) be the ciphertext C 1 (step E2). That is, C 1 is the ciphertext of f A by the encryption key pk. The calculated ciphertext C 1 = (c 1,0 , c 1,1 ) is called the "first template".

次に、登録要求装置210における第二テンプレート生成部213は、登録ベクトルAの各成分の二乗和
Σi=0〜L−1 ・・・(式87)
を計算する。
Next, the second template generation unit 213 in the registration request device 210 uses the sum of squares of each component of the registration vector A Σ i = 0 to L-1 a i 2 ... (Equation 87).
To calculate.

次に、準備フェーズのステップD2において検証装置250が公開した暗号化鍵pk=(λ,p,p)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN−1次多項式uとgとfとを生成する。 Next, using the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the verification device 250 in step D2 of the preparation phase, 3 according to the N-dimensional discrete Gaussian distribution in which the standard deviation is σ. Generate two N-1 degree polynomials u 2 , g 2 and f 2.

次に、N−1次多項式uとgとfと、暗号化鍵pkに含まれるt、p、pと、生成した値Σi=0〜L−1 と、に基づき、以下の二つの多項式、
2,0=p×u+t×g+(Σi=0〜L−1 ) ・・・(式88−1)
2,1=p×u+t×f ・・・(式88−2)
を計算する。(c2,0,c2,1)を暗号文Cとする(ステップE3)。すなわち、Cは暗号化鍵pkによるΣi=0〜L−1 の暗号文である。計算した暗号文C=(c2,0,c2,1)を「第二テンプレート」と呼ぶ。
Next, the N-1 degree polynomials u 2 , g 2, and f 2 , t, p 0 , and p 1 included in the encryption key pk, and the generated values Σ i = 0 to L-1 a i 2 . Based on the following two polynomials,
c 2,0 = p 0 × u 2 + t × g 2 + (Σ i = 0 to L-1 a i 2 ) ・ ・ ・ (Equation 88-1)
c 2, 1 = p 1 × u 2 + t × f 2 ... (Equation 88-2)
To calculate. Let (c 2, 0, c 2 , 1) be the ciphertext C 2 (step E3). That is, C 2 is a ciphertext of Σ i = 0 to L-1 a i 2 by the encryption key pk. The calculated ciphertext C 2 = (c 2 , 0, c 2 , 1) is called a "second template".

次に、登録要求装置210におけるテンプレート生成部214は、第一テンプレートc=(c1,0,c1,1)と第二テンプレートC=(c2,0,c2,1)をまとめ、テンプレート(C,C)とする(ステップE4)。Next, the template generation unit 214 in the registration request device 210 sets the first template c 1 = (c 1 , 0, c 1 , 1) and the second template C 2 = (c 2 , 0, c 2 , 1). In summary, it is used as a template (C 1 , C 2 ) (step E4).

登録要求装置210は、テンプレートを記憶装置220に送付する(ステップE5)。 The registration request device 210 sends the template to the storage device 220 (step E5).

次に、記憶装置220は、登録要求装置210からテンプレート(C,C)を受け取る(ステップE6)。Next, the storage device 220 receives the templates (C 1 , C 2 ) from the registration request device 210 (step E6).

記憶装置220における識別子付与部221は、受け取ったテンプレートに固有の識別子である登録識別子idを決定する(ステップE7)。 The identifier assigning unit 221 in the storage device 220 determines the registration identifier id, which is an identifier unique to the received template (step E7).

記憶装置220は、登録識別子idを登録要求装置210に送付する(ステップE8)。 The storage device 220 sends the registration identifier id to the registration request device 210 (step E8).

次に、登録要求装置210は、記憶装置から登録識別子idを受け取る(ステップE9)。登録要求装置210は、例えば、受信した登録識別子idを、ディスプレイ等のユーザインターフェース(UI)に表示する(ステップE10)。あるいは、登録要求装置210は、社員証や、識別子カード等の、IC(integrated_circuit)カードに、受信した登録識別子idを格納してもよい。 Next, the registration request device 210 receives the registration identifier id from the storage device (step E9). The registration request device 210 displays, for example, the received registration identifier id on a user interface (UI) such as a display (step E10). Alternatively, the registration request device 210 may store the received registration identifier id in an IC (integrated_cycle) card such as an employee ID card or an identifier card.

次に、記憶装置220における登録データ生成部222は、テンプレート(C,C)と登録識別子idをまとめ、登録データ
((C,C),id) ・・・(式89)
とする(ステップE11)。
Next, the registration data generation unit 222 in the storage device 220 puts together the template (C 1 , C 2 ) and the registration identifier id, and the registration data ((C 1 , C 2 ), id) ... (Equation 89).
(Step E11).

記憶装置220における登録データ生成部222は、登録データ記憶部223に、登録データ((C,C),id)を格納する(ステップE12)。The registration data generation unit 222 in the storage device 220 stores the registration data ((C 1 , C 2 ), id) in the registration data storage unit 223 (step E12).

なお、第4の例示的な実施形態に係る暗号文照合システム200が登録フェーズにて実行する処理は、図7に例示された様態に限定されない。例えば、ステップE8に先だってステップE11とステップE12とが実行されてもよい。 The process executed by the ciphertext verification system 200 according to the fourth exemplary embodiment in the registration phase is not limited to the mode illustrated in FIG. 7. For example, step E11 and step E12 may be executed prior to step E8.

第4の例示的な実施形態の認証フェーズの処理の一例は、前記第2の例示的な実施形態に係る暗号文照合システム200が実行する処理の一例を示した図8のフローチャートに従う。図8を参照しながら、第4の例示的な実施形態に係る照合システム200が、認証フェーズにて実行する処理について説明する。 An example of the processing of the authentication phase of the fourth exemplary embodiment follows the flowchart of FIG. 8 showing an example of the processing executed by the ciphertext verification system 200 according to the second exemplary embodiment. The process executed by the collation system 200 according to the fourth exemplary embodiment in the authentication phase will be described with reference to FIG.

認証要求装置230における認証要求生成部231は、認証要求を生成する(ステップF1)。 The authentication request generation unit 231 in the authentication request device 230 generates an authentication request (step F1).

認証要求装置230は、認証要求を照合補助装置240に送付する(ステップF2)。 The authentication request device 230 sends an authentication request to the verification assist device 240 (step F2).

照合補助装置240は、認証要求装置230から認証要求を受け取る(ステップF3)。 The verification auxiliary device 240 receives an authentication request from the authentication request device 230 (step F3).

次に、照合補助装置240におけるチャレンジ補助生成部241は、tより小さい整数rと、N−1より小さい整数hとをランダムに選択する。選択した値をまとめ、チャレンジ補助(r,h)とする(ステップF4)。 Next, the challenge auxiliary generation unit 241 in the collation auxiliary device 240 randomly selects an integer r smaller than t and an integer h smaller than N-1. The selected values are put together and used as challenge assistance (r, h) (step F4).

次に、照合補助装置240におけるチャレンジ生成部242は、チャレンジ補助(r,h)から項式
r×x ・・・(式90)
を算出する。
Then, the challenge generating unit 242 in the verification auxiliary apparatus 240, the challenge auxiliary (r, h) from a single term equation r × x h ··· (Formula 90)
Is calculated.

次に、準備フェーズのステップD2において検証装置250が公開した暗号化鍵pk=(λ,p,p)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って、3つのN−1次多項式uとgとfとを生成する。 Next, using the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the verification device 250 in step D2 of the preparation phase, according to the N-dimensional discrete Gaussian distribution in which the standard deviation is σ. Generate three N-1 degree polynomials u 3 , g 3 and f 3.

次に、3つのN−1次多項式uとgとfと、暗号化鍵の含むt、p、p1-と、項式r×xと、に基づき、以下の二つの多項式、
3,0=p×u+t×g+(r×x) ・・・(式91−1)
3,1=p×u+t×f ・・・(式91−2)
を計算する。(c3,0,c3,1)を暗号文Cとする(ステップF5)。すなわち、Cは暗号化鍵pkによるr×xの暗号文である。計算した暗号文C=(c3,0,c3,1)を「チャレンジ」と呼ぶ。照合補助装置240は、チャレンジCを認証要求装置230に送付する(ステップF6)。

Then, the three N-1 order polynomial u 3 and g 3 and f 3, t comprising the encryption key, and p 0, p 1-, based on the single-term equation r × x h,, the following two Two polynomials,
c 3,0 = p 0 × u 3 + t × g 3 + (r × x h ) ・ ・ ・ (Equation 91-1)
c 3,1 = p 1 × u 3 + t × f 3 ... (Equation 91-2)
To calculate. Let (c 3, 0, c 3, 1 ) be the ciphertext C 3 (step F5). That is, C 3 is a ciphertext of r × x h with the encryption key pk. The calculated ciphertext C 3 = (c 3,0 , c 3,1 ) is called a "challenge". Verification auxiliary apparatus 240, sends the challenge C 3 to the authentication request unit 230 (step F6).

次に、照合補助装置240における登録データ要求生成部243は、登録データ要求を生成する(ステップF7)。 Next, the registration data request generation unit 243 in the collation assisting device 240 generates a registration data request (step F7).

照合補助装置240は、登録データ要求を記憶装置220に送付する(ステップF8)。 The collation assisting device 240 sends the registration data request to the storage device 220 (step F8).

次に、記憶装置220は、照合補助装置240から登録データ要求を受け取る(ステップF9)。 Next, the storage device 220 receives a registration data request from the collation assisting device 240 (step F9).

記憶装置220は、登録データ記憶部223に格納されている一つまたは複数の登録データのうち、一部またはすべて(M個とする)の登録データを照合補助装置240に送付する(ステップF10)。ただし、各登録データはテンプレートと登録識別子の組である。 The storage device 220 sends a part or all (M pieces) of registered data of one or a plurality of registered data stored in the registered data storage unit 223 to the collation assisting device 240 (step F10). .. However, each registration data is a set of a template and a registration identifier.

照合補助装置240は、記憶装置220からM個の登録データを受け取る(ステップF11)。 The collation assisting device 240 receives M registration data from the storage device 220 (step F11).

以下では、各j番目(j=1,…,M)の登録データを
((Cj,1,Cj,2),id) ・・・(式92)
と表す。
In the following, the registered data of each jth (j = 1, ..., M) is (( Cj, 1 , Cj, 2 ), id j ) ... (Equation 92).
It is expressed as.

また、各j番目(j=1,…,M)の登録データ((Cj,1,Cj,2),id)に含まれるテンプレート(Cj,1,Cj,2)は、登録ベクトルAから生成されたものであるものとする。The templates (C j, 1 , C j, 2 ) included in the registered data ((C j, 1 , C j, 2 ), id j ) of each jth (j = 1, ..., M) are It is assumed that it is generated from the registration vector Aj.

また、各j番目(j=1,…,M)の登録データ((Cj,1,Cj,2),id)に含まれる第一テンプレートCj,1は、登録ベクトルAから生成された多項式fA,jの暗号文
Enc(pk、fA,j)=(cj,1,0,cj,1,1) ・・・(式93)
であるものとする。
Further, the first templates C j, 1 included in the registration data ((C j, 1 , C j, 2 ), id j ) of each jth (j = 1, ..., M) are from the registration vector A j. the generated polynomial f a, ciphertext j Enc (pk, f a, j) = (c j, 1,0, c j, 1,1) ··· ( formula 93)
Suppose that

また、各j番目(j=1,…,M)の登録データ((Cj,1,Cj,2),id)に含まれる第二テンプレートCj,2は、登録ベクトルAの各成分の二乗和
Σi=0〜n−1j,i ・・・(式94)
の暗号文
Enc(pk,Σi=0〜n−1j,i )=(cj,2,0,cj,2,1) ・・・(式95)
であるものとする。
Further, the second template C j, 2 included in the registration data ((C j, 1 , C j, 2 ), id j ) of each jth (j = 1, ..., M) is the registration vector A j . Sum of squares of each component Σ i = 0 to n-1 a j, i 2 ... (Equation 94)
Ciphertext Enc (pk, Σ i = 0 to n-1 a j, i 2 ) = (c j, 2 , 0, c j, 2, 1 ) ... (Equation 95)
Suppose that

認証要求装置230は、照合補助装置240からチャレンジを受け取る(ステップF12)。 The authentication request device 230 receives a challenge from the verification assist device 240 (step F12).

次に、認証要求装置230における認証情報抽出部232は、認証対象の生体から生体情報(「認証ベクトル」と呼ぶ)
B=(b,…,bL−1) ・・・(式96)
を抽出する(ステップF13)。
Next, the authentication information extraction unit 232 in the authentication request device 230 receives biometric information (referred to as "authentication vector") from the living body to be authenticated.
B = (b 0 , ..., b L-1 ) ... (Equation 96)
Is extracted (step F13).

次に、認証要求装置230における第一レスポンス生成部233は、次の式97(上記式20)に従って生成される、認証ベクトルBの各i番目(i=0,…,L−1)の成分bの加法に関する逆元−bをN−i次の項の係数に持つ多項式
=−Σi=0〜n−1×xN−i ・・・(式97)
を生成する。
Next, the first response generation unit 233 in the authentication request device 230 is a component of each i-th (i = 0, ..., L-1) of the authentication vector B generated according to the following equation 97 (the above equation 20). polynomial with b i additivity about the inverse -b i of the coefficient of N-i following section f B = -Σ i = 0~n- 1 b i × x N-i ··· ( formula 97)
To generate.

ただし、多項式の次数がN以上となった場合には、
=−1、xN+1=−x、…
と置き換えることにより、多項式をN−1次以下にする。以下の計算においても同様に行う。
However, if the degree of the polynomial is N or more,
x N = -1, x N + 1 = -x, ...
By replacing with, the polynomial is made N-1th order or less. The same applies to the following calculations.

次に、ステップF12で受け取ったチャレンジC=(c3,0,c3,1)と、生成した多項式fと、に基づき、
4,0=f×c3,0 ・・・(式98−1)
4,1=f×c3,1 ・・・(式98−2)
を計算する。(c4,0,c4,1)を暗号文Cとする(ステップF14)。すなわち、Cは暗号化鍵pkによるr×x×fの暗号文である。C=(c4,0,c4,1)を「第一レスポンス」と呼ぶ。
Next, based on the challenge C 3 = (c 3,0 , c 3,1 ) received in step F12 and the generated polynomial f B.
c 4,0 = f B × c 3,0 ... (Equation 98-1)
c 4,1 = f B × c 3,1 ... (Equation 98-2)
To calculate. Let (c 4, 0, c 4 , 1) be the ciphertext C 4 (step F14). That is, C 4 is a ciphertext of r × x h × f B by the encryption key pk. C 4 = (c 4 , 0, c 4 , 1) is called the "first response".

次に、認証要求装置230における第二レスポンス生成部234は、認証ベクトルBの各成分の二乗和
Σi=0〜L−1 ・・・(式99)
を計算する。
Next, the authentication second response generator 234 of the requesting device 230, the authentication vector sum of squares Σ i = 0~L-1 b i 2 ··· ( wherein 99) of the respective components of B
To calculate.

次に、準備フェーズのステップA2において、検証装置250が公開した暗号化鍵pk=(λ,p,p)に含まれるパラメータσを用い、標準偏差がσであるN次元離散ガウス分布に従って3つのN−1次多項式uとgとfとを生成する。Next, in step A2 of the preparation phase, the parameter σ included in the encryption key pk = (λ, p 0 , p 1 ) disclosed by the verification device 250 is used, and the standard deviation is σ according to the N-dimensional discrete Gaussian distribution. three generates the N-1 order polynomial u 5 and g 5 and f 5.

次に、3つのN−1次多項式uとgとfと、暗号化鍵pkに含まれるt、p、pと、生成した値Σi=0〜L−1 と、に基づき、以下の二つの多項式、
5,0=p×u+t×g+(Σi=0〜L−1 ) ・・・(式100−1)
5,1=p×u+t×f ・・・(式100−2)
を計算する。(c5,0,c5,1)を暗号文Cとする(ステップF15)。すなわち、Cは暗号化鍵pkによる、Σi=0〜L−1
の暗号文である。ステップF15で計算した暗号文C=(c5,0,c5,1)を「第二レスポンス」と呼ぶ。
Then, the three N-1 order polynomial u 5 and g 5 and f 5, t contained in the encryption key pk, p 0, p 1 and the generated value Σ i = 0~L-1 b i 2 And based on the following two polynomials,
c 5,0 = p 0 × u 5 + t × g 5 + (Σ i = 0~L-1 b i 2) ··· ( Formula 100-1)
c 5,1 = p 1 × u 5 + t × f 5 ... (Equation 100-2)
To calculate. Let (c 5,0, c 5,1 ) be the ciphertext C 5 (step F15). That, C 5 depends on the encryption key pk, Σ i = 0~L-1 b i 2
Ciphertext. The ciphertext C 5 = (c 5 , 0, c 5, 1 ) calculated in step F15 is called a "second response".

次に、認証要求装置230におけるレスポンス生成部235は、第一レスポンスC=(c4,0,c4,1)と第二レスポンスC=(c5,0,c5,1)をまとめ、レスポンス(C,C)とする(ステップF16)。Next, the response generation unit 235 in the authentication request device 230 sets the first response C 4 = (c 4 , 0, c 4 , 1) and the second response C 5 = (c 5 , 0, c 5, 1 ). Conclusion, a response (C 4, C 5) and (step F16).

認証要求装置230は、上記レスポンス(C,C)を照合補助装置240に送付する(ステップF17)。The authentication request device 230 sends the above responses (C 4 , C 5 ) to the collation assisting device 240 (step F17).

次に、照合補助装置240は、認証要求装置230から上記レスポンス(C,C)を受け取る(ステップF18)。Next, verification auxiliary apparatus 240 receives the response from the authentication request device 230 (C 4, C 5) ( step F18).

次に、照合補助装置240における暗号化内積計算部244は、ステップF4で生成したチャレンジ補助(r,h)から、
−r−1×xN−h ・・・(式101)
を計算する。ただし、r−1はtを法として、
r×r−1=1 ・・・(式102)
を満たす、1以上t未満の整数である。
Next, the encryption inner product calculation unit 244 in the collation assisting device 240 starts from the challenge assist (r, h) generated in step F4.
−r -1 × x N−h・ ・ ・ (Equation 101)
To calculate. However, r -1 is modulo t.
r × r -1 = 1 (Equation 102)
It is an integer of 1 or more and less than t that satisfies.

次に、照合補助装置240における暗号化内積計算部244は、ステップF18で受け取ったレスポンス(C,C)に含まれる第一レスポンスC=(c4,0,c4,1)と、生成した−r−1×xN−hと、に基づき、
6,0=(−r−1×xN−h)×c4,0 ・・・(式103−1)
6,1=(−r−1×xN−h)×c4,1 ・・・(式103−2)
を計算する。
(c6,0,c6,1) ・・・(式104)
を暗号文Cとする。すなわち、Cは、暗号化鍵pkによる
(r×x×f)×(−r−1×xN−h)=f ・・・(式105)
の暗号文である。
Next, the encryption inner product calculation unit 244 in the collation assisting device 240 sets the first response C 4 = (c 4 , 0, c 4 , 1) included in the response (C 4 , C 5) received in step F18. , Based on the generated −r -1 × × N−h .
c 6,0 = (-r -1 x x N-h ) x c 4,0 ... (Equation 103-1)
c 6,1 = (-r -1 x x N-h ) x c 4, 1 ... (Equation 103-2)
To calculate.
(C 6,0 , c 6,1 ) ... (Equation 104)
It is referred to as ciphertext C 6. That is, C 6 is based on the encryption key pk (r × x h × f B ) × (−r -1 × x N−h ) = f B ... (Equation 105).
Ciphertext.

次に、照合補助装置240における暗号化内積計算部244は、各j(j=1,…,M)について、ステップF11で受け取ったM個の登録データのうち、
j番目の登録データ((Cj,1,Cj,2),id)に含まれる第一テンプレートCj,1=(cj,1,0,cj,1,1)と、
生成した暗号文C=(c6,0,c6,1)と、に基づき、
j,7,0=cj,1,0×c6,0 ・・・(式106−1)
j,7,1=cj,1,0×c6,1+cj,1,1×c6,0 ・・・(式106−2)
j,7,2=cj,1,1×c6,1 ・・・(式106−3)
を計算する。
Next, the encryption inner product calculation unit 244 in the collation assisting device 240 has, for each j (j = 1, ..., M), out of the M registered data received in step F11.
The first template C j, 1 = (c j, 1,0 , c j, 1, 1 ) included in the j-th registered data ((C j, 1 , C j, 2 ), id j),
Based on the generated ciphertext C 6 = (c 6,0 , c 6,1 )
c j, 7,0 = c j, 1,0 × c 6,0 ... (Equation 106-1)
c j, 7, 1 = c j, 1,0 × c 6,1 + c j, 1,1 × c 6,0 ... (Equation 106-2)
c j, 7, 2 = c j, 1,1 × c 6,1 ... (Equation 106-3)
To calculate.

各j(j=1,…,M)について、
(cj,7,0,cj,7,1,cj,7,2) ・・・(式107)
を暗号文Cj,7とする(ステップF19)。すなわち、各j(j=1,…,M)について、Cj,7は暗号化鍵pkによるfA,j×fの暗号文である。
For each j (j = 1, ..., M)
(C j, 7, 0, c j, 7, 1 , c j, 7, 2 ) ... (Equation 107)
Is the ciphertext C j, 7 (step F19). That is, for each j (j = 1, ..., M), C j and 7 are ciphertexts of f A and j × f B by the encryption key pk.

各j(j=1,…,M)について、計算した暗号文Cj,7=(cj,7,0,cj,7,1,cj,7,2)を「暗号化内積」と呼ぶ。Each j (j = 1, ..., M) for the calculated ciphertext C j, 7 = (c j , 7,0, c j, 7,1, c j, 7,2) "Encryption inner product" Called.

なお、前述の通り、各j(j=1,…,M)について、fA,j×fの定数項は登録ベクトルAと認証ベクトルBとの内積<A,B>=Σi=0〜n−1j,i×bと等しい。Incidentally, as described above, each of j (j = 1, ..., M) for, f A, inner product of the constant term of the j × f B is the registered vectors A j and an authentication vector B <A j ,B> = Σ i = 0~n-1 a j, equal to i × b i.

次に、照合補助装置240におけるクエリ生成部245は、各j(j=1,…,M)について、
・ステップF11で受け取ったM個の登録データのうち、
j番目の登録データ((Cj,1,Cj,2),id)に含まれる第二テンプレート
j,2=(cj,2,0,cj,2,1)と、
・ステップF18で受け取ったレスポンス(C,C)に含まれる第二レスポンスC=(c5,0,c5,1)と、
・ステップF19で生成したj番目の暗号化内積Cj,7=(cj,7,0,cj,7,1,cj,7,2)と、に基づき、
j,8,0=cj,2,0+c5,0+−2×cj,7,0 ・・・(式108−1)
j,8,1=cj,2,1+c5,1−2×cj,7,1 ・・・(式108−2)
j,8,2=−2×cj,7,2 ・・・(式108−3)
を計算する。
Next, the query generation unit 245 in the collation assisting device 240 describes each j (j = 1, ..., M).
-Of the M registered data received in step F11,
The second template C j, 2 = (c j, 2,0 , c j, 2, 1 ) included in the j-th registered data ((C j, 1 , C j, 2 ), id j), and
-The second response C 5 = (c 5 , 0, c 5, 1 ) included in the response (C 4 , C 5) received in step F18,
-Based on the j-th encrypted inner product C j, 7 = (c j, 7 , 0, c j, 7, 1, c j, 7, 2 ) generated in step F19.
c j, 8,0 = c j, 2,0 + c 5,0 + -2 × c j, 7,0 ... (Equation 108-1)
c j, 8, 1 = c j, 2, 1 + c 5 , 1-2 × c j, 7, 1 ... (Equation 108-2)
c j, 8, 2 = -2 × c j, 7, 2 ... (Equation 108-3)
To calculate.

各j(j=1,…,M)について、(cj,8,0,cj,8,1,cj,8,2)を暗号文Cj,8とする(ステップF20)。For each j (j = 1, ..., M), let (c j, 8 , 0, c j, 8 , 1, c j, 8, 2 ) be the ciphertext C j, 8 (step F20).

すなわち、各j(j=1,…,M)について、Cj,8は、暗号化鍵pkによる
(Σi=0〜n−1j,i )+(Σi=0〜n−1 )−2×fA,j×f
・・・(式109)
の暗号文である。
That is, for each j (j = 1, ..., M), C j, 8 is based on the encryption key pk (Σ i = 0 to n-1 a j, i 2 ) + (Σ i = 0 to n−). 1 b i 2) -2 × f A, j × f B
... (Equation 109)
Ciphertext.

各j(j=1,…,M)について、計算した暗号文
j,8=(cj,8,0,cj,8,1,cj,8,2) ・・・(式110)
を「クエリ」と呼ぶ。
For each j (j = 1, ..., M), the calculated ciphertext C j, 8 = (c j, 8 , 0, c j, 8 , 1, c j, 8, 2 ) ... (Equation 110) )
Is called a "query".

なお、前述の通り、各j(j=1,…,M)について、fA,j×fの定数項は登録ベクトルAと認証ベクトルBとの内積<A,B>=Σi=0〜n−1j,i×bと等しい。Incidentally, as described above, each of j (j = 1, ..., M) for, f A, inner product of the constant term of the j × f B is the registered vectors A j and an authentication vector B <A j ,B> = Σ i = 0~n-1 a j, equal to i × b i.

したがって、各j(j=1,…,M)について、Cj,8は登録ベクトルAと認証ベクトルBとのユークリッド距離d(A,B)を定数項に持つ多項式の暗号文である。Therefore, for each j (j = 1, ..., M), C j, 8 is a polynomial ciphertext having the Euclidean distance d E (A j , B) between the registration vector A j and the authentication vector B as a constant term. be.

次に、照合補助装置240における検証データ生成部246は、各j(j=1,…,M)について、
・ステップF11で受け取ったM個の登録データのうち、j番目の登録データに含まれる第二テンプレートを用いて、ステップF20で生成したクエリCj,8=(cj,8,0,cj,8,1,cj,8,2)と、
・ステップF11で受け取ったM個の登録データのうち、j番目の登録データに含まれる登録識別子idと、を、
j番目の検証データ(Cj,8,id)とする(ステップF21)。
Next, the verification data generation unit 246 in the collation assisting device 240 describes each j (j = 1, ..., M).
-Query C j, 8 = (c j, 8 , 0, c j) generated in step F20 using the second template included in the j-th registered data among the M registered data received in step F11. , 8, 1 , c j, 8, 2 ),
-Of the M registration data received in step F11, the registration identifier id j included in the j-th registration data,
Let it be the j-th verification data (C j, 8 , id j ) (step F21).

次に、照合補助装置240は、M個の検証データを検証装置250に送付する(ステップF22)。 Next, the collation assisting device 240 sends M verification data to the verification device 250 (step F22).

次に、検証装置250は、照合補助装置240からM個の検証データを受け取る(ステップF23)。 Next, the verification device 250 receives M verification data from the verification auxiliary device 240 (step F23).

検証装置250におけるクエリ検証部253は、各j(j=1,…,M)について、
・ステップF23で受け取ったM個の検証データのうち、j番目の検証データ(Cj,8,id)に含まれるクエリCj,8=(cj,8,0,cj,8,1,cj,8,2)と、
・秘密鍵(復号鍵)sk=(λ,p,p,s)と、に基づき、
j,1=cj,8,0+cj,8,1×s+cj,8,2×s ・・・(式111)
を計算する。
The query verification unit 253 in the verification device 250 describes each j (j = 1, ..., M).
-Of the M verification data received in step F23, the query C j, 8 = (c j, 8 , 0, c j, 8, ) included in the j-th verification data (C j, 8 , id j). 1 , c j, 8, 2 ) and
-Based on the private key (decryption key) sk = (λ, p 0 , p 1 , s)
D j, 1 = c j, 8,0 + c j, 8,1 x s + c j, 8,2 x s 2 ... (Equation 111)
To calculate.

次に、各j(j=1,…,M)について、Dj,1をqで割った余りを、Dj,2とする。Next, for each j (j = 1, ..., M), the remainder obtained by dividing D j, 1 by q is defined as D j, 2 .

次に、各j(j=1,…,M)について、Dj,2がq/2以上であればDj,3=Dj,2−qとする。Dj,2がq/2より小さければDj,3=Dj,2とする。これは、Dのqを法とした[−q/2,q/2)への剰余演算である。Next, for each j (j = 1, ..., M), if D j, 2 is q / 2 or more, then D j, 3 = D j, 2- q. If D j, 2 is smaller than q / 2, then D j, 3 = D j, 2 . This is a modulo operation on [−q / 2, q / 2] modulo q of D.

次に、各j(j=1,…,M)について、Dj,3をtで割った余りの多項式をDj,4とする。Dj,4の定数項を、Dj,5とする(ステップF24)。各j(j=1,…,M)について、Dj,5を「検証結果」と呼ぶ。Next, for each j (j = 1, ..., M), let D j, 4 be the remainder polynomial obtained by dividing D j, 3 by t. Let the constant term of D j, 4 be D j, 5 (step F24). For each j (j = 1, ..., M), D j, 5 is called a "verification result".

前述の通り、各j(j=1,…,M)について、M個の検証データのうちj番目の検証データから生成されたDは、登録ベクトルAと認証ベクトルBとのユークリッド距離d(A,B)である。As described above, for each j (j = 1, ..., M), D 5 generated from the j-th verification data among the M verification data is the Euclidean distance d between the registration vector A j and the authentication vector B. E ( Aj , B).

次に、検証装置250における照合結果生成部254は、各j(j=1,…,M)について、M個の検証データのうち、
・j番目の検証データに含まれるクエリに基づき、ステップF24で生成した検証結果Dj,5と、
・j番目の検証データに含まれる登録識別子idと、をまとめ、j番目の照合結果(Dj,5,id)とする。あるいは、検証装置250における照合結果生成部254は、各j(j=1,…,M)について、M個の検証データのうち、
・j番目の検証データに含まれるクエリからステップF24で生成した検証結果idと、あらかじめ定められた閾値との大小を比較した結果dと、
・j番目の検証データに含まれる登録識別子idと、をまとめ、j番目の照合結果(d,id)としてもよい(ステップF25)。
Next, the collation result generation unit 254 in the verification device 250 has out of M verification data for each j (j = 1, ..., M).
-Based on the query included in the j-th verification data, the verification results Dj , 5 generated in step F24 and
-The registration identifier id j included in the j-th verification data is combined and used as the j-th collation result (D j, 5 , id j ). Alternatively, the collation result generation unit 254 in the verification device 250 has, for each j (j = 1, ..., M), out of M verification data.
-The result of comparing the magnitude of the verification result id j generated in step F24 from the query included in the j-th verification data with the predetermined threshold value, and the result d j .
-The registration identifier id j included in the j-th verification data may be combined and used as the j-th collation result ( dj , id j ) (step F25).

検証装置250は、算出したM個の照合結果を出力する(ステップF26)。 The verification device 250 outputs the calculated M collation results (step F26).

なお、第4の例示的な実施形態に係る暗号文照合システム200が認証フェーズにて実行する処理は、図8に例示された様態に限定されない。例えば、ステップF5に先だってステップF9からステップF13が実行されてもよい。 The process executed by the ciphertext verification system 200 according to the fourth exemplary embodiment in the authentication phase is not limited to the mode illustrated in FIG. For example, steps F9 to F13 may be executed prior to step F5.

第4の例示的な実施形態に係る暗号文照合システム200の上記の説明において、登録要求装置210における第一テンプレート生成部212がステップB2において生成する多項式fは、登録ベクトルAに基づき上記式20に従って生成される多項式であるとし、認証要求装置130における第一レスポンス生成部233がステップC16において生成する多項式fは、認証ベクトルに基づき上記式21に従って生成される多項式であるとした。In the above description of the ciphertext matching system 200 according to the fourth exemplary embodiment, the polynomial f A generated by the first template generation unit 212 in the registration requesting device 210 in step B2 is based on the registration vector A. It is assumed that the polynomial is generated according to 20 and that the polynomial f B generated by the first response generation unit 233 in the authentication requesting device 130 in step C16 is a polynomial generated according to the above equation 21 based on the authentication vector.

第4の例示的な実施形態における二つの多項式の生成方法は、上記の方法に限らない。例えば、登録要求装置210における第一テンプレート生成部212がステップB2において生成する多項式fを、登録ベクトルAに基づき上記式21に従って生成される多項式とし、認証要求装置230における第一レスポンス生成部233がステップF16において生成する多項式fを、認証ベクトルに基づき上記式20に従って生成される多項式としてもよい。
[効果の説明]
The method of generating the two polynomials in the fourth exemplary embodiment is not limited to the above method. For example, a polynomial f A of the first template generation unit 212 in the registration request unit 210 is generated in step B2, the polynomial generated according to the formula 21 based on the registration vector A, the first response generator 233 of the authentication requesting device 230 The polynomial f B generated in step F16 may be a polynomial generated according to the above equation 20 based on the authentication vector.
[Explanation of effect]

次に、第4の例示的な実施形態に係る暗号文照合システム200に関する効果について説明する。 Next, the effect of the ciphertext verification system 200 according to the fourth exemplary embodiment will be described.

第4の例示的な実施形態に係る暗号文照合システム200によれば、認証を要求するユーザが、自身の識別子を提示せず、登録された全ての情報と、認証に用いられる情報の照合を行う、1:N認証を安全に実現することが可能である。すなわち、次の2つの効果を有する。 According to the ciphertext verification system 200 according to the fourth exemplary embodiment, the user requesting authentication collates all the registered information with the information used for authentication without presenting his / her own identifier. It is possible to safely realize 1: N authentication. That is, it has the following two effects.

第4の例示的な実施形態に係る暗号文照合システム200によれば、登録要求装置210が抽出した登録ベクトルは、登録要求装置210上で暗号化され、記憶装置220に送られる。また、認証要求装置230が抽出した認証ベクトルは、認証要求装置230上で暗号化され、照合補助装置240に送られる。これらの暗号文を復号できるのは、復号鍵を持つ検証装置250であるが、検証装置250の受け取るデータは登録ベクトルと認証ベクトルの間のユークリッド距離の暗号文であり、登録ベクトルや認証ベクトルの値を開示しない。 According to the ciphertext verification system 200 according to the fourth exemplary embodiment, the registration vector extracted by the registration request device 210 is encrypted on the registration request device 210 and sent to the storage device 220. Further, the authentication vector extracted by the authentication request device 230 is encrypted on the authentication request device 230 and sent to the verification auxiliary device 240. It is the verification device 250 that has the decryption key that can decrypt these ciphertexts, but the data received by the verification device 250 is the ciphertext of the Euclidean distance between the registration vector and the authentication vector, and the registration vector and the authentication vector Do not disclose the value.

したがって、第4の例示的な実施形態に係る暗号文照合システム200によれば、それぞれのベクトルを抽出する装置以外の装置に登録ベクトルと認証ベクトルの距離以外の値を漏洩せず、登録ベクトルと認証ベクトルの間の距離を算出することが可能である。 Therefore, according to the ciphertext verification system 200 according to the fourth exemplary embodiment, the value other than the distance between the registration vector and the authentication vector is not leaked to the device other than the device that extracts each vector, and the registration vector and the registration vector are used. It is possible to calculate the distance between the authentication vectors.

また、第4の例示的な実施形態に係る暗号文照合システム200によれば、同じ登録ベクトルとの認証を行う際であっても、ステップC5で選ばれた乱数を用いた処理が行われる。したがって、照合処理の通信内容が漏洩したとしても、漏洩した内容を再送したり、漏洩した内容を利用して作成したデータを送付したりすることによって、漏洩した照合時の距離と等しい距離を算出させたり、小さい値を算出させたりすることができない。 Further, according to the ciphertext verification system 200 according to the fourth exemplary embodiment, even when authenticating with the same registration vector, the process using the random number selected in step C5 is performed. Therefore, even if the communication content of the collation process is leaked, the distance equal to the distance at the time of the leaked collation is calculated by resending the leaked content or sending the data created by using the leaked content. It is not possible to make it or calculate a small value.

特に、第4の例示的な実施形態に係る暗号文照合システム200を、距離が閾値より小さいときに「受理」とする認証に利用する場合、登録ベクトルを知らない攻撃者が「受理」とされない性質、すなわちなりすまし攻撃への耐性を有する。 In particular, when the ciphertext verification system 200 according to the fourth exemplary embodiment is used for authentication to be "accepted" when the distance is smaller than the threshold value, an attacker who does not know the registration vector is not regarded as "accepted". It has the property of being resistant to spoofing attacks.

さらに、第4の例示的な実施形態に係る暗号文照合システム200は、高速な処理が可能な暗号方式である非特許文献1に記載された暗号方式を用いて構成される。そのため、高速な照合処理が可能である。 Further, the ciphertext verification system 200 according to the fourth exemplary embodiment is configured by using the ciphertext described in Non-Patent Document 1, which is a ciphertext capable of high-speed processing. Therefore, high-speed collation processing is possible.

さらに、第4の例示的な実施形態に係る暗号文照合システム200では、復号鍵を持つ検証装置250に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しないように変形可能である。例えば、非特許文献4に記載された方式と同じ方法を適用することにより、復号鍵を持つ検証装置250が、登録ベクトルと認証ベクトルの間のユークリッド距離を算出できない方式に変形できる。復号鍵を持つ検証装置250に対して、登録ベクトルと認証ベクトルの間のユークリッド距離を開示しない方式は、特別な状況下においても復号鍵を持つ検証装置250が登録ベクトルの値を算出することを防ぐことができる。このため、より高い安全性を達成できる。 Further, the ciphertext verification system 200 according to the fourth exemplary embodiment can be modified so as not to disclose the Euclidean distance between the registration vector and the authentication vector to the verification device 250 having the decryption key. For example, by applying the same method as that described in Non-Patent Document 4, the verification device 250 having a decryption key can be transformed into a method in which the Euclidean distance between the registration vector and the authentication vector cannot be calculated. The method of not disclosing the Euclidean distance between the registration vector and the authentication vector to the verification device 250 having the decryption key means that the verification device 250 having the decryption key calculates the value of the registration vector even under special circumstances. Can be prevented. Therefore, higher safety can be achieved.

特に制限されるものではないが、本発明の適用例として、例えば、特徴量として多値ベクトルを用いる生体認証が挙げられる。 Although not particularly limited, as an application example of the present invention, for example, biometric authentication using a multi-valued vector as a feature amount can be mentioned.

例えば登録フェーズにおける入力データと、照合フェーズにおける入力データを、指紋や静脈などから取得した生体情報から得られた生体情報(特徴ベクトル)とする。この場合、本発明を適用することで、生体情報を秘匿したまま、記憶装置に格納された暗号化された生体データと、照合要求装置から創出された暗号化された生体データが同一人物から採取されたものであるか否かを、2つの生体情報の間の距離が閾値以下となるかどうかにより判定することが可能となる。 For example, the input data in the registration phase and the input data in the collation phase are biometric information (feature vector) obtained from biometric information acquired from fingerprints, veins, or the like. In this case, by applying the present invention, the encrypted biometric data stored in the storage device and the encrypted biometric data created from the collation requesting device are collected from the same person while keeping the biometric information secret. It is possible to determine whether or not the information has been obtained based on whether or not the distance between the two biometric information is equal to or less than the threshold value.

特に、生体情報は、常に安定して同一のデータが取得できるわけではないことが知られており、同じ人物から取得されるデータが類似している(各要素の距離が小さいデータが取得できる)と仮定することができる。このため、本発明は、生体認証等への活用に有用である。 In particular, it is known that the same data cannot always be stably acquired for biometric information, and the data acquired from the same person are similar (data with a small distance between elements can be acquired). Can be assumed. Therefore, the present invention is useful for utilization in biometric authentication and the like.

なお、上記の非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。 The disclosures of the above non-patent documents shall be incorporated into this document by citation. Within the framework of the entire disclosure (including the scope of claims) of the present invention, it is possible to change or adjust the embodiments or examples based on the basic technical idea thereof. Further, various combinations or selections of various disclosure elements (including each element of each claim, each element of each embodiment, each element of each drawing, etc.) are possible within the scope of the claims of the present invention. .. That is, it goes without saying that the present invention includes all disclosure including claims, and various modifications and modifications that can be made by those skilled in the art in accordance with the technical idea.

100、200 暗号文照合システム
110、210 登録要求装置
111、211 登録情報抽出部
112、212 第一テンプレート生成部
113、213 第二テンプレート生成部
114、214 テンプレート生成部
120、220 記憶装置
121、221 識別子付与部
122、222 登録データ生成部
123、223 登録データ記憶部
124 登録データ検索部
130、230 認証要求装置
131、231 認証要求生成部
132、232 認証情報抽出部
133、233 第一レスポンス生成部
134、234 第二レスポンス生成部
135、235 レスポンス生成部
140、240 照合補助装置
141、241 チャレンジ補助生成部
142、242 チャレンジ生成部
143、243 登録データ要求生成部
144、244 暗号化内積計算部
145、245 クエリ生成部
150、250 検証装置
151、251 鍵生成部
152、252 復号鍵記憶部
153、253 クエリ検証部
154、254 照合結果生成部
246 検証データ生成部
100, 200 Ciphertext verification system 110, 210 Registration request device 111, 211 Registration information extraction unit 112, 212 First template generation unit 113, 213 Second template generation unit 114, 214 Template generation unit 120, 220 Storage device 121, 221 Identifier assignment unit 122, 222 Registration data generation unit 123, 223 Registration data storage unit 124 Registration data search unit 130, 230 Authentication request device 131, 231 Authentication request generation unit 132, 232 Authentication information extraction unit 133, 233 First response generation unit 134, 234 Second response generation unit 135, 235 Response generation unit 140, 240 Verification assistance device 141, 241 Challenge assistance generation unit 142, 242 Challenge generation unit 143, 243 Registration data request generation unit 144, 244 Encryption inner product calculation unit 145 , 245 Query generation unit 150, 250 Verification device 151, 251 Key generation unit 152, 252 Decryption key storage unit 153, 253 Query verification unit 154, 254 Verification result generation unit 246 Verification data generation unit

Claims (7)

登録要求装置と、照合補助装置と、認証要求装置と、検証装置とを含み、
前記検証装置は、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開し、
前記登録要求装置は、
数値ベクトルである登録情報を多項式化し、
多項式化した前記登録情報を、前記暗号化鍵を用いて暗号化し、
前記照合補助装置は、
前記認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした項式を生成し、
前記項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求装置に送付し、
前記認証要求装置は、
数値ベクトルである認証情報を多項式化し、
多項式化した前記認証情報と、前記照合補助装置からの前記チャレンジと、に基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の暗号文を算出し、
多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の前記暗号文を、レスポンスとして、前記照合補助装置に送付し、
前記照合補助装置は、
前記認証要求装置から前記レスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、前記登録要求装置で暗号化された前記登録情報とに基づき、前記暗号化鍵を用いて、前記登録情報と前記認証情報の距離の暗号文を算出し、
前記登録情報と前記認証情報の距離の前記暗号文を前記検証装置に送付し、
前記検証装置は、
前記照合補助装置から受け取った、前記登録情報と前記認証情報の距離の前記暗号文を、前記復号鍵を用いて復号して前記距離を算出し、
算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力し、
前記登録要求装置が、前記数値ベクトルである登録情報の第i成分(ただし、iはL−1以下の非負整数、Lは2以上の正整数)をi次の項の係数とするL−1次多項式を生成し、前記認証要求装置が、前記数値ベクトルである認証情報の第i成分の逆元をN−i次(ただし、NはLより大の正整数)の項の係数とするN次多項式を生成するか、あるいは、
前記登録要求装置が、前記数値ベクトルである登録情報の第i成分(ただし、iはL−1以下の非負整数、Lは2以上の正整数)の逆元をN−i次(ただし、NはLより大の正整数)の項の係数とするN次多項式を生成し、前記認証要求装置が、前記数値ベクトルである認証情報の第i成分をi次の項の係数とするL−1次多項式を生成する、ことを特徴とする暗号文照合システム。
Including a registration request device, a verification auxiliary device, an authentication request device, and a verification device,
The verification device calculates a pair of an encryption key and a decryption key of a homomorphic encryption method capable of polynomial operations, and publishes the encryption key.
The registration request device is
Polynomialize the registered information, which is a numerical vector,
The polynomialized registration information is encrypted using the encryption key,
The collation assisting device is
Upon receiving the authentication request from the authentication request device, one factor of the order selected at random, to generate a single term equation where the coefficients other than the coefficient of the order is set to 0,
The single-term equation, send a challenge consisting of ciphertext encrypted by using the encryption key to the authentication request device,
The authentication requesting device is
Polynomialize the authentication information, which is a numerical vector,
A polynomial of the said authentication information, based on the the challenge, from the verification auxiliary apparatus, using the encryption key, the used for generating the polynomial of the said authentication information challenge the single term formula Calculate the ciphertext of the product,
The ciphertext of the product of the polynomial of the said authentication information used for the generation of the challenge the single section type, as a response, and sent to the verification auxiliary apparatus,
The collation assisting device is
When receiving the response from the authentication request device, using the a response, the one coefficient and the challenge auxiliary consisting of its degree, based on said registration information encrypted by the registration request unit, the encryption key Then, the ciphertext of the distance between the registration information and the authentication information is calculated.
The ciphertext of the distance between the registration information and the authentication information is sent to the verification device.
The verification device is
It said received from the verification auxiliary apparatus, the ciphertext of the distance of the authentication information and the registration information, and calculates the distance and decrypted using the decryption key,
The calculated distance or the comparison result between the distance and a predetermined threshold value is output as a collation result .
The registration requesting device uses the i-th component (where i is a non-negative integer of L-1 or less and L is a positive integer of 2 or more) of the registration information which is the numerical vector as the coefficient of the i-order term. An order polynomial is generated, and the authentication requesting device uses the inverse element of the i-th component of the authentication information, which is the numerical vector, as a coefficient of a term of N-th order (where N is a positive integer larger than L). Generate an order integer or
The registration requesting device sets the inverse element of the i-th component (where i is a non-negative integer of L-1 or less and L is a positive integer of 2 or more) of the registration information which is the numerical vector to N-i order (however, N). Is a positive integer greater than L), and the N-th order polymorphic element is generated. A cryptographic matching system characterized by generating an order integer.
記憶装置をさらに含み、
前記記憶装置は、
記憶部と、
前記登録要求装置から受け取った、暗号化された前記登録情報に対して識別子を付与する識別子付与部と、
暗号化された前記登録情報と前記識別子との組からなる登録データを前記記憶部に格納する登録データ生成部と、
前記照合補助装置からの登録データ要求を受け、前記記憶部に記憶されている前記登録データの中から、前記登録データ要求に含まれる識別子と組とされている、暗号化された登録情報を、前記照合補助装置に送付する登録データ検索部と、
を備え、
前記照合補助装置は、
前記認証要求装置から受け取った認証要求に含まれ、前記認証情報に対応する認証識別子を含む登録データ要求を前記記憶装置に送付し、
前記記憶装置から、前記認証識別子に対応する暗号化された前記登録情報を受け取り、
前記認証要求装置から受け取った前記レスポンスと、前記チャレンジ補助と、前記記憶装置から受け取った暗号化された前記登録情報とに基づき、前記登録情報と前記認証情報の距離の暗号文を算出する、ことを特徴とする請求項1に記載の暗号文照合システム。
Including additional storage
The storage device is
Memory and
An identifier assigning unit that assigns an identifier to the encrypted registration information received from the registration requesting device,
A registration data generation unit that stores registration data consisting of a set of encrypted registration information and an identifier in the storage unit, and a registration data generation unit.
Upon receiving the registration data request from the collation assisting device, the encrypted registration information, which is paired with the identifier included in the registration data request, is obtained from the registration data stored in the storage unit. The registration data search unit to be sent to the verification assist device and
With
The collation assisting device is
A registration data request included in the authentication request received from the authentication request device and including the authentication identifier corresponding to the authentication information is sent to the storage device.
Upon receiving the encrypted registration information corresponding to the authentication identifier from the storage device,
The ciphertext of the distance between the registration information and the authentication information is calculated based on the response received from the authentication request device, the challenge assistance, and the encrypted registration information received from the storage device. The ciphertext verification system according to claim 1, wherein the ciphertext verification system is characterized.
記憶装置をさらに含み、
前記記憶装置は、
記憶部と、
前記登録要求装置から受け取った、暗号化された前記登録情報に対して識別子を付与する識別子付与部と、
暗号化された前記登録情報に前記識別子との組からなる登録データを前記記憶部に格納する登録データ生成部と、
を備え、
前記照合補助装置からの登録データ要求を受け、前記記憶部に格納されている一つ又は複数の登録データのうち、一部又はすべての登録データを、前記照合補助装置に送信し、
前記照合補助装置は、
前記記憶装置から、一つ又は複数の登録データを受け取り、
前記記憶装置から受け取った各登録データについて、
前記認証要求装置から受け取った前記レスポンスと、前記チャレンジと、前記登録データに含まれる暗号化された登録情報とに基づき、暗号化された前記登録情報と前記認証情報の距離の暗号文を算出し、
前記登録データについて、算出した前記登録情報と前記認証情報の距離の暗号文と、前記登録データに含まれる識別子との組を検証データとし、
生成した一つ又は複数の前記検証データを前記検証装置に送付し、
前記検証装置は、
前記照合補助装置から、一つ又は複数の前記検証データを受け取り、
前記検証データについて、
前記検証データに含まれる、前記登録情報と前記認証情報の距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、
算出した前記距離と予め定められた閾値との比較結果、又は、算出した前記距離と前記検証データに含まれる識別子との組を、照合結果とし、前記照合結果を出力する、ことを特徴とする請求項1に記載の暗号文照合システム。
Including additional storage
The storage device is
Memory and
An identifier assigning unit that assigns an identifier to the encrypted registration information received from the registration requesting device,
A registration data generation unit that stores registration data consisting of a set of the encrypted registration information and the identifier in the storage unit, and a registration data generation unit.
With
In response to the registration data request from the collation assisting device, a part or all of the registration data of one or more registration data stored in the storage unit is transmitted to the collation assisting device.
The collation assisting device is
Receive one or more registration data from the storage device
For each registered data received from the storage device
Based on the response received from the authentication requesting device, the challenge, and the encrypted registration information included in the registration data, a ciphertext of the distance between the encrypted registration information and the authentication information is calculated. ,
For the registration data, a set of a ciphertext of the calculated distance between the registration information and the authentication information and an identifier included in the registration data is used as verification data.
The generated one or more of the verification data is sent to the verification device, and the generated verification data is sent to the verification device.
The verification device is
Receive one or more of the verification data from the collation aid,
Regarding the verification data
The ciphertext of the distance between the registration information and the authentication information included in the verification data is decrypted using the decryption key to calculate the distance.
A comparison result of the calculated distance and a predetermined threshold value or a set of the calculated distance and an identifier included in the verification data is used as a collation result, and the collation result is output. The ciphertext verification system according to claim 1.
少なくとも一つのコンピュータによる暗号文照合方法であって、
検証処理が、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開し、
登録要求処理では、登録情報の登録にあたり、
数値ベクトルである登録情報を多項式化し、
多項式化した前記登録情報を、前記暗号化鍵を用いて暗号化し、
照合補助処理では、
認証要求処理から認証要求を受けると、一つの係数とその次数をランダムに選択し、
前記次数の係数以外の係数を0とした項式を生成し、
前記項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求処理に送付し、
前記認証要求処理では、
数値ベクトルである認証情報を多項式化し、
多項式化した前記認証情報と、前記照合補助処理からの前記チャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の暗号文を算出し、
多項式化した前記認証情報と前記チャレンジの生成に用いられた前記項式との積の前記暗号文を、レスポンスとして、前記照合補助処理に送付し、
前記照合補助処理では、
前記認証要求処理から前記レスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、暗号化された前記登録情報とに基づき、前記暗号化鍵を用いて、前記登録情報と前記認証情報の距離の暗号文を算出し、
前記登録情報と前記認証情報の距離の前記暗号文を前記検証処理に送付し、
前記検証処理では、
前記照合補助処理から受け取った、前記登録情報と前記認証情報の距離の前記暗号文を、前記復号鍵を用いて復号して前記距離を算出し、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力し、
前記登録要求処理では、前記数値ベクトルである登録情報の第i成分(ただし、iはL−1以下の非負整数、Lは2以上の正整数)をi次の項の係数とするL−1次多項式を生成し、前記認証要求処理では、前記数値ベクトルである認証情報の第i成分の逆元をN−i次(ただし、NはLより大の正整数)の項の係数とするN次多項式を生成するか、あるいは、
前記登録要求処理では、前記数値ベクトルである登録情報の第i成分(ただし、iはL−1以下の非負整数、Lは2以上の正整数)の逆元をN−i次(ただし、NはLより大の正整数)の項の係数とするN次多項式を生成し、前記認証要求処理では、前記数値ベクトルである認証情報の第i成分をi次の項の係数とするL−1次多項式を生成する、ことを特徴とする暗号文照合方法。
Ciphertext verification method by at least one computer
The verification process calculates a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operations, and publishes the encryption key.
In the registration request processing, when registering registration information,
Polynomialize the registered information, which is a numerical vector,
The polynomialized registration information is encrypted using the encryption key,
In collation assistance processing,
When an authentication request is received from the authentication request processing , one coefficient and its order are randomly selected.
The coefficients other than the coefficient of the order to generate the 0 and the single section type,
The single-term equation, send a challenge consisting of ciphertext encrypted by using the encryption key to the authentication request processing,
In the authentication request processing ,
Polynomialize the authentication information, which is a numerical vector,
A polynomial of the said authentication information, based on said challenge from said verification auxiliary processing, using the encryption key, the product of the single term expression used for the generation of the polynomial of the said authentication information challenge Calculate the ciphertext of
The ciphertext of the product of the polynomial of the said authentication information used for the generation of the challenge the single section type, as a response, and sent to the verification auxiliary processing,
In the collation assistance process,
When receiving the response from the authentication request processing, using the the response, the one coefficient and the challenge auxiliary consisting of its degree, based on said registration information encrypted, the encryption key, said registration information and calculates the ciphertext of length of the authentication information,
Send the ciphertext of the distance of the authentication information and the registration information to the verification process,
In the verification process ,
Received from the verification auxiliary processing, the ciphertext of the distance of the authentication information and the registration information, and decrypted using the decryption key to calculate the distance, calculated the distance or predetermined and the distance The comparison result with the threshold value is output as the collation result .
In the registration request processing, the i-th component of the registration information which is the numerical vector (where i is a non-negative integer of L-1 or less and L is a positive integer of 2 or more) is used as the coefficient of the i-order term. An order polynomial is generated, and in the authentication request processing, the inverse element of the i-th component of the authentication information, which is the numerical vector, is set as the coefficient of the term of the N-i order (where N is a positive integer larger than L). Generate an order integer or
In the registration request processing, the inverse element of the i-th component (where i is a non-negative integer of L-1 or less and L is a positive integer of 2 or more) of the registration information which is the numerical vector is N-i order (however, N). Is a positive integer greater than L), and an Nth-order polymorphic element is generated. A cryptographic text matching method characterized by generating an order integer.
登録要求処理と、Registration request processing and
照合補助処理と、 Collation assistance processing and
認証要求処理と、 Authentication request processing and
検証処理と、 Verification process and
をコンピュータに実行させるプログラムであって、 Is a program that causes a computer to execute
前記検証処理が、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開し、The verification process calculates a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operations, and publishes the encryption key.
前記登録要求処理では、登録情報の登録にあたり、 In the registration request processing, when registering registration information,
数値ベクトルである登録情報を多項式化し、多項式化した前記登録情報を、前記暗号化鍵を用いて暗号化し、 The registration information, which is a numerical vector, is polynomialized, and the polynomialized registration information is encrypted using the encryption key.
前記照合補助処理では、 In the collation assistance process,
前記認証要求処理から、認証要求を受けると、一つの係数とその次数をランダムに選択し、前記次数の係数以外の係数を0とした単項式を生成し、前記単項式を、前記暗号化鍵を用いて暗号化した暗号文からなるチャレンジを前記認証要求処理に送付し、 When an authentication request is received from the authentication request processing, one coefficient and its order are randomly selected, a monomial expression in which a coefficient other than the coefficient of the order is set to 0 is generated, and the monomial expression is used with the encryption key. A challenge consisting of the encrypted text is sent to the authentication request processing.
前記認証要求処理では、 In the authentication request processing,
数値ベクトルである認証情報を多項式化し、多項式化した前記認証情報と、前記照合補助処理からの前記チャレンジとに基づき、前記暗号化鍵を用いて、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記単項式との積の暗号文を算出し、多項式化した前記認証情報と前記チャレンジの生成に用いられた前記単項式との積の前記暗号文を、レスポンスとして、前記照合補助処理に送付し、 Based on the polynomialized authentication information obtained by polynomializing the authentication information which is a numerical vector and the challenge from the collation assisting process, the encryption key is used to generate the polynomialized authentication information and the challenge. The ciphertext of the product of the mononomial expression used is calculated, and the ciphertext of the product of the polynomialized authentication information and the mononomial expression used for generating the challenge is sent to the collation assistance process as a response. death,
前記照合補助処理では、 In the collation assistance process,
前記認証要求処理から前記レスポンスを受け取ると、前記レスポンスと、前記一つの係数とその次数からなるチャレンジ補助と、暗号化された前記登録情報とに基づき、前記暗号化鍵を用いて、前記登録情報と前記認証情報の距離の暗号文を算出し、前記登録情報と前記認証情報の距離の前記暗号文を、前記検証処理に送付し、 When the response is received from the authentication request processing, the registration information is used using the encryption key based on the response, the challenge assistance consisting of the one coefficient and its order, and the encrypted registration information. And the ciphertext of the distance of the authentication information is calculated, and the ciphertext of the distance between the registration information and the authentication information is sent to the verification process.
前記検証処理では、 In the verification process,
前記照合補助処理から受け取った、前記登録情報と前記認証情報の距離の前記暗号文を、前記復号鍵を用いて復号して前記距離を算出し、算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力し、 The ciphertext of the distance between the registration information and the authentication information received from the collation assistance process is decrypted using the decryption key to calculate the distance, and the calculated distance or the distance is predetermined. The comparison result with the threshold value is output as the collation result.
前記登録要求処理では、前記数値ベクトルである登録情報の第i成分(ただし、iはL−1以下の非負整数、Lは2以上の正整数)をi次の項の係数とするL−1次多項式を生成し、前記認証要求処理では、前記数値ベクトルである認証情報の第i成分の逆元をN−i次(ただし、NはLより大の正整数)の項の係数とするN次多項式を生成するか、あるいは、 In the registration request processing, the i-th component (where i is a non-negative integer of L-1 or less and L is a positive integer of 2 or more) of the registration information which is the numerical vector is used as the coefficient of the i-order term. An order polynomial is generated, and in the authentication request processing, the inverse element of the i-th component of the authentication information, which is the numerical vector, is set as the coefficient of the term of the N-i order (where N is a positive integer larger than L). Generate an order integer or
前記登録要求処理では、前記数値ベクトルである登録情報の第i成分(ただし、iはL−1以下の非負整数、Lは2以上の正整数)の逆元をN−i次(ただし、NはLより大の正整数)の項の係数とするN次多項式を生成し、前記認証要求処理では、前記数値ベクトルである認証情報の第i成分をi次の項の係数とするL−1次多項式を生成する、プログラム。 In the registration request processing, the inverse element of the i-th component (where i is a non-negative integer of L-1 or less and L is a positive integer of 2 or more) of the registration information which is the numerical vector is N-i order (however, N). Is a positive integer greater than L), and an Nth-order polymorphic element is generated. A program that generates an order integer.
登録要求装置と、照合補助装置と、認証要求装置と、検証装置とを含み、
前記検証装置は、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開し、
前記登録要求装置は、
登録対象情報の数値ベクトルの各成分から生成した第1の多項式を前記暗号化鍵で暗号化した第1のテンプレートを生成し
前記第1の多項式の各係数の2乗和を計算し、
前記2乗和を前記暗号化鍵で暗号化した第2のテンプレートを生成し、
前記照合補助装置は、
前記認証要求装置から認証要求を受けると、一つの係数とその次数をランダムに選択し、
前記次数の係数以外の係数を0とした単項式を生成し、
前記単項式を前記暗号化鍵で暗号化した暗号文からなるチャレンジを生成し、
前記チャレンジを前記認証要求装置に送付し、
前記認証要求装置は、
認証対象情報の数値ベクトルの各成分から生成した第2の多項式を生成し、
前記照合補助装置からの前記チャレンジと前記第2の多項式との積を、前記チャレンジを暗号化したまま算出することで、前記積の暗号文からなる第1のレスポンスを生成し
前記第2の多項式の各係数の2乗和を計算し、
前記2乗和を前記暗号化鍵で暗号化した第2のレスポンスを生成し、
前記第1のレスポンス及び前記第2のレスポンスを前記照合補助装置に送付し、
前記照合補助装置は、
前記一つの係数とその次数からなるチャレンジ補助から生成した単項式と前記第1のレスポンスとに基づき前記第2の多項式の暗号文を生成し、
前記第1のテンプレートと前記第2の多項式の暗号文とに基づき、前記登録対象情報の数値ベクトルと前記認証対象情報の数値ベクトルの暗号化内積を求め、
前記暗号化内積と前記第2のテンプレートと前記第2のレスポンスとを用いて、前記登録対象情報の数値ベクトルと前記認証対象情報の数値ベクトルの距離の暗号文を算出し、
前記距離の前記暗号文を前記検証装置に送付し、
前記検証装置は、
前記照合補助装置から受け取った、前記登録対象情報の数値ベクトルと前記認証対象情報の数値ベクトルの距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、
算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力し、
前記登録要求装置が、前記登録対象情報の数値ベクトルの各成分を昇順に各係数とする多項式化により前記第1の多項式を生成し、且つ、前記認証要求装置が、前記認証対象情報の数値ベクトルの各成分の逆元を降順に各係数とする多項式化により前記第2の多項式を生成するか、あるいは、
前記登録要求装置が、前記登録対象情報の数値ベクトルの各成分の逆元を降順に各係数とする多項式化により前記第1の多項式を生成し、且つ、前記認証要求装置が、前記認証対象情報の数値ベクトルの各成分を昇順に各係数とする多項式化により前記第2の多項式を生成する、ことを特徴とする暗号文照合システム。
Including a registration request device, a verification auxiliary device, an authentication request device, and a verification device,
The verification device calculates a pair of an encryption key and a decryption key of a homomorphic encryption method capable of polynomial operations, and publishes the encryption key.
The registration request device is
A first template in which the first polynomial generated from each component of the numerical vector of the registration target information is encrypted with the encryption key is generated .
Calculate the sum of squares of each coefficient of the first polynomial,
A second template in which the sum of squares is encrypted with the encryption key is generated.
The collation assisting device is
When an authentication request is received from the authentication request device, one coefficient and its order are randomly selected.
A monomial expression is generated in which a coefficient other than the coefficient of the order is set to 0.
Generate a challenge consisting of a ciphertext in which the monomial is encrypted with the encryption key.
Send the challenge to the certification requester and
The authentication requesting device is
Generate a second polynomial generated from each component of the numerical vector of the authentication target information,
By calculating the product of the challenge and the second polynomial from the collation assisting device while the challenge is encrypted, a first response composed of the ciphertext of the product is generated .
Calculate the sum of squares of each coefficient of the second polynomial,
A second response in which the sum of squares is encrypted with the encryption key is generated.
The first response and the second response are sent to the collation assisting device, and the first response and the second response are sent to the collation assisting device.
The collation assisting device is
Based on the one coefficient and the unary generated from the challenge auxiliary consisting of its degree and the first response, generates a ciphertext of said second polynomial,
Based on the first template and the ciphertext of the second polynomial, the encrypted inner product of the numerical vector of the registration target information and the numerical vector of the authentication target information is obtained.
Using the encrypted inner product, the second template, and the second response, a ciphertext of the distance between the numerical vector of the registration target information and the numerical vector of the authentication target information is calculated.
The ciphertext at the distance is sent to the verification device,
The verification device is
The ciphertext of the distance between the numerical vector of the registration target information and the numerical vector of the authentication target information received from the collation assisting device is decrypted using the decryption key to calculate the distance.
Calculated the distance, or the result of comparison between the distance and the predetermined threshold value, and outputs the collation result,
The registration requesting device generates the first polynomial by polynomializing each component of the numerical vector of the registration target information as a coefficient in ascending order, and the authentication requesting device is a numerical vector of the authentication target information. The second polynomial is generated by polynomialization in which the inverse element of each component of is used as each coefficient in descending order, or
The registration requesting device generates the first polynomial by polynomializing the inverse elements of each component of the numerical vector of the registration target information as each coefficient in descending order, and the certification requesting device generates the authentication target information. A code sentence matching system characterized in that the second polynomial is generated by polynomialization in which each component of the numerical vector of is made into a coefficient in ascending order.
少なくとも1つのコンピュータによる暗号文照合方法であって、
登録要求処理と、照合補助処理と、認証要求処理と、検証処理とを含み、
前記検証処理は、多項式演算が可能な準同型暗号方式の暗号化鍵と復号鍵のペアを算出し、前記暗号化鍵を公開し、
前記登録要求処理は、
登録対象情報の数値ベクトルの各成分から生成した第1の多項式を前記暗号化鍵で暗号化した第1のテンプレートを生成し
前記第1の多項式の各係数の2乗和を計算し、
前記2乗和を前記暗号化鍵で暗号化した第2のテンプレートを生成し、
前記照合補助処理は、
前記認証要求処理から認証要求を受けると、一つの係数とその次数をランダムに選択し、
前記次数の係数以外の係数を0とした単項式を生成し、
前記単項式を前記暗号化鍵で暗号化した暗号文からなるチャレンジを生成し、
前記チャレンジを前記認証要求処理に送付し、
前記認証要求処理は、
認証対象情報の数値ベクトルの各成分から生成した第2の多項式を生成し、
前記照合補助処理からの前記チャレンジと前記第2の多項式との積を、前記チャレンジを暗号化したまま算出することで、前記積の暗号文からなる第1のレスポンスを生成し
前記第2の多項式の各係数の2乗和を計算し、
前記2乗和を前記暗号化鍵で暗号化した第2のレスポンスを生成し、
前記第1のレスポンス及び前記第2のレスポンスを前記照合補助処理に送付し、
前記照合補助処理は、
前記一つの係数とその次数からなるチャレンジ補助から生成した単項式と前記第1のレスポンスとに基づき前記第2の多項式の暗号文を生成し、
前記第1のテンプレートと前記第2の多項式の暗号文とに基づき、前記登録対象情報の数値ベクトルと前記認証対象情報の数値ベクトルの暗号化内積を求め、
前記暗号化内積と前記第2のテンプレートと前記第2のレスポンスとを用いて、前記登録対象情報の数値ベクトルと前記認証対象情報の数値ベクトルの距離の暗号文を算出し、
前記距離の前記暗号文を前記検証処理に送付し、
前記検証処理は、
前記照合補助処理から受け取った、前記登録対象情報の数値ベクトルと前記認証対象情報の数値ベクトルの距離の暗号文を、前記復号鍵を用いて復号して前記距離を算出し、
算出した前記距離又は、前記距離と予め定められた閾値との比較結果を、照合結果として出力し、
前記登録要求処理が、前記登録対象情報の数値ベクトルの各成分を昇順に各係数とする多項式化により前記第1の多項式を生成し、且つ、前記認証要求処理が、前記認証対象情報の数値ベクトルの各成分の逆元を降順に各係数とする多項式化により前記第2の多項式を生成するか、あるいは、
前記登録要求処理が、前記登録対象情報の数値ベクトルの各成分の逆元を降順に各係数とする多項式化により前記第1の多項式を生成し、且つ、前記認証要求処理が、前記認証対象情報の数値ベクトルの各成分を昇順に各係数とする多項式化により前記第2の多項式を生成する、ことを特徴とする暗号文照合方法。

Ciphertext verification method by at least one computer
Including registration request processing, verification assistance processing, authentication request processing, and verification processing,
In the verification process, a pair of encryption key and decryption key of a homomorphic encryption method capable of polynomial operation is calculated, and the encryption key is made public.
The registration request processing is
A first template in which the first polynomial generated from each component of the numerical vector of the registration target information is encrypted with the encryption key is generated .
Calculate the sum of squares of each coefficient of the first polynomial,
A second template in which the sum of squares is encrypted with the encryption key is generated.
The collation assistance process is
When an authentication request is received from the authentication request processing, one coefficient and its order are randomly selected.
A monomial expression is generated in which a coefficient other than the coefficient of the order is set to 0.
Generate a challenge consisting of a ciphertext in which the monomial is encrypted with the encryption key.
Send the challenge to the certification request processing and
The authentication request processing is
Generate a second polynomial generated from each component of the numerical vector of the authentication target information,
By calculating the product of the challenge and the second polynomial from the collation assist processing while the challenge is encrypted, a first response composed of the ciphertext of the product is generated .
Calculate the sum of squares of each coefficient of the second polynomial,
A second response in which the sum of squares is encrypted with the encryption key is generated.
The first response and the second response are sent to the collation assistance process,
The collation assistance process is
Based on the one coefficient and the unary generated from the challenge auxiliary consisting of its degree and the first response, generates a ciphertext of said second polynomial,
Based on the first template and the ciphertext of the second polynomial, the encrypted inner product of the numerical vector of the registration target information and the numerical vector of the authentication target information is obtained.
Using the encrypted inner product, the second template, and the second response, a ciphertext of the distance between the numerical vector of the registration target information and the numerical vector of the authentication target information is calculated.
The ciphertext at the distance is sent to the verification process and
The verification process is
The ciphertext of the distance between the numerical vector of the registration target information and the numerical vector of the authentication target information received from the collation assistance process is decrypted using the decryption key to calculate the distance.
Calculated the distance, or the result of comparison between the distance and the predetermined threshold value, and outputs the collation result,
The registration request process generates the first polynomial by polynomializing each component of the numerical vector of the registration target information as each coefficient in ascending order, and the authentication request process is the numerical vector of the authentication target information. The second polynomial is generated by polynomialization in which the inverse element of each component of is used as each coefficient in descending order, or
The registration request process generates the first polynomial by polynomializing the inverse element of each component of the numerical vector of the registration target information as each coefficient in descending order, and the authentication request process is the authentication target information. A code sentence collation method, characterized in that the second polynomial is generated by polynomialization in which each component of the numerical vector of is used as each coefficient in ascending order.

JP2018509387A 2016-03-31 2017-03-29 Ciphertext matching system, node device, ciphertext matching method, and program Active JP6927199B2 (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2016072770 2016-03-31
JP2016072770 2016-03-31
PCT/JP2017/013085 WO2017170780A1 (en) 2016-03-31 2017-03-29 Cryptogram collation system, node device, cryptogram collation method, and program

Publications (2)

Publication Number Publication Date
JPWO2017170780A1 JPWO2017170780A1 (en) 2019-02-07
JP6927199B2 true JP6927199B2 (en) 2021-08-25

Family

ID=59965840

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2018509387A Active JP6927199B2 (en) 2016-03-31 2017-03-29 Ciphertext matching system, node device, ciphertext matching method, and program

Country Status (2)

Country Link
JP (1) JP6927199B2 (en)
WO (1) WO2017170780A1 (en)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2020174515A1 (en) 2019-02-25 2020-09-03 日本電気株式会社 Encryption system, key generation device, key generation method, key generation program, and homomorphic operation device

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6421576B2 (en) * 2014-12-12 2018-11-14 富士通株式会社 Cryptographic processing apparatus, cryptographic processing method, and cryptographic processing program
CN105391554B (en) * 2015-11-09 2019-02-01 中国电子科技集团公司第三十研究所 A kind of method and system for realizing fingerprint matching using ciphertext

Also Published As

Publication number Publication date
WO2017170780A1 (en) 2017-10-05
JPWO2017170780A1 (en) 2019-02-07

Similar Documents

Publication Publication Date Title
JP7127543B2 (en) Matching system, method, device and program
WO2016169346A1 (en) Polynomial fully homomorphic encryption method and system based on coefficient mapping transform
CN109361644B (en) Fuzzy attribute based encryption method supporting rapid search and decryption
JP2016080766A (en) Encryption processing method, encryption processing device and encryption processing program
JP5762232B2 (en) Method and system for selecting the order of encrypted elements while protecting privacy
JP6451938B2 (en) Ciphertext verification system, method, and program
JP6229716B2 (en) Verification system, node, verification method and program
KR102143525B1 (en) Method for function encryption supporting set intersection operation and apparatus using the same
WO2014185450A1 (en) Verification system, node, verification method, and program
CN111786786A (en) Agent re-encryption method and system supporting equation judgment in cloud computing environment
CN109120606B (en) Method and device for processing characteristic attribute with privacy protection
JP6738061B2 (en) Ciphertext verification system, method, and recording medium
Cao et al. A quantum proxy weak blind signature scheme
Sandhia et al. Secure sharing of data in cloud using MA-CPABE with elliptic curve cryptography
JP6368047B2 (en) Key exchange method, key exchange system, key distribution device, representative communication device, general communication device, and program
JP6700797B2 (en) Key generation device, intermediate encryption device, entrusted encryption device, decryption device and their programs, and personal information protection system
JP6828322B2 (en) Collation system, method and program
Singamaneni et al. [Retracted] An Enhanced Dynamic Nonlinear Polynomial Integrity‐Based QHCP‐ABE Framework for Big Data Privacy and Security
JP6927199B2 (en) Ciphertext matching system, node device, ciphertext matching method, and program
Manjusha et al. Comparative study of attribute based encryption techniques in cloud computing
Ali et al. Secure IoT framework for authentication and confidentiality using hybrid cryptographic schemes
JP5799635B2 (en) ENCRYPTED DATA SEARCH SYSTEM, DEVICE, METHOD, AND PROGRAM
KR102284877B1 (en) Efficient functional encryption for set intersection
JP6189788B2 (en) Key generation device, re-encryption device, and program
Altarawneh A strong combination of cryptographic techniques to secure cloud-hosted data

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20200206

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20201006

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20201207

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20210406

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20210604

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: 20210706

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20210719

R150 Certificate of patent or registration of utility model

Ref document number: 6927199

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150