IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社日立製作所の特許一覧

特許7594986生体認証システム、生体認証サーバ、及び生体認証方法
<>
  • 特許-生体認証システム、生体認証サーバ、及び生体認証方法 図1
  • 特許-生体認証システム、生体認証サーバ、及び生体認証方法 図2
  • 特許-生体認証システム、生体認証サーバ、及び生体認証方法 図3
  • 特許-生体認証システム、生体認証サーバ、及び生体認証方法 図4
  • 特許-生体認証システム、生体認証サーバ、及び生体認証方法 図5
  • 特許-生体認証システム、生体認証サーバ、及び生体認証方法 図6A
  • 特許-生体認証システム、生体認証サーバ、及び生体認証方法 図6B
  • 特許-生体認証システム、生体認証サーバ、及び生体認証方法 図7
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-11-27
(45)【発行日】2024-12-05
(54)【発明の名称】生体認証システム、生体認証サーバ、及び生体認証方法
(51)【国際特許分類】
   H04L 9/32 20060101AFI20241128BHJP
   G06F 21/32 20130101ALI20241128BHJP
【FI】
H04L9/32 100D
G06F21/32
【請求項の数】 9
(21)【出願番号】P 2021137468
(22)【出願日】2021-08-25
(65)【公開番号】P2023031772
(43)【公開日】2023-03-09
【審査請求日】2024-02-08
(73)【特許権者】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】中村 渉
(72)【発明者】
【氏名】高橋 健太
(72)【発明者】
【氏名】藤尾 正和
(72)【発明者】
【氏名】加賀 陽介
(72)【発明者】
【氏名】安村 慶子
【審査官】青木 重徳
(56)【参考文献】
【文献】特開2016-111594(JP,A)
【文献】特開2010-177998(JP,A)
【文献】特許第5496410(JP,B2)
【文献】特開2011-076592(JP,A)
【文献】特開2017-167884(JP,A)
【文献】特開2005-130384(JP,A)
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/32
G06F 21/32
(57)【特許請求の範囲】
【請求項1】
生体認証システムであって、
第1認証端末と、第1サーバと、を含み、
前記第1サーバは、登録対象者の第1登録用生体情報に基づく第1登録用特徴量と、登録時に選択された乱数に基づく第1登録用秘密情報と、に基づいて生成された第1登録用データを保持し、
前記第1認証端末は、認証対象者の第1認証用生体情報に基づく第1認証用特徴量と、認証時に選択された乱数に基づく第1認証用秘密情報と、を保持し、
前記第1認証端末は、前記第1認証用特徴量と、前記第1認証用秘密情報と、に基づいて、第1認証用データを生成して前記第1サーバに送信し、
前記第1サーバは、
前記第1登録用データと、前記第1認証用データと、に基づいて、前記第1登録用特徴量と、前記第1認証用特徴量と、の近さの推定値を算出し、
前記推定値に基づいて、前記認証対象者を受理するかの判定を実行し、
前記第1登録用特徴量は集合Xの要素であるx_Eであり、前記第1認証用特徴量は前記集合Xの要素であるx_Aであり、
前記第1登録用秘密情報は集合Sの要素であるs_Eであり、前記第1認証用秘密情報は前記集合Sの要素であるs_Aであり、
前記集合Xは、線形空間でありかつ前記集合Xの部分集合であり、
前記第1登録用データはc_E:=x_E+s_Eであり、
前記第1認証用データはc_A:=x_A+s_Aであり、
前記推定値はf(c_E,c_A):=d(c_E-c_A-g(c_E-c_A),0)である(但し、dは距離関数又は近さを示す指標を算出するための関数であり、gは誤り訂正処理を示す)、生体認証システム。
【請求項2】
請求項1に記載の生体認証システムであって、
複数のサブシステムを備え、
前記複数のサブシステムそれぞれが前記第1認証端末及び前記第1サーバを含み、
いずれかの前記第1サーバは、前記複数のサブシステムの一部又は全部の第1サーバによる前記判定の結果に基づいて、前記認証対象者を受理するかの判定を実行する、生体認証システム。
【請求項3】
請求項1に記載の生体認証システムであって、
第2認証端末と、第2サーバと、を含み、
前記第2サーバは、
前記登録対象者の第2登録用生体情報に基づく第2登録用特徴量と、第2登録用秘密情報と、に基づいて生成された第2登録用データを保持し、
メッセージを生成して、前記第2認証端末に送信し、
前記第2認証端末は、前記認証対象者の第2認証用生体情報に基づく第2認証用特徴量を保持し、
前記第2認証端末は、前記第2認証用生体情報に基づく前記第2認証用特徴量と、前記メッセージと、に基づいて、生体署名を生成して前記第2サーバに送信し、
前記第2サーバは、前記判定において前記認証対象者を受理すると判定した場合、前記第2登録用データと、前記メッセージと、前記生体署名と、に基づいて、前記生体署名を検証する、生体認証システム。
【請求項4】
請求項3に記載の生体認証システムであって、
前記第2認証端末は、第2認証用秘密情報を生成し、
前記第2認証端末は、前記第2認証用特徴量と、前記第2認証用秘密情報と、前記メッセージと、に基づいて前記生体署名を生成する、生体認証システム。
【請求項5】
請求項4に記載の生体認証システムであって、
前記第1登録用生体情報は前記第2登録用生体情報を含み、前記第1登録用特徴量は前記第2登録用特徴量を含み、前記第1登録用データは前記第2登録用データを含み、前記第1認証用生体情報は前記第2認証用生体情報を含み、前記第1認証用特徴量は前記第2認証用特徴量を含み、かつ/又は前記第1認証用データは前記生体署名のうち認証用コミットメントを含む、生体認証システム。
【請求項6】
請求項3に記載の生体認証システムであって、
前記第2認証端末は、
前記第2登録用データを保持し、
前記第2認証用特徴量と、前記第2登録用データと、に基づき第2認証用秘密情報を生成し、
前記第2認証用秘密情報と、前記メッセージと、に基づき前記生体署名を生成する、生体認証システム。
【請求項7】
請求項6に記載の生体認証システムであって、
前記第1登録用生体情報は前記第2登録用生体情報を含み、前記第1登録用特徴量は前記第2登録用特徴量を含み、前記第1登録用データは前記第2登録用データを含み、前記第1認証用生体情報は前記第2認証用生体情報を含み、かつ/又は前記第1認証用特徴量は前記第2認証用特徴量を含む、ことを特徴とする生体認証システム。
【請求項8】
生体認証サーバであって、
プロセッサとメモリとを保持し、
前記メモリは、
登録対象者の第1登録用生体情報に基づく第1登録用特徴量と、登録時に選択された乱数に基づく第1登録用秘密情報と、に基づいて生成された第1登録用データと、
認証対象者の第1認証用生体情報に基づく第1認証用特徴量と、認証時に選択された乱数に基づく第1認証用秘密情報と、に基づいて生成された第1認証用データと、を保持し、
前記プロセッサは、
前記第1登録用データと、前記第1認証用データと、に基づいて、前記第1登録用特徴量と、前記第1認証用特徴量と、の近さの推定値を算出し、
前記推定値に基づいて、前記認証対象者を受理するかの判定を実行し、
前記第1登録用特徴量は集合Xの要素であるx_Eであり、前記第1認証用特徴量は前記集合Xの要素であるx_Aであり、
前記第1登録用秘密情報は集合Sの要素であるs_Eであり、前記第1認証用秘密情報は前記集合Sの要素であるs_Aであり、
前記集合Xは、線形空間でありかつ前記集合Xの部分集合であり、
前記第1登録用データはc_E:=x_E+s_Eであり、
前記第1認証用データはc_A:=x_A+s_Aであり、
前記推定値はf(c_E,c_A):=d(c_E-c_A-g(c_E-c_A),0)である(但し、dは距離関数又は近さを示す指標を算出するための関数であり、gは誤り訂正処理を示す)、生体認証サーバ。
【請求項9】
生体認証システムによる生体認証方法であって、
前記生体認証システムは、第1認証端末と、第1サーバと、を含み、
前記第1サーバは、登録対象者の第1登録用生体情報に基づく第1登録用特徴量と、登録時に選択された乱数に基づく第1登録用秘密情報と、に基づいて生成された第1登録用データを保持し、
前記第1認証端末は、認証対象者の第1認証用生体情報に基づく第1認証用特徴量と、認証時に選択された乱数に基づく第1認証用秘密情報と、を保持し、
前記生体認証方法は、
前記第1認証端末が、前記第1認証用特徴量と、前記第1認証用秘密情報と、に基づいて、第1認証用データを生成して前記第1サーバに送信し、
前記第1サーバが、前記第1登録用データと、前記第1認証用データと、に基づいて、前記第1登録用特徴量と、前記第1認証用特徴量と、の近さの推定値を算出し、
前記第1サーバが、前記推定値に基づいて、前記認証対象者を受理するかの判定を実行し、
前記第1登録用特徴量は集合Xの要素であるx_Eであり、前記第1認証用特徴量は前記集合Xの要素であるx_Aであり、
前記第1登録用秘密情報は集合Sの要素であるs_Eであり、前記第1認証用秘密情報は前記集合Sの要素であるs_Aであり、
前記集合Xは、線形空間でありかつ前記集合Xの部分集合であり、
前記第1登録用データはc_E:=x_E+s_Eであり、
前記第1認証用データはc_A:=x_A+s_Aであり、
前記推定値はf(c_E,c_A):=d(c_E-c_A-g(c_E-c_A),0)である(但し、dは距離関数又は近さを示す指標を算出するための関数であり、gは誤り訂正処理を示す)、生体認証方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、生体認証システム、生体認証サーバ、及び生体認証方法に関する。
【背景技術】
【0002】
近年、個人認証の重要性が高まっている。確実な個人認証方式として生体認証が注目されている。生体認証システムは、登録処理において、ユーザから取得した生体情報を用いて、認証処理の際に用いるための登録用データ(テンプレート)を生成し、DB(Data Base)に保存する。その上で、生体認証システムは、認証処理において、ユーザから再度取得される生体情報を用いて、認証用データを生成し、生成された認証用データと、保存された登録用データと、を用いて検証を行う。
【0003】
生体認証システムが登録時や認証時に取得する生体情報や、取得された生体情報から生成される特徴量は、プライバシー侵害や悪用等を避けるため、秘匿すべきである。
【0004】
非特許文献1に記載のFuzzy Signature等のバイオメトリック署名方式に基づく生体認証システムでは、DBに格納される登録用データと、認証処理においてサーバに送信される認証用データと、の両方が漏洩しても、漏洩したデータから生体情報や特徴量を復元することが困難であることが知られている。
【先行技術文献】
【非特許文献】
【0005】
【文献】K. Takahashi, T. Matsuda, T. Murakami, G. Hanaoka, and M. Nishigaki, “Signature schemes with a fuzzy private key,” volume 18, pp. 581-617, 2019.
【発明の概要】
【発明が解決しようとする課題】
【0006】
バイオメトリック署名方式に基づく生体認証システムでは、認証処理において暗号学的な検証処理が必要となるため、パターンマッチング等に基づく生体認証システムと比較して認証処理時間を要する。そこで本発明の一態様は、登録用データと認証用データの両方が漏洩しても、漏洩したデータから生体情報や特徴量を復元することが困難であり、かつ高速な認証処理を実行する。
【課題を解決するための手段】
【0007】
上記課題を解決するために、本発明の一態様は以下の構成を採用する。生体認証システムは、第1認証端末と、第1サーバと、を含み、前記第1サーバは、登録対象者の第1登録用生体情報に基づく第1登録用特徴量と、第1登録用秘密情報と、に基づいて生成された第1登録用データを保持し、前記第1認証端末は、認証対象者の第1認証用生体情報に基づく第1認証用特徴量と、第1認証用秘密情報と、を保持し、前記第1認証端末は、前記第1認証用特徴量と、前記第1認証用秘密情報と、に基づいて、第1認証用データを生成して前記第1サーバに送信し、前記第1サーバは、前記第1登録用データと、前記第1認証用データと、に基づいて、前記第1登録用特徴量と、前記第1認証用特徴量と、の近さの推定値を算出し、前記推定値に基づいて、前記認証対象者を受理するかの判定を実行する。
【発明の効果】
【0008】
本発明の一態様によれば、登録用データと認証用データとの両方が漏洩しても、漏洩したデータから生体情報や特徴量を復元することが困難であり、かつ高速な認証処理を実行することができる。
【0009】
上記した以外の課題、構成及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0010】
図1】実施例1における生体認証システムの構成例を示すブロック図である。
図2】実施例1における生体認証システムに含まれる各装置、及び連携システムを構成する計算機のハードウェア構成例を示すブロック図である。
図3】実施例1における登録処理の一例を示すシーケンス図である。
図4】実施例1における認証処理の一例を示すシーケンス図である。
図5】実施例2における生体認証システムの構成例を示すブロック図である。
図6A】実施例2における登録処理の一例を示すシーケンス図である。
図6B】実施例2における登録処理の一例を示すシーケンス図である。
図7】実施例2における認証処理の一例を示すシーケンス図である。
【発明を実施するための形態】
【0011】
以下、本発明の実施形態を図面に基づいて詳細に説明する。なお、本実施形態は本発明を実現するための一例に過ぎず、本発明の技術的範囲を限定するものではないことに注意すべきである。
【0012】
生体認証方式は、1:1認証と1:N認証とを含む。1:1認証は、登録処理が完了したユーザ(登録済ユーザ)のうち指定された1人のユーザと、認証対象者と、が同一人物であるかを判定する認証方式である。登録済ユーザから1人のユーザを指定する方法の例として、生体認証システムが、認証対象者にIDの提示を求める方法が挙げられる。
【0013】
1:N認証は、1人以上の登録済ユーザから認証対象者を識別する方式である。本実施形態では1:N認証を行う生体認証システムを主に説明する。ただし、生体認証システムが、認証処理において認証対象者にIDの提示を求めるなどの処理を追加で行うことにより、登録済ユーザから1人のユーザを指定すれば、本発明を1:1認証にも適用できることは明らかである。
【実施例1】
【0014】
本実施例は、ネットワークを介した生体認証システムの一例を説明する。図1は、生体認証システムの構成例を示すブロック図である。生体認証システム10は、例えば、第1登録端末1100と、第1認証端末1200と、第1サーバ1300と、第1DB(DataBase)1400と、を含む。第1登録端末1100と、第1認証端末1200と、第1サーバ1300と、第1DB1400と、はインターネット等のネットワーク1500により互いに接続されている。
【0015】
第1登録端末1100は、例えば、第1登録用生体情報取得部111と、第1登録用特徴量抽出部112と、第1登録用秘密情報生成部113と、第1登録用データ生成部114と、第1登録端末通信部115と、を有する。
【0016】
第1登録用生体情報取得部111は、登録対象者から第1登録用生体情報を取得する。第1登録用特徴量抽出部112は、第1登録用生体情報から第1登録用特徴量を抽出する。第1登録用秘密情報生成部113とは、第1登録用秘密情報を生成する。第1登録用データ生成部114は、第1登録用特徴量と第1登録用秘密情報とに基づいて、第1登録用データを生成する。第1登録端末通信部115は、他の装置と通信する。
【0017】
第1認証端末1200は、第1認証用生体情報取得部121と、第1認証用特徴量抽出部122と、第1認証用秘密情報生成部123と、第1認証用データ生成部124と、第1認証端末通信部125と、を有する。
【0018】
第1認証用生体情報取得部121は、認証対象者から第1認証用生体情報を取得する。第1認証用特徴量抽出部122は、第1認証用生体情報から第1認証用特徴量を抽出する。第1認証用秘密情報生成部123は、第1認証用秘密情報を生成する。第1認証用データ生成部124は、第1認証用特徴量と第1認証用秘密情報とに基づいて、第1認証用データを生成する。第1認証端末通信部125は、他の装置と通信する。
【0019】
第1サーバ1300は、距離推定値計算部131と、判定部132と、第1サーバ通信部133と、を有する。距離推定値計算部131は、第1登録用データと第1認証用データとに基づいて、第1登録用特徴量と第1認証用特徴量との距離の推定値を計算する。判定部132は、距離推定値計算部131が計算した距離の推定値に基づいて、認証対象者が受理ユーザであるかを判定する。第1サーバ通信部133は、他の装置と通信する。
【0020】
第1DB1400は、第1DB通信部141と、第1格納部142と、を有する。第1DB通信部141は、他の装置と通信する。第1格納部142は、第1登録用データを第1DB1400の補助記憶装置に格納する。
【0021】
さらに、連携システム1900が、ネットワーク1500を介して、生体認証システム10に含まれる装置に接続されている。決済システム、入退管理システム、コンピュータログイン管理システム、及び生体認証システム10とは別の個人認証システムは、いずれも連携システム1900の一例である。連携システム1900は、連携システム通信部191と、処理実行部192と、を有する。連携システム通信部191は、他の装置と通信する。処理実行部192は、受理ユーザに対して、連携システム1900の処理を実行する。
【0022】
なお、生体認証システム10に含まれる一部又は全ての装置が一体化していてもよい。例えば、第1登録端末1100と第1認証端末1200とが一体化していたり、第1サーバ1300と第1DB1400とが一体化していたりしてもよい。
【0023】
図2は、実施例1に係る生体認証システム10に含まれる各装置、及び連携システム1900を構成する計算機のハードウェア構成例を示すブロック図である。計算機1000は、プロセッサを含み各種プログラムを実行するCPU1001と、CPU1001がアクセス可能なメモリ1002と、補助記憶装置1003と、入力装置1004と、出力装置1005と、通信装置1006と、外部からのプログラム等を読み込む読込装置1007と、を含む。
【0024】
CPU1001は、プロセッサを含み、メモリ1002に格納されたプログラムを実行する。メモリ1002は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU1001が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0025】
補助記憶装置1003は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU1001が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置1003から読み出されて、メモリ1002にロードされて、CPU1001によって実行される。なお、補助記憶装置1003に格納される情報の一部又は全てがメモリ1002に格納されてもよいし、メモリ1002にされる情報の一部又は全てが補助記憶装置1003に格納されてもよい。
【0026】
入力装置1004は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。入力装置1004は、生体情報を取得するためのセンサを含んでもよい。出力装置1005は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。
【0027】
通信装置1006は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。また、通信装置1006は、例えば、USB(Universal Serial Bus)等のシリアルインターフェースを含んでもよい。
【0028】
CPU1001が実行するプログラムの一部又は全ては、非一時的記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)から、又は、非一時的記憶装置を備える外部計算機からネットワークを介して、計算機1000に提供され、非一時的記憶媒体である不揮発性の補助記憶装置1003に格納されてもよい。このため、計算機1000は、リムーバブルメディアからデータを読み込む読込装置1007を有するとよい。
【0029】
生体認証システム10に含まれる各装置は、物理的に一つの計算機1000上で、又は、論理的又は物理的に構成された複数の計算機1000上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。
【0030】
第1登録端末1100を構成する計算機1000のCPU1001は、第1登録用生体情報取得部111と、第1登録用特徴量抽出部112と、第1登録用秘密情報生成部113と、第1登録用データ生成部114と、第1登録端末通信部115と、を含む。
【0031】
第1認証端末1200を構成する計算機1000のCPU1001は、第1認証用生体情報取得部121と、第1認証用特徴量抽出部122と、第1認証用秘密情報生成部123と、第1認証用データ生成部124と、第1認証端末通信部125と、を含む。
【0032】
第1サーバ1300を構成する計算機1000のCPU1001は、距離推定値計算部131と、判定部132と、第1サーバ通信部133と、を含む。第1DBを構成する計算機1000のCPU1001は、第1DB通信部141を含む。連携システム1900を構成する計算機1000のCPU1001は、連携システム通信部191と、処理実行部192と、を含む。
【0033】
なお、例えば、当該CPU1001は、当該計算機1000のメモリ1002にロードされた第1登録用生体情報取得プログラムに従って動作することで、第1登録用生体情報取得部111として機能し、メモリ1002にロードされた第1登録用特徴量抽出プログラムに従って動作することで、第1登録用特徴量抽出部112として機能する。当該CPU1001に含まれる他の機能部についても、プログラムと機能部の関係は同様であり、生体認証システム10に含まれる他の装置を構成する計算機1000のCPU1001に含まれる機能部についても、プログラムと機能部の関係は同様である。
【0034】
なお、生体認証システム10に含まれる各装置を構成する計算機1000のCPU1001に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。
【0035】
なお、本実施形態において、生体認証システム10に含まれる各装置が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース又はキューから適切に選択したデータ構造体が、情報を格納することができる。
【0036】
図3は、登録処理の一例を示すシーケンス図である。なお、複数のユーザが生体認証システム10を使用する場合、生体認証システム10は、各ユーザに対する登録処理を行う。
【0037】
ステップS11101において、第1登録用生体情報取得部111は、登録対象者から第1登録用生体情報を取得する。第1登録用生体情報として、指紋、指静脈、虹彩、顔、掌紋、又は声紋などの、個人を特定可能な任意の生体情報のモダリティを用いることができる。ステップS11102において、第1登録用特徴量抽出部112は、ステップS11101で取得された第1登録用生体情報から第1登録用特徴量を抽出する。
【0038】
ステップS11103において、第1登録用秘密情報生成部113は、第1登録用秘密情報を生成する。第1登録用秘密情報生成部113は、例えば、第1登録用生体情報と、第1登録用特徴量と、乱数と、予め設定された定数との少なくとも1つを引数として所定の関数に代入した値として、第1登録用秘密情報を生成する。第1登録用秘密情報生成処理の具体例は後述する。
【0039】
ステップS11104において、第1登録用データ生成部114は、ステップS11103で生成された第1登録用秘密情報を用いて、ステップS11102で抽出された第1登録用特徴量を秘匿化する処理を行うことにより、第1登録用データを生成する。第1登録用データ生成処理の例は後述する。ステップS11105において、第1登録端末通信部115は、ステップS11104で生成された第1登録用データを第1DB1400に送信する。
【0040】
ステップS11401において、第1DB通信部141は、ステップS11105で送信された第1登録用データを受信する。ステップS11402において、第1格納部142は、ステップS11401で受信された第1登録用データを、第1DB1400の補助記憶装置1003に格納する。なお、第1格納部142は、ユーザIDなどの登録対象ユーザに関する情報を発行し、当該発行した情報と第1登録用データとを紐づけて第1DB1400の補助記憶装置1003に格納するとよい。
【0041】
図4は、認証処理の一例を示すシーケンス図である。ステップS21201において、第1認証用生体情報取得部121は、認証対象者から第1認証用生体情報を取得する。第1認証用生体情報は、第1登録用生体情報と同じモダリティであるとする。第1認証用生体情報の取得回数、取得時間、及び明るさなどの取得条件は、第1登録用生体情報取得処理の取得条件と異なっていてもよいし、同一であってもよい。
【0042】
ステップS21202において、第1認証用特徴量抽出部122は、ステップS21201で取得された第1認証用生体情報から第1認証用特徴量を抽出する。ステップS21202の第1認証用特徴量抽出処理は、例えば、ステップS11102の第1登録用特徴量抽出処理と同一の方法で実行されればよい。また、ステップS21202の第1認証用特徴量抽出処理は、ステップS11102の第1登録用特徴量抽出処理と異なる方法で実行されてもよい。具体的には、例えば、ステップS11102の第1登録用特徴量抽出処理と、ステップS21202の第1認証用特徴量抽出処理と、の一方又は双方において、生体情報を異なるサイズに変換したり、異なる加工を施したり、一方において生体情報にノイズを加えるなどの追加の加工を行ったりするなどしてもよい。
【0043】
ステップS21203において、第1認証用秘密情報生成部123は、第1認証用秘密情報を生成する。第1認証用秘密情報生成部123は、例えば、第1認証用生体情報と、第1認証用特徴量と、乱数と、予め設定された定数との少なくとも1つを引数として所定の関数に代入した値として、第1認証用秘密情報を生成する。第1認証用秘密情報生成処理の具体例は後述する。
【0044】
ステップS21204において、第1認証用データ生成部124は、ステップS21203で生成された第1認証用秘密情報を用いて、ステップS21202で抽出された第1認証用特徴量を秘匿化する処理を行うことにより、第1認証用データを生成する。第1認証用データ生成処理の例は後述する。
【0045】
ステップS21205において、第1認証端末通信部125は、ステップS21204で生成された第1認証用データを第1サーバ1300に送信する。ステップS21401において、第1DB通信部141は、ステップS11402で第1DB1400の補助記憶装置1003に格納された第1登録用データを第1サーバ1300に送信する。
【0046】
なお、ステップS21401において、第1DB通信部141は、登録済ユーザのうち、これ以降の処理の対象となるユーザ(照合対象ユーザ)に対応する第1登録用データを第1サーバ1300に送信すればよい。照合対象ユーザの決定方法の例として、第1DB通信部141は、全ての登録済ユーザを照合対象ユーザに決定してもよいし、もし、登録済ユーザのうち、認証対象者の候補が予め絞り込まれている場合、絞り込まれた登録済ユーザを照合対象ユーザとすればよい。認証対象者の候補を絞り込む方法の例としては、生体認証システム10が認証対象者からIDや生年月日などの認証対象者に関する情報を取得する方法、別の生体認証などの認証手段を予め行う方法、又は認証処理が実施されている日時や場所等の情報から予め認証対象者の候補を推測する方法、などが挙げられる。
【0047】
ステップS21301において、第1サーバ通信部133は、ステップS21401で送信された第1登録用データを受信する。ステップS21302において、第1サーバ通信部133は、ステップS21205で送信された第1認証用データを受信する。
【0048】
ステップS21303において、距離推定値計算部131は、各照合対象ユーザに対し、ステップS21301で受信された当該照合対象ユーザに対応する第1登録用データと、ステップS21302で受信された第1認証用データとを用いて、第1登録用特徴量と、第1認証用特徴量との距離の推定値(距離推定値)を計算する。距離推定値計算方法の例は後述する。
【0049】
ステップS21304において、判定部132は、各照合対象ユーザに対し、ステップS21303で計算された距離推定値に基づき、受理するか又は拒否するかを判定する。判定部132が受理すると判定する照合対象ユーザは、0人でも、1人でも、2人以上であってもよい。判定部132は、例えば、任意の従来の1:N認証方式における判定方法を用いることができる。
【0050】
具体的には、例えば、予め判定閾値を設定しておき、判定部132は、距離推定値が判定閾値以下である照合対象ユーザを受理する、判定閾値を超える照合対象ユーザを拒否すると判定する。また、例えば、判定部132は、最も小さな距離推定値に対応する照合対象ユーザを受理する、それ以外の照合対象ユーザを拒否すると判定してもよい。
【0051】
また、例えば、判定部132は、判定閾値以下である距離推定値の照合対象ユーザが存在しなければ全て拒否すると判定し、存在すれば、最小の距離推定値に対応する照合対象ユーザを受理すると判定し、それ以外の照合対象ユーザを拒否すると判定してもよい。
【0052】
それ以外にも、判定部132は、任意の従来の1:N認証方式における判定方法を用いることができる。また、判定閾値の設定方法としても、任意の従来の1:N認証方式における設定方法を用いることができる。
【0053】
なお、判定部132は、1回又は複数回の認証処理毎に、過去の認証処理の結果や、システムの認証精度の要件などに応じて、判定閾値を変更してもよい。具体的には、例えば、判定部132は、受理すると判定した照合対象ユーザ数が所定値以上であれば判定閾値を所定値小さくする、受理すると判定した照合対象ユーザ数が所定値未満であれば判定閾値を所定値大きくする、等してもよい。あるいは、判定部132は、過去の所定の期間又は所定の認証処理回数における認証処理結果を集計し、集計値から計算される本人拒否率(第1登録用生体情報と第1認証用生体情報とが同一ユーザから得られた場合の判定処理において、拒否となった確率)が所定値以上であれば判定閾値を所定値大きくする、集計値から計算される他人受入率(第1登録用生体情報と第1認証用生体情報とが異なるユーザから得られた場合の判定処理において、受理となった確率)が所定値以上であれば判定閾値を所定値小さくする、等してもよい。
【0054】
ステップS21305において、第1サーバ通信部133は、受理ユーザ(ステップS21304で受理と判定された照合対象ユーザ)を示す情報(受理ユーザ情報)を連携システム1900に送信する。ステップS21901において、連携システム通信部191は、ステップS21305で送信された受理ユーザ情報を受信する。ステップS21902において、処理実行部192は、受理ユーザに対して連携システム1900の処理を実行する。
【0055】
連携システム1900の例として、決済システム、入退管理システム、コンピュータログインシステムなど、生体認証システム10と連携する任意のシステムが挙げられる。ステップS21902での処理の例として、ステップS21901で受信された受理ユーザ情報が示す受理ユーザが1人であれば、処理実行部192は、当該1人のユーザを認証対象者として、決済実行、入退許可、又はログイン実行などのサービスを行う。
【0056】
また、ステップS21901で受信された受理ユーザ情報が示す受理ユーザが複数人いる場合には、処理実行部192は、例えば、認証処理に失敗したことを示す情報を、第1認証用データを送信した第1認証端末1200に送信し、第1認証端末1200は、認証処理に失敗した旨を、第1認証端末1200の出力装置1005に表示する。あるいは、連携システム1900が出力装置1005を備え、認証処理に失敗した旨を表示するようにしてもよい。
【0057】
連携システム1900が、入退管理システムなどである場合には、処理実行部192は、ステップS21901で受信された受理ユーザ情報が示す受理ユーザが1人以上の場合に入退を許可し、0人の場合のみ、認証処理に失敗した旨を、第1認証用データを送信した第1認証端末1200に送信し、第1認証端末1200は、認証処理に失敗した旨を、第1認証端末1200の出力装置1005に表示するようにしてもよい。この場合も、連携システム1900が出力装置1005を備え、認証処理に失敗した旨を表示するようにしてもよい。
【0058】
連携システム1900の例として、別の生体認証システムなどの個人認証システムが挙げられる。この場合、ステップS21902での処理の例として、ステップS21901で受信された受理ユーザのそれぞれに対し認証処理を行い、受理ユーザをさらに絞り込む。
【0059】
以下、ステップS11103、ステップS11104、ステップS21203、ステップS21204、及びステップS21303の処理の具体例を説明する。記号「_」は下付き添字を表すとする。記号「^」はべき乗を表すとする。
【0060】
第1登録用特徴量x_Eと、第1認証用特徴量x_Aと、は集合Xの要素であるとする。第1登録用秘密情報s_Eと、第1認証用秘密情報s_Aとは集合Sの要素であるとする。集合Sは線形空間であり、かつ集合Xの部分集合であるとする。
【0061】
まず、ステップS11103における第1登録用秘密情報s_Eの決定方法の例を説明する。例えば、第1登録用秘密情報生成部113が、集合Sの要素をランダムにs_Eとして、選択する方法がある。他の一例として、第1登録用秘密情報生成部113が、x_Eを所定の関数に代入した値として第1登録用秘密情報s_Eを決定する方法がある。具体的には、例えば、第1登録用秘密情報生成部113は、集合Sの要素のうちx_Eに最も近いものをs_Eとして選択すればよい。また、第1登録用秘密情報生成部113が、x_Eを集合Sの基底の線形結合として表したうえで、集合Sの要素になるように係数を丸めることでs_Eを決定してもよい。
【0062】
また、第1登録用秘密情報生成部113が、x_Eのハッシュ値等の関数値を計算したうえで、得られた関数値をさらにSの要素に変換することでs_Eを決定してもよい。また、第1登録用秘密情報生成部113は、上記した例の計算を行った上で定数倍するなどの所定の処理を行って、s_Eを決定してもよい。なお、これらの例に限らず、第1登録用秘密情報生成部113は、第1登録用生体情報と、第1登録用特徴量と、乱数と、予め設定された定数との少なくとも1つを引数として、返す値がSの要素であるような所定の関数に代入した値をs_Eに決定すればよい。
【0063】
ステップS11104における第1登録用データc_Eの決定方法の例を説明する。例えば、第1登録用データ生成部114が、c_Eをc_E:=x_E+s_Eにより決定する方法がある。
【0064】
ステップS21203における第1認証用秘密情報の決定方法の例を説明する。第1認証用秘密情報生成部123は、第1認証用生体情報と、第1認証用特徴量と、乱数と、予め設定された定数との少なくとも1つを引数として、返す値がSの要素であるような所定の関数に代入した値を第1認証用秘密情報として決定すればよい。なお、ステップS11103とステップS21203で用いられる所定の関数は同一であってもよいし、異なっていてもよい。
【0065】
ステップS21204における第1認証用データc_Aの決定方法の例を説明する。例えば、第1認証用データ生成部124が、c_Aをc_A:=x_A+s_Aにより決定する方法がある。
【0066】
ステップS21303における距離推定値の計算方法の例を説明する。ここで、集合X上の距離関数dを定め、x_Eとx_Aの距離をd(x_E,x_A)で表す。ここでの距離関数dは、必ずしも数学的な距離の公理を満たす必要は無く、x_Eとx_Aの近さを測る任意の尺度を用いてよい。ただしd(x_E,x_A)=d(x_E-x_A,0)が厳密にあるいは近似的に成り立つようなdを選ぶことが望ましい。
【0067】
具体的には、例えば、Xがn次元ベクトル空間であり、x_E=(E_1,・・・,E_n)、x_A=(A_1,・・・,A_n)であるときに、所定の要素を無視して算出されるx_Eとx_Aの近さを示す尺度d(x_E,x_A)={(E_a-A_a+・・・+(E_a-A_a1/2(但し、0<a<・・・<a<nであり、a,・・・,aはいずれも自然数)は、数学的な距離の公理を満たさないもののx_Eとx_Aの近さを測る尺度の一例である。
【0068】
また、集合Xの要素xに対する誤り訂正処理(すなわち、xを、集合Sのある要素にノイズが加わった値であるとみなし、ノイズが加わる前の集合Sの要素を推定する処理)により得られる値をg(x)と表す。そのうえで、c_Eとc_Aから計算される距離d(x_A,x_E)の推定値f(c_E,c_A)を、c_E-c_A-g(c_E-c_A)の0からの距離と定める。すなわち、f(c_E,c_A):=d(c_E-c_A-g(c_E-c_A),0)と定める。
【0069】
このとき、以下に説明する通り、f(c_E,c_A)は、d(x_E,x_A)の推定値となる。まず、c_Eとc_Aの定め方により、c_E-c_A=x_E-x_A+s_E-s_Aが成り立つ。また、gは誤り訂正アルゴリズムであるため、x_E-x_Aが十分小さいとき、g(c_E-c_A)=s_E-s_Aが成り立つ。g(c_E-c_A)=s_E-s_Aが成り立つとき、fの定義より、f(c_E,c_A)=d(x_E-x_A,0)=d(x_E,x_A)が成り立つ。
【0070】
また、g(c_E-c_A)=s_E-s_Aが成り立つほど十分には、x_E-x_Aが小さくない場合でも、x_E-x_Aが小さければ、g(c_E-c_A)がs_E-s_Aに近くなることが期待でき、その結果、f(c_E,c_A)がd(x_E,x_A)に近くなることが期待できる。このように、f(c_E,c_A)はd(x_E,x_A)の推定値である。
【0071】
以下、集合X、集合S、距離関数dの具体例を挙げる。集合X、集合S、距離関数dの1つ目の具体例では、Xをn次元実数ベクトル空間(nは任意の正の整数)とする。また、集合Sを格子とする。すなわち、mをn以下の正の整数とし、{b_1,b_2,...,b_m}をXの線形独立なベクトルの組として、集合SをS:={z_1*b_1+z_2*b_2+...+z_m*b_m|z_1,z_2,...,z_mは正の整数}と定める。ただし、*はスカラー倍を表す。格子Sとして整数格子、三角格子、Leech格子など、任意の格子を用いることができる。
【0072】
また、距離関数dをLp距離(pは1以上の実数)又は最大値距離により定める。ただし、Xの2つのベクトルx,yの差分をw:=x-yで表し、wの成分をw=(w_1,w_2,...,w_n)で表すとき、Lp距離とはd(x,y)=((w_1)^p+(w_2)^p+...+(w_n)^p)^(1/p)で定義される距離である。なお、dをLp距離のp乗により定めてもよい。すなわち、dを、d(x,y)=(w_1)^p+(w_2)^p+...+(w_n)^pにより定めてもよい。また、最大値距離とは、d(x,y)=max{|w_1|,|w_2|,...,|w_n|}で表される距離である。ただし、実数uに対し、|u|はuの絶対値を表す。誤り訂正処理gとしては、最近傍格子点求解アルゴリズムが用いられる。
【0073】
なお、距離推定値計算処理では、上記したように第1登録用データ及び第1認証用データの一部の成分のみを用いて、登録用特徴量及び認証用特徴量の一部の成分に関する距離推定値を計算してもよい。
【0074】
集合X、集合S、距離関数dの2つ目の具体例では、集合XをGF(q)^nとする。ただしqは素数のべき乗であり、GF(q)は位数がqのガロア体を表す。また、集合Sを線形誤り訂正符号とする。また、誤り訂正符号gを誤り訂正符号の復号処理とする。距離関数dの例を述べる。X=GF(q)^nの2つのベクトルx,yの差分をw:=x-yで表し、wの成分をw=(w_1,w_2,...,w_n)で表す。GF(q)の要素の大きさを表す所定の関数vが予め定められ、距離関数dをd(x,y):=v(w_1)+v(w_2)+・・・+v(w_n)により定める。ここで、関数vの例として、GF(q)の要素aに対し、a=0のときv(a)=0、aが0でないときv(a)=1がある。このとき、dはハミング距離となる。また、関数vの別の例を述べる。qは素数であるとする。関数lを、GF(q)の要素aに対しl(a):=min{j|jは0以上の整数かつj*1=a}(ただし、j*1は、GF(q)の加法の単位元に、GF(q)の乗法の単位元をj回加えて得られる値を表す)により定める。そのうえで、v(a):=min{l(a),q-l(a)}により定める。
【0075】
以上が、ステップS11103、ステップS11104、ステップS21203、ステップS21204、及びステップS21303の処理の具体例である。
【0076】
本実施例の生体認証システム10が、生体情報復元困難性を持ち、かつ従来のFuzzy Signatureなどのバイオメトリック署名方式に基づく生体認証システムよりも高速な認証処理、を実行可能であることが以下の通り分かる。
【0077】
まず、x_Eに対してs_Eによる秘匿処理を行うことにより生成されるc_Eが、第1DB1400に送信され格納される。生体情報から生成された特徴量であるx_Eはどこにも格納も送信もされない。また、秘密情報s_Eもどこにも格納も送信もされない。このため、c_Eが漏洩しても、x_Eの復元は困難である。同様に、c_Aが漏洩してもx_Aの復元は困難である。このように、本実施例の生体認証システム10は生体情報復元困難性を担保することができる。
【0078】
次に、Fuzzy Signatureなどのバイオメトリック署名方式に基づく生体認証システムよりも高速である理由を説明する。そのために、バイオメトリック署名方式に基づく生体認証システムの登録処理及び認証処理の例を述べる。
【0079】
バイオメトリック署名方式に基づく生体認証システムの登録処理の例は以下の通りである。まず、登録端末は、登録対象者から登録用生体情報を取得し、登録用生体情報から登録用特徴量を抽出する。次に、登録端末は、例えば、本実施例のステップS11103の処理のように、登録用秘密情報を、登録用生体情報と、登録用特徴量と、乱数と、予め設定された定数との少なくとも1つを引数とする任意の関数値として設定する。
【0080】
次に、登録端末は、登録用特徴量と、登録用秘密情報とを用いて、登録用データ生成処理を行う。以下のように生成される登録用コミットメントと、登録用検証情報との組は、登録用データの一例である。
【0081】
登録端末は、登録用特徴量と、登録用秘密情報とを用いて、本実施例のステップS11104の処理を行い、生成された第1登録用データを、登録用コミットメントに決定する。また、登録端末は、登録用秘密情報を署名鍵とみなし、署名鍵から検証鍵を生成する処理を行い、生成された検証鍵を、登録用検証情報とする。次に、登録端末は、登録用データを、DBに送信する。DBは、送信された登録用データを受信し格納する。
【0082】
バイオメトリック署名方式に基づく生体認証システムの認証処理の例は以下の通りである。まず、サーバは、メッセージを生成し、認証端末に送信する。チャレンジコードと呼ばれるランダムなメッセージは当該メッセージの一例である。あるいは、サーバは、文書などの何らかの意味のあるデータとランダムなメッセージの組を認証端末に送信してもよい。次に、認証端末は、認証対象者から認証用生体情報を取得し、認証用生体情報から認証用特徴量を抽出する。
【0083】
次に、認証端末は、例えば、本実施例のステップS21203の処理のように、認証用秘密情報を、認証用生体情報と、認証用特徴量と、乱数と、予め設定された定数との少なくとも1つを引数とする任意の関数値として設定する。
【0084】
次に、認証端末は、認証用特徴量と、認証用秘密情報と、サーバから受信したメッセージとを用いて、生体署名生成処理を行う。バイオメトリック署名方式に基づく生体認証システムでは、生体署名は、例えば、認証用コミットメントと、認証用検証情報と、電子署名とから構成される。なお、バイオメトリック署名方式の種類によっては、生体署名のうち、認証用検証情報と、電子署名とがデータとして分かれておらず、1つのデータになっている場合もある。
【0085】
認証端末は、認証用特徴量と、認証用秘密情報とを用いて、本実施例のステップS21204の処理を行い、生成された第1認証用データを、認証用コミットメントに決定する。また、認証端末は、認証用秘密情報を署名鍵とみなし、署名鍵から検証鍵を生成する処理を行い、生成された検証鍵を認証用検証情報に決定する。
【0086】
また、認証端末は、生成された認証用秘密情報を署名鍵として、RSA署名、DSA(Digital Signature Algorithm)署名、ECDSA(Ellipitic Curve Digital Signature Algorithm)署名、Schnorr署名などの任意の一般的な電子署名方式の署名生成アルゴリズムを用いて、サーバから送信されたメッセージに対する電子署名を生成する。認証端末は、メッセージそのものではなく、メッセージのハッシュ値などの関数値に対する電子署名を生成してもよい。
【0087】
次に、認証端末は、生成された生体署名をサーバに送信する。次に、DBは、登録用データを、サーバに送信する。次に、サーバは、登録用データと、メッセージと、生体署名とを用いて、例えば、以下の通り、生体署名検証処理を行う。サーバは、登録用コミットメントと、認証用コミットメントとを用いて、差分秘密情報復元処理を行い、差分秘密情報(登録用秘密情報と、認証用秘密情報と、の差分)の推定値を復元する。登録用特徴量と認証用特徴量が十分近いとき、差分秘密情報が正しく復元される。
【0088】
そのうえで、サーバは、差分秘密情報の推定値と、メッセージと、電子署名と、登録用検証情報と、認証用検証情報と、の関係を検証する。具体的には、例えば、サーバは、まず受信された電子署名と、サーバで生成されたメッセージと、の関係を、電子署名生成に用いた署名生成アルゴリズムに対応する署名検証アルゴリズムにより検証する。一方、サーバは、復元された差分秘密情報に対し、有限体上のべき乗演算を行い、差分検証情報を生成したうえで、差分検証情報と、登録用検証情報と、認証用検証情報と、の関係が正しいかを検証する。
【0089】
なお、方式によっては、これら2つの検証処理が1つの検証処理としてまとめられている場合もある。ただし、その場合でも、現在知られている方式の検証処理は、有限体でのべき乗演算を含む。
【0090】
以下の通り、本実施例の生体認証システム10の認証処理は、バイオメトリック署名方式に基づく生体認証システムの認証処理と比べて高速である。ここで、ステップS21305、ステップS21901、及びステップS21902の処理は連携システム1900に関する処理であるため、以下の比較では、ステップS21304までの処理を比較対象とする。
【0091】
ステップS21201、ステップS21202、ステップS21203、ステップS21401、及びステップS21301の処理は、バイオメトリック署名方式に基づく生体認証システムも実行する処理である。
【0092】
また、バイオメトリック署名方式に基づく生体認証システムの認証用コミットメントは、本実施例の第1認証用データの一例であるため、ステップS21204、ステップS21205、及びステップS21302の処理は、バイオメトリック署名方式に基づく生体認証システムも実行する。
【0093】
ステップS21303の距離推定値計算処理を考える。上記したように、ステップS21303の例として、距離推定値計算部131が、f(c_E,c_A):=d(c_E-c_A-g(c_E-c_A),0)を計算する。
【0094】
このうち、g(c_E-c_A)の計算は差分秘密情報復元処理に相当する計算であるため、バイオメトリック署名方式に基づく生体認証システムでも行われる。バイオメトリック署名方式に基づく生体認証システムでは、差分秘密情報復元処理の後に、差分秘密情報検証処理を必要とする。差分秘密情報検証処理は、位数の大きな有限体上でのべき乗演算などを含み、計算時間を要する処理である。
【0095】
一方、本実施例において、g(c_E-c_A)の計算の後に残っている、f(c_E,c_A)を求めるための計算は、単純なベクトルの引き算と距離計算であり、差分秘密情報検証処理を含まない。単純なベクトルの引き算と距離計算は、一般に、差分秘密情報検証処理よりも高速である。このため、ステップS21303の処理は、バイオメトリック署名方式に基づく生体認証システムによる差分秘密情報復元処理と差分秘密情報検証処理を合わせた処理よりも高速である。また、ステップS21304の処理は、比較演算であり、距離計算などよりも高速である。
【0096】
以上の通り、本実施例の生体認証システム10による認証処理は、バイオメトリック署名方式に基づく生体認証システムによる認証処理よりも高速である。
【0097】
以上の通り、本実施例の生体認証システム10は、以下の通り生体情報復元困難性を持ち、かつ従来のFuzzy Signatureなどのバイオメトリック署名方式に基づく生体認証システムよりも高速な認証処理を実行することができるという効果を奏する。
【0098】
なお、生体情報の復元をさらに困難にするために、生体認証システム10は、第1登録用特徴量生成処理、及び/又は第1認証用特徴量生成処理において、生成された特徴量に対し、ノイズを付加する等の加工を行ってもよい。
【0099】
また、第1登録端末1100の各処理部は、複数の装置に分けて搭載され、これらの複数の装置が全体として第1登録端末1100の機能を実現してもよい。生体認証システム10に含まれる第1登録端末1100以外の各装置に関しても同様である。また、これ以降の実施例に関しても同様である。
【0100】
また、各装置は、物理的に分かれていなくてもよく、複数の装置の機能がまとまり1つの装置が構成されていてもよい。例えば、第1登録端末1100と、第1認証端末1200は、物理的に1つの装置であってもよい。また、例えば、第1DB1400は、第1サーバ1300に含まれていてもよい。なお、複数の装置の機能が物理的に1つの装置になっている場合、本実施例で説明した通信処理のうち、送信元と送信先が同一装置であるような当該同一装置間において、本実施例で説明した通信処理を行わなくてよい。
【0101】
また、共通する処理を行う処理部は1つにまとめられていてもよい。例えば、第1登録用生体情報取得部111と、第1認証用生体情報取得部121と、が共通の処理を行う場合、これらの処理部は1つにまとめられていてもよい。これ以降の実施例に関しても同様である。
【0102】
また、上記した各処理の順序は入れ替えてもよい。ただし、各処理において必要なデータが、その処理以前に生成されているような範囲で入れ替えるものとする。
【0103】
また、本実施例の応用例として、生体情報の復元をさらに困難にするために、他の暗号技術を組み合わせることが挙げられる。他の暗号化技術との組合せの1つの例として、第1DB1400が、登録処理において、第1登録用データを暗号化して格納し、認証処理において、当該暗号化された第1登録用データを復号したうえで第1サーバ1300に送信する方法が挙げられる。
【0104】
他の暗号化技術との組合せの別の例として、キャンセラブルバイオメトリクスとの組合せがある。キャンセラブルバイオメトリクスとは以下のような方式である。生体認証システムに含まれる1以上の装置が、暗号鍵に相当する、キャンセラブルパラメータと呼ばれるデータを保持する。
【0105】
例えば、生体認証システムが登録端末と、認証端末と、サーバと、DBと、からなる場合、登録端末と認証端末がキャンセラブルパラメータを共有して保持する。そのうえで、登録端末は、登録用特徴量をキャンセラブルパラメータにより変換し、認証端末は、認証用特徴量をキャンセラブルパラメータにより変換する。サーバは、キャンセラブルパラメータを用いずに、変換されたデータを照合することができる。
【0106】
本実施例にキャンセラブルバイオメトリクスを組合せる例を挙げる。本実施例において、第1登録端末1100と、第1認証端末1200とが、キャンセラブルパラメータを共有して保持する。そのうえで、第1登録端末1100は、第1登録用特徴量を生成した後、キャンセラブルパラメータを用いた変換を行う。具体的には、例えば、第1登録端末1100は、キャンセラブルパラメータを第1登録用特徴量に加える。そして、第1登録端末1100は、変換された第1登録用特徴量を用いて、第1登録用データ生成処理を行う。
【0107】
一方、第1認証端末1200は、第1認証用特徴量を生成した後、キャンセラブルパラメータを用いた変換を行う。具体的には、例えば、第1認証端末1200は、キャンセラブルパラメータを第1認証用特徴量に加える。第1認証端末1200は、変換された第1認証用特徴量を用いて、第1登録用データ生成処理を行う。
【0108】
第1サーバ1300が実行する距離推定値計算処理の際の距離の定義が、Lp距離、最大値距離、ハミング距離などであれば、第1登録用特徴量と、第1認証用特徴量との距離は、キャンセラブルパラメータが加わる場合でも、キャンセラブルパラメータが加わらない場合と一致する。このため、距離推定値計算処理への影響は無い。
【0109】
本実施例とキャンセラブルバイオメトリクスとの組合せの例をもう一つ説明する。上述した、f(c_E,c_A):=d(c_E-c_A-g(c_E-c_A),0)という例のように、距離推定値がc_E-c_Aの関数である場合を考える。
【0110】
キャンセラブルパラメータをrとし、第1登録端末1100と第1認証端末1200とがrを共有しているとする。第1登録端末1100は、c_Eの代わりに、c_E+rを、登録用データと定める。第1認証端末1200は、c_Aの代わりに、c_A+rを、認証用データと定める。
【0111】
このとき、距離推定値がc_E-c_Aの関数であるため、第1サーバ1300は、キャンセラブルパラメータが加わっていないときと同一の距離推定値を計算することができる。
【0112】
なお、この方法は、以下のように、パラメータサーバモデルのキャンセラブルバイオメトリクスにも適用できる。第1登録端末1100と第1認証端末1200がキャンセラブルパラメータrを共有せず、その代わりに、第1DB1400とは異なるDB(パラメータサーバ)に格納されているとする。
【0113】
登録処理において、パラメータサーバは、乱数u_Eを生成し、r+u_Eを第1登録端末1100に送信する。第1登録端末1100は、受信されたr+u_Eを用いて、c_E+r+u_Eを計算し、第1DB1400に送信する。パラメータサーバは、u_Eを、第1DB1400に送信する。第1DB1400は、c_E+r+u_Eと、u_Eと、を用いて、c_E+rを計算し、c_E+rを第1登録用データとして格納する。
【0114】
認証処理において、パラメータサーバは、乱数u_Aを生成し、r+u_Aを第1認証端末1200に送信する。第1認証端末1200は、受信されたr+u_Aを用いて、c_A+r+u_Aを計算し、第1サーバ1300に送信する。パラメータサーバは、u_Aを、第1サーバ1300に送信する。
【0115】
第1サーバ1300は、c_A+r+u_Aと、u_Aと、を用いて、c_A+rを計算し、計算されたc_A+rを距離推定値計算処理に用いる。このようにすることで、第1登録端末1100にも、第1認証端末1200にも、キャンセラブルパラメータrの値を知らせずに、登録処理及び認証処理を行うことができ、生体情報の復元がさらに困難になる。
【0116】
また、本実施例の応用例として、以下の通り、生体認証システム10のシステム構成を持つサブシステムを複数個組み合わさることにより構成される生体認証システムが考えられる。この生体認証システムを、これ以降、複合生体認証システムと呼ぶ。
【0117】
複合生体認証システムのシステム構成は、以下の通りである。生体認証システム10のシステム構成を持つサブシステムがk個(kは正の整数)あるとし、それぞれを、第1サブシステム、第2サブシステム、...、第kサブシステムと呼ぶ。これらk個のサブシステムがネットワーク1500で接続されているとする。
【0118】
複合生体認証システムの登録処理では、各々のサブシステムが、登録処理を行う。複合生体認証システムの認証処理の例は、以下の通りである。まず、各々のサブシステムが、図4の認証処理のうち距離推定値計算処理までを行う。
【0119】
次に、サブシステムのうち1つ以上の判定部132が、判定処理を行う。当該1つ以上の判定部132は、他のサブシステムで得られた距離推定値を受け取り、k個の距離推定値又はk個のうち一部の距離推定値を用いて融合判定を行ってもよい。
【0120】
融合判定において、判定部132は、一般的な生体認証システムにおける融合判定と同様に、例えば決定レベル融合(例えばOR判定、AND判定、又はOR判定とAND判定の組合せ)又はスコアレベル融合(例えばスコアの和を計算する方法)等を用いることができる。
【0121】
そのうえで、いずれかのサブシステムの判定部132が、1つ以上の融合判定結果を基に、複合生体認証システム全体としての受理ユーザを決定する。その際、当該判定部132は、必要に応じて、他のサブシステムからの融合判定結果を受け取り、さらに融合判定を行ってもよい。複合生体認証システム全体としての受理ユーザが決定した後は、いずれかのサブシステムの第1サーバ通信部133が、連携システム1900に受理ユーザ情報を送信するステップS21305の処理を行う。
【0122】
なお、一部又は全部のサブシステムが処理を同時に行ってもよい。また、一部又は全部のサブシステムが処理を順に行ってもよい。例えば、あるサブシステムが、別のサブシステムの1つ以上の処理が完了してから処理を行ってもよい。処理が順に行われる場合、一部のサブシステムに基づく判定において受理と判定されたユーザを、別のサブシステムでの照合対象ユーザとしてもよい。
【0123】
サブシステムの個数kがk=3の場合の例を挙げる。認証処理の例は、以下の通りである。第1サブシステムと第2サブシステムが、それぞれ、ステップS21303の距離推定値計算までの各処理を行う。
【0124】
次に、第1サブシステム又は第2サブシステムの一方が、他方のサブシステムで計算された距離推定値を受け取り、当該一方のサブシステムは、第1サブシステムで計算された距離推定値と第2サブシステムで計算された距離推定値を用いて融合判定を行う。当該一方のサブシステムは、受理と判定された登録済ユーザを第3サブシステムに送信する。
【0125】
第3サブシステムは、当該一方のサブシステムにおける受理ユーザを照合対象ユーザとし、ステップS21304の判定処理までの各処理を行い、受理ユーザを、複合生体認証システム全体としての受理ユーザとし、連携システム1900に送信する。
【0126】
k=3の場合の認証処理の別の例を説明する。第1サブシステムがステップS21304の判定処理までを行い、受理ユーザを第2サブシステムに送信する。第2サブシステムは、第1サブシステムでの受理ユーザを照合対象ユーザとし、ステップS21304の判定処理までの各処理を行い、受理ユーザを第3サブシステムに送信する。
【0127】
第3サブシステムは、第2サブシステムでの受理ユーザを照合対象ユーザとし、ステップS21304の判定処理までの各処理を行い、受理ユーザを複合生体認証システム全体としての受理ユーザとし、連携システム1900に送信する。
【0128】
なお、例えば、第1サブシステムの第1登録用生体情報が顔であり、第2サブシステムの第1登録用生体情報が指静脈であるというように、各々のサブシステムでの第1登録用生体情報のモダリティの一部又は全部が異なってもよい。また、各々のサブシステムでの第1登録用生体情報に同一のモダリティが含まれていてもよい。第1登録用特徴量や第1登録用データに関しても、サブシステムによって異なる種類のものがあってもよいし、同一の種類のものが含まれていてもよい。
【0129】
各々のサブシステムでの第1登録用生体情報に同一のモダリティが含まれる場合、複数のサブシステムが第1登録用生体情報取得処理を行う必要は無く、あるサブシステムが既に取得した第1登録用生体情報を、他のサブシステムが受け取り、それ以降の処理を行ってもよい。第1登録用生体情報以外の各情報に関しても同様に、あるサブシステムが生成した情報を、他のサブシステムが受け取り、受け取った情報を用いて処理を行ってもよい。
【0130】
なお、複数のサブシステムでの第1登録用生体情報が同一であり、それらのサブシステムの第1登録用特徴量が異なる場合とは、例えば、以下の場合である。1つの例として、第1登録用生体情報に対し、サブシステムごとにノイズ付加、回転、及びサイズ変更などの異なる加工を加えたうえで、第1登録用特徴量抽出処理が行われる方法が挙げられる。
【0131】
別の例として、あるサブシステムが、第1登録用生体情報に対し、ある方法で第1登録用特徴量抽出処理を行ったうえで、得られた第1登録用特徴量に対して他のサブシステムごとに異なるノイズ付加、回転、及びサイズ変更などの加工を加えたものを、サブシステムごとの第1登録用特徴量とする方法が挙げられる。
【0132】
別の例として、異なる特徴量抽出処理の方法が用いられてもよい。例えば、生体認証において、生体情報に対してDeep Learningネットワークを作用させることにより特徴量を得る方法が知られている。また、主成分分析に基づき特徴量を得る方法が知られている。このように、異なる特徴量抽出処理の方法がサブシステムごとに用いられてもよい。
【0133】
また、Deep Learningに基づく方法では、Deep Learningネットワークが異なれば、得られる特徴量が異なる。このようにして複数のサブシステムにおいて、異なる複数個の特徴量を得てもよい。主成分分析など、他の方法を用いる場合でも、複数のサブシステムが、異なるパラメータを利用することで、複数個の特徴量を抽出することができる。
【0134】
このように、複数のサブシステムが、複数個の第1登録用特徴量を生成すると、生体情報からより多くの情報を特徴量として得ることができるため、認証精度の向上が期待できる。
【0135】
また、以下のように、認証速度向上効果が得られる場合がある。例として、第1登録用特徴量がn_1次元実数ベクトルであり、第2登録用特徴量がn_2次元実数ベクトルであり、n_1、n_2はn_1<n_2を満たす正の整数である場合を考える。その上で、第1サブシステムがN人を照合対象ユーザとして判定処理までの各処理を行い、第1サブシステムが決定した受理ユーザを照合対象ユーザとして、第2サブシステムが各処理を行い、受理ユーザを複合生体認証システム全体としての受理ユーザに決定する、方法を考える。
【0136】
この例の複合生体認証システムの場合、第1サブシステムの受理ユーザに対してのみ、第2サブシステムの認証処理を実施すればよい。また、一般に、次元が小さいほど誤り訂正アルゴリズム実行時間や引き算や距離計算の処理時間は小さい。このため、この例の複合生体認証システムでは、N人の照合対象ユーザに対して第2サブシステムの認証処理を行うという方法よりも、認証処理が高速となる効果がある。
【0137】
また、複数のサブシステムが第1登録用データを同一とし、かつ、距離推定値計算処理内容が異なるようにしてもよい。例えば、以下の方法が考えられる。例えば、第1サブシステムと第2サブシステムにおける第1登録用データが同一であり、かつ第1認証用データが共通であるとする。第1サブシステムは、第1登録用データ及び第1認証用データの一部の成分のみを用いて、登録用特徴量及び認証用特徴量の一部の成分に関する距離推定値を計算し、ステップS21304の判定処理により受理ユーザを決定する。第2サブシステムによるステップS21303の距離推定値計算処理では、第1サブシステムの受理ユーザを照合対象ユーザとし、第1登録用データ及び第1認証用データの一部又は全部の成分を用いる距離推定値を計算する。このようにすることで、第1サブシステムによる距離推定値計算処理に関する次元を小さくすることができ、高速化が期待できる。
【0138】
別の例として、距離推定値計算方法を複数用意し、各サブシステムで用いてもよい。このようにすることで、距離推定値計算の精度が向上し、認証精度向上が期待できる。
【0139】
以上が、生体認証システム10のシステム構成を持つサブシステムが複数個組み合わさることにより構成される生体認証システムの例である。なお、サブシステムの個数kがk=2やk=3である場合を例に挙げたが、これらの値でない場合にも同様の効果が期待できる。
【実施例2】
【0140】
実施例2は、実施例1の処理とバイオメトリック署名方式の組み合わせを説明する。これにより、本実施例の生体認証システム10は、生体情報復元困難性に加えて、なりすまし困難性を担保し、かつ認証処理が高速な生体認証を実現できる。以下、実施例1との相違点を主に説明する。
【0141】
図5は、実施例2に係る生体認証システムの構成例を示すブロック図である。生体認証システム10は、第2登録端末2100と、第2認証端末2200と、第2サーバ2300と、第2DB2400と、をさらに有する。第1登録端末1100と、第1認証端末1200と、第1サーバ1300と、第1DB1400と、第2登録端末2100と、第2認証端末2200と、第2サーバ2300と、第2DB2400と、はネットワーク1500を介して互いに接続されている。
【0142】
第2登録端末2100は、第2登録端末2100を構成する計算機1000のCPU1001に含まれる、第2登録用生体情報取得部211と、第2登録用特徴量抽出部212と、第2登録用秘密情報生成部213と、第2登録用データ生成部214と、第2登録端末通信部215と、を有する。さらに、連携システム1900が、ネットワーク1500に接続されている。
【0143】
第2登録用生体情報取得部211は、登録対象者から第2登録用生体情報を取得する。第2登録用特徴量抽出部212は、第2登録用生体情報から第2登録用特徴量を抽出する。第2登録用秘密情報生成部213とは、第2登録用秘密情報を生成する。第2登録用データ生成部214は、第2登録用特徴量と第2登録用秘密情報とに基づいて、第2登録用データを生成する。第2登録端末通信部215は、他の装置と通信する。
【0144】
第2認証端末2200は、第2認証端末2200を構成する計算機1000のCPU1001に含まれる、第2認証用生体情報取得部221と、第2認証用特徴量抽出部222と、第2認証用秘密情報生成部223と、生体署名生成部224と、第2認証端末通信部225と、を有する。
【0145】
第2認証用生体情報取得部221は、認証対象者から第2認証用生体情報を取得する。第2認証用特徴量抽出部222は、第2認証用生体情報から第2認証用特徴量を抽出する。第2認証用秘密情報生成部223は、第2認証用秘密情報を生成する。生体署名生成部224は、第2認証用特徴量と第2認証用秘密情報とに基づいて、生体署名を生成する。第2認証端末通信部225は、他の装置と通信する。
【0146】
第2サーバ2300は、第2サーバ2300を構成する計算機1000のCPU1001に含まれる、メッセージ生成部231と、生体署名検証部232と、第2サーバ通信部233と、を有する。メッセージ生成部231は、メッセージを生成する。生体署名検証部232は、生体署名生成部224が生成した生体署名を検証する。第2サーバ通信部233は、他の装置と通信する。
【0147】
第2DB2400は、第2DB2400を構成する計算機1000のCPU1001に含まれる、第2DB通信部241と、第2格納部242と、を有する。第2DB通信部241は、他の装置と通信する。第2格納部242は、第2登録用データを第2DB2400の補助記憶装置1003に格納する。
【0148】
図6A及び図6Bは、実施例2に係る登録処理の一例を示すシーケンス図である。図6Aの処理は、実施例1における図3の登録処理と同様であるため説明を省略する。
【0149】
図6Bの登録処理について説明する。ステップS32101において、第2登録用生体情報取得部211は、登録対象者から第2登録用生体情報を取得する。第2登録用生体情報としては、指紋、指静脈、虹彩、顔、又は声紋などの、個人を特定可能な任意の生体情報を用いればよい。第1登録用生体情報と第2登録用生体情報のモダリティは同一であってもよいし、異なっていてもよい。
【0150】
ステップS32102において、第2登録用特徴量抽出部212は、ステップS32101で取得された第2登録用生体情報から第2登録用特徴量を抽出する。ステップS32103において、第2登録用秘密情報生成部213は、バイオメトリック署名方式に基づく生体認証システムにおける登録用秘密情報生成処理を行い、生成された登録用秘密情報を第2登録用秘密情報に決定する。
【0151】
ステップS32104において、第2登録用データ生成部214は、ステップS32102で抽出された第2登録用特徴量と、ステップS32103で生成された第2登録用秘密情報と、を用いて、バイオメトリック署名方式に基づく生体認証システムの登録用データを生成し、生成された登録用データ(例えば、登録用コミットメントと、登録用検証情報と、の組)を第2登録用データに決定する。
【0152】
ステップS32105において、第2登録端末通信部215は、ステップS32104で生成された第2登録用データを第2DB2400に送信する。ステップS32401において、第2DB通信部241は、ステップS32105で送信された第2登録用データを受信する。
【0153】
ステップS32402において、第2格納部242は、ステップS32401で受信された第2登録用データを、第2DB2400を構成する計算機1000の補助記憶装置1003に格納する。第2格納部242は、第2登録用データを後の認証処理で用いるために、第2登録用データをユーザIDなどの登録対象ユーザに関する情報と紐づけて、当該補助記憶装置1003に格納するとよい。
【0154】
なお、図6Aの処理と図6Bの処理は、並行して行われてもよいし、順に行われてもよい(どちらの処理が先に行われてもよい)。
【0155】
図7は、実施例2に係る認証処理の一例を示すシーケンス図である。図7に示す認証処理は、実施例1の認証処理と以下の点が異なる。ステップS21305の受理ユーザ情報送信処理における受理ユーザ情報送信先は、連携システム1900ではなく、第2サーバ2300である。なお、この受理ユーザは、ステップS21304の判定処理で決定されたものである。これ以降、この受理ユーザを、第1受理ユーザと呼ぶ。また、実施例1で照合対象ユーザと呼ばれていたユーザ(すなわち、登録済ユーザのうち、第1サーバ1300における処理の対象となるユーザ)を、本実施例では第1照合対象ユーザと呼ぶ。
【0156】
ステップS21901の受理データ情報受信処理における受理ユーザ情報送信元は、第1サーバ1300ではなく、第2サーバ2300である。なお、この受理ユーザは、ステップS42306の生体署名検証処理に関するユーザである。これ以降、この受理ユーザを、第2受理ユーザと呼ぶ。生体認証システム全体としての受理ユーザは、第2受理ユーザである。
【0157】
さらに、図7に示す認証処理において、生体認証システム10は、実施例1における認証処理に加えて、以下の処理を行う。
【0158】
ステップS42201において、第2認証用生体情報取得部221は、認証対象者から第2認証用生体情報を取得する。ステップS42202において、第2認証用特徴量抽出部222は、ステップS42201で取得された第2認証用生体情報から第2認証用特徴量を抽出する。
【0159】
ステップS42203において、第2認証用秘密情報生成部223は、バイオメトリック署名方式に基づく生体認証システムの認証用秘密情報生成処理を行い、生成された認証用秘密情報を第2認証用秘密情報に決定する。
【0160】
ステップS42301において、第2サーバ通信部233は、ステップS21305で送信された第1受理ユーザ情報を受信する。なお、登録済ユーザのうち、第2サーバ2300における処理の対象となるユーザを第2照合対象ユーザと呼ぶ。例えば、第1受理ユーザを第2照合対象ユーザとすればよい。あるいは、生体認証システム10は、各第1受理ユーザに対し、追加で任意の照合(例えば、任意の生体認証方式に基づく照合)を実行し、成功したユーザを第2照合対象ユーザとしてもよい。そのために、生体認証システム10は、必要に応じて追加の登録用生体情報取得処理、登録用特徴量生成処理、登録用データ生成処理、認証用生体情報取得処理、認証用特徴量生成処理、認証用データ生成処理等を行い、生成された登録用データと認証用データとを照合すればよい。
【0161】
ステップS42302において、メッセージ生成部231は、メッセージを生成する。生成されるメッセージの例として、バイオメトリック署名方式に基づく生体認証システムの例と同様に、チャレンジコードと呼ばれるランダムなメッセージ、文書などの何らかの意味のあるデータ、又は意味のあるデータとランダムなメッセージとの組などがある。
【0162】
ステップS42303において、第2サーバ通信部233は、ステップS42302で生成されたメッセージを第2認証端末2200に送信する。ステップS42401において、第2DB通信部241は、ステップS32402で格納された第2登録用データを第2サーバ2300に送信する。なお、第2DB通信部241は、第2照合対象ユーザを示す情報を第2サーバ2300から受け取ったうえで、第2照合対象ユーザに対する第2登録用データのみを第2サーバ2300に送信するようにしてもよい。
【0163】
ステップS42304において、第2サーバ通信部233は、ステップS42401で送信された第2登録用データを受信する。ステップS42204において、第2認証端末通信部225は、ステップS42303で送信されたメッセージを受信する。
【0164】
ステップS42205において、生体署名生成部224は、ステップS42202で抽出された第2認証用特徴量と、ステップS42203で生成された第2認証用秘密情報と、ステップS42204で受信されたメッセージと、を用いて、バイオメトリック署名方式に基づく生体認証システムの生体署名生成処理を行い、生体署名を生成する。
【0165】
ステップS42206において、第2認証端末通信部225は、ステップS42205で生成された生体署名を第2サーバ2300に送信する。ステップS42305において、第2サーバ通信部233は、ステップS42206で送信された生体署名を受信する。
【0166】
ステップS42306において、生体署名検証部232は、ステップS42302で生成されたメッセージと、ステップS42304で受信した各第2照合対象ユーザの第2登録用データと、ステップS42305で受信された生体署名と、を用いて、バイオメトリック署名方式に基づく生体認証システムの生体署名を検証し、検証に成功した第2照合対象ユーザを第2受理ユーザとする。ステップS42307において、第2サーバ通信部233は、ステップS42306で決定された第2受理ユーザ情報を連携システム1900に送信する。
【0167】
本実施例の生体認証システム10は、以下の通り、生体情報復元困難性とりすまし困難性を持ち、かつ従来のバイオメトリック署名方式に基づく生体認証システムよりも認証処理が高速であるという効果を奏する。ただし、なりすまし困難性とは、第1DB1400及び第2DB2400に格納された登録用データと、過去の登録処理や認証処理で通信されるデータとを得た攻撃者が、生体認証システム10に受理されるようなデータを第1認証端末1200及び第2認証端末2200からサーバに送信することが困難であることを意味する。
【0168】
まず、本実施例のうち第1登録用データ及び第1認証用データは、実施例1で述べた通り、生体情報復元困難性を満たす。さらに、バイオメトリック署名方式に基づく生体認証システムは生体情報復元困難性を満たす。このため、第2登録用データ及び第2認証用データは、生体情報復元困難性を満たす。よって、生体認証システム10は生体情報復元困難性を担保することができる。
【0169】
また、以下の通り、生体認証システム10は、なりすまし困難性を担保することができる。まず、生体認証システム10としての受理ユーザは第2受理ユーザである。このため、受理ユーザとなるためには、生体署名検証処理に成功する必要がある。
【0170】
従って、攻撃者は、なりすましを成功させるために、生体署名検証処理に成功するような生体署名を生成する必要がある。そのためには、攻撃者は、第2登録端末2100又は第2認証端末2200の中で一時的に生成される情報である、第2登録用特徴量、第2登録用秘密情報、第2認証用特徴量、第2認証用秘密情報の少なくとも1つの値を、DBに格納された登録用データと、過去の登録処理や認証処理で通信されるデータと、を用いて検証に成功するような生体署名の値を推定する必要がある。
【0171】
ここで、バイオメトリック署名方式に基づく生体認証システムはなりすまし困難性を満たす。このため、過去の認証処理でのメッセージと、過去の認証処理での生体署名と、第2登録用データと、が漏洩しても、攻撃者が生体署名検証処理に成功するような生体署名を生成することは困難である。すなわち、攻撃者が、第2登録用特徴量、第2登録用秘密情報、第2認証用特徴量、第2認証用秘密情報と、の少なくとも1つの値を推定することは困難である。
【0172】
一方、第1登録用データと第1認証用データからは、第1登録用特徴量、第1登録用秘密情報、第1認証用特徴量、第1認証用秘密情報のいずれに関しても推定が困難である。このため、第1登録用特徴量と第2登録用特徴量との間、第1登録用秘密情報と第2登録用秘密情報との間、第1認証用特徴量と第2認証用特徴量との間、及び第1認証用秘密情報と第2認証用秘密情報との間のいずれにも依存性が無い場合はもちろん、仮にこれらのいずれかに依存性があった場合でも、第1登録用データと第1認証用データから、第2登録用特徴量、第2登録用秘密情報、第2認証用特徴量、及び第2認証用秘密情報の少なくとも1つの値を推定することは困難である。
【0173】
このため、過去の認証処理でのメッセージと、過去の認証処理での生体署名と、第2DB2400に格納された第2登録用データとに加えて、過去の認証処理での第1認証用データと、第1DB1400に格納された第1登録用データとが漏洩しても、攻撃者が生体署名検証処理に成功するような生体署名を生成することは困難である。以上の通り、本実施例の生体認証システム10は、なりすまし困難性を担保する。
【0174】
また、従来のバイオメトリック署名方式に基づく生体認証システムは、1:N認証において、N人の登録済ユーザに対する認証処理を実行する必要がある。一方、本実施例の生体認証システム10は、まず、N人の登録ユーザを第1照合対象ユーザとしてステップS21303の距離推定値計算処理及びステップS21304の判定処理を行う。そのうえで、本実施例の生体認証システム10は、当該判定処理における受理ユーザに対してのみバイオメトリック署名方式に基づく生体認証システムの生体署名検証処理を行う。
【0175】
ステップS21303の距離推定値計算処理及びステップS21304の判定処理は、バイオメトリック署名方式に基づく生体認証システムの生体署名検証処理よりも高速である。このため、本実施例の生体認証システム10による全体の認証処理時間のほうが、従来のバイオメトリック署名方式に基づく生体認証システムによる全体の認証処理時間よりも短い。すなわち、本実施例の生体認証システム10のほうが、従来のバイオメトリック署名方式に基づく生体認証システムよりも高速に認証処理を実行することができる。
【0176】
このように、本実施例の生体認証システム10は、生体情報復元困難性となりすまし困難性を担保し、かつ、従来のバイオメトリック署名方式に基づく生体認証システムよりも高速な認証処理を実行することができる。
【0177】
なお、第2サーバ2300以外の装置がメッセージを生成してもよい。つまり、生体認証システム10に含まれるいずれかの装置がメッセージを生成してもよいし、生体認証システム10の外部のシステムがメッセージを生成してもよい。第2サーバ2300以外の装置がメッセージを生成する場合、第2認証端末2200は、生体署名処理を行う前にメッセージを受信し、第2サーバ2300は、生体署名検証処理を行う前にメッセージを受信するようにする。これは後述する実施例3に関しても同様である。
【0178】
また、実施例1と同様に、本実施例の生体認証システム10もキャンセラブルバイオメトリクスと組み合わせることができる。これは後述する実施例3に関しても同様である。
【0179】
また、本実施例において、連携システム1900は、第2受理ユーザ情報に加えて、ステップS42306で検証に成功したメッセージや当該メッセージの加工情報を受け取り、これらに基づく処理を行ってもよい。
【0180】
また、本実施例の生体認証システム10のうち、第1登録端末1100と、第1認証端末1200と、第1サーバ1300と、第1DB1400と、を実施例1で述べた複合生体認証システムに置き換えてもよい。これを後述する実施例3に関しても同様である。
【0181】
また、生体認証システム10は、メッセージと生体署名との組を一時的に保持したうえで、メッセージの正当性を検証する必要が生じたときに生体署名検証処理を行うようにしてもよい。これは、後述する実施例3に関しても同様である。なお、生体署名検証処理に成功することは、検証に用いた第2登録用データに対応する登録済ユーザと、生体署名を生成したユーザとが同一人物であり、かつメッセージが偽造されていないことを意味する。
【0182】
また、本実施例において、第1登録用生体情報と第2登録用生体情報を同一とし、第1登録用特徴量と第2登録用特徴量を同一とし、第1登録用秘密情報と第2登録用秘密情報とを同一とし、第1登録用データと、第2登録用データに含まれる登録用コミットメントと、を同一とし、第1認証用生体情報と第2認証用生体情報を同一とし、第1認証用特徴量と第2認証用特徴量とを同一とし、第1認証用秘密情報と第2認証用秘密情報とを同一とし、第1認証用データと、第2認証用データに含まれる認証用コミットメントと、を同一としてもよい。このようにすれば、1種類の特徴量のみで、生体情報復元困難性と、なりすまし困難性と、認証処理の高速性と、を同時に満たすことができる。
【0183】
なお、この場合、第1登録端末1100が生成するデータは第2登録端末2100によっても生成される。このため、生体認証システム10は、第1登録端末1100を備えず、第2登録端末2100が第1登録端末1100による処理を行うようにしてもよい。また、第1認証端末1200によって生成されるデータは第2認証端末2200によっても生成される。このため、生体認証システム10は、第1認証端末1200を備えず、第2認証端末2200が第1認証端末1200による処理を行うようにしてもよい。
【0184】
さらに、第1サーバ1300による距離推定値計算処理に含まれる誤り訂正処理により、差分秘密情報復号処理の一部又は全部が算出されていれば、第2サーバ2300は、差分秘密情報復元処理の一部又は全部を省略し、第1サーバ1300が算出した差分秘密情報の一部又は全部を用いてもよい。このように、差分秘密情報復元処理の一部又は全部が省略されることにより、生体署名検証処理を高速に実行することができる。
【0185】
また、例えば、第1登録用生体情報と第2登録用生体情報を同一とし、第1登録用特徴量と第2登録用特徴量を異なるようにする、というように、第1登録端末1100と第2登録端末2100とが生成するデータが途中から異なるようにしてもよい。同様に、第1認証端末1200と第2認証端末2200とが生成するデータが途中から異なるようにしてもよい。また、第2登録用生体情報は、顔と指静脈等、複数種類の生体情報の組であってもよい。この場合、バイオメトリック署名方式に基づく認証処理を実行するために、一般的な融合判定方法(例えば、任意の特徴レベル融合(feature level fusion)、決定レベル融合(decision level fusion)や、各生体情報から生成される秘密鍵の一部又は全部を連結して処理を行う方法、あるいはそれらの組合せなど)を用いればよい。第2登録用生体情報として生体情報の組が用いられる場合、その一部又は全部を、第1登録用生体情報の一部若しくは全部、又は第1登録用生体情報を加工して得られる情報により定めてもよい。これらは、後述する実施例3に関しても同様である。
【0186】
第1登録端末1100と第2登録端末2100とが同一のデータを生成する場合には、当該同一のデータを生成するための処理を2回行う必要は無く、一方が生成したデータを他方が受け取ればよい。第1認証端末1200と第2認証端末2200とに関しても同様である。また、第1登録用データと第2登録用データに同じデータが含まれる場合には、重複して格納しなくてもよい。
【0187】
また、本実施例の生体認証システム10のうち、第1登録端末1100と、第1認証端末1200と、第1サーバ1300と、第1DB1400とを、実施例1で述べた複合生体認証システムに置き換える場合、例えば、第2登録用データ内の登録用コミットメントと、複合生体認証システム内のいずれかのサブシステムにおける登録用データとを同一とするなど、第2登録端末2100、第2認証端末2200、第2サーバ2300、及び第2DB2400の少なくとも1つが生成するデータを、複合生体認証システム内のいずれかのサブシステムにおいて生成するデータと同一にすることもできる。これは後述する実施例3に関しても同様である。
【実施例3】
【0188】
実施例3は、ネットワーク1500を介した生体認証システム10の一例を示す。本実施例では、実施例1の処理とバイオメトリック暗号方式を組み合わせる。これにより、生体情報復元困難性に加えて、なりすまし困難性を持ち、かつ、認証処理が高速な生体認証システムを実現できる。
【0189】
ここで、バイオメトリック暗号方式に基づく生体認証システムの登録処理及び認証処理の例を述べる。なお、バイオメトリック暗号方式としては、Fuzzy Extractor、Fuzzy Commitmentなど、任意の方式を用いればよい。
【0190】
バイオメトリック暗号方式に基づく生体認証システムの登録処理の例は以下の通りである。まず、登録端末は、登録対象者から登録用生体情報を取得し、登録用生体情報から登録用特徴量を抽出する。次に、登録端末は、以下の通り、登録用秘密情報生成処理を行う。例えば、登録端末は、本実施例のステップS11103の処理を行い、生成された第1登録用秘密情報を、バイオメトリック暗号方式に基づく生体認証システムにおける登録用秘密情報に決定する。
【0191】
次に、登録端末は、登録用特徴量と、登録用秘密情報と、を用いて、登録用データ生成処理を行う。登録用データは、例えば、以下のように定まる、登録用コミットメントと、登録用検証情報と、の組である。なお、バイオメトリック暗号方式に基づく生体認証システムにおいて、登録用コミットメントは、例えば、ヘルパーデータや補助情報(Auxiliary Data)などとも呼ばれるデータである。また、登録用検証情報は、例えば、擬識別子(Pseudonymous Identifier)などとも呼ばれるデータである。
【0192】
登録端末は、登録用秘密情報を用いて、登録用特徴量を秘匿化することにより、登録用コミットメントを生成する。具体的には、例えば、登録端末は、Fuzzy Extractor、又はFuzzy Commitmentなど、任意の方式における登録用コミットメント生成処理を行えばよい。また、本実施例のステップS11104の処理で生成される第1登録用データも、登録用コミットメントの例である。
【0193】
また、登録端末は、例えば、登録用秘密情報を署名鍵とみなし、署名鍵から検証鍵を生成する処理を行い、生成された検証鍵を登録用検証情報に決定する。登録端末は、登録用検証情報に、登録用秘密情報のハッシュ値等を含めてもよい。次に、登録端末は、登録用データを認証サーバに送信する。DBは、登録用データをサーバから受信し格納する。
【0194】
バイオメトリック暗号方式に基づく生体認証システムの認証処理の例は以下の通りである。まず、サーバは、メッセージを生成し、認証端末に送信する。メッセージの例は実施例2と同様である。
【0195】
次に、認証端末は、認証対象者から認証用生体情報を取得し、認証用生体情報から認証用特徴量を抽出する。次に、DBは、登録用コミットメントを認証端末に送信する。また、DBは、登録用検証情報をサーバに送信する。
【0196】
次に、認証端末は、以下の通り、認証用秘密情報生成処理を行う。具体的には、例えば、認証端末は、抽出された認証用特徴量と、DBから送信された登録用コミットメントと、を用いて、登録用秘密情報を復元し、復元した登録用秘密情報を認証用秘密情報に決定する。認証端末は、登録用検証情報をDBから受け取り、復元された登録用秘密情報が正しいかどうか検証してもよい。
【0197】
次に、認証端末は、生体署名生成処理を行う。バイオメトリック暗号方式に基づく生体認証システムでは、生体署名は、例えば、以下の通り生成される電子署名である。認証端末は、認証用秘密情報を署名鍵として、RSA署名、DSA署名、ECDSA署名、Schnorr署名などの任意の一般的な電子署名方式の署名生成アルゴリズムを用いて、サーバから送信されたメッセージに対する電子署名を生成する。認証端末は、メッセージそのものではなく、メッセージのハッシュ値などの関数値に対する電子署名を生成してもよい。
【0198】
次に、認証端末は、生成された生体署名をサーバに送信する。次に、サーバは、以下の通り、生体署名検証処理を行う。サーバは、DBから送信された登録用検証情報と、認証端末から送信された生体署名すなわち電子署名と、サーバで生成されたメッセージと、の関係を、電子署名生成に用いた署名生成アルゴリズムに対応する署名検証アルゴリズムにより検証する。以上が、バイオメトリック暗号方式に基づく生体認証システムの登録処理及び認証処理の例である。
【0199】
実施例3の生体認証システム10の構成例は、実施例2と同様である(つまり図5の構成と同様である)。ただし、以下に述べる通り、一部の処理内容が実施例2と異なる。
【0200】
まず、実施例3の生体認証システムの登録処理は、図6に示された実施例2の登録処理と、以下の点で異なる。ステップS32104の第2登録用データ生成処理では、第2登録用データ生成部214が、バイオメトリック暗号方式に基づく生体認証システムの登録用データ生成処理を行い、生成された登録用データを第2登録用データに決定する。
【0201】
また、実施例3の生体認証システムの認証処理は、図7に示された実施例2の認証処理と、以下の点で異なる。ステップS42203の処理の前に、第2DB通信部241が、各第2照合対象ユーザの第2登録用データに含まれる登録用コミットメントを、第2認証端末2200に送信する。あるいは、第2認証端末2200が全て又は一部登録済ユーザに対する第2登録用データを予め第2登録端末2100又は第2DB2400から受け取り格納しておいてもよい。そのうえで、ステップS42203において、第2認証用秘密情報生成部223は、第2照合対象ユーザのそれぞれに対する登録用コミットメントと、ステップS42202で抽出された第2認証用特徴量と、を用いて、バイオメトリック暗号方式に基づく生体認証システムの認証用秘密情報生成処理を行い、生成された認証用秘密情報を第2認証用秘密情報に決定する。第2認証端末2200は、登録用コミットメントを第2DB2400から受信する際に、登録用検証情報も受け取り、生成された認証用秘密情報に対する検証を行い、正しいと検証された第2照合対象ユーザに対してのみ、これ以降の処理を行うようにしてもよい。
【0202】
ステップS42205では、生体署名生成部224が、ステップS42203で生成された第2認証用秘密情報と、ステップS42204で受信されたメッセージと、を用いて、バイオメトリック暗号方式に基づく生体認証システムの生体署名生成処理を行い、生体署名を生成する。
【0203】
ステップS42306では、生体署名検証部232が、ステップS42303で生成されたメッセージと、ステップS42304で受信された第2登録用データに含まれる登録用検証情報と、ステップS42305で受信された生体署名と、を用いて、バイオメトリック暗号方式に基づく生体認証システムの生体署名検証処理を行い、検証に成功したユーザを第2受理ユーザとする。
【0204】
本実施例の生体認証システム10は、以下の通り、生体情報復元困難性となりすまし困難性を担保し、かつ従来のバイオメトリック署名方式に基づく生体認証システムよりも高速な認証処理を実行できるという効果を奏する。
【0205】
まず、本実施例における第1登録用データ及び第1認証用データは、実施例1で述べた通り、生体情報復元困難性を満たす。さらに、バイオメトリック暗号方式に基づく生体認証システムは生体情報復元困難性を満たす。このため、第2登録用データ及び第2認証用データは、生体情報復元困難性を満たす。よって、生体認証システム10は生体情報復元困難性を担保することができる。
【0206】
また、バイオメトリック暗号方式に基づく生体認証システムはなりすまし困難性を持つため、実施例2と同様の理由により、本実施例の生体認証システム10もなりすまし困難性を有する。
【0207】
また、本実施例では、バイオメトリック署名方式に基づく生体認証システムの生体署名検証処理が不要である。本実施例では、その代わりに、バイオメトリック暗号方式に基づく生体認証システムの認証用秘密情報生成処理、生体署名生成処理、及び生体署名検証処理が必要となるが、これらの処理の対象となるユーザは、第1受理ユーザ又はその一部であるため、処理時間を削減される。その結果、本実施例の生体認証システム10による全体の認証処理時間のほうが、従来のバイオメトリック署名方式に基づく生体認証システムによる全体の認証処理時間よりも短くなる。すなわち、本実施例の生体認証システム10のほうが、従来のバイオメトリック署名方式に基づく生体認証システムよりも高速な認証処理を実行できる。
【0208】
なお、本実施例において、第1登録用生体情報と第2登録用生体情報を同一とし、第1登録用特徴量と第2登録用特徴量とを同一とし、第1登録用秘密情報と第2登録用秘密情報とを同一とし、第1登録用データと、第2登録用データに含まれる登録用コミットメントと、を同一とし、第1認証用生体情報と第2認証用生体情報を同一とし、第1認証用特徴量と第2認証用特徴量とを同一としてもよい。このようにすれば、1種類の特徴量のみで、生体情報復元困難性と、なりすまし困難性と、認証処理の高速性とを同時に担保することができるという効果がある。
【0209】
この場合、第1登録端末1100によって生成されるデータは第2登録端末2100によっても生成されるため、生体認証システム10は、第1登録端末1100を備えず、第2登録端末2100が第1登録端末1100による処理を行うようにしてもよい。また、第1認証端末1200が行う処理のうち、第1認証用秘密情報生成処理と、第1認証用データ生成処理と、第1認証用データ送信処理とを除いては、第2認証端末2200でも行われる。このため、生体認証システム10が第1認証端末1200を備えず、第2認証端末2200が、第1認証用秘密情報生成部123と、第1認証用データ生成部124とを備えたうえで、第1認証端末1200による処理を行うようにしてもよい。
【0210】
さらに、この場合、もし、第1サーバ1300による距離推定値計算処理に含まれる誤り訂正処理により、差分秘密情報復号処理の一部又は全部が算出されていれば、ステップS42203の第2認証用秘密情報生成処理は以下の方法であってもよい。ステップS42203の前の処理として、第2認証端末2200は、ステップS21203で生成された第1認証用秘密情報を、ステップS42203の処理が完了するまで一時的に格納する。
【0211】
また、第2サーバ2300が、第2認証端末2200に差分秘密情報を送信する。この差分情報は、第1登録用秘密情報と、第1認証用秘密情報との差分情報である。そのうえで、ステップS42203において、第2認証用秘密情報生成部223は、受信された差分秘密情報と、格納された第1認証用秘密情報と、から、第1登録用秘密情報すなわち第2登録用秘密情報を復元し、復元された第2登録用秘密情報を、第2認証用秘密情報に決定する。
【0212】
第2認証用秘密情報生成処理として、上記の方法が用いられることにより、第2認証用秘密情報生成処理がより高速になる。
【0213】
なお、本発明は上記した実施例に限定されるものではなく、様々な変形例が含まれる。例えば、上記した実施例は本発明を分かりやすく説明するために詳細に説明したものであり、必ずしも説明した全ての構成を備えるものに限定されるものではない。また、ある実施例の構成の一部を他の実施例の構成に置き換えることも可能であり、また、ある実施例の構成に他の実施例の構成を加えることも可能である。また、各実施例の構成の一部について、他の構成の追加・削除・置換をすることが可能である。
【0214】
また、上記の各構成、機能、処理部、処理手段等は、それらの一部又は全部を、例えば集積回路で設計する等によりハードウェアで実現してもよい。また、上記の各構成、機能等は、プロセッサがそれぞれの機能を実現するプログラムを解釈し、実行することによりソフトウェアで実現してもよい。各機能を実現するプログラム、テーブル、ファイル等の情報は、メモリや、ハードディスク、SSD(Solid State Drive)等の記録装置、または、ICカード、SDカード、DVD等の記録媒体に置くことができる。
【0215】
また、制御線や情報線は説明上必要と考えられるものを示しており、製品上必ずしも全ての制御線や情報線を示しているとは限らない。実際には殆ど全ての構成が相互に接続されていると考えてもよい。
【符号の説明】
【0216】
10 生体認証システム、1001 CPU、1002 メモリ、1003 補助記憶装置、1006 通信装置、1100 第1登録端末、1200 第1認証端末、1300 第1サーバ、1400 第1DB、2100 第2登録端末、2200 第2認証端末、2300 第2サーバ、2400 第2DB
図1
図2
図3
図4
図5
図6A
図6B
図7