JP6738061B2 - 暗号文照合システム、方法、および記録媒体 - Google Patents

暗号文照合システム、方法、および記録媒体 Download PDF

Info

Publication number
JP6738061B2
JP6738061B2 JP2016557449A JP2016557449A JP6738061B2 JP 6738061 B2 JP6738061 B2 JP 6738061B2 JP 2016557449 A JP2016557449 A JP 2016557449A JP 2016557449 A JP2016557449 A JP 2016557449A JP 6738061 B2 JP6738061 B2 JP 6738061B2
Authority
JP
Japan
Prior art keywords
data
collation
result
registration
request
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
JP2016557449A
Other languages
English (en)
Other versions
JPWO2016072057A1 (ja
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 JPWO2016072057A1 publication Critical patent/JPWO2016072057A1/ja
Application granted granted Critical
Publication of JP6738061B2 publication Critical patent/JP6738061B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • H04L9/3247Cryptographic 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 involving digital signatures
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
    • G06F11/1012Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • 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
    • G06F21/32User authentication using biometric data, e.g. fingerprints, iris scans or voiceprints
    • 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/45Structures or tools for the administration of 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
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
    • H03M13/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • 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/14Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols using a plurality of keys or algorithms
    • 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/72Signcrypting, i.e. digital signing and encrypting simultaneously

Description

本発明は、暗号化されたデータの曖昧さを許容する暗号文照合システム、方法および記録媒体に関し、特に、秘匿対象の入力データ(照合元データ)も、照合対象の入力データ(照合対象データ)もともに暗号化されている状況で、曖昧さの指標を平文のハミング距離とした場合の暗号文照合システム、方法、および記録媒体に関する。
近年、クラウドの普及に伴い、ネットワークに接続された計算資源に利用者のデータを置き、そのデータに基づいたサービスが急速に広がってきている。このようなサービスでは、利用者の機微なデータを扱う機会も増大してきている。このため、利用者が自分のデータが安全に管理されていることを保証することが重要になってきている。
このような状況の下、オープンなネットワーク環境でデータを暗号化したまま管理し、データを復号することなく、検索や、統計処理などを行う技術の研究開発が活発に行われている。
また、近年、従来のパスワードや磁気カードを用いた個人認証の脆弱性をついた犯罪が頻発している。このため、より安全性の高い指紋、静脈などの生体的な特徴に基づく生体認証技術が注目を集めている。
生体認証においては、認証情報の検証を行うために、生体情報に関するテンプレートをデータベースに保管する必要がある。指紋、静脈等の生体情報は基本的に生涯不変のデータである。生体情報は、もしそれが漏洩すると、その被害は甚大なものとなる。このため、生体情報は、最も機密性が要求される情報である。したがって、テンプレートが漏洩した場合でも、「なりすまし」等が行えないようにする必要がある。
そこで、テンプレート情報を秘匿したまま認証を行う、テンプレート保護型の生体認証技術が重要となってきている。
例えば、特許文献1は、指紋データを多項式上の点として表現し、その点にランダムな点を付加して、指紋データを秘匿したデータをテンプレートとして生体認証を行う方式を開示している。
しかしながら、上記特許文献1の方式は、生体認証を何度も繰り返した時に、十分な強度で生体情報が保護されているかどうかに課題があることが知られている。
一方、非特許文献1は、データベース上に置くテンプレートをランダムなBCH(Bose-Chaudhuri-Hocquenghem)符号語(code word)でマスクすることによって生体情報を保護する方式を開示している。
上記非特許文献1では、生体情報Zと秘匿情報Sとを用いて、以下のように生体認証用テンプレートを生成している。
(A1)秘匿情報SをBCH誤り訂正符号化し、符号語Cを生成する。
(A2)符号語Cと生体情報Zとの排他的論理和W1=C (+)Zを計算する(ここで、(+)はビットごとの排他的論理和を表す演算子である)。
(A3)秘匿情報SをSHA(Secure Hash Algorithm)1などの暗号学的ハッシュ関数 H に入力して、ハッシュ値 W2=H(S)を計算する。
(A4)排他的論理和W1およびハッシュ値W2をテンプレート情報としてデータベースに格納する。
上記(A1)から(A4)によって生成されたテンプレートと、別の生体情報Z’が同じ人物から採取したものであるか否かは、次のようにして検証することが可能である。
(B1)排他的論理和W1と別の生成情報Z’との排他的論理和C’=W1 (+) Z’を計算する。
(B2)排他的論理和C’をBCH符号の誤り訂正アルゴリズムに入力して、S’を計算する。
(B3)上記データベースからハッシュ値W2を読み出し、W2=H(S’) が成立するかをチェックする。成立する場合は、テンプレートと生体情報Z’が同じ人物から採取されたものと判断する。成立しない場合は、異なる人物から採取されたものと判断する。
上述の技術は、生体情報Zの取得方法に依存しない方法である。このため、一般に、秘匿(暗号化)されたデータを復号することなく、その暗号文が、提示されたデータと一定のハミング距離以内のデータを暗号化したものであるか否かの照合を行う方式と解釈することが可能である。
また、暗号化したままの照合方法として、決定的な共通鍵暗号や公開鍵暗号を利用した検索可能暗号を利用する方法が知られている。しかしながら、これらの方法は一般に、検索に用いるキーワードが一意に定まっている必要がある。上記のように生体情報を利用して照合を行う場合、生体情報取得時に含まれるノイズのせいで常に同じ生体情報が得られるわけではないことが知られている。このため、生体情報の照合方法に、検索可能暗号を適用することが難しい。
特許文献2は、暗号文照合において、元の平文に関する漏洩を回避可能とし、安全性を担保可能とした暗号文照合システムを開示している。この特許文献2に開示された暗号文照合システムは、登録補助データ生成部と、暗号文減算部と、一致判定部とを備える。登録補助データ生成部は、秘匿対象の入力データを暗号化して記憶装置に登録される第1の暗号文と、照合対象の入力データを暗号化した第2の暗号文のそれぞれに対して、第1の暗号文と第2の暗号文との間の平文のハミング距離が、予め定められた所定値以下であることを検証するための第1、第2の補助データをそれぞれ生成する。暗号文減算部は、第2の暗号文に対して、記憶装置に登録されている第1の暗号文との差分をとる。一致判定部は、第1及び第2の補助データを用いて、第1の暗号文と第2の暗号文の前記差分に対応するハミング距離が予め定められた所定値以下であるか否かを判定する。
特開2006−158851号公報 WO2014/010725
Pim Tuyls, Anton H. M. Akkermans, Tom A. M. Kevenaar, Geert-Jan Schrijen, Asker M. Bazen and Raimond N. J. Veldhuis, "Practical Biometric Authentication with Templete Protection", Proceedings of AVBPA 2005, Lecture Notes in Computer Science, Vol. 3546, Springer Verlag, pp. 436-446, (2005)
上述の技術の問題点は、照合元データと照合対象データとに多少の誤差を許してデータベースにある暗号文の照合を行う際に、照合元データに関する情報がデータベースの管理者等に漏えいしてしまうことにある。その理由は以下の通りである。
例えば、上記特許文献1では、暗号文の秘匿強度が十分でないからである。
また、上記非特許文献1では、照合を可能にするためには、平文情報を照合時に送出する必要があるからである。
さらに、上記特許文献2では、登録された秘匿対象の入力データ(尚、実際には、それを暗号化した第1の暗号文が記憶装置に登録される)に近い照合対象の入力データを知らなくても、受理された第2の暗号文(照合データ)を生成可能だからである。何故なら、特許文献2では、登録データの各要素は線形性を有するために、照合対象の入力データを知らなくても、受理される第2の暗号文(照合データ)を生成可能だからである。
本発明は、上記の事情に鑑みてなされたものであって、その目的は、複数回の照合を行っても、照合元データ(秘匿対象の入力データ)に近い照合対象の入力データを使わない限り照合データを作れないことを保証できる、暗号文照合システム、方法および記録媒体を提供することにある。
本発明の第1の態様による暗号文照合システムは、秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、暗号データと検証鍵とから登録データを生成する登録データ生成部と、登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成部と、記憶部に記憶された登録テンプレートと、データ照合要求とを照合して、判定結果を出力するデータ照合判定部と、判定結果に対応した登録テンプレートの一部または全部を含む照合結果を出力する照合結果生成部と、照合結果からデータを復元して、復元結果を出力するデータ復元部と、を含む。
また、本発明の第2の態様による暗号文照合システムは、署名鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、暗号データと検証鍵とから登録データを生成する登録データ生成部と、登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、署名鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成部と、記憶部に記憶された登録テンプレートと、第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定部と、ランダムに選んだメッセージと、判定結果に対応する登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成部と、第1照合結果を復号して、復号結果を出力する復号部と、復号結果と第1照合結果に含まれるメッセージとから、第2データ照合要求を生成する第2データ照合要求生成部と、第2データ照合要求と、記憶部に記録されている登録テンプレートの登録データとから、第2データ照合判定を生成する第2データ照合判定部と、第2データ照合判定に対応する登録データの識別子を、第2照合結果として出力する第2照合結果生成部と、を含む。
さらに、本発明の第3の態様による暗号文照合システムは、秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、暗号データと公開鍵とから登録データを生成する登録データ生成部と、登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成部と、記憶部に記憶された登録テンプレートと、第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定部と、ランダムに選んだメッセージと、判定結果に対応する登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成部と、第1照合結果を復号して、復号結果を出力する復号部と、復号結果と第1照合結果に含まれる前記メッセージとから、第2データ照合要求を生成する第2データ照合要求生成部と、第2データ照合要求と、記憶部に記録されている前記登録テンプレートの登録データとから、第2データ照合判定を生成する第2データ照合判定部と、第2データ照合判定に対応する登録データの識別子を、第2照合結果として出力する第2照合結果生成部と、を含む。
本発明によれば、照合処理を複数回行った場合や、照合処理を行うデータベース所有者に悪意がある場合でも、照合時にユーザが送出する照合対象の入力データを、照合元データ(秘匿対象の入力データ)を知らずに生成することを防止できる。
本発明の第1の実施形態に係る暗号文照合システムの構成例を示すブロック図である。 図1に示した暗号文照合システムに使用される、登録データ生成装置および記憶装置の構成例を示すブロック図である。 図1に示した暗号文照合システムに使用される、データ照合要求装置およびデータ照合判定装置の構成例を示すブロック図である。 図1に示した暗号文照合システムの、データ登録フェイズの動作例を示すフローチャートである。 図1に示した暗号文照合システムの、暗号文照合フェイズの動作例を示すフローチャートである。 本発明の第2の実施形態に係る暗号文照合システムの構成例を示すブロック図である。 図7に示した暗号文照合システムに使用される、登録データ生成装置および記憶装置の構成例を示すブロック図である。 図7に示した暗号文照合システムに使用される、第1データ照合要求装置および第1データ照合判定装置の構成例を示すブロック図である。 図7に示した暗号文照合システムに使用される、第2データ照合要求装置および第2データ照合判定装置の構成例を示すブロック図である。 図7に示した暗号文照合システムの、データ登録フェイズの動作例を示すフローチャートである。 図7に示した暗号文照合システムの、暗号文照合フェイズの前半の動作例を示すフローチャートである。 図7に示した暗号文照合システムの、暗号文照合フェイズの後半の動作例を示すフローチャートである。 本発明の第1の実施例による暗号文照合システムの、データ登録フェイズの動作例を示すフローチャートである。 本発明の第1の実施例による暗号文照合システムの、暗号文照合フェイズの動作例を示すフローチャートである。 本発明の第2の実施例による暗号文照合システムの、データ登録フェイズの動作例を示すフローチャートである。 本発明の第2の実施例による暗号文照合システムの、暗号文照合フェイズの前半の動作例を示すフローチャートである。 本発明の第2の実施例による暗号文照合システムの、暗号文照合フェイズの後半の動作例を示すフローチャートである。 本発明の第3の実施例による暗号文照合システムの、データ登録フェイズの動作例を示すフローチャートである。 本発明の第3の実施例による暗号文照合システムの、暗号文照合フェイズの前半の動作例を示すフローチャートである。 本発明の第3の実施例による暗号文照合システムの、暗号文照合フェイズの後半の動作例を示すフローチャートである。
(発明の概略の説明)
本発明の暗号文照合システムは、照合時にユーザが送出する照合対象の入力データを、乱数を誤り訂正符号化したデータで、暗号化することにより、データ照合要求を生成する。また、データベースに格納される暗号データだけではなく、照合のためにユーザが送出する照合対象の入力データも秘匿強度の高い暗号方式により暗号化される。照合を行うたびに、暗号化に用いる乱数を変更することにより、照合元データ(秘匿対象の入力データ)を知らずに照合時にユーザが送出する照合対象の入力データを生成することが不可能となる。
本発明の理解を容易にするために、以下に本発明の概要について簡単に説明する。
本発明では、完全一致ではなく、類似度で受理不受理を決定する。本発明における秘匿対象の入力データzや照合対象の入力データz’がそれに当たる。本発明は、秘匿対象の入力データzや照合対象の入力データz’を秘匿したままそれらが近いことを確認するとともに、秘匿対象の入力データzに近い照合対象の入力データz’を使わない限り、受理される照合データを作れないことを保証している。すなわち、後者の性質が数学的に保証できることが、本発明の新規である。
本発明は、誤り訂正符号とデジタル署名(あるいは公開鍵暗号などの暗号プロトコル)を利用する。
デジタル署名の場合、登録データとして、署名の秘密鍵skを誤り訂正符号化したENC(sk)と秘匿対象の入力データzとの排他的論理和を計算したz(+)ENC(sk)および検証鍵vkを生成する。以降、z(+)ENC(sk)を(1)式とする。
なお、公開鍵暗号の場合、検証鍵vkの代わりに公開鍵pkが、秘密鍵skの代わり復号鍵dkが、それぞれ使用される。
照合は2つのフェイズに分かれている。
(照合フェイズ1)クライアントは、サーバへ、照合対象の入力データz’と、乱数Rを誤り訂正符号化したENC(R)との排他的論理和z’(+)ENC(R)を送る。サーバは、(1) (+)(z’(+)ENC(R))を誤り訂正復号する。このとき、秘匿対象の入力データzと照合対象の入力データz’とが近い値ならば復号可能で、復号結果はsk(+)Rとなる。サーバは、この値をランダムなメッセージMとともにクライアントに送付する。復号不可ならば停止する。
(照合フェイズ2)クライアントは、照合フェイズ1で使った乱数Rを用いて復号結果sk(+)R(+)Rを計算し、署名の秘密鍵skを得る。そして、クライアントは、署名の秘密鍵skとメッセージMを用いてデジタル署名σを生成し、サーバに送付する。サーバは、検証鍵vkを用いて署名を検証し、受理・不受理を決定する。
直観的には、本発明は、(1)式から署名の秘密鍵skを取り出せるのは秘匿対象の入力データzに近い値を知っている人のみであり、受理される検証鍵vkを生成できるのは署名の秘密鍵skを知る人のみであること、を利用している。したがって、本発明による方式は、秘匿対象の入力データzに近い照合対象の入力データz’を使わない限り、受理される照合データを作れないことを保証できる。
なお、本発明は、上記(照合フェイズ1)まででも発明として成立し得る。何故なら、上記例では照合フェイズ1において秘密鍵skを取り出し、照合フェイズ2において署名によって認証することにしているが、照合フェイズ2では、照合フェイズ1で受け取った秘密鍵skを認証以外にも暗号通信や暗号プロトコルに利用できるからある。換言すれば、この場合、単に暗号化して記憶していた秘密鍵を抽出している。
このように、本発明では、2つのフェイズで照合結果以外に秘密鍵を得ること、およびその利用目的に自由度がある。
(第1の実施形態)
次に、本発明の第1の実施形態による暗号文照合システムについて図面を参照して詳細に説明する。
図1を参照すると、本発明の第1の実施形態による暗号文照合システムは、登録データ生成装置100と、記憶装置200と、データ照合要求装置300と、データ照合判定装置400とから成る。
登録データ生成装置100およびデータ照合要求装置300を利用するエンティティがクライアントである。記憶装置200を有し、データ照合判定装置400を利用するエンティティがサーバである。換言すれば、登録データ生成装置100は第1のクライアントとして実現され、データ照合要求装置300は第2のクライアントとして実現される。記憶装置200とデータ照合判定装置400との組み合わせはサーバとして動作する。第1のクライアントと第2のクライアントとは、別々のクライアントであっても良いし、同じ1つのクライアントであっても良い。
[構成の説明]
図2を参照すると、登録データ生成装置100は、鍵生成部101と、暗号化部102と、登録データ生成部103とから成る。
鍵生成部101は、セキュリティパラメータを入力とし、検証鍵および秘密鍵を出力する。暗号化部102は、秘匿対象の入力データと、秘密鍵および検証鍵とを入力とし、暗号文(暗号データ)を出力する。登録データ生成部103は、検証鍵および暗号文(暗号データ)を入力とし、データ照合要求装置300のデータ照合要求生成部301(後述する)が出力する暗号データに対応する照合対象の入力データが、暗号化部102に入力された秘匿対象の入力データとハミング距離が一定数以内であることを判断するためのデータである登録データを出力する。登録データは、暗号データを含む。
ここで、登録データ生成装置100の暗号化部102によって出力される暗号文は、第1の入力データm1を第1の鍵k1で暗号化した第1の暗号文をc1、第2の入力データm2を第2の鍵k2で暗号化した第2の暗号文をc2とした時、第1の暗号文c1と第2の暗号文c2の和(c1+c2)が入力データ(m1+m2)を鍵(k1+k2)で暗号化した暗号文となる。
図2に示されるように、記憶装置200は、識別子管理部201と、暗号文記憶部202とから成る。記憶装置200は、登録データ生成装置100が出力した登録データを記憶するとともに、暗号データの照合時に、登録データに対応する識別子を記憶する。
識別子管理部201は、登録データ生成装置100から入力される登録データを一意に特定する識別子を管理する。暗号文記憶部202は、識別子管理部201によって発行された識別子と、登録データ生成装置100から受信した登録データとを含む登録テンプレートを記憶する。
図3を参照すると、データ照合要求装置300は、データ照合要求生成部301と、照合結果受信部302と、データ復元部303とから成る。
データ照合要求生成部301は、照合対象の入力データを入力とし、照合対象の入力データに秘匿処理を施したデータ照合要求を出力する。照合結果受信部302は、データ照合要求に対してデータ照合判定装置400が生成した照合結果を受信する。データ復元部303は、受信した照合結果を入力として、復元データを生成する。
図3に示されるように、データ照合判定装置400は、登録データ受信部401と、データ照合要求受信部402と、データ照合判定部403と、照合結果生成部404とから成る。
登録データ受信部401は、記憶装置200に記憶されている登録テンプレートを受信する。データ照合要求受信部402は、データ照合要求装置300からデータ照合要求を受信する。データ照合判定部403は、登録テンプレートと、データ照合要求を入力として、データ照合要求として秘匿されている照合データと暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力する。照合結果生成部404は、判定結果と、登録テンプレートを入力として、判定結果に対応した登録テンプレートの一部または全部を含む照合結果を出力する。ただし、照合結果は少なくとも判定結果に対応した登録テンプレートを含むか、あるいは判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージを含む。
[動作の説明]
次に、本発明の動作に関して詳細に説明する。
本発明の第1の実施形態による暗号文照合システムの動作は、データ登録フェイズと、暗号文照合フェイズと、の二つのフェイズに大別される。
ここで、データ登録フェイズは、登録データ生成装置100に秘匿対象の入力データを入力し、秘匿対象の入力データを暗号化し、記憶装置200に登録するフェイズである。暗号文照合フェイズは、データ照合要求装置300に入力された照合対象の入力データを暗号化し、その際に生成されたデータ照合要求が、データ照合判定装置400によって記憶装置200内の登録データと近い(ハミング距離の小さい)平文となるものであるかを判定するフェイズである。
以下、各フェイズにおける動作に関して詳細に説明する。
図4を参照すると、データ登録フェイズにおいては、まず、はじめに登録データ生成装置100の鍵生成部101にセキュリティパラメータが入力され、秘密鍵および検証鍵が生成される(ステップA1)。次に、登録データ生成装置100の暗号化部102に秘匿対象の入力データと前記秘密鍵および検証鍵が入力される(ステップA2)。
次に、暗号化部102は、入力された入力データと、前記秘密鍵とから、入力データを暗号化した暗号データを計算する(ステップA3)。次に、登録データ生成装置100の登録データ生成部103は、前記暗号データと、前記検証鍵とから、登録データを生成し、記憶装置200に送付する(ステップA4)。
次に、登録データを受信した記憶装置200の識別子管理部201は、登録データに対して登録データを一意に特定するための識別子を発行し、登録データとともに暗号文記憶部202に登録テンプレートとして記憶する(ステップA5)。
図5を参照すると、暗号文照合フェイズにおいては、まず、データ照合要求装置300に照合対象の入力データが入力される(ステップB1)。次に、データ照合要求生成部301は、入力データを暗号化したデータ照合要求を生成し、データ照合判定装置400に送付する(ステップB2)。
次に、データ照合判定装置400の登録データ受信部401は、記憶装置200に記憶されている登録データおよびその識別子を受信する(ステップB3)。次に、データ照合要求受信部402は、データ照合要求装置300から、データ照合要求を受信する(ステップB4)。
次に、データ照合判定部403は、前記登録データおよびその識別子と、データ照合要求を入力として、データ照合要求として秘匿されている照合データと暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力する(ステップB5)。次に、照合結果生成部404は、判定結果を入力として、判定結果に対応した登録テンプレートの一部または全部を含む照合結果を出力する(ステップB6)。ただし、照合結果は少なくとも判定結果に対応した登録テンプレートを含むか、あるいは判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージを含む。
次に、データ照合要求装置300の照合結果受信部302は、照合結果を受信する(ステップB7)。ここで、照合結果が判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージであった場合は、照合されなかったものとして停止する。そうでなかった場合、以下のステップに進む。
次に、データ復元部303は、照合結果を入力とし、照合結果に含まれるデータの復元を行い、復元結果を出力する(ステップB8)。
このように、本第1の実施形態では、秘匿対象の入力データに近い照合対象の入力データを使わない限り、受理されるデータ照合要求を作れないことを保証できる。何故なら、秘密鍵を取り出せるのは、秘匿対象の入力データを知っている人のみであり、受理される検証鍵を生成できるのは、秘密鍵を知る人のみであるからである。これにより、照合処理を複数回行った場合や、照合処理を行うデータベース所有者に悪意がある場合でも、照合時にユーザが送出する照合対象の入力データを、照合元データ(秘匿対象の入力データ)を知らずに生成することを防止できる。
なお、図1の登録データ生成装置100、記憶装置200、データ照合要求装置300、およびデータ照合判定装置400を一つのコンピュータシステムに実装してもよいし、あるいは各装置を単体として構成してもよい。あるいは、各装置100、200、300、400内の各部をそれぞれ1つの単体装置で構成してもよい。図1の各装置の各部の処理を、コンピュータで実行されるプログラムによって実現するようにしてもよい。
(第2の実施形態)
次に、本発明の第2の実施形態について図面を参照して詳細に説明する。
本発明の第1の実施形態で説明した暗号文照合システムと、本発明の第2の実施形態で記載する暗号文照合システムと間の差分は、データ照合要求に対応する照合結果を受け取るエンティティの違いである。すなわち、本発明の第1の実施形態で説明した暗号文照合システムでは、データ照合要求を行ったエンティティのみがその結果を得られた。これに対して、本発明の第2の実施形態で説明する暗号文照合システムでは、データ照合要求に応じて照合処理を行うエンティティもその結果を得られる。
図6を参照すると、本発明の第2の実施形態による暗号文照合システムは、登録データ生成装置100と、記憶装置200と、第1データ照合要求装置300Aと、第1データ照合判定装置400Aと、第2データ照合要求装置500と、第2データ照合判定装置600とから成る。
登録データ生成装置100、第1データ照合要求装置300A、および第2データ照合要求装置500を利用するエンティティがクライアントである。記憶装置200を有し、第1データ照合判定装置400Aおよび第2データ照合判定装置600を利用するエンティティがサーバである。換言すれば、登録データ生成装置100は第1のクライアントとして実現され、第1データ照合要求装置300Aと第2データ照合要求装置500との組み合わせが第2のクライアントとして実現される。記憶装置200、第1データ照合判定装置400A、および第2データ照合判定装置600の組み合わせがサーバとして動作する。尚、第1のクライアントと第2のクライアントは、別々のクライアントであっても良いし、同じ一つのクライアントであっても良い。
[構成の説明]
図7を参照すると、登録データ生成装置100は、鍵生成部101と、暗号化部102と、登録データ生成部103とから成る。
鍵生成部101は、セキュリティパラメータを入力とし、署名の検証鍵および署名鍵を出力する。暗号化部102は、秘匿対象の入力データと、署名鍵および検証鍵を入力とし、暗号文(暗号データ)を出力する。登録データ生成部103は、署名の検証鍵、暗号文を入力とし、第1データ照合要求装置300Aの第1データ照合要求生成部301A(後述する)が出力する暗号データに対応する照合対象の入力データが、暗号化部102に入力された秘匿対象の入力データとハミング距離が一定数以内であることを判断するためのデータである登録データを出力する。
ここで、登録データ生成装置100の暗号化部102によって出力される暗号文は、第1の入力データm1を第1の鍵k1で暗号化した第1の暗号文をc1、第2の入力データm2を第2の鍵k2で暗号化した第2の暗号文をc2とした時、第1の暗号文c1と第2の暗号文c2の和c1+c2が入力データ(m1+m2)を鍵(k1+k2)で暗号化した暗号文となる。
図7に示されるように、記憶装置200は、識別子管理部201と、暗号文記憶部202とから成る。記憶装置200は、登録データ生成装置100が出力した登録データを記憶するとともに、暗号データの照合時に、登録データに対応する識別子を記憶する。
識別子管理部201は、登録データ生成装置100から入力される登録データを一意に特定する識別子を管理する。暗号文記憶部202は、識別子管理部201によって発行された識別子と、登録データ生成装置100から受信した登録データを含む登録テンプレートとを記憶する。
図8を参照すると、第1データ照合要求装置300Aは、第1データ照合要求生成部301Aから成る。
第1データ照合要求生成部301Aは、照合対象の入力データを入力とし、前記入力データに秘匿処理を施した第1データ照合要求を出力する。
図8に示されるように、第1データ照合判定装置400Aは、登録データ受信部401Aと、第1データ照合要求受信部402Aと、第1データ照合判定部403Aと、第1照合結果生成部404Aとから成る。
登録データ受信部401Aは、記憶装置200に記憶されている登録テンプレートを受信する。第1データ照合要求受信部402Aは、第1データ照合要求装置300Aから第1データ照合要求を受信する。第1データ照合判定部403Aは、登録テンプレートと、第1データ照合要求とを入力として、第1データ照合要求として秘匿されている照合データと暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力する。
第1照合結果生成部404Aは、判定結果と、登録テンプレートとを入力として、照合要求を一意に特定するメッセージMと、判定結果に対応した登録テンプレートの一部または全部とを含む第1照合結果を出力する。ただし、第1照合結果は、少なくとも判定結果に対応した登録テンプレートを含むか、あるいは判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージを含む。
図9を参照すると、第2データ照合要求装置500は、第1照合結果受信部501と、復号部502と、第2データ照合要求生成部503とから成る。
第1照合結果受信部501は、第1データ照合判定装置400Aから、メッセージMと第1照合結果を受信する。復号部502は、第1照合結果と、照合対象の入力データを入力とし、第1照合結果に含まれる暗号データの復号を行い、復号結果を出力する。第2データ照合要求生成部503は、復号結果と、第1照合結果に含まれるメッセージMとを入力とし、第2データ照合要求を生成する。
図9に示されるように、第2データ照合判定装置600は、登録データ受信部601と、第2データ照合要求受信部602と、第2データ照合判定部603と、第2照合結果生成部604とから成る。
登録データ受信部601は、記憶装置200に記憶されている登録テンプレートを受信する。第2データ照合要求受信部602は、第2データ照合要求装置500から第2データ照合要求を受信する。第2データ照合判定部603は、登録テンプレートと第2データ照合要求とを入力として、第2データ照合判定を生成する。第2照合結果生成部604は、第2データ照合判定と、登録テンプレートとを入力として、第2照合結果を出力する。
[動作の説明]
次に、本発明の第2の実施形態の暗号文照合システムの動作に関して詳細に説明する。
本発明の第2の実施形態の暗号文照合システムの動作は、データ登録フェイズと、暗号文照合フェイズと、の二つのフェイズに大別される。ここで、データ登録フェイズは、登録データ生成装置100に秘匿対象の入力データを入力し、秘匿対象の入力データを暗号化し、記憶装置200に登録するフェイズである。暗号文照合フェイズは、第1データ照合要求装置300Aおよび第2照合要求装置500に入力された照合対象の入力データを暗号化し、その際に生成された第1データ照合要求および第2データ照合要求が、第1データ照合判定装置400Aおよび第2データ照合判定装置600によって記憶装置200内の登録データと近い(ハミング距離の小さい)平文となるものであるかを判定するフェイズである。以下、各フェイズにおける動作に関して詳細に説明する。
図10を参照すると、データ登録フェイズにおいては、まず、はじめに登録データ生成装置100の鍵生成部101にセキュリティパラメータが入力され、署名鍵および検証鍵が生成される(ステップA1)。次に、登録データ生成装置100の暗号化部102に秘匿対象の入力データと前記署名鍵および検証鍵が入力される(ステップA2)。
次に、暗号化部102は、入力された入力データと、前記署名鍵とから、入力データを暗号化した暗号データを計算する(ステップA3)。次に、登録データ生成装置100の登録データ生成部103は、前記暗号データと、前記検証鍵とから、登録データを生成し、記憶装置200に送付する(ステップA4)。
次に、登録データを受信した記憶装置200の識別子管理部201は、登録データに対して登録データを一意に特定するための識別子を発行し、登録データとともに暗号文記憶部202に記憶する(ステップA5)。
図11を参照すると、暗号文照合フェイズにおいては、まず、第1データ照合要求装置300Aに照合対象の入力データが入力される(ステップB1)。次に、第1データ照合要求生成部301Aは、入力データを暗号化した第1データ照合要求を生成し、第1データ照合判定装置400Aに送付する(ステップB2)。
次に、第1データ照合判定装置400Aの登録データ受信部401Aは、記憶装置200に記憶されている登録データおよびその識別子を受信する(ステップB3)。次に、第1データ照合要求受信部402Aは、第1データ照合要求装置300Aから、第1データ照合要求を受信する(ステップB4)。
次に、第1データ照合判定部403Aは、前記登録データおよびその識別子と、第1データ照合要求を入力として、第1データ照合要求として秘匿されている照合データと暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力する(ステップB5)。次に、第1照合結果生成部404Aは、判定結果を入力として、照合要求を一意に特定するメッセージMと、判定結果に対応した登録テンプレートの一部または全部とを含む第1照合結果を出力する(ステップB6)。ただし、第1照合結果は、少なくとも判定結果に対応した登録テンプレートを含むか、あるいは判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージを含む。
図12を参照して、次に、第2データ照合要求装置500の第1照合結果受信部501は、メッセージMと、第1照合結果を受信する(ステップB7)。ここで、第1照合結果が判定結果に対応した登録テンプレートが存在しないことを意味する記号やメッセージであった場合は、照合されなかったものとして停止する。そうでなかった場合、以下のステップに進む。次に、復号部502は、第1照合結果を入力とし、第1照合結果に含まれる暗号データの復号を行い、復号結果を出力する(ステップB8)。
次に、第2データ照合要求生成部503は、前記復号結果と、第1照合結果に含まれるメッセージMを入力とし、第2データ照合要求を生成し、第2データ照合判定装置600に送付する(ステップB9)。
次に、第2データ照合判定装置600の登録データ受信部601は、記憶装置200に記憶されている登録データおよび識別子を受信する(ステップB10)。次に,第2データ照合要求受信部602は、前記第2データ照合要求を受信する(ステップB11)。次に、第2データ照合判定部603は、前記第2データ照合要求と、前記登録データを入力として、第2データ照合判定を生成する(ステップB12)。次に、第2照合結果生成部604は、前記第2データ照合判定と、前記識別子を入力として、第2照合結果を出力する(ステップB13)。
このように本第2の実施形態では、秘匿対象の入力データに近い照合対象の入力データを使わない限り、受理されるデータ照合要求を作れないことを保証できる。何故なら、署名鍵を取り出せるのは、秘匿対象の入力データを知っている人のみであり、受理される検証鍵を生成できるのは、署名鍵を知る人のみであるからである。これにより、照合処理を複数回行った場合や、照合処理を行うデータベース所有者に悪意がある場合でも、照合時にユーザが送出する照合対象の入力データを、照合元データ(秘匿対象の入力データ)を知らずに生成することを防止できる。
なお、図6の登録データ生成装置100、記憶装置200、第1データ照合要求装置300A、第1データ照合判定装置400A、第2データ照合要求装置500、および第2データ照合判定装置600を一つのコンピュータシステムに実装してもよいし、あるいは各装置を単体として構成してもよい。あるいは、各装置100、200、300A、400A、500、600内の各部をそれぞれ1つの単体装置で構成してもよい。図6の各装置の各部の処理を、コンピュータで実行されるプログラムによって実現するようにしてもよい。
次に、本発明の第1の実施例について詳細に説明する。本第1の実施例は、本発明の第1の実施形態の実施例である。
本発明の第1の実施例の暗号文照合システムの動作は、データ登録フェイズと、暗号文照合フェイズと、の二つのフェイズに大別される。
図13を参照して、データ登録フェイズにおいては、まず、はじめに登録データ生成装置100の鍵生成部101にセキュリティパラメータkが入力され、秘密鍵xおよび検証鍵g^xが生成される(ステップC1)。ここでセキュリティパラメータkは秘密鍵の長さを決めるパラメータである。また、g^xはgのx乗を意味する。
本第1の実施例では、検証鍵をg^xとするが、ほかにハッシュ関数Hを利用して,H(x)を用いてもよい。その他、検証鍵として、秘密鍵xの一意性を確認できるデータを利用しても構わない。
次に、登録データ生成装置100の暗号化部102に秘匿対象の入力データzと前記秘密鍵xおよび検証鍵g^xが入力される(ステップC2)。ここで、秘匿対象の入力データzはNビットのデータであるものとする。
次に、暗号化部102は、入力された入力データzと、前記秘密鍵xとから、秘密鍵xをBCH誤り訂正符号化し、ENC(x)を生成する。次に、暗号化部102は、暗号データT[0]=z(+)ENC(x)を生成する(ステップC3)。ここで、暗号化部102は、秘密鍵xの符号ENC(x)を生成しているが、代わりに秘密鍵xを生成するための種(シード)の符号を生成するのでもよい。安全性のため、シードは80ビット程度あることが望ましい。
次に、登録データ生成装置100の登録データ生成部103は、前記暗号データT[0]と、前記検証鍵g^xとから、登録データT=(T[0], T[1]=g^x)を生成し、記憶装置200に送付する(ステップC4)。
次に、登録データを受信した記憶装置200の識別子管理部201は、登録データTに対して登録データを一意に特定するための識別子IDを発行し、登録データとともに暗号文記憶部202に記憶する(ステップC5)。
図14を参照して、暗号文照合フェイズにおいては、まず、第1データ照合要求装置300に照合対象の入力データz’が入力される(ステップD1)。
次に、データ照合要求生成部301は、入力データz’を入力として、乱数RのBCH符号化データENC(R)を生成する。さらに、データ照合要求生成部301は、データ照合要求Q[0]=z’(+)ENC(R)を生成し、データ照合判定装置400に送付する(ステップD2)。
次に、データ照合判定装置400の登録データ受信部401は、記憶装置200に記憶されている登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}を受信する(ステップD3)。ここで、T_i=(T_i[0], T_i[1])は前記登録データ生成装置100によって生成された登録データ(登録テンプレート)である。説明のため、m個の登録データが記憶装置200に記憶されているものとし、それぞれ(T_i, ID_i)(iは1からm)と記す。
次に、データ照合要求受信部402は、データ照合要求装置300から、データ照合要求Q[0]を受信する(ステップD4)。
次に、データ照合判定部403は、前記登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}と、データ照合要求Q[0]を入力として、i=1,…,mに対し、
DEC(T_i[0](+)Q[0]) ・・・(式1)
を計算する。ここでDEC(x)はxのBCH復号を意味する。登録データT_iを生成する際に入力した秘匿対象の入力データzと、データ照合要求Q[0]を生成する際に入力された照合対象の入力データz’とが近い(ハミング距離の意味で)値であるとき、(式1)の結果はx(+)Rとなる。そうでないときは、復号不可能を意味する記号が出力される。データ照合判定部403は、結果が復号不可能でなかった登録データT_i[0]に対応する識別子ID_iの集合{ID_i}を判定結果として出力する(ステップD5)。
次に、照合結果生成部404は、判定結果{ID_i}を入力として、判定結果{ID_i}に対応した{(DEC(T_i[0](+)Q[0]), T_i[1])}を照合結果として出力する(ステップD6)。ただし、すべてのi=1,…,mに対して,(式1)の結果が復号不可能であった場合、該当なしを意味する記号を照合結果として出力する。ここで照合結果は、下記第2の実施例に記載する通り、登録データT_i[0]としてもよい。その場合は、下記(式2)は第2の実施例に記載する(式2)と置き換える。
次に、データ照合要求装置300の照合結果受信部302は、照合結果として{(DEC(T_i[0](+)Q[0]), T_i[1])}を受信する(ステップD7)。ここで、照合結果が該当なしであった場合、照合対象の入力データz’に対応する暗号データは登録されていないものとして以降の動作を停止する。そうでなかった場合は以降のステップに進む。
次に、データ復元部303は、照合結果{(DEC(T_i[0](+)Q[0]), T_i[1])}を入力とし、各iに対して、
DEC(T_i[0](+)Q[0])(+)R=x ・・・(式2)
を計算する。照合結果{ DEC(T_i[0](+)Q[0])}には(式1)で復号不可能とならなかった要素が含まれているため、(式2)では復号不可能になることはない。
次に、データ復元部303は、(式2)で得られた秘密鍵xを用いて、T_i[1]=g^xであることを確認する(ステップD8)。
このように本第1の実施例では、秘匿対象の入力データzに近い照合対象の入力データz’を使わない限り、受理されるデータ照合要求Q[0]を作れないことを保証できる。何故なら、秘密鍵xを取り出せるのは、秘匿対象の入力データzを知っている人のみであり、受理される検証鍵g^xを生成できるのは、秘密鍵xを知る人のみであるからである。これにより、照合処理を複数回行った場合や、照合処理を行うデータベース所有者に悪意がある場合でも、照合時にユーザが送出する照合対象の入力データz’を、照合元データ(秘匿対象の入力データ)zを知らずに生成することを防止できる。
次に、本発明の第2の実施例について図面を参照して詳細に説明する。本第2の実施例は、本発明の第2の実施形態の実施例である。
説明のために、まず、本第2の実施例で用いる「電子署名」について説明する。電子署名は(署名鍵生成,署名生成,署名検証)の3つのアルゴリズムから構成される。以下にそれぞれを説明する。
・署名鍵生成アルゴリズム(SigKeyGen)は、セキュリティパラメータkを入力として、署名鍵sk,検証鍵vkを生成する確率的アルゴリズムであり、(sk, vk)←SigKeyGen(1^k)と記す。
・署名生成アルゴリズム(Sign)は、署名鍵sk、署名対象メッセージMを入力として、Mに対する署名σを出力する確率的アルゴリズムであり、(σ,M)←Sign(sk, M)と記す。
・署名検証アルゴリズム(Verify)は、検証鍵vk、署名σ、署名対象メッセージMを入力として、署名の検証結果、受理または不受理を出力する決定的アルゴリズムであり、{受理,不受理}←Verify(vk, σ, M)と記す。
電子署名方式は、任意のメッセージM、署名鍵生成アルゴリズムSigKeyGen(1^k)によって生成された署名鍵sk、および検証鍵vkに対して、確率1で受理←Verify(vk, Sign(sk, M))となる。また、電子署名方式は、署名鍵skを知らない任意の攻撃者に対して、たとえ攻撃者が受理される署名とメッセージの組を複数個得ることができるとしても、受理される署名を生成することができない、という偽造不可能性を満たす。
偽造不可能性を満たす電子署名としては、Schnorr署名、Cramer-Shoup署名などが知られている。本発明は、偽造不可能性を満たすならば署名方式の種類に依らず動作するため、一般の電子署名方式として説明する。
次に、電子署名方式を用いた本発明の第2の実施例を説明する。本発明の第2の実施例の暗号文照合システムの動作は、データ登録フェイズと、暗号文照合フェイズと、の二つのフェイズに大別される。
図15を参照して、データ登録フェイズにおいては、まず、はじめに登録データ生成装置100の鍵生成部101にセキュリティパラメータkが入力され、署名鍵生成アルゴリズムSigKeyGen(1^k)により署名鍵skおよび検証鍵vkが生成される(ステップC1)。ここで、セキュリティパラメータkは電子署名の署名鍵の長さを決めるパラメータである。
次に、登録データ生成装置100の暗号化部102に秘匿対象の入力データzと前記署名鍵skおよび検証鍵vkが入力される(ステップC2)。ここで、秘匿対象の入力データzはNビットのデータであるものとする。
次に、暗号化部102は、入力された入力データzと、前記署名鍵skとから、署名鍵skをBCH誤り訂正符号化して、ENC(sk)を生成する。次に、暗号化部102は、暗号データT[0]=z(+)ENC(sk)を生成する(ステップC3)。ここで、暗号化部102は、署名鍵skの符号ENC(sk)を生成しているが、代わりに署名鍵skを生成するための種(シード)の符号を生成するのでもよい。安全性のため、シードは80ビット程度あることが望ましい。
次に、登録データ生成装置100の登録データ生成部103は、前記暗号データT[0]と、前記検証鍵vkとから、登録データT=(T[0], T[1]=vk)を生成し、記憶装置200に送付する(ステップC4)。
次に、登録データを受信した記憶装置200の識別子管理部201は、登録データTに対して登録データを一意に特定するための識別子IDを発行し、登録データとともに暗号文記憶部202に記憶する(ステップC5)。
図16を参照して、暗号文照合フェイズにおいては、まず、第1データ照合要求装置300Aに照合対象の入力データz’が入力される(ステップD1)。
次に、第1データ照合要求生成部301Aは、照合対象の入力データz’を入力として、乱数RのBCH符号化データENC(R)を生成する。さらに、第1データ照合要求生成部301Aは、第1データ照合要求Q[0]=z’(+)ENC(R)を生成し、第1データ照合判定装置400Aに送付する(ステップD2)。
次に、第1データ照合判定装置400の登録データ受信部401Aは、記憶装置200に記憶されている登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}を受信する(ステップD3)。ここで、T_i=(T_i[0], T_i[1])は前記登録データ生成装置100によって生成された登録データ(登録テンプレート)である。説明のため、m個の登録データが記憶装置200に記憶されているものとし、それぞれ(T_i, ID_i)(iは1からm)と記す。
次に、第1データ照合要求受信部402Aは、第1データ照合要求装置300Aから、第1データ照合要求Q[0]を受信する(ステップD4)。
次に、第1データ照合判定部403Aは、前記登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}と、第1データ照合要求Q[0]を入力として、i=1,…,mに対し、
DEC(T_i[0](+)Q[0]) ・・・(式1)
を計算する。ここで、DEC(x)はxのBCH復号を意味する。登録データT_iを生成する際に入力した秘匿対象の入力データzと、第1データ照合要求Q[0]を生成する際に入力された照合対象の入力データz’とが近い(ハミング距離の意味で)値であるとき、(式1)の結果はsk(+)Rとなる。そうでないときは、復号不可能を意味する記号が出力される。第1データ照合判定部403Aは、結果が復号不可能でなかった登録データT_i[0]に対応する識別子ID_iの集合{ID_i}を判定結果として出力する(ステップD5)。
次に、第1照合結果生成部404Aは、判定結果{ID_i}を入力として、照合要求を一意に特定するメッセージMをランダムに選び、メッセージMと判定結果{ID_i}に対応した登録データの集合{T_i[0]}を第1照合結果として出力する(ステップD6)。ただし、すべてのi=1,…,mに対して,(式1)の結果が復号不可能であった場合、第1照合結果生成部404Aは、該当なしを意味する記号を第1照合結果として出力する。ここで、第1照合結果生成部404Aは、第1照合結果として登録データT_i[0]を出力しているが、第1の実施例と同様に(式1)の演算結果DEC(T_i[0](+)Q[0])としてもよい。その場合は、下記(式2)は第1の実施例に記載した(式2)と同じものとなる。
図17を参照して、次に、第2データ照合要求装置500の第1照合結果受信部501は、第1照合結果としてメッセージMと第1照合結果{T_i[0]}を受信する(ステップD7)。ここで、第1照合結果が該当なしであった場合、照合対象の入力データz’に対応する登録データは登録されていないものとして、以降の動作を停止する。そうでなかった場合は、以降のステップに進む。
次に、復号部502は、第1照合結果{T_i[0]}を入力とし、各iに対して、
DEC(T_i[0](+)z’)=x’ ・・・(式2)
を計算する(ステップD8)。第1照合結果{T_i[0]}には(式1)で復号不可能とならなかった要素が含まれているため、(式2)では復号不可能になることはない。
次に、第2データ照合要求生成部503は、前記復号結果x’と、第1照合結果に含まれるメッセージMを入力とし、署名生成Sign(M, x’)=σを行う。第2データ照合要求生成部503は、第2データ照合要求Q[1]=σを第2データ照合判定装置600に送付する(ステップD9)。
次に、第2データ照合判定装置600の登録データ受信部601は、記憶装置200に記憶されている登録データおよび識別子{(T_1, ID_1),…,(T_m, ID_m)}を受信する(ステップD10)。
次に,第2データ照合要求受信部602は、前記第2データ照合要求Q[1]を受信する(ステップD11)。
次に、第2データ照合判定部603は、前記第2データ照合要求Q[1]と、前記登録データ{(T_1,ID_1), …, (T_m, ID_m)}を入力として、各i=1,…, mに対して
Verify(T_i[1], Q[1], M)
を計算する。第2データ照合判定部603は、結果が受理であったiの集合{i}を第2データ照合判定として出力する(ステップD12)。ここで、本第2の実施例では,第2データ照合判定部603に登録テンプレート{(T_1,ID_1), …, (T_m, ID_m)}を入力しているが、第1データ照合結果に含まれる登録データのみを用いても構わない。
次に、第2照合結果生成部604は、前記第2データ照合判定{i}と、前記登録データおよび識別子{(T_1,ID_1), …, (T_m, ID_m)}を入力として、第2データ照合判定{i}に含まれるiに対応する識別子ID_iの集合{ID_i}を第2照合結果として出力する(ステップD13)。ここで、第2照合結果生成部604の入力を前記登録データおよび識別子{(T_1,ID_1), …, (T_m, ID_m)}としているが、第1データ照合結果に含まれる登録データのみを用いても構わない。
このように本第2の実施例では、秘匿対象の入力データzに近い照合対象の入力データz’を使わない限り、受理されるデータ照合要求Q[0]およびQ[1]を作れないことを保証できる。何故なら、署名鍵skを取り出せるのは、秘匿対象の入力データzを知っている人のみであり、受理される検証鍵vkを生成できるのは、署名鍵skを知る人のみであるからである。これにより、照合処理を複数回行った場合や、照合処理を行うデータベース所有者に悪意がある場合でも、照合時にユーザが送出する照合対象の入力データz’を、照合元データ(秘匿対象の入力データ)zを知らずに生成することを防止できる。
次に本発明の第3の実施例について説明する。本第3の実施例も、本発明の第2の実施形態の実施例である。
第3の実施例では「公開鍵暗号」を用いるため、まず公開鍵暗号について説明する。
公開鍵暗号は(鍵生成,暗号化,復号)の3つのアルゴリズムから構成される。以下にそれぞれを説明する。
・鍵生成アルゴリズム(KeyGen)は、セキュリティパラメータkを入力として、秘密鍵sk,暗号化鍵pkを生成する確率的アルゴリズムであり、(sk,pk)←KeyGen(1^k)と記す。
・暗号化アルゴリズム(Encrypt)は、公開鍵pk、暗号化対象メッセージMを入力として、Mに対する暗号文cipherを出力する確率的アルゴリズムであり、cipher←Encrypt(pk, M)と記す。
・復号アルゴリズム(Decrypt)は、秘密鍵sk、暗号文cipherを入力として、平文M’を出力する決定的アルゴリズムであり、M’←Decrypt(sk, cipher)と記す。
公開鍵暗号方式は、任意のメッセージM、鍵生成アルゴリズムKeyGen(1^k)によって生成された秘密鍵sk、および公開鍵pkに対して、確率1でM←Decrypt(sk, Encrypt(pk, M))となる。また、秘密鍵skを知らない任意の攻撃者に対して、たとえ攻撃者が任意の暗号文に対する平文を複数個得ることができるとしても、暗号化されているデータに関する情報を一切得ることができない、という性質(選択暗号文攻撃に対する識別不可能性)を満たす。
選択暗号文攻撃に対する識別不可能性を満たす公開鍵暗号としては、Cramer-Shoup暗号などが知られている。本発明は、選択暗号文攻撃に対する識別不可能性を満たすならば公開鍵暗号方式の種類に依らず動作するため、一般の公開鍵暗号方式として説明する。
次に、公開鍵暗号方式を用いた本発明の第3の実施例を説明する。本発明の第3の実施例の暗号文照合システムの動作は、データ登録フェイズと、暗号文照合フェイズと、の二つのフェイズに大別される。
図18を参照して、データ登録フェイズにおいては、まず、はじめに登録データ生成装置100の鍵生成部101にセキュリティパラメータkが入力され、鍵生成アルゴリズムKeyGen(1^k)により秘密鍵skおよび公開鍵pkが生成される(ステップC1)。ここで、セキュリティパラメータkは公開鍵暗号の秘密鍵の長さを決めるパラメータである。
次に、登録データ生成装置100の暗号化部102に秘匿対象の入力データzと前記秘密鍵skおよび公開鍵pkが入力される(ステップC2)。ここで、秘匿対象となる入力データzはNビットのデータであるものとする。
次に、暗号化部102は、入力された入力データzと、前記秘密鍵skとから、秘密鍵skをBCH誤り訂正符号化してENC(sk)を生成する。次に、暗号化部102は、暗号データT[0]=z(+)ENC(sk)を生成する(ステップC3)。ここで、暗号化部102は、秘密鍵skの符号ENC(sk)を生成しているが、代わりに秘密鍵skを生成するための種(シード)の符号を生成するのでもよい。安全性のため、シードは80ビット程度あることが望ましい。
次に、登録データ生成装置100の登録データ生成部103は、前記暗号データT[0]と、前記公開鍵pkとから、登録データT=(T[0], T[1]= pk)を生成し、記憶装置200に送付する(ステップC4)。
次に、登録データを受信した記憶装置200の識別子管理部201は、登録データTに対して登録データを一意に特定するための識別子IDを発行し、登録データとともに暗号文記憶部202に記憶する(ステップC5)。
図19を参照して、暗号文照合フェイズにおいては、まず、第1データ照合要求装置300Aに照合対象の入力データz’が入力される(ステップD1)。
次に、第1データ照合要求生成部301Aは、入力データz’を入力として、乱数RのBCH符号化データENC(R)を生成する。さらに、第1データ照合要求生成部301Aは、第1データ照合要求Q[0]=z’(+)ENC(R)を生成し、第1データ照合判定装置400Aに送付する(ステップD2)。
次に、第1データ照合判定装置400Aの登録データ受信部401Aは、記憶装置200に記憶されている登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}を受信する(ステップD3)。ここで、T_i=(T_i[0], T_i[1])は前記登録データ生成装置100によって生成された登録データ(登録テンプレート)である。説明のため、m個の登録データが記憶装置200に記憶されているものとし、それぞれ(T_i, ID_i)(iは1からm)と記す。
次に、第1データ照合要求受信部402Aは、第1データ照合要求装置300Aから、第1データ照合要求Q[0]を受信する(ステップD4)。
次に、第1データ照合判定部403Aは、前記登録データおよびその識別子{(T_1, ID_1), (T_2,ID_2) …, (T_m, ID_m)}と、第1データ照合要求Q[0]を入力として、i=1,…,mに対し、
DEC(T_i[0](+)Q[0]) ・・・(式1)
を計算する。ここで、DEC(x)はxのBCH復号を意味する。登録データT_iを生成する際に入力した秘匿対象の入力データzと、第1データ照合要求Q[0]を生成する際に入力された照合対象の入力データz’とが近い(ハミング距離の意味で)値であるとき、(式1)の結果はsk(+)Rとなる。そうでないときは、復号不可能を意味する記号が出力される。第1データ照合判定部403Aは、結果が復号不可能でなかった登録データの暗号データT_i[0]に対応する識別子ID_iの集合{ID_i}を判定結果として出力する(ステップD5)。
次に、第1照合結果生成部404Aは、判定結果{ID_i}を入力として、照合要求を一意に特定するメッセージMをランダムに選び、メッセージMと判定結果{ID_i}に対応した登録データの公開鍵の集合{T_i[1]}を第1照合結果として出力する(ステップD6)。ただし、すべてのi=1,…,mに対して,(式1)の結果が復号不可能であった場合、該当なしを意味する記号を第1照合結果として出力する。ここで、第1照合結果生成部404Aは、第1照合結果として登録データの公開鍵T_i[1]を出力しているが、第1の実施例と同様に(式1)の演算結果DEC(T_i[0](+)Q[0])としてもよい。その場合は、下記(式2)は第1の実施例に記載した(式2)と同じものとなる。
図20を参照して、次に、第2データ照合要求装置500の第1照合結果受信部501は、第1照合結果としてメッセージMと第1照合結果{T_i[1]}とを受信する(ステップD7)。ここで、第1照合結果が該当なしであった場合、照合対象の入力データz’に対応する暗号データは登録されていないものとして、以降の動作を停止する。そうでなかった場合は、以降のステップに進む。
次に、復号部502は、第1照合結果{T_i[1]}を入力とし、各iに対して、
DEC(T_i[1](+)z’)=x’ ・・・(式2)
を計算する(ステップD8)。第1照合結果{T_i[1]}には(式1)で復号不可能とならなかった要素が含まれているため、(式2)では復号不可能になることはない。
次に、第2データ照合要求生成部503は、前記復号結果x’と、第1照合結果に含まれるメッセージMを入力とし、暗号化Encrypt(x’, M)=cipherを行う。第2データ照合要求生成部503は、第2データ照合要求Q[1]=cipherを第2データ照合判定装置600に送付する(ステップD9)。
次に、第2データ照合判定装置600の登録データ受信部601は、記憶装置200に記憶されている登録データおよび識別子{(T_1, ID_1),…,(T_m, ID_m)}を受信する(ステップD10)。
次に,第2データ照合要求受信部602は、前記第2データ照合要求Q[1]を受信する(ステップD11)。
次に、第2データ照合判定部603は、前記第2データ照合要求Q[1]と、前記登録データ{(T_1,ID_1), …, (T_m, ID_m)}を入力として、各i=1,…, mに対して
Decrypt (T_i[1], Q[1])
を計算する。第2データ照合判定部603は、結果が受理であったiの集合{i}を第2データ照合判定として出力する(ステップD12)。ここで、本第3の実施例では,第2データ照合判定部603に登録データ{(T_1,ID_1), …, (T_m, ID_m)}を入力しているが、第1データ照合結果{T_i[1]}に含まれる登録データのみを用いても構わない。
次に、第2照合結果生成部604は、前記第2データ照合判定{i}と、前記登録データおよび識別子{(T_1,ID_1), …, (T_m, ID_m)}を入力として、第2データ照合判定{i}に含まれるiに対応する識別子ID_iの集合{ID_i}を第2照合結果として出力する(ステップD13)。ここで、第2照合結果生成部604の入力を前記登録データおよび識別子{(T_1,ID_1), …, (T_m, ID_m)}としているが、第1データ照合結果{T_i[1]}に含まれる登録データのみを用いても構わない。
このように第3の実施例では、秘匿対象の入力データzに近い照合対象の入力データz’を使わない限り、受理されるデータ照合要求Q[0]およびQ[1]を作れないことを保証できる。何故なら、秘密鍵skを取り出せるのは、秘匿対象の入力データzを知っている人のみであり、受理される公開鍵pkを生成できるのは、秘密鍵skを知る人のみであるからである。これにより、照合処理を複数回行った場合や、照合処理を行うデータベース所有者に悪意がある場合でも、照合時にユーザが送出する照合対象の入力データz’を、照合元データ(秘匿対象の入力データ)zを知らずに生成することを防止できる。
[他の実施例]
また、本発明は、第2の実施例と第3の実施例に記載したように電子署名や公開鍵暗号を用いる以外にも、鍵交換を行った後にメッセージ認証コード(MAC, Message Authentication Codes)を利用して確認を行う方法でもよい。それ以外にも照合要求者が得られたxが正しい値であることを照合処理側で確認できる方法であれば適用可能である。
なお、本発明に記載した方法は、コンピュータに実行させることのできるプログラムとして、フレキシブルディスク、ハードディスクなどの磁気ディスク、CD-ROM、DVDなどの光ディスク、光磁気ディスク(MO)、半導体メモリなどの記録媒体に格納して頒布することもできる。
また、この記録媒体としては、プログラムを記憶でき、かつコンピュータが読み取り可能な記録媒体であれば、その記憶形式は何れの形態であってもよい。
また、記録媒体からコンピュータにインストールされたプログラムの指示に基づきコンピュータ上で稼働しているオペレーティングシステムや、データベース管理ソフト、ネットワークソフト等のミドルウェアなどが各処理の一部を実行してもよい。
さらに、本発明における記憶媒体は、コンピュータと独立した媒体に限らず、LANやインターネットなどにより伝送されたプログラムをダウンロードして記憶または一時記憶した記憶媒体も含まれる。
また、記憶媒体は1つに限らず、複数の媒体から上記実施形態における処理が実行される場合も本発明における記憶媒体に含まれ、媒体構成は何れの構成であってもよい。
本発明におけるコンピュータは、記録媒体に記憶されたプログラムに基づき各処理を実行するものであって、パソコンなどからなる装置、複数の装置がネットワーク接続されたシステムなどの何れの構成であってもよい。
また、本発明におけるコンピュータとは、パソコンに限らず、情報処理機器に含まれる演算処理装置を含み、プログラムによって本発明の機能を実現することが可能な機器、装置である。
なお、本発明は、上記実施形態そのままに限定されるものではなく、実施段階ではその要旨を逸脱しない範囲で構成要素を変形して具体化できる。また、複数の構成要素の適宜な組合せにより種々の発明を形成できる。例えば、実施形態に示される全構成要素から幾つかの構成要素を削除してもよい。また、構成要素を適宜組合せてもよい。
上記の実施形態の一部又は全部は、以下の付記のようにも記載されうるが、以下には限られない。
(付記1)
秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと検証鍵とから登録データを生成する登録データ生成部と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、
前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成部と、
前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力するデータ照合判定部と、
前記判定結果に対応した前記登録テンプレートの一部または全部を含む照合結果を出力する照合結果生成部と、
前記照合結果からデータを復元して、復元結果を出力するデータ復元部と、
を含む、暗号文照合システム。
(付記2)
セキュリティパラメータから、前記秘密鍵と前記検証鍵とを生成する鍵生成部を更に含む、付記1に記載の暗号文照合システム。
(付記3)
前記暗号化部は、前記秘密鍵を誤り訂正符号化して生成された誤り訂正符号と、前記秘匿対象の入力データとの排他的論理和をとって、前記暗号データを計算し、
前記データ照合要求生成部は、前記照合対象の入力データと、前記乱数を誤り訂正符号化して得られる誤り訂正符号との排他的論理和をとって、前記データ照合要求を生成する、
付記1又は2に記載の暗号文照合システム。
(付記4)
前記データ照合判定部は、前記登録テンプレートに含まれる前記暗号データと前記データ照合要求との排他的論理和を誤り訂正復号して、前記判定結果を出力する、付記3に記載の暗号文照合システム。
(付記5)
前記照合結果生成部は、前記判定結果に、当該判定結果に対応する前記登録テンプレートに含まれる前記検証鍵を付加したものを、前記照合結果として出力する、付記4に記載の暗号文照合システム。
(付記6)
前記データ復元部は、前記照合結果に含まれる前記判定結果と前記乱数との排他的論理和を計算して、前記復号結果を得、前記検証鍵を用いて該復号結果を検証する、付記5に記載の暗号文照合システム。
(付記7)
前記照合結果生成部は、前記判定結果に対応する前記登録テンプレートに含まれる前記暗号データを、前記照合結果として出力する、付記4に記載の暗号文照合システム。
(付記8)
前記データ復元部は、前記照合結果と前記照合対象の入力データとの排他的論理和を誤り訂正復号して、前記復号結果を得る、付記7に記載の暗号文照合システム。
(付記9)
署名鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと検証鍵とから登録データを生成する登録データ生成部と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、
前記署名鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成部と、
前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定部と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成部と、
前記第1照合結果を復号して、復号結果を出力する復号部と、
前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2データ照合要求を生成する第2データ照合要求生成部と、
前記第2データ照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定部と、
前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成部と、
を含む、暗号文照合システム。
(付記10)
セキュリティパラメータから、前記署名鍵と前記検証鍵とを生成する鍵生成部を更に含む、付記9に記載の暗号文照合システム。
(付記11)
前記暗号化部は、前記署名鍵を誤り訂正符号化して生成された誤り訂正符号と、前記秘匿対象の入力データとの排他的論理和をとって、前記暗号データを計算し、
前記第1データ照合要求生成部は、前記照合対象の入力データと、前記乱数を誤り訂正符号化して得られる誤り訂正符号との排他的論理和をとって、前記第1データ照合要求を生成する、
付記9又は10に記載の暗号文照合システム。
(付記12)
前記第1データ照合判定部は、前記登録テンプレートの前記登録データに含まれる前記暗号データと前記第1データ照合要求との排他的論理和を誤り訂正復号して、結果が復号不可能でなかった前記暗号データに対応する識別子の集合を、前記判定結果として出力する、付記11に記載の暗号文照合システム。
(付記13)
前記第1照合結果生成部は、前記ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの前記登録データに含まれる前記暗号データとの組み合わせを、前記第1照合結果として出力する、付記12に記載の暗号文照合システム。
(付記14)
前記復号部は、前記第1照合結果に含まれる前記暗号データと前記照合対象の入力データとの排他的論理和を誤り訂正復号して、前記復号結果を得る、付記13に記載の暗号文照合システム。
(付記15)
前記第1照合結果生成部は、前記ランダムに選んだメッセージと、前記判定結果との組み合わせを、前記第1照合結果として出力する、付記12に記載の暗号化照合システム。
(付記16)
前記復号部は、前記第1照合結果に含まれる前記判定結果と前記乱数との排他的論理和を計算して、前記復号結果を得る、付記15に記載の暗号文照合システム。
(付記17)
前記第2データ照合要求生成部は、前記復号結果と前記第1照合結果に含まれる前記メッセージとを署名生成して、前記第2照合要求を生成する、付記12乃至16のいずれか1項に記載の暗号文照合システム。
(付記18)
前記第2データ照合判定部は、前記第2照合要求と、前記メッセージと、前記記憶部に記録されている前記登録テンプレートの前記登録データとを署名検証して、結果が受理であった識別子の番号の集合を前記第2データ照合判定として生成する、付記17に記載の暗号文照合システム。
(付記19)
前記第2照合結果生成部は、前記第2データ照合判定に対応する、前記登録テンプレートに対応する前記登録データの識別子を、前記第2照合結果として出力する、付記18に記載の暗号文照合システム。
(付記20)
前記第2照合結果生成部は、前記第2データ照合判定に対応する、前記第1データ照合結果に含まれる前記登録データの識別子を、前記第2照合結果として出力する、付記18に記載の暗号文照合システム。
(付記21)
秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと公開鍵とから登録データを生成する登録データ生成部と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、
前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成部と、
前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定部と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成部と、
前記第1照合結果を復号して、復号結果を出力する復号部と、
前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2データ照合要求を生成する第2データ照合要求生成部と、
前記第2データ照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定部と、
前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成部と、
を含む、暗号文照合システム。
(付記22)
セキュリティパラメータから、前記秘密鍵と前記公開鍵とを生成する鍵生成部を更に含む、付記21に記載の暗号文照合システム。
(付記23)
前記暗号化部は、前記秘密鍵を誤り訂正符号化して生成された誤り訂正符号と、前記秘匿対象の入力データとの排他的論理和をとって、前記暗号データを計算し、
前記第1データ照合要求生成部は、前記照合対象の入力データと、前記乱数を誤り訂正符号化して得られる誤り訂正符号との排他的論理和をとって、前記第1データ照合要求を生成する、
付記21又は22に記載の暗号文照合システム。
(付記24)
前記第1データ照合判定部は、前記登録テンプレートの前記登録データに含まれる前記暗号データと前記第1データ照合要求との排他的論理和を誤り訂正復号して、結果が復号不可能でなかった前記暗号データに対応する識別子の集合を、前記判定結果として出力する、付記23に記載の暗号文照合システム。
(付記25)
前記第1照合結果生成部は、前記ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの前記登録データに含まれる前記公開鍵との組み合わせを、前記第1照合結果として出力する、付記24に記載の暗号文照合システム。
(付記26)
前記復号部は、前記第1照合結果に含まれる前記公開鍵と前記照合対象の入力データとの排他的論理和を誤り訂正復号して、前記復号結果を得る、付記25に記載の暗号文照合システム。
(付記27)
前記第1照合結果生成部は、前記ランダムに選んだメッセージと、前記判定結果との組み合わせを、前記第1照合結果として出力する、付記24に記載の暗号化照合システム。
(付記28)
前記復号部は、前記第1照合結果に含まれる前記判定結果と前記乱数との排他的論理和を計算して、前記復号結果を得る、付記27に記載の暗号文照合システム。
(付記29)
前記第2データ照合要求生成部は、前記復号結果と前記第1照合結果に含まれる前記メッセージとを暗号化して、前記第2照合要求を生成する、付記24乃至28のいずれか1項に記載の暗号文照合システム。
(付記30)
前記第2データ照合判定部は、前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとを復号して、結果が受理であった識別子の番号の集合を前記第2データ照合判定として生成する、付記29に記載の暗号文照合システム。
(付記31)
前記第2照合結果生成部は、前記第2データ照合判定に対応する、前記登録テンプレートに対応する前記登録データの識別子を、前記第2照合結果として出力する、付記30に記載の暗号文照合システム。
(付記32)
前記第2照合結果生成部は、前記第2データ照合判定に対応する、前記第1データ照合結果に含まれる前記登録データの識別子を、前記第2照合結果として出力する、付記30に記載の暗号文照合システム。
(付記33)
付記1乃至32のいずれか1項に記載の暗号文照合システムを備え、前記秘匿対象の入力データおよび前記照合対象の入力データが生体情報であり、前記秘匿対象の入力データと前記照合対象の入力データとが類似している否かを判定することによって生体認証を行うことを特徴とする生体認証システム。
(付記34)
第1のクライアントが、秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算し、前記暗号データと検証鍵とから登録データを生成し、サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶するデータ登録ステップと、
第2のクライアントが、前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化したデータ照合要求を生成し、前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力し、前記判定結果に対応した前記登録テンプレートの一部または全部を含む照合結果を出力し、前記第2のクライアントが、前記照合結果からデータを復元して、復元結果を出力する、暗号文照合ステップと、
を含む、暗号文照合方法。
(付記35)
第1のクライアントが、秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化ステップと、
前記第1のクライアントが、前記暗号データと検証鍵とから登録データを生成する登録データ生成ステップと、
サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶するステップと、
第2のクライアントが、前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成ステップと、
前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力するデータ照合判定ステップと、
前記サーバが、前記判定結果に対応した前記登録テンプレートの一部または全部を含む照合結果を出力する照合結果生成ステップと、
前記第2のクライアントが、前記照合結果からデータを復元して、復元結果を出力するデータ復元ステップと、
を含む、暗号文照合方法。
(付記36)
第1のクライアントが、署名鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算し、前記暗号データと検証鍵とから登録データを生成し、サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する、データ登録ステップと、
第2のクライアントが、前記署名鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成し、前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力し、ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力し、前記第2のクライアントが、前記第1照合結果を復号して、復号結果を出力し、前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2照合要求を生成し、前記サーバが、前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成し、前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する、暗号文照合ステップと、
を含む、暗号文照合方法。
(付記37)
第1のクライアントが、署名鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化ステップと、
前記第1のクライアントが、前記暗号データと検証鍵とから登録データを生成する登録データ生成ステップと、
サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶するステップと、
第2のクライアントが、前記署名鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成ステップと、
前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定ステップと、
前記サーバが、ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成ステップと、
前記第2のクライアントが、前記第1照合結果を復号して、復号結果を出力する復号ステップと、
前記第2のクライアントが、前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2照合要求を生成する第2データ照合要求生成ステップと、
前記サーバが、前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定ステップと、
前記サーバが、前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成ステップと、
を含む、暗号文照合方法。
(付記38)
第1のクライアントが、秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算し、前記暗号データと公開鍵とから登録データを生成し、サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する、データ登録ステップと、
第2のクライアントが、前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成し、前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力し、ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力し、前記第2のクライアントが、前記第1照合結果を復号して、復号結果を出力し、前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2照合要求を生成し、前記サーバが、前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成し、前記第2データ照合判定に対応する、前記登録データの識別子を、第2照合結果として出力する、暗号文照合ステップと、
を含む、暗号文照合方法。
(付記39)
第1のクライアントが、秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化ステップと、
前記第1のクライアントが、前記暗号データと公開鍵とから登録データを生成する登録データ生成ステップと、
サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶するステップと、
第2のクライアントが、前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成ステップと、
前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定ステップと、
前記サーバが、ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成ステップと、
前記第2のクライアントが、前記第1照合結果を復号して、復号結果を出力する復号ステップと、
前記第2のクライアントが、前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2照合要求を生成する第2データ照合要求生成ステップと、
前記サーバが、前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定ステップと、
前記サーバが、前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成ステップと、
を含む、暗号文照合方法。
(付記40)
秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化処理と、
前記暗号データと検証鍵とから登録データを生成する登録データ生成処理と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する処理と、
前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成処理と、
前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力するデータ照合判定処理と、
前記判定結果に対応した前記登録テンプレートの一部または全部を含む照合結果を出力する照合結果生成処理と、
前記照合結果からデータを復元して、復元結果を出力するデータ復元処理と、
をコンピュータに実行させる、暗号文照合プログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記41)
署名鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化処理と、
前記暗号データと検証鍵とから登録データを生成する登録データ生成処理と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する処理と、
前記署名鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成処理と、
前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定処理と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成処理と、
前記第1照合結果を復号して、復号結果を出力する復号処理と、
前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2照合要求を生成する第2データ照合要求生成処理と、
前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定処理と、
前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成処理と、
をコンピュータに実行させる、暗号文照合プログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記42)
秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化処理と、
前記暗号データと公開鍵とから登録データを生成する登録データ生成処理と、
該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する処理と、
前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成処理と、
前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定処理と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成処理と、
前記第1照合結果を復号して、復号結果を出力する復号処理と、
前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2照合要求を生成する第2データ照合要求生成処理と、
前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定処理と、
前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成処理と、
をコンピュータに実行させる、暗号文照合プログラムを記録したコンピュータ読み取り可能な記録媒体。
(付記43)
セキュリティパラメータから、秘密鍵と検証鍵とを生成する鍵生成部と、
前記秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと前記検証鍵とから登録データを生成する登録データ生成部と、
を有する登録データ生成装置。
(付記44)
付記43に記載の登録データ生成装置で生成された前記登録データを入力として、前記登録データを一意に特定する識別子を管理する識別子管理部と、
前記識別子と前記登録データを含む登録テンプレートを記憶する記憶部と、
を有する記憶装置。
(付記45)
秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成部と、
照合結果を受信する照合結果受信部と、
前記照合結果からデータを復元して、復元結果を出力するデータ復元部と、
を有するデータ照合要求装置。
(付記46)
付記44に記載の記憶装置に記憶されている前記登録テンプレートを受信する登録データ受信部と、
付記45に記載のデータ照合要求装置から前記データ照合要求を受信するデータ照合要求受信部と、
前記登録テンプレートと前記データ照合要求とを照合して、判定結果を出力するデータ照合判定部と、
前記判定結果に対応した前記登録テンプレートの一部または全部を含む照合結果を出力する照合結果生成部と、
を有するデータ照合装置。
(付記47)
セキュリティパラメータから、署名鍵と検証鍵とを生成する鍵生成部と、
前記署名鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと前記検証鍵とから登録データを生成する登録データ生成部と、
を有する登録データ生成装置。
(付記48)
付記47に記載の登録データ生成装置で生成された前記登録データを入力として、前記登録データを一意に特定する識別子を管理する識別子管理部と、
前記識別子と前記登録データを含む登録テンプレートを記憶する記憶部と、
を有する記憶装置。
(付記49)
署名鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成部と、
第1照合結果を受信する第1照合結果受信部と、
前記第1照合結果を復号して、復号結果を出力する復号部と、
前記復号結果と前記第1照合結果に含まれるメッセージとから、第2データ照合要求を生成する第2データ照合要求生成部と、
を有するデータ照合要求装置。
(付記50)
付記48に記載の記憶装置から前記登録テンプレートを受信する登録データ受信部と、
付記49に記載のデータ照合要求装置から前記第1データ照合要求を受信する第1データ照合要求受信部と、
前記登録テンプレートと前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定部と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成部と、
を有する第1データ照合判定装置。
(付記51)
付記48に記載の記憶装置から前記登録テンプレートを受信する登録データ受信部と、
付記49に記載のデータ照合要求装置から前記第2データ照合要求を受信する第2データ照合要求受信部と、
前記第2データ照合要求と前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定部と、
前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成部と、
を有する第2データ照合判定装置。
(付記52)
セキュリティパラメータから、秘密鍵と公開鍵とを生成する鍵生成部と、
前記秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
前記暗号データと前記検証鍵とから登録データを生成する登録データ生成部と、
を有する登録データ生成装置。
(付記53)
付記52に記載の登録データ生成装置で生成された前記登録データを入力として、前記登録データを一意に特定する識別子を管理する識別子管理部と、
前記識別子と前記登録データを含む登録テンプレートを記憶する記憶部と、
を有する記憶装置。
(付記54)
秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成部と、
第1照合結果を受信する第1照合結果受信部と、
前記第1照合結果を復号して、復号結果を出力する復号部と、
前記復号結果と前記第1照合結果に含まれるメッセージとから、第2データ照合要求を生成する第2データ照合要求生成部と、
を有するデータ照合要求装置。
(付記55)
付記53に記載の記憶装置から前記登録テンプレートを受信する登録データ受信部と、
付記54に記載のデータ照合要求装置から前記第1データ照合要求を受信する第1データ照合要求受信部と、
前記登録テンプレートと前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定部と、
ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成部と、
を有する第1データ照合判定装置。
(付記56)
付記53に記載の記憶装置から前記登録テンプレートを受信する登録データ受信部と、
付記54に記載のデータ照合要求装置から前記第2データ照合要求を受信する第2データ照合要求受信部と、
前記第2データ照合要求と前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定部と、
前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成部と、
を有する第2データ照合判定装置。
(付記57)
登録データ生成装置と、記憶装置と、データ照合要求装置と、データ照合判定装置とを備える暗号文照合システムであって、
前記登録データ生成装置は、
セキュリティパラメータを入力とし、秘密鍵および検証鍵を出力する鍵生成部と、
秘匿対象の固定長の入力データと、前記秘密鍵を入力として、第1の平文を第1の鍵で暗号化した第1の暗号文と、第2の平文を第2の鍵で暗号化した第2の暗号文のビットごとの排他的論理和が、前記第1の平文と前記第2の平文のビットごとの排他的論理和を、前記第1の鍵と前記第2の鍵のビットごとの排他的論理和で暗号化した暗号文となるような、暗号文を出力する暗号化部と、
前記検証鍵および前記秘密鍵と、前記暗号文を入力として、前記暗号化部が出力する暗号データに対応する前記秘匿対象の入力データが、前記データ照合要求装置に入力された照合対象の入力データとのハミング距離が一定数以内であることを判断するためのデータである登録データを出力する登録データ生成部とを備え、
前記記憶装置は、
前記登録データ生成装置が出力した登録データを入力として、前記登録データを一意に特定する識別子を管理する識別子管理部と、
前記識別子と、前記登録データ生成装置が出力した登録データとを含む登録テンプレートを記憶する記憶部とを備え、
前記データ照合要求装置は、
前記照合対象の入力データを入力とし、前記秘密鍵を使用せずに乱数を用いて前記照合対象の入力データに秘匿処理を施したデータ照合要求を出力するデータ照合要求生成部と、
前記データ照合要求に対応して前記データ照合判定装置が生成した照合結果を受信する照合結果受信部と、
前記照合結果を入力として、秘密鍵を復元するデータ復元部とを備え、
前記データ照合判定装置は、
前記記憶装置に記憶されている登録テンプレートを受信する登録データ受信部と、
前記データ照合要求装置から前記データ照合要求を受信するデータ照合要求受信部と、
前記登録テンプレートと、前記データ照合要求を入力として、前記データ照合要求として秘匿されている照合データと前記暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力するデータ照合判定部と、
前記判定結果と、前記登録テンプレートを入力として、該判定結果に対応した暗号テンプレートの一部または全部、または該判定結果に対応した登録テンプレートが存在しないことを意味する記号を含む照合結果を出力する照合結果生成部とを備える
ことを特徴とした暗号文照合システム。
(付記58)
付記57に記載の暗号文照合システムであって、前記登録データ生成装置の前記暗号化部は、前記秘密鍵skと平文Zに対して、前記秘密鍵skを線形性を有する誤り訂正符号で符号化し、その符号化結果である符号語と、前記平文Zとのベクトル上の和を計算した結果を、前記暗号文として出力することを特徴とした暗号文照合システム。
(付記59)
付記57に記載の暗号文照合システムであって、前記登録データ生成装置の前記暗号化部は、前記秘密鍵skと平文Zに対して、前記秘密鍵skを生成する際に利用した種seedを線形性を有する誤り訂正符号で符号化し、その符号化結果である符号語と、前記平文Zとのベクトル上の和を計算した結果を、前記暗号文として出力することを特徴とした暗号文照合システム。
(付記60)
登録データ生成装置と、記憶装置と、第1データ照合要求装置と、第1データ照合判定装置と、第2データ照合要求装置と、第2データ照合判定装置とを備える暗号文照合システムであって、
前記登録データ生成装置は、
セキュリティパラメータを入力とし、署名の検証鍵および署名鍵を出力する鍵生成部と、
秘匿対象の固定長の入力データと、前記署名鍵を入力として、第1の平文を第1の鍵で暗号化した第1の暗号文と、第2の平文を第2の鍵で暗号化した第2の暗号文のビットごとの排他的論理和が、前記第1の平文と前記第2の平文のビットごとの排他的論理和を、前記第1の鍵と前記第2の鍵のビットごとの排他的論理和で暗号化した暗号文となるような、暗号文を出力する暗号化部と、
前記検証鍵および前記署名鍵と、前記暗号文を入力として、前記暗号化部が出力する暗号データに対応する前記秘匿対象の入力データが、前記第1データ照合要求装置および前記第2データ照合要求装置に入力された照合対象の入力データとのハミング距離が一定数以内であることを判断するためのデータである登録データを出力する登録データ生成部とを備え、
前記記憶装置は、
前記登録データ生成装置が出力した登録データを入力として、前記登録データを一意に特定する識別子を管理する識別子管理部と、
前記識別子と、前記登録データ生成装置が出力した登録データを含む登録テンプレートを記憶する記憶部とを備え、
前記第1データ照合要求装置は、
前記照合対象の入力データを入力とし、前記署名鍵を使用せずに乱数を用いて前記照合対象の入力データに秘匿処理を施した第1データ照合要求を出力する第1データ照合要求生成部を備え、
前記第1データ照合判定装置は、
前記記憶装置に記憶されている登録テンプレートを受信する登録データ受信部と、
前記第1データ照合要求装置から前記第1データ照合要求を受信する第1データ照合要求受信部と、
前記登録テンプレートと、前記第1データ照合要求を入力として、前記第1データ照合要求として秘匿されている照合データと前記暗号データとして秘匿されている登録データとの照合を行い、判定結果を出力する第1データ照合判定部と、
前記判定結果と、前記登録テンプレートを入力として、照合要求を一意に特定するメッセージMと、前記判定結果に対応した暗号テンプレートの一部または全部、または前記判定結果に対応した登録テンプレートが存在しないことを意味する記号を含む第1照合結果を出力する第1照合結果生成部とを備え、
前記第2データ照合要求装置は、
前記第1データ照合判定装置から前記第1照合結果を受信する第1照合結果受信部と、
前記第1照合結果と、前記照合対象の入力データを入力とし、前記第1照合結果に含まれる暗号データの復号を行い、復号結果を出力する復号部と、
前記復号結果と、前記第1照合結果に含まれるメッセージMを入力とし、第2照合要求を生成する第2データ照合要求生成部とを備え、
前記第2データ照合判定装置は、
前記記憶装置に記憶されている登録テンプレートを受信する登録データ受信部と、
前記第2データ照合要求装置から前記第2照合要求を受信する第2データ照合要求受信部と、
前記登録テンプレートと前記第2照合要求を入力として、第2データ照合判定を生成する第2データ照合判定部と、
前記第2データ照合判定と、前記登録テンプレートを入力として、第2照合結果を出力する第2照合結果生成部とを備える
ことを特徴とした暗号文照合システム。
(付記61)
付記60に記載の暗号文照合システムであって、前記登録データ生成装置の前記暗号化部は、前記署名鍵skと平文Zに対して、前記署名鍵skを線形性を有する誤り訂正符号で符号化し、その符号化結果である符号語と、前記平文Zとのベクトル上の和を計算した結果を、前記暗号文として出力することを特徴とした暗号文照合システム。
(付記62)
付記60に記載の暗号文照合システムであって、前記登録データ生成装置の前記暗号化部は、前記署名鍵skと平文Zに対して、前記署名鍵skを生成する際に利用した種seedを線形性を有する誤り訂正符号で符号化し、その符号化結果である符号語と、前記平文Zとのベクトル上の和を計算した結果を、前記暗号文として出力することを特徴とした暗号文照合システム。
(付記63)
付記61又は62に記載の暗号文照合システムであって、
前記第1照合結果は、前記署名鍵skの符号化結果である符号語と、前記平文Zとのベクトル上の和を計算した結果と、毎回異なる値である可能性の高い前記メッセージ nonceを含み、
前記第2データ照合要求は、前記署名鍵skを用いて生成した前記メッセージ nonce に対する署名を含む、
ことを特徴とした暗号文照合システム。
(付記64)
付記61又は62に記載の暗号文照合システムであって、
前記第1照合結果は、前記署名鍵skの符号化結果である符号語と、前記平文Zとのベクトル上の和を計算した結果と、毎回異なる値である可能性の高い前記メッセージ nonceを前記検証鍵vkを用いて暗号化した暗号文を含み、
前記第2データ照合要求は、前記署名鍵skを用いて前記暗号文を復号した結果を含む、
ことを特徴とした暗号文照合システム。
本発明の活用例として、生体情報を保護した認証が挙げられる。データ登録フェイズにおける秘匿対象の入力データと、暗号文照合フェイズにおける照合対象の入力データを、指紋や静脈などから取得した生体情報とする。このことで、生体情報を秘匿(暗号化)したまま、記憶装置に格納された暗号化された生体データと、データ照合要求装置(第1データ照合要求装置)から送出された暗号化された生体データが同一人物から採取したものであるか否かを、二つの入力データのハミング距離が一定数以下となるかどうかにより判定することが可能となり、認証を行うことが可能となる。生体情報は、常に安定して同一のデータが取得できるわけではないが、同じ人物から取得されるデータが類似している(ハミング距離が小さいデータが取得できる)と仮定できるため、本発明の生体認証への活用は産業上有用であると考えられる。
100 登録データ生成装置
101 鍵生成部
102 暗号化部
103 登録データ生成部
200 記憶装置
201 識別子管理部
202 暗号文記憶部
300 データ照合要求装置
300A 第1データ照合要求装置
301 データ照合要求生成部
301A 第1データ照合要求生成部
302 照合結果受信部
303 データ復元部
400 データ照合判定装置
400A 第1データ照合判定装置
401 登録データ受信部
401A 登録データ受信部
402 データ照合要求受信部
402A 第1データ照合要求受信部
403 データ照合判定部
403A 第1データ照合判定部
404 照合結果生成部
404A 第1照合結果生成部
500 第2データ照合要求装置
501 第1照合結果受信部
502 復号部
503 第2データ照合要求生成部
600 第2データ照合判定装置
601 登録データ受信部
602 第2データ照合要求受信部
603 第2データ照合判定部
604 第2照合結果生成部
この出願は、2014年11月5日に出願された日本出願特願2014−225102号を基礎とする優先権を主張し、その開示の全てをここに取り込む。

Claims (10)

  1. 秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
    前記暗号データと検証鍵とから登録データを生成する登録データ生成部と、
    該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、
    前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成部と、
    前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力するデータ照合判定部と、
    前記判定結果に対応した前記登録テンプレートの一部または全部を含む照合結果を出力する照合結果生成部と、
    前記照合結果からデータを復元して、復元結果を出力するデータ復元部と、
    を含む、暗号文照合システム。
  2. 署名鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
    前記暗号データと検証鍵とから登録データを生成する登録データ生成部と、
    該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、
    前記署名鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成部と、
    前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定部と、
    ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成部と、
    前記第1照合結果を復号して、復号結果を出力する復号部と、
    前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2データ照合要求を生成する第2データ照合要求生成部と、
    前記第2データ照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定部と、
    前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成部と、
    を含む、暗号文照合システム。
  3. 秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化部と、
    前記暗号データと公開鍵とから登録データを生成する登録データ生成部と、
    該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する記憶装置と、
    前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成部と、
    前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定部と、
    ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成部と、
    前記第1照合結果を復号して、復号結果を出力する復号部と、
    前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2データ照合要求を生成する第2データ照合要求生成部と、
    前記第2データ照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定部と、
    前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成部と、
    を含む、暗号文照合システム。
  4. 請求項1乃至3のいずれか1項に記載の暗号文照合システムを備え、前記秘匿対象の入力データおよび前記照合対象の入力データが生体情報であり、前記秘匿対象の入力データと前記照合対象の入力データとが類似している否かを判定することによって生体認証を行うことを特徴とする生体認証システム。
  5. 第1のクライアントが、秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算し、前記暗号データと検証鍵とから登録データを生成し、サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶するデータ登録ステップと、
    第2のクライアントが、前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化したデータ照合要求を生成し、前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力し、前記判定結果に対応した前記登録テンプレートの一部または全部を含む照合結果を出力し、前記第2のクライアントが、前記照合結果からデータを復元して、復元結果を出力する、暗号文照合ステップと、
    を含む、暗号文照合方法。
  6. 第1のクライアントが、署名鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算し、前記暗号データと検証鍵とから登録データを生成し、サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する、データ登録ステップと、
    第2のクライアントが、前記署名鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成し、前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力し、ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力し、前記第2のクライアントが、前記第1照合結果を復号して、復号結果を出力し、前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2照合要求を生成し、前記サーバが、前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成し、前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する、暗号文照合ステップと、
    を含む、暗号文照合方法。
  7. 第1のクライアントが、秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算し、前記暗号データと公開鍵とから登録データを生成し、サーバが、該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する、データ登録ステップと、
    第2のクライアントが、前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成し、前記サーバが、前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力し、ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力し、前記第2のクライアントが、前記第1照合結果を復号して、復号結果を出力し、前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2照合要求を生成し、前記サーバが、前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成し、前記第2データ照合判定に対応する、前記登録データの識別子を、第2照合結果として出力する、暗号文照合ステップと、
    を含む、暗号文照合方法。
  8. 秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化処理と、
    前記暗号データと検証鍵とから登録データを生成する登録データ生成処理と、
    該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する処理と、
    前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化したデータ照合要求を生成するデータ照合要求生成処理と、
    前記記憶部に記憶された前記登録テンプレートと、前記データ照合要求とを照合して、判定結果を出力するデータ照合判定処理と、
    前記判定結果に対応した前記登録テンプレートの一部または全部を含む照合結果を出力する照合結果生成処理と、
    前記照合結果からデータを復元して、復元結果を出力するデータ復元処理と、
    をコンピュータに実行させる、暗号文照合プログラムを記録したコンピュータ読み取り可能な記録媒体。
  9. 署名鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化処理と、
    前記暗号データと検証鍵とから登録データを生成する登録データ生成処理と、
    該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する処理と、
    前記署名鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成処理と、
    前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定処理と、
    ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成処理と、
    前記第1照合結果を復号して、復号結果を出力する復号処理と、
    前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2照合要求を生成する第2データ照合要求生成処理と、
    前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定処理と、
    前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成処理と、
    をコンピュータに実行させる、暗号文照合プログラムを記録したコンピュータ読み取り可能な記録媒体。
  10. 秘密鍵を用いて秘匿対象の入力データを暗号化して、暗号データを計算する暗号化処理と、
    前記暗号データと公開鍵とから登録データを生成する登録データ生成処理と、
    該登録データを、当該登録データを一意に特定するための識別子とともに記憶部に登録テンプレートとして記憶する処理と、
    前記秘密鍵を使用せずに乱数を用いて照合対象の入力データを暗号化した第1データ照合要求を生成する第1データ照合要求生成処理と、
    前記記憶部に記憶された前記登録テンプレートと、前記第1データ照合要求とを照合して、判定結果を出力する第1データ照合判定処理と、
    ランダムに選んだメッセージと、前記判定結果に対応する前記登録テンプレートの一部または全部との組み合わせを、第1照合結果として出力する第1照合結果生成処理と、
    前記第1照合結果を復号して、復号結果を出力する復号処理と、
    前記復号結果と前記第1照合結果に含まれる前記メッセージとから、第2照合要求を生成する第2データ照合要求生成処理と、
    前記第2照合要求と、前記記憶部に記録されている前記登録テンプレートの前記登録データとから、第2データ照合判定を生成する第2データ照合判定処理と、
    前記第2データ照合判定に対応する前記登録データの識別子を、第2照合結果として出力する第2照合結果生成処理と、
    をコンピュータに実行させる、暗号文照合プログラムを記録したコンピュータ読み取り可能な記録媒体。
JP2016557449A 2014-11-05 2015-10-26 暗号文照合システム、方法、および記録媒体 Active JP6738061B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2014225102 2014-11-05
JP2014225102 2014-11-05
PCT/JP2015/005366 WO2016072057A1 (ja) 2014-11-05 2015-10-26 暗号文照合システム、方法、および記録媒体

Publications (2)

Publication Number Publication Date
JPWO2016072057A1 JPWO2016072057A1 (ja) 2017-10-19
JP6738061B2 true JP6738061B2 (ja) 2020-08-12

Family

ID=55908804

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2016557449A Active JP6738061B2 (ja) 2014-11-05 2015-10-26 暗号文照合システム、方法、および記録媒体

Country Status (3)

Country Link
US (1) US10484182B2 (ja)
JP (1) JP6738061B2 (ja)
WO (1) WO2016072057A1 (ja)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9992175B2 (en) * 2016-01-08 2018-06-05 Moneygram International, Inc. Systems and method for providing a data security service
JP6645572B2 (ja) 2016-03-31 2020-02-14 日本電気株式会社 生体データ登録支援装置、生体データ登録支援システム、生体データ登録支援方法、生体データ登録支援プログラム
EP3803809A1 (en) * 2018-05-24 2021-04-14 dormakaba Schweiz AG Method and device for data transfer between a mobile device and a reader device
US11223485B2 (en) * 2018-07-17 2022-01-11 Huawei Technologies Co., Ltd. Verifiable encryption based on trusted execution environment
KR20200100481A (ko) * 2019-02-18 2020-08-26 삼성전자주식회사 생체 정보를 인증하기 위한 전자 장치 및 그의 동작 방법

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4564348B2 (ja) 2004-12-10 2010-10-20 株式会社日立製作所 生体情報の特徴量変換方法および生体認証システム
JP4996904B2 (ja) * 2006-10-04 2012-08-08 株式会社日立製作所 生体認証システム、登録端末、認証端末、及び認証サーバ
KR101391152B1 (ko) * 2007-04-05 2014-05-02 삼성전자주식회사 Ums 기기의 컨텐츠를 보호하기 위한 방법 및 장치
JP5412414B2 (ja) 2010-12-08 2014-02-12 株式会社日立製作所 検索可能暗号処理システム
US9311494B2 (en) * 2011-12-01 2016-04-12 Hitachi, Ltd. Secure search method and secure search device
IN2014DN11080A (ja) * 2012-07-13 2015-09-25 Nec Corp
US9455828B2 (en) * 2012-08-30 2016-09-27 Nec Corporation Re-encryption system, re-encryption method and re-encryption program
EP2933945A4 (en) 2012-12-14 2016-08-03 Nec Corp SYSTEM, METHOD AND PROGRAM FOR MATCHING BITS CHAIN MATCHING
JP2015192446A (ja) * 2014-03-31 2015-11-02 富士通株式会社 プログラム、暗号処理方法、及び暗号処理装置

Also Published As

Publication number Publication date
US20170324563A1 (en) 2017-11-09
JPWO2016072057A1 (ja) 2017-10-19
WO2016072057A1 (ja) 2016-05-12
US10484182B2 (en) 2019-11-19

Similar Documents

Publication Publication Date Title
JP6931247B2 (ja) 暗号文照合システム、方法、およびプログラム
JP6504013B2 (ja) 暗号処理方法、暗号処理装置、および暗号処理プログラム
JP7127543B2 (ja) 照合システム、方法、装置及びプログラム
JP6413598B2 (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
JP6421576B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
JP6349841B2 (ja) 暗号文処理装置、暗号文処理方法、暗号文処理プログラムおよび情報処理装置
JP6459658B2 (ja) 暗号処理装置、暗号処理方法、および暗号処理プログラム
JP6048501B2 (ja) 暗号文照合システムと方法とプログラム
JP6738061B2 (ja) 暗号文照合システム、方法、および記録媒体
JP2016131335A (ja) 情報処理方法、情報処理プログラムおよび情報処理装置
JP5506704B2 (ja) 復号システム、鍵装置、復号方法、及びプログラム
JP6451938B2 (ja) 暗号文照合システム、方法、およびプログラム
JP6229714B2 (ja) 暗号文照合システムと方法とプログラム
WO2014185450A1 (ja) 照合システム、ノード、照合方法およびプログラム
JPWO2014185447A1 (ja) 照合システム、ノード、照合方法およびプログラム
JP6229715B2 (ja) 暗号文照合システムと方法とプログラム
JP6229713B2 (ja) 暗号文照合システムと方法とプログラム
WO2018174063A1 (ja) 照合システム、方法、装置及びプログラム
JP5799635B2 (ja) 暗号データ検索システム、装置、方法及びプログラム
JPWO2020174515A1 (ja) 暗号システム、鍵生成装置、鍵生成方法、鍵生成プログラム、および準同型演算装置
Das A hybrid algorithm for secure cloud computing
JP6528560B2 (ja) 指標算出システム、指標算出方法、指標算出プログラム、及び、照合システム

Legal Events

Date Code Title Description
AA64 Notification of invalidation of claim of internal priority (with term)

Free format text: JAPANESE INTERMEDIATE CODE: A241764

Effective date: 20170705

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20170824

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20180904

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20190626

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20200122

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200316

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20200326

A911 Transfer of reconsideration by examiner before appeal (zenchi)

Free format text: JAPANESE INTERMEDIATE CODE: A911

Effective date: 20200402

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20200709

R150 Certificate of patent or registration of utility model

Ref document number: 6738061

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313117

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350