JP6323338B2 - ビット列照合システムと方法とプログラム - Google Patents

ビット列照合システムと方法とプログラム Download PDF

Info

Publication number
JP6323338B2
JP6323338B2 JP2014552100A JP2014552100A JP6323338B2 JP 6323338 B2 JP6323338 B2 JP 6323338B2 JP 2014552100 A JP2014552100 A JP 2014552100A JP 2014552100 A JP2014552100 A JP 2014552100A JP 6323338 B2 JP6323338 B2 JP 6323338B2
Authority
JP
Japan
Prior art keywords
bit string
position replacement
bit
input
template
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
JP2014552100A
Other languages
English (en)
Other versions
JPWO2014092183A1 (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 JPWO2014092183A1 publication Critical patent/JPWO2014092183A1/ja
Application granted granted Critical
Publication of JP6323338B2 publication Critical patent/JP6323338B2/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
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/08Network architectures or network communication protocols for network security for authentication of entities
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L63/00Network architectures or network communication protocols for network security
    • H04L63/20Network architectures or network communication protocols for network security for managing network security; network security policies in general
    • 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/06Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols the encryption apparatus using shift registers or memories for block-wise or stream coding, e.g. DES systems or RC4; Hash functions; Pseudorandom sequence generators
    • H04L9/065Encryption by serially and continuously modifying data stream elements, e.g. stream cipher systems, RC4, SEAL or A5/3
    • 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
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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/3226Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using a predetermined code, e.g. password, passphrase or PIN
    • H04L9/3231Biological data, e.g. fingerprint, voice or retina

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Biomedical Technology (AREA)
  • General Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Storage Device Security (AREA)

Description

[関連出願についての記載]
本発明は、日本国特許出願:特願2012−273450号(2012年12月14日出願)に基づくものであり、同出願の全記載内容は引用をもって本書に組み込み記載されているものとする。
本発明はビット列照合システムと方法とプログラムに関する。
ネットワークに接続された計算資源に置かれた利用者のデータに基づくサービスがある。このようなサービスにおいて、利用者の機微なデータを扱う機会がある。これに際し、サービス提供者が利用者に関連するデータが安全に管理されていることを保障することは重要である。一方、パスワードや物による認証は、忘却や紛失によって、本人でも認証できなくなる可能性がある。このような事態の発生を回避する方法として、指紋、静脈などの個人の生体的特徴(生体情報と呼ばれる)に基づく生態認証技術と呼ばれる技術がある。パスワードや物と異なり、生体情報は生涯不変であることから、漏洩した場合の被害は甚大である。
生体認証では、生体情報に基づいて生成されるテンプレートと呼ばれる情報をデータベース等に保管し、テンプレートを用いて認証を行う。前述したとおり、生体情報には高い機密性が要求されるため、テンプレートからも可能な限り生体情報に関する情報が漏れない認証方法が好ましく、様々な方式が提案されている。
例えば、非特許文献1には、生体情報をランダムなBCH(bose-chaudhuri-hocquenghem)符号語(code word)でマスクした情報をテンプレートとする方式が開示されている。非特許文献1では、生体情報Zと秘匿情報Sを用いて、生体認証用のテンプレートを生成している。図7は、非特許文献1のFigure.2に基づく図である。非特許文献1のFigure.2における特徴量の抽出(Feature Extraction)、統計処理(Statistical Analysis)、量子化(Quantization)等は省略されている。非特許文献1に記載の方式はテンプレートの登録(Enrollment)と検証(Verification)を有する。生体情報Zに関するテンプレートの登録(Enrollment)は以下のように行われる。
(1) 秘匿情報Sをエンコーダ(ENC)に入力して誤り訂正符号化し(Error Correcting Coding :ECC)、符号語Cを生成する。ECCにはパラメータ(K、s、d)の2元BCH符号を用いる。Kは符号語(code word)の長さ、sは情報シンボル(information symbol)の数、dは誤り訂正可能な誤りの数である。
(2) CとZとの排他的論理和W=C (+) Zを計算する(ただし、(+)はビット毎の排他的論理和演算(bitwise XOR)を表す)。
(3) HをSHA(Secure Hash Algorithm)-1等の暗号学的ハッシュ関数(cryptographic hash function)としてハッシュ値H(S)を計算する。
(4) W及びH(S)をテンプレートとしてデータベース(DB)に格納する。
以上の処理は、登録装置(不図示)によって実行され、作成されたテンプレートは記憶装置(DB)に記憶されるものとする。
上記(1)から(4)によって生成されたテンプレート(WとH(S)の二つ組)と、別な生体情報Z'が同じ人物から採取したものであるか否かの検証(Verification)は、以下のように行われる。検証は、Z'を記憶する証明装置(不図示)と、テンプレート(WとH(S)の二つ組)を有する検証装置(不図示)の2装置間で実行されるものとする。検証処理は、以下の(1)から(5)の手順で行われる。
(1) 証明装置は、Z'を検証装置に入力する。
(2) 検証装置は、Z'とWとの排他的論理和C' = W (+) Z'を計算する。ここで、W (+) Z'は、(C (+) Z ) (+) Z' = C (+) (Z (+) Z')= C (+) Z (+) Z' に等しいことに注意する。
(3) 検証装置は、C'をデコーダ(DEC)に入力して2元BCH符号の誤り訂正復号処理を行いS'を計算する。
(4) 検証装置は、H(S')を計算する。
(5) 検証装置は、H(S')をDBから読み出したH(S)と比較し、H(S) = H(S')が成立している場合、テンプレートの生成に使用された生体情報とZ'のハミング距離が近かったものと判断する。
上記手順によって、テンプレートが生成される際に用いられた生体情報Zと、検証に用いられた生体情報Z'のハミング距離が一定数以下であることが検証可能であることの理由を以下に説明する。
検証処理の(2)おいて、
C (+) Z (+) Z'
が計算される。これは、誤り訂正符号語Cに対して、誤りZ (+) Z'が加算された(排他的論理和演算で加えられた)データとみなすことができる。つまり、ZとZ'のハミング距離の個数分の誤りがCに付与されたデータである。Cはd個以下の誤りであれば復号できる。
したがって、ZとZ'のハミング距離がd以下である場合、C (+) Z (+) Z'に対して、誤り訂正処理を実行すると、その出力であるS'は、Cの生成元である秘匿情報Sとなる。この場合、H(S') = H(S)となることは明らかである。
一方、ZとZ'のハミング距離がdよりも大きい場合に、C (+) Z (+) Z'に対して、誤り訂正処理を実行しても、その出力S'として、Sを得ることはできない。この場合、
H(S') = H(S)
は成立しない。
したがって、上記した処理によって、生体情報間のハミング距離が近いことを判定できる。
また、上記手法は、生体情報Zの取得方法には依存しない。このため、生体情報に限らず、ビット列情報のハミング距離の近さを判定するために用いることができる。つまり、前述した登録装置にてビット列を記憶装置に登録し、証明装置にてビット列を照会し、検証装置にてビット列を照合する。
テンプレートを用いた認証技術として、例えば特許文献1には、登録時にクライアントが取得した生体情報から登録用特徴量配列を作成し、これを変換した位置補正用テンプレートおよび照合テンプレートをサーバに登録し、認証時には、クライアントが取得した生体情報から認証用特徴量配列を作成し、これを変換した位置補正用変換特徴量をサーバに送信する。サーバは位置補正テンプレートと位置補正用変換特徴量を用いて、登録用特徴量配列に対する認証用特徴量配列の位置補正量を検出してクライアントに送信し、クライアントは位置補正量を用いて認証用特徴量配列を補正し、更に変換した照合用変換特徴量配列をサーバに送信し、サーバでは、照合テンプレートと、照合用変換特徴量配列との距離を計算し、認証成否を判定する構成が開示されている。
特開2010−108365号公報
Pim Tuyls, Anton H. M. Akkermans, Tom A. M. Kevenaar, Geert-Jan Schrijen, Asker M. Bazen and Raymond N. J. Veldhuis, "Practical Biometric Authentication with Template Protection", Proceedings of AVBPA 2005, Lecture Notes in Computer Science, Vol. 3546, Springer Verlag, pp. 436-446, (2005)
以下に関連技術の分析を与える。
上記した関連技術は、以下のような枠組みを持つ。ビット列Zに対するテンプレートとして、2元BCH符号の符号語をCとすると、C (+) Z (=W)をテンプレートの一部として持つ。暗号文と補助データをあわせてテンプレートとする。
用いる2元BCH符号が訂正可能な誤りの個数をdとすると、これらのうち暗号文を利用して、異なる2つのテンプレートを生成する際に用いたビット列のハミング距離がd以下であるかどうかを判定することができる。
ここで、ビット列Z1とビット列Z2について作成される暗号文を考える。これらに対する暗号文が独立した2元BCH符号の符合語C1とC2によって、C1 (+) Z1と、C2 (+) Z2が生成される。
2元BCH符号は線形符号であるため、C1 (+) C2も符合語である。
Z1 (+) Z2は、ビット列間のハミング距離に等しい数の1を持つビット列である。
したがって、C1 (+) C2(+) Z1 (+) Z2は、Z1 (+) Z2のハミング距離がd以下の場合、2元BCH符号の復号処理によって復号することができる。
Z1 (+) Z2のハミング距離がdより大きい場合、C1 (+) C2 (+) Z1 (+) Z2は復号されない。
したがって、2つの暗号文が得られた場合、それらを生成する際に用いられたビット列間のハミング距離が近いことが判定できる。これは、暗号文からビット列に関する情報を得られたことを意味する。
関連技術を生体認証に用いる場合、ビット列には生体情報が用いられる。この場合、前記した暗号文からのビット列の情報漏洩等を回避することが望まれる。例えば、前記した暗号化に用いた情報を活用することで、例えばサイトAを管理している人物とサイトBを管理している人物が登録されている情報をつき合わせ、ある人物が両方のサイトに登録していることを特定し、それぞれのサイトにおける行動履歴等をつき合わせることで、より高度な解析が可能となる。すなわち、情報漏洩の可能性がある。
したがって、本発明は、上記問題点に鑑みて創案されたものであって、その目的は、入力ビット列と2元線形符号の符号語との排他的論理和をテンプレートの一部として利用するにあたり、例えば異なるシステム等に登録されている同一ビット列に関するデータの対応付けを困難とし、情報漏洩の回避と、安全性の確保を可能とするシステム、方法、プログラムを提供することにある。
本発明によれば、入力された第1のビット列に対して位置置換を行う第1のビット列位置置換手段と、
前記第1のビット列位置置換手段で前記第1のビット列を位置置換した結果のビット列と2元線形符号の符号語との排他的論理和を行い、及び、位置置換したビット列間のハミング距離が予め定められた所定値以下であることを検証するための補助データを生成し、前記排他的論理和演算結果、及び前記補助データをテンプレートとして記憶装置に記憶するテンプレート生成手段と、
入力された第2のビット列に対して前記第1のビット列位置置換手段と同一の位置置換を行う第2のビット列位置置換手段と、
前記第2のビット列位置置換手段で前記第2のビット列を位置置換した結果のビット列と、前記記憶装置にテンプレートとして記憶されている前記排他的論理和演算結果と前記補助データと、に基づき、前記第2のビット列位置置換手段で前記第2のビット列を位置置換した結果のビット列と、前記テンプレートの生成に用いられた前記第1のビット列位置置換手段で前記第1のビット列を位置置換した結果のビット列との間のハミング距離が予め定められた所定値以下であることを検証するビット列照合手段と、
を備えたシステム(装置)が提供される。
本発明の別の側面によれば、記憶装置を備えたデータ処理装置により、
入力された第1のビット列に対して位置置換を行う第1のビット列位置置換工程と、
前記第1のビット列を前記第1のビット列位置置換工程で位置置換した結果のビット列と2元線形符号の符号語との排他的論理和演算を行い、及び、位置置換したビット列間のハミング距離が予め定められた所定値以下であることを検証するための補助データを生成し、前記排他的論理和演算結果、及び前記補助データをテンプレートとして前記記憶装置に記憶するテンプレート生成工程と、
入力された第2のビット列に対して前記第1のビット列位置置換工程と同一の位置置換を行う第2のビット列位置置換工程と、
前記第2のビット列を前記第2のビット列位置置換工程で位置置換したビット列と、前記記憶装置にテンプレートとして記憶されている前記排他的論理和演算結果と前記補助データと、を入力とし、前記第2のビット列位置置換工程で前記第2のビット列を位置置換した結果のビット列と、前記テンプレートの生成に用いられた、前記第1のビット列位置置換工程で前記第1のビット列を位置置換した結果のビット列との間のハミング距離が予め定められた所定値以下であることを検証するビット列照合工程と、
を含む方法が提供される。
本発明の別の側面によれば、コンピュータに実行させるビット列照合プログラムであって、
入力された第1のビット列に対して位置置換を行う第1のビット列位置置換処理と、
前記第1のビット列を前記第1のビット列位置置換処理で位置置換した結果のビット列と2元線形符号の符号語との排他的論理和演算を行い、及び、位置置換したビット列間のハミング距離が予め定められた所定値以下であることを検証するための補助データを生成し、前記排他的論理和演算結果、及び前記補助データをテンプレートとして記憶装置に記憶するテンプレート生成処理と、
入力された第2のビット列に対して前記第1のビット列位置置換処理と同一の位置置換を行う第2のビット列位置置換処理と、
前記第2のビット列を前記第2のビット列位置置換処理で位置置換した結果のビット列と、前記記憶装置にテンプレートとして記憶されている、前記排他的論理和演算結果と前記補助データとを入力とし、前記第2のビット列位置置換処理で前記第2のビット列を位置置換した結果のビット列と、前記テンプレートの生成に用いられた、前記第1のビット列位置置換処理で前記第1のビット列を位置置換したビット列との間のハミング距離が予め定められた所定値以下であることを検証するビット列照合処理と、
を含むプログラムが提供される。本発明によれば、当該プログラムを記憶したコンピュータ読み出し可能な、半導体ストレージ又は磁気/光記憶媒体等の記憶媒体が提供される。
本発明によれば、入力ビット列と2元線形符号の符号語の排他的論理和をテンプレートの一部として利用するにあたり、例えば異なるシステム等に登録されている同一ビット列に関するデータの対応をとることを困難とし、情報漏洩の回避と、安全性の確保を可能としている。
関連発明の構成を説明する図である。 本発明の実施形態1の構成を説明する図である。 本発明の実施形態1の動作を説明するための流れ図である。 本発明の実施形態2の構成を説明する図である。 本発明の実施形態2の動作を説明するための流れ図である。 (A)、(B)は位置置換及びビット反転を含む位置置換の原理をそれぞれ説明する図である。 非特許文献1の処理を説明する図である。
本発明の一形態によれば、入力された第1のビット列に対して位置置換を行う第1のビット列位置置換手段(図2の102)と、前記第1のビット列位置置換手段(図2の102)で前記第1のビット列を位置置換した結果のビット列と、2元線形符号の符号語との排他的論理和演算を行い、及び、位置置換したビット列間のハミング距離が予め定められた所定値以下であることを検証するための補助データを生成し、前記排他的論理和演算結果、及び前記補助データをテンプレートとして記憶装置(図2の400)に記憶するテンプレート生成手段(図2の101)と、入力された第2のビット列に対して、前記第1のビット列位置置換手段(図2の102)と同一の位置置換を行う第2のビット列位置置換手段(図2の202)と、前記第2のビット列位置置換手段(図2の202)で前記第2のビット列を位置置換した結果のビット列と、前記記憶装置(図2の400)にテンプレートとして記憶されている前記排他的論理和演算結果と前記補助データと、に基づき、前記第2のビット列位置置換手段(図2の202)で前記第2のビット列を位置置換した結果のビット列と、前記テンプレート生成の際に用いられた、前記第1のビット列位置置換手段(図2の102)で前記第1のビット列を位置置換した結果のビット列との間のハミング距離が予め定められた所定値以下であることを検証するビット列照合手段(図2の301)と、を備えている。
本発明の一形態によれば、前記第1及び第2のビット列位置置換手段(図2の102、202)は、ビット反転を含む位置置換を用いるようにしてもよい。あるいは、前記第1及び第2のビット列位置置換手段(図2の102、202)は、
システム毎に異なるビット列の位置置換を用いる、
システム毎に異なるビット反転を含む位置置換を用いる、
入力されたビット列毎に、異なる位置置換を用いる、
入力されたビット列毎に、異なるビット反転を含む位置置換を用いる、
のいずれかを行うようにしてもよい。
本発明の一形態によれば、ビット列位置置換手段(図2の101、202)では、例えばシステム、又はビット列毎に異なる第1、第2の位置置換(P1、P2)に対して、第1、第2のビット列(Z1、Z2)の前記第1、第2の位置置換後のビット列(P1(Z1)、P2(Z2))の排他的論理和(P1(Z1) (+) P2(Z2))が、前記第1、第2のビット列(Z1、Z2)のハミング距離に対応するように変換を行うようにしてもよい。
上記した本発明の前提として関連発明について説明する。本発明は、以下に説明される関連発明に適用して好適とされる。
生体情報をNビットのバイナリ列とみなす。関連発明1では、以下のテンプレートの登録(Enrollment)と検証(Verification)を有する。図1は、関連発明1を説明する図である。図1を参照すると、ビット列登録装置100(登録装置)と、ビット列照会装置200(証明装置)と、ビット列照合装置300(検証装置)と、テンプレート記憶装置400を備える。ビット列登録装置100は、テンプレート生成手段101を備える。ビット列照会装置200は、ビット列照会手段201を備える。ビット列照合装置300は、ビット列照合手段301を備える。テンプレート記憶装置400は、テンプレートを記憶するテンプレート記憶手段401を備える。
ビット列登録装置100は、ビット列を入力として、入力されたビット列をテンプレート生成手段101に入力し、テンプレート生成手段101の出力をテンプレート記憶装置400に記憶させる。
テンプレート生成手段101は、ビット列を入力として、ビット列と2元BCH符号の符号語との排他的論理和演算結果を含むテンプレートを出力する。
ビット列照会装置200は、ビット列を入力として、入力されたビット列をビット列照会手段201に入力し、ビット列照会手段201の出力を出力する。ビット列照会手段201は、ビット列を入力として、ビット列照合手段301とデータを送受信し、照会結果を出力する。
ビット列照合装置300は、ビット列照合手段301を用いて、ビット列照会手段201とテンプレート記憶装置400とデータを送受信し、照合結果を出力する。ビット列照合手段301は、ビット列照会手段201とやりとりをし、照合結果を出力する。ビット列照会手段201と、ビット列照合手段301は、ビット列照会手段201に入力されたビット列(Z’)と、テンプレートの生成に用いられたビット列(Z)と、2元BCH符号の符号語との排他的論理和演算結果に関して、ビット列間(ZとZ'の間)のハミング距離がd以下である場合に、二つのビット列(ZとZ')が合ったと判定する。
Nビットのバイナリ列Z(入力ビット列データ)についてのテンプレートの登録は、ビット列登録装置100において、以下のように行われる。鍵としてKビットの乱数Sを生成する。Sを2元BCH符号で符号化したNビットの符号語Cを計算する。ここで用いる2元BCH符号は、Kビットのデータを入力としてNビットのデータ(N>K)を出力する符号である。任意の相異なる符号語は少なくともd以上のハミング距離を有することが保障されるものとする。
次に、符号語Cとビット列Zとの排他的論理和をとったNビットの暗号データW1計算する。
W1 = C (+) Z ・・・(1)
次に、SとW1を入力として、以下の計算式にしたがってW2を計算する。
W2 = (c, S) (+) h(W1, n) ・・・(2)
cはKビットの定数であり、 (c, S)は、cとSの内積を表す。内積(X, Y)は、2つのK = m*kビットデータXおよびYをkビットごとに分割し、m個並んだベクトルとみなしたときの、XとYの内積(演算はガロア拡大体GF(2^k))で行う。^はべき乗を表す)である。nはkビット(kはセキュリティパラメータ)の乱数である。なお、セキュリティパラメータは、安全性の強度を指定するためのパラメータであり、システムによって予め定められた値である。hは暗号学的ハッシュ関数(例えばSHA-256等)とする。
次に、(K - k)ビットの乱数rを生成する。そして乱数rに対して、
h(W1, n) || r ・・・(3)
を2元BCH符号化した符号語データをC3とする。(||はビットの連結(concatenation)を表す演算記号である)。C3とビット列Zから、W3を以下の式に従って計算する。
W3 = C3 (+) Z ・・・(4)
以上の演算で求めた暗号データW1をビット列Zの暗号文とし、W2、W3を補助データとし、W1、W2、W3をテンプレートとする。
以上の処理は、図1のビット列登録装置100によって実行され、作成されたテンプレートはテンプレート記憶装置(図1の400)に記憶されるものとする。
以上の処理によって生成されたテンプレートW1、W2、W3と、Nビットのバイナリ列(入力ビット列)Z'を入力として、テンプレート(暗号データW1と補助データW2、W3)を生成する際に用いられたNビットのバイナリ列(ビット列)Zと、Nビットのバイナリ列(入力ビット列)Z'との間のハミング距離が一定の数d以下であるか否かの検証(Verification)は、例えば以下のようにして行なわれる。
検証処理は、Z'を記憶する証明装置(図1のビット列照会装置200)と、テンプレートを有する検証装置(図1のビット列照合装置300)の2装置間で実行されるものとする。検証(Verification)の説明のため、H(x, y, z)を次式(4)で表される関数として定義する。
H(x, y, z) = (c, x) (+) h(y, z) ・・・(5)
H(x, y, z) は次式(6)を満足する。
H(a1, b1, c1) (+) H(a2, b2, c2) = H(a1 (+) a2, b1,c1) (+) h(b2, c2) ・・・(6)
(1) 検証装置(図1のビット列照合装置300)は、乱数nsを生成する。
(2) 検証装置は、予め定められた群(乗法群Zp)Gの要素(生成元)gに対して、
g_s = g^{ns} ・・・(7)
を計算し、g_sとW3を、証明装置(図1のビット列照会装置200)に送付する。
(3) 証明装置(図1のビット列照会装置200)は、
W3 (+) Z' ・・・(8)
を計算し、W3 (+) Z'に、2元BCH符号の復号処理を適用し、復号結果であるh'得る。
(4) 証明装置(図1のビット列照会装置200)は、Kビットの乱数S'を生成する。
(5) 証明装置(図1のビット列照会装置200)は、S'を2元BCH符号で誤り訂正符号化した符号語C'を生成する。
(6) 証明装置(図1のビット列照会装置200)は、C'とZ‘との排他的論理和をとった値W1’を生成する。
W1’ = C' (+) Z' ・・・(9)
(7) 証明装置(図1のビット列照会装置200)は、乱数ncを生成する。
(8) 証明装置(図1のビット列照会装置200)は、
g_c = g^{nc} ・・・(10)
を計算する。
(9) 証明装置(図1のビット列照会装置200)は、
g_sc = g_s^{nc} ・・・(11)
を計算する。
(10) 証明装置(図1のビット列照会装置200)は、
W2’ = H(S', W1', g_sc) (+) h’ ・・・(12)
を計算する。
(11) 証明装置(図1のビット列照会装置200)は、W1’とW2’とg_cを検証装置(図1のビット列照合装置300)に送付する。
(12) 検証装置(図1のビット列照合装置300)は、
W1’ (+) W1 ・・・(13)
を計算する。
(13) 検証装置(図1のビット列照合装置300)は、
W1’ (+) W1
に2元BCH符号の復号処理を適用し、二つの暗号データW1’とW1の差の復号結果であるTを計算する。
(14) 検証装置(図1のビット列照合装置300)は、TとW1’とg_c^nsを用いて以下の値を計算する。
H(T, W1', g_c^ns) ・・・(14)
(15) 検証装置(図1のビット列照合装置300)は、式(14)の計算結果とW2’との排他的論理和
H(T, W1', g_c^ns)(+)W2’ ・・・(15)
を計算し、これがW2と等しいか否かをチェックする。すなわち、以下の式(16)が成立するか否かをチェックする。
W2 = H(T, W1', g_c^ns) (+) W2’ ・・・(16)
(16) 検証装置(図1のビット列照合装置300)は、式(16)が成立している場合には、ZとZ'のハミング距離がd以下であるものと判定する。なお、2元BCH符号化として、任意の相異なる符号語のハミング距離が少なくともdを超える方法を用いることを前提とする。
関連発明1は、あるバイナリ列と特定のテンプレートに対する検証(Verification)を行っているが、データベースでこの種の照合を行う場合、あるバイナリ列に対して作成されたテンプレートを検索するというケースが考えられる。その際、関連発明1を用いると、すべてのテンプレートに対して一回一回検証処理を実行することになる。
関連発明2では、あるバイナリ列と複数のテンプレートに対する検証処理を効率的に実行する。以下のテンプレートの登録(Enrollment)と検証(Verification)を有する。
Nビットのバイナリ列(入力ビット列)Zについてのテンプレートの登録は以下のように行われる。
(1) 鍵としてKビットの乱数Sを生成する。
(2) Sを2元BCH符号で符号化したNビットの符号語Cを計算する。ここで用いる2元BCH符号は、Kビットのデータを入力としてNビットのデータ(N>K)を出力する符号である、任意の相異なる符号語は、少なくともd以上のハミング距離を有することが保障されるものとする。
(3) 次に、符号語Cと入力ビット列Zとの排他的論理和をとったNビットの暗号データW1を計算する。
W1 = C (+) Z ・・・(17)
(4) ZとSとW1を入力として、以下の計算式(18)にしたがってW2を計算する。なお、式(18)は、上記式(2)と同様であり、cはkビットの定数であり、nはkビット(kはセキュリティパラメータ)の乱数である。hは暗号学的ハッシュ関数(例えばSHA = 256等)とする。
W2 = (c, S) (+) h(W1, n) ・・・(18)
(5) 次に、(K−k)ビットの乱数rを生成し、
h(W1, n)||r ・・・(19)
を、2元BCH符号化したデータをC3とする。
(6) C3とZからW3を以下の式に従って計算する。
W3 = C3 (+) Z ・・・(20)
以上の演算で求めたW1を、バイナリ列(入力ビット列)Zの暗号文とし、W2、W3を補助データとし、W1、W2、W3をテンプレートとする。
以上の処理は、図1のビット列登録装置100のテンプレート生成手段101によって実行され、作成されたテンプレートはテンプレート記憶手段(図1の401)に記憶されるものとする。
以上の処理によって生成された複数のテンプレートと、Nビットのバイナリ列(入力ビット列)Z'を入力として、各テンプレートを生成する際に用いられたバイナリ列(入力ビット列)と、今回入力したNビットのバイナリ列(入力ビット列)Z'の間のハミング距離が一定の数d以下であったか否かの検証(Verification)は、以下のように行われる。なお、各テンプレートには、識別子iが振られており、これによってデータベースから一意に呼び出し可能であるものとする。識別子iに関連つけられたテンプレートW1、W2、W3を、W1[i]、W2[i]、W3[i]と表す。
検証処理は、Z'を記憶する証明装置(図1のビット列照会装置200)と、テンプレートを有する検証装置(図1のビット列照合装置300)の2装置間で実行されるものとする。
(1) 検証装置(図1のビット列照合装置300)は、乱数nsを生成する。
(2) 検証装置(図1のビット列照合装置300)は、予め定められた群(乗法群Zp)Gの要素(生成元)gに対して、
g_s = g^ns ・・・(21)
を計算し、g_sを証明装置(図1のビット列照会装置200)に送付する。
(3) 証明装置(図1のビット列照会装置200)は、Kビットの乱数S'を生成する。
(4) 証明装置(図1のビット列照会装置200)は、
S' = S1’ (+) S2’ ・・・(22)
を満たすS1’とS2’をランダムに選ぶ。
(5) 証明装置(図1のビット列照会装置200)は、S'を2元BCH符号で誤り訂正符号化した符号語C'を生成する。
(6) 証明装置(図1のビット列照会装置200は、C'とZ'との排他的論理和をとった値W1’を生成する。
W1’ = C' (+) Z' ・・・(23)
(7) 証明装置(図1のビット列照会装置200)は、乱数ncを生成する。
(8) 証明装置(図1のビット列照会装置200)は、
g_c = g^{nc} ・・・(24)
を計算する。
(9) 証明装置(図1のビット列照会装置200)は、
g_sc = g_s^{nc} ・・・(25)
を計算する。
(10) 証明装置(図1のビット列照会装置200)は、
W2’ = H(S1’,W1’,g_sc) ・・・(26)
を計算する。
(11) 証明装置(図1のビット列照会装置200)は、cとS2'の内積(Kビット)
(c, S2’) ・・・(27)
を計算する。
(12) 証明装置(図1のビット列照会装置200)は(K-k)ビットの乱数r’を生成する。
(13) 証明装置(図1のビット列照会装置200)は、
(c, S2’) || r’ ・・・(28)
を、2元BCH符号で符号化したデータC3を計算する(||はビットの連結を表す)。
(14) 証明装置(図1のビット列照会装置200)は、
W3’ = C3 (+) Z' ・・・(29)
を計算する。
(15) 証明装置(図1のビット列照会装置200)は、
W1’、W2’、W3’を検証装置(図1のビット列照合装置300)に送付する。
(16) 検証装置(図1のビット列照合装置300)では、以下の処理(16-a)〜(16-h)を、テンプレートW1[i]、W2[i]、W3[i]に対して実行し、Z'とテンプレートを作成する際に用いられたZのハミング距離がd以下であると判断されたすべての識別子iを出力する。
(16-a) W1’ (+) W1[i] ・・・(30)
を計算する。
(16-b) W1’ (+) W1[i]に2元BCH符号の復号処理を適用し、W1を計算する。
(16-c) W3’ (+) W3[i] ・・・(31)
を計算する。
(16-d) W3’ (+) W3[i]に2元BCH符号の復号処理を適用し、W3を計算する。
(16-e) 予め定められた群(乗法群Zp)Gの要素(生成元)gに対して、
g_sc = g_c^ns ・・・(32)
を計算する。
(16-f) W2” = H(W1, W1, g_sc) ・・・(33)
(16-g) W2’ = W2” (+) W’ (+) W3 ・・・(34)
が成立しているかをチェックする。
(16-h) 以上の式が成立している場合、入力ビット列ZとZ'のハミング距離がd以下であったものと判定する。
関連発明においては、ビット列Zに対するテンプレートとして、2元BCH符号の符号語をCとすると、C (+) Zをテンプレートの一部として持つ。これは、関連発明1におけるW1であり、関連発明2におけるW1とW3である。
なお、以上の関連発明1、2は、発明者として本願発明者らを含む先願(特願2012−157265号:本願出願時未公開)の実施例1、2に基づくものである。
前述したように、第1のビット列Z1と第2のビット列Z2について作成される暗号文として、独立した2元BCH符号の符合語C1とC2との排他的論理和(bitwise Exclusive OR)演算によって、C1 (+) Z1と、C2(+) Z2がそれぞれ生成されるものとする。2元BCH符号は線形符号であるため、C1 (+) C2も符合語である。Z1 (+) Z2は、ビット列Z1、Z2間のハミング距離に等しい数の1を持つビット列である。
C1 (+) C2(+) Z1 (+) Z2は、Z1 (+) Z2のハミング距離がd以下の場合、2元BCH符号の復号処理によって復号することができる。一方、Z1 (+) Z2のハミング距離がdよりも大きい場合、C1 (+) C2 (+) Z1 (+) Z2は、2元BCH符号の復号処理によって復号されない。2つの暗号文(暗号データ)が得られた場合、それらの暗号文を生成する際に用いられたビット列の間のハミング距離が近いことが判定できる。これは、暗号文からビット列に関する情報を得られたことを意味する。そこで、本発明によれば、関連発明に対して、ビット列と2元BCH符号(2元線形符号)の符号語との排他的論理和演算結果を、テンプレートの一部として利用するにあたり、異なるシステムに登録されている同一ビット列に関するデータの対応をとることを困難とし、情報漏洩の回避と、安全性の確保を可能とするシステム、方法、プログラムが提供される。
次に、本発明の形態について図2を参照して説明する。前記した関連発明の図1において、ビット列が直接入力されるのは、ビット列からテンプレートを作成して登録するビット列登録装置100と、入力したビット列の照会を行うビット列照会装置200である。本発明によれば、ビット列登録装置100Aとビット列照会装置200Aにおいて、ビット列位置置換手段102、202は、例えばシステム毎に異なり、任意の2つのビット列に関するハミング距離が変換後も大きく変化することがない変換(ビット列の位置置換)を入力したビット列に施し、入力ビット列を位置置換した結果であるビット列を、ビット列登録装置100Aのテンプレート生成手段101と、ビット列照会装置200Aのビット列照会手段201に入力する。これにより、例えば、異なるシステムに登録されている同一ビット列に関するデータの対応をとることを困難としている。
具体的には、
(A)例えば、システム毎にランダムな位置置換を入力ビット列に施した後に、ビット列登録処理(テンプレートの作成・登録処理)とビット列照会処理を実行することで、課題を解決する(実施形態1)。
(B)ビット反転を含む位置置換を入力ビット列に施した後に、ビット列登録処理(テンプレートの作成・登録処理)とビット列照会処理を実行することで、課題を解決する(実施形態2)。
以上の方法によって、どのように課題が解決されるのかを以下で説明する。
ビット列の位置置換Pを、入力ビット列の位置のみを入れ替える関数(並び替え(permutation)関数)とすると、第1のビット列AをPで位置置換した結果のビット列P(A)と、第2のビット列BをPで位置置換した結果のビット列P(B)に関して、P(A)とP(B)間のハミング距離は第1、第2のビット列A、B間のハミング距離に等しい。従って、ビット列登録装置と、ビット列照会装置(証明装置)に対して、ビット列を入力する前に、システム毎に異なる位置置換をビット列に適用しても、同一のシステム内であれば、照合することができる。
次に、異なるシステムにおいて生成されたテンプレートに登録されているビット列が同一か否かを判定することが困難になっていることについて説明する。
ビット列登録装置が、
・ビット列Z1に関しては、位置置換P1、
・ビット列Z2に関しては、位置置換P2
をそれぞれ用いて、暗号化する場合について説明する。P1とP2は異なる位置置換とする。Z1とZ2に対して、独立した2元BCH符号の符合語C1とC2によって暗号化データがそれぞ生成される。
C1 (+) P1(Z1) ・・・(35)
C2 (+) P2(Z2) ・・・(36)
ここで、2元BCH符号は線形符号であるため、
C1 (+) C2
も符合語となる。位置置換P1と位置置換P2は異なっているので、
P1(Z1) (+) P2(Z2) ・・・(37)
は、Z1とZ2のハミング距離を表さない。
したがって、ビット列Z1とZ2をそれぞれ位置置換した結果のビット列P1(Z1)とP2(Z2)との排他的論理和P1(Z1) (+) P2(Z2)では、ビット列Z1とビット列Z2の近さを判定することはできなくなっている。
ビット列Z1とビット列Z2の近さ(ハミング距離)に対応するように、P1(Z1) (+) P2(Z2)を設定するため、任意の文字列(ビット列)Zについて、例えば次式(38)が成り立つような位置置換を利用するようにしてもよい。
P12(P1(Z)) = P2(Z) ・・・(38)
ビット列Zに位置置換P1を適用した結果のビット列P1(Z)に対して、さらに位置置換P12を適用した結果が、元のビット列Zに対して、位置置換P2を適用した結果のビット列P2(Z)と一致する。
この位置置換P12を、
C1 (+) P1(Z1) ・・・(39)
に対して施すと、以下のようになる。
P12(C1 (+) P1(Z1)) = P12(C1) (+) P2(Z1) ・・・(40)
P12(C1) (+) P2(Z1) (+) C2 (+) P2(Z2) ・・・(41)
において、
P2(Z1) (+) P2(Z2)は、ビット列Z1とビット列Z2のハミング距離に対応する(ハミング距離が小さい場合に、1の数が少なくなる)。すなわち、ビット列を位置置換した結果のP2(Z1)と P2(Z2)との排他的論理和は、P2(Z1)と P2(Z2)のハミング距離に対応し、前述したように、これは、Z1とZ2のハミング距離に対応する。
しかしながら、式(41)において、P12(C1) (+) C2は、2元BCH符号とはならない。このため、2元BCH符号の復号処理を用いて、ビット列Z1とZ2に関する情報を抽出することができなくなる。
また、ビット反転を含む位置置換においては、ある位置のビットは、別のある位置と置換されるとともに、当該ある位置の値のビット反転を含む置換である。この位置置換を適用しても、同一の位置置換を適用後のハミング距離は変わらない。
位置置換(単純な位置置換)は、入力されたビット列の位置関係のみを入れ替える。位置置換は、各入力ビットを何ビット目の出力とするかを、出力ビットに関して重なりなく指定することで表すことができる。例えば、8ビット入力、8ビット出力の場合、位置置換の一例として、図6(A)に示すように、図の左から、
1ビット目の入力を2ビット目に出力し、
2ビット目の入力を5ビット目に出力し、
3ビット目の入力を1ビット目に出力し、
4ビット目の入力を4ビット目に出力し、
5ビット目の入力を6ビット目に出力し、
6ビット目の入力を7ビット目に出力し、
7ビット目の入力を8ビット目に出力し、
8ビット目の入力を3ビット目に出力し、
という情報によって、一つの位置置換を指定することができる。一方で、ビット反転を含む位置置換は、位置置換であって、各ビットに関して反転するか否かの情報が追加されたものである。8ビット入力、8ビット出力の場合、ビット反転を含む位置置換の一例として、図6(B)に示すように、図の左から、
1ビット目の入力を2ビット目に出力しビット反転する(反転有:破線矢線)、
2ビット目の入力を5ビット目に出力しビット反転しない(反転無:実線矢線)、
3ビット目の入力を1ビット目に出力しビット反転しない、
4ビット目の入力を4ビット目に出力しビット反転する、
5ビット目の入力を6ビット目に出力しビット反転する、
6ビット目の入力を7ビット目に出力しビット反転しない、
7ビット目の入力を8ビット目に出力しビット反転しない、
8ビット目の入力を3ビット目に出力し、ビット反転する、
という情報によって一つの位置置換を指定することができる。このように、ビット反転を含む位置置換では、各ビットをどの位置に配置するかという情報に、当該ビットを反転するか否かが付加されることから、ビット反転を含む位置置換の総数は、単純な位置置換の総数よりも多い。このため、例えば、多くのシステムに対して異なった位置置換を指定する場合には、ビット反転を含む位置置換の利用が好ましい。
以上の方法は、テンプレートにビット列と2元線形符号の符号語との排他的論理和演算結果を含むビット列照合システム一般に対して言える。
<実施形態1>
実施形態1では、図1の構成に対して、異なる装置等に登録されている同一ビット列に関するデータの対応を取ることを困難とするものである。図2は、実施形態1の構成を示すブロック図である。異なるシステムに登録されている同一ビット列に関するデータの対応を取ることが困難なビット列照合システムが実施される。図2を参照すると、実施形態1は、ビット列登録装置100Aと、ビット列照会装置200と、ビット列照合装置300と、テンプレート記憶装置400を備える。
ビット列登録装置100Aは、テンプレート生成手段101と、ビット列位置置換手段102とを備える。
ビット列照会装置200Aは、ビット列照会手段201と、ビット列位置置換手段202とを備える。
ビット列照合装置300は、ビット列照合手段301を備える。
テンプレート記憶装置400は、テンプレート記憶手段401を備える。
ビット列登録装置100Aにおいて、ビット列(Z)を入力として、入力されたビット列(Z)をビット列位置置換手段102に入力する。ビット列位置置換手段102の出力は、テンプレート生成手段101に入力される。テンプレート生成手段101は、生成したテンプレートを、テンプレート記憶装置400に記憶させる。ビット列位置置換手段102は、ビット列(Z)を入力として、ビット列(Z)の位置を定められた順序で、入れ替えたビット列を出力する。
テンプレート生成手段101は、ビット列位置置換手段102でビット列(Z)を位置置換した結果のビット列を入力として、ビット列と2元BCH符号の符号語との排他的論理和演算結果(暗号データ)と、補助データを含むテンプレートを出力する。テンプレート生成手段101は、例えば図1の関連発明のテンプレート生成手段101と同一である。テンプレート生成手段101は、上式(1)、(2)、(4)、あるいは(17), (18)、(20)のW1(暗号文)、W2、W3(補助データ)をテンプレートとしてテンプレート記憶装置400に記憶する。
ビット列照会装置200Aにおいて、ビット列(Z')を入力として、入力されたビット列(Z')をビット列位置置換手段202に入力する。ビット列位置置換手段202の出力は、ビット列照会手段201に入力される。ビット列照会手段201の出力は、照会結果として出力される。ビット列照会手段201は、ビット列位置置換手段202でビット列(Z')を位置置換した結果のビット列を入力として、ビット列照合手段301とデータを送受信し、照会結果を出力する。ビット列照合装置300は、ビット列照合手段301を用いて、ビット列照会手段201とテンプレート記憶装置400とデータを送受信し、照合結果を出力する。
ビット列照合手段301は、ビット列照会手段201とやりとりをし、照合結果を出力する。
実施形態1のビット列照会手段201、ビット列照合手段301は、図1のビット列照会手段201、ビット列照合手段301と同一である。ビット列照合手段301は、例えば上式(16)、あるいは式(34)が成り立つ場合、ビット列ZとZ'のハミング距離がd以下である(ZとZ’がマッチした)と判定する。
次に、図3(A)、図3(B)のフローチャートを参照して、本発明の第1の実施の形態の動作について詳細に説明する。図3(A)は、本発明の第1の実施形態における登録処理を説明する流れ図である。
ビット列Zがビット列登録装置100Aに入力される(ステップS1)。
次に、ビット列登録装置100Aは、ビット列Zをビット列位置置換手段102に入力し、ビット列位置置換手段102は、ビット列Zを予め定められた順序に従って位置を置換したビット列Z'を出力する(ステップS2)。
次に、ビット列登録装置100Aは、ビット列位置置換手段102から出力されるビット列Z'をテンプレート生成手段101に入力し、テンプレート生成手段101はZ'に対するテンプレートTを出力する(ステップS3)。
次に、ビット列登録装置100Aは、テンプレートTをテンプレート記憶装置400に記憶させる(ステップS4)。
図3(B)は、実施形態1におけるビット列照合処理の動作を説明する流れ図である。
まず、ビット列Zがビット列照会装置200Aに入力される(ステップS11)。
次に、ビット列照会装置200Aはビット列Zをビット列位置置換手段202に入力し、ビット列位置置換手段202はビット列Zを予め定められた順序に従って位置を置換したビット列Z'を出力する(ステップS12)。
次に、ビット列照会装置200Aは、ビット列Z'をビット列照会手段201に入力し、ビット列照合手段301とデータのやり取りを行う(ステップS13)。
ビット列照合装置300は照合結果を出力する(ステップS14)。ビット列照合装置300のビット列照合手段301は、例えば上式(16)、あるいは式(34)が成り立つ場合、ビット列ZとZ'のハミング距離がd以下である(ZとZ’がマッチした)と判定する。また、このとき、ビット列照会装置200Aは照会結果を出力してもよい。
なお、実施形態1において、ビット列登録装置100Aと、ビット列照会装置200Aと、ビット列照合装置300の処理は、コンピュータ上で実行されるプログラムによりその処理・機能を実現するようにしてもよい。この場合、該プログラムを記憶した媒体(半導体メモリ、あるいは、磁気・光ディスク等)が提供される。
<実施形態2>
次に、実施形態2について説明する。図4は、実施形態2の構成を示す図である。図4を参照すると、実施形態2では、ビット列登録装置100Bは、図2のビット列位置置換手段102の代わりに、ビット反転を含む位置置換を実行するビット反転を含む位置置換手段103を備えている。ビット列照会装置200Bは、図2のビット列位置置換手段202の代わりに、ビット反転を含む位置置換を実行するビット反転を含む位置置換手段03を備えている。
なお、図5(A)、図5(B)は、実施形態2における登録処理、ビット列照合処理の動作をそれぞれ説明する流れ図である。
図5(A)を参照すると、ビット列登録装置100Bは、ビット列Zを入力し(ステップS1)、ビット反転を含む位置置換手段103において、ビット列Zを予め定められた順序に従ってビット反転を含む位置置換を行ったビット列Z’を出力する(ステップS2A)。テンプレート生成手段101は、位置置換済みのビット列のテンプレートを生成し(ステップS3)、テンプレート記装置400に記録する。
図5(B)を参照すると、ビット列Zがビット列照会装置200に入力される(ステップS11)。ビット列照会装置200では、ビット反転を含む位置置換手段203に入力し、ビット反転を含む位置置換手段203では、ビット列Zを予め定められた順序に従って、ビット反転を含む位置置換を行ったビット列Z'を出力する(ステップS12A)。
ビット列照会装置200Bは、ビット列Z'をビット列照会手段201に入力し、ビット列Z'を入力として、ビット列照合手段301とデータのやり取りを行う(ステップS13)。
ビット列照合装置300は照合結果を出力する(ステップS14)。ビット列照合装置300のビット列照合手段301は、例えば上式(16)、あるいは式(34)が成り立つ場合、ビット列ZとZ'のハミング距離がd以下である(ZとZ’がマッチした)と判定する。このとき、ビット列照会装置200Bは照会結果を出力するようにしてもよい。
なお、前実施形態1、実施形態2のように、システム毎ではなく、ビット列毎に、異なる位置置換、ビット反転を含む位置置換を適用してもよい。このような方法を用いれば、同一システム内であっても、テンプレートAが含んでいるビット列ZAと2元BCH誤り訂正符号の符号語との排他的論理和演算結果と、テンプレートBが含んでいるビット列ZBと2元BCH誤り訂正符号の符号語との排他的論理和演算結果に対して、それらの排他的論理和を適用し、復号処理をかけることによって、ビット列ZAとビット列ZBの距離が近いか否かを調べることを困難にすることができる。関連発明2に示されているような、あるビット列に関する照会処理を一度で済ませる方法が利用できなくなる。
上記実施形態は、ビット列の照合システムに適用可能である。また、ビット列として生体情報を用いることで、生体認証にといった用途にも適用可能である。さらに、複数のサイトの認証や照合方法に用いても、登録したデータや生体情報に関する情報を強く秘匿することができる。
なお、上記特許文献、非特許文献の各開示を、本書に引用をもって繰り込むものとする。本発明の全開示(請求の範囲を含む)の枠内において、さらにその基本的技術思想に基づいて、実施形態ないし実施例の変更・調整が可能である。また、本発明の請求の範囲の枠内において種々の開示要素(各請求項の各要素、各実施例の各要素、各図面の各要素等を含む)の多様な組み合わせ乃至選択が可能である。すなわち、本発明は、請求の範囲を含む全開示、技術的思想にしたがって当業者であればなし得るであろう各種変形、修正を含むことは勿論である。特に、本書に記載した数値範囲については、当該範囲内に含まれる任意の数値ないし小範囲が、別段の記載のない場合でも具体的に記載されているものと解釈されるべきである。
100、100A、100B ビット列登録装置
101 テンプレート生成手段
102 ビット列位置置換手段
103 反転を含む位置置換手段
200、200A、200B ビット列照会装置
201 ビット列照会手段
202 ビット列位置置換手段
203 反転を含む位置置換手段
300 ビット列照合装置
301 ビット列照合手段
400 テンプレート記憶装置
401 テンプレート記憶手段

Claims (11)

  1. 入力された第1のビット列に対して位置置換を行う第1のビット列位置置換手段と、
    前記第1のビット列位置置換手段で前記第1のビット列を位置置換した結果のビット列と、第1の鍵を線形性を有する誤り訂正符号で符号化した第1の符号語との排他的論理和演算を行って第1の暗号データを作成し
    前記第1の鍵と定数との内積と、前記第1の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和に基づき、位置置換した結果のビット列間のハミング距離が予め定められた所定値以下であることを検証するための補助データを生成し、前記第1の暗号データ、及び前記補助データをテンプレートとして記憶装置に記憶するテンプレート生成手段と、
    入力された照合対象の第2のビット列に対して前記第1のビット列位置置換手段と同一の位置置換を行う第2のビット列位置置換手段と、
    前記第2のビット列位置置換手段で前記第2のビット列を位置置換した結果のビット列と、第2の鍵を線形性を有する誤り訂正符号で符号化した第2の符号語との排他的論理和演算を行って第2の暗号データを作成し
    前記第2の鍵と定数との内積と、前記第2の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和に基づく第1の値と、
    前記第2の暗号データと前記第1の暗号データとの差分を前記誤り訂正符号で復号した結果と定数との内積と、前記第2の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和からなる第2の値との演算結果と、
    前記記憶装置にテンプレートとして記憶されている前記補助データと、
    に基づき、前記第2のビット列位置置換手段で前記第2のビット列を位置置換した結果のビット列と、前記テンプレートの生成に用いられた、前記第1のビット列位置置換手段で前記第1のビット列を位置置換した結果のビット列との間のハミング距離が予め定められた所定値以下であることを検証するビット列照合手段と、
    を備えたことを特徴とするビット列照合システム。
  2. 前記第1及び第2のビット列位置置換手段が、ビット反転を含む位置置換を用いる、ことを特徴とする請求項1記載のビット列照合システム。
  3. 前記第1及び第2のビット列位置置換手段は、入力されたビット列毎に、異なる位置置換を用いる、ことを特徴とする請求項1記載のビット列照合システム。
  4. 前記第1及び第2のビット列位置置換手段が、入力されたビット列毎に、異なるビット反転の位置反転を用いる、ことを特徴とする請求項2記載のビット列照合システム。
  5. 前記第1のビット列位置置換手段と、前記テンプレート生成手段とを備えたビット列登録装置と、
    前記第2のビット列位置置換手段と、前記第2のビット列位置置換手段で位置置換後のビット列を受け取り前記ビット列照合手段とデータを授受して照会するビット列照会手段と、を備えたビット列照会装置と、
    前記ビット列照会手段から、前記第2のビット列位置置換手段で位置置換後のビット列を受け、前記テンプレートを参照して照合を行う前記ビット列照合手段を備えたビット列照合装置を備えた、ことを特徴とする請求項1乃至4のいずれか1項記載のビット列照合システム。
  6. 前記テンプレート生成手段は、前記補助データとして、
    前記第1の鍵と定数との内積と、前記第1の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和からなる第1の補助データ(W2)と、
    前記暗号学的ハッシュ関数の出力と乱数との連結演算結果を前記誤り訂正符号で符号化した符号語(C3)と、前記第2のビット列を位置置換した結果のビット列(Z)との排他的論理和からなる第2の補助データ(W3)を生成し、前記テンプレートとして前記記憶装置に記憶し、
    前記ビット列照合手段は、
    前記第2の補助データ(W3)と前記第2のビット列を位置置換したビット列の排他的論理和を前記誤り訂正符号で復号した結果(h')と、
    前記第2の鍵と定数との内積と前記第2の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和と、
    の排他的論理和を前記第1の値とし、
    前記第1の値と前記第2の値の排他的論理和が前記第1の補助データと等しいかチェックし、等しい場合に、前記第2のビット列を位置置換した結果のビット列と、前記テンプレートの生成に用いられた、前記第1のビット列位置置換手段で前記第1のビット列を位置置換した結果のビット列との間のハミング距離が予め定められた所定値以下であると判定する、ことを特徴とする請求項1乃至5のいずれか1項記載のビット列照合システム。
  7. 記憶装置を備えたデータ処理装置によるビット列照合方法であって、
    入力された第1のビット列に対して位置置換を行う第1のビット列位置置換工程と、
    前記第1のビット列位置置換工程で前記第1のビット列を位置置換した結果のビット列と、第1の鍵を線形性を有する誤り訂正符号で符号化した第1の符号語との排他的論理和演算を行って第1の暗号データを作成し
    前記第1の鍵と定数との内積と、前記第1の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和に基づき、位置置換した結果のビット列間のハミング距離が予め定められた所定値以下であることを検証するための補助データを生成し、前記第1の暗号データ、及び前記補助データをテンプレートとして記憶装置に記憶するテンプレート生成工程と、
    入力された照合対象の第2のビット列に対して前記第1のビット列位置置換工程と同一の位置置換を行う第2のビット列位置置換工程と、
    前記第2のビット列位置置換工程で前記第2のビット列を位置置換した結果のビット列と、第2の鍵を線形性を有する誤り訂正符号で符号化した第2の符号語との排他的論理和演算を行って第2の暗号データを作成し
    前記第2の鍵と定数との内積と、前記第2の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和に基づく第1の値と、
    前記第2の暗号データと前記第1の暗号データとの差分を前記誤り訂正符号で復号した結果と定数との内積と、前記第2の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和からなる第2の値との演算結果と、
    前記記憶装置にテンプレートとして記憶されている前記補助データと、
    に基づき、前記第2のビット列位置置換工程で前記第2のビット列を位置置換した結果のビット列と、前記テンプレートの生成に用いられた、前記第1のビット列位置置換工程で前記第1のビット列を位置置換した結果のビット列との間のハミング距離が予め定められた所定値以下であることを検証するビット列照合工程と、
    を含む、ことを特徴とするビット列照合方法。
  8. 前記第1及び第2のビット列位置置換工程が、ビット反転を含む位置置換を用いる、ことを特徴とする請求項記載のビット列照合方法。
  9. 前記第1及び第2のビット列位置置換工程が、
    システム毎に、異なるビット列の位置置換を用いる、
    システム毎に、異なるビット反転を含む位置置換を用いる、
    入力されたビット列毎に、異なる位置置換を用いる、
    入力されたビット列毎に、異なるビット反転を含む位置反転を用いる、
    のうちのいずれかを行う、ことを特徴とする請求項7又は記載のビット列照合方法。
  10. コンピュータに、
    入力された第1のビット列に対して位置置換を行う第1のビット列位置置換処理と、
    前記第1のビット列位置置換処理で前記第1のビット列を位置置換した結果のビット列と、第1の鍵を線形性を有する誤り訂正符号で符号化した第1の符号語との排他的論理和演算を行って第1の暗号データを作成し
    前記第1の鍵と定数との内積と、前記第1の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和に基づき、位置置換した結果のビット列間のハミング距離が予め定められた所定値以下であることを検証するための補助データを生成し、前記第1の暗号データ、及び前記補助データをテンプレートとして記憶装置に記憶するテンプレート生成処理と、
    入力された照合対象の第2のビット列に対して前記第1のビット列位置置換処理と同一の位置置換を行う第2のビット列位置置換処理と、
    前記第2のビット列位置置換処理で前記第2のビット列を位置置換した結果のビット列と、第2の鍵を線形性を有する誤り訂正符号で符号化した第2の符号語との排他的論理和演算を行って第2の暗号データを作成し
    前記第2の鍵と定数との内積と、前記第2の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和に基づく第1の値と、
    前記第2の暗号データと前記第1の暗号データとの差分を前記誤り訂正符号で復号した結果と定数との内積と、前記第2の暗号データを入力とする暗号学的ハッシュ関数の出力との排他的論理和からなる第2の値との演算結果と、
    前記記憶装置にテンプレートとして記憶されている前記補助データと、
    に基づき、前記第2のビット列位置置換処理で前記第2のビット列を位置置換した結果のビット列と、前記テンプレートの生成に用いられた、前記第1のビット列位置置換処理で前記第1のビット列を位置置換した結果のビット列との間のハミング距離が予め定められた所定値以下であることを検証するビット列照合処理と、
    を実行させるプログラム。
  11. 前記第1及び第2のビット列位置置換処理が、ビット反転を含む位置置換を用いる、ことを特徴とする請求項10記載のプログラム。
JP2014552100A 2012-12-14 2013-12-13 ビット列照合システムと方法とプログラム Active JP6323338B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
JP2012273450 2012-12-14
JP2012273450 2012-12-14
PCT/JP2013/083475 WO2014092183A1 (ja) 2012-12-14 2013-12-13 ビット列照合システムと方法とプログラム

Publications (2)

Publication Number Publication Date
JPWO2014092183A1 JPWO2014092183A1 (ja) 2017-01-12
JP6323338B2 true JP6323338B2 (ja) 2018-05-16

Family

ID=50934464

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2014552100A Active JP6323338B2 (ja) 2012-12-14 2013-12-13 ビット列照合システムと方法とプログラム

Country Status (4)

Country Link
US (1) US9621533B2 (ja)
EP (1) EP2933945A4 (ja)
JP (1) JP6323338B2 (ja)
WO (1) WO2014092183A1 (ja)

Families Citing this family (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
FR3018934B1 (fr) * 2014-03-24 2017-05-26 Morpho Procede d'enrolement de donnees dans une base pour la protection desdites donnees
US10484182B2 (en) * 2014-11-05 2019-11-19 Nec Corporation Encrypted text verification system, method, and recording medium
US10503915B2 (en) * 2015-02-24 2019-12-10 Nec Corporation Encrypted text verification system, method and recording medium
US9916432B2 (en) 2015-10-16 2018-03-13 Nokia Technologies Oy Storing and retrieving cryptographic keys from biometric data
US11030290B2 (en) * 2016-03-31 2021-06-08 Nec Corporation Biological data registration support device, biological data registration support system, biological data registration support method, biological data registration support program, recording medium for strong biological data registration support program
JP6844411B2 (ja) * 2016-05-17 2021-03-17 富士通株式会社 関係暗号化
FR3054905B1 (fr) * 2016-08-04 2019-10-18 Safran Identity & Security Procede de generation de cle et procede de controle d'acces
KR20200100481A (ko) * 2019-02-18 2020-08-26 삼성전자주식회사 생체 정보를 인증하기 위한 전자 장치 및 그의 동작 방법
US10833700B2 (en) * 2019-03-13 2020-11-10 Micron Technology, Inc Bit string conversion invoking bit strings having a particular data pattern
KR102575638B1 (ko) * 2021-10-14 2023-09-07 충북대학교 산학협력단 진성 난수 발생기의 성능 개선 방법

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6038315A (en) * 1997-03-17 2000-03-14 The Regents Of The University Of California Method and system for normalizing biometric variations to authenticate users from a public database and that ensures individual biometric data privacy
JP4519963B2 (ja) 1999-06-21 2010-08-04 富士通株式会社 生体情報の暗号化・復号化方法および装置並びに、生体情報を利用した本人認証システム
DE602004028118D1 (de) 2003-05-21 2010-08-26 Koninkl Philips Electronics Nv Verfahren und Vorrichtung zur Authentifikation eines physischen Gegenstandes
RU2316120C2 (ru) * 2004-05-12 2008-01-27 Корпорация "Самсунг Электроникс" Биометрическая система аутентификации
WO2007036822A1 (en) 2005-09-29 2007-04-05 Koninklijke Philips Electronics N.V. Secure protection of biometric templates
JP4686435B2 (ja) * 2006-10-27 2011-05-25 株式会社東芝 演算装置
FR2917525B1 (fr) * 2007-06-12 2009-09-25 Sagem Defense Securite Traitement de donnees biometriques par transformation
EP2225696A2 (en) 2007-12-20 2010-09-08 Koninklijke Philips Electronics N.V. Defining classification thresholds in template protection systems
JP5271669B2 (ja) 2008-10-31 2013-08-21 株式会社日立製作所 生体認証方法およびシステム
JP5039015B2 (ja) 2008-12-12 2012-10-03 株式会社アルファ 車両のドアハンドル装置
EP2495908A4 (en) * 2009-10-29 2017-07-19 Mitsubishi Electric Corporation Data processing device
JP5624487B2 (ja) 2011-01-31 2014-11-12 横河電機株式会社 核酸抽出方法
WO2014010725A1 (ja) 2012-07-13 2014-01-16 日本電気株式会社 暗号文照合システムと方法とプログラム

Also Published As

Publication number Publication date
EP2933945A1 (en) 2015-10-21
JPWO2014092183A1 (ja) 2017-01-12
US9621533B2 (en) 2017-04-11
US20150334100A1 (en) 2015-11-19
EP2933945A4 (en) 2016-08-03
WO2014092183A1 (ja) 2014-06-19

Similar Documents

Publication Publication Date Title
JP6323338B2 (ja) ビット列照合システムと方法とプログラム
JP6048501B2 (ja) 暗号文照合システムと方法とプログラム
US9882712B2 (en) Encrypted text matching system, method, and computer readable medium
JP6738062B2 (ja) 暗号文照合システム、方法、および記録媒体
JP5854443B2 (ja) 誤り訂正符号方式を用いて計算環境における資産集合についての識別子を生成する変化許容力を有する方法
Silberstein et al. Error-correcting regenerating and locally repairable codes via rank-metric codes
US9985779B2 (en) Encrypted text matching system, method, and computer readable medium
US9900146B2 (en) Encrypted text matching system, method, and computer readable medium
RU2707940C1 (ru) Способ многоуровневого контроля и обеспечения целостности данных
Zerrouki et al. A generation and recovery framework for silicon pufs based cryptographic key
JP2017195567A (ja) 認証装置、認証方法及び認証プログラム
Samuel Preventing Pollution Attacks in Cloud Storages
Hiller et al. Reliability bound and channel capacity of IBS-based fuzzy embedders
Dubrova et al. Lightweight CRC-based Authentication
Kumar et al. Optimizing the Algorithm for Secure and Dynamic Cloud Storage using MHT

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20161104

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20170801

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20171002

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20180326

R150 Certificate of patent or registration of utility model

Ref document number: 6323338

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150