JP5496410B2 - 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法 - Google Patents

類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法 Download PDF

Info

Publication number
JP5496410B2
JP5496410B2 JP2013500748A JP2013500748A JP5496410B2 JP 5496410 B2 JP5496410 B2 JP 5496410B2 JP 2013500748 A JP2013500748 A JP 2013500748A JP 2013500748 A JP2013500748 A JP 2013500748A JP 5496410 B2 JP5496410 B2 JP 5496410B2
Authority
JP
Japan
Prior art keywords
similarity
ciphertext
unit
similarity calculation
public key
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.)
Expired - Fee Related
Application number
JP2013500748A
Other languages
English (en)
Other versions
JPWO2012114452A1 (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric 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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Application granted granted Critical
Publication of JP5496410B2 publication Critical patent/JP5496410B2/ja
Publication of JPWO2012114452A1 publication Critical patent/JPWO2012114452A1/ja
Expired - Fee Related 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/30Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy
    • H04L9/3066Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves
    • H04L9/3073Public key, i.e. encryption algorithm being computationally infeasible to invert or user's encryption keys not requiring secrecy involving algebraic varieties, e.g. elliptic or hyper-elliptic curves involving pairings, e.g. identity based encryption [IBE], bilinear mappings or bilinear pairings, e.g. Weil or Tate pairing
    • 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
    • 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/008Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols involving homomorphic encryption
    • 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
    • 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/34Encoding or coding, e.g. Huffman coding or error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Mathematical Analysis (AREA)
  • Biomedical Technology (AREA)
  • Biodiversity & Conservation Biology (AREA)
  • Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • General Physics & Mathematics (AREA)
  • General Health & Medical Sciences (AREA)
  • Mathematical Optimization (AREA)
  • Mathematical Physics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Computing Systems (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Storage Device Security (AREA)

Description

この発明は、暗号化されたデータ間の類似度を算出する類似度算出システムに関する。
生体情報など機密を要するデータを暗号化した状態で記憶しておき、暗号化されたままの状態で、別のデータとどの程度似ているかを表わす類似度を算出する技術がある。例えば、加法的な準同型性を有する暗号方式を利用すれば、データが暗号化されたままでの演算が可能になる。加法的な準同型性を有する暗号方式としては、岡本−高島暗号方式(特許文献3、非特許文献1)、BGN暗号方式(非特許文献2)、Gentry暗号方式(非特許文献3)、Paillier暗号方式などが知られている。なお、BGN暗号方式やGentry暗号方式は、加法的な準同型性だけでなく、乗法的な準同型性も有するので、二重準同型暗号と呼ばれる。また、Gentry暗号方式は、乗法の回数に制限がないので、完全準同型暗号あるいは環準同型暗号と呼ばれる。また、RSA(登録商標)暗号方式など乗法的な準同型性のみを有する暗号方式もある。
特表2008−521025号公報 特開2009−129210号公報 特開2010−54875号公報 特開2006−262333号公報 特開2001−7802号公報
服部充洋、柴田陽一、伊藤隆、松田規、高島克幸、米田健「2−DNF準同型暗号を用いた秘匿生体認証」IEICE Technical Report 109(272)、113〜120ページ、2009年 D.Boneh、E.−J.Goh、K.Nissim「Evaluating 2−DNF Formulas on Ciphertexts」Theory of Cryptography Conference、Lecture Notes in Computer Science、Vol.3378、325〜341ページ、2005年 C.Gentry「Fully Homomorphic Encryption Using Ideal Lattices」ACM Symposium on Theory of Computing、169−178ページ、2009年 M.Upmanyu、A.M.Namboodiri、K.Srinathan、C.V.Jawahar「Blind Authentication: A Secure Crypto−Biometric Verification Protocol」IEEE Transactions on Information Forensics and Security、Vol.5、No.2、2010年。
加法的な準同型性を有する暗号方式のように、データを暗号化したままの状態での演算が可能な暗号方式を使う場合、システム内の装置間でやり取りされる情報や、それぞれの装置が記憶している情報に準同型性を適用することで、思わぬ攻撃を受ける可能性がある。
特に、ユーザを認証する認証システムなどにおいては、元のデータの秘密を守るだけでは十分でなく、システム内の装置間でやり取りされる情報や、それぞれの装置が記憶している情報から、ユーザになりすますことができる情報が漏れることを防ぐ必要がある。
この発明は、例えば、上記のような課題を解決するためになされたものであり、元のデータについての情報や、なりすましに利用される情報などが漏れることを防ぎつつ、データが暗号化されたままの状態で、データ間の類似度を算出することを目的とする。
この発明にかかる類似度算出装置は、
比較データと対象データとの類似度を算出する類似度算出装置において、
データを記憶する記憶装置と、データを処理する処理装置と、比較暗号文記憶部と、対象暗号文取得部と、一時鍵生成部と、類似度途中暗号文算出部と、類似度途中暗号文通知部と、類似度途中復号文取得部と、類似度算出部とを有し、
上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
上記一時鍵生成部は、上記処理装置を用いて、一時鍵を生成し、
上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文を算出し、
上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知し、
上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文を取得し、
上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする。
この発明にかかる類似度算出システムによれば、データが暗号化されたままの状態で、データ間の類似度を算出することができるとともに、その過程で、元のデータについての情報や、なりすましに利用される情報などが漏れるのを防ぐことができる。
実施の形態1における生体認証システム100の全体構成の一例を示すシステム構成図。 実施の形態1における証明装置101、認証装置102、復号装置103、登録装置104のハードウェア構成の一例を示す図。 実施の形態1における登録装置104の機能ブロックの構成の一例を示すブロック構成図。 実施の形態1における証明装置101の機能ブロックの構成の一例を示すブロック構成図。 実施の形態1における認証装置102の機能ブロックの構成の一例を示すブロック構成図。 実施の形態1における復号装置103の機能ブロックの構成の一例を示すブロック構成図。 実施の形態1における生体認証システム100の全体の動作の一例を示すフローチャート図。 実施の形態1におけるセットアップ処理S500の流れの一例を示すフローチャート図。 実施の形態1における登録処理S600の流れの一例を示すフローチャート図。 実施の形態1における認証処理S700の流れの一例を示すフローチャート図。 正則行列Xを使ってベクトル分解問題を解くベクトル分解処理S540の流れの一例を示すフローチャート図。 実施の形態1における鍵生成部401の構成の一例を示す詳細ブロック図。 実施の形態1における鍵生成工程S501の処理の流れの一例を示すフローチャート図。 実施の形態1における特徴ベクトル暗号化工程S603の処理の流れの一例を示すフローチャート図。 実施の形態1における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図。 実施の形態1における暗号化データ埋め込み部217の構成の一例を示す詳細ブロック図。 実施の形態1における第一レスポンス生成工程S707の処理の流れの一例を示すフローチャート図。 実施の形態1における暗号化データ抽出部305の構成の一例を示す詳細ブロック図。 実施の形態1における暗号化生体情報抽出工程S710の処理の流れの一例を示すフローチャート図。 実施の形態1における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図。 実施の形態1における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図。 実施の形態1における復号部404の構成の一例を示す詳細ブロック図。 実施の形態1における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図。 実施の形態1における平文類似度抽出部315の構成の一例を示す詳細ブロック図。 実施の形態1における平文類似度算出工程S719の処理の流れの一例を示すフローチャート図。 実施の形態1の生体認証システム100における類似度算出の計算手順を示すフローチャート図。 実施の形態2における生体認証システム100の全体構成の一例を示すシステム構成図。 実施の形態3における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図。 実施の形態3における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図。 実施の形態3の生体認証システム100における類似度算出の計算手順を示すフローチャート図。 実施の形態4における鍵生成部401の構成の一例を示す詳細ブロック図。 実施の形態4における鍵生成工程S501の処理の流れの一例を示すフローチャート図。 実施の形態4における特徴ベクトル暗号化工程S603の処理の流れの一例を示すフローチャート図。 実施の形態4における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図。 実施の形態4における暗号化データ埋め込み部217の構成の一例を示す詳細ブロック図。 実施の形態4における第一レスポンス生成工程S707の処理の流れの一例を示すフローチャート図。 実施の形態4における暗号化データ抽出部305の構成の一例を示す詳細ブロック図。 実施の形態4における暗号化生体情報抽出工程S710の処理の流れの一例を示すフローチャート図。 実施の形態4における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図。 実施の形態4における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図。 実施の形態4における暗号化ランダム類似度算出部314の構成の別の例を示す詳細ブロック図。 実施の形態4における第二チャレンジ生成工程S712の処理の流れの別の例を示すフローチャート図。 実施の形態4における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図。 実施の形態4における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図。 実施の形態4の生体認証システム100における類似度算出の計算手順を示すフローチャート図。 実施の形態5における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図。 実施の形態5における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図。 実施の形態5の生体認証システム100における類似度算出の計算手順を示すフローチャート図。 実施の形態6における鍵生成部401の構成の一例を示す詳細ブロック図。 実施の形態6における鍵生成工程S501の処理の流れの一例を示すフローチャート図。 実施の形態6における特徴ベクトル暗号化工程S603の処理の流れの一例を示すフローチャート図。 実施の形態6における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図。 実施の形態6における暗号化データ埋め込み部217の構成の一例を示す詳細ブロック図。 実施の形態6における第一レスポンス生成工程S707の処理の流れの一例を示すフローチャート図。 実施の形態6における暗号化生体情報抽出工程S710の処理の流れの一例を示すフローチャート図。 実施の形態6における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図。 実施の形態6における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図。 実施の形態6における復号部404の構成の一例を示す詳細ブロック図。 実施の形態6における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図。 実施の形態6における平文類似度算出工程S719の処理の流れの一例を示すフローチャート図。 実施の形態6の生体認証システム100における類似度算出の計算手順を示すフローチャート図。 実施の形態7における暗号化乱数生成部304の構成の一例を示す詳細ブロック図。 実施の形態7における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図。 実施の形態7における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図。 実施の形態7における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図。 実施の形態7における復号部404の構成の一例を示す詳細ブロック図。 実施の形態7における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図。 実施の形態7の生体認証システム100における類似度算出の計算手順を示すフローチャート図。 実施の形態8における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図。 実施の形態8における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図。 実施の形態8における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図。 実施の形態8の生体認証システム100における類似度算出の計算手順を示すフローチャート図。 実施の形態9における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図。 実施の形態9における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図。 実施の形態9における復号部404の構成の一例を示す詳細ブロック図。 実施の形態9における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図。 実施の形態9の生体認証システム100における類似度算出の計算手順を示すフローチャート図。 実施の形態10における画像検索システム110の全体構成の一例を示すシステム構成図。 実施の形態10における登録装置104の機能ブロックの構成の一例を示すブロック構成図。 実施の形態10における端末装置111の機能ブロックの構成の一例を示すブロック構成図。 実施の形態10における検索装置112の機能ブロックの構成の一例を示すブロック構成図。
実施の形態1.
実施の形態1について、図1〜図26を用いて説明する。
図1は、この実施の形態における生体認証システム100の全体構成の一例を示すシステム構成図である。
生体認証システム100は、ユーザの指紋などの生体情報を入力し、入力した生体情報と、あらかじめ登録された生体情報とを照合することにより、利用者を認証するシステムである。
生体認証システム100(類似度算出システム)は、例えば、証明装置101と、認証装置102と、復号装置103と、登録装置104とを有する。
登録装置104は、ユーザから生体情報を抽出し、抽出した生体情報を暗号化して、認証装置102に登録する。
証明装置101(暗号化装置)は、ユーザから生体情報を抽出し、抽出した生体情報を暗号化する。また、証明装置101は、認証装置102と対話を行い、認証を実施する。
認証装置102(類似度算出装置)は、登録装置104により登録されたユーザの暗号化生体情報を格納する。また、認証装置102は、証明装置101、復号装置103と対話を行い、認証を実施する。
復号装置103は、認証装置102と対話を行い、認証装置から送られてきた暗号化された類似度に関連したデータを復号する。
なお、証明装置101や登録装置104は、複数あってもよい。また、証明装置101と登録装置104とは、物理的に一つの装置であってもよい。また、証明装置101と復号装置103とは、物理的に一つの装置であってもよい。また、認証装置102と登録装置104とは、物理的に一つの装置であってもよい。
図2は、この実施の形態における証明装置101、認証装置102、復号装置103、登録装置104のハードウェア構成の一例を示す図である。
証明装置101、認証装置102、復号装置103、登録装置104は、例えばコンピュータであり、処理装置911と、入力装置912と、出力装置913と、記憶装置914とを有する。
記憶装置914は、処理装置911が実行するプログラムや、処理装置911が処理するデータなどを記憶する。記憶装置914は、例えば、揮発性メモリ、不揮発性メモリ、ハードディスク装置などである。
処理装置911は、記憶装置914が記憶したプログラムを実行することにより、データを処理し、装置全体を制御する。
入力装置912は、外部からの情報を、処理装置911が処理できるデータに変換する。入力装置912が変換したデータは、処理装置911が直接処理してもよいし、記憶装置914が記憶してもよい。入力装置912は、例えば、キーボードやマウスなど使用者の操作を入力する操作入力装置、ユーザの指紋や虹彩などの生体情報を抽出して入力する生体情報入力装置、他の装置が送信した信号を受信する受信装置(通信装置)、記録媒体からデータを読み出す読み出し装置などである。
出力装置913は、処理装置911が処理したデータや、記憶装置914が記憶したデータなどを変換して、外部に出力する装置である。出力装置913は、例えば、画像を表示する表示装置、他の装置に対して信号を送信する送信装置(通信装置)、記録媒体にデータを書き込む書き込み装置などである。
図3は、この実施の形態における登録装置104の機能ブロックの構成の一例を示すブロック構成図である。
登録装置104は、例えば、公開鍵受信部208と、公開鍵記憶部202と、生体情報抽出部203と、特徴ベクトル形成部204と、乱数生成部205と、暗号化データ生成部206と、暗号化データ送信部201とを有する。
公開鍵受信部208(公開鍵取得部)は、通信装置などの入力装置912を用いて、復号装置103で生成された公開鍵を受信する。通信装置(通信部)は、認証装置102や復号装置103などの他の装置との間でデータのやりとりを行う。
暗号化データ送信部201(比較暗号文通知部)は、通信装置などの出力装置913を用いて、認証装置102に対して暗号化生体情報(比較暗号文)を送信する。
公開鍵記憶部202は、記憶装置914を用いて、公開鍵受信部208が受信した公開鍵を記憶する。記憶装置914(記憶部)は、復号装置103から送られてきた公開鍵などの各種データを格納する。
生体情報抽出部203は、光学カメラ、赤外線カメラ、その他の各種センサなどの入力装置912を用いて、個人識別を行うのに必要となる生体情報をユーザから抽出する。
特徴ベクトル形成部204(比較データ取得部)は、処理装置911を用いて、生体情報抽出部203が抽出した生体情報から、個人の特徴を表す特徴ベクトル(比較データ)を形成する。
乱数生成部205は、処理装置911を用いて、公開鍵記憶部202が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部205が生成した乱数は、暗号化データ生成部206などが使用する。
暗号化データ生成部206(暗号化部、比較暗号文生成部)は、処理装置911を用いて、乱数生成部205が生成した乱数に基づいて、特徴ベクトル形成部204が形成した特徴ベクトルを暗号化し、暗号化生体情報(暗号化特徴ベクトル)を生成する。
図4は、この実施の形態における証明装置101の機能ブロックの構成の一例を示すブロック構成図である。
証明装置101は、例えば、公開鍵受信部218と、公開鍵記憶部212と、生体情報抽出部213と、特徴ベクトル形成部214と、乱数生成部215と、第一チャレンジ受信部211と、暗号化データ埋め込み部217と、第一レスポンス送信部221とを有する。
公開鍵受信部218(公開鍵取得部)は、通信装置などの入力装置912を用いて、復号装置103で生成された公開鍵を受信する。通信装置(通信部)は、認証装置102や復号装置103などの他の装置との間でデータのやりとりを行う。
第一チャレンジ受信部211(一時公開鍵取得部)は、通信装置などの入力装置912を用いて、認証装置102からの第一チャレンジ(一時公開鍵)を受信する。
第一レスポンス送信部221(対象二重暗号文通知部)は、通信装置などの入力装置912を用いて、第一チャレンジに対応した第一レスポンス(対象二重暗号文)を、認証装置102に対して返信する。
公開鍵記憶部212は、記憶装置914を用いて、公開鍵受信部218が受信した公開鍵を記憶する。記憶装置914(記憶部)は、復号装置103から送られてきた公開鍵などの各種データを格納する。
生体情報抽出部213は、光学カメラ、赤外線カメラ、その他の各種センサなどの入力装置912を用いて、個人識別を行うのに必要となる生体情報をユーザから抽出する。
特徴ベクトル形成部214(対象データ取得部)は、処理装置911を用いて、生体情報抽出部213が抽出した生体情報から、個人の特徴を表す特徴ベクトル(対象データ)を形成する。
乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部215が生成した乱数は、暗号化データ埋め込み部217などが使用する。
暗号化データ埋め込み部217(レスポンス生成部、対象二重暗号文算出部)は、処理装置911を用いて、認証装置102から送られてきた第一チャレンジを、特徴ベクトル形成部214が形成した特徴ベクトルの値に応じて処理を行う。すなわち、暗号化データ埋め込み部217は、第一チャレンジに暗号化生体情報を埋め込む。暗号化データ埋め込み部217は、認証装置102に返す第一レスポンスを計算する。
図5は、この実施の形態における認証装置102の機能ブロックの構成の一例を示すブロック構成図である。
認証装置102は、例えば、公開鍵受信部308と、公開鍵記憶部302と、暗号化データ受信部301と、暗号化データ記憶部312と、乱数生成部303と、乱数記憶部322と、暗号化乱数生成部304と、第一チャレンジ送信部311と、第一レスポンス受信部331と、暗号化データ抽出部305と、暗号化ランダム類似度算出部314と、第二チャレンジ送信部321と、第二レスポンス受信部341と、平文類似度抽出部315と、判定部306とを有する。
公開鍵受信部308(公開鍵取得部)は、通信装置(通信部)などの入力装置912を用いて、復号装置103で生成された公開鍵を受信する。
暗号化データ受信部301(比較暗号文取得部)は、通信装置などの入力装置912を用いて、証明装置101から暗号化特徴ベクトル(比較暗号文)を受信する。
第一チャレンジ送信部311(一時公開鍵通知部)は、通信装置などの出力装置913を用いて、証明装置101へ第一チャレンジ(一時公開鍵)を送信する。
第一レスポンス受信部331(対象二重暗号文取得部)は、通信装置などの入力装置912を用いて、証明装置101から第一チャレンジに対応する第一レスポンス(対象二重暗号文)を受信する。
第二チャレンジ送信部321(類似度途中暗号文通知部)は、通信装置などの出力装置913を用いて、復号装置103へ第二チャレンジ(類似度途中暗号文)を送信する。
第二レスポンス受信部341(類似度途中復号文取得部)は、通信装置などの入力装置912を用いて、復号装置103から第二レスポンス(類似度途中復号文)を受信する。
公開鍵記憶部302は、記憶装置914(記憶部)を用いて、復号装置103から送付された公開鍵を格納する。
暗号化データ記憶部312(比較暗号文記憶部)は、記憶装置914を用いて、証明装置101から送られてきた暗号化特徴ベクトルを格納する。暗号化データ記憶部312は、複数の暗号化特徴ベクトルを、例えば、ユーザの識別子と対応づけて記憶する。
乱数記憶部322(一時秘密鍵記憶部、一時鍵記憶部)は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち一部の乱数(一時秘密鍵、一時鍵)を格納する。
乱数生成部303(一時秘密鍵生成部、一時鍵生成部)は、処理装置911を用いて、公開鍵記憶部302が格納した公開鍵の一部などに基づいて、乱数を生成する。乱数生成部303が生成した乱数は、暗号化乱数生成部304、暗号化データ抽出部305、暗号化ランダム類似度算出部314、平文類似度抽出部315などで用いられる。
暗号化乱数生成部304(チャレンジ生成部、一時公開鍵算出部)は、証明装置101と対話を行うために、処理装置911を用いて、第一チャレンジ(暗号化乱数)を生成する。
暗号化データ抽出部305(乱数除去部、対象暗号文取得部)は、処理装置911を用いて、証明装置101から送られてきた第一レスポンスに対して、その第一レスポンスに対応した第一チャレンジで使用した(乱数記憶部322が格納している)乱数を用いて、第一レスポンスに含まれている乱数を除去する。暗号化データ抽出部305は、第一レスポンスから第一チャレンジで用いた乱数の一部を取り除いて、暗号化特徴ベクトルを抽出する。
暗号化ランダム類似度算出部314(チャレンジ生成部、類似度途中暗号文算出部)は、復号装置103と対話を行うために、処理装置911を用いて、第二チャレンジ(暗号化ランダム類似度)を生成する。暗号化ランダム類似度算出部314は、暗号化データ抽出部305が抽出した暗号化特徴ベクトルと、暗号化データ記憶部312が記憶した暗号化特徴ベクトルとに基づいて、第二チャレンジを生成する。暗号化ランダム類似度算出部314は、暗号化データ記憶部312が記憶した暗号化特徴ベクトルのなかから、第一レスポンス受信部331が受信した第一レスポンスとユーザの識別子が一致する暗号化特徴ベクトルを取得して、第二チャレンジを生成する。
平文類似度抽出部315(乱数除去部、類似度算出部)は、復号装置103に送られてきた第二レスポンスから、その第二レスポンスに対応する第二チャレンジで使用した(乱数記憶部322が格納している)乱数を用いて、第二レスポンスに含まれている乱数を除去する。平文類似度抽出部315は、第二レスポンスから乱数を除去して、平文の類似度を算出する。
判定部306(類似判定部)は、処理装置911を用いて、平文類似度抽出部315が生成した平文の類似度を用いて個人識別を行い、本人か否かを判定する。つまり、判定部306は、平文の類似度を解析して、認証用の特徴ベクトルの発生源が正当であるか否かを判定する。
図6は、この実施の形態における復号装置103の機能ブロックの構成の一例を示すブロック構成図である。
復号装置103は、例えば、鍵生成部401と、秘密鍵記憶部413と、公開鍵記憶部403と、公開鍵送信部408と、第二チャレンジ受信部402と、復号部404と、第二レスポンス送信部412とを有する。
鍵生成部401(パラメータ生成部、秘密鍵生成部、公開鍵算出部)は、処理装置911を用いて、公開鍵や秘密鍵など、暗号化と復号に必要なパラメータを生成する。
公開鍵送信部408(公開鍵通知部)は、通信装置(通信部)などの出力装置913を用いて、証明装置101や認証装置102などに対して、鍵生成部401が生成した公開鍵を送信する。
第二チャレンジ受信部402(類似途中暗号文取得部)は、通信装置などの入力装置912を用いて、認証装置102から、第二チャレンジ(類似途中暗号文)を受信する。
第二レスポンス送信部412(類似途中復号文通知部)は、通信装置などの出力装置913を用いて、認証装置102に対して、第二チャレンジに対応した第二レスポンス(類似途中復号文)を送信する。
公開鍵記憶部403は、記憶装置914(記憶部)を用いて、鍵生成部401が生成した公開鍵などの各種データを格納する。
秘密鍵記憶部413は、記憶装置914を用いて、鍵生成部401が生成した秘密鍵を格納する。
復号部404(レスポンス生成部、類似途中復号文算出部)は、処理装置911を用いて、認証装置102から送信された第二チャレンジに対応した第二レスポンスを生成する。復号部404は、第二チャレンジ(暗号化ランダム類似度)を復号して、第二レスポンスを算出する。
図7は、この実施の形態における生体認証システム100の全体の動作の一例を示すフローチャート図である。
生体認証システム100の動作は、例えば、セットアップ処理S500と、登録処理S600と、認証処理S700との3つからなる。
セットアップ処理S500(設定処理)では、復号装置103が、暗号化と復号に必要となるパラメータや公開鍵・秘密鍵などを生成する。
登録処理S600では、登録装置104が、ユーザの生体情報(比較データ)を暗号化して認証装置102に送付する。認証装置102が、暗号化生体情報(比較暗号文)を格納する。
認証処理S700では、最初に、認証装置102が、証明装置101と対話を行い、その対話のデータ(第一チャレンジ及び第一レスポンス)から暗号化生体情報(対象暗号文)を抽出する。
次に、認証装置102が、抽出した暗号化生体情報と、登録処理S600であらかじめ登録された暗号化生体情報とに基づいて、復号装置103と対話を行い、その対話のデータ(第二チャレンジ及び第二レスポンス)からランダム類似度を抽出する。
最後に、認証装置102が、ランダム類似度から平文の類似度を抽出し、閾値と比較して本人であるかどうかの判定を行う。なお、ここでの閾値は、あらかじめ定められているシステムで共通の値であってもよいし、ユーザ毎に異なる値であってもよい。
図8は、この実施の形態におけるセットアップ処理S500の流れの一例を示すフローチャート図である。
セットアップ処理S500は、例えば、鍵生成工程S501と、公開鍵通知工程S502と、公開鍵取得工程S503〜S505とを有する。
最初に、鍵生成工程S501において、復号装置103の鍵生成部401が、処理装置911を用いて、準同型暗号方式の鍵生成アルゴリズムに基づき、秘密鍵skと公開鍵pkとを生成する。準同型暗号方式には、例えば、岡本−高島暗号方式、BGN暗号方式、Paillier暗号方式などがある。
次に、公開鍵通知工程S502において、復号装置103の公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkを記憶する。復号装置103の秘密鍵記憶部413が、記憶装置914を用いて、秘密鍵skを記憶する。復号装置103の公開鍵送信部408が、出力装置913を用いて、公開鍵pkを、登録装置104、証明装置101、認証装置102などに対して送信する。
公開鍵取得工程S503において、登録装置104の公開鍵受信部208が、入力装置912を用いて、復号装置103が送信した公開鍵pkを受信する。登録装置104の公開鍵記憶部202が、記憶装置914を用いて、公開鍵受信部208が受信した公開鍵pkを記憶する。
公開鍵取得工程S504において、証明装置101の公開鍵受信部218が、入力装置912を用いて、復号装置103が送信した公開鍵pkを受信する。証明装置101の公開鍵記憶部212が、記憶装置914を用いて、公開鍵受信部218が受信した公開鍵pkを記憶する。
公開鍵取得工程S505において、認証装置102の公開鍵受信部308が、入力装置912を用いて、復号装置103が送信した公開鍵pkを受信する。認証装置102の公開鍵記憶部302が、記憶装置914を用いて、公開鍵受信部308が受信した公開鍵pkを記憶する。
なお、ネットワークなどを介して公開鍵pkを送受信するのではなく、他の方式で、証明装置101などに公開鍵pkを配布する構成であってもよい。例えば、復号装置103が、公開鍵pkを、記録媒体(例えば、ハードディスクドライブや光学ディスクなど)に格納し、証明装置101などが、ネットワークなどを介してその記録媒体にアクセスし、あるいは、記録媒体自体を物理的に移動させて、記録媒体から公開鍵pkを読み出して格納する構成であってもよい。
図9は、この実施の形態における登録処理S600の流れの一例を示すフローチャート図である。
登録処理S600は、例えば、生体情報抽出工程S601と、特徴ベクトル生成工程S602と、特徴ベクトル暗号化工程S603と、暗号化生体情報通知工程S604と、暗号化生体情報取得工程S605とを有する。
最初に、生体情報抽出工程S601において、登録装置104の生体情報抽出部203が、入力装置912を用いて、ユーザの生体情報を抽出する。
特徴ベクトル生成工程S602において、登録装置104の特徴ベクトル形成部204が、処理装置911を用いて、生体情報抽出工程S601で生体情報抽出部203が抽出した生体情報の特徴ベクトルbを生成する。
特徴ベクトル暗号化工程S603において、登録装置104の乱数生成部205が、処理装置911を用いて、公開鍵pkの一部などに基づいて、乱数を生成する。登録装置104の暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkを読み出す。登録装置104の暗号化データ生成部206が、処理装置911を用いて、読み出した公開鍵pkと、乱数生成部205が生成した乱数とに基づいて、暗号化特徴ベクトルCを生成する。暗号化特徴ベクトルCが、特徴ベクトルbを暗号化したものである。
暗号化生体情報通知工程S604において、登録装置104の暗号化データ送信部201が、出力装置913を用いて、特徴ベクトル暗号化工程S603で暗号化データ生成部206が生成した暗号化特徴ベクトルCを、認証装置102に対して送信する。
暗号化生体情報取得工程S605において、認証装置102の暗号化データ受信部301が、入力装置912を用いて、暗号化生体情報通知工程S604で登録装置104が送信した暗号化特徴ベクトルCを受信する。認証装置102の暗号化データ記憶部312が、記憶装置914を用いて、暗号化データ受信部301が受信した暗号化特徴ベクトルCを記憶する。
なお、ユーザの生体情報や特徴ベクトルbは、暗号化特徴ベクトルCの生成後、不要となるので、消去する構成とすることが望ましい。そうすれば、不正者が、登録装置104の記憶装置914から、ユーザの生体情報や特徴ベクトルbを窃取することを防止できる。
また、暗号化特徴ベクトルCは、復号装置の公開鍵で暗号化されているので、不正者が、登録装置104と認証装置102との間の通信を傍受したり、認証装置102の記憶装置914から窃取したりして、暗号化特徴ベクトルCを入手したとしても、復号装置の秘密鍵を使わなければ、ユーザの生体情報や特徴ベクトルを知ることはできない。
更に、後述するように、認証時における特徴ベクトルの情報を含む第一レスポンスは、特徴ベクトルからしか生成できず、暗号化特徴ベクトルから生成することはできない。不正者が、暗号化特徴ベクトルCを入手したとしても、第一レスポンスを生成できないので、正規のユーザになりすますことはできない。
図10は、この実施の形態における認証処理S700の流れの一例を示すフローチャート図である。
認証処理S700は、例えば、第一チャレンジ生成工程S701と、乱数記憶工程S702と、第一チャレンジ通知工程S703と、第一チャレンジ取得工程S704と、生体情報抽出工程S705と、特徴ベクトル生成工程S706と、第一レスポンス生成工程S707と、第一レスポンス通知工程S708と、第一レスポンス取得工程S709と、暗号化生体情報抽出工程S710と、暗号化生体情報読出し工程S711と、第二チャレンジ生成工程S712と、乱数記憶工程S713と、第二チャレンジ通知工程S714と、第二チャレンジ取得工程S715と、第二レスポンス生成工程S716と、第二レスポンス通知工程S717と、第二レスポンス取得工程S718と、平文類似度算出工程S719と、認証判定工程S720とを有する。
最初に、第一チャレンジ生成工程S701において、認証装置102の乱数生成部303が、処理装置911を用いて、公開鍵記憶部302から公開鍵pkを読み出し、乱数を生成する。認証装置102の暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302から公開鍵pkを読み出し、乱数生成部303が生成した乱数を暗号化して、第一チャレンジ(暗号化乱数)を生成する。
乱数記憶工程S702において、認証装置102の乱数記憶部322が、記憶装置914を用いて、第一チャレンジ生成工程S701で乱数生成部303が生成した乱数を格納する。
第一チャレンジ通知工程S703において、認証装置102の第一チャレンジ送信部311が、出力装置913を用いて、第一チャレンジ生成工程S701で暗号化乱数生成部304が生成した第一チャレンジを、証明装置101に対して送信する。
第一チャレンジ取得工程S704において、証明装置101の第一チャレンジ受信部211が、入力装置912を用いて、第一チャレンジ通知工程S703で認証装置102が送信した第一チャレンジを受信する。
生体情報抽出工程S705において、証明装置101の生体情報抽出部213が、入力装置912を用いて、ユーザの生体情報を抽出する。
特徴ベクトル生成工程S706において、証明装置101の特徴ベクトル形成部214が、処理装置911を用いて、生体情報抽出工程S705で生体情報抽出部213が抽出した生体情報の特徴ベクトルb’を形成する。
第一レスポンス生成工程S707において、証明装置101の乱数生成部215が、処理装置911を用いて、公開鍵記憶部212が格納している公開鍵pkを読み出し、乱数を生成する。証明装置101の暗号化データ埋め込み部217が、公開鍵記憶部212から公開鍵pkを読み出し、乱数生成部215が生成した乱数に基づいて、特徴ベクトル生成工程S706で特徴ベクトル形成部214が形成した特徴ベクトルb’の値に応じて第一チャレンジを処理して、第一レスポンスを生成する。第一レスポンスは、第一チャレンジに暗号化特徴ベクトルC’を埋め込んだものになる。
第一レスポンス通知工程S708において、証明装置101の第一レスポンス送信部221が、出力装置913を用いて、第一レスポンス生成工程S707で暗号化データ埋め込み部217が生成した第一レスポンスを認証装置102に対して送信する。
第一レスポンス取得工程S709において、認証装置102の第一レスポンス受信部331が、入力装置912を用いて、第一レスポンス通知工程S708で証明装置101が送信した第一レスポンスを受信する。
暗号化生体情報抽出工程S710において、認証装置102の暗号化データ抽出部305が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数生成部303が生成した乱数を乱数記憶部322から取り出し、第一レスポンスから乱数を除去して、暗号化特徴ベクトルC’を抽出する。
暗号化生体情報読出し工程S711において、認証装置102の暗号化ランダム類似度算出部314が、処理装置911を用いて、暗号化データ記憶部312から暗号化特徴ベクトルCを取り出す。
第二チャレンジ生成工程S712において、認証装置102の乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が格納している公開鍵pkを読み出し、乱数を生成する。認証装置102の暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302から公開鍵pkを読み出し、暗号化生体情報抽出工程S710で暗号化データ抽出部305が第一レスポンスから抽出した暗号化特徴ベクトルC’と、暗号化生体情報読出し工程S711で取り出した暗号化特徴ベクトルCと、読み出した公開鍵pkと、乱数生成部303が生成した乱数とに基づいて、第二チャレンジ(暗号化ランダム類似度)を生成する。
乱数記憶工程S713において、認証装置102の乱数記憶部322が、記憶装置914を用いて、第二チャレンジ生成工程S712で乱数生成部303が生成した乱数を格納する。
第二チャレンジ通知工程S714において、認証装置102の第二チャレンジ送信部321が、出力装置913を用いて、第二チャレンジ生成工程S712で暗号化ランダム類似度算出部314が生成した第二チャレンジを復号装置103に対して送信する。
第二チャレンジ取得工程S715において、復号装置103の第二チャレンジ受信部402が、入力装置912を用いて、第二チャレンジ通知工程S714で認証装置102が送信した第二チャレンジを受信する。
第二レスポンス生成工程S716において、復号装置103の復号部404が、処理装置911を用いて、秘密鍵記憶部413から秘密鍵skを読み出し、第二チャレンジ取得工程S715で第二チャレンジ受信部402が受信した第二チャレンジ(暗号化ランダム類似度)に対して秘密鍵skを使った復号処理を行い、第二レスポンスを生成(ランダム類似度を導出)する。
第二レスポンス通知工程S717において、復号装置103の第二レスポンス送信部412が、出力装置913を用いて、第二レスポンス生成工程S716で復号部404が生成した第二レスポンスを認証装置102に対して送信する。
第二レスポンス取得工程S718において、認証装置102の第二レスポンス受信部341が、入力装置912を用いて、第二レスポンス通知工程S717で復号装置103が送信した第二レスポンスを受信する。
平文類似度算出工程S719において、認証装置102の平文類似度抽出部315が、処理装置911を用いて、第二チャレンジ生成工程S712で乱数生成部303が生成した乱数を乱数記憶部322から取り出し、第二レスポンス取得工程S718で第二レスポンス受信部341が受信した第二レスポンス(ランダム類似度)から乱数を除去して、平文の類似度を抽出する。
認証判定工程S720において、認証装置102の判定部306が、処理装置911を用いて、平文類似度算出工程S719で抽出した平文の類似度と、所定の閾値とに基づいて、本人認証を行う。
なお、認証処理S700は、例えば、証明装置101からの認証要求により開始する。しかし、通信コストの低減などのため、認証要求が来る前に、プロトコルの事前準備をしておく構成であってもよい。例えば、第一チャレンジ生成工程S701から第一チャレンジ取得工程S704までをあかじめ実行しておく構成であってもよい。すなわち、証明装置101から認証要求が来る前に、認証装置102が第一チャレンジ(暗号化乱数)を生成し、生成した第一チャレンジを証明装置101に対して送信し、証明装置101の暗号化データ埋め込み部217が、記憶装置914を用いて、受信した第一チャレンジを格納しておく。第一チャレンジの生成時に用いた乱数は、認証装置102の乱数記憶部322が、記憶装置914を用いて格納しておく。なお、乱数記憶部322が格納した乱数を、他の装置に公開してはならない。
第一チャレンジ生成工程S701で認証装置102の乱数生成部303が生成し、暗号化乱数生成部304が第一チャレンジを作成するために使う乱数には、平文としての乱数と、その平文を暗号化するために使用する乱数との2種類がある。乱数記憶工程S702で認証装置102の乱数記憶部322が格納する乱数は、このうち、平文としての乱数だけでよい。
第一レスポンス生成工程S707において、証明装置101は、暗号の加法的な準同型性を利用して、第一チャレンジと、特徴ベクトルの値とに基づいて、第一レスポンスを生成する。第一チャレンジは、平文としての乱数を暗号化したものである。一方、特徴ベクトルの値は、暗号化される前の平文である。第一レスポンスには、暗号化特徴ベクトルの値が埋め込まれる。
暗号の加法的準同型性により、暗号文を元とする有限群における群演算で暗号文E(m1),E(m2)を結合すると、平文を元とする有限群における群演算でもとの平文m1,m2を結合した平文m1+m2を暗号化した暗号文E(m1+m2)になる。ここで、m1及びm2は、平文を表わす。Eは、暗号化変換を表わす。「+」は、平文または暗号文を元とする有限群における群演算を表わす。
有限群における群演算で有限群の元aをn個(nは、整数。)結合した元を「n・a」と記述すると、n・E(m)=E(n・m)である。ここで、mは、平文を表わす。この演算のことを「スカラー倍」と呼ぶ。なお、ここでは有限群の群演算を加法として記述しているが、有限群の群演算を乗法として記述する場合、同じ演算を「累乗」と呼び、「n」のように記述する。
平文が、所定の数を法とする整数であるとすると、平文を元とする有限群は、環(または体)になる。環の演算には、加法と乗法とがある。平文を元とする有限環における加法は、暗号文を元とする有限群における群演算に対応づけられる。所定の数を法とする整数を元とする有限環における乗法は、スカラー倍と一致する。すなわち、平文を元とする有限環における乗法は、暗号文を元とする有限群における元のスカラー倍に対応づけられる。
平文を元とする有限環の乗法における元aの逆元を「a−1」と記述する。平文mの逆元m−1が存在する場合、暗号文を元とする有限群の群演算でE(n・m)をm−1個結合すると、平文nを暗号化した暗号文E(n)になる。
生体認証システム100は、このことを利用する。
特徴ベクトルが、0以上q未満の整数を成分とするT次元ベクトル(y,y,…,y)(Tは、1以上の整数。)であるとする。ただし、qは、有限環の位数であって、2以上の整数である。なお、実際の特徴ベクトルの成分は、例えば0か1かなど、限られた値しかとらないものであってもよい。
第一チャレンジ生成工程S701において、乱数生成部303は、0以上q未満の整数のなかからランダムに選択した整数を、平文としての乱数とする。乱数生成部303は、T個の平文としての乱数x,x,…,xを生成する。これを、特徴ベクトルと同じT次元のベクトル(x,x,…,x)とみなす。
暗号化乱数生成部304は、T次元ベクトル(x,x,…,x)の各成分を、暗号化変換したT次元ベクトル(E(x),E(x),…,E(x))を生成する。これが、第一チャレンジである。
第一レスポンス生成工程S707において、暗号化データ埋め込み部217は、第一チャレンジ(E(x),E(x),…,E(x))の各成分を、特徴ベクトル(y,y,…,y)の対応する成分でスカラー倍して、T次元ベクトル(y・E(x),y・E(x),…,y・E(x))を算出する。暗号の加法的準同型性より、算出したT次元ベクトルの各成分y・E(x)(iは、1以上T以下の整数。)は、特徴ベクトルの成分yと乱数xとの積y・xを暗号化変換した暗号文E(y・x)になる。
原理的には、これをそのまま第一レスポンスとしてもよいが、そうすると、第一チャレンジと第一レスポンスとの間の関係から、特徴ベクトルの値が計算できる可能性がある。
これを防ぐため、暗号化データ埋め込み部217は、乱数生成部215が生成した乱数を使ってランダム化処理をする。乱数生成部215が生成する乱数は、平文を暗号化するために使用する乱数である。暗号化データ埋め込み部217は、乱数生成部215が生成した乱数を使って、平文「0」を暗号化した暗号文E(0)をT個生成する。生体認証システム100が利用する暗号方式は、1つの平文に対応する暗号文が複数あり、そのなかからランダムに暗号文を選択することにより、暗号文から平文に関する情報が漏れるのを防ぐ。したがって、平文「0」に対応する暗号文E(0)も複数あり、暗号化データ埋め込み部217が生成するT個の暗号文E(0)は、通常、互いに異なっている。そこで、これをE0,E0,…,E0と記述する。暗号化データ埋め込み部217は、暗号文を元とする有限群における群演算により、算出したT次元ベクトル(y・E(x),y・E(x),…,y・E(x))の各成分と、算出した暗号文E0,E0,…,E0とを、それぞれ結合して、T次元ベクトル(y・E(x)+E0,y・E(x)+E0,…,y・E(x)+E0)を算出する。暗号の加法的準同型性より、算出したT次元ベクトルの各成分y・E(x)+E0(iは、1以上T以下の整数。)は、特徴ベクトルの成分yと乱数xとの積y・xを暗号化変換した暗号文E(y・x)になるが、暗号文E0と結合する前の暗号文とは、異なる暗号文に変わっている。
このT次元ベクトル(y・E(x)+E0,y・E(x)+E0,…,y・E(x)+E0)=(E(y・x),E(y・x),…,E(y,x))が、第一レスポンスである。
暗号化生体情報抽出工程S710において、暗号化データ抽出部305は、乱数記憶部322が記憶したT個の乱数x,x,…,xそれぞれについて、qを法とする整数の乗法における逆元(逆数)x −1,x −1,…,x −1を算出する。qが素数の場合、qを法とする整数を元とする有限環は体になるから、必ず逆元が存在する。また、qが素数でない場合、乗法における逆元が存在しない可能性があるが、qが十分大きければその可能性は極めて低く、無視してよい。
暗号化データ抽出部305は、第一レスポンス(E(y・x),E(y・x),…,E(y,x))の各成分を、算出した逆元でスカラー倍して、T次元ベクトル(x −1・E(y,x),x −1・E(y,x),…x −1・E(y・x))を算出する。暗号の加法的準同型性より、算出したT次元ベクトルの各成分x −1・E(y・x)(iは、1以上T以下の整数。)は、特徴ベクトルの成分yを暗号化変換した暗号文E(y)になる。
このようにして、認証装置102は、暗号化特徴ベクトルC’を算出する。
qを法とする整数の乗法における逆元は、容易に算出できる。したがって、xを知っていれば、x −1を容易に算出でき、したがって、第一レスポンスから暗号化特徴ベクトルC’を算出することも容易である。しかし、xを知らなければ、第一レスポンスから暗号化特徴ベクトルC’を算出することは事実上不可能である。すなわち、第一チャレンジ生成工程S701で乱数生成部303が生成する平文としての乱数は、認証装置102だけが知っている秘密鍵(一時秘密鍵)であり、平文としての乱数を暗号化した第一チャレンジは、特徴ベクトルから第一レスポンスを生成するための公開鍵(一時公開鍵)である。
ここで、第一レスポンスは、特徴ベクトルを認証装置102の公開鍵で暗号化したものであると同時に、復号装置103の公開鍵pkでも暗号化したものであり、特徴ベクトルを二重に暗号化したものと言える。認証装置102は、秘密鍵で第一レスポンスを復号できるが、その結果として得られるのは、特徴ベクトルを復号装置103の公開鍵pkで暗号化した暗号化特徴ベクトルである。暗号化特徴ベクトルを更に復号して特徴ベクトルを得るには、復号装置103の秘密鍵skが必要である。認証装置102は、公開鍵pkに対応付けられている秘密鍵skを知らないので、暗号化特徴ベクトルCや暗号化特徴ベクトルC’を復号することはできない。
なお、認証装置102になりすました装置が、復号装置103の公開鍵pkを使った暗号化変換により第一チャレンジを生成するのではなく、秘密鍵sk’と公開鍵pk’との組を生成し、生成した公開鍵pk’を使った暗号化変換により第一チャレンジを生成したとしても、第一レスポンスから暗号化特徴ベクトルC’を復号することはできない。第一レスポンスの各成分には、復号装置103の公開鍵pkを使った暗号化変換により生成したE0が結合されるから、その時点で、第一レスポンスは、いかなる秘密鍵でも復号できない無意味なデータになる。すなわち、第一レスポンスが意味のあるデータとなるためには、証明装置101が記憶している公開鍵と、認証装置102が記憶している公開鍵とが同じであることが条件となる。
また、第二チャレンジ生成工程S712において、認証装置102の乱数生成部303が生成する乱数にも、平文としての乱数と、暗号化のために使用する乱数との2種類がある。乱数記憶工程S713で認証装置102の乱数記憶部322が格納する乱数は、このうち、平文としての乱数だけでよい。
第一チャレンジ生成工程S701で乱数生成部303が生成する平文としての乱数が、第一レスポンスを復号するための鍵(一時秘密鍵)であるのと同様、第二チャレンジ生成工程S712で乱数生成部303が生成する平文としての乱数は、第二レスポンスを復号するための鍵(一時鍵)である。
ただし、第二チャレンジと第二レスポンスとの関係は、第一チャレンジと第一レスポンスとの関係とは異なる。第一チャレンジは、認証装置102の一回限りの公開鍵である。証明装置101は、認証装置102の公開鍵と、復号装置103の公開鍵とを使って、特徴ベクトルを二重に暗号化することにより、第一レスポンスを生成する。これに対し、第二チャレンジは、それ自身が暗号化されたデータである。第二チャレンジは、認証装置102の鍵を使って、復号装置103の公開鍵で暗号化されたデータを更に暗号化したデータである。すなわち、第二チャレンジは、二重に暗号化されたデータである。復号装置103は、復号装置103の秘密鍵を使って、第二チャレンジを復号して第二レスポンスを生成する。復号装置103は、二重に暗号化された第二チャレンジを復号して、認証装置102の鍵だけで暗号化されたデータを生成する。認証装置102は、認証装置102の鍵を使って、第二レスポンスを復号することにより、平文の類似度を得る。
平文の類似度を算出するための計算は、いくつかの段階に分けられ、それぞれの段階が、例えば、第二チャレンジ生成工程S712、第二レスポンス生成工程S716などで実行される。第二チャレンジ生成工程S712において、認証装置102は、特徴ベクトルが暗号化されたままの状態で、類似度算出のための計算の一部を実行する。したがって、この段階で、認証装置102が特徴ベクトルを知ることはできない。第二チャレンジは、既に一部の計算が終わった状態のデータを二重に暗号化したものである。既に一部の計算が終わっているので、第二チャレンジのなかには、もとの特徴ベクトルの情報すべてが含まれるのではなく、類似度の計算に必要な情報だけが含まれている。第二レスポンス生成工程S716において、復号装置103は、第二チャレンジを復号して、類似度の計算に必要な情報を認証装置102の鍵で暗号化したデータを得る。復号装置103は、認証装置102の鍵で暗号化されたままの状態で、類似度算出のための計算の一部を実行する。したがって、この段階で、復号装置103が特徴ベクトルや平文の類似度を知ることはできない。第二レスポンスは、既にほとんどの計算が終わった状態のデータを暗号化したものである。既にほとんどの計算が終わっているので、第二レスポンスのなかには、もとの特徴ベクトルの情報は含まれていない。平文類似度算出工程S719において、認証装置102は、第二レスポンスを復号し、類似度を算出する。平文の類似度そのものは、平文類似度算出工程S719より前には現れない。
また、平文の類似度は、登録用の特徴ベクトルbと認証用の特徴ベクトルb’とがどの程度類似しているかのみを示す情報である。したがって、平文の類似度から特徴ベクトルや生体情報を計算することは困難である。
次に、各段階における処理の詳細について、具体的な暗号方式を使った例を説明する。この実施の形態では、岡本−高島暗号方式を使った例について説明する。
まず、岡本−高島暗号方式の概要を説明する。
qは、2以上の素数である。G及びGは、位数qの有限群である。なお、有限群G及び有限群Gにおける群演算は、乗法として記述する。Fは、0以上q未満の整数を元とする有限体である。eは、有限群Gの2つの元の組を有限群Gの元に対応づけるペアリングG×G→Gである。ペアリングeは、双線形性と非退化性とを満たす。双線形性とは、有限群Gの任意の2つの元u,vと、有限体Fの任意の2つの元a,bとに対して、e(u,v)=e(u,v)abであることを言う。また、非退化性とは、有限群Gの元のなかに、e(g,g)≠1である元gが少なくとも1つ存在することを言う。なお、ペアリングeは、非対称ペアリングであってもよい。
Vは、n個の有限群Gの直積集合G×G×…×Gである。
Vにおける加法「+」は、Vの任意の2つの元x=(gx1,gx2,…,gxn),y=(gy1,gy2,…,gyn)に対して、Vの元(gx1+y1,gx2+y2,…,gxn+yn)を、2つの元x,yの加法「+」による結合x+yとして定義する。
Vにおけるスカラー倍は、Vの任意の元x=(gx1,gx2,…,gxn)と、有限体Fの任意の元αとに対して、Vの元(gαx1,gαx2,…,gαxn)を、元xを元αでスカラー倍した元αxとして定義する。
このとき、Vは、ベクトル空間となる。ベクトル空間Vの元を「ベクトル」と呼ぶ。
また、ベクトル空間V同士のペアリングe:V×V→Gは、ベクトル空間Vにおける任意の2つのベクトルu=(u,u,…,u),v=(v,v,…,v)に対して、有限群Gの元Π[e(u,v)](ただし、i∈{1,2,…,n}。)を、2つのベクトルu,vのペアリングe(u,v)として定義する。
また、Aは、ベクトル空間Vにおけるn個のベクトルの順序列(a,a,…,a)であり、ベクトルa=(ai1,ai2,…,ain)は、i=jのときaij=g、i≠jのときaij=1である(1は、有限群Gの単位元。)と定義する。
このとき、Aは、ベクトル空間Vの基底となる。基底Aを標準基底と呼ぶ。
ベクトル空間Vにおけるディストーション写像φi,j:V→Vは、ベクトル空間Vにおける任意のベクトルx=x+x+…+xと、1以上n以下の任意の2つの整数i,jとに対して、ベクトルxを、ベクトルxのディストーション写像φi,j(x)として定義する。なお、ディストーション写像φi,jは、コンピュータを用いて効率よく計算可能であるものとする。
ベクトル空間Vは、標準基底があり、ベクトル空間同士のペアリングが定義され、計算可能なディストーション写像が定義されている。このようなベクトル空間を、双対ペアリングベクトル空間と呼ぶ。
Xは、有限体Fから一様ランダムに選んだn個の値χi,j(i,jは、1以上n以下の整数。)をi行j列の成分とするn次の正方行列とする。qが十分大きければ、正方行列Xは、極めて高い確率で正則行列となる。
Bは、ベクトル空間Vにおけるn個のベクトルの順序列(ь,ь,…,ь)であり、ь=Σ[χi,j](ただし、i,jは、1以上n以下の整数。)と定義する。正方行列Xが正則行列であれば、Bは、Aと同様、ベクトル空間Vの基底となる。基底Bをランダム基底と呼ぶ。
このとき、以下の性質が成り立つ。
n個の有限体Fの直積F の要素(x,x,…,x)が与えられたとき、ベクトル空間Vにおけるベクトルx=xь+xь+…+xьは、容易に計算できる。また、ベクトル空間Vにおけるベクトルx=xь+xь+…+xь(Lは、2以上n以下の整数。)が与えられたとき、正則行列Xを使えば、ベクトル空間Vにおけるベクトルy=xь+xь+xь(lは、1以上L未満の整数。)を計算できる。しかし、正則行列Xを使わなければ、ベクトルyを計算することは、一般化されたディフィー−ヘルマン計算問題と同程度に困難である。
図11は、正則行列Xを使ってベクトル分解問題を解くベクトル分解処理S540の流れの一例を示すフローチャート図である。
ベクトル分解処理S540は、ベクトル空間Vにおけるベクトルxと、ベクトルxから取り出したいベクトル成分<ь,ь,…,ь>と、n次の正則行列Xと、ランダム基底Bとを入力し、ベクトル空間Vにおけるベクトルy=ΣΣΣ[ti,jχj,kφk,i(x)](iは、1以上L以下の整数。jは、1以上l以下の整数。kは、1以上L以下の整数。ti,jは、正則行列Xの逆行列T=X−1のi行j列成分。)を出力する。ベクトル分解処理S540は、例えば、逆行列算出工程S541と、第一初期化工程S542と、第一繰り返し工程S543と、第二初期化工程S544と、第二繰り返し工程S545と、第三初期化工程S546と、第三繰り返し工程S547と、係数累計工程S548と、写像計算工程S549と、スカラー倍工程S550と、ベクトル累計工程S551とを有する。
最初に、逆行列算出工程S541において、正則行列Xの逆行列X−1を算出する。
第一初期化工程S542において、ベクトル空間Vの元yを0に初期化する。整数iを0に初期化する。
第一繰り返し工程S543において、整数iに1を加える。整数iが整数Lより大きい場合、元yを出力して、ベクトル分解処理S540を終了する。整数iが整数L以下である場合、第二初期化工程S544へ進む。
第二初期化工程S544において、整数kを0に初期化する。
第二繰り返し工程S545において、整数kに1を加える。整数kが整数Lより大きい場合、第一繰り返し工程S543に戻る。整数kが整数L以下である場合、第三初期化工程S546へ進む。
第三初期化工程S546において、整数jを0に初期化し、係数κを0に初期化する。
第三繰り返し工程S547において、整数jに1を加える。整数jが整数lより大きい場合、写像計算工程S549へ進む。整数jが整数l以下である場合、係数累計工程S548へ進む。
係数累計工程S548において、逆行列算出工程S541で算出した逆行列X−1のi行j列の成分ti,jと、正則行列Xのj行k列の成分χj,kとの積を計算する。計算した積を係数κに加え、第三繰り返し工程S547に戻る。
写像計算工程S549において、ベクトル空間Vにおけるベクトルxのディストーション写像φk,i(x)を計算して、ベクトルφとする。
スカラー倍工程S550において、写像計算工程S549で計算したベクトルφ=φk,i(x)をκ倍したベクトルφ’=κφを計算する。
ベクトル累計工程S551において、スカラー倍工程S550で計算したベクトルφ’=κφk,i(x)をベクトルyに加え、第二繰り返し工程S545に戻る。
岡本−高島暗号方式は、正則行列Xを秘密鍵とすることで、トラップドア関数を実現する。
例えば、有限体Fの元mを平文とし、ベクトル空間Vにおけるベクトルmь+rь+…+rьを、平文mを暗号化した暗号文E(m)とする。ただし、r(iは、2以上n以下の整数。)は、有限体Fから一様ランダムに選択した元である。復号時には、秘密鍵である正則行列Xを使って、ベクトル分解処理S540を実行し、暗号文E(m)から、ベクトル空間Vにおけるベクトルmьを算出することにより、ランダム化要素であるrを消去する。
図12は、この実施の形態における鍵生成部401の構成の一例を示す詳細ブロック図である。
復号装置103の鍵生成部401は、例えば、群決定部421と、標準基底設定部422と、乱数生成部423と、行列式算出部424と、正則行列設定部425と、ランダム基底算出部426とを有する。
群決定部421は、処理装置911を用いて、セキュリティレベルに応じて定まる大きさ(ビット数)に基づいて、素数qを生成する。素数qが大きいほど、安全性は高くなるが、暗号文が大きくなり、暗号処理や復号処理に時間がかかる。素数qの大きさは、例えば200ビットや1024ビットなどである。群決定部421は、生成した素数qに基づいて、有限群Gと有限群Gとを決定する。群決定部421が決定する有限群Gと有限群Gとは、ともに位数がqであり、ペアリングe:G×G→Gを持つ。群決定部421は、有限群Gの生成元gを算出する。なお、設定の順序は異なっていてもよく、例えば、最初に有限群Gを決定してから、有限群Gの位数を算出し、有限群Gの位数が、セキュリティレベルを満たす大きさの素数であるかを判定する構成であってもよい。
標準基底設定部422は、処理装置911を用いて、セキュリティレベルに応じて定まる次元nに基づいて、n次元のベクトル空間Vを設定し、ベクトル空間Vの標準基底Aを設定する。次元nが大きいほど、安全性は高くなるが、暗号文が大きくなり、暗号処理や復号処理に時間がかかる。次元nは、例えば3などである。
乱数生成部423は、処理装置911を用いて、群決定部421が決定した有限群Gの位数qに基づいて、n個の乱数χi,j(i,jは、1以上n以下の整数。)を生成する。乱数生成部423が生成する乱数χi,jは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。
行列式算出部424は、処理装置911を用いて、乱数生成部423が生成したn個の乱数χi,jに基づいて、n次の正方行列Xを生成する。行列式算出部424が生成する正方行列Xは、それぞれの乱数χi,jをi行j列の成分とする行列である。行列式算出部424は、処理装置911を用いて、生成した正方行列Xの行列式|X|を算出する。
正則行列設定部425は、処理装置911を用いて、行列式算出部424が算出した行列式|X|が0でない場合に、行列式算出部424が生成した正方行列Xを、正則行列Xとして設定する。
ランダム基底算出部426は、処理装置911を用いて、標準基底設定部422が設定した標準基底Aと、正則行列設定部425が設定した正則行列Xとに基づいて、ランダム基底Bを算出する。ランダム基底算出部426が算出するランダム基底Bの各ベクトルь(iは、1以上n以下の整数。)は、ь=Σ[χi,j](jは、1以上n以下の整数。)である。ランダム基底算出部426は、例えば次のようにして、ランダム基底Bのi番目のベクトルьを算出する。ランダム基底算出部426は、1以上n以下のすべての整数jについて、正則行列Xのi行j列の成分χi,jと、標準基底Aのj番目のベクトルaとに基づいて、ベクトル空間Vにおけるスカラー倍により、ベクトルaをχi,j倍したベクトルχi,jを算出する。ランダム基底算出部426は、ベクトル空間Vにおける加法により、算出したn個のベクトルχi,jを結合したベクトルΣ[χi,j]を算出する。
復号装置103の公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkとして、群決定部421が設定した位数qとペアリングeと有限群Gと、標準基底設定部422が設定したベクトル空間Vと標準基底Aと、ランダム基底算出部426が設定したランダム基底Bとの組(q,V,e,G,A,B)を格納する。
復号装置103の秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、正則行列設定部425が設定した正則行列Xを格納する。
図13は、この実施の形態における鍵生成工程S501の処理の流れの一例を示すフローチャート図である。
鍵生成工程S501では、復号装置103が、公開鍵pkと秘密鍵skとの組を生成する。なお、ユーザごとに異なる公開鍵pkと秘密鍵skとの組を生成する構成であってもよいし、システム全体として1つの公開鍵pkと秘密鍵skとの組を生成する構成であってもよい。
鍵生成工程S501は、例えば、群決定工程S511と、標準基底設定工程S512と、行列生成工程S513と、正則判定工程S514と、ランダム基底算出工程S515とを有する。
最初に、群決定工程S511において、群決定部421が、処理装置911を用いて、位数qと、位数qの有限群G及び有限群Gと、有限群Gの生成元gとを決定する。公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkの一部として、群決定部421が決定した位数qと有限群Gとを記憶する。
標準基底設定工程S512において、標準基底設定部422が、処理装置911を用いて、群決定工程S511で群決定部421が決定した有限群Gに基づいて、ベクトル空間Vと、ベクトル空間Vの標準基底Aとを設定する。公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkの一部として、標準基底設定部422が設定したベクトル空間Vと標準基底Aとを記憶する。
行列生成工程S513において、乱数生成部423が、処理装置911を用いて、n個の乱数χi,jを生成する。行列式算出部424が、処理装置911を用いて、乱数生成部423が生成したn個の乱数χi,jに基づいて、n次の正方行列Xを生成する。
正則判定工程S514において、行列式算出部424が、処理装置911を用いて、行列生成工程S513で生成した正方行列Xの行列式|X|を計算する。
行列式算出部424が計算した行列式|X|が0である場合、行列式算出部424が、行列生成工程S513に処理を戻し、乱数生成部423が乱数を生成し直す。
行列式算出部424が計算した行列式|X|が0でない場合、正則行列設定部425が、処理装置911を用いて、正方行列Xを正則行列Xとして設定する。秘密鍵記憶部413が、記憶装置914を用いて、秘密鍵skとして、正則行列設定部425が設定した正則行列Xを記憶する。
ランダム基底算出工程S515において、ランダム基底算出部426が、処理装置911を用いて、標準基底設定工程S512で標準基底設定部422が設定した標準基底Aと、正則判定工程S514で正則行列設定部425が設定した正則行列Xとに基づいて、ランダム基底Bを算出する。公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkの一部として、ランダム基底算出部426が算出したランダム基底Bを記憶する。
このようにして公開鍵記憶部403が記憶した公開鍵pk=(q,V,e,G,A,B)は、公開鍵送信部408が認証装置102などに対して送信し、認証装置102などが受信して格納する。
図14は、この実施の形態における特徴ベクトル暗号化工程S603の処理の流れの一例を示すフローチャート図である。
特徴ベクトル暗号化工程S603では、登録装置104が、特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。特徴ベクトル暗号化工程S603は、例えば、初期化工程S610と、繰り返し工程S611と、乱数生成工程S612と、ベクトル算出工程S613とを有する。
登録装置104の特徴ベクトル形成部204が生成し、暗号化データ生成部206が暗号化する特徴ベクトルbは、例えば、整数を成分とするT次元のベクトル(b,b,…,b)(Tは、1以上の整数。)である。特徴ベクトルbの各成分b(iは、1以上T以下の整数。)は、例えば、0か1かの2つの値のうちのいずれかであり、生体情報が、その成分に対応する特徴を持っているか否かを表わす。例えば、特徴ベクトル形成部204は、生体情報抽出部203が指紋に光を当てて紋様を撮影した画像(生体情報)を、T個の領域に分割し、分割したそれぞれの領域のなかに特徴点(例えば紋様の端点や分岐点など)があるか否かを判定する。特徴ベクトル形成部204は、特徴点がある場合に1、特徴点がない場合に0を、その領域に対応する特徴ベクトルの成分に設定する。
暗号化データ生成部206が生成する暗号化特徴ベクトルCは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(c,c,…,c)である。
最初に、初期化工程S610において、暗号化データ生成部206が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S611において、暗号化データ生成部206が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化データ生成部206は、特徴ベクトル暗号化工程S603を終了する。整数iがT以下である場合、暗号化データ生成部206は、乱数生成工程S612へ処理を進め、暗号化特徴ベクトルCのi番目の成分cを生成する。
乱数生成工程S612において、乱数生成部205が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である位数qに基づいて、(n−1)個の乱数rj,i(jは、2以上n以下の整数。)を生成する。乱数生成部205が生成する乱数rj,iは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。
ベクトル算出工程S613において、暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部であるランダム基底Bと、特徴ベクトル形成部204が生成した特徴ベクトルbのi番目の成分bと、乱数生成工程S612で乱数生成部205が生成した(n−1)個の乱数rj,iとに基づいて、暗号化特徴ベクトルCのi番目の成分cを算出する。暗号化データ生成部206が算出する暗号化特徴ベクトルCのi番目の成分cは、ベクトル空間Vにおけるスカラー倍によりランダム基底Bの最初のベクトルьを整数bでスカラー倍したベクトルbьと、ベクトル空間Vにおけるスカラー倍によりランダム基底Bの2番目以降のベクトルь(jは、2以上n以下の整数。)をそれぞれ乱数rj,iでスカラー倍した(n−1)個のベクトルrj,iьとを、ベクトル空間Vにおける加法により結合したベクトルbь+Σ[rj,iь](jは、2以上n以下の整数。)である。例えば、暗号化データ生成部206は、ランダム基底Bの最初のベクトルьと、特徴ベクトルbのi番目の成分bとに基づいて、ベクトル空間Vにおけるスカラー倍によりベクトルьを整数bでスカラー倍したベクトルbьを算出する。また、暗号化データ生成部206は、2以上n以下のすべての整数jについて、ランダム基底Bのj番目のベクトルьと、乱数生成部205が生成した(n−1)個の乱数のうち(j−1)番目の乱数rj,iとに基づいて、ベクトル空間Vにおけるスカラー倍によりベクトルьを乱数rj,iでスカラー倍したベクトルrj,iьを算出する。暗号化データ生成部206は、ベクトル空間Vにおける加法により、算出したベクトルbьと、算出した(n−1)個のベクトルrj,iьとをすべて結合したベクトルbь+Σ[rj,iь](jは、2以上n以下の整数。)を算出する。
暗号化データ生成部206は、繰り返し工程S611に処理を戻し、暗号化特徴ベクトルCの次の成分を生成する。
このようにして暗号化データ生成部206が生成した暗号化特徴ベクトルCは、暗号化データ送信部201が認証装置102に対して送信し、認証装置102が受信して格納する。
図15は、この実施の形態における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図である。
第一チャレンジ生成工程S701では、認証装置102が、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、ベクトル算出工程S723とを有する。
認証装置102の暗号化乱数生成部304が生成する第一チャレンジRは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(R,R,…,R)である。
最初に、初期化工程S729において、暗号化乱数生成部304が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S721において、暗号化乱数生成部304が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化乱数生成部304は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、暗号化乱数生成部304は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Rを生成する。
乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数qに基づいて、n個の乱数Rj,i(jは、1以上n以下の整数。)を生成する。乱数生成部303が生成する乱数Rj,iは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成したn個の乱数Rj,iのうち最初の乱数R1,iを記憶する。
ベクトル算出工程S723において、暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成工程S722で乱数生成部303が生成したn個の乱数Rj,iとに基づいて、第一チャレンジRのi番目の成分Rを算出する。暗号化乱数生成部304が算出する第一チャレンジRのi番目の成分Rは、ベクトル空間Vにおけるスカラー倍によりランダム基底Bの各ベクトルь(jは、1以上n以下の整数。)をそれぞれ乱数Rj,iでスカラー倍したn個のベクトルRj,iьを、ベクトル空間Vにおける加法により結合したベクトルΣ[Rj,iь](jは、1以上n以下の整数。)である。例えば、暗号化乱数生成部304は、1以上n以下のすべての整数jについて、ランダム基底Bのj番目のベクトルьと、乱数生成部205が生成したn個の乱数のうちj番目の乱数rj,iとに基づいて、ベクトル空間Vにおけるスカラー倍により、ベクトルьを乱数Rj,iでスカラー倍したベクトルRj,iьを算出する。暗号化乱数生成部304は、ベクトル空間Vにおける加法により、算出したn個のベクトルRj,iьを結合したベクトルΣ[Rj,iь](jは、1以上n以下の整数。)を算出する。
暗号化乱数生成部304は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。
このようにして暗号化乱数生成部304が生成した第一チャレンジRは、第一チャレンジ送信部311が証明装置101に対して送信し、証明装置101が受信して処理をする。
第一チャレンジ生成工程S701において乱数生成部303が生成する乱数Rj,i(iは、1以上T以下の整数。jは、1以上n以下の整数。)は、全部でnT個である。このうち、T個の乱数R1,i(iは、1以上T以下の整数。)を、乱数記憶部322が記憶する。乱数記憶部322が記憶するT個の乱数R1,iは、平文としての乱数であり、残りの(n−1)T個の乱数Rj,i(iは、1以上T以下の整数。jは、2以上n以下の整数。)は、暗号化のための乱数である。第一チャレンジRの各成分Rは、平文としての乱数R1,iを暗号化したものである。
図16は、この実施の形態における暗号化データ埋め込み部217の構成の一例を示す詳細ブロック図である。
証明装置101の暗号化データ埋め込み部217は、例えば、スカラー倍算出部231と、零生成部232と、ベクトル結合部233とを有する。
特徴ベクトル形成部214が生成し、暗号化データ埋め込み部217が暗号化する特徴ベクトルb’は、登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbと同様、整数を成分とするT次元のベクトル(b’,b’,…,b’)である。
乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkの一部である位数qに基づいて、(n−1)T個の乱数R’j,i(iは、1以上T以下の整数。jは、2以上n以下の整数。)を生成する。乱数生成部215が生成する乱数R’j,iは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。
スカラー倍算出部231は、処理装置911を用いて、第一チャレンジ受信部211が受信した第一チャレンジRと、特徴ベクトル形成部214が生成した特徴ベクトルb’とに基づいて、スカラー倍ベクトルЯを算出する。スカラー倍ベクトルЯは、第一チャレンジRと同様に、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(я,я,…,я)である。スカラー倍算出部231が算出するスカラー倍ベクトルЯのi番目の成分я(iは、1以上T以下の整数。)は、ベクトル空間Vにおけるスカラー倍により、第一チャレンジRのi番目の成分Rを、特徴ベクトルb’のi番目の成分b’でスカラー倍したベクトルb’である。スカラー倍ベクトルЯの各成分は、特徴ベクトルb’の成分b’と、認証装置102が生成した平文としての乱数R1,iとの積を暗号化したものになる。
零生成部232は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成部215が生成した(n−1)T個の乱数R’j,iとに基づいて、暗号化零ベクトルOを生成する。暗号化零ベクトルOは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(o,o,…,o)である。暗号化零ベクトルOのi番目の成分o(iは、1以上T以下の整数。)は、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの2番目からn番目までのベクトルь(jは、2以上n以下の整数。)をそれぞれ乱数R’j,iでスカラー倍した(n−1)個のベクトルR’j,iьを、ベクトル空間Vにおける加法により結合したベクトルΣ[R’j,iь](jは、2以上n以下の整数。)である。暗号化零ベクトルOの各成分は、0を暗号化したものである。
ベクトル結合部233は、処理装置911を用いて、スカラー倍算出部231が算出したスカラー倍ベクトルЯと、零生成部232が生成した暗号化零ベクトルOとに基づいて、第一レスポンスR’を算出する。第一レスポンスR’は、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(R’,R’,…,R’)である。第一レスポンスR’のi番目の成分R’(iは、1以上T以下の整数。)は、ベクトル空間Vにおける加法により、スカラー倍ベクトルЯのi番目の成分яと、暗号化零ベクトルOのi番目の成分oとを結合したベクトルя+oである。第一レスポンスR’の各成分R’は、第一チャレンジRの成分Rにおいて暗号化されている平文としての乱数R1,iと、特徴ベクトルb’の成分b’との積を暗号化したものになる。
図17は、この実施の形態における第一レスポンス生成工程S707の処理の流れの一例を示すフローチャート図である。
第一レスポンス生成工程S707では、証明装置101が、特徴ベクトルb’と、第一チャレンジRとに基づいて、第一レスポンスR’を生成する。第一レスポンス生成工程S707は、例えば、初期化工程S660と、繰り返し工程S661と、スカラー倍算出工程S662と、乱数生成工程S663と、零生成工程S664と、ベクトル結合工程S665とを有する。
最初に、初期化工程S660において、ベクトル結合部233が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S661において、ベクトル結合部233が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、ベクトル結合部233は、第一レスポンス生成工程S707を終了する。整数iがT以下である場合、ベクトル結合部233は、スカラー倍算出工程S662へ処理を進め、第一レスポンスR’のi番目の成分R’を生成する。
スカラー倍算出工程S662において、スカラー倍算出部231が、処理装置911を用いて、特徴ベクトル形成部214が生成した特徴ベクトルb’のi番目の成分b’と、第一チャレンジ受信部211が受信した第一チャレンジRのi番目のベクトルRとに基づいて、スカラー倍ベクトルЯのi番目の成分я=b’を算出する。
乱数生成工程S663において、乱数生成部215が、処理装置911を用いて、(n−1)個の乱数R’j,i(jは、2以上n以下の整数。)を生成する。
零生成工程S664において、零生成部232が、処理装置911を用いて、乱数生成工程S663で乱数生成部215が生成した(n−1)個の乱数R’j,iに基づいて、暗号化零ベクトルOのi番目の成分o=Σ[R’j,iь](jは、2以上n以下の整数。)を算出する。例えば、零生成部232は、2以上n以下のすべての整数jについて、ランダム基底Bのj番目のベクトルьと、乱数生成部215が生成した(n−1)個の乱数のうち(j−1)番目の乱数R’j,iとに基づいて、ベクトル空間Vにおけるスカラー倍により、ベクトルьをR’j,iでスカラー倍したベクトルR’j,iьを算出する。零生成部232は、ベクトル空間Vにおける加法により、算出した(n−1)個のベクトルR’j,iьを結合したベクトルΣ[R’j,iь]を算出する。
ベクトル結合工程S665において、ベクトル結合部233が、処理装置911を用いて、スカラー倍算出工程S662でスカラー倍算出部231が算出したスカラー倍ベクトルЯのi番目の成分я=b’と、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分o=Σ[R’j,iь](jは、2以上n以下の整数。)とに基づいて、第一レスポンスR’のi番目の成分R’=я+o=b’+Σ[R’j,iь]を算出する。
ベクトル結合部233は、繰り返し工程S661に処理を戻し、第一レスポンスR’の次の成分を生成する。
このようにして暗号化データ埋め込み部217が生成した第一レスポンスR’は、第一レスポンス送信部221が認証装置102に対して送信し、認証装置102が受信して処理する。
なお、特徴ベクトルb’の成分b’が0か1かの2つの値しか取らない場合、第一レスポンス生成工程S707の処理は、例えば次のように簡略化できる。
まず、スカラー倍する必要がないので、スカラー倍算出部231を設けず、スカラー倍算出工程S662を実行しない。
ベクトル結合工程S665において、ベクトル結合部233は、処理装置911を用いて、特徴ベクトルb’のi番目の成分b’が0であるか1であるかを判定する。特徴ベクトルb’のi番目の成分b’が0である場合、ベクトル結合部233は、処理装置911を用いて、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分o=Σ[R’j,iь]を、第一レスポンスR’のi番目の成分R’とする。特徴ベクトルb’のi番目の成分b’が1である場合、ベクトル結合部233は、処理装置911を用いて、ベクトル空間Vにおける加法により、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分o=Σ[R’j,iь]と、第一チャレンジ受信部211が受信した第一チャレンジRのi番目の成分Rとを結合したベクトルo+R=R+Σ[R’j,iь]を算出して、第一レスポンスR’のi番目の成分R’とする。
第一チャレンジRのi番目の成分Rは、Σ[Rj,iь](jは、1以上n以下の整数。)であるから、第一レスポンスR’のi番目の成分R’は、R’=b’Σ[Rk,iь]+Σ[R’j,iь](jは、2以上n以下の整数。kは、1以上n以下の整数。)=b’1,iь+Σ[(b’j,i+R’j,i)ь](jは、2以上n以下の整数。)である。すなわち、第一レスポンスR’のi番目の成分R’は、特徴ベクトルb’のi番目の成分b’と、乱数R1,iとの積を暗号化したものになっている。
図18は、この実施の形態における暗号化データ抽出部305の構成の一例を示す詳細ブロック図である。
認証装置102の暗号化データ抽出部305は、例えば、逆数算出部351と、スカラー倍算出部352とを有する。
認証装置102の暗号化データ抽出部305が生成する暗号化特徴ベクトルC’は、登録装置104の暗号化データ生成部206が生成する暗号化特徴ベクトルCと同様、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(c’,c’,…,c’)である。
逆数算出部351は、処理装置911を用いて、乱数記憶部322が記憶したT個の乱数R1,i(iは、1以上T以下の整数。)に基づいて、有限体Fにおける乗法による乱数R1,iそれぞれの逆元κ=R1,i −1を算出する。逆元κは、乱数R1,iと逆元κとの積をqで割った余りが1になる整数である。暗号化データ抽出部305は、例えば、乱数R1,iの(q−2)乗をqで割った余りを計算することにより、逆元κを算出する。
スカラー倍算出部352は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’と、逆数算出部351が算出したT個の逆元κとに基づいて、暗号化特徴ベクトルC’を算出する。スカラー倍算出部352が算出する暗号化特徴ベクトルC’のi番目の成分c’(iは、1以上T以下の整数。)は、ベクトル空間Vにおけるスカラー倍により、第一レスポンスR’のi番目の成分R’を、i番目の逆元κでスカラー倍したベクトルκR’である。暗号化特徴ベクトルC’の各成分c’は、特徴ベクトルb’の成分b’を暗号化したものになる。
図19は、この実施の形態における暗号化生体情報抽出工程S710の処理の流れの一例を示すフローチャート図である。
暗号化生体情報抽出工程S710では、認証装置102が、第一レスポンスR’に基づいて、暗号化特徴ベクトルC’を生成する。暗号化生体情報抽出工程S710は、例えば、初期化工程S730と、繰り返し工程S731と、逆数算出工程S732と、スカラー倍算出工程S733とを有する。
最初に、初期化工程S730において、スカラー倍算出部352が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S731において、スカラー倍算出部352が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、スカラー倍算出部352は、暗号化生体情報抽出工程S710を終了する。整数iがT以下である場合、スカラー倍算出部352は、逆数算出工程S732へ処理を進め、暗号化特徴ベクトルC’のi番目の成分c’を生成する。
逆数算出工程S732において、逆数算出部351が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数記憶部322が記憶したT個の乱数のうちi番目の乱数R1,iに基づいて、有限体Fの乗法における乱数R1,iの逆元κ=R1,i −1を算出する。
スカラー倍算出工程S733において、スカラー倍算出部352は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’のi番目の成分R’と、逆数算出工程S732で算出した逆元κとに基づいて、暗号化特徴ベクトルC’のi番目の成分c’=κR’を算出する。
スカラー倍算出部352は、繰り返し工程S731に処理を戻し、暗号化特徴ベクトルC’の次の成分を生成する。
このようにして暗号化データ抽出部305が生成した暗号化特徴ベクトルC’は、第二チャレンジ生成工程S712で使われる。
第一レスポンスR’のi番目の成分R’は、R’=b’1,iь+Σ[(b’j,i+R’j,i)ь](jは、2以上n以下の整数。)であるから、暗号化特徴ベクトルC’のi番目の成分c’は、c’=R1,i −1b’1,iь+R1,i −1Σ[(b’j,i+R’j,i)ь](jは、2以上n以下の整数。)である。R1,i1,i −1≡1(mod q)であるから、c’=b’ь+R1,i −1Σ[(b’j,i+R’j,i)ь](jは、2以上n以下の整数。)である。すなわち、暗号化特徴ベクトルC’のi番目の成分c’は、特徴ベクトルb’のi番目の成分b’を暗号化したものになる。
図20は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。
認証装置102の暗号化ランダム類似度算出部314は、例えば、差分算出部361と、撹乱ベクトル生成部362と、ベクトル結合部363と、スカラー倍算出部364と、二乗和算出部365と、暗号化鍵生成部366と、ベクトル累計部367とを有する。
乱数生成部303は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数qに基づいて、n(T+1)個の乱数tj,i,u(iは、1以上T以下の整数。jは、1以上n以下の整数。)を生成する。乱数生成部303が生成する乱数tj,i,uは、0以上q未満の整数のなかから、一様ランダムに選択した整数である。
乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数uを記憶する。
差分算出部361は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化差分ベクトルΔCを算出する。暗号化差分ベクトルΔCは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(Δc,Δc,…,Δc)である。暗号化差分ベクトルΔCのi番目の成分Δc(iは、1以上T以下の整数。)は、ベクトル空間Vにおける加法により、暗号化特徴ベクトルCのi番目の成分cと、暗号化特徴ベクトルC’のi番目の成分c’の逆ベクトル−c’とを結合したベクトルc−c’である。暗号化差分ベクトルΔCの各成分Δcは、特徴ベクトルbの成分bと特徴ベクトルb’の成分b’との差b−b’を暗号化したものである。
なお、暗号化差分ベクトルΔCのi番目の成分Δcは、ベクトル空間Vにおける加法により、暗号化特徴ベクトルCのi番目の成分cの逆ベクトル−cと、暗号化特徴ベクトルC’のi番目の成分c’とを結合したベクトルc’−cであってもよい。また、暗号化差分ベクトルΔCの成分Δcは、ベクトルc−c’と、ベクトルc’−cとのなかから、ランダムに選択したいずれかのベクトルであってもよい。
撹乱ベクトル生成部362は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成部303が生成した乱数のうちnT個の乱数tj,iとに基づいて、撹乱ベクトルтを生成する。撹乱ベクトルтは、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(t,t,…,t)である。撹乱ベクトルтの各成分t(iは、1以上T以下の整数。)は、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの各ベクトルь(jは、1以上n以下の整数。)を、それぞれ乱数tj,iでスカラー倍したn個のベクトルtj,iьを、ベクトル空間Vにおける加法により結合したベクトルΣ[tj,iь](jは、1以上n以下の整数。)である。撹乱ベクトルтの各成分tは、平文としての乱数t1,iを暗号化したものである。
ベクトル結合部363は、処理装置911を用いて、差分算出部361が算出した暗号化差分ベクトルΔCと、撹乱ベクトル生成部362が算出した撹乱ベクトルтとに基づいて、第二チャレンジCの一部であるT個のベクトルc (iは、1以上T以下の整数。)を算出する。ベクトルc は、ベクトル空間Vにおけるベクトルである。i番目のベクトルc は、ベクトル空間Vにおける加法により、暗号化差分ベクトルΔCのi番目の成分Δcと、撹乱ベクトルтのi番目の成分tとを結合したベクトルΔc+tである。ベクトルc は、特徴ベクトルbの成分bと特徴ベクトルb’の成分b’との差と平文としての乱数t1,iとの和(b−b’)+t1,iを暗号化したものである。
スカラー倍算出部364は、処理装置911を用いて、差分算出部361が算出した暗号化差分ベクトルΔCと、乱数生成部303が生成した乱数のうちT個の平文としての乱数t1,iとに基づいて、スカラー倍ベクトル¢を算出する。スカラー倍ベクトル¢は、ベクトル空間Vにおけるベクトルを成分とするT次元のベクトル(¢,¢,…,¢)である。スカラー倍算出部364が算出するスカラー倍ベクトル¢のi番目の成分¢(iは、1以上T以下の整数。)は、ベクトル空間Vにおけるスカラー倍により、暗号化差分ベクトルΔCのi番目の成分Δcを、T個の平文としての乱数のうちのi番目の乱数t1,iの2倍でスカラー倍したベクトル2t1,iΔcである。スカラー倍算出部364が算出するスカラー倍ベクトル¢の各成分¢は、特徴ベクトルbの成分bと特徴ベクトルb’の成分b’との差と2t1,iとの積2t1,i(b−b’)を暗号化したものである。
二乗和算出部365は、処理装置911を用いて、乱数生成部303が生成した乱数のうちT個の平文としての乱数t1,iに基づいて、二乗和Σを算出する。二乗和Σは、T個の乱数t1,iの二乗を合計した値Σ[t1,i ](iは、1以上T以下の整数。)である。
暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるランダム基底Bと、乱数生成部303が生成した乱数のうちn個の乱数uと、二乗和算出部365が算出した二乗和Σとに基づいて、暗号化鍵цを算出する。暗号化鍵цは、ベクトル空間Vにおけるベクトルである、暗号化鍵цは、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの最初のベクトルьを、n個の乱数のうちの最初の乱数uと二乗和Σとの和でスカラー倍したベクトル(u+Σ)ьと、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの2番目以降のベクトルь(jは、2以上n以下の整数。)を、n個の乱数のうちの2番目以降の乱数uでそれぞれスカラー倍した(n−1)個のベクトルuьとを、ベクトル空間Vにおける加法により結合したベクトル(u+Σ)ь+Σ[uь](jは、1以上n以下の整数。)である。例えば、暗号化鍵生成部366は、乱数生成部303が生成した乱数uと、二乗和算出部365が算出した二乗和Σとの和u+Σを算出する。暗号化鍵生成部366は、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bの最初のベクトルьを、算出した和u+Σでスカラー倍したベクトル(u+Σ)ьを算出する。暗号化鍵生成部366は、2以上n以下のすべての整数jについて、ベクトル空間Vにおけるスカラー倍により、ランダム基底Bのj番目のベクトルьを、乱数生成部303が生成した乱数uでスカラー倍したベクトルuьを算出する。暗号化鍵生成部366は、ベクトル空間Vにおける加法により、算出したベクトル(u+Σ)ьと、算出した(n−1)個のベクトルuьとを結合したベクトル(u+Σ)ь+Σ[uь](jは、1以上n以下の整数。)を算出する。
ベクトル累計部367は、処理装置911を用いて、スカラー倍算出部364が算出したスカラー倍ベクトル¢と、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、第二チャレンジCの一部である1個のベクトルcを算出する。ベクトルcは、ベクトル空間Vにおけるベクトルである。ベクトルcは、ベクトル空間Vにおける加法により、スカラー倍算出部364が算出したスカラー倍ベクトルの成分であるT個のベクトル¢=2t1,iΔc(iは、1以上T以下の整数。)と、暗号化鍵ц=(u+Σ)ь+Σ[uь](jは、1以上n以下の整数。)とを結合したベクトルΣ[2t1,iΔc]+(u+Σ)ь+Σ[uь](iは、1以上T以下の整数。jは、1以上n以下の整数。)である。ベクトルcは、特徴ベクトルbの成分bと特徴ベクトルb’の成分b’との差と2t1,iとの積の総和と、t1,iの二乗の総和と、乱数uとの総合計u+Σ[2t1,i(b−b’)+t1,i ]を暗号化したものである。このうち、乱数uは、類似度を暗号化・復号するための一時鍵としての乱数である。それ以外の部分であるΣ[2t1,i(b−b’)+t1,i ]は、復号装置103が、平文としての乱数t1,iによる撹乱を除去して、暗号化された類似度を算出できるようにするための情報である。
暗号化ランダム類似度算出部314が生成する第二チャレンジCは、ベクトル結合部363が算出したT個のベクトルc (iは、1以上T以下の整数。)と、ベクトル累計部367が算出した1個のベクトルcとを合わせた(T+1)個のベクトルからなる。
なお、第二チャレンジCの最初のT個のベクトルc の順序は、特徴ベクトルb,b’の成分の順序と異なっていてもよい。
図21は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程S712では、認証装置102が、2つの暗号化特徴ベクトルC,C’に基づいて、第二チャレンジCを生成する。第二チャレンジ生成工程S712は、例えば、初期化工程S740と、繰り返し工程S741と、差分算出工程S742と、乱数生成工程S743と、撹乱ベクトル生成工程S744と、ベクトル結合工程S745と、スカラー倍算出工程S746と、ベクトル累計工程S747と、二乗累計工程S748と、乱数生成工程S749と、暗号化鍵生成工程S750と、ベクトル累計工程S751とを有する。
最初に、初期化工程S740において、ベクトル結合部363が、処理装置911を用いて、整数iを0に初期化し、ベクトルcを0(ベクトル空間Vにおける零ベクトル)に初期化する。二乗和算出部365が、処理装置911を用いて、二乗和Σを0に初期化する。
繰り返し工程S741において、ベクトル結合部363が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、ベクトル結合部363は、乱数生成工程S749へ処理を進める。整数iがT以下である場合、ベクトル結合部363は、差分算出工程S742へ処理を進め、第二チャレンジCのi番目のベクトルc を生成する。
差分算出工程S742において、差分算出部361が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分cと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’とに基づいて、暗号化差分ベクトルΔCのi番目の成分Δcを算出する。
乱数生成工程S743において、乱数生成部303が、処理装置911を用いて、n個の乱数tj,i(jは、1以上n以下の整数。)を生成する。
撹乱ベクトル生成工程S744において、撹乱ベクトル生成部362が、処理装置911を用いて、乱数生成工程S743で乱数生成部303が生成したn個の乱数tj,iに基づいて、撹乱ベクトルтのi番目の成分t=Σ[tj,iь](jは、1以上n以下の整数。)を生成する。
ベクトル結合工程S745において、ベクトル結合部363が、処理装置911を用いて、差分算出工程S742で差分算出部361が算出した暗号化差分ベクトルΔCのi番目の成分Δcと、撹乱ベクトル生成工程S744で撹乱ベクトル生成部362が算出した撹乱ベクトルтのi番目の成分tとに基づいて、第二チャレンジCのi番目のベクトルc =Δc+tを算出する。
なお、第二チャレンジCの最初のT個のベクトルc の順序と、特徴ベクトルb,b’の成分の順序とが異なる構成とする場合、ベクトル結合部363は、例えば、次のようにする。ベクトル結合部363は、初期化工程S740で、1以上T以下の整数をランダムに並べ替えた数列を生成しておく。ベクトル結合工程S745において、ベクトル結合部363は、その数列のi番目の整数を取得して整数jとし、算出したベクトルΔc+tを、第二チャレンジCのj番目のベクトルc にする。
スカラー倍算出工程S746において、スカラー倍算出部364が、処理装置911を用いて、差分算出工程S742で差分算出部361が算出した暗号化差分ベクトルΔCのi番目の成分Δcと、乱数生成工程S743で乱数生成部303が生成したn個の乱数tj,iのうちの最初の乱数t1,iとに基づいて、スカラー倍ベクトル¢のi番目の成分¢=t1,iΔcを算出する。
ベクトル累計工程S747において、ベクトル累計部367が、処理装置911を用いて、スカラー倍算出工程S746でスカラー倍算出部364が算出したスカラー倍ベクトル¢のi番目の成分¢=t1,iΔcに基づいて、ベクトル空間Vにおける加法により、ベクトル¢を、ベクトルcに結合する。
二乗累計工程S748において、二乗和算出部365が、処理装置911を用いて、乱数生成工程S743で乱数生成部303が生成したn個の乱数tj,iのうちの最初の乱数t1,iに基づいて、有限体Fにおける乗法により、乱数t1,iの二乗t1,i を算出し、有限体Fにおける加法により、算出した二乗t1,i を、二乗和Σに結合する。
ベクトル結合部363は、繰り返し工程S741に処理を戻し、第二チャレンジCの次のベクトルを生成する。
乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、n個の乱数u(jは、1以上n以下の整数。)を生成する。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成したn個の乱数のうち、一時鍵としての乱数である乱数uを記憶する。
暗号化鍵生成工程S750において、暗号化鍵生成部366が、処理装置911を用いて、二乗累計工程S748で二乗和算出部365が累計した二乗和Σと、乱数生成工程S749で乱数生成部303が生成したn個の乱数uとに基づいて、暗号化鍵цを生成する。
ベクトル累計工程S751において、ベクトル累計部367が、処理装置911を用いて、暗号化鍵生成工程S750で暗号化鍵生成部366が生成した暗号化鍵цに基づいて、ベクトル空間Vにおける加法により、暗号化鍵цを、ベクトルcに結合する。これにより、第二チャレンジCの(T+1)番目のベクトルcが完成し、第二チャレンジCも完成する。
このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジCは、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。
図22は、この実施の形態における復号部404の構成の一例を示す詳細ブロック図である。
復号装置103の復号部404は、例えば、逆行列算出部471と、ベクトル分解部472と、二乗算出部473と、群変換部474と、元結合部475とを有する。
逆行列算出部471は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部である位数qと、秘密鍵記憶部413が記憶した秘密鍵skである正則行列Xとに基づいて、有限体Fにおける正則行列Xの逆行列X−1を算出する。
ベクトル分解部472は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである正則行列Xと、第二チャレンジ受信部402が受信した第二チャレンジCと、逆行列算出部471が算出した逆行列X−1とに基づいて、(T+1)個の復号ベクトルy,y(iは、1以上T以下の整数。)を算出する。復号ベクトルy,yは、ベクトル空間におけるベクトルである。i番目の復号ベクトルy(iは、1以上T以下の整数。)は、第二チャレンジCのi番目のベクトルc を、ランダム基底Bの一次結合に分解し、2番目以降のベクトルь(jは、2以上n以下の整数。)にかかる成分を取り除いて、ランダム基底Bの最初のベクトルьのスカラー倍にしたベクトルである。復号ベクトルyは、第二チャレンジCの(T+1)番目のベクトルcを、ランダム基底Bの一次結合に分解し、2番目以降のベクトルь(jは、2以上n以下の整数。)にかかる成分を取り除いて、ランダム基底Bの最初のベクトルьのスカラー倍にしたベクトルである。ベクトル分解部472は、例えば、図11に示したベクトル分解処理S540の手順により、復号ベクトルy,yを算出する。第二チャレンジCのi番目のベクトルc (iは、1以上T以下の整数。)は、Δc+tであるから、i番目の復号ベクトルyは、(b−b’+t1,i)ьになる。また、第二チャレンジCの(T+1)番目のベクトルcは、Σ[2t1,iΔc]+(Σ[t1,i ])ь+Σ[uь](iは、1以上T以下の整数。jは、1以上n以下の整数。)であるから、復号ベクトルyは、(u+Σ[2t1,i(b−b’)+t1,i ])ьになる。
二乗算出部473は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部であるペアリングeと、ベクトル分解部472が算出したT個の復号ベクトルyとに基づいて、T個の二乗元y’(iは、1以上T以下の整数。)を算出する。二乗元y’は、有限群Gの元である。i番目の二乗元y’(iは、1以上T以下の整数。)は、ペアリングeにより、i番目の復号ベクトルy同士の組を変換した元e(y,y)である。i番目の復号ベクトルyは、(b−b’+t1,i)ьであるから、ペアリングeの双線形性より、i番目の二乗元y’は、ペアリングeによりランダム基底Bの最初のベクトルь同士の組を変換した有限群Gの元e(ь,ь)を、有限群Gにおける累乗により、(b−b’+t1,i)の二乗で累乗した元になる。
群変換部474は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部であるペアリングe及びランダム基底Bと、ベクトル分解部472が算出した復号ベクトルyとに基づいて、変換元y’を算出する。変換元y’は、有限群Gの元である。変換元y’は、ペアリングeにより、復号ベクトルyと、ランダム基底Bの最初のベクトルьとの組を変換した元e(y,ь)である。復号ベクトルyは、(u+Σ[2t1,i(b−b’)+t1,i ])ьであるから、ペアリングeの双線形性より、変換元y’は、有限群Gにおける累乗により、有限群Gの元e(ь,ь)を(u+Σ[2t1,i(b−b’)+t1,i ])(iは、1以上T以下の整数。)で累乗した元になる。
元結合部475は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkの一部である有限群Gと、二乗算出部473が算出したT個の二乗元y’と、群変換部474が算出した変換元y’とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、有限群Gの元である。元結合部475が算出する第二レスポンスZは、有限群Gにおける乗法により、T個の二乗元y’と、変換元y’の逆元y’−1とを結合した元である。第二レスポンスZは、有限群Gにおける累乗により、有限群Gの元e(ь,ь)を(Σ[(b−b’]−u)(iは、1以上T以下の整数。)で累乗した元になる。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間のユークリッド距離の二乗Σ[(b−b’]を、一時鍵としての乱数uで暗号化したものになる。
図23は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程S716では、復号装置103が、第二チャレンジCから、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、逆行列算出工程S561と、ベクトル分解工程S566と、群変換工程S567と、初期化工程S560と、繰り返し工程S562と、ベクトル分解工程S563と、二乗算出工程S564と、元結合工程S565とを有する。
最初に、逆行列算出工程S561において、逆行列算出部471が、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである正則行列Xの逆行列X−1を算出する。なお、逆行列算出部471は、処理装置911を用いて、あらかじめ(例えばセットアップ処理S500で)逆行列X−1を算出し、記憶装置914を用いて、算出した逆行列X−1を記憶しておく構成であってもよい。
ベクトル分解工程S566において、ベクトル分解部472が、処理装置911を用いて、逆行列算出工程S561で逆行列算出部471が算出した逆行列X−1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジCの最後のベクトルcをベクトル分解して、復号ベクトルyを算出する。
群変換工程S567において、群変換部474が、処理装置911を用いて、ベクトル分解工程S566でベクトル分解部472が算出した復号ベクトルyに基づいて、変換元y’を算出する。
初期化工程S560において、元結合部475が、処理装置911を用いて、整数iを0に初期化し、第二レスポンスZを、有限群Gの乗法における変換元y’の逆元y’−1に初期化する。
繰り返し工程S562において、元結合部475が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二レスポンスZが完成したので、元結合部475は、第二レスポンス生成工程S716を終了する。整数iがT以下である場合、元結合部475は、ベクトル分解工程S563へ処理を進める。
ベクトル分解工程S563において、ベクトル分解部472が、処理装置911を用いて、逆行列算出工程S561で逆行列算出部471が算出した逆行列X−1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジCのi番目のベクトルc をベクトル分解して、i番目の復号ベクトルyを算出する。
二乗算出工程S564において、二乗算出部473が、処理装置911を用いて、ベクトル分解工程S563でベクトル分解部472が算出したi番目の復号ベクトルyに基づいて、i番目の二乗元y’=e(y,y)を算出する。
元結合工程S565において、元結合部475が、処理装置911を用いて、二乗算出工程S564で二乗算出部473が算出したi番目の二乗元y’に基づいて、有限群Gにおける乗法により、i番目の二乗元y’を、第二レスポンスZに結合する。
元結合部475は、繰り返し工程S562に処理を戻し、第二チャレンジCの次のベクトルを処理する。
このようにして復号部404が生成した第二レスポンスZは、第二レスポンス送信部412が認証装置102に対して送信し、認証装置102が受信して処理する。
図24は、この実施の形態における平文類似度抽出部315の構成の一例を示す詳細ブロック図である。
認証装置102の平文類似度抽出部315は、例えば、群変換部371と、元結合部372と、離散対数算出部373とを有する。
群変換部371は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及びランダム基底Bと、乱数記憶部322が記憶した一時鍵としての乱数uとに基づいて、復号鍵Цを算出する。復号鍵Цは、有限群Gの元である。群変換部371が算出する復号鍵Цは、ペアリングeによりランダム基底Bの最初のベクトルь同士の組を変換した元e(ь,ь)を、有限群Gにおける累乗により、乱数uで累乗した元e(ь,ьu1である。
元結合部372は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である有限群Gと、第二レスポンス受信部341が受信した第二レスポンスZと、群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’を算出する。復号類似度元Z’は、有限群Gの元である。復号類似度元Z’は、有限群Gにおける乗法により、第二レスポンスZと、復号鍵Цとを結合した元である。第二レスポンスZは、有限群Gにおける累乗により、有限群Gの元e(ь,ь)を(Σ[(b−b’]−u)(iは、1以上T以下の整数。)で累乗した元であるから、復号類似度元Z’は、有限群Gにおける累乗により、有限群Gの元e(ь,ь)をΣ[(b−b’](iは、1以上T以下の整数。)で累乗した元になる。
離散対数算出部373は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及びランダム基底Bと、元結合部372が算出した復号類似度元Z’とに基づいて、類似度dを算出する。類似度dは、有限体Fの元である。離散対数算出部373が算出する類似度dは、有限群Gにおける累乗による有限群Gの元e(ь,ь)の何乗が、復号類似度元Z’に一致するかを求めたものである。
離散対数算出部373が復号類似度元Z’から類似度dを算出することは、いわゆる離散対数問題を解くことであるから、一般的には、困難である。しかし、類似度dの範囲があらかじめ限定されていれば、類似度dを算出することが可能になる。例えば、その範囲内のすべての整数dについて、あらかじめe(ь,ь)を整数dで累乗した元e(ь,ьを算出しておき、復号類似度元Z’がどれと一致するかを判定すればよい。
類似度dは、2つの特徴ベクトルb,b’の間のユークリッド距離の二乗であるから、類似度dが小さいほど2つの特徴ベクトルb,b’が似ていることを表わす。判定部306は、例えば、類似度dを所定の閾値dと比較して、類似度dのほうが小さい場合に、2つの特徴ベクトルb,b’が似ていると判定する。このため、類似度dが具体的にいくつであるかを知る必要はなく、類似度dが閾値dより大きいか小さいかだけがわかればよい。
閾値dは、位数qよりもはるかに小さい整数であり、例えば数百〜数万程度である。特徴ベクトルb,b’の成分が0か1かのいずれかの値である場合、2つの特徴ベクトルb,b’の間のユークリッド距離の二乗は、0以上T以下の整数になる。この場合、閾値dが特徴ベクトルの次数Tよりも小さい整数でなければ、すべての場合に2つの特徴ベクトルb,b’が似ていると判定することになり、意味をなさない。
よって、0以上d以下のすべての整数dについて、あらかじめe(ь,ьを算出しておくことは容易である。そうすれば、類似度dがd以下である場合、離散対数算出部373は類似度dを算出できる。類似度dがdより大きい場合、離散対数算出部373は類似度dを算出できないが、類似度dがdより大きいことだけは判定できる。
図25は、この実施の形態における平文類似度算出工程S719の処理の流れの一例を示すフローチャート図である。
平文類似度算出工程S719では、認証装置102が、第二レスポンスZから、類似度dを算出する。平文類似度算出工程S719は、例えば、群変換工程S691と、元結合工程S692と、離散対数算出工程S693とを有する。
最初に、群変換工程S691において、群変換部371は、処理装置911を用いて、乱数記憶部322が記憶した一時鍵としての乱数uに基づいて、復号鍵Ц=e(ь,ьu1を算出する。
元結合工程S692において、元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、群変換工程S691で群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’=ZЦを算出する。
離散対数算出工程S693において、離散対数算出部373は、処理装置911を用いて、元結合部372で元結合部372が算出した復号類似度元Z’に基づいて、類似度dを算出する。
平文類似度抽出部315が算出した類似度dに基づいて、判定部306が、2つの特徴ベクトルb,b’が似ているか否かを判定することにより、特徴ベクトルbで表わされる生体情報を持つ人物と、特徴ベクトルb’で表わされる生体情報を持つ人物とが同一人物であるか否かを判定する。上述したように、判定部306は、類似度dが閾値dより小さい場合に、2つの特徴ベクトルb,b’が似ていると判定する。
以上説明したように、生体認証システム100は、2つの特徴ベクトルb,b’の類似度として、2つの特徴ベクトルb,b’の間のユークリッド距離の2乗を算出する。類似度算出の計算手順を、いくつかの段階に分け、認証装置102と復号装置103とが、各段階の計算をすることにより、認証装置102が、特徴ベクトルb,b’についての情報を得ることを防ぎ、復号装置103が、特徴ベクトルb,b’や類似度dについての情報を得ることを防いでいる。
図26は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。
この図は、認証処理S700から、類似度算出手順に関わる部分を抜き出したものである。なお、δ及びδは、第二チャレンジCにおいて暗号化されている情報を示し、ζは、第二レスポンスZによって表わされる情報を示す。
第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジCを算出することにより、T個のδ=(b−b’)+t1,i(iは、1以上T以下の整数。)と、1個のδ=Σ[2t1,i(b−b’)+t1,i ]+u(iは、1以上T以下の整数。)とを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジCから第二レスポンスZを算出することにより、ζ=Σ[δ ]−δ(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の秘密鍵skによって復号された状態で行われるが、復号装置103は、一時鍵uを知らないので、特徴ベクトルb,b’や類似度dについての情報を得ることができない。すなわち、この計算は、一時鍵uで暗号化された状態で行われる。
第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ+uを算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
この実施の形態における生体認証システム100(データ照合装置)は、加法的準同型方式の鍵生成アルゴリズムに基づいて鍵生成部(401)が公開鍵と秘密鍵とを生成する。
データ抽出装置(認証装置102)は、前記鍵生成部から配布された前記公開鍵を保有する公開鍵記憶部(302)と、前記鍵生成部から配布された前記公開鍵を保有するデータ処理装置(登録装置104)が保有する前記公開鍵を用いて暗号化した第一データ(特徴ベクトルb)を暗号化第一データ(暗号化特徴ベクトルC)として記憶する暗号化データ記憶部(312)と、前記公開鍵の少なくとも一部を用いて第一乱数と第二乱数を生成する乱数生成部(303)と、前記第一乱数と前記第二乱数を記憶する乱数記憶部(322)と、前記第一乱数を暗号化して第一チャレンジを生成する暗号化乱数生成部(304)と、データ処理装置(証明装置101)が第二データ(特徴ベクトルb’)を前記第一チャレンジと演算して生成した第一レスポンスから前記乱数記憶部に記憶されている前記第一乱数を用いて処理し第二データの暗号化である暗号化第二データ(暗号化特徴ベクトルC’)を算出する暗号化データ抽出部(305)と、前記暗号化第二データと前記第二乱数を用いて第二チャレンジを生成する暗号化ランダム類似度算出部(314)と、前記復号装置もしくは前記データ処理装置が前記秘密鍵記憶部(413)に記憶されている前記秘密鍵を用いて前記第二チャレンジを処理した第二レスポンスを前記乱数記憶部に記憶されている前記第二乱数を用いて処理し平文の類似度を算出する平文類似度抽出部(315)とを有する。
データ処理装置(証明装置101)は、前記第二データを前記第一チャレンジと演算して前記第一レスポンスを生成する暗号化データ埋め込み部(217)を有する。
復号装置(103)もしくはデータ処理装置は、前記加法的準同型方式の鍵生成アルゴリズムに基づいて前記公開鍵と前記秘密鍵を生成する前記鍵生成部(401)と、前記秘密鍵を記憶する前記秘密鍵記憶部(413)と、前記第二チャレンジを前記秘密鍵記憶部に記憶されている前記秘密鍵を用いて処理し前記第二レスポンスを生成する復号部(404)とを有する。
これにより、攻撃者は、証明装置101と、認証装置102と、復号装置103と、登録装置104との間のネットワーク上でやり取りされている情報(例えば、第一チャレンジRと第一レスポンスR’との組や、第二チャレンジCと第二レスポンスZとの組)を持っていたとしても、正規のユーザとしてなりすますことは難しい。つまり、装置間でやり取りされている情報から、なりすましに致命的な情報は一切漏れていない。
この第一の理由としては、認証装置102によって生成された第一チャレンジR及び第二チャレンジCや第一レスポンスR’及び第二レスポンスZで用いる平文としての乱数R1,i,uは、認証が行われる度に毎回値が変わることから、これらのデータをそのまま再利用したリプレイ攻撃ができない。
第二の理由として、この実施の形態で説明した岡本−高島暗号方式や、BGN暗号、Paillier暗号などは、暗号文の識別不可能性という安全性を有している。このため、たとえ攻撃者が準同型性を利用したとしても、第一チャレンジR及び第二チャレンジCとそれに対応する第一レスポンスR’及び第二レスポンスZとから、平文の特徴ベクトルb,b’や平文としての乱数R1,i,u、また秘密鍵skが漏洩することはない。
第三の理由として、認証装置102と証明装置101とは、それぞれ相手の装置が知らない情報を用いて第一チャレンジRと第一レスポンスR’とを生成している。つまり、認証装置102は第一チャレンジRで用いた乱数R1,iを所持しており、また証明装置101はユーザの平文の特徴ベクトルb’を所持している。これらの秘密情報を知ることなしに、攻撃者は、第一チャレンジRや第一レスポンスR’から平文の特徴ベクトルb’や乱数R1,iについての情報を得ることができない。さらに、認証装置102は、乱数R1,iを知っていても平文の特徴ベクトルbを得ることができず、また証明装置101は、特徴ベクトルbを知っていても乱数R1,iの情報を得ることはできない。
また、第二チャレンジCと第二レスポンスZとの関係も同様であり、認証装置102と復号装置103とは、それぞれ相手の装置が知らない情報を用いて第二チャレンジCと第二レスポンスZとを生成している。つまり、認証装置102は第二チャレンジCで用いた乱数uを所持しており、また復号装置103は秘密鍵skを所持している。これらの秘密情報を知ることなしに、攻撃者は、第二チャレンジCや第二レスポンスZから乱数uや秘密鍵skについての情報を得ることができない。さらに、認証装置102は、乱数uを知っていても秘密鍵skを得ることができず、また復号装置103は、秘密鍵skを知っていても乱数uの情報を得ることはできない。
この実施の形態の生体情報の登録処理S600において、ユーザ(登録装置104)は、認証装置102に暗号化特徴ベクトルCそのものを送信し、認証装置102はその送られてきた暗号化特徴ベクトルCを保存するだけである。特徴ベクトルbのやり取りの必要がないので、信頼された登録処理装置が必要ない。
この実施の形態における乱数は、乱数空間から一様に生成されている。このため、乱数同士に相関がなく、乱数同士の相関から何らかの情報が漏れる可能性がない。
認証装置102には特徴ベクトルbがそのまま保管されるのではなく、暗号化された状態で保管される。このため、ユーザのプライバシー情報である特徴ベクトルbが、認証装置102の管理者に盗み見られるというリスクを低減させることができる。
認証装置102にとっては、暗号化特徴ベクトルCが仮に漏洩したとしても元の特徴ベクトルb自体が漏洩することはないため、特徴ベクトルbそのものを保管するのに比べてデータ管理の手間を削減できる。
また、この実施の形態の手順にしたがえば、復号装置103が復号できるのはランダム類似度という指標値だけであり、特徴ベクトルb,b’を復号することはできない。よって、認証の過程において特徴ベクトルb,b’が現れることはないから、生体情報を秘匿したままでの生体認証が可能である。
また、この実施の形態によれば、認証時に証明装置101から認証装置102へ第一レスポンスR’を送付するために生体情報を抽出するが、第一レスポンスR’の生成が終わると、その後は平文の生体情報を用いた処理がない。このため、証明装置101上で取得した生体情報をただちに消去できる。したがって、証明装置101において生体情報が窃取される機会を低減できる。
なお、暗号方式は、岡本−高島暗号方式に限らず、BGN暗号方式、Gentry暗号方式、Paillier暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。
証明装置101が認証装置102へ送信する第一レスポンスR’は、暗号化特徴ベクトルC’を暗号化したものであり、証明装置101が第一レスポンスR’を復号することにより、暗号化特徴ベクトルC’を取得する。生体認証システム100は、この暗号化・復号に用いる暗号方式に、異なる暗号方式を使用する構成であってもよい。その場合の暗号方式は、加法的準同型性を有する暗号方式ではなく、普通の公開鍵暗号方式を使用する構成であってもよい。
例えば、認証装置102が、第二の暗号方式における公開鍵と秘密鍵との組を生成して、公開鍵を第一チャレンジRとして、証明装置101に対して送信する。証明装置101は、復号装置103の公開鍵を使って、加法的準同型性を有する第一の暗号方式により、特徴ベクトルb’を暗号化し、暗号化特徴ベクトルC’を生成する。次に、証明装置101は、第一チャレンジRとして認証装置102から受信した公開鍵を使って、第二の暗号方式により、生成した暗号化特徴ベクトルC’を暗号化して、第一レスポンスR’とし、認証装置102に対して送信する。認証装置102は、自身で生成した秘密鍵を使って、第二の暗号方式により、受信した第一レスポンスR’を復号して、暗号化特徴ベクトルC’を得る。
ただし、第一チャレンジRが第二の暗号方式における公開鍵であり、その公開鍵を使って暗号化特徴ベクトルC’を暗号化したものを第一レスポンスR’とする場合、第一チャレンジRと暗号化特徴ベクトルC’とから第一レスポンスR’を生成できる。これに対し、この実施の形態で説明した方式では、第一チャレンジRと生の特徴ベクトルb’とから第一レスポンスR’を生成し、第一チャレンジRと暗号化特徴ベクトルC’とからでは第一レスポンスR’を生成できない。このため、登録処理S600で登録装置104から認証装置102へ送信された暗号化特徴ベクトルCを第三者が盗聴するなどして、暗号化特徴ベクトルCを手に入れたとしても、証明装置101になりすまして認証を受けることはできない。
実施の形態2.
実施の形態2について、図27を用いて説明する。
なお、実施の形態1と共通する部分については、同一の符号を付し、説明を省略する。
図27は、この実施の形態における生体認証システム100の全体構成の一例を示すシステム構成図である。
生体認証システム100は、証明装置101と、認証装置102とを有する。証明装置101は、実施の形態1で説明した証明装置101としての機能と、復号装置103としての機能と、登録装置104としての機能とを兼ね備えている。
証明装置101は、公開鍵pkと秘密鍵skとの組を生成し、公開鍵pkを公開し、秘密鍵skを秘密裡に保持する。認証装置102は、証明装置101が公開した公開鍵pkを使って暗号処理をする。
生体認証システム100は、証明装置101を複数有する場合がある。例えば、生体認証システム100が認証すべき各ユーザが、それぞれ自分の証明装置101を持っている。ユーザは、自分の証明装置101をネットワークなどに接続し、証明装置101は、ネットワークなどを介して認証装置102との間で通信を行う。
認証装置102は、それぞれの証明装置101の公開鍵pkを記憶している。認証装置102は、認証を求めてきた証明装置101やユーザのIDなどに基づいて、記憶した公開鍵pkのなかから、その証明装置101の公開鍵pkを選択し、選択した公開鍵pkを使って暗号処理をする。
それぞれの証明装置101の公開鍵pkは、例えば、登録処理S600において、暗号化特徴ベクトルCとともに、証明装置101が認証装置102に対して送信し、認証装置102が、受信した公開鍵pkを、暗号化特徴ベクトルCと対応づけて記憶する。
認証処理S700において、認証装置102は、証明装置101の公開鍵pkに基づいて、第一チャレンジRを生成し、証明装置101に対して送信する。証明装置101は、自身の公開鍵pkと、受信した第一チャレンジRと、特徴ベクトルb’とに基づいて、第一レスポンスR’を生成し、認証装置102に対して送信する。認証装置102は、証明装置101の公開鍵pkと、受信した第一レスポンスR’とに基づいて、暗号化特徴ベクトルC’を生成する。認証装置102は、証明装置101の公開鍵pkと、生成した暗号化特徴ベクトルC’と、登録処理S600で記憶した暗号化特徴ベクトルCとに基づいて、第二チャレンジCを生成し、証明装置101に対して送信する。証明装置101は、自身の秘密鍵skと、受信した第二チャレンジCとに基づいて、第二レスポンスZを生成し、認証装置102に対して送信する。認証装置102は、受信した第二レスポンスに基づいて、類似度dを算出する。
第三者が証明装置101になりすました場合、第三者は、特徴ベクトルbと特徴ベクトルb’とが似ていることを意味する第二レスポンスZを生成しようとする。しかし、第三者は、証明装置101が生成した一時鍵uを知らないので、どのような第二レスポンスZが、特徴ベクトルbと特徴ベクトルb’とが似ているという意味になるのかわからない。仮に、第三者が、証明装置101の秘密鍵を窃取して第二チャレンジCを復号したとしても、一時鍵uを知ることはできないので、特徴ベクトルbと特徴ベクトルb’とが似ていることを意味する第二レスポンスZを生成することはできない。
実施の形態3.
実施の形態3について、図28〜図30を用いて説明する。
なお、実施の形態1〜実施の形態2と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、2つの特徴ベクトルb,b’の間の類似度dとして、ユークリッド距離の二乗Σ[(b−b’]ではなく、内積Σ[bb’]を算出する場合について説明する。
なお、特徴ベクトルの各成分は、1か0かの2つの値のいずれかであるものとする。
この実施の形態における生体認証システム100の全体構成、証明装置101、認証装置102、復号装置103、登録装置104などの内部構成は、実施の形態1で説明したものと同様なので、異なる点のみ説明する。
認証装置102において、暗号化ランダム類似度算出部314のベクトル累計部367は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’と、スカラー倍算出部364が算出したスカラー倍ベクトルと、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、ベクトルcを算出する。ベクトルcは、ベクトル空間Vにおける加法により、暗号化特徴ベクトルCのT個の成分cと、暗号化特徴ベクトルC’のT個の成分c’と、スカラー倍算出部364が算出したスカラー倍ベクトルのT個の成分2t1,iΔcと、暗号化鍵ц=(Σ[t1,i ])ь+Σ[uь](iは、1以上T以下の整数。jは、1以上n以下の整数。)とを結合したベクトルΣ[c]+Σ[c’]+Σ[2t1,iΔc]+(Σ[t1,i ])ь+Σ[uь](iは、1以上T以下の整数。jは、1以上n以下の整数。)である。暗号の加法的準同型性より、ベクトルcは、Σ[b+b’+2t1,i(b−b’)+2t1,i ]+uを暗号化したものである。
図28は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程S712の処理の流れは、実施の形態1とほとんど同じであるが、ベクトル累計工程S747だけが異なっている。
ベクトル累計工程S747において、ベクトル累計部367が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分cと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’と、スカラー倍算出工程S746でスカラー倍算出部364が算出したスカラー倍ベクトル¢のi番目の成分¢=2t1,iΔcとに基づいて、ベクトル空間Vにおける加法により、ベクトルcと、ベクトルc’と、ベクトル¢とを、ベクトルcに結合する。
復号装置103の復号部404は、実施の形態1と同じ構成であるが、ベクトルcの意味が異なるため、復号部404が生成する第二レスポンスZの意味も、実施の形態1とは異なる。
すなわち、第二レスポンスZは、有限群Gにおける累乗により、有限群Gの元e(ь,ь)を(Σ[(b−b’−(b+b’)]−u)(iは、1以上T以下の整数。)で累乗した元になる。ここで、b及びb’が0か1かのいずれかの値しか取らないので、常に、b=b かつb’=b’ である。したがって、第二レスポンスZは、有限群Gにおける累乗により、有限群Gの元e(ь,ь)を(−2Σ[bb’]−u)(iは、1以上T以下の整数。)で累乗した元になる。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との内積Σ[bb’]を、一時鍵としての乱数uで暗号化したものになる。
認証装置102において、平文類似度抽出部315の元結合部372は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数qに基づいて、有限体Fにおける乗法による(−2)の逆元ш=(−2)−1を算出する。認証装置102は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である有限群Gと、第二レスポンス受信部341が受信した第二レスポンスZと、群変換部371が算出した復号鍵Ц=e(ь,ьu1と、算出した逆元шとに基づいて、復号類似度元Z’を算出する。復号類似度元Z’は、有限群Gにおける乗法により第二レスポンスZと、復号鍵Цとを結合した元ZЦを、有限群Gにおける累乗により、逆元шで累乗した元(ZЦ)шである。第二レスポンスZは、有限群Gにおける累乗により、有限群Gの元e(ь,ь)を(−2Σ[bb’]−u)(iは、1以上T以下の整数。)で累乗した元であるから、復号類似度元Z’は、有限群Gにおける累乗により、有限群Gの元e(ь,ь)をΣ[bb’](iは、1以上T以下の整数。)で累乗した元になる。
図29は、この実施の形態における平文類似度算出工程S719の処理の流れの一例を示すフローチャート図である。
平文類似度算出工程S719は、実施の形態1で説明した工程に加えて、逆数算出工程S690を有する。
逆数算出工程S690において、元結合部372は、処理装置911を用いて、有限体Fにおける乗法による(−2)の逆元шを算出する。なお、逆元шは、第二レスポンスZに関わらず一定なので、あらかじめ算出しておく構成であってもよい。
元結合工程S692において、元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、逆数算出工程S690で算出した逆元шと、群変換工程S691で群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’=(ZЦ)шを算出する。
なお、元結合部372が、復号類似度元Z’として、有限群Gにおける乗法により第二レスポンスZと復号鍵Цとを結合した元ZЦを算出し、離散対数算出部373が、類似度dとしt、復号類似度元Z’がe(ь,ь−2の何乗であるかを算出する構成であってもよい。
2つの特徴ベクトルb,b’の内積Σ[bb’]は、ユークリッド距離の二乗Σ[(b−b’]とは逆に、大きいほど、2つの特徴ベクトルb,b’が似ていることを表わす。このため、判定部306は、離散対数算出部373が算出した類似度dが、所定の閾値dより大きい場合に、2つの特徴ベクトルb,b’が似ていると判定する。
特徴ベクトルの各成分が0か1かの2つの値のいずれかしか取らないので、2つの特徴ベクトルb,b’の内積Σ[bb’]は、0以上T以下の整数となる。離散対数算出部373は、例えば、d以上T以下のすべての整数dについて、あらかじめe(ь,ь)を整数dで累乗した元e(ь,ьを算出しておくことにより、類似度dがd以上かつT以下の場合に、類似度dを算出し、類似度dがd未満である場合に、類似度dがdより小さいことを判定する。なお、離散対数算出部373は、実施の形態1と同様、類似度dがd以下の場合に類似度dを算出し、類似度dがdより大きい場合に、類似度dがdより大きいことを判定する構成であってもよい。
これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。
図30は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジCを算出することにより、T個のδ=(b−b’)+t1,i(iは、1以上T以下の整数。)と、1個のδ=Σ[2t1,i(b−b’)+t1,i +b+b’]+u(iは、1以上T以下の整数。)とを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジCから第二レスポンスZを算出することにより、ζ=Σ[δ ]−δ(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、復号装置103は、一時鍵uを知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵uで暗号化された状態で行われる。
第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ+uを算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
なお、暗号方式は、岡本−高島暗号方式に限らず、BGN暗号方式、Gentry暗号方式、Paillier暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。
なお、実施の形態1と比較すると、証明装置101、復号装置103、登録装置104の構成は、変わらず、認証装置102の構成だけが異なる。したがって、認証装置102を、実施の形態1で説明した構成と、この実施の形態で説明した構成とを切り替えることができる構成とすることにより、生体認証システム100の他の装置に変更を加えることなく、ユークリッド距離と内積との2種類の類似度を算出することができる。
実施の形態4.
実施の形態4について、図31〜図45を用いて説明する。
なお、実施の形態1〜実施の形態3と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、暗号方式として、BGN暗号方式を使う場合について説明する。なお、類似度dは、実施の形態1と同様、ユークリッド距離の二乗を使う。
まず、BGN暗号方式の概要について説明する。
Nは、互いに異なる2つの素数p,qの積である。G及びGは、位数Nの有限群である。なお、有限群G及び有限群Gにおける群演算は、乗法として記述する。eは、有限群Gの2つの元の組を有限群Gの元に対応づけるペアリングG×G→Gである。ペアリングeは、双線形性と非退化性とを満たす。
g及びuは、有限群Gの生成元のなかから一様ランダムに選択した元である。hは、有限群Gの元であり、有限群Gにおける累乗により、元uを素数qで累乗した元uである。
有限群G及び有限群Gは、位数pの巡回群と、位数qの巡回群との直積である。したがって、元hの位数は、pである。
x及びrは、0以上N未満の整数である。有限群Gにおける累乗により元gを整数xで累乗した元gと、有限群Gにおける累乗により元hを整数rで累乗した元hとの積gが与えられたとき、有限群Gにおける累乗により積gを素数pで累乗した元[gは、元hの位数がpなので、[gと等しい。
例えば、有限群Gと、有限群Gと、位数Nと、ペアリングeと、元gと、元hとの組を公開鍵pkとし、素数pを秘密鍵skとする。素数qよりも十分に小さい整数Lについて、0以上L以下の整数xを平文とし、有限群Gの元gを、平文xを暗号化した暗号文E(x)とする。ただし、rは、0以上N未満の整数のなかから一様ランダムに選択した整数である。
復号には、秘密鍵skである素数pを使う。有限群Gにおける累乗により、暗号文E(x)を素数pで累乗した元E(x)=[g=[gを算出する。これが、gの何乗であるかがわかれば、xが復号できる。
Lが小さい場合、例えば、Pollardのラムダ法を用いることにより、この離散対数問題を解くことができる。その場合に必要な計算量は、√Lに比例する。したがって、現実的な計算量で計算できるよう、Lの値を設定すれば、xを復号することができる。
整数xの暗号文E(x)=gx1r1と、整数xの暗号文E(x)=gx2r2とを、有限群Gにおける乗法により結合すると、E(x)E(x)=gx1+x2r1+r2となるから、整数x1と整数x2との和x1+x2の暗号文E(x+x)になる。
また、暗号文E(x)は、暗号化されたままの状態で、ペアリングeを使って有限群Gへ写したのちに、復号することもできる。例えば、整数xの暗号文E(x)=gx1r1と、整数xの暗号文E(x)=gx2r2とのペアリングe(gx1r1,gx2r2)は、ペアリングの双線形性より、e(g,g)x1x2e(g,h)x1r2e(h,g)x2r1e(h,h)r1r2である。有限群Gの元hの位数がpなので、有限群Gの元であるペアリングe(g,h),e(h,g),e(h,h)の位数はいずれもpである。したがって、有限群Gにおける累乗により、暗号文E(x)と暗号文E(x)とのペアリングe(E(x),E(x))を素数pで累乗すると、[e(g,g)x1x2になる。すなわち、暗号文E(x)と暗号文E(x)とのペアリングe(E(x),E(x))は、整数xと整数xとの積xの暗号文になっている。
図31は、この実施の形態における鍵生成部401の構成の一例を示す詳細ブロック図である。
復号装置103の鍵生成部401は、例えば、群決定部431と、生成元選択部432と、生成元累乗部433とを有する。
群決定部431は、処理装置911を用いて、セキュリティレベルに応じて定まる大きさ(例えば512ビットや1024ビットなど)に基づいて、互いに異なる2つの素数p,qを生成する。群決定部431は、処理装置911を用いて、生成した2つの素数p,qの積N=pqを計算する。群決定部431は、処理装置911を用いて、計算した積Nに基づいて、有限群Gと有限群Gとを決定する。有限群Gと有限群Gとは、ともに位数がNであり、ペアリングe:G×G→Gを持つ。
生成元選択部432は、処理装置911を用いて、群決定部431が決定した有限群Gに基づいて、有限群Gの2つの生成元g,uを選択する。
生成元累乗部433は、処理装置911を用いて、群決定部431が生成した素数qと、生成元選択部432が選択した生成元uとに基づいて、元hを算出する。元hは、有限群Gにおける累乗により、生成元uを素数qで累乗した元uである。
底算出部434は、処理装置911を用いて、群決定部431が生成した素数pと、ペアリングeと、生成元選択部432が選択した生成元gとに基づいて、元πを算出する。元πは、有限群Gの元である。元πは、ペアリングeにより生成元g同士の組を変換した元e(g,g)を、有限群Gにおける累乗により、素数pで累乗した元e(g,g)である。
公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkとして、有限群Gと、有限群Gと、積Nと、ペアリングeと、生成元gと、元hと、元πの組(G,G,N,e,g,h,π)を記憶する。
秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、群決定部431が生成した素数pを記憶する。
図32は、この実施の形態における鍵生成工程S501の処理の流れの一例を示すフローチャート図である。
鍵生成工程S501では、復号装置103が、公開鍵pkと秘密鍵skとの組を生成する。なお、ユーザごとに異なる公開鍵pkと秘密鍵skとの組を生成する構成であってもよいし、システム全体として1つの公開鍵pkと秘密鍵skとの組を生成する構成であってもよい。
鍵生成工程S501は、例えば、群決定工程S521と、生成元選択工程S522と、生成元累乗工程S523と、底算出工程S524とを有する。
最初に、群決定工程S521において、群決定部431が、処理装置911を用いて、2つの素数p,qと、積Nと、位数Nの有限群G及びGとを決定する。公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkの一部として、積Nと、有限群Gと、有限群Gとを記憶する。秘密鍵記憶部413が、記憶装置914を用いて、秘密鍵skとして、素数pを記憶する。
生成元選択工程S522において、生成元選択部432が、処理装置911を用いて、群決定工程S521で群決定部431が決定した有限群Gに基づいて、有限群Gの2つの生成元g,uを選択する。公開鍵記憶部403が、記憶装置914を用いて、公開鍵pkの一部として、生成元gを記憶する。
生成元累乗工程S523において、生成元累乗部433が、処理装置911を用いて、群決定工程S521で群決定部431が決定した素数qと、生成元選択工程S522で生成元選択部432が選択した生成元uとに基づいて、有限群Gの元h=uを算出する。公開鍵記憶部403が、処理装置911を用いて、公開鍵pkの一部として、元hを記憶する。
底算出工程S524において、底算出部434が、処理装置911を用いて、群決定工程S521で群決定部431が決定した素数p及びペアリングeと、生成元選択工程S522で生成元選択部432が選択した生成元gとに基づいて、有限群Gの元π=e(g,g)を算出する。公開鍵記憶部403が、処理装置911を用いて、公開鍵pkの一部として、元πを記憶する。
このようにして公開鍵記憶部403が記憶した公開鍵pk=(G,G,N,e,g,h,π)は、公開鍵送信部408が認証装置102などに対して送信し、認証装置102などが受信して格納する。
図33は、この実施の形態における特徴ベクトル暗号化工程S603の処理の流れの一例を示すフローチャート図である。
特徴ベクトル暗号化工程S603では、登録装置104が、特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。特徴ベクトル暗号化工程S603は、例えば、初期化工程S610と、繰り返し工程S611と、乱数生成工程S612と、元算出工程S613aとを有する。
登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbは、例えば、整数を成分とするT次元のベクトル(b,b,…,b)(Tは、1以上の整数。)である。暗号化データ生成部206が生成する暗号化特徴ベクトルCは、有限群Gの元を成分とするT次元のベクトル(c,c,…,c)である。
最初に、初期化工程S610において、暗号化データ生成部206が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S611において、暗号化データ生成部206が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化データ生成部206は、特徴ベクトル暗号化工程S603を終了する。整数iがT以下である場合、暗号化データ生成部206は、乱数生成工程S612へ処理を進め、暗号化特徴ベクトルCのi番目の成分cを生成する。
乱数生成工程S612において、乱数生成部205が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である位数Nに基づいて、乱数rを生成する。乱数生成部205が生成する乱数rは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
元算出工程S613aにおいて、暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である生成元gと元hと、特徴ベクトル形成部204が生成した特徴ベクトルbのi番目の成分bと、乱数生成工程S612で特徴ベクトル形成部204が生成した乱数rとに基づいて、暗号化特徴ベクトルCのi番目の成分cを算出する。暗号化データ生成部206が算出する暗号化特徴ベクトルCのi番目の成分cは、有限群Gにおける累乗により生成元gを整数bで累乗した元gbiと、有限群Gにおける累乗により元hを乱数rで累乗した元hriとを、有限群Gにおける乗法により結合した元gbiriである。
暗号化データ生成部206は、繰り返し工程S611に処理を戻し、暗号化特徴ベクトルCの次の成分を生成する。
このようにして暗号化データ生成部206が生成した暗号化特徴ベクトルCは、暗号化データ送信部201が認証装置102に対して送信し、認証装置102が受信して格納する。
図34は、この実施の形態における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図である。
第一チャレンジ生成工程S701では、認証装置102が、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、元算出工程S723aとを有する。
認証装置102の暗号化乱数生成部304が生成する第一チャレンジRは、有限群Gの元を成分とするT次元のベクトル(R,R,…,R)である。
最初に、初期化工程S729において、暗号化乱数生成部304が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S721において、暗号化乱数生成部304が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化乱数生成部304は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、暗号化乱数生成部304は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Rを生成する。
乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数Nに基づいて、2個の乱数R1,i,R2,iを生成する。乱数生成部303が生成する乱数R1,i,R2,iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成した乱数R1,iを記憶する。
元算出工程S723aにおいて、暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である生成元g及び元hと、乱数生成工程S722で乱数生成部303が生成した2個の乱数R1,i,R2,iとに基づいて、第一チャレンジRのi番目の成分Rを算出する。暗号化乱数生成部304が算出する第一チャレンジRのi番目の成分Rは、有限群Gにおける累乗により生成元gを乱数R1,iで累乗した元と、有限群Gにおける累乗により元hを乱数R2,iで累乗した元とを、有限群Gにおける乗法により結合した元である。
暗号化乱数生成部304は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。
このようにして暗号化乱数生成部304が生成した第一チャレンジRは、第一チャレンジ送信部311が証明装置101に対して送信し、証明装置101が受信して処理をする。
第一チャレンジ生成工程S701において乱数生成部303が生成する乱数R1,i,R2,i(iは、1以上T以下の整数。)は、全部で2T個である。このうち、T個の乱数R1,i(iは、1以上T以下の整数。)を、乱数記憶部322が記憶する。乱数記憶部322が記憶するT個の乱数R1,iは、平文としての乱数であり、残りのT個の乱数R2,i(iは、1以上T以下の整数。)は、暗号化のための乱数である。第一チャレンジRの各成分Rは、平文としての乱数R1,iを暗号化したものである。
図35は、この実施の形態における暗号化データ埋め込み部217の構成の一例を示す詳細ブロック図である。
証明装置101の暗号化データ埋め込み部217は、例えば、累乗算出部234と、零生成部232と、元結合部235とを有する。
証明装置101の特徴ベクトル形成部214が生成する特徴ベクトルb’は、登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbと同様、整数を成分とするT次元のベクトル(b’,b’,…,b’)である。
乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkの一部である位数Nに基づいて、T個の乱数r’(iは、1以上T以下の整数。)を生成する。乱数生成部215が生成する乱数r’は、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
累乗算出部234は、処理装置911を用いて、第一チャレンジ受信部211が受信した第一チャレンジRと、特徴ベクトル形成部214が生成した特徴ベクトルb’とに基づいて、累乗ベクトルЯを算出する。累乗算出部234が算出する累乗ベクトルЯは、第一チャレンジRと同様に、有限群Gの元を成分とするT次元のベクトル(я,я,…,я)である。累乗算出部234が算出する累乗ベクトルЯのi番目の成分я(iは、1以上T以下の整数。)は、有限群Gにおける累乗により、第一チャレンジRのi番目の成分Rを、特徴ベクトルb’のi番目の成分b’で累乗した元R b’iである。累乗算出部234が算出する累乗ベクトルЯの各成分яは、特徴ベクトルb’の成分b’と、認証装置102が生成した平文としての乱数R1,iとの積を暗号化したものになる。
零生成部232は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkの一部である元hと、乱数生成部215が生成したT個の乱数r’とに基づいて、暗号化零ベクトルOを生成する。暗号化零ベクトルOは、有限群Gの元を成分とするT次元のベクトル(o,o,…,o)である。暗号化零ベクトルOのi番目の成分o(iは、1以上T以下の整数。)は、有限群Gにおける累乗により元hをi番目の乱数r’で累乗した元hr’iである。暗号化零ベクトルOの各成分oは、0を暗号化したものである。
元結合部235は、処理装置911を用いて、累乗算出部234が算出した累乗ベクトルЯと、零生成部232が生成した暗号化零ベクトルOとに基づいて、第一レスポンスR’を算出する。第一レスポンスR’は、有限群Gの元を成分とするT次元のベクトル(R’,R’,…,R’)である。第一レスポンスR’のi番目の成分R’(iは、1以上T以下の整数。)は、有限群Gにおける乗法により、累乗ベクトルのi番目の成分я=R b’iと、暗号化零ベクトルOのi番目の成分o=hr’iとを結合した元R b’ir’iである。第一レスポンスR’の各成分R’は、第一チャレンジRの成分Rにおいて暗号化されている平文としての乱数R1,iと、特徴ベクトルb’の成分b’との積を暗号化したものになる。
図36は、この実施の形態における第一レスポンス生成工程S707の処理の流れの一例を示すフローチャート図である。
第一レスポンス生成工程S707では、証明装置101が、特徴ベクトルb’と、第一チャレンジRとに基づいて、第一レスポンスR’を生成する。第一レスポンス生成工程S707は、例えば、初期化工程S660と、繰り返し工程S661と、累乗算出工程S662aと、乱数生成工程S663と、零生成工程S664と、元結合工程S665aとを有する。
最初に、初期化工程S660において、元結合部235が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S661において、元結合部235が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、元結合部235は、第一レスポンス生成工程S707を終了する。整数iがT以下である場合、元結合部235は、累乗算出工程S662aへ処理を進め、第一レスポンスR’のi番目の成分R’を生成する。
累乗算出工程S662aにおいて、累乗算出部234が、処理装置911を用いて、特徴ベクトル形成部214が生成した特徴ベクトルb’のi番目の成分b’と、第一チャレンジ受信部211が受信した第一チャレンジRのi番目のベクトルRとに基づいて、累乗ベクトルЯのi番目の成分я=R b’iを算出する。
乱数生成工程S663において、乱数生成部215が、処理装置911を用いて、乱数r’を生成する。
零生成工程S664において、零生成部232が、処理装置911を用いて、乱数生成工程S663で乱数生成部215が生成した乱数r’に基づいて、暗号化零ベクトルOのi番目の成分o=hr’iを算出する。
元結合工程S665aにおいて、元結合部235が、処理装置911を用いて、累乗算出工程S662aで累乗算出部234が算出した累乗ベクトルЯのi番目の成分яと、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oとに基づいて、第一レスポンスR’のi番目の成分R’=яを算出する。
元結合部235は、繰り返し工程S661に処理を戻し、第一レスポンスR’の次の成分を生成する。
このようにして暗号化データ埋め込み部217が生成した第一レスポンスR’は、第一レスポンス送信部221が認証装置102に対して送信し、認証装置102が受信して処理する。
なお、特徴ベクトルb’の成分b’が0か1かの2つの値しか取らない場合、第一レスポンス生成工程S707の処理は、例えば次のように簡略化できる。
まず、累乗の必要がないので、累乗算出部234を設けず、累乗算出工程S662aを実行しない。
元結合工程S665aにおいて、元結合部235は、処理装置911を用いて、特徴ベクトルb’のi番目の成分b’が0であるか1であるかを判定する。特徴ベクトルb’のi番目の成分b’が0である場合、元結合部235は、処理装置911を用いて、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分o=hr’iを、第一レスポンスR’のi番目の成分R’とする。特徴ベクトルb’のi番目の成分b’が1である場合、元結合部235は、処理装置911を用いて、有限群Gにおける乗法により、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分o=hr’iと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目の成分Rとを結合した元Rr’iを算出して、第一レスポンスR’のi番目の成分R’とする。
第一チャレンジRのi番目の成分Rは、生成元gのR1,i乗と、元hのR2,i乗との積であるから、第一レスポンスR’のi番目の成分R’は、生成元gのb’1,i乗と、元hの(b’2,i+r’)乗との積である。すなわち、第一レスポンスR’のi番目の成分R’は、特徴ベクトルb’のi番目の成分b’と、乱数R1,iとの積を暗号化したものになっている。
図37は、この実施の形態における暗号化データ抽出部305の構成の一例を示す詳細ブロック図である。
認証装置102の暗号化データ抽出部305は、例えば、逆数算出部351と、スカラー倍算出部352とを有する。
認証装置102の暗号化データ抽出部305が生成する暗号化特徴ベクトルC’は、登録装置104の暗号化データ生成部206が生成する暗号化特徴ベクトルCと同様、有限群Gの元を成分とするT次元のベクトル(c’,c’,…,c’)である。
逆数算出部351は、処理装置911を用いて、乱数記憶部322が記憶したT個の乱数R1,i(iは、1以上T以下の整数。)に基づいて、Nを法とする整数の乗法における乱数R1,iそれぞれの逆数κ=R1,i −1を算出する。逆数κは、乱数R1,iと逆数κとの積をNで割った余りが1になる整数である。なお、Nが素数ではないので、必ずしも乱数R1,iに逆数κが存在するとは限らない。しかし、Nの素因数である2つの素数p,qが十分大きければ、乱数R1,iが零因子である確率は、非常に小さく、無視できる。
累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’と、逆数算出部351が算出したT個の逆数κとに基づいて、暗号化特徴ベクトルC’を算出する。累乗算出部353が算出する暗号化特徴ベクトルC’のi番目の成分c’(iは、1以上T以下の整数。)は、有限群Gにおける累乗により、第一レスポンスR’のi番目の成分R’を、i番目の逆数κで累乗した元である。暗号化特徴ベクトルC’の各成分c’は、特徴ベクトルb’の成分b’を暗号化したものになる。
図38は、この実施の形態における暗号化生体情報抽出工程S710の処理の流れの一例を示すフローチャート図である。
暗号化生体情報抽出工程S710では、認証装置102が、第一レスポンスR’に基づいて、暗号化特徴ベクトルC’を生成する。暗号化生体情報抽出工程S710は、例えば、初期化工程S730と、繰り返し工程S731と、逆数算出工程S732と、累乗算出工程S733aとを有する。
最初に、初期化工程S730において、累乗算出部353が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S731において、累乗算出部353が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、累乗算出部353は、暗号化生体情報抽出工程S710を終了する。整数iがT以下である場合、累乗算出部353は、逆数算出工程S732へ処理を進め、暗号化特徴ベクトルC’のi番目の成分c’を生成する。
逆数算出工程S732において、逆数算出部351が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数記憶部322が記憶したT個の乱数のうちi番目の乱数R1,iに基づいて、逆数κ=R1,i −1を算出する。
累乗算出工程S733aにおいて、累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’のi番目の成分R’と、逆数算出工程S732で算出した逆数κとに基づいて、暗号化特徴ベクトルC’のi番目の成分c’=R’ κiを算出する。
累乗算出部353は、繰り返し工程S731に処理を戻し、暗号化特徴ベクトルC’の次の成分を生成する。
このようにして暗号化データ抽出部305が生成した暗号化特徴ベクトルC’は、第二チャレンジ生成工程S712で使われる。
第一レスポンスR’のi番目の成分R’は、生成元gのb’1,i乗と、元hの(b’2,i+r’)乗との積であるから、暗号化特徴ベクトルC’のi番目の成分c’は、生成元gのR1,i −1b’1,i乗と、元hのR1,i −1(b’2,i+r’)乗との積である。R1,i1,i −1≡1(mod N)であるから、c’は、生成元gのb’乗と、元hのR1,i −1(b’2,i+r’)乗との積である。すなわち、暗号化特徴ベクトルC’のi番目の成分c’は、特徴ベクトルb’のi番目の成分b’を暗号化したものになる。
図39は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。
認証装置102の暗号化ランダム類似度算出部314は、例えば、差分算出部361と、二乗算出部368と、暗号化鍵生成部366と、元結合部370とを有する。
乱数生成部303は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である位数Nに基づいて、2個の乱数s,sを生成する。乱数生成部303が生成する乱数s,sは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数sを記憶する。
差分算出部361は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化差分ベクトルΔCを算出する。暗号化差分ベクトルΔCは、有限群Gの元を成分とするT次元のベクトル(Δc,Δc,…,Δc)である。暗号化差分ベクトルΔCのi番目の成分Δc(iは、1以上T以下の整数。)は、有限群Gにおける乗法により、暗号化特徴ベクトルCのi番目の成分cと、暗号化特徴ベクトルC’のi番目の成分c’の逆元c’ −1とを結合した元cc’ −1である。暗号化差分ベクトルΔCの各成分Δcは、特徴ベクトルbの成分bと特徴ベクトルb’の成分b’との差b−b’を暗号化したものである。
なお、暗号化差分ベクトルΔCのi番目の成分Δcは、有限群Gにおける乗法により、暗号化特徴ベクトルCのi番目の成分cの逆元c −1と、暗号化特徴ベクトルC’のi番目の成分c’とを結合した元c −1c’であってもよい。また、暗号化差分ベクトルΔCの成分Δcは、元cc’ −1と、元c −1c’とのなかから、ランダムに選択したいずれかの元であってもよい。
二乗算出部368は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、差分算出部361が算出した暗号化差分ベクトルΔCとに基づいて、暗号化二乗ベクトルΔC’を算出する。暗号化二乗ベクトルΔC’は、有限群Gの元を成分とするT次元のベクトル(Δc’,Δc’,…,Δc’)である。暗号化二乗ベクトルΔC’のi番目の成分Δc’(iは、1以上T以下の整数。)は、ペアリングeにより、暗号化差分ベクトルΔCのi番目の成分Δc同士の組を変換したペアリングe(Δc,Δc)である。暗号化二乗ベクトルΔC’の各成分Δc’は、特徴ベクトルbの成分bと特徴ベクトルb’の成分b’との差の二乗(b−b’を暗号化したものである。
暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及び生成元g及び元hと、乱数生成部303が生成した2つの乱数s,sとに基づいて、暗号化鍵цを算出する。暗号化鍵цは、有限群Gの元である。暗号化鍵цは、有限群Gにおける累乗により生成元gを乱数sで累乗した元gs1と、有限群Gにおける累乗により元hを乱数sで累乗した元hs2とを、有限群Gにおける乗法により結合した元gs1s2と、生成元gとの組を、ペアリングeにより変換した元e(gs1s2,g)である。例えば、暗号化鍵生成部366は、生成元gと乱数sとに基づいて、有限群Gにおける累乗により、生成元gを乱数sで累乗した元gs1を算出する。暗号化鍵生成部366は、元hと乱数sとに基づいて、有限群Gにおける累乗により、元hを乱数sで累乗した元hs2を算出する。暗号化鍵生成部366は、有限群Gにおける乗法により、算出した2つの元gs1,hs2を結合した元gs1s2を算出する。暗号化鍵生成部366は、ペアリングeにより、算出した元gs1s2と、生成元gとの組を変換した元e(gs1s2,g)を算出する。暗号化鍵цは、乱数生成部303が算出した乱数sを暗号化したものである。
元結合部370は、処理装置911を用いて、二乗算出部368が算出した暗号化二乗ベクトルΔC’と、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、第二チャレンジCを算出する。第二チャレンジCは、有限群Gの元である。元結合部370が算出する第二チャレンジCは、有限群Gにおける乗法により、暗号化二乗ベクトルΔC’のT個の成分Δc’と、暗号化鍵цとを結合した元Π[Δc’]цである。第二チャレンジCは、特徴ベクトルbの成分bと特徴ベクトルb’の成分b’との差b−b’の二乗(b−b’と、乱数sとの総和Σ[(b−b’]+sを暗号化したものである。
図40は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程S712では、認証装置102が、2つの暗号化特徴ベクトルC,C’に基づいて、第二チャレンジCを生成する。第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、暗号化鍵生成工程S752と、初期化工程S740と、繰り返し工程S741と、差分算出工程S742と、二乗算出工程S753と、元累計工程S748aとを有する。
最初に、乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、2つの乱数s,sを生成する。
暗号化鍵生成工程S752において、暗号化鍵生成部366が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s,sに基づいて、暗号化鍵ц=gs1s2を算出する。元結合部370は、処理装置911を用いて、第二チャレンジCを、暗号化鍵生成部366が算出した暗号化鍵цに初期化する。
初期化工程S740において、元結合部370は、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S741において、元結合部370が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジCが完成したので、元結合部370は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、元結合部370は、差分算出工程S742へ処理を進める。
差分算出工程S742において、差分算出部361が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分cと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’とに基づいて、暗号化差分ベクトルΔCのi番目の成分Δcを算出する。
二乗算出工程S753において、二乗算出部368が、処理装置911を用いて、差分算出工程S742で差分算出部361が算出した元Δcに基づいて、暗号化二乗ベクトルΔC’のi番目の成分Δc’=e(Δc,Δc)を算出する。
元累計工程S748aにおいて、元結合部370は、処理装置911を用いて、有限群Gの乗法により、二乗算出工程S753で二乗算出部368が算出した暗号化二乗ベクトルΔC’のi番目の成分Δc’を、第二チャレンジCに結合する。
元結合部370は、繰り返し工程S741に処理を戻す。
このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジCは、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。
なお、第二チャレンジCを算出する手順は、上述した手順と異なっていてもよい。例えば、有限群Gよりも有限群Gのほうが、乗法などの計算が速くできる場合、有限群Gにおける演算を増やし、有限群Gにおける演算を減らしたほうが、第二チャレンジ生成工程S712の計算にかかる時間を短くすることができる。
図41は、この実施の形態における暗号化ランダム類似度算出部314の構成の別の例を示す詳細ブロック図である。
認証装置102の暗号化ランダム類似度算出部314は、例えば、2つの二乗算出部381,382と、積算出部383と、累乗算出部384と、元結合部370とを有する。
二乗算出部381は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCとに基づいて、第一暗号化二乗ベクトルЖを算出する。第一暗号化二乗ベクトルЖは、有限群Gの元を成分とするT次元のベクトル(ж,ж,…,ж)である。第一暗号化二乗ベクトルЖのi番目の成分ж(iは、1以上T以下の整数。)は、ペアリングeにより、暗号化特徴ベクトルCのi番目の成分c同士の組を変換した元e(c,c)である。
二乗算出部382は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、第二暗号化二乗ベクトルЖ’を算出する。第二暗号化二乗ベクトルЖ’は、有限群Gの元を成分とするT次元のベクトル(ж’,ж’,…,ж’)である。第二暗号化二乗ベクトルЖ’のi番目の成分ж’(iは、1以上T以下の整数。)は、ペアリングeにより、暗号化特徴ベクトルC’のi番目の成分c’同士の組を変換した元e(c’,c’)である。
積算出部383は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化積ベクトル¢を算出する。暗号化積ベクトル¢は、有限群Gの元を成分とするT次元のベクトル(¢,¢,…,¢)である。暗号化積ベクトル¢のi番目の成分¢(iは、1以上T以下の整数。)は、ペアリングeにより、暗号化特徴ベクトルCのi番目の成分cと、暗号化特徴ベクトルC’のi番目の成分c’との組を変換した元e(c,c’)である。
累乗算出部384は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及び生成元g及び元hと、乱数生成部303が生成した2つの乱数s,sとに基づいて、2つの累乗元ц,цを算出する。第一の累乗元цは、ペアリングeにより生成元g同士の組を変換した元e(g,g)を、有限群Gにおける累乗により、乱数sで累乗した元e(g,g)s1である。第二の累乗元цは、ペアリングeにより生成元gと元hとの組を変換した元e(g,h)を、有限群Gにおける累乗により、乱数sで累乗した元e(g,h)s2である。
元結合部370は、処理装置911を用いて、二乗算出部381が算出した第一暗号化二乗ベクトルЖと、二乗算出部382が算出した第二暗号化二乗ベクトルЖ’と、積算出部383が算出した暗号化積ベクトル¢と、累乗算出部384が算出した2つの累乗元ц,цとに基づいて、第二チャレンジCを算出する。第二チャレンジCは、有限群Gの元である。元結合部370が算出する第二チャレンジCは、有限群Gの乗法により、第一暗号化二乗ベクトルЖのT個の成分жと、第二暗号化二乗ベクトルЖ’のT個の成分ж’と、暗号化積ベクトル¢のT個の成分¢の(−2)乗と、2つの累乗元ц,цとをすべて結合した元Π[жж’¢ −2]ццである。この場合、第二チャレンジCは、Σ[b +b’ −2bb’]+s=Σ[(b−b’]+sを暗号化したものである。
図42は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの別の例を示すフローチャート図である。
第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、累乗算出工程S752aと、初期化工程S740と、繰り返し工程S741と、二乗算出工程S753と、積算出工程S754と、元累計工程S748aとを有する。
乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、2つの乱数s,sを生成する。
累乗算出工程S752aにおいて、累乗算出部384が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s,sに基づいて、2つの累乗元ц=e(g,g)s1,ц=e(g,h)s2を算出する。
初期化工程S740において、元結合部370が、処理装置911を用いて、整数iを0に初期化する。また、元結合部370が、処理装置911を用いて、有限群Gにおける乗法により、累乗算出工程S752aで累乗算出部384が算出した2つの累乗元ц,цを結合した元ццを算出する。元結合部370は、処理装置911を用いて、第二チャレンジCを、算出した元ццに初期化する。
繰り返し工程S741において、元結合部370が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジCが完成したので、元結合部370は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、元結合部370は、二乗算出工程S753へ処理を進める。
二乗算出工程S753において、二乗算出部381が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分cに基づいて、第一暗号化二乗ベクトルЖのi番目の成分ж=e(c,c)を算出する。また、二乗算出部382が、処理装置911を用いて、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’に基づいて、第二暗号化二乗ベクトルЖ’のi番目の成分ж’=e(c’,c’)を算出する。
積算出工程S754において、積算出部383が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分cと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’とに基づいて、暗号化積ベクトル¢のi番目の成分¢=e(c,c’)を算出する。
元累計工程S748aにおいて、元結合部370は、処理装置911を用いて、有限群Gの乗法により、二乗算出工程S753で二乗算出部381が算出した第一暗号化二乗ベクトルЖのi番目の成分жと、二乗算出工程S753で二乗算出部382が算出した第二暗号化二乗ベクトルЖ’のi番目の成分ж’と、積算出工程S754で積算出部383が算出した暗号化積ベクトル¢のi番目の成分¢の(−2)乗とを、第二チャレンジCに結合する。
元結合部370は、繰り返し工程S741に処理を戻す。
このような処理手順とすることにより、有限群Gにおける演算がなくなり、ペアリングeの計算と、有限群Gにおける乗法の計算だけで、第二チャレンジCを生成することができる。
また、ペアリングe(g,g)及びe(g,h)や、第一暗号化二乗ベクトルЖの成分e(c,c)は、暗号化特徴ベクトルC’と無関係であるから、前もって計算しておくことができる。これらを前もって計算しておくことにより、第二チャレンジCを生成するのにかかる時間を短くすることができる。
図43は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程S716では、復号装置103が、第二チャレンジCから、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、累乗算出工程S571を有する。
累乗算出工程S571において、復号装置103の復号部404が、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである素数pと、第二チャレンジ受信部402が受信した第二チャレンジCとに基づいて、第二レスポンスZを算出する。第二レスポンスZは、有限群Gの元である。復号部404が算出する第二レスポンスZは、有限群Gにおける累乗により、第二チャレンジCを素数pで累乗した元である。
第二チャレンジCは、Σ[(b−b’]+sを暗号化したものであるから、第二レスポンスZは、ペアリングeにより生成元g同士の組を変換した元e(g,g)を有限群Gにおける累乗により素数pで累乗した元e(g,g)を、有限群Gにおける累乗により、Σ[(b−b’]+sで累乗した元になる。なお、元e(g,g)は、公開鍵pkの一部として公開されている元πであるから、第二レスポンスZは、有限群Gにおける累乗により元πをΣ[(b−b’]+sで累乗した元である。
平文類似度抽出部315の構成は、実施の形態1で説明した構成と同様なので、図24を参照して説明する。
群変換部371は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である元πと、乱数記憶部322が記憶した乱数sとに基づいて、復号鍵Цを算出する。復号鍵Цは、有限群Gの元である。復号鍵Цは、有限群Gの累乗により、元πを乱数sの反数−sで累乗した元π−s1である。
元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’を算出する。復号類似度元Z’は、有限群Gの元である。復号類似度元Z’は、有限群Gにおける乗法により、第二レスポンスZと、復号鍵Цとを結合した元ZЦである。第二レスポンスZは、有限群Gにおける累乗により元πをΣ[(b−b’]+sで累乗した元であるから、復号類似度元Z’は、有限群Gにおける累乗により元πをΣ[(b−b’]で累乗した元になる。
離散対数算出部373は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部である元πと、元結合部372が算出した復号類似度元Z’とに基づいて、復号類似度元Z’が元πの何乗であるかを算出して、類似度dとする。なお、実施の形態1と同様、離散対数算出部373は、類似度dが閾値d以下である場合に、類似度dを算出し、類似度dが閾値dより大きい場合は、類似度dが閾値dより大きいことを判定する構成であってもよい。
これにより、認証装置102は、類似度dとして、2つの特徴ベクトルb,b’の間のユークリッド距離の二乗Σ[(b−b’]を算出する。
図44は、この実施の形態における平文類似度算出工程S719の処理の流れの一例を示すフローチャート図である。
平文類似度算出工程S719では、認証装置102が、第二レスポンスZから、類似度dを算出する。平文類似度算出工程S719は、例えば、群変換工程S691と、元結合工程S692と、離散対数算出工程S693とを有する。
最初に、群変換工程S691において、群変換部371は、処理装置911を用いて、乱数記憶部322が記憶した一時鍵としての乱数sに基づいて、復号鍵Ц=π−s1を算出する。
元結合工程S692において、元結合部372は、処理装置911を用いて、第二レスポンス受信部341が受信した第二レスポンスZと、群変換工程S691で群変換部371が算出した復号鍵Цとに基づいて、復号類似度元Z’=ZЦを算出する。
離散対数算出工程S693において、離散対数算出部373は、処理装置911を用いて、元結合部372で元結合部372が算出した復号類似度元Z’に基づいて、類似度dを算出する。
平文類似度抽出部315が算出した類似度dに基づいて、判定部306が、2つの特徴ベクトルb,b’が似ているか否かを判定することにより、特徴ベクトルbで表わされる生体情報を持つ人物と、特徴ベクトルb’で表わされる生体情報を持つ人物とが同一人物であるか否かを判定する。判定部306は、類似度dが閾値dより小さい場合に、2つの特徴ベクトルb,b’が似ていると判定する。
図45は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジCを算出することにより、δ=Σ[(b−b’]+s(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジCから第二レスポンスZを算出することにより、ζを算出する。復号装置103は、単に復号処理をするだけなので、ζは、δと等しい。復号装置103は、一時鍵sを知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵sで暗号化された状態で行われる。
第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−sを算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
このように、暗号化したままの状態で、平文の加法に相当する演算だけでなく、平文の乗法に相当する演算を少なくとも1回はできる暗号方式を使うことにより、類似度算出の計算手順のほとんどを、第一段階で終わらせることができる。これにより、復号装置103は、単純に復号処理だけをすればよい。
この実施の形態によれば、公開鍵pk、秘密鍵sk、生成する乱数、記憶する乱数の数を低減することができる。
また、認証装置102から復号装置103に送付する第二チャレンジのデータ量が低減するので、認証に必要な通信量を低減することができる。
なお、暗号方式は、BGN暗号方式に限らず、Gentry暗号方式など環準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。
実施の形態5.
実施の形態5について、図46〜図48を用いて説明する。
なお、実施の形態1〜実施の形態4と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、実施の形態4で説明したBGN暗号方式を使い、実施の形態3と同様、類似度dとして、内積Σ[bb’]を算出する場合について説明する。
この実施の形態における生体認証システム100の全体構成、証明装置101、認証装置102、復号装置103、登録装置104などの内部構成は、実施の形態4で説明したものと同様なので、異なる点のみ説明する。
図46は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。
認証装置102の暗号化ランダム類似度算出部314は、例えば、積算出部383と、累乗算出部384と、元結合部370とを有する。
積算出部383は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングeと、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化積ベクトル¢を算出する。暗号化積ベクトル¢は、有限群Gの元を成分とするT次元のベクトル(¢,¢,…,¢)である。暗号化積ベクトル¢のi番目の成分¢は、ペアリングeにより、暗号化特徴ベクトルCのi番目の成分cと、暗号化特徴ベクトルC’のi番目の成分c’との組を変換した元e(c,c’)である。
累乗算出部384は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkの一部であるペアリングe及び生成元g及び元hと、乱数生成部303が生成した2つの乱数s,sとに基づいて、2つの累乗元ц,цを算出する。第一の累乗元цは、ペアリングeにより生成元g同士の組を変換した元e(g,g)を、有限群Gにおける累乗により、乱数sで累乗した元e(g,g)s1である。第二の累乗元цは、ペアリングeにより生成元gと元hとの組を変換した元e(g,h)を、有限群Gにおける累乗により、乱数sで累乗した元e(g,h)s2である。
元結合部370は、処理装置911を用いて、積算出部383が算出した暗号化積ベクトル¢と、累乗算出部384が算出した2つの累乗元ц,цとに基づいて、第二チャレンジCを算出する。第二チャレンジCは、有限群Gの元である。元結合部370が算出する第二チャレンジCは、有限群Gの乗法ににより、暗号化積ベクトル¢のT個の成分¢と、2つの累乗元ц,цとをすべて結合した元Π[¢]ццである。第二チャレンジCは、Σ[bb’]+sを暗号化したものになる。
図47は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、累乗算出工程S752aと、初期化工程S740と、繰り返し工程S741と、積算出工程S754と、元累計工程S748aとを有する。
乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、2つの乱数s,sを生成する。
累乗算出工程S752aにおいて、累乗算出部384が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s,sに基づいて、2つの累乗元ц=e(g,g)s1,ц=e(g,h)s2を算出する。
初期化工程S740において、元結合部370が、処理装置911を用いて、整数iを0に初期化する。また、元結合部370は、処理装置911を用いて、有限群Gにおける乗法により、累乗算出部384が算出した2つの累乗元ц,цを結合した元ццを算出する。元結合部370は、処理装置911を用いて、第二チャレンジCを、算出した元ццに初期化する。
繰り返し工程S741において、元結合部370が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジCが完成したので、元結合部370は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、元結合部370は、積算出工程S754へ処理を進める。
積算出工程S754において、積算出部383が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分cと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’のi番目の成分c’とに基づいて、暗号化積ベクトル¢のi番目の成分¢=e(c,c’)を算出する。
元累計工程S748aにおいて、元結合部370は、処理装置911を用いて、有限群Gの乗法により、積算出工程S754で積算出部383が算出した暗号化積ベクトル¢のi番目の成分¢を、第二チャレンジCに結合する。
元結合部370は、繰り返し工程S741に処理を戻す。
このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジCは、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。
復号装置103の復号部404は、実施の形態4と同じ構成であるが、第二チャレンジCの意味が異なるため、復号部404が生成する第二レスポンスZの意味も、実施の形態1とは異なる。
すなわち、第二レスポンスZは、有限群Gにおける累乗により、有限群Gの元πを(Σ[bb’]+s)(iは、1以上T以下の整数。)で累乗した元になる。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との内積Σ[bb’]を、一時鍵としての乱数sで暗号化したものになる。
認証装置102の平文類似度抽出部315も、実施の形態4と同じ構成である。
元結合部370が算出する復号類似度元Z’は、有限群Gにおける累乗により元πを特徴ベクトルbと特徴ベクトルb’との内積Σ[bb’]で累乗した元である。したがって、平文類似度抽出部315は、類似度dとして、特徴ベクトルbと特徴ベクトルb’との内積Σ[bb’]を算出する。
判定部306は、離散対数算出部373が算出した類似度dが、所定の閾値dより大きい場合に、2つの特徴ベクトルb,b’が似ていると判定する。
これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。
図48は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジCを算出することにより、δ=Σ[bb’]+s(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジCから第二レスポンスZを算出することにより、ζを算出する。復号装置103は、単に復号処理をするだけなので、ζは、δと等しい。復号装置103は、一時鍵sを知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵sで暗号化された状態で行われる。
第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−sを算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
なお、暗号方式は、BGN暗号方式に限らず、Gentry暗号方式など環準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。
なお、実施の形態4と比較すると、証明装置101、復号装置103、登録装置104の構成は、変わらず、認証装置102の構成だけが異なる。したがって、認証装置102を、実施の形態4で説明した構成と、この実施の形態で説明した構成とを切り替えることができる構成とすることにより、生体認証システム100の他の装置に変更を加えることなく、ユークリッド距離と内積との2種類の類似度を算出することができる。
実施の形態6.
実施の形態6について、図49〜図61を用いて説明する。
なお、実施の形態1〜実施の形態5と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、暗号方式として、Paillier暗号方式を使う場合について説明する。なお、類似度dは、実施の形態1と同様、ユークリッド距離の二乗を使う。
まず、Paillier暗号方式の概要について説明する。
Nは、互いに異なる2つの素数p,qの積である。λは、p−1とq−1との公倍数である。rをNと互いに素な整数とすると、rλN≡1(mod N)である。また、x,yを整数とすると、(1+xN)≡1+xyN(mod N)である。したがって、[r(1+xN)]λ≡1+xλN(mod N)である。
例えば、Nを公開鍵pkとし、p−1とq−1との最小公倍数λを秘密鍵skとする。0以上N未満の整数xを平文とし、r(1+xN)を平文xを暗号化した暗号文E(x)とする。ただし、rは、0以上N未満の整数のなかから一様ランダムに選択した整数である。素数p,qが十分大きければrがNと互いに素でない確率は、非常に小さく、無視できる。
復号には、秘密鍵skであるλを使う。E(x)λ≡1+xλN(mod N)であることを利用すると、乱数rを消去できる。E(x)λ−1は、Nの倍数になるから、[E(x)λ−1]/Nは、整数である。Nを法とする整数の乗法におけるλの逆元をλ−1とすると、[E(x)λ−1]/Nと、λ−1との積をNで割った余りを求めると、平文xが復号できる。
整数xの暗号文E(x)と、整数xの暗号文E(x)との積を、Nで割った余りは、r (1+xN)r (1+xN)≡(r[1+(x+x)N](mod N)だから、整数xと整数xとの和x+xの暗号文E(x+x)になっている。
図49は、この実施の形態における鍵生成部401の構成の一例を示す詳細ブロック図である。
復号装置103の鍵生成部401は、例えば、素数決定部441と、積算出部442と、公倍数算出部443とを有する。
素数決定部441は、処理装置911を用いて、セキュリティレベルに応じて定まる大きさ(例えば512ビットや1024ビットなど)に基づいて、互いに異なる2つの素数p,qを生成する。
積算出部442は、処理装置911を用いて、素数決定部441が生成した2つの素数p,qに基づいて、整数Nを算出する。整数Nは、2つの素数p,qの積である。
公倍数算出部443は、処理装置911を用いて、素数決定部441が生成した2つの素数p,qに基づいて、p−1とq−1との最小公倍数λ=LCM(p−1,q−1)を算出する。
公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkとして、積Nを記憶する。
秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、最小公倍数λを記憶する。
なお、復号には、Nを法とする整数の乗法におけるλの逆数λ−1が必要なので、例えば、公倍数算出部443が、逆数λ−1を算出し、秘密鍵記憶部413が秘密鍵skの一部として記憶しておく構成であってもよい。
図50は、この実施の形態における鍵生成工程S501の処理の流れの一例を示すフローチャート図である。
鍵生成工程S501では、復号装置103が、公開鍵pkと秘密鍵skとの組を生成する。なお、ユーザごとに異なる公開鍵pkと秘密鍵skとの組を生成する構成であってもよいし、システム全体として1つの公開鍵pkと秘密鍵skとの組を生成する構成であってもよい。
鍵生成工程S501は、例えば、素数決定工程S531と、積算出工程S532と、公倍数算出工程S533とを有する。
最初に、素数決定工程S531において、素数決定部441が、処理装置911を用いて、2つの素数p,qを決定する。
積算出工程S532において、積算出部442が、処理装置911を用いて、素数決定工程S531で素数決定部441が決定した2つの素数p,qに基づいて、整数N=pqを算出する。公開鍵記憶部403は、記憶装置914を用いて、公開鍵pkとして、積算出部442が算出した整数Nを記憶する。
公倍数算出工程S533において、公倍数算出部443が、処理装置911を用いて、素数決定工程S531で素数決定部441が決定した2つの素数p,qに基づいて、最小公倍数λ=LCM(p−1,q−1)を算出する。秘密鍵記憶部413は、記憶装置914を用いて、秘密鍵skとして、公倍数算出部443が算出した最小公倍数λを記憶する。
このようにして公開鍵記憶部403が記憶した公開鍵pk=(N)は、公開鍵送信部408が認証装置102などに対して送信し、認証装置102などが受信して格納する。
図51は、この実施の形態における特徴ベクトル暗号化工程S603の処理の流れの一例を示すフローチャート図である。
特徴ベクトル暗号化工程S603では、登録装置104が、特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。特徴ベクトル暗号化工程S603は、例えば、初期化工程S610と、繰り返し工程S611と、乱数生成工程S612と、整数算出工程S613bとを有する。
登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbは、例えば、0以上N未満の整数を成分とするT次元のベクトル(b,b,…,b)(Tは、1以上の整数。)である。暗号化データ生成部206が生成する暗号化特徴ベクトルCは、0以上N未満の整数を成分とするT次元のベクトル(c,c,…,c)である。
最初に、初期化工程S610において、暗号化データ生成部206が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S611において、暗号化データ生成部206が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化データ生成部206は、特徴ベクトル暗号化工程S603を終了する。整数iがT以下である場合、暗号化データ生成部206は、乱数生成工程S612へ処理を進め、暗号化特徴ベクトルCのi番目の成分cを生成する。
乱数生成工程S612において、乱数生成部205が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkである整数Nに基づいて、乱数rを生成する。乱数生成部205が生成する乱数rは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
整数算出工程S613bにおいて、暗号化データ生成部206が、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵pkである整数Nと、特徴ベクトル形成部204が生成した特徴ベクトルbのi番目の成分bと、乱数生成工程S612で特徴ベクトル形成部204が生成した乱数rとに基づいて、暗号化特徴ベクトルCのi番目の成分cを算出する。暗号化データ生成部206が算出する暗号化特徴ベクトルCのi番目の成分cは、特徴ベクトルbのi番目の成分bと整数Nとの積bNに1を加えた和(1+bN)と、乱数rを整数Nで累乗した整数r との積r (1+bN)を、整数Nの2乗で割った余りである。
暗号化データ生成部206は、繰り返し工程S611に処理を戻し、暗号化特徴ベクトルCの次の成分を生成する。
このようにして暗号化データ生成部206が生成した暗号化特徴ベクトルCは、暗号化データ送信部201が認証装置102に対して送信し、認証装置102が受信して格納する。
図52は、この実施の形態における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図である。
第一チャレンジ生成工程S701では、認証装置102が、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、整数算出工程S723bとを有する。
認証装置102の暗号化乱数生成部304が生成する第一チャレンジRは、0以上N未満の整数を成分とするT次元のベクトル(R,R,…,R)である。
最初に、初期化工程S729において、暗号化乱数生成部304が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S721において、暗号化乱数生成部304が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、暗号化乱数生成部304は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、暗号化乱数生成部304は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Rを生成する。
乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nに基づいて、2個の乱数R1,i,R2,iを生成する。乱数生成部303が生成する乱数R1,i,R2,iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322が、記憶装置914を用いて、乱数生成部303が生成した乱数R1,iを記憶する。
元算出工程S723aにおいて、暗号化乱数生成部304が、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成工程S722で乱数生成部303が生成した2個の乱数R1,i,R2,iとに基づいて、第一チャレンジRのi番目の成分Rを算出する。暗号化乱数生成部304が算出する第一チャレンジRのi番目の成分Rは、乱数R1,iと整数Nとの積R1,iNに1を加えた和(1+R1,iN)と、乱数R2,iを整数Nで累乗した整数R2,i との積を、整数Nの2乗で割った余りである。
暗号化乱数生成部304は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。
このようにして暗号化乱数生成部304が生成した第一チャレンジRは、第一チャレンジ送信部311が証明装置101に対して送信し、証明装置101が受信して処理をする。
第一チャレンジ生成工程S701において乱数生成部303が生成する乱数R1,i,R2,i(iは、1以上T以下の整数。)は、全部で2T個である。このうち、T個の乱数R1,i(iは、1以上T以下の整数。)を、乱数記憶部322が記憶する。乱数記憶部322が記憶するT個の乱数R1,iは、平文としての乱数であり、残りのT個の乱数R2,i(iは、1以上T以下の整数。)は、暗号化のための乱数である。第一チャレンジRの各成分Rは、平文としての乱数R1,iを暗号化したものである。
図53は、この実施の形態における暗号化データ埋め込み部217の構成の一例を示す詳細ブロック図である。
証明装置101の暗号化データ埋め込み部217は、例えば、累乗算出部234と、零生成部232と、整数結合部236とを有する。
証明装置101の特徴ベクトル形成部214が生成する特徴ベクトルb’は、登録装置104の特徴ベクトル形成部204が生成する特徴ベクトルbと同様、0以上N未満の整数を成分とするT次元のベクトル(b’,b’,…,b’)である。
乱数生成部215は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkである整数Nに基づいて、T個の乱数r’(iは、1以上T以下の整数。)を生成する。乱数生成部215が生成する乱数r’は、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
累乗算出部234は、処理装置911を用いて、第一チャレンジ受信部211が受信した第一チャレンジRと、特徴ベクトル形成部214が生成した特徴ベクトルb’とに基づいて、累乗ベクトルЯを算出する。累乗算出部234が算出する累乗ベクトルЯは、第一チャレンジRと同様に、0以上N未満の整数を成分とするT次元のベクトル(я,я,…,я)である。累乗算出部234が算出する累乗ベクトルЯのi番目の成分я(iは、1以上T以下の整数。)は、第一チャレンジRのi番目の成分Rを、特徴ベクトルb’のi番目の成分b’で累乗した整数R b’iを、整数Nの2乗で割った余りである。累乗算出部234が算出する累乗ベクトルЯの各成分яは、特徴ベクトルb’の成分b’と、認証装置102が生成した平文としての乱数R1,iとの積を暗号化したものになる。
零生成部232は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵pkである整数Nと、乱数生成部215が生成したT個の乱数r’とに基づいて、暗号化零ベクトルOを生成する。暗号化零ベクトルOは、0以上N未満の整数を成分とするT次元のベクトル(o,o,…,o)である。暗号化零ベクトルOのi番目の成分o(iは、1以上T以下の整数。)は、i番目の乱数r’を整数Nで累乗した整数r’ を、整数Nの2乗で割った余りである。暗号化零ベクトルOの各成分oは、0を暗号化したものである。
整数結合部236は、処理装置911を用いて、累乗算出部234が算出した累乗ベクトルЯと、零生成部232が生成した暗号化零ベクトルOとに基づいて、第一レスポンスR’を算出する。第一レスポンスR’は、0以上N未満の整数を成分とするT次元のベクトル(R’,R’,…,R’)である。第一レスポンスR’のi番目の成分R’(iは、1以上T以下の整数。)は、累乗ベクトルЯのi番目の成分яと、暗号化零ベクトルOのi番目の成分oとの積を、整数Nの2乗で割った余りである。第一レスポンスR’の各成分R’は、第一チャレンジRの成分Rにおいて暗号化されている平文としての乱数R1,iと、特徴ベクトルb’の成分b’との積を暗号化したものになる。
図54は、この実施の形態における第一レスポンス生成工程S707の処理の流れの一例を示すフローチャート図である。
第一レスポンス生成工程S707では、証明装置101が、特徴ベクトルb’と、第一チャレンジRとに基づいて、第一レスポンスR’を生成する。第一レスポンス生成工程S707は、例えば、初期化工程S660と、繰り返し工程S661と、累乗算出工程S662aと、乱数生成工程S663と、零生成工程S664と、整数結合工程S665bとを有する。
最初に、初期化工程S660において、整数結合部236が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S661において、整数結合部236が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、整数結合部236は、第一レスポンス生成工程S707を終了する。整数iがT以下である場合、整数結合部236は、累乗算出工程S662aへ処理を進め、第一レスポンスR’のi番目の成分R’を生成する。
累乗算出工程S662aにおいて、累乗算出部234が、処理装置911を用いて、特徴ベクトル形成部214が生成した特徴ベクトルb’のi番目の成分b’と、第一チャレンジ受信部211が受信した第一チャレンジRのi番目のベクトルRとに基づいて、累乗ベクトルЯのi番目の成分я=R b’i mod Nを算出する。
乱数生成工程S663において、乱数生成部215が、処理装置911を用いて、乱数r’を生成する。
零生成工程S664において、零生成部232が、処理装置911を用いて、乱数生成工程S663で乱数生成部215が生成した乱数r’に基づいて、暗号化零ベクトルOのi番目の成分o=r’i mod Nを算出する。
整数結合工程S665bにおいて、整数結合部236が、処理装置911を用いて、累乗算出工程S662aで累乗算出部234が算出した累乗ベクトルЯのi番目の成分яと、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oとに基づいて、第一レスポンスR’のi番目の成分R’を算出する。
整数結合部236は、繰り返し工程S661に処理を戻し、第一レスポンスR’の次の成分を生成する。
このようにして暗号化データ埋め込み部217が生成した第一レスポンスR’は、第一レスポンス送信部221が認証装置102に対して送信し、認証装置102が受信して処理する。
なお、特徴ベクトルb’の成分b’が0か1かの2つの値しか取らない場合、第一レスポンス生成工程S707の処理は、例えば次のように簡略化できる。
まず、累乗の必要がないので、累乗算出部234を設けず、累乗算出工程S662aを実行しない。
整数結合工程S665bにおいて、整数結合部236は、処理装置911を用いて、特徴ベクトルb’のi番目の成分b’が0であるか1であるかを判定する。特徴ベクトルb’のi番目の成分b’が0である場合、整数結合部236は、処理装置911を用いて、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分o=r’i mod Nを、第一レスポンスR’のi番目の成分R’とする。特徴ベクトルb’のi番目の成分b’が1である場合、元結合部235は、処理装置911を用いて、有限群Gにおける乗法により、零生成工程S664で零生成部232が算出した暗号化零ベクトルOのi番目の成分oと、第一チャレンジ受信部211が受信した第一チャレンジRのi番目の成分Rとの積を、整数Nの2乗で割った余りを算出して、第一レスポンスR’のi番目の成分R’とする。
第一チャレンジRのi番目の成分Rは、乱数R1,iと整数Nとの積に1を加えた整数(1+R1,iN)と、乱数R2,iをN乗した整数との積を、Nで割った余りであるから、第一レスポンスR’のi番目の成分R’は、特徴ベクトルb’のi番目の成分b’と乱数R1,iと整数Nとの積に1を加えた整数(1+b’1,iN)と、乱数R2,iのb’乗と乱数r’との積をN乗した整数との積を、Nで割った余りである。すなわち、第一レスポンスR’のi番目の成分R’は、特徴ベクトルb’のi番目の成分b’と、乱数R1,iとの積を暗号化したものになっている。
暗号化データ抽出部305の構成は、実施の形態4で説明した構成と同様なので、図37を参照して説明する。
認証装置102の暗号化データ抽出部305は、例えば、逆数算出部351と、累乗算出部353とを有する。
認証装置102の暗号化データ抽出部305が生成する暗号化特徴ベクトルC’は、登録装置104の暗号化データ生成部206が生成する暗号化特徴ベクトルCと同様、0以上N未満の整数を成分とするT次元のベクトル(c’,c’,…,c’)である。
逆数算出部351は、処理装置911を用いて、乱数記憶部322が記憶したT個の乱数R1,i(iは、1以上T以下の整数。)に基づいて、Nを法とする整数の乗法における乱数R1,iそれぞれの逆数κ=R1,i −1を算出する。逆数κは、乱数R1,iと逆数κとの積をNで割った余りが1になる整数である。なお、Nが素数ではないので、必ずしも乱数R1,iに逆数κが存在するとは限らない。しかし、Nの素因数である2つの素数p,qが十分大きければ、乱数R1,iが零因子である確率は、非常に小さく、無視できる。
累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’と、逆数算出部351が算出したT個の逆数κとに基づいて、暗号化特徴ベクトルC’を算出する。累乗算出部353が算出する暗号化特徴ベクトルC’のi番目の成分c’(iは、1以上T以下の整数。)は、第一レスポンスR’のi番目の成分R’を、i番目の逆数κで累乗した整数を、整数Nの2乗で割った余りである。暗号化特徴ベクトルC’の各成分c’は、特徴ベクトルb’の成分b’を暗号化したものになる。
図55は、この実施の形態における暗号化生体情報抽出工程S710の処理の流れの一例を示すフローチャート図である。
暗号化生体情報抽出工程S710では、認証装置102が、第一レスポンスR’に基づいて、暗号化特徴ベクトルC’を生成する。暗号化生体情報抽出工程S710は、例えば、初期化工程S730と、繰り返し工程S731と、逆数算出工程S732と、累乗算出工程S733aとを有する。
最初に、初期化工程S730において、累乗算出部353が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S731において、累乗算出部353が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、累乗算出部353は、暗号化生体情報抽出工程S710を終了する。整数iがT以下である場合、累乗算出部353は、逆数算出工程S732へ処理を進め、暗号化特徴ベクトルC’のi番目の成分c’を生成する。
逆数算出工程S732において、逆数算出部351が、処理装置911を用いて、第一チャレンジ生成工程S701で乱数記憶部322が記憶したT個の乱数のうちi番目の乱数R1,iに基づいて、逆数κ=R1,i −1を算出する。
累乗算出工程S733aにおいて、累乗算出部353は、処理装置911を用いて、第一レスポンス受信部331が受信した第一レスポンスR’のi番目の成分R’と、逆数算出工程S732で算出した逆数κとに基づいて、暗号化特徴ベクトルC’のi番目の成分c’=R’ κiを算出する。
累乗算出部353は、繰り返し工程S731に処理を戻し、暗号化特徴ベクトルC’の次の成分を生成する。
このようにして暗号化データ抽出部305が生成した暗号化特徴ベクトルC’は、第二チャレンジ生成工程S712で使われる。
第一レスポンスR’のi番目の成分R’は、整数b’1,iと整数Nとの積に1を加えた整数(1+b’1,iN)と、R2,i b’ir’のN乗との積を、Nで割った余りであるから、暗号化特徴ベクトルC’のi番目の成分c’は、整数κb’1,iと整数Nとの積に1を加えた整数(1+κb’1,iN)と、(R2,i b’ir’κiのN乗との積である。R1,iκ≡1(mod N)であるから、c’は、整数b’と整数Nとの積に1を加えた整数(1+b’N)と、(R2,i b’ir’κiのN乗との積である。すなわち、暗号化特徴ベクトルC’のi番目の成分c’は、特徴ベクトルb’のi番目の成分b’を暗号化したものになる。
図56は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。
認証装置102の暗号化ランダム類似度算出部314が生成する第二チャレンジCは、0以上N未満の(T+1)個の整数c ,c ,…,c ,cからなる。暗号化ランダム類似度算出部314は、例えば、差分算出部361と、並べ替え部385と、暗号化鍵生成部366とを有する。
乱数生成部303は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nに基づいて、2個の乱数s,sを生成する。乱数生成部303が生成する乱数s,sは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数sを記憶する。
差分算出部361は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、暗号化データ抽出部305が抽出した暗号化特徴ベクトルC’とに基づいて、暗号化差分ベクトルΔCを算出する。暗号化差分ベクトルΔCは、0以上N未満の整数を成分とするT次元のベクトル(Δc,Δc,…,Δc)である。暗号化差分ベクトルΔCのi番目の成分Δc(iは、1以上T以下の整数。)は、次の2つの整数のなかから、ランダムに選択したいずれかの整数である。Δcの第一の候補となる整数は、Nを法とする整数の乗法における暗号化特徴ベクトルCのi番目の成分cの逆数c −1と、暗号化特徴ベクトルC’のi番目の成分c’との積を、Nで割った余りである。Δcの第二の候補となる整数は、Nを法とする整数の乗法における暗号化特徴ベクトルC’のi番目の成分c’の逆数c’ −1と、暗号化特徴ベクトルCのi番目の成分cとの積を、Nで割った余りである。すなわち、第一の候補と第二の候補とは、Nを法とする整数の乗法における逆数の関係にある。暗号化差分ベクトルΔCの各成分Δcは、特徴ベクトルbの成分bと特徴ベクトルb’の成分b’との差b−b’の正負をランダムに変えたものを暗号化したものである。
並べ替え部385は、処理装置911を用いて、差分算出部361が算出した暗号化差分ベクトルΔCに基づいて、第二チャレンジCの一部であるT個の整数c (iは、1以上T以下の整数。)を生成する。整数c は、0以上N未満の整数である。T個の整数c は、暗号化差分ベクトルΔCのT個の成分Δcの順序をランダムに並べ替えたものである。
暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成した2つの乱数s,sとに基づいて、第二チャレンジCの一部である1個の整数cを生成する。整数cは、0以上N未満の整数である。整数cは、乱数sと整数Nとの積に1を加えた整数(1+sN)と、乱数sを整数Nで累乗した整数s との積を、整数Nの2乗で割った余りである。整数cは、乱数生成部303が算出した乱数sを暗号化したものである。
図57は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程S712では、認証装置102が、2つの暗号化特徴ベクトルC,C’に基づいて、第二チャレンジCを生成する。第二チャレンジ生成工程S712は、例えば、初期化工程S740と、繰り返し工程S741と、乱数生成工程S757と、2つの差分算出工程S742a,S742bと、乱数生成工程S758と、第二チャレンジ設定工程S759と、乱数生成工程S749と、暗号化鍵生成工程S752とを有する。
最初に、初期化工程S740において、並べ替え部385が、処理装置911を用いて、整数iを0に初期化する。また、並べ替え部385は、処理装置911を用いて、集合Sを、1以上T以下のT個の整数を元とする集合に初期化する。
繰り返し工程S741において、並べ替え部385が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、並べ替え部385は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、並べ替え部385は、乱数生成工程S757へ処理を進める。
乱数生成工程S757において、乱数生成部303が、処理装置911を用いて、乱数tを生成する。乱数tは、0または1から一様ランダムに選択した整数である。
乱数tが0である場合、差分算出部361は、差分算出工程S742aへ処理を進める。
乱数tが1である場合、差分算出部361は、差分算出工程S742bへ処理を進める。
差分算出工程S742aにおいて、差分算出部361が、処理装置911を用いて、暗号化特徴ベクトルCのi番目の成分cに基づいて、Nを法とする整数の乗法における整数cの逆数c −1を算出する。差分算出部361は、処理装置911を用いて、算出した逆数c −1と、暗号化特徴ベクトルC’のi番目の成分c’とに基づいて、整数c’と逆数c −1との積を、整数Nの2乗で割った余りを算出して、暗号化差分ベクトルΔCのi番目の成分Δcとする。差分算出部361は、乱数生成工程S758へ処理を進める。
差分算出工程S742bにおいて、差分算出部361が、処理装置911を用いて、暗号化特徴ベクトルC’のi番目の成分c’に基づいて、Nを法とする整数の乗法における整数c’の逆数c’ −1を算出する。差分算出部361は、処理装置911を用いて、算出した逆数c’ −1と、暗号化特徴ベクトルCのi番目の成分cとに基づいて、整数cと逆数c’ −1との積を、整数Nの2乗で割った余りを算出して、暗号化差分ベクトルΔCのi番目の成分Δcとする。差分算出部361は、乱数生成工程S758へ処理を進める。
乱数生成工程S758において、乱数生成部303が、処理装置911を用いて、乱数jを生成する。乱数jは、集合Sの元のなかから一様ランダムに選択した整数である。並べ替え部385は、処理装置911を用いて、集合Sの元から、乱数jを取り除く。
第二チャレンジ設定工程S759において、並べ替え部385は、処理装置911を用いて、暗号化差分ベクトルΔCのi番目の成分Δcを、第二チャレンジCのj番目の整数c jiにする。
並べ替え部385は、繰り返し工程S741に処理を戻す。
乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、2つの乱数s,sを生成する。
暗号化鍵生成工程S752において、暗号化鍵生成部366が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した乱数s,sに基づいて、第二チャレンジCの(T+1)番目の整数c=s (1+sN) mod Nを算出する。
このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジCは、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。
図58は、この実施の形態における復号部404の構成の一例を示す詳細ブロック図である。
復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482と、二乗算出部473と、整数結合部485とを有する。
逆数算出部481は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、秘密鍵記憶部413が記憶した秘密鍵skである整数λとに基づいて、Nを法とする整数の乗法における整数λの逆数λ−1を算出する。
復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジCと、逆数算出部481が算出した逆数λ−1とに基づいて、(T+1)個の整数z,z’(iは、1以上T以下の整数。)を算出する。整数z,z’は、0以上N未満の整数である。i番目の整数z(iは、1以上T+1以下の整数。)は、第二チャレンジCのi番目の整数c を復号した整数である。整数z’は、第二チャレンジCの(T+1)番目の整数cを復号した整数である。したがって、整数zは、特徴ベクトルbの成分と特徴ベクトルb’の対応する成分との差を表わす。また、整数z’は、認証装置102の乱数生成部303が生成した乱数sと等しい。
第二チャレンジCの1番目からT番目までの整数c は、暗号化差分ベクトルΔCの成分の順序をランダムに並べ替えたものであるから、復号装置103は、整数zが特徴ベクトルのどの成分の差であるかがを知ることができない。また、暗号化差分ベクトルΔCの成分Δcは、正負をランダムに変えてあるので、復号装置103は、2つの特徴ベクトルb,b’のうち、その成分が大きいのがどちらかを知ることもできない。
二乗算出部473は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出したT個の整数zとに基づいて、二乗値z’(iは、1以上T以下の整数。)を算出する。二乗値z’は、0以上N未満の整数である。i番目の二乗値z’(iは、1以上T以下の整数。)は、i番目の整数zの2乗を、整数Nで割った余りである。
整数結合部485は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出した整数z’と、二乗算出部473が算出したT個の整数z’とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。整数結合部485が算出する第二レスポンスZは、T個の整数z’と、整数z’とを合計した総和を、整数Nで割った余りである。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間のユークリッド距離の二乗Σ[(b−b’]と、乱数sとの和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間のユークリッド距離の二乗を、一時鍵としての乱数uで暗号化したものである。
図59は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程S716では、復号装置103が、第二チャレンジCから、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、逆数算出工程S561aと、復号整数算出工程S566aと、初期化工程S560と、繰り返し工程S562と、復号整数算出工程S563aと、二乗算出工程S564と、整数結合工程S565aとを有する。
最初に、逆数算出工程S561aにおいて、逆数算出部481が、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λの逆数λ−1を算出する。なお、逆数算出部481は、処理装置911を用いて、あらかじめ(例えばセットアップ処理S500で)逆数λ−1を算出し、記憶装置914を用いて、算出した逆数λ−1を記憶しておく構成であってもよい。
復号整数算出工程S566aにおいて、復号整数算出部482が、処理装置911を用いて、逆数算出工程S561aで逆数算出部481が算出した逆数λ−1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジCの最後の整数cを復号して、整数z’を算出する。例えば、復号整数算出部482は、整数cを整数λで累乗した整数から1を差し引いた整数(c^λ−1)を整数Nの2乗で割った余りを、Nで割った商yを算出する。復号整数算出部482は、算出した商yと逆数λ−1との積yλ−1をNで割った余りを算出して、整数z’とする。
初期化工程S560において、整数結合部485が、処理装置911を用いて、整数iを0に初期化し、第二レスポンスZを、復号整数算出工程S566aで復号整数算出部482が算出した整数z’に初期化する。
繰り返し工程S562において、整数結合部485が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二レスポンスZが完成したので、整数結合部485は、第二レスポンス生成工程S716を終了する。整数iがT以下である場合、整数結合部485は、復号整数算出工程S563aへ処理を進める。
復号整数算出工程S563aにおいて、復号整数算出部482が、処理装置911を用いて、逆数算出工程S561aで逆数算出部481が算出した逆数λ−1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジCのi番目の整数c を復号して、i番目の整数zを算出する。例えば、復号整数算出部482は、整数c を整数λで累乗した整数から1を差し引いた整数(c λ−1)を整数Nの2乗で割った商yを算出する。復号整数算出部482は、算出した整数yと逆数λ−1との積yλ−1をNで割った余りを算出して、整数zとする。
二乗算出工程S564において、二乗算出部473が、処理装置911を用いて、復号整数算出工程S563aで復号整数算出部482が算出したi番目の整数zに基づいて、i番目の二乗値z’を算出する。
整数結合工程S565aにおいて、整数結合部485が、処理装置911を用いて、整数Nを法とする整数の加法により、二乗算出工程S564で二乗算出部473が算出したi番目の二乗値z’を、第二レスポンスZに結合する。
整数結合部485は、繰り返し工程S562に処理を戻し、第二チャレンジCの次の整数を処理する。
このようにして復号部404が生成した第二レスポンスZは、第二レスポンス送信部412が認証装置102に対して送信し、認証装置102が受信して処理する。
図60は、この実施の形態における平文類似度算出工程S719の処理の流れの一例を示すフローチャート図である。
平文類似度算出工程S719では、認証装置102が、第二レスポンスZから、類似度dを算出する。平文類似度算出工程S719は、例えば、整数結合工程S692aを有する。
整数結合工程S692aにおいて、認証装置102の平文類似度抽出部315が、処理装置911を用いて、乱数記憶部322が記憶した乱数sと、第二レスポンス受信部341が受信した第二レスポンスZとに基づいて、類似度dを算出する。類似度dは、0以上N未満の整数である。平文類似度抽出部315が算出する類似度dは、第二レスポンスZから乱数sを差し引いた差を、Nで割った余りである。
平文類似度抽出部315が算出した類似度dに基づいて、判定部306が、2つの特徴ベクトルb,b’が似ているか否かを判定することにより、特徴ベクトルbで表わされる生体情報を持つ人物と、特徴ベクトルb’で表わされる生体情報を持つ人物とが同一人物であるか否かを判定する。判定部306は、類似度dが閾値dより小さい場合に、2つの特徴ベクトルb,b’が似ていると判定する。
図61は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第二チャレンジ生成工程S712において、認証装置102が、2つの暗号化特徴ベクトルC,C’から第二チャレンジCを算出することにより、T個のδ=±(b−b’)(i及びjは、1以上T以下の整数。)と、1個のδ=sとを算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。また、復号装置103に特徴ベクトルb,b’についての情報が渡らないよう、δは、正負をランダムに変え、更に、順序もランダムに並べ替える。
第二段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジCから第二レスポンスZを算出することにより、ζ=Σ[δ ]+δ(iは、1以上T以下の整数。)を算出する。第一項Σ[δ ]は、類似度dであり、第二項δは、暗号化を意味する。すなわち、復号装置103は、類似度dを算出して、δ=sを使って、暗号化する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、第一段階でのランダム化により、復号装置103は、特徴ベクトルb,b’についての情報を得ることができない。
第三段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−sを算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
なお、暗号方式は、Paillier暗号方式に限らず、岡本−高島暗号方式、BGN暗号方式、Gentry暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。
実施の形態7.
実施の形態7について、図62〜図68を用いて説明する。
なお、実施の形態1〜実施の形態6と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、第一チャレンジRのなかに暗号化特徴ベクトルCに由来する比較データbについての情報を埋め込み、証明装置101に、類似度算出の最初の段階の計算をさせる構成について説明する。
なお、この実施の形態では、実施の形態6で説明したPaillier暗号方式を使い、実施の形態3と同様、類似度dとして、内積Σ[bb’]を算出する場合について説明する。
図62は、この実施の形態における暗号化乱数生成部304の構成の一例を示す詳細ブロック図である。
認証装置102の暗号化乱数生成部304は、例えば、累乗算出部334と、零生成部332と、整数結合部336とを有する。
乱数生成部303は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nに基づいて、2T個の乱数R1,i,R2,i(iは、1以上T以下の整数。)を生成する。乱数生成部303が生成する乱数R1,i,R2,iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうちT個の乱数R1,i(iは、1以上T以下の整数。)を記憶する。
累乗算出部334は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCと、乱数生成部303が生成したT個の乱数R1,iとに基づいて、累乗ベクトルЯ’を算出する。累乗算出部334が算出する累乗ベクトルЯ’は、0以上N未満の整数を成分とするT次元のベクトル(я’,я’,…,я’)である。累乗算出部334が算出する累乗ベクトルЯ’のi番目の成分я’(iは、1以上T以下の整数。)は、暗号化特徴ベクトルCのi番目の成分cを、i番目の乱数R1,iで累乗した整数を、整数Nの2乗で割った余りである。累乗算出部334が算出する累乗ベクトルЯ’の各成分я’は、特徴ベクトルbの成分bと、平文としての乱数R1,iとの積を暗号化したものになる。
零生成部332は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成したT個の乱数R2,iとに基づいて、暗号化零ベクトルO’を生成する。暗号化零ベクトルO’は、0以上N未満の整数を成分とするT次元のベクトル(o’,o’,…,o’)である。暗号化零ベクトルO’のi番目の成分o’(iは、1以上T以下の整数。)は、i番目の乱数R2,iを整数Nで累乗した整数R2,i を、整数Nの2乗で割った余りである。暗号化零ベクトルO’の各成分o’は、0を暗号化したものである。
整数結合部336は、処理装置911を用いて、累乗算出部334が算出した累乗ベクトルЯ’と、零生成部332が生成した暗号化零ベクトルO’とに基づいて、第一チャレンジRを算出する。第一チャレンジRは、0以上N未満の整数を成分とするT次元のベクトル(R,R,…,R)である。第一チャレンジRのi番目の成分R(iは、1以上T以下の整数。)は、累乗ベクトルЯ’のi番目の成分я’と、暗号化零ベクトルO’のi番目の成分o’との積を、整数Nの2乗で割った余りである。第一チャレンジRの各成分Rは、特徴ベクトルbの成分bと、平文としての乱数R1,iとの積を暗号化したものになる。
図63は、この実施の形態における第一チャレンジ生成工程S701の処理の流れの一例を示すフローチャート図である。
第一チャレンジ生成工程S701では、認証装置102が、暗号化特徴ベクトルCに基づいて、第一チャレンジRを生成する。第一チャレンジ生成工程S701は、例えば、初期化工程S729と、繰り返し工程S721と、乱数生成工程S722と、累乗算出工程S724と、零生成工程S725と、整数結合工程S726とを有する。
最初に、初期化工程S729において、整数結合部336が、処理装置911を用いて、整数iを0に初期化する。
繰り返し工程S721において、整数結合部336が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、整数結合部336は、第一チャレンジ生成工程S701を終了する。整数iがT以下である場合、整数結合部336は、乱数生成工程S722へ処理を進め、第一チャレンジRのi番目の成分Rを生成する。
乱数生成工程S722において、乱数生成部303が、処理装置911を用いて、2個の乱数R1,i,R2,iを生成する。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数R1,iを記憶する。
累乗算出工程S724において、累乗算出部334が、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのi番目の成分cと、乱数生成工程S722で乱数生成部303が生成した乱数R1,iとに基づいて、累乗ベクトルЯ’のi番目の成分я’を算出する。
零生成工程S725において、零生成部332が、処理装置911を用いて、乱数生成工程S722で乱数生成部303が生成した乱数R2,iに基づいて、暗号化零ベクトルO’のi番目の成分o’を算出する。
整数結合工程S726において、整数結合部336が、処理装置911を用いて、累乗算出工程S724aで累乗算出部334が算出した累乗ベクトルЯ’のi番目の成分я’と、零生成工程S725で零生成部332が算出した暗号化零ベクトルO’のi番目の成分o’とに基づいて、第一チャレンジRのi番目の成分Rを算出する。
整数結合部336は、繰り返し工程S721に処理を戻し、第一チャレンジRの次の成分を生成する。
このようにして暗号化乱数生成部304が生成した第一チャレンジRは、第一チャレンジ送信部311が証明装置101に対して送信し、証明装置101が受信して処理をする。
証明装置101の暗号化データ埋め込み部217は、実施の形態6と同じ構成であるが、第一チャレンジRの意味が異なるため、暗号化データ埋め込み部217が生成する第一レスポンスR’の意味も、実施の形態6とは異なる。
すなわち、第一レスポンスR’のi番目の成分R’(iは、1以上T以下の整数。)は、特徴ベクトルbのi番目の成分bと、特徴ベクトルb’のi番目の成分b’と、乱数R1,iとの積を暗号化したものである。
認証装置102の暗号化データ抽出部305も、実施の形態6と同じ構成である。
暗号化データ抽出部305が生成する暗号化特徴ベクトルC’のi番目の成分c’(iは、1以上T以下の整数。)は、特徴ベクトルb’のi番目の成分b’の暗号化ではなく、2つの特徴ベクトルb,b’のi番目の成分b,b’の積bb’を暗号化したものである。
図64は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。
認証装置102の暗号化ランダム類似度算出部314が生成する第二チャレンジCは、0以上N未満の(T+1)個の整数c ,c ,…,c ,cからなる。暗号化ランダム類似度算出部314は、例えば、並べ替え部385と、暗号化鍵生成部366とを有する。
乱数生成部303は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nに基づいて、2個の乱数s,sを生成する。乱数生成部303が生成する乱数s,sは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。
乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、1個の乱数sを記憶する。
並べ替え部385は、処理装置911を用いて、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’に基づいて、第二チャレンジCの一部であるT個の整数c (iは、1以上T以下の整数。)を生成する。整数c は、0以上N未満の整数である。T個の整数c は、暗号化特徴ベクトルC’のT個の成分Δcの順序をランダムに並べ替えたものである。
暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成した2つの乱数s,sとに基づいて、第二チャレンジCの一部である1個の整数cを生成する。整数cは、0以上N未満の整数である。整数cは、乱数sと整数Nとの積に1を加えた整数(1+sN)と、乱数sを整数Nで累乗した整数s との積を、整数Nの2乗で割った余りである。整数cは、乱数生成部303が算出した乱数sを暗号化したものである。
図65は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程S712の処理の流れは、実施の形態6とほとんど同じであるが、2つだけ異なる点がある。
第一点は、乱数生成工程S757と、2つの差分算出工程S742a,S742bとがなく、繰り返し工程S741で整数iがT以下である場合に、乱数生成工程S758へ処理を進める点である。
第二点は、第二チャレンジ設定工程S759の処理である。第二チャレンジ設定工程S759において、並べ替え部385は、処理装置911を用いて、暗号化特徴ベクトルC’のi番目の成分Δcを、第二チャレンジCのj番目の整数c jiにする。
図66は、この実施の形態における復号部404の構成の一例を示す詳細ブロック図である。
復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482と、整数結合部485とを有する。
逆数算出部481は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、秘密鍵記憶部413が記憶した秘密鍵skである整数λとに基づいて、Nを法とする整数の乗法における整数λの逆数λ−1を算出する。
復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジCと、逆数算出部481が算出した逆数λ−1とに基づいて、(T+1)個の整数z,z’(iは、1以上T以下の整数。)を算出する。整数z,z’は、0以上N未満の整数である。i番目の整数z(iは、1以上T+1以下の整数。)は、第二チャレンジCのi番目の整数c を復号した整数である。整数z’は、第二チャレンジCの(T+1)番目の整数cを復号した整数である。したがって、整数zは、特徴ベクトルbの成分と特徴ベクトルb’の対応する成分との積を表わす。また、整数z’は、認証装置102の乱数生成部303が生成した乱数sと等しい。
整数結合部485は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出した(T+1)個の整数z,z’とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。整数結合部485が算出する第二レスポンスZは、T個の整数zと、整数z’とを合計した総和を、整数Nで割った余りである。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積Σ[bb’]と、乱数sとの和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積を、一時鍵としての乱数sで暗号化したものである。
図67は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程S716の処理の流れは、実施の形態6とほとんど同じであるが、2つだけ異なる点がある。
第一点は、二乗算出工程S564がなく、復号整数算出工程S563aの次に、整数結合工程S565aへ処理を進める点である。
第二点は、整数結合工程S565aの処理である。整数結合工程S565aにおいて、整数結合部485は、処理装置911を用いて、整数Nを法とする加法により、復号整数算出工程S563aで復号整数算出部482が算出したi番目の整数zを、第二レスポンスZに結合する。
このようにして復号部404が生成した第二レスポンスZは、第二レスポンス送信部412が認証装置102に対して送信し、認証装置102が受信して処理する。
認証装置102の平文類似度抽出部315は、実施の形態6と同じ構成である。
平文類似度抽出部315は、類似度dとして、2つの特徴ベクトルb,b’の内積Σ[bb’]を算出する。
判定部306は、離散対数算出部373が算出した類似度dが、所定の閾値dより大きい場合に、2つの特徴ベクトルb,b’が似ていると判定する。
これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。
図68は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。
なお、ρは、第一レスポンスR’において暗号化されている情報を示す。
第一段階は、第二チャレンジ生成工程S712ではなく、第一レスポンス生成工程S707である。第一レスポンス生成工程S707において、証明装置101が、第一チャレンジRから第一レスポンスR’を算出することにより、T個のρ=bb’を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、証明装置101は、特徴ベクトルbについての情報を得ることができない。
第二段階として、第二チャレンジ生成工程S712において、認証装置102が、暗号化特徴ベクトルC’から第二チャレンジCを算出することにより、T個のδ(jは、1以上T以下の整数。)と、1個のδ=sとを算出する。δは、復号装置103に特徴ベクトルb,b’についての情報が渡らないよう、ρの順序を入れ換えたものなので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第三段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジCから第二レスポンスZを算出することにより、ζ=Σ[δ]+δ(iは、1以上T以下の整数。)を算出する。第一項Σ[δ]は、類似度dであり、第二項δは、暗号化を意味する。すなわち、復号装置103は、類似度dを算出して、δ=sを使って、暗号化する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、第二段階でのランダム化により、復号装置103は、特徴ベクトルb,b’についての情報を得ることができない。
第四段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−sを算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
なお、暗号方式は、Paillier暗号方式に限らず、岡本−高島暗号方式、BGN暗号方式、Gentry暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。
なお、特徴ベクトルb,b’の各成分の値が、0か1かのいずれかである場合、2つの特徴ベクトルb,b’の成分の積bb’は、0か1かのいずれかの値になるから、復号装置103の構成は、実施の形態6で説明した構成と同じであってもよい。そうすれば、証明装置101、復号装置103、登録装置104の構成は、実施の形態6と同じになり、認証装置102の構成だけが異なる。したがって、認証装置102を、実施の形態6で説明した構成と、この実施の形態で説明した構成とを切り替えることができる構成とすることにより、生体認証システム100の他の装置に変更を加えることなく、ユークリッド距離と内積との2種類の類似度を算出することができる。
実施の形態8.
実施の形態8について、図69〜図72を用いて説明する。
なお、実施の形態1〜実施の形態7と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、実施の形態7で説明した構成の変形例について説明する。
暗号化特徴ベクトルC’は、0以上N未満の整数を成分とするT次元のベクトル(c’,c’,…,c’)である。暗号化特徴ベクトルC’のi番目の成分c(iは、1以上T以下の整数。)は、特徴ベクトルbのi番目の成分bと、特徴ベクトルb’のi番目の成分b’との積bb’を暗号化したものである。
図69は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。
認証装置102の暗号化ランダム類似度算出部314は、例えば、撹乱ベクトル生成部362と、整数結合部386とを有する。
乱数生成部303は、処理装置911を用いて、2T個の乱数t1,i,t2,i(iは、1以上T以下の整数。)を生成する。乱数t1,i,t2,iは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成したT個の乱数t1,iの合計値s=Σ[t1,i]を記憶する。なお、乱数記憶部322は、乱数生成部303が生成したT個の乱数t1,iをそのまま記憶する構成であってもよいが、あとで必要になるのは、合計値だけなので、合計値を記憶する構成のほうが、記憶量が少なくて済む。
撹乱ベクトル生成部362は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成した2T個の乱数t1,i,t2,iとに基づいて、撹乱ベクトルтを算出する。撹乱ベクトルтは、0以上N未満の整数を成分とするT次元ベクトル(t,t,…,t)である。撹乱ベクトルтのi番目の成分t(iは、1以上T以下の整数。)は、乱数t1,iと整数Nとの積に1を加えた和(1+t1,iN)と、乱数t2,iを整数Nで累乗した整数t2,i との積を、整数Nの2乗で割った余りである。撹乱ベクトルтの各成分tは、乱数t1,iを暗号化したものである。
整数結合部386は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’と、撹乱ベクトル生成部362が算出した撹乱ベクトルтとに基づいて、第二チャレンジCを生成する。第二チャレンジCは、T個の整数c ,c ,…,c からなる。T個の整数c は、0以上N未満の整数である。第二チャレンジCのi番目の整数c (iは、1以上T以下の整数。)は、暗号化特徴ベクトルC’のi番目の成分c’と、撹乱ベクトルтのi番目の成分tとの積を、整数Nの2乗で割った余りである。第二チャレンジCの各整数c は、暗号化特徴ベクトルC’の成分で暗号化されているbb’と、乱数t1,iとの和bb’+t1,iを暗号化したものである。
なお、第二チャレンジCのT個の整数c の順序は、特徴ベクトルb,b’の成分の順序と異なっていてもよい。
図70は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程S712では、認証装置102が、暗号化特徴ベクトルC’に基づいて、第二チャレンジCを生成する。第二チャレンジ生成工程S712は、例えば、初期化工程S740と、繰り返し工程S741と、乱数生成工程S743と、撹乱ベクトル生成工程S744と、整数結合工程S760とを有する。
最初に、初期化工程S740において、整数結合部386が、処理装置911を用いて、整数iを0に初期化する。乱数記憶部322が、処理装置911を用いて、整数sを0に初期化し、記憶装置914を用いて、初期化した整数sを記憶する。
繰り返し工程S741において、整数結合部386が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、整数結合部386は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、整数結合部386は、乱数生成工程S743へ処理を進め、第二チャレンジCのi番目の整数c を生成する。
乱数生成工程S743において、乱数生成部303が、処理装置911を用いて、2個の乱数t1,i,t2,iを生成する。乱数記憶部322は、処理装置911を用いて、乱数生成部303が生成した乱数t1,iを、整数sに加え、記憶装置914を用いて、算出した整数sを記憶する。
撹乱ベクトル生成工程S744において、撹乱ベクトル生成部362が、処理装置911を用いて、乱数生成工程S743で乱数生成部303が生成した2つの乱数t1,i,t2,iに基づいて、撹乱ベクトルтのi番目の成分tを算出する。
整数結合工程S760において、整数結合部386が、処理装置911を用いて、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’のi番目の成分c’と、撹乱ベクトル生成工程S744で撹乱ベクトル生成部362が算出した撹乱ベクトルтのi番目の成分tとに基づいて、第二チャレンジCのi番目の整数c を算出する。
整数結合部386は、繰り返し工程S741に処理を戻し、第二チャレンジCの次の整数を生成する。
このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジCは、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。
復号装置103の復号部404の構成は、実施の形態7で説明した構成と同様なので、図66を参照して説明する。
復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482と、整数結合部485とを有する。
逆数算出部481は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、秘密鍵記憶部413が記憶した秘密鍵skである整数λとに基づいて、Nを法とする整数の乗法における整数λの逆数λ−1を算出する。
復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジCと、逆数算出部481が算出した逆数λ−1とに基づいて、T個の整数z(iは、1以上T以下の整数。)を算出する。整数zは、0以上N未満の整数である。i番目の整数z(iは、1以上T+1以下の整数。)は、第二チャレンジCのi番目の整数c を復号した整数である。整数zは、2つの特徴ベクトルbの対応する成分b,b’の積と、乱数t1,iとの和bb’+t1,iと等しい。
整数結合部485は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、復号整数算出部482が算出したT個の整数zとに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。整数結合部485が算出する第二レスポンスZは、T個の整数zを合計した総和を、整数Nで割った余りである。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積Σ[bb’]と、乱数t1,iの合計値s=Σ[t1,i]との和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積を、一時鍵としての乱数sで暗号化したものである。
図71は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程S716の処理の流れは、実施の形態7とほとんど同じであるが、2つ異なる点がある。
第一点として、復号整数算出工程S566a、整数結合工程S568aがなく、逆数算出工程S561aの次に、初期化工程S560を実行する。
第二点として、初期化工程S560で、整数結合部485が、処理装置911を用いて、第二レスポンスZを0に初期化する。
このようにして復号部404が生成した第二レスポンスZは、第二レスポンス送信部412が認証装置102に対して送信し、認証装置102が受信して処理する。
認証装置102の平文類似度抽出部315は、実施の形態6と同じ構成である。
平文類似度抽出部315は、類似度dとして、2つの特徴ベクトルb,b’の内積Σ[bb’]を算出する。
判定部306は、離散対数算出部373が算出した類似度dが、所定の閾値dより大きい場合に、2つの特徴ベクトルb,b’が似ていると判定する。
これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。
図72は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第一レスポンス生成工程S707において、証明装置101が、第一チャレンジRから第一レスポンスR’を算出することにより、T個のρ=bb’を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、証明装置101は、特徴ベクトルbについての情報を得ることができない。
第二段階として、第二チャレンジ生成工程S712において、認証装置102が、暗号化特徴ベクトルC’から第二チャレンジCを算出することにより、T個のδ=ρ+t1,i(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’や類似度についての情報を得ることができない。
第三段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジCから第二レスポンスZを算出することにより、ζ=Σ[δ](iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の秘密鍵によって復号された状態で行われるが、復号装置103は、一時鍵s=Σ[t1,i]を知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵sで暗号化された状態で行われる。
第四段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−sを算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
なお、暗号方式は、Paillier暗号方式に限らず、岡本−高島暗号方式、BGN暗号方式、Gentry暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。
実施の形態9.
実施の形態9について、図73〜図77を用いて説明する。
なお、実施の形態1〜実施の形態8と共通する部分については、同一の符号を付し、説明を省略する。
この実施の形態では、実施の形態7で説明した構成の別の変形例について説明する。
暗号化特徴ベクトルC’は、0以上N未満の整数を成分とするT次元のベクトル(c’,c’,…,c’)である。暗号化特徴ベクトルC’のi番目の成分c(iは、1以上T以下の整数。)は、特徴ベクトルbのi番目の成分bと、特徴ベクトルb’のi番目の成分b’との積bb’を暗号化したものである。
図73は、この実施の形態における暗号化ランダム類似度算出部314の構成の一例を示す詳細ブロック図である。
認証装置102の暗号化ランダム類似度算出部314は、例えば、暗号化鍵生成部366と、整数結合部386とを有する。
乱数生成部303は、処理装置911を用いて、2個の乱数s,sを生成する。乱数s,sは、0以上N未満の整数のなかから、一様ランダムに選択した整数である。乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数sを記憶する。
暗号化鍵生成部366は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、乱数生成部303が生成した乱数s,sとに基づいて、暗号化鍵цを算出する。暗号化鍵цは、0以上N未満の整数である。暗号化鍵цは、乱数sと整数Nとの積に1を加えた和(1+sN)と、乱数sを整数Nで累乗した整数s との積を、整数Nの2乗で割った余りである。暗号化鍵цは、平文としての乱数sを暗号化したものである。
整数結合部386は、処理装置911を用いて、公開鍵記憶部302が記憶した公開鍵pkである整数Nと、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’と、暗号化鍵生成部366が算出した暗号化鍵цとに基づいて、第二チャレンジCを生成する。第二チャレンジCは、0以上N未満の整数である。第二チャレンジCは、暗号化特徴ベクトルC’のT個の成分c’と、暗号化鍵цとの総積Π[c’]цを、整数Nの2乗で割った余りである。第二チャレンジCは、暗号化特徴ベクトルC’の成分で暗号化されているbb’の総和(すなわち、2つの特徴ベクトルb,b’の内積)と、平文としての乱数sとの和Σ[bb’]+sを暗号化したものである。
図74は、この実施の形態における第二チャレンジ生成工程S712の処理の流れの一例を示すフローチャート図である。
第二チャレンジ生成工程S712では、認証装置102が、暗号化特徴ベクトルC’に基づいて、第二チャレンジCを生成する。第二チャレンジ生成工程S712は、例えば、乱数生成工程S749と、暗号化鍵生成工程S752と、初期化工程S740と、繰り返し工程S741と、整数結合工程S760とを有する。
最初に、乱数生成工程S749において、乱数生成部303が、処理装置911を用いて、2個の乱数s,sを生成する。乱数記憶部322は、記憶装置914を用いて、整数sを記憶する。
暗号化鍵生成工程S752において、暗号化鍵生成部366が、処理装置911を用いて、乱数生成工程S749で乱数生成部303が生成した2つの乱数s,sに基づいて、暗号化鍵цを算出する。
初期化工程S740において、整数結合部386が、処理装置911を用いて、整数iを0に初期化し、第二チャレンジCを、暗号化鍵生成工程S752で暗号化鍵生成部366が算出した暗号化鍵цに初期化する。
繰り返し工程S741において、整数結合部386が、処理装置911を用いて、整数iに1を加える。整数iがTより大きい場合、第二チャレンジCが完成したので、整数結合部386は、第二チャレンジ生成工程S712を終了する。整数iがT以下である場合、整数結合部386は、整数結合工程S760へ処理を進める。
整数結合工程S760において、整数結合部386が、処理装置911を用いて、整数Nの2乗を法とする整数の乗法により、暗号化データ抽出部305が生成した暗号化特徴ベクトルC’のi番目の成分c’を、第二チャレンジCに結合する。
整数結合部386は、繰り返し工程S741に処理を戻す。
このようにして暗号化ランダム類似度算出部314が算出した第二チャレンジCは、第二チャレンジ送信部321が復号装置103に対して送信し、復号装置103が受信して処理する。
図75は、この実施の形態における復号部404の構成の一例を示す詳細ブロック図である。
復号装置103の復号部404は、例えば、逆数算出部481と、復号整数算出部482とを有する。
逆数算出部481は、処理装置911を用いて、公開鍵記憶部403が記憶した公開鍵pkである整数Nと、秘密鍵記憶部413が記憶した秘密鍵skである整数λとに基づいて、Nを法とする整数の乗法における整数λの逆数λ−1を算出する。
復号整数算出部482は、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λと、第二チャレンジ受信部402が受信した第二チャレンジCと、逆数算出部481が算出した逆数λ−1とに基づいて、第二レスポンスZを算出する。第二レスポンスZは、0以上N未満の整数である。第二レスポンスZは、第二チャレンジCを復号した整数である。第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積Σ[bb’]と、乱数sとの和に等しい。すなわち、第二レスポンスZは、特徴ベクトルbと特徴ベクトルb’との間の内積を、一時鍵としての乱数sで暗号化したものである。
図76は、この実施の形態における第二レスポンス生成工程S716の処理の流れの一例を示すフローチャート図である。
第二レスポンス生成工程S716では、復号装置103が、第二チャレンジCから、第二レスポンスZを生成する。第二レスポンス生成工程S716は、例えば、逆数算出工程S561aと、復号整数算出工程S563aとを有する。
最初に、逆数算出工程S561aにおいて、逆数算出部481が、処理装置911を用いて、秘密鍵記憶部413が記憶した秘密鍵skである整数λの逆数λ−1を算出する。
復号整数算出工程S563aにおいて、復号整数算出部482が、処理装置911を用いて、逆数算出工程S561aで逆数算出部481が算出した逆行列λ−1などに基づいて、第二チャレンジ受信部402が受信した第二チャレンジCを復号して、第二レスポンスZを算出する。例えば、復号整数算出部482は、第二チャレンジCを整数λで累乗した整数から1を差し引いた整数(C^λ−1)を整数Nの二乗で割った商yを算出する。復号整数算出部482は、算出した商yと逆数λ−1との積yλ−1を整数Nで割った余りを算出して、第二レスポンスZとする。
このようにして復号部404が生成した第二レスポンスZは、第二レスポンス送信部412が認証装置102に対して送信し、認証装置102が受信して処理する。
認証装置102の平文類似度抽出部315は、実施の形態6と同じ構成である。
平文類似度抽出部315は、類似度dとして、2つの特徴ベクトルb,b’の内積Σ[bb’]を算出する。
判定部306は、離散対数算出部373が算出した類似度dが、所定の閾値dより大きい場合に、2つの特徴ベクトルb,b’が似ていると判定する。
これにより、特徴点の一致数を指標として、2つの特徴ベクトルb,b’が類似しているか否かを判定することができる。
図77は、この実施の形態の生体認証システム100における類似度算出の計算手順を示すフローチャート図である。
第一段階として、第一レスポンス生成工程S707において、証明装置101が、第一チャレンジRから第一レスポンスR’を算出することにより、T個のρ=bb’を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、証明装置101は、特徴ベクトルbについての情報を得ることができない。
第二段階として、第二チャレンジ生成工程S712において、認証装置102が、暗号化特徴ベクトルC’から第二チャレンジCを算出することにより、δ=Σ[bb’]+s(iは、1以上T以下の整数。)を算出する。この計算は、復号装置103の鍵により暗号化されたままの状態で行われるので、認証装置102は、特徴ベクトルb,b’についての情報を得ることができない。
第三段階として、第二レスポンス生成工程S716において、復号装置103が、第二チャレンジCから第二レスポンスZを算出することにより、ζを算出する。復号装置103は、単に復号処理をするだけなので、ζは、δと等しい。復号装置103は、一時鍵sを知らないので、特徴ベクトルb,b’や類似度についての情報を得ることができない。すなわち、この計算は、一時鍵sで暗号化された状態で行われる。
第四段階として、平文類似度算出工程S719において、認証装置102が、第二レスポンスZから、類似度d=ζ−sを算出する。これにより、認証装置102は、類似度dを得ることができるが、特徴ベクトルb,b’についての情報を得ることはできない。
なお、暗号方式は、Paillier暗号方式に限らず、岡本−高島暗号方式、BGN暗号方式、Gentry暗号方式など加法的準同型性を有する他の暗号方式を使う構成であってもよい。また、証明装置101と認証装置102との間の通信に、普通の公開鍵暗号方式など第二の暗号方式を使う構成であってもよい。
また、生体認証システム100は、実施の形態2と同様に、証明装置101が、復号装置103や登録装置104としての機能を兼ね備える構成であってもよい。
実施の形態10.
実施の形態10について、図78〜図81を用いて説明する。
なお、実施の形態1〜実施の形態9と共通する部分については、同一の符号を付し、説明を省略する。
図78は、この実施の形態における画像検索システム110の全体構成の一例を示すシステム構成図である。
画像検索システム110は、暗号化されたままの状態で、登録された画像のなかから、指定された画像と似ているものを検索するシステムである。
画像検索システム110(類似度算出システム)は、例えば、端末装置111と、検索装置112と、復号装置103と、登録装置104とを有する。
登録装置104は、画像データを入力し、入力した画像データからその画像データが表わす画像の特徴を抽出して、特徴ベクトルbを生成する。登録装置104は、生成した特徴ベクトルbを暗号化して暗号化特徴ベクトルCを生成する。登録装置104は、入力した画像データを暗号化して暗号化画像データを生成する。登録装置104は、暗号化特徴ベクトルCと、暗号化画像データとを検索装置112に登録する。なお、暗号化画像データは、検索装置112とは別の場所に保管し、暗号化特徴ベクトルCと、暗号化画像データの所在を表わすデータとを検索装置112に登録する構成であってもよい。
端末装置111は、画像データを入力し、入力した画像データからその画像データが表わす画像の特徴を抽出して、特徴ベクトルb’を生成する。端末装置111は、生成した特徴ベクトルb’を暗号化して暗号化特徴ベクトルC’を生成し、検索装置112に検索を要求する。
検索装置112は、登録装置104によって登録された暗号化特徴ベクトルCを複数記憶している。検索装置112は、端末装置111からの検索要求に基づいて、記憶しているそれぞれの暗号化特徴ベクトルCと、端末装置111から送られた暗号化特徴ベクトルC’とに基づいて類似度dを算出する。検索装置112は、算出した類似度dに基づいて、登録された画像のなかから、指定された画像に似ている画像を判定し、判定した画像の暗号化画像データ、もしくは、暗号化画像データの所在を表わすデータを端末装置111に返す。
端末装置111、検索装置112、復号装置103、登録装置104のハードウェア構成は、実施の形態1で説明したものと同様である。
図79は、この実施の形態における登録装置104の機能ブロックの構成の一例を示すブロック構成図である。
登録装置104は、例えば、公開鍵受信部208と、公開鍵記憶部202と、画像入力部209と、特徴ベクトル形成部204と、乱数生成部205と、暗号化データ生成部206と、暗号化データ送信部201と、画像暗号化部226と、暗号化画像送信部228とを有する。
公開鍵受信部208(公開鍵取得部)は、通信装置などの入力装置912を用いて、復号装置103の公開鍵pkを受信する。復号装置103の公開鍵pkは、復号装置103が秘密裡に記憶した秘密鍵skに対応する公開鍵であり、復号装置103の公開鍵pkで暗号化したデータは、復号装置103が記憶した秘密鍵skでなければ復号できない。
公開鍵記憶部202は、記憶装置914を用いて、公開鍵受信部208が受信した公開鍵pkを記憶する。
画像入力部209は、入力装置912を用いて、登録すべき画像データを入力する。
特徴ベクトル形成部204(比較データ取得部)は、処理装置911を用いて、画像入力部209が入力した画像データから特徴ベクトルb(比較データ)を生成する。特徴ベクトルbは、例えば、整数を成分とするT次元ベクトルである。
乱数生成部205は、処理装置911を用いて、特徴ベクトルbや画像データを暗号化するときに使用される乱数を生成する。
暗号化データ生成部206(比較暗号文生成部)は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵と、特徴ベクトル形成部204が生成した特徴ベクトルbと、乱数生成部205が生成した乱数とに基づいて、暗号化特徴ベクトルC(比較暗号文)を生成する。暗号化特徴ベクトルCは、暗号文を成分とするT次元のベクトルである。暗号化特徴ベクトルCの各成分は、特徴ベクトルbの各成分を暗号化したものである。
暗号化データ送信部201(比較暗号文通知部)は、暗号化データ生成部206が生成した暗号化特徴ベクトルCを検索装置112に登録するため、通信装置などの出力装置913を用いて、暗号化特徴ベクトルCを検索装置112に対して送信する。
画像暗号化部226は、処理装置911を用いて、公開鍵記憶部202が記憶した公開鍵と、画像入力部209が入力した画像データと、乱数生成部205が生成した乱数とに基づいて、暗号化画像データを生成する。暗号化画像データは、画像データを暗号化したものである。なお、画像暗号化部226が画像データを暗号化するときに使用する暗号方式は、暗号化データ生成部206が特徴ベクトルbを暗号化するときに使用する暗号方式と同じ暗号方式であってもよいし、異なる暗号方式であってもよい。
暗号化画像送信部228は、画像暗号化部226が生成した暗号化画像データを登録するため、通信装置などの出力装置913を用いて、暗号化データ送信部201が送信する暗号化特徴ベクトルCとともに、暗号化画像データを検索装置112に対して送信する。なお、暗号化画像データを検索装置112に登録するのではなく、他の装置に登録する構成であってもよい。また、登録装置104自身が、暗号化画像データを保管する構成であってもよい。その場合、暗号化画像送信部228は、暗号化画像データのURI(統一資源識別子)など暗号化画像データの所在を表わすデータを、暗号化特徴ベクトルとともに、検索装置112に対して送信する。
図80は、この実施の形態における端末装置111の機能ブロックの構成の一例を示すブロック構成図である。
端末装置111は、例えば、公開鍵受信部218と、公開鍵記憶部212と、画像入力部219と、特徴ベクトル形成部214と、乱数生成部215と、暗号化データ生成部216と、暗号化データ送信部222と、結果受信部223と、結果出力部224とを有する。
公開鍵受信部218(公開鍵取得部)は、通信装置などの入力装置912を用いて、復号装置103の公開鍵pkを受信する。
公開鍵記憶部202は、記憶装置914を用いて、公開鍵受信部218が受信した公開鍵pkを記憶する。
画像入力部219は、入力装置912を用いて、類似する画像を探すべき画像データを入力する。
特徴ベクトル形成部214(対象データ取得部)は、処理装置911を用いて、画像入力部219が入力した画像データから特徴ベクトルb’(対象データ)を生成する。特徴ベクトルb’は、例えば、整数を成分とするT次元ベクトルである。
乱数生成部215は、処理装置911を用いて、特徴ベクトルb’を暗号化するときに使用される乱数を生成する。
暗号化データ生成部216(対象暗号文生成部)は、処理装置911を用いて、公開鍵記憶部212が記憶した公開鍵と、特徴ベクトル形成部214が生成した特徴ベクトルb’と、乱数生成部215が生成した乱数とに基づいて、暗号化特徴ベクトルC’(対象暗号文)を生成する。暗号化特徴ベクトルC’は、暗号文を成分とするT次元のベクトルである。暗号化特徴ベクトルC’の各成分は、特徴ベクトルb’の各成分を暗号化したものである。
暗号化データ送信部222(対象暗号文通知部)は、画像入力部219が入力した画像データに似た画像を検索するため、通信装置などの出力装置913を用いて、暗号化データ生成部216が生成した暗号化特徴ベクトルC’を検索装置112に対して送信する。
結果受信部223は、通信装置などの入力装置912を用いて、検索装置112が送信した検索結果を受信する。検索結果は、例えば、画像入力部219が入力した画像データに似た画像の暗号化画像データそのものや、その所在を表わすデータである。
結果出力部224は、表示装置などの出力装置913を用いて、結果受信部223が受信した検索結果を出力する。結果出力部224は、例えば、画像入力部219が入力した画像データが表わす画像に似た画像の数を表示する。あるいは、結果出力部224は、暗号化画像データを復号して画像を表示する構成であってもよい。
実施の形態1〜実施の形態9で説明した証明装置101と異なり、端末装置111は、暗号化特徴ベクトルC’をそのまま送信する。認証システムでは、再送攻撃によるなりすましを防ぐ必要があるのに対し、この実施の形態における画像検索システム110において、端末装置111は、検索結果として暗号化された暗号化画像データを取得できるだけであり、暗号化画像データを復号する権限がなければ、検索された画像を表示することはできないから、再送攻撃を防ぐ必要がない。
しかし、実施の形態1〜実施の形態9で説明した証明装置101と同じように、端末装置111は、検索装置112から第一チャレンジRを受信し、受信した第一チャレンジRと、特徴ベクトルb’とに基づいて、第一レスポンスR’を生成し、生成した第一レスポンスR’を検索装置112に対して送信する構成であってもよい。
図81は、この実施の形態における検索装置112の機能ブロックの構成の一例を示すブロック構成図である。
検索装置112は、例えば、公開鍵受信部308と、公開鍵記憶部302と、2つの暗号化データ受信部301,325と、暗号化データ記憶部312と、乱数生成部303と、乱数記憶部322と、暗号化ランダム類似度算出部314と、第二チャレンジ送信部321と、第二レスポンス受信部341と、平文類似度抽出部315と、判定部306と、結果送信部323とを有する。
公開鍵受信部308(公開鍵取得部)は、通信装置などの入力装置912を用いて、復号装置103の公開鍵pkを受信する。
公開鍵記憶部302は、記憶装置914を用いて、公開鍵受信部308が受信した公開鍵pkを記憶する。
暗号化データ受信部301(比較暗号文取得部)は、通信装置などの入力装置912を用いて、登録装置104が送信した暗号化特徴ベクトルCを受信する。
暗号化データ記憶部312(比較暗号文記憶部)は、記憶装置914を用いて、暗号化データ受信部301が受信した暗号化特徴ベクトルCを記憶する。暗号化データ記憶部312は、複数の暗号化特徴ベクトルCを、暗号化画像データの所在を表わすデータと対応づけて記憶する。
暗号化データ受信部325(対象暗号文取得部)は、通信装置などの入力装置912を用いて、端末装置111が送信した暗号化特徴ベクトルC’を受信する。
乱数生成部303は、処理装置911を用いて、第二チャレンジCの生成に使用する乱数を生成する。
乱数記憶部322は、記憶装置914を用いて、乱数生成部303が生成した乱数のうち、平文としての乱数を記憶する。
暗号化ランダム類似度算出部314は、処理装置911を用いて、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCそれぞれについて、暗号化データ受信部325が受信した暗号化特徴ベクトルC’や乱数生成部303が生成した乱数などに基づいて、第二チャレンジCを生成する。
第二チャレンジ送信部321は、通信装置などの出力装置913を用いて、暗号化ランダム類似度算出部314が生成した第二チャレンジCを復号装置103に対して送信する。
第二レスポンス受信部341は、通信装置などの入力装置912を用いて、第二チャレンジ送信部321が送信した第二チャレンジCに対する応答として、復号装置103が送信した第二レスポンスZを受信する。
平文類似度抽出部315は、処理装置911を用いて、乱数記憶部322が記憶した乱数や、第二レスポンス受信部341が受信した第二レスポンスZに基づいて、類似度dを算出する。
判定部306は、処理装置911を用いて、平文類似度抽出部315が算出した類似度dに基づいて、端末装置111が入力した画像データが表わす画像に似ている画像を判定する。例えば、類似度dが、ユークリッド距離の二乗など、小さいほど似ていることを表わすものである場合、判定部306は、類似度dが所定の閾値dより小さい場合に、その画像が、端末装置111が入力した画像データが表わす画像に似ていると判定する。なお、判定部306は、類似度dが閾値dより小さい画像の数が所定の数より多い場合、類似度dが小さい順に、所定の数の画像だけを、端末装置111が入力した画像データに似ていると判定する構成であってもよい。
結果送信部323は、通信装置などの出力装置913を用いて、平文類似度抽出部315が判定した結果を端末装置111に対して送信する。
なお、暗号化ランダム類似度算出部314や平文類似度抽出部315などの詳細な構成は、実施の形態1〜実施の形態9で説明した認証装置102の暗号化ランダム類似度算出部314や平文類似度抽出部315などと同様である。
また、復号装置103の構成も、実施の形態1〜実施の形態9で説明した復号装置103の構成と同様である。
実施の形態1〜実施の形態9で説明した方式で算出した類似度dに基づいて、端末装置111が入力した画像データと似ている画像を探すことにより、暗号化された画像データや特徴ベクトルを復号することなく、画像を検索することができる。
なお、検索の対象となるデータは、画像データに限らず、文書データなど他のデータであってもよい。検索対象が文書データである場合、例えば、所定の単語の出現回数を、特徴ベクトルの各成分の値とする構成などが考えられる。
以上各実施の形態で説明した構成は、一例であり、他の構成であってもよい。例えば、異なる実施の形態で説明した構成を組み合わせた構成としてもよいし、重要でない部分の構成を他の構成で置き換えた構成としてもよい。
例えば、類似度dとして、2つの特徴ベクトルb,b’のユークリッド距離の二乗を算出する構成と、2つの特徴ベクトルb,b’の内積を算出する構成とを説明したが、2つの特徴ベクトルb,b’のハミング距離や、特徴点の一致数など、異なる算出式によって類似度dを算出する構成であってもよい。
また、実施の形態1〜実施の形態9で説明した生体認証システム100において、ユーザの識別子を使って、認証装置102の暗号化データ記憶部312が記憶した暗号化特徴ベクトルCのなかから、第一レスポンス受信部331が受信した第一レスポンスR’に対応する暗号化特徴ベクトルCを特定し、第二チャレンジCを生成する構成を説明したが、実施の形態10で説明した画像検索システム110と同じように、暗号化データ記憶部312が記憶した暗号化特徴ベクトルCそれぞれとの間で類似度dを算出する構成であってもよい。その場合、例えば、判定部306は、証明装置101に生体情報を入力したユーザが、最も似ていると判定した暗号化特徴ベクトルCのユーザであると判定する構成であってもよい。
また、実施の形態1〜実施の形態9では、生体情報に基づいて認証を行う生体認証システム100について説明したが、他の情報に基づいて認証を行う認証システムであってもよい。
更に、以上説明した類似度算出方式は、認証システムや検索システムに限らず、他の様々なシステムに応用することができる。
以上説明した類似度算出装置(認証装置102;検索装置112)は、比較データ(特徴ベクトルb)と対象データ(特徴ベクトルb’)との類似度(d)を算出する。
類似度算出装置は、データを記憶する記憶装置(914)と、データを処理する処理装置(911)と、比較暗号文記憶部(暗号化データ記憶部312)と、対象暗号文取得部(暗号化データ抽出部305;暗号化データ受信部325)と、一時鍵生成部(乱数生成部303)と、類似度途中暗号文算出部(暗号化ランダム類似度算出部314)と、類似度途中暗号文通知部(第二チャレンジ送信部321)と、類似度途中復号文取得部(第二レスポンス受信部341)と、類似度算出部(平文類似度抽出部315)とを有する。
上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を使った暗号化変換により上記比較データを変換した比較暗号文(暗号化特徴ベクトルC)を記憶する。
上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文(暗号化特徴ベクトルC’)を取得する。
上記一時鍵生成部は、上記処理装置を用いて、一時鍵(乱数u;乱数s)を生成する。
上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文(第二チャレンジC)を算出する。
上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知する。
上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文(第二レスポンスZ)を取得する。
上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出する。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)は、上記類似度算出装置(認証装置102;検索装置112)と、復号装置(103)とを有する。
上記復号装置は、データを記憶する記憶装置(914)と、データを処理する処理装置(911)と、秘密鍵記憶部(413)と、類似度途中暗号文取得部(第二チャレンジ受信部402)と、類似度途中復号文算出部(復号部404)と、類似度途中復号文通知部(第二レスポンス送信部412)とを有する。
上記復号装置の秘密鍵記憶部は、上記復号装置の記憶装置を用いて、秘密鍵(sk)を記憶する。
上記復号装置の類似度途中暗号文取得部は、上記復号装置の処理装置を用いて、上記類似度算出装置から通知された類似度途中暗号文を取得する。
上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の秘密鍵記憶部が記憶した秘密鍵と、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、上記類似度途中復号文を算出する。
上記復号装置の類似度途中復号文通知部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中復号文算出部が算出した類似度途中復号文を上記類似度算出装置に対して通知する。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分とするT次元ベクトル(Tは、1以上の整数。)である。
上記類似度算出装置(認証装置102;検索装置112)の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、上記類似度算出装置の処理装置(911)を用いて、上記比較暗号文(暗号化特徴ベクトルC)及び上記対象暗号文(暗号化特徴ベクトルC’)が暗号化されたままの状態で、上記比較データと上記対象データとの間の対応する成分の差または積を計算する。
上記復号装置(103)の類似度途中暗号文算出部(復号部404)は、上記復号装置の処理装置(911)を用いて、上記秘密鍵(sk)を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、上記類似度(d)を計算する。
上記類似度算出装置の類似度算出部(平文類似度抽出部315)は、上記類似度算出装置の処理装置を用いて、上記類似度途中復号文を復号することにより、上記類似度を取得する。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記暗号化変換は、整数(0以上q未満の整数;0以上N未満の整数)を暗号文(ベクトル空間Vにおけるベクトル;有限群Gの元;0以上N未満の整数)に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算(ベクトル空間Vにおける加法;有限群Gにおける乗法;Nを法とする整数の乗法)が計算可能であり、任意の第一の整数(x1)を変換した暗号文(E(x1))と、任意の第二の整数(x2)を変換した暗号文(E(x2))とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和(x1+x2)を変換した暗号文(E(x1+x2))になる。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分(b,b’)とするT次元ベクトル(Tは、1以上の整数。)である。
上記比較暗号文(暗号化特徴ベクトルC)は、上記公開鍵(pk)を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文(c)を成分とするT次元ベクトルである。
上記対象暗号文(暗号化特徴ベクトルC’)は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文(c’)を成分とするT次元ベクトルである。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記類似度算出装置の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(u)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、乱数平文生成部(撹乱ベクトル生成部362)と、第一暗号文算出部(ベクトル結合部363)と、第二暗号文算出部(ベクトル累計部367)とを有する。
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数(t1,i)を成分とするT次元ベクトルをランダムに生成して、乱数平文(撹乱ベクトルт)とする。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305;暗号化データ受信部325)が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和(b−b’+t1,i)を、上記公開鍵を使った上記暗号化変換により変換した暗号文(c )を成分とするT次元ベクトルである。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文(c)を算出する。上記第二の類似度途中暗号文は、補正値と、上記一時鍵(u)との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文である。上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の2倍と、上記乱数平文の各成分の2乗とを、すべての成分について合計した整数(Σ[2t1,i(b−b’)+t1,i ])である。
上記類似度算出装置の類似度途中暗号文通知部(第二チャレンジ送信部321)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、0または1を成分(b,b’)とするT次元ベクトル(Tは、1以上の整数。)である。
上記比較暗号文(暗号化特徴ベクトルC)は、上記公開鍵(pk)を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルである。
上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分(b’)を変換した暗号文を成分とするT次元ベクトルである。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記類似度算出装置の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(u)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、乱数平文生成部(撹乱ベクトル生成部362)と、第一暗号文算出部(ベクトル結合部363)と、第二暗号文算出部(ベクトル累計部367)とを有する。
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分(t1,i)とするT次元ベクトルをランダムに生成して、乱数平文(撹乱ベクトルт)とする。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305;暗号化データ受信部325)が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和(b−b’+t1,i)を、上記公開鍵を使った上記暗号化変換により変換した暗号文(c )を成分とするT次元ベクトルである。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文(c)を算出する。上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文である。上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の2倍と、上記乱数平文の各成分の2乗と、上記比較データの各成分と、上記対象データの各成分とを、すべての成分について合計した整数(Σ[2t1,i(b−b’)+t1,i +b+b’])である。
上記類似度算出装置の類似度途中暗号文通知部(第二チャレンジ送信部321)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分(b,b’)とするT次元ベクトル(Tは、1以上の整数。)である。
上記比較暗号文(暗号化特徴ベクトルC)は、上記公開鍵(pk)を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文(c)を成分とするT次元ベクトルである。
上記対象暗号文(暗号化特徴ベクトルC’)は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文(c’)を成分とするT次元ベクトルである。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(ps)を記憶する。
上記類似度算出装置の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置を用いて、整数(s)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部(差分算出部361,並べ替え部385)と、第二暗号文算出部(暗号化鍵生成部366)とを有する。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305;暗号化データ受信部325)が取得した対象暗号文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出する。上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差(b−b’)を、上記公開鍵を使った上記暗号化変換により変換した暗号文(c )を成分とするT次元ベクトルである。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文(c)を、第二の類似度途中暗号文とする。
上記類似度算出装置の類似度途中暗号文通知部(第二チャレンジ送信部321)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知する。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記類似度算出装置(認証装置102;検索装置112)の第一暗号文算出部(差分算出部361,並べ替え部385)は、上記類似度算出装置の処理装置(911)を用いて、上記比較データ(特徴ベクトルb)の成分から上記対象データ(特徴ベクトルb’)の対応する成分を差し引いた差を上記公開鍵(pk)を使った上記暗号化変換により変換した暗号文、及び、上記対象データの成分から上記比較データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文のうちから、各成分ごとにランダムに選択した暗号文を成分とし、成分の順序をランダムに入れ換えたT次元ベクトルを、上記第一の類似度途中暗号文とする。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記復号装置(103)の類似度途中復号文算出部(復号部404)は、上記復号装置の処理装置(911)を用いて、上記復号装置の類似度途中暗号文取得部(第二チャレンジ受信部402)が取得した2つの類似度途中暗号文(第二チャレンジC)に基づいて、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個(zは、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。)結合した元を算出して、上記類似度途中復号文(第二レスポンスZ)とする。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分(b,b’)とするT次元ベクトル(Tは、1以上の整数。)である。
上記比較暗号文(暗号化特徴ベクトルC)は、上記公開鍵(pk)を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文(c)を成分とするT次元ベクトルである。
上記対象暗号文(暗号化特徴ベクトルC’)は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文(c’)を成分とするT次元ベクトルである。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記類似度算出装置の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(s)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305;暗号化データ受信部325)が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記暗号文の演算を使って、上記類似度途中暗号文(第二チャレンジC)を算出する。上記類似度途中暗号文は、合計値と上記一時鍵との和または差を、上記公開鍵を使った暗号化変換により変換した暗号文である。上記合計値は、上記比較データの各成分と上記対象データの対応する成分との差の二乗、または、上記比較データの各成分と上記対象データの対応する成分との積を、すべての成分について合計した整数(Σ[(b−b’];Σ[bb’])である。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記暗号化変換は、0以上q未満(qは、素数。)の整数を、ベクトル空間(V)におけるn次元ベクトル(nは、2以上の整数。)である暗号文に変換する変換である。
上記ベクトル空間は、位数qの巡回群n個の直積である。
上記暗号文の演算は、上記ベクトル空間におけるベクトルの加法である。
上記公開鍵(pk)は、上記ベクトル空間の基底であるランダム基底(B)を含む。
上記暗号化変換は、0以上q未満の整数xを、上記ランダム基底の第一のベクトル(ь)のx倍と、上記ランダム基底の他のベクトル(ь)の乱数倍とを合計したベクトルに変換する変換である。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記暗号化変換は、0以上N未満(Nは、互いに異なる2つの素数p,qの積。)の整数を、位数Nの有限群(G)の元である暗号文に変換する変換である。
上記暗号文の演算は、上記有限群における群演算である。
上記公開鍵(pk)は、上記有限群の生成元(g)と、上記有限群の元であって位数が上記素数pである撹乱元(h)とを含む。
上記暗号化変換は、0以上N未満の整数xを、上記有限群における群演算により、x個の上記生成元と、ランダムな数の上記撹乱元とを結合した元に変換する変換である。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記暗号化変換は、0以上N未満(Nは、互いに異なる2つの素数p,qの積。)の整数を、0以上N未満の整数である暗号文に変換する変換である。
上記暗号文の演算は、Nを法とする整数の乗法である。
上記暗号化変換は、0以上N未満の整数xを、整数xと整数Nとの積に1を加えた和と、ランダムな数のN乗との積を、Nで割った余りに変換する変換である。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)は、更に、暗号化装置(証明装置101;端末装置111)を有する。
上記暗号化装置は、データを記憶する記憶装置(914)と、データを処理する処理装置(911)と、公開鍵記憶部(212)と、対象データ取得部(特徴ベクトル形成部214)と、一時公開鍵取得部(第一チャレンジ受信部211)と、対象二重暗号文算出部(暗号化データ埋め込み部217)と、対象二重暗号文通知部(第一レスポンス送信部221)とを有する。
上記暗号化装置の公開鍵記憶部は、上記暗号化装置の記憶装置を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記暗号化装置の対象データ取得部は、上記暗号化装置の処理装置を用いて、対象データ(特徴ベクトルb’)を取得する。
上記暗号化装置の一時公開鍵取得部は、上記暗号化装置の処理装置を用いて、上記類似度算出装置(認証装置102;検索装置112)から通知された一時公開鍵(第一チャレンジR)を取得する。
上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵とに基づいて、上記公開鍵と上記一時公開鍵とを使った第二の暗号化変換により上記対象データを変換することにより、対象二重暗号文(第一レスポンスR’)を算出する。
上記暗号化装置の対象二重暗号文通知部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の対象二重暗号文算出部が算出した対象二重暗号文を上記類似度算出装置に対して通知する。
上記類似度算出装置は、更に、一時秘密鍵生成部(乱数生成部303、暗号化乱数生成部304)と、一時公開鍵通知部(第一チャレンジ送信部311)と、対象二重暗号文取得部(第一レスポンス受信部331)とを有する。
上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置(911)を用いて、一時秘密鍵(R1,i)と、上記一時秘密鍵に対応する一時公開鍵(第一チャレンジR)とを生成する。
上記類似度算出装置の一時公開鍵通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時公開鍵を上記暗号化装置に対して通知する。
上記類似度算出装置の対象二重暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置から通知された対象二重暗号文を取得する。
上記類似度算出装置の対象暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵と、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使った第二の復号変換により上記対象二重暗号文を変換することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文(暗号化特徴ベクトルC’)を算出する。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分(b,b’)とするT次元ベクトル(Tは、1以上の整数。)である。
上記類似度算出装置(認証装置102;検索装置112)の一時秘密鍵生成部(乱数生成部303、暗号化乱数生成部304)は、上記類似度算出装置の処理装置(911)を用いて、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文(暗号化特徴ベクトルC)に基づいて、上記比較データについての暗号化された情報を含む一時公開鍵(第一チャレンジR)を生成する。
上記暗号化装置(証明装置101;端末装置111)の対象二重暗号文算出部(暗号化データ埋め込み部217)は、上記暗号化装置の処理装置(911)を用いて、上記一時公開鍵を使った上記第二の暗号化変換により、上記対象データの成分と上記比較データの対応する成分との積(bb’)についての暗号化された情報を含む対象二重暗号文(第一レスポンスR’)を算出する。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記暗号化変換は、整数(0以上q未満の整数;0以上N未満の整数)を暗号文(ベクトル空間Vにおけるベクトル;有限群Gの元;0以上N未満の整数)に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算(ベクトル空間Vにおける加法;有限群Gにおける乗法;Nを法とする整数の乗法)が計算可能であり、任意の第一の整数(x1)を変換した暗号文(E(x1))と、任意の第二の整数(x2)を変換した暗号文(E(x2))とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和(x1+x2)を変換した暗号文(E(x1+x2))になる。
上記対象データ(特徴ベクトルb’)は、整数を成分とするT次元ベクトル(Tは、1以上の整数。)である。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記類似度算出装置の一時公開鍵生成部(乱数生成部303;暗号化乱数生成部304)は、上記類似度算出装置の処理装置(911)を用いて、整数(R1,i)を成分とするT次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、生成した一時秘密鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時秘密鍵の各成分を変換した暗号文(R)を成分とするT次元ベクトルを算出して、上記一時公開鍵(第一チャレンジR)とする。
上記暗号化装置(証明装置101;端末装置111)の対象二重暗号文算出部(暗号化データ埋め込み部217)は、上記暗号化装置の処理装置(911)を用いて、上記暗号化装置の公開鍵記憶部(212)が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文(o)を成分とするT次元ベクトルをランダムに生成して、零暗号文(暗号化零ベクトルO)とし、上記暗号化装置の対象データ取得部(特徴ベクトル形成部214)が取得した対象データと、上記暗号化装置の一時公開鍵取得部(第一チャレンジ受信部211)が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分b’個(b’は、上記対象データの対応する成分である整数。)と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記対象二重暗号文(第一レスポンスR’)とする。
上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305)は、一時復号鍵算出部(逆数算出部351)と、対象暗号文算出部(スカラー倍算出部352)とを有する。
上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数(κ)を成分とするT次元ベクトルを算出して、一時復号鍵とする。
上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部(第一レスポンス受信部331)が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分(R’)をR −1個(R −1は、上記一時復号鍵の対応する成分である逆数。)結合した暗号文を成分とするT次元ベクトルを算出して、上記対象暗号文(暗号化特徴ベクトルC’)とする。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記暗号化変換は、整数(0以上q未満の整数;0以上N未満の整数)を暗号文(ベクトル空間Vにおけるベクトル;有限群Gの元;0以上N未満の整数)に変換する変換である。上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算(ベクトル空間Vにおける加法;有限群Gにおける乗法;Nを法とする整数の乗法)が計算可能である。任意の第一の整数(x1)を変換した暗号文(E(x1))と、任意の第二の整数(x2)を変換した暗号文(E(x2))とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和(x1+x2)を変換した暗号文(E(x1+x2))になる。
上記比較データ(特徴ベクトルb)及び上記対象データ(特徴ベクトルb’)は、整数を成分(b,b’)とするT次元ベクトル(Tは、1以上の整数。)である。
上記比較暗号文(暗号化特徴ベクトルC)は、上記公開鍵(pk)を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文(c)を成分とするT次元ベクトルである。
上記類似度算出装置(認証装置102;検索装置112)は、更に、公開鍵記憶部(302)を有する。
上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置(914)を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記類似度算出装置の一時公開鍵生成部(乱数生成部303;暗号化乱数生成部304)は、上記類似度算出装置の処理装置(911)を用いて、整数(R1,i)を成分とするT次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文(o’)を成分とするT次元ベクトルをランダムに生成して、零暗号文(暗号化零ベクトルO’)とし、上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)が記憶した比較暗号文と、生成した一時秘密鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記比較暗号文の各成分R個(Rは、上記一時秘密鍵の対応する成分である整数。)と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記一時公開鍵(第一チャレンジR)とする。
上記暗号化装置(証明装置101;端末装置111)の対象二重暗号文算出部(暗号化データ埋め込み部217)は、上記暗号化装置の処理装置(911)を用いて、上記暗号化装置の公開鍵記憶部(212)が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文(o)を成分とするT次元ベクトルをランダムに生成して、零暗号文(暗号化零ベクトルO)とし、上記暗号化装置の対象データ取得部(特徴ベクトル形成部214)が取得した対象データと、上記暗号化装置の一時公開鍵取得部(第一チャレンジ受信部211)が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分b’個(b’は、上記対象データの対応する成分である整数。)と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記対象二重暗号文(第一レスポンスR’)とする。
上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305)は、一時復号鍵算出部(逆数算出部351)と、対象暗号文算出部(累乗算出部353)とを有する。
上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数(κ)を成分とするT次元ベクトルを算出して、一時復号鍵とする。
上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部(第一チャレンジ送信部311)が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をR −1個(R −1は、上記一時復号鍵の対応する成分である逆数。)結合した暗号文を成分とするT次元ベクトルを算出して、上記対象暗号文(暗号化特徴ベクトルC’)とする。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記類似度算出装置(認証装置102;検索装置112)の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、乱数平文生成部(暗号化鍵生成部366)と、暗号文算出部(整数結合部386)とを有する。
上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置(911)を用いて、整数(t1,i)を成分とするT次元ベクトルをランダムに生成して、乱数平文(撹乱ベクトルт)とする。
上記類似度算出装置の一時鍵生成部(乱数記憶部322)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の乱数平文生成部が生成した乱数平文の成分の総和(Σ[t1,i])を算出し、算出した総和を上記一時鍵とする。
上記類似度算出装置の暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305)が取得した対象暗号文(暗号化特徴ベクトルC’)と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算により、上記対象暗号文の各成分と、上記乱数平文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、類似度途中暗号文(第二チャレンジC)とする。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記類似度算出装置(認証装置102;検索装置112)の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(s)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、第一暗号文算出部(並べ替え部385)と、第二暗号文算出部(暗号化鍵生成部366)とを有する。
上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305)が取得した対象暗号文(暗号化特徴ベクトルC’)に基づいて、上記対象暗号文の成分の順序をランダムに入れ換えたT次元ベクトルを算出して、第一の類似度途中暗号文とする。
上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部(302)が記憶した公開鍵(pk)と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を算出して、第二の類似度途中暗号文とする。
上記類似度算出装置の類似度途中暗号文通知部(第二チャレンジ送信部321)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置(103)に対して通知する。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記復号装置(103)の類似度途中復号文算出部(復号部404)は、上記復号装置の処理装置(911)を用いて、上記復号装置の類似度途中暗号文取得部(第二チャレンジ受信部402)が取得した2つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個(zは、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。)結合した元を算出して、上記類似度途中復号文(第二レスポンスZ)とする。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記類似度算出装置(認証装置102;検索装置112)の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(s)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度途中暗号文算出部(暗号化ランダム類似度算出部314)は、上記類似度算出装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部(302)が記憶した公開鍵(pk)と、上記類似度算出装置の対象暗号文取得部(暗号化データ抽出部305)が取得した対象暗号文(暗号化特徴ベクトルC’)と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により上記一時鍵を変換した暗号文と、上記対象暗号文のT個の成分とを、上記暗号文の演算により結合した暗号文を算出して、上記類似度途中暗号文(第二チャレンジC)とする。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記復号装置(103)の類似度途中復号文算出部(復号部404)は、上記復号装置の処理装置(911)を用いて、上記復号装置の類似度途中暗号文取得部(第二チャレンジ受信部402)が取得した類似度途中暗号文(第二チャレンジC)に基づいて、上記類似度途中暗号文を復号して得られる整数、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個(zは、上記類似度途中暗号文を復号して得られる整数。)結合した元を算出して、上記類似度途中復号文(第二レスポンスZ)とする。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記類似度途中復号文(第二レスポンスZ)は、整数である。
上記類似度算出装置(認証装置102;検索装置112)の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(u;s)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度算出部(平文類似度抽出部315)は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部(第二レスポンス受信部341)が取得した類似度途中復号文とに基づいて、上記一時鍵と、上記類似度途中復号文との和または差を算出して、上記類似度(d)とする。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記類似度途中復号文(第二レスポンスZ)は、所定の有限群(G)の元である。
上記類似度算出装置の一時鍵生成部(乱数生成部303)は、上記類似度算出装置の処理装置(911)を用いて、整数(u;s)をランダムに生成して、上記一時鍵とする。
上記類似度算出装置の類似度算出部(平文類似度抽出部315)は、類似度復号文算出部(元結合部372)と、離散対数算出部(373)とを有する。
上記類似度算出装置の類似度復号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部(第二レスポンス受信部341)が取得した類似度途中復号文とに基づいて、上記所定の有限群の群演算により、上記所定の有限群の所定の元(e(ь,ь);π)u個(uは、上記一時鍵である整数。)と、上記類似度途中復号文とを結合した元を算出して、類似度復号文(復号類似度元Z’)とする。
上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の類似度復号文が算出した類似度復号文に基づいて、上記所定の有限群の群演算により、上記所定の元を何個結合したら、上記類似度復号文と一致するかを算出して、上記類似度(d)とする。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)において、
上記類似度算出装置(認証装置102;検索装置112)の離散対数算出部(373)は、上記類似度算出装置の処理装置(911)を用いて、上記類似度(d)が、所定の範囲内の整数である場合に、上記類似度を算出し、上記類似度が、上記所定の範囲外である場合に、上記類似度が上記所定の範囲外であることを判定する。
以上説明した類似度算出システム(生体認証システム100;画像検索システム110)は、更に、登録装置(104)を有する。
上記登録装置は、データを記憶する記憶装置(914)と、データを処理する処理装置(911)と、公開鍵記憶部(202)と、比較データ取得部(特徴ベクトル形成部204)と、比較暗号文算出部(暗号化データ生成部206)と、比較暗号文通知部(暗号化データ送信部201)とを有する。
上記登録装置の公開鍵記憶部は、上記登録装置の記憶装置を用いて、上記復号装置(103)が記憶した秘密鍵(sk)に対応する公開鍵(pk)を記憶する。
上記登録装置の比較データ取得部は、上記登録装置の処理装置を用いて、比較データ(特徴ベクトルb)を取得する。
上記登録装置の比較暗号文算出部は、上記登録装置の処理装置を用いて、上記登録装置の公開鍵記憶部が記憶した公開鍵と、上記登録装置の比較データ取得部が取得した比較データとに基づいて、上記公開鍵を使った暗号化変換により上記比較データを変換することにより、比較暗号文(暗号化特徴ベクトルC)を算出する。
上記登録装置の比較暗号文通知部は、上記登録装置の処理装置を用いて、上記登録装置の比較暗号文算出部が算出した比較暗号文を上記類似度算出装置(認証装置102;検索装置112)に対して通知する。
上記類似度算出装置は、更に、比較暗号文取得部(暗号化データ受信部301)を有する。
上記類似度算出装置の比較暗号文取得部は、上記類似度算出装置の処理装置(911)を用いて、上記登録装置から通知された比較暗号文を取得する。
上記類似度算出装置の比較暗号文記憶部(暗号化データ記憶部312)は、上記類似度算出装置の記憶装置(914)を用いて、上記類似度算出装置の比較暗号文取得部が取得した比較暗号文を記憶する。
以上説明した類似度算出装置及び類似度算出システム及びコンピュータプログラム及び類意度算出方法によれば、データが暗号化されたままの状態で、データ間の類似度を算出することができるとともに、その過程で、元のデータについての情報や、なりすましに利用される情報などが漏れるのを防ぐことができる。
100 生体認証システム、101 証明装置、102 認証装置、103 復号装置、104 登録装置、110 画像検索システム、111 端末装置、112 検索装置、201,222 暗号化データ送信部、202,212,302,403 公開鍵記憶部、203,213 生体情報抽出部、204,214 特徴ベクトル形成部、205,215,303 乱数生成部、206,216 暗号化データ生成部、208,218,308 公開鍵受信部、209,219 画像入力部、211 第一チャレンジ受信部、217 暗号化データ埋め込み部、221 第一レスポンス送信部、223 結果受信部、224 結果出力部、226 画像暗号化部、228 暗号化画像送信部、231,352,364 スカラー倍算出部、232,332 零生成部、233,363 ベクトル結合部、234,353,384,334 累乗算出部、235,370,372,475 元結合部、236,336,386,485 整数結合部、301,325 暗号化データ受信部、304 暗号化乱数生成部、305 暗号化データ抽出部、306 判定部、311 第一チャレンジ送信部、312 暗号化データ記憶部、314 暗号化ランダム類似度算出部、315 平文類似度抽出部、321 第二チャレンジ送信部、322 乱数記憶部、323 結果送信部、331 第一レスポンス受信部、341 第二レスポンス受信部、351 逆数算出部、361 差分算出部、362 撹乱ベクトル生成部、365 二乗和算出部、366 暗号化鍵生成部、367 ベクトル累計部、368,381,382,473 二乗算出部、371,474 群変換部、373 離散対数算出部、383 積算出部、385 並べ替え部、401 鍵生成部、402 第二チャレンジ受信部、404 復号部、408 公開鍵送信部、412 第二レスポンス送信部、413 秘密鍵記憶部、421,431 群決定部、422 標準基底設定部、423 乱数生成部、424 行列式算出部、425 正則行列設定部、426 ランダム基底算出部、432 生成元選択部、433 生成元累乗部、434 底算出部、441 素数決定部、442 積算出部、443 公倍数算出部、471 逆行列算出部、472 ベクトル分解部、481 逆数算出部、482 復号整数算出部、911 処理装置、912 入力装置、913 出力装置、914 記憶装置、A 標準基底、B ランダム基底、b,b’ 特徴ベクトル、C,C’ 暗号化特徴ベクトル、C 第二チャレンジ、ΔC 暗号化差分ベクトル、ΔC’ 暗号化二乗ベクトル、d 類似度、d 閾値、F 有限体、G,G 有限群、g 生成元、O,O’ 暗号化零ベクトル、pk 公開鍵、R 第一チャレンジ、R’ 第一レスポンス、Я ベクトル、Я’ 累乗ベクトル、S500 セットアップ処理、S501 鍵生成工程、S502 公開鍵通知工程、S503,S504,S505 公開鍵取得工程、S511,S521 群決定工程、S512 標準基底設定工程、S513 行列生成工程、S514 正則判定工程、S515 ランダム基底算出工程、S522 生成元選択工程、S523 生成元累乗工程、S524 底算出工程、S531 素数決定工程、S532,S754 積算出工程、S533 公倍数算出工程、S540 ベクトル分解処理、S541,S561 逆行列算出工程、S542 第一初期化工程、S543 第一繰り返し工程、S544 第二初期化工程、S545 第二繰り返し工程、S546 第三初期化工程、S547 第三繰り返し工程、S548 係数累計工程、S549 写像計算工程、S550 スカラー倍工程、S551,S747,S751 ベクトル累計工程、S560,S610,S660,S729,S730,S740 初期化工程、S561a,S690,S732 逆数算出工程、S562,S611,S661,S721,S731,S741 繰り返し工程、S563,S566 ベクトル分解工程、S563a,S566a 復号整数算出工程、S564,S753 二乗算出工程、S565,S665a,S692 元結合工程、S565a,S665b,S692a,S726,S760 整数結合工程、S567,S691 群変換工程、S571,S662a,S724,S733a,S752a,S755 累乗算出工程、S600 登録処理、S601,S705 生体情報抽出工程、S602,S706 特徴ベクトル生成工程、S603 特徴ベクトル暗号化工程、S604 暗号化生体情報通知工程、S605 暗号化生体情報取得工程、S612,S663,S722,S743,S749,S757,S758 乱数生成工程、S613,S723 ベクトル算出工程、S613a,S723a 元算出工程、S613b,S723b 整数算出工程、S662,S733,S746 スカラー倍算出工程、S664,S725 零生成工程、S665,S745 ベクトル結合工程、S693 離散対数算出工程、S700 認証処理、S701 第一チャレンジ生成工程、S702,S713 乱数記憶工程、S703 第一チャレンジ通知工程、S704 第一チャレンジ取得工程、S707 第一レスポンス生成工程、S708 第一レスポンス通知工程、S709 第一レスポンス取得工程、S710 暗号化生体情報抽出工程、S711 暗号化生体情報読出し工程、S712 第二チャレンジ生成工程、S714 第二チャレンジ通知工程、S715 第二チャレンジ取得工程、S716 第二レスポンス生成工程、S717 第二レスポンス通知工程、S718 第二レスポンス取得工程、S719 平文類似度算出工程、S720 認証判定工程、S742,S742a,S742b 差分算出工程、S744 撹乱ベクトル生成工程、S748 二乗累計工程、S748a 元累計工程、S750 暗号化鍵生成工程、S752 暗号化鍵生成工程、S759 第二チャレンジ設定工程、sk 秘密鍵、т 撹乱ベクトル、Ц 復号鍵、ц 暗号化鍵、ц,ц 累乗元、V ベクトル空間、ш 逆元、X 正則行列、X−1 逆行列、Z 第二レスポンス、Z’ 復号類似度元、Ж 第一暗号化二乗ベクトル、Ж’ 第二暗号化二乗ベクトル。

Claims (19)

  1. 比較データと対象データとの類似度を算出する類似度算出装置において、
    データを記憶する記憶装置と、データを処理する処理装置と、比較暗号文記憶部と、対象暗号文取得部と、一時鍵生成部と、類似度途中暗号文算出部と、類似度途中暗号文通知部と、類似度途中復号文取得部と、類似度算出部とを有し、
    上記比較暗号文記憶部は、上記記憶装置を用いて、復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
    上記対象暗号文取得部は、上記処理装置を用いて、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
    上記一時鍵生成部は、上記処理装置を用いて、一時鍵を生成し、
    上記類似度途中暗号文算出部は、上記処理装置を用いて、上記比較暗号文記憶部が記憶した比較暗号文と、上記対象暗号文取得部が取得した対象暗号文と、上記一時鍵生成部が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵を使って暗号化した類似度途中暗号文を算出し、
    上記類似度途中暗号文通知部は、上記処理装置を用いて、上記類似度途中暗号文算出部が算出した類似度途中暗号文を上記復号装置に対して通知し、
    上記類似度途中復号文取得部は、上記処理装置を用いて、上記類似度途中暗号文通知部が通知した類似度途中暗号文に基づいて上記復号装置が算出し通知した類似度途中復号文を取得し、
    上記類似度算出部は、上記処理装置を用いて、上記一時鍵生成部が生成した一時鍵と、上記類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする類似度算出装置。
  2. 上記類似度算出装置は、更に、一時秘密鍵生成部と、対象二重暗号文取得部と、一時秘密鍵記憶部とを有し、
    上記一時秘密鍵生成部は、上記処理装置を用いて、一時秘密鍵と、上記一時秘密鍵に対応する一時公開鍵とを生成し、
    上記対象二重暗号文取得部は、上記処理装置を用いて、上記一時秘密鍵生成部が生成した一時公開鍵を使って暗号化された対象二重暗号文を取得し、
    上記対象暗号文取得部は、上記処理装置を用いて、上記一時秘密鍵記憶部が記憶した一時秘密鍵と、上記対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使って上記対象二重暗号文を復号することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得することを特徴とする請求項1に記載の類似度算出装置。
  3. 請求項1に記載の類似度算出装置と、復号装置とを有し、
    上記復号装置は、データを記憶する記憶装置と、データを処理する処理装置と、秘密鍵記憶部と、類似度途中暗号文取得部と、類似度途中復号文算出部と、類似度途中復号文通知部とを有し、
    上記復号装置の秘密鍵記憶部は、上記復号装置の記憶装置を用いて、秘密鍵を記憶し、
    上記復号装置の類似度途中暗号文取得部は、上記復号装置の処理装置を用いて、上記類似度算出装置から通知された類似度途中暗号文を取得し、
    上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の秘密鍵記憶部が記憶した秘密鍵と、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、上記類似度途中復号文を算出し、
    上記復号装置の類似度途中復号文通知部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中復号文算出部が算出した類似度途中復号文を上記類似度算出装置に対して通知することを特徴とする類似度算出システム。
  4. 上記比較データ及び上記対象データは、整数を成分とするT次元ベクトル(Tは、1以上の整数。)であり、
    上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、上記比較データと上記対象データとの間の対応する成分の差または積を計算し、
    上記復号装置の類似度途中暗号文算出部は、上記復号装置の処理装置を用いて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、上記類似度を計算し、
    上記類似度算出装置の類似度算出部は、上記類似度算出装置の処理装置を用いて、上記類似度途中復号文を復号することにより、上記類似度を取得することを特徴とする請求項3に記載の類似度算出システム。
  5. 上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になることを特徴とする請求項3に記載の類似度算出システム。
  6. 上記比較データ及び上記対象データは、整数を成分とするT次元ベクトル(Tは、1以上の整数。)であり、
    上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
    上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
    上記類似度算出装置は、更に、公開鍵記憶部を有し、
    上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
    上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
    上記類似度算出装置の類似度途中暗号文算出部は、乱数平文生成部と、第一暗号文算出部と、第二暗号文算出部とを有し、
    上記類似度算出装置の乱数平文生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするT次元ベクトルをランダムに生成して、乱数平文とし、
    上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするT次元ベクトルであり、
    上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の乱数平文生成部が生成した乱数平文とに基づいて、上記暗号文の演算を使って、第二の類似度途中暗号文を算出し、上記第二の類似度途中暗号文は、補正値と、上記一時鍵との和を、上記公開鍵を使った上記暗号化変換により変換した暗号文であり、上記補正値は、上記比較データの各成分と、上記対象データの対応する成分との差と、上記乱数平文の対応する成分との積の2倍と、上記乱数平文の各成分の2乗とを、すべての成分について合計した整数であり、
    上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項5に記載の類似度算出システム。
  7. 上記比較データ及び上記対象データは、整数を成分とするT次元ベクトル(Tは、1以上の整数。)であり、
    上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
    上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
    上記類似度算出装置は、更に、公開鍵記憶部を有し、
    上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
    上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
    上記類似度算出装置の類似度途中暗号文算出部は、第一暗号文算出部と、第二暗号文算出部とを有し、
    上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文とに基づいて、上記暗号文の演算を使って、第一の類似度途中暗号文を算出し、上記第一の類似度途中暗号文は、上記比較データの各成分と、上記対象データの対応する成分との差を、上記公開鍵を使った上記暗号化変換により変換した暗号文を成分とするT次元ベクトルであり、
    上記類似度算出装置の第二暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時鍵を変換した暗号文を、第二の類似度途中暗号文とし、
    上記類似度算出装置の類似度途中暗号文通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の第一暗号文算出部が算出した第一の類似度途中暗号文と、上記類似度算出装置の第二暗号文算出部が算出した第二の類似度途中暗号文とを上記復号装置に対して通知することを特徴とする請求項5に記載の類似度算出システム。
  8. 上記類似度算出装置の第一暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記比較データの成分から上記対象データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文、及び、上記対象データの成分から上記比較データの対応する成分を差し引いた差を上記公開鍵を使った上記暗号化変換により変換した暗号文のうちから、各成分ごとにランダムに選択した暗号文を成分とし、成分の順序をランダムに入れ換えたT次元ベクトルを、上記第一の類似度途中暗号文とすることを特徴とする請求項に記載の類似度算出システム。
  9. 上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した2つの類似度途中暗号文に基づいて、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差もしくは和、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個(zは、上記第一の類似度途中暗号文のT個の成分をそれぞれ復号して得られる整数の二乗の合計と、上記第二の類似度途中暗号文を復号して得られる整数との差または和。)結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項6乃至請求項のいずれかに記載の類似度算出システム。
  10. 上記比較データ及び上記対象データは、整数を成分とするT次元ベクトル(Tは、1以上の整数。)であり、
    上記比較暗号文は、上記公開鍵を使った上記暗号化変換により、上記比較データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
    上記対象暗号文は、上記公開鍵を使った上記暗号化変換により、上記対象データの各成分を変換した暗号文を成分とするT次元ベクトルであり、
    上記類似度算出装置は、更に、公開鍵記憶部を有し、
    上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
    上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
    上記類似度算出装置の類似度途中暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の比較暗号文記憶部が記憶した比較暗号文と、上記類似度算出装置の対象暗号文取得部が取得した対象暗号文と、上記類似度算出装置の一時鍵生成部が生成した一時鍵とに基づいて、上記暗号文の演算を使って、上記類似度途中暗号文を算出し、上記類似度途中暗号文は、合計値と上記一時鍵との和または差を、上記公開鍵を使った暗号化変換により変換した暗号文であり、上記合計値は、上記比較データの各成分と上記対象データの対応する成分との差の二乗、または、上記比較データの各成分と上記対象データの対応する成分との積を、すべての成分について合計した整数であることを特徴とする請求項5に記載の類似度算出システム。
  11. 上記類似度算出システムは、更に、暗号化装置を有し、
    上記暗号化装置は、データを記憶する記憶装置と、データを処理する処理装置と、公開鍵記憶部と、対象データ取得部と、一時公開鍵取得部と、対象二重暗号文算出部と、対象二重暗号文通知部とを有し、
    上記暗号化装置の公開鍵記憶部は、上記暗号化装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
    上記暗号化装置の対象データ取得部は、上記暗号化装置の処理装置を用いて、対象データを取得し、
    上記暗号化装置の一時公開鍵取得部は、上記暗号化装置の処理装置を用いて、上記類似度算出装置から通知された一時公開鍵を取得し、
    上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵と、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵とに基づいて、上記公開鍵と上記一時公開鍵とを使った第二の暗号化変換により上記対象データを変換することにより、対象二重暗号文を算出し、
    上記暗号化装置の対象二重暗号文通知部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の対象二重暗号文算出部が算出した対象二重暗号文を上記類似度算出装置に対して通知し、
    上記類似度算出装置は、更に、一時秘密鍵生成部と、一時公開鍵通知部と、対象二重暗号文取得部とを有し、
    上記類似度算出装置の一時秘密鍵生成部は、上記類似度算出装置の処理装置を用いて、一時秘密鍵と、上記一時秘密鍵に対応する一時公開鍵とを生成し、
    上記類似度算出装置の一時公開鍵通知部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時公開鍵を上記暗号化装置に対して通知し、
    上記類似度算出装置の対象二重暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記暗号化装置から通知された対象二重暗号文を取得し、
    上記類似度算出装置の対象暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵と、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文とに基づいて、上記一時秘密鍵を使った第二の復号変換により上記対象二重暗号文を変換することにより、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を算出することを特徴とする請求項3に記載の類似度算出システム。
  12. 上記暗号化変換は、整数を暗号文に変換する変換であって、上記暗号文は、複数の暗号文を結合して他の暗号文に変換する演算が計算可能であり、任意の第一の整数を変換した暗号文と、任意の第二の整数を変換した暗号文とを、上記暗号文の演算により結合した暗号文が、上記第一の整数と上記第二の整数との和を変換した暗号文になり、
    上記対象データは、整数を成分とするT次元ベクトル(Tは、1以上の整数。)であり、
    上記類似度算出装置は、更に、公開鍵記憶部を有し、
    上記類似度算出装置の公開鍵記憶部は、上記類似度算出装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
    上記類似度算出装置の一時公開鍵生成部は、上記類似度算出装置の処理装置を用いて、整数を成分とするT次元ベクトルをランダムに生成して、上記一時秘密鍵とし、上記類似度算出装置の公開鍵記憶部が記憶した公開鍵と、生成した一時秘密鍵とに基づいて、上記公開鍵を使った上記暗号化変換により、上記一時秘密鍵の各成分を変換した暗号文を成分とするT次元ベクトルを算出して、上記一時公開鍵とし、
    上記暗号化装置の対象二重暗号文算出部は、上記暗号化装置の処理装置を用いて、上記暗号化装置の公開鍵記憶部が記憶した公開鍵に基づいて、上記公開鍵を使った暗号化変換により0を変換した暗号文を成分とするT次元ベクトルをランダムに生成して、零暗号文とし、上記暗号化装置の対象データ取得部が取得した対象データと、上記暗号化装置の一時公開鍵取得部が取得した一時公開鍵と、生成した零暗号文とに基づいて、上記暗号文の演算により、上記一時公開鍵の各成分b’個(b’は、上記対象データの対応する成分である整数。)と、上記零暗号文の対応する成分とを結合した暗号文を成分とするT次元ベクトルを算出して、上記対象二重暗号文とし、
    上記類似度算出装置の対象暗号文取得部は、一時復号鍵算出部と、対象暗号文算出部とを有し、
    上記類似度算出装置の一時復号鍵算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時秘密鍵生成部が生成した一時秘密鍵に基づいて、上記一時秘密鍵の各成分の逆数を成分とするT次元ベクトルを算出して、一時復号鍵とし、
    上記類似度算出装置の対象暗号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の対象二重暗号文取得部が取得した対象二重暗号文と、上記類似度算出装置の一時復号鍵算出部が算出した一時復号鍵とに基づいて、上記暗号文の演算により、上記対象二重暗号文の各成分をR −1個(R −1は、上記一時復号鍵の対応する成分である逆数。)結合した暗号文を成分とするT次元ベクトルを算出して、上記対象暗号文とすることを特徴とする請求項11に記載の類似度算出システム。
  13. 上記復号装置の類似度途中復号文算出部は、上記復号装置の処理装置を用いて、上記復号装置の類似度途中暗号文取得部が取得した類似度途中暗号文に基づいて、上記類似度途中暗号文を復号して得られる整数、または、所定の有限群の所定の元を上記所定の有限群の群演算によりz個(zは、上記類似度途中暗号文を復号して得られる整数。)結合した元を算出して、上記類似度途中復号文とすることを特徴とする請求項10に記載の類似度算出システム。
  14. 上記類似度途中復号文は、整数であり、
    上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
    上記類似度算出装置の類似度算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記一時鍵と、上記類似度途中復号文との和または差を算出して、上記類似度とすることを特徴とする請求項3乃至請求項及び請求項10乃至請求項12のいずれかに記載の類似度算出システム。
  15. 上記類似度途中復号文は、所定の有限群の元であり、
    上記類似度算出装置の一時鍵生成部は、上記類似度算出装置の処理装置を用いて、整数をランダムに生成して、上記一時鍵とし、
    上記類似度算出装置の類似度算出部は、類似度復号文算出部と、離散対数算出部とを有し、
    上記類似度算出装置の類似度復号文算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の一時鍵生成部が生成した一時鍵と、上記類似度算出装置の類似度途中復号文取得部が取得した類似度途中復号文とに基づいて、上記所定の有限群の群演算により、上記所定の有限群の所定の元u個(uは、上記一時鍵である整数。)と、上記類似度途中復号文とを結合した元を算出して、類似度復号文とし、
    上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度算出装置の類似度復号文が算出した類似度復号文に基づいて、上記所定の有限群の群演算により、上記所定の元を何個結合したら、上記類似度復号文と一致するかを算出して、上記類似度とすることを特徴とする請求項3乃至請求項及び請求項10乃至請求項12のいずれかに記載の類似度算出システム。
  16. 上記類似度算出装置の離散対数算出部は、上記類似度算出装置の処理装置を用いて、上記類似度が、所定の範囲内の整数である場合に、上記類似度を算出し、上記類似度が、上記所定の範囲外である場合に、上記類似度が上記所定の範囲外であることを判定することを特徴とする請求項15に記載の類似度算出システム。
  17. 上記類似度算出システムは、更に、登録装置を有し、
    上記登録装置は、データを記憶する記憶装置と、データを処理する処理装置と、公開鍵記憶部と、比較データ取得部と、比較暗号文算出部と、比較暗号文通知部とを有し、
    上記登録装置の公開鍵記憶部は、上記登録装置の記憶装置を用いて、上記復号装置が記憶した秘密鍵に対応する公開鍵を記憶し、
    上記登録装置の比較データ取得部は、上記登録装置の処理装置を用いて、比較データを取得し、
    上記登録装置の比較暗号文算出部は、上記登録装置の処理装置を用いて、上記登録装置の公開鍵記憶部が記憶した公開鍵と、上記登録装置の比較データ取得部が取得した比較データとに基づいて、上記公開鍵を使った暗号化変換により上記比較データを変換することにより、比較暗号文を算出し、
    上記登録装置の比較暗号文通知部は、上記登録装置の処理装置を用いて、上記登録装置の比較暗号文算出部が算出した比較暗号文を上記類似度算出装置に対して通知し、
    上記類似度算出装置は、更に、比較暗号文取得部を有し、
    上記類似度算出装置の比較暗号文取得部は、上記類似度算出装置の処理装置を用いて、上記登録装置から通知された比較暗号文を取得し、
    上記類似度算出装置の比較暗号文記憶部は、上記類似度算出装置の記憶装置を用いて、上記類似度算出装置の比較暗号文取得部が取得した比較暗号文を記憶することを特徴とする請求項3乃至請求項及び請求項10乃至請求項12のいずれかに記載の類似度算出システム。
  18. データを記憶する記憶装置と、データを処理する処理装置とを有するコンピュータが実行することにより、上記コンピュータを請求項1または請求項2に記載の類似度算出装置として機能させることを特徴とするコンピュータプログラム。
  19. 類似度算出装置と、復号装置とを有する類似度算出システムが、比較データと対象データとの類似度を算出する類似度算出方法において、
    上記類似度算出装置及び上記復号装置は、データを記憶する記憶装置と、データを処理する処理装置とを有し、
    上記復号装置の記憶装置が、秘密鍵を記憶し、
    上記類似度算出装置の記憶装置が、上記復号装置が記憶した秘密鍵に対応する公開鍵を使った暗号化変換により上記比較データを変換した比較暗号文を記憶し、
    上記類似度算出装置の処理装置が、上記公開鍵を使った上記暗号化変換により上記対象データを変換した対象暗号文を取得し、
    上記類似度算出装置の処理装置が、一時鍵を生成し、
    上記類似度算出装置の処理装置が、上記類似度算出装置の記憶装置が記憶した比較暗号文と、上記類似度算出装置の処理装置が取得した対象暗号文と、上記類似度算出装置の処理装置が生成した一時鍵とに基づいて、上記比較暗号文及び上記対象暗号文が暗号化されたままの状態で、類似度算出の第一段階の計算をし、計算した結果を上記一時鍵で暗号化した類似度途中暗号文を算出し、
    上記類似度算出装置の処理装置が、上記類似度算出装置の処理装置が算出した類似度途中暗号文を上記復号装置に対して通知し、
    上記復号装置の処理装置が、上記類似度算出装置から通知された類似度途中暗号文を取得し、
    上記復号装置の処理装置が、上記復号装置の記憶装置が記憶した秘密鍵と、上記復号装置の処理装置が取得した類似度途中暗号文とに基づいて、上記秘密鍵を使って上記類似度途中暗号文を復号し、復号した結果が上記一時鍵で暗号化されたままの状態で、類似度算出の第二段階の計算をして、類似度途中復号文を算出し、
    上記復号装置の処理装置が、上記復号装置の処理装置が算出した類似度途中復号文を上記類似度算出装置に対して通知し、
    上記類似度算出装置の処理装置が、上記復号装置から通知された類似度途中復号文を取得し、
    上記類似度算出装置の処理装置が、上記類似度算出装置の処理装置が生成した一時鍵と、上記類似度算出装置の処理装置が取得した類似度途中復号文とに基づいて、上記一時鍵を使って上記類似度途中復号文を復号することにより、上記比較データと上記対象データとの類似度を算出することを特徴とする類似度算出方法。
JP2013500748A 2011-02-22 2011-02-22 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法 Expired - Fee Related JP5496410B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/053797 WO2012114452A1 (ja) 2011-02-22 2011-02-22 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法

Publications (2)

Publication Number Publication Date
JP5496410B2 true JP5496410B2 (ja) 2014-05-21
JPWO2012114452A1 JPWO2012114452A1 (ja) 2014-07-07

Family

ID=46720272

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2013500748A Expired - Fee Related JP5496410B2 (ja) 2011-02-22 2011-02-22 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法

Country Status (5)

Country Link
US (1) US20130318351A1 (ja)
EP (1) EP2680488B1 (ja)
JP (1) JP5496410B2 (ja)
CN (1) CN103380591B (ja)
WO (1) WO2012114452A1 (ja)

Families Citing this family (74)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9172529B2 (en) * 2011-09-16 2015-10-27 Certicom Corp. Hybrid encryption schemes
US9935765B2 (en) * 2011-11-03 2018-04-03 Genformatic, Llc Device, system and method for securing and comparing genomic data
CN103793265B (zh) * 2012-10-30 2016-05-11 腾讯科技(深圳)有限公司 优化进程的处理方法及装置
KR102017746B1 (ko) * 2012-11-14 2019-09-04 한국전자통신연구원 유사도 산출 방법 및 그 장치
JP6083234B2 (ja) * 2012-12-27 2017-02-22 富士通株式会社 暗号処理装置
JP5963936B2 (ja) 2013-02-25 2016-08-03 三菱電機株式会社 サーバ装置、秘匿検索プログラム,記録媒体及び秘匿検索システム
US8966277B2 (en) 2013-03-15 2015-02-24 Mitsubishi Electric Research Laboratories, Inc. Method for authenticating an encryption of biometric data
US9619000B2 (en) * 2013-05-17 2017-04-11 Nec Corporation Board, board apparatus and method for interconnection of boards
JP6142704B2 (ja) 2013-07-11 2017-06-07 富士通株式会社 秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法
JP6144992B2 (ja) * 2013-08-08 2017-06-07 株式会社日立製作所 検索可能暗号処理システム及び方法
US9813246B2 (en) * 2013-10-29 2017-11-07 Jory Schwach Encryption using biometric image-based key
PL3066612T3 (pl) 2013-11-07 2019-06-28 Scantrust Sa Dwuwymiarowy kod kreskowy oraz sposób uwierzytelniania takiego kodu kreskowego
JP6281425B2 (ja) * 2014-06-27 2018-02-21 富士通株式会社 秘匿データ照合装置、秘匿データ更新プログラムおよび秘匿データ更新方法
PL2993607T3 (pl) 2014-09-02 2017-07-31 Eckehard Kraska Analiza zdarzenia zgodnie z polityką prywatności
CN105447374B (zh) * 2014-09-11 2018-08-21 塔塔咨询服务有限公司 用于产生和找回授权码的计算机实施系统及方法
US9438412B2 (en) * 2014-12-23 2016-09-06 Palo Alto Research Center Incorporated Computer-implemented system and method for multi-party data function computing using discriminative dimensionality-reducing mappings
CN107251479B (zh) * 2015-02-20 2020-08-11 三菱电机株式会社 数据保管装置和数据处理方法
JP2016224400A (ja) * 2015-05-29 2016-12-28 パナソニック インテレクチュアル プロパティ コーポレーション オブ アメリカPanasonic Intellectual Property Corporation of America 類似情報検索方法、端末装置及び類似情報検索システム
US9875375B2 (en) * 2015-05-29 2018-01-23 Panasonic Intellectual Property Corporation Of America Method for performing similar-information search while keeping content confidential by encryption
JP6763378B2 (ja) 2015-06-18 2020-09-30 日本電気株式会社 暗号情報作成装置、暗号情報作成方法、暗号情報作成プログラム、及び、照合システム
CN104967516B (zh) * 2015-07-24 2018-04-24 四川理工学院 多用户加密数据可比较加密方法及加密数据比较方法
JP5985123B1 (ja) 2015-10-09 2016-09-06 三菱電機株式会社 秘匿検索システム、管理装置、秘匿検索方法及び秘匿検索プログラム
JP6504013B2 (ja) * 2015-10-13 2019-04-24 富士通株式会社 暗号処理方法、暗号処理装置、および暗号処理プログラム
US10769255B2 (en) 2015-11-11 2020-09-08 Samsung Electronics Co., Ltd. Methods and apparatuses for adaptively updating enrollment database for user authentication
JP6524899B2 (ja) 2015-12-02 2019-06-05 富士通株式会社 秘匿データ照合装置、秘匿データ照合プログラムおよび秘匿データ照合方法
EP3182640B1 (en) * 2015-12-14 2018-04-25 Panasonic Intellectual Property Corporation of America Search method, search device, search system, and program
US10402750B2 (en) * 2015-12-30 2019-09-03 Facebook, Inc. Identifying entities using a deep-learning model
KR101834504B1 (ko) * 2016-01-15 2018-03-06 단국대학교 산학협력단 암복호화 장치 및 방법
JP6507115B2 (ja) * 2016-03-22 2019-04-24 株式会社日立製作所 1:n生体認証・暗号・署名システム
KR101834522B1 (ko) 2016-04-22 2018-03-06 단국대학교 산학협력단 데이터 확인 장치 및 이를 이용하여 데이터를 확인하는 방법
WO2018100740A1 (ja) * 2016-12-02 2018-06-07 日本電気株式会社 暗号文照合システム及び暗号文照合方法
US11895240B2 (en) * 2016-12-15 2024-02-06 Nec Corporation System, apparatus, method and program for preventing illegal distribution of an access token
WO2018110608A1 (ja) * 2016-12-15 2018-06-21 日本電気株式会社 照合システム、方法、装置及びプログラム
US10438022B2 (en) * 2016-12-16 2019-10-08 Arm Limited Logic encryption using on-chip memory cells
US11196541B2 (en) 2017-01-20 2021-12-07 Enveil, Inc. Secure machine learning analytics using homomorphic encryption
US11777729B2 (en) * 2017-01-20 2023-10-03 Enveil, Inc. Secure analytics using term generation and homomorphic encryption
KR102476756B1 (ko) * 2017-06-20 2022-12-09 삼성전자주식회사 사용자 인증을 위한 등록 데이터베이스의 적응적 갱신 방법 및 장치
CN111095332B (zh) * 2017-07-06 2023-12-08 罗伯特·博世有限公司 用于保护隐私的社交媒体广告的方法和系统
WO2019014425A1 (en) * 2017-07-13 2019-01-17 Pindrop Security, Inc. SAFE PARTY WITH SEVERAL PARTIES KNOWING NO VOICE IMPRESSIONS
US10957355B2 (en) * 2018-02-28 2021-03-23 International Business Machines Corporation Authenticating digital recordings
US10938852B1 (en) 2020-08-14 2021-03-02 Private Identity Llc Systems and methods for private authentication with helper networks
US11789699B2 (en) 2018-03-07 2023-10-17 Private Identity Llc Systems and methods for private authentication with helper networks
US11265168B2 (en) 2018-03-07 2022-03-01 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US11394552B2 (en) 2018-03-07 2022-07-19 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US11210375B2 (en) 2018-03-07 2021-12-28 Private Identity Llc Systems and methods for biometric processing with liveness
US11170084B2 (en) 2018-06-28 2021-11-09 Private Identity Llc Biometric authentication
US11138333B2 (en) 2018-03-07 2021-10-05 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US10721070B2 (en) 2018-03-07 2020-07-21 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US11489866B2 (en) 2018-03-07 2022-11-01 Private Identity Llc Systems and methods for private authentication with helper networks
US11502841B2 (en) 2018-03-07 2022-11-15 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US11392802B2 (en) 2018-03-07 2022-07-19 Private Identity Llc Systems and methods for privacy-enabled biometric processing
US10665244B1 (en) 2018-03-22 2020-05-26 Pindrop Security, Inc. Leveraging multiple audio channels for authentication
US20190318118A1 (en) * 2018-04-16 2019-10-17 International Business Machines Corporation Secure encrypted document retrieval
JP2019207281A (ja) * 2018-05-28 2019-12-05 株式会社日立製作所 大小判定サーバ、大小判定暗号化システム、及び大小判定方法
US11063936B2 (en) * 2018-08-07 2021-07-13 Microsoft Technology Licensing, Llc Encryption parameter selection
JP2020072348A (ja) * 2018-10-30 2020-05-07 キヤノン株式会社 認証方法、認証装置、被認証装置及び画像形成装置
US11368308B2 (en) 2019-01-11 2022-06-21 Visa International Service Association Privacy preserving biometric authentication
CN114641966A (zh) * 2019-09-12 2022-06-17 索尼集团公司 认证装置、认证方法、程序和信息处理装置
WO2021076868A1 (en) * 2019-10-16 2021-04-22 Coinbase, Inc. Systems and methods for re-using cold storage keys
US11250116B2 (en) * 2019-10-25 2022-02-15 Visa International Service Association Optimized private biometric matching
US11621837B2 (en) 2020-09-03 2023-04-04 Theon Technology Llc Secure encryption of data using partial-key cryptography
US11310042B2 (en) 2020-09-11 2022-04-19 Crown Sterling Limited, LLC Methods of storing and distributing large keys
KR20220040309A (ko) * 2020-09-23 2022-03-30 삼성전자주식회사 동형 암호화 장치 및 그 동작 방법
US11546164B2 (en) * 2020-10-23 2023-01-03 Visa International Service Association Verification of biometric templates for privacy preserving authentication
US11528136B2 (en) 2020-11-24 2022-12-13 Crown Sterling Limited, LLC Decryption of encrypted data missing a private key
WO2022172096A1 (en) * 2021-02-10 2022-08-18 Alipay Labs (singapore) Pte. Ltd. Method and system for processing reference faces
US11755772B2 (en) 2021-09-20 2023-09-12 Crown Sterling Limited, LLC Securing data in a blockchain with a one-time pad
US11943336B2 (en) 2021-11-22 2024-03-26 Theon Technology Llc Use of gradient decent function in cryptography
US11902420B2 (en) 2021-11-23 2024-02-13 Theon Technology Llc Partial cryptographic key transport using one-time pad encryption
CN114419719B (zh) * 2022-03-29 2022-08-12 北京爱笔科技有限公司 一种生物特征的处理方法及装置
US11496288B1 (en) * 2022-04-08 2022-11-08 Verkada Inc. Enhanced encryption for face-related data
US11868305B2 (en) * 2022-04-25 2024-01-09 Simuli, Inc. Nonlinear, decentralized processing unit and related systems or methodologies
US11569842B1 (en) * 2022-04-25 2023-01-31 Simuli, Inc. Nonlinear, decentralized processing unit and related systems or methodologies
CN115834088A (zh) * 2023-02-21 2023-03-21 杭州天谷信息科技有限公司 一种生物特征认证方法和系统

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501975A (ja) * 2003-08-08 2007-02-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム及びその方法
JP2008521025A (ja) * 2004-11-16 2008-06-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 類似性指標のセキュアな計算
JP2009129292A (ja) * 2007-11-27 2009-06-11 Hitachi Ltd 生体認証方法、装置およびシステム
JP2011211593A (ja) * 2010-03-30 2011-10-20 Fujitsu Ltd 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP4519963B2 (ja) 1999-06-21 2010-08-04 富士通株式会社 生体情報の暗号化・復号化方法および装置並びに、生体情報を利用した本人認証システム
US20040250073A1 (en) * 2003-06-03 2004-12-09 Cukier Johnas I. Protocol for hybrid authenticated key establishment
JP2006262333A (ja) 2005-03-18 2006-09-28 Ic Brains Co Ltd 生体認証システム
US8204213B2 (en) * 2006-03-29 2012-06-19 International Business Machines Corporation System and method for performing a similarity measure of anonymized data
CN101075868B (zh) * 2006-05-19 2010-05-12 华为技术有限公司 一种远程身份认证的系统、终端、服务器和方法
US8417960B2 (en) * 2006-09-06 2013-04-09 Hitachi, Ltd. Method for generating an encryption key using biometrics authentication and restoring the encryption key and personal authentication system
CN101221612A (zh) * 2007-01-11 2008-07-16 上海银晨智能识别科技有限公司 利用人脸识别进行加密解密电子文档的方法
JP2008271508A (ja) * 2007-03-28 2008-11-06 Sharp Corp 画像処理装置、画像形成装置、画像送信装置、画像読取装置、画像処理システム、画像処理方法、画像処理プログラムおよびその記録媒体
CN101098232B (zh) * 2007-07-12 2012-05-09 兰州大学 一种动态口令与多生物特征结合的身份认证方法
US8300904B2 (en) * 2007-07-18 2012-10-30 Agency For Science, Technology And Research Method and device for determining a similarity value between minutiae templates
JP2009129210A (ja) 2007-11-25 2009-06-11 Tokyo Institute Of Technology チャレンジ・レスポンス生体認証方法
JP5426403B2 (ja) * 2008-01-29 2014-02-26 株式会社ディー・ディー・エス ハイブリッド生体認証装置、ハイブリッド生体認証方法、ハイブリッド生体認証用コンピュータプログラム。
JP2010054875A (ja) 2008-08-29 2010-03-11 Mitsubishi Electric Corp 演算装置、復号装置、暗号化装置、情報共有システム、2dnf演算システム、署名生成装置、署名検証装置、署名処理システム、署名検証システム、演算方法及び演算プログラム
US8249250B2 (en) * 2009-03-30 2012-08-21 Mitsubishi Electric Research Laboratories, Inc. Secure similarity verification between homomorphically encrypted signals
JP2010286937A (ja) * 2009-06-10 2010-12-24 Hitachi Ltd 生体認証方法、及び、生体認証に用いるクライアント端末、認証サーバ
US20100329448A1 (en) * 2009-06-30 2010-12-30 Rane Shantanu D Method for Secure Evaluation of a Function Applied to Encrypted Signals
WO2011052056A1 (ja) * 2009-10-29 2011-05-05 三菱電機株式会社 データ処理装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007501975A (ja) * 2003-08-08 2007-02-01 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ データ処理システム及びその方法
JP2008521025A (ja) * 2004-11-16 2008-06-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 類似性指標のセキュアな計算
JP2009129292A (ja) * 2007-11-27 2009-06-11 Hitachi Ltd 生体認証方法、装置およびシステム
JP2011211593A (ja) * 2010-03-30 2011-10-20 Fujitsu Ltd 認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CSNG200600929033; 佐久間 淳: 'プライバシを保護した内積比較プロトコルの提案' 情報処理学会研究報告 Vol.2006 No.81 , 20060721, 257〜264頁, 社団法人 情報処理学会 *
JPN6014003875; 佐久間 淳: 'プライバシを保護した内積比較プロトコルの提案' 情報処理学会研究報告 Vol.2006 No.81 , 20060721, 257〜264頁, 社団法人 情報処理学会 *

Also Published As

Publication number Publication date
EP2680488B1 (en) 2019-08-21
JPWO2012114452A1 (ja) 2014-07-07
CN103380591A (zh) 2013-10-30
EP2680488A1 (en) 2014-01-01
US20130318351A1 (en) 2013-11-28
WO2012114452A1 (ja) 2012-08-30
CN103380591B (zh) 2016-03-30
EP2680488A4 (en) 2017-07-19

Similar Documents

Publication Publication Date Title
JP5496410B2 (ja) 類似度算出システム及び類似度算出装置及びコンピュータプログラム及び類似度算出方法
US11882218B2 (en) Matching system, method, apparatus, and program
Liu et al. An efficient privacy-preserving outsourced calculation toolkit with multiple keys
Zhou et al. Efficient homomorphic encryption on integer vectors and its applications
JP6488847B2 (ja) リレーショナル暗号化
EP2873186B1 (en) Method and system for homomorphicly randomizing an input
US9749128B2 (en) Compact fuzzy private matching using a fully-homomorphic encryption scheme
JP5300983B2 (ja) データ処理装置
EP2237474B1 (en) Secure Distortion Computation Among Untrusting Parties Using Homomorphic Encryption
US9674189B1 (en) Relational encryption
US20170104752A1 (en) Method of processing a ciphertext, apparatus, and storage medium
JP5586795B2 (ja) データ処理装置及びデータ処理方法及びプログラム
JP6421576B2 (ja) 暗号処理装置、暗号処理方法、及び暗号処理プログラム
CN101938463A (zh) 安全地评估对加密信号施加的函数的方法
JP2016080766A (ja) 暗号処理方法、暗号処理装置、及び暗号処理プログラム
WO2015103977A1 (zh) 一种基于超球面的多变量公钥加密/解密系统及方法
Sokouti et al. Medical image encryption: an application for improved padding based GGH encryption algorithm
Yasuda Secure Hamming distance computation for biometrics using ideal-lattice and ring-LWE homomorphic encryption
El Moustaine et al. A lattice based authentication for low-cost RFID
Bhat et al. Fuzzy extractor and chaos enhanced elliptic curve cryptography for image encryption and authentication
Al Etaiwi et al. Structured encryption algorithm for text cryptography
Alarcon-Aquino et al. Biometric Cryptosystem based on Keystroke Dynamics and K-medoids
Abidin et al. An efficient entity authentication protocol with enhanced security and privacy properties
WO2021070838A1 (ja) 秘匿認証方法および秘匿認証システム
Izmerly et al. Chosen ciphertext attacks on lattice-based public key encryption and modern (non-quantum) cryptography in a quantum environment

Legal Events

Date Code Title Description
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: 20140204

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20140304

R150 Certificate of patent or registration of utility model

Ref document number: 5496410

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees