(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2023023398
(43)【公開日】2023-02-16
(54)【発明の名称】情報処理装置、情報処理システム、及び情報処理方法
(51)【国際特許分類】
H04L 9/08 20060101AFI20230209BHJP
H04L 9/32 20060101ALI20230209BHJP
【FI】
H04L9/00 601A
H04L9/00 673D
H04L9/00 601E
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2021128905
(22)【出願日】2021-08-05
(71)【出願人】
【識別番号】000005108
【氏名又は名称】株式会社日立製作所
(74)【代理人】
【識別番号】110001678
【氏名又は名称】藤央弁理士法人
(72)【発明者】
【氏名】藤尾 正和
(72)【発明者】
【氏名】高橋 健太
(72)【発明者】
【氏名】加賀 陽介
(72)【発明者】
【氏名】中村 渉
(72)【発明者】
【氏名】安村 慶子
(57)【要約】
【課題】複数種類の生体情報を用いた生体認証において、効率的に同じ秘密鍵を安全かつ高精度に復元し、ひいては安全かつ高精度にオンライン認証を実行する。
【解決手段】情報処理装置は、複数種類それぞれの生体情報から得られた登録用特徴量と、秘密データと、所定の埋め込み処理と、に基づいて生成され、登録用特徴量それぞれに対応するコミットメントを保持し、複数種類それぞれの生体情報から得られた認証用特徴量を取得し、認証用特徴量と、当該認証用特徴量と同種の生体情報から得られた登録用特徴量に対応するコミットメントと、に基づいて、秘密データを復元する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
情報処理装置であって、
プロセッサとメモリとを有し、
前記メモリは、複数種類それぞれの生体情報から得られた登録用特徴量と、秘密データと、所定の埋め込み処理と、に基づいて生成され、前記登録用特徴量それぞれに対応するコミットメントを保持し、
前記プロセッサは、
複数種類それぞれの生体情報から得られた認証用特徴量を取得し、
前記認証用特徴量と、当該認証用特徴量と同種の生体情報から得られた登録用特徴量に対応するコミットメントと、に基づいて、前記秘密データを復元する、情報処理装置。
【請求項2】
請求項1に記載の情報処理装置であって、
前記コミットメントは、前記秘密データが(k,n)閾値秘密分散法によって分散されることで生成された1つのシェアと、1つの前記登録用特徴量と、前記所定の埋め込み処理と、に基づいて生成されたものであり、
前記プロセッサは、
前記認証用特徴量と、当該認証用特徴量と同種の生体情報から得られた登録用特徴量に対応するコミットメントと、から所定数以上のシェアを復元し、
前記復元した所定数以上のシェアに基づいて、前記秘密データを復元する、情報処理装置。
【請求項3】
請求項2に記載の情報処理装置であって、
前記コミットメントは、所定の基準行列によって変換された1つの前記登録用特徴量に対して所定の基準閾値を用いた割り算によって得られた商と、前記シェアの1つと、の排他的論理和に基づく、情報処理装置。
【請求項4】
請求項2に記載の情報処理装置であって、
前記コミットメントは、所定の基準行列によって変換された1つの前記登録用特徴量に対して所定の基準閾値を用いた割り算によって得られた商と、所定の暗号学的ハッシュ関数と、から得られたハッシュ値を鍵として、共通鍵暗号で、前記シェアを暗号化したものである、情報処理装置。
【請求項5】
請求項2に記載の情報処理装置であって、
生体情報の種類の関係が木構造で定義され、
前記木構造のルートノードを前記秘密データとし、
前記コミットメントそれぞれは、前記木構造の親ノードに対応する種類の前記登録用特徴量が(k,n)閾値秘密分散法によって分散されることで生成された1つのシェアと、1つの当該親ノードの子ノードに対応する種類の前記登録用特徴量と、前記所定の埋め込み処理と、に基づいて生成されたものであり、
前記プロセッサは、
前記木構造の子ノードに対応する種類の前記認証用特徴量と、当該認証用特徴量と同種の生体情報から得られた登録用特徴量に対応するコミットメントと、から所定数以上のシェアを復元し、前記復元した所定数以上のシェアに基づいて、当該子ノードの親ノードに対応する分散シェアを復元する、処理を繰り返して、前記ルートノードである前記秘密データを復元する、情報処理装置。
【請求項6】
請求項1に記載の情報処理装置であって、
前記メモリは、秘密データを鍵として暗号化された秘密情報を保持し、
前記コミットメントは、前記複数種類の生体情報から得られた登録用特徴量に含まれる所定数の特徴量の連結と、前記秘密データと、前記所定の埋め込み処理と、に基づいて生成されたものであり、
前記プロセッサは、
前記所定数の特徴量それぞれと同種の生体情報から得られた認証用特徴量と、前記コミットメントと、に基づいて、前記秘密データを復元し、
前記復元した秘密データを鍵として、前記秘密情報を復号化する、情報処理装置。
【請求項7】
第1情報処理装置と第2情報処理装置とを含む情報処理システムであって、
前記第1情報処理装置は、
秘密データを保持し、
複数種類それぞれの生体情報から得られた登録用特徴量を取得し、
複数種類それぞれの生体情報から得られた登録用特徴量と、秘密データと、所定の埋め込み処理と、に基づいて生成され、前記登録用特徴量それぞれに対応するコミットメントと、を生成して、前記第2情報処理装置に登録し、
前記第2情報処理装置は、前記第1情報処理装置からの要求に応じて前記登録したコミットメントを前記第1情報処理装置に送信し、
前記第1情報処理装置は、
複数種類それぞれの生体情報から得られた認証用特徴量を取得し、
前記認証用特徴量と、当該認証用特徴量と同種の生体情報から得られた登録用特徴量に対応するコミットメントと、に基づいて、前記秘密データを復元する、情報処理装置。
【請求項8】
情報処理装置による情報処理方法であって、
前記情報処理装置は、プロセッサとメモリとを有し、
前記メモリは、複数種類それぞれの生体情報から得られた登録用特徴量と、秘密データと、所定の埋め込み処理と、に基づいて生成され、前記登録用特徴量それぞれに対応するコミットメントを保持し、
前記情報処理方法は、
前記プロセッサが、複数種類それぞれの生体情報から得られた認証用特徴量を取得し、
前記プロセッサが、前記認証用特徴量と、当該認証用特徴量と同種の生体情報から得られた登録用特徴量に対応するコミットメントと、に基づいて、前記秘密データを復元する、情報処理方法。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報処理装置、情報処理システム、及び情報処理方法に関する。
【背景技術】
【0002】
安全で利便性の高い本人認証技術として、ユーザの生体特徴(指紋、静脈パターン、光彩パターン等)を認証情報として用いた生体認証技術の普及が進んでいる。PCログイン、銀行ATM(Automated TellerMachine)、及び入退室といったクローズド環境での利用にとどまらず、オンライン決済及び手ぶら観光など、のクラウドを介したオンライン認証での生体認証技術の利用も進みつつある。一方で、生体情報(認証テンプレート)がクラウド利用されると、サーバ等から生体情報等の機微情報が漏洩する等のリスクが高まる。
【0003】
端末認証器による生体認証とネットワーク認証を分離し、安全性と相互運用性を高めたFIDO(First Identity Online)規格(非特許文献1に記載の技術)が業界主導で策定されている他、認証用テンプレートの保護型生体認証技術の開発が進められている。FIDOでは、TEE(Trusted Execution Environment)などの保護領域に公開鍵暗号基盤(PKI)に基づく電子署名で必要な秘密鍵を保管し、本人認証成功時に秘密鍵を活性化し電子署名を行うことでオンライン認証を実現している。
【0004】
テンプレート保護技術である公開型生体認証基盤(PBI:Public Biometric Infrastructure)では,静脈パターンなどの生体情報から秘密鍵を抽出し、電子署名を生体認証により実現することで、オンラインでの本人認証を行う仕組みを実現している。
【0005】
一方、携帯端末や店頭決済などあらゆる人々が利用可能となる生体認証では、メガネやマスクの着用の有無、ケガや宗教上の理由で顔認証を行えないなど、単一の生体情報だけでは利用者の利便性を損なうケースが出てくることが考えられる。そのため、マスク着用時は指紋認証を行う、肌荒れ時には顔認証や虹彩認証を行うなど、その時々のシーンに応じて複数の生体情報の中から適切な組み合わせを選択できることで、成りすましリスク低下と利便性を両立することが求められる。この時、何れの生体認証の組み合わせを用いた場合でも、同じ秘密鍵を用いた電子署名を実現できることが望ましい。
【0006】
特開2020-57275号公報(特許文献1)には、「生体を撮影した画像を取得する画像入力部と、各人物の画像の生体領域から得られる複数の生体特徴に関する登録情報を記憶する記憶部と、画像入力部によって取得された画像の生体領域を処理して登録情報に基づく生体認証を行う認証処理部と、を有する生体認証システムであって、各人物の生体領域から得られる複数の生体特徴は、互いにパターンの相関の低い複数の生体特徴であり、認証処理部は、画像を処理して得られた互いにパターンの相関の低い複数の生体特徴を組合せて生体認証を行う。」技術が開示されている(要約参照)。
【先行技術文献】
【特許文献】
【0007】
【特許文献1】特開2020-57275号公報
【特許文献2】特開2014-17746号公報
【非特許文献】
【0008】
【非特許文献1】FIDO ALLIANCE, “FIDO Alliance Specification Overview”, 令和3年7月21日検索, インターネット<https://fidoalliance.org/specifications/>
【発明の概要】
【発明が解決しようとする課題】
【0009】
特許文献1は、重畳していない複数の生体特徴を抽出し認証に利用する技術を開示している。しかし、特許文献1は、異なる種類の生体情報や生体情報の組み合わせを用いた場合に、同一の秘密鍵を復元してオンライン認証に用いる仕組みを開示していない。
【0010】
このため、特許文献1に記載の技術では、例えば、指ごとや、顔など登録生体情報ごとに一つ鍵が設定されており、利用者側での鍵管理が必要となる。仮に、特許文献1に記載の技術で、認証システム側で秘密鍵を管理する場合、複数種類の生体情報の全ての組み合わせごとに同一の秘密鍵を保護して保持する必要があるため、生体情報数nのべき乗で認証テンプレートのサイズが肥大化する。
【0011】
また、非特許文献1に記載のFIDO規格では、端末ごとにバラバラの秘密鍵が管理されており、複数生体情報の組み合わせにより固定の秘密鍵を復元する仕様については開示されていない。
【0012】
そこで本発明の一態様は、複数種類の生体情報を用いた生体認証において、効率的に同じ秘密鍵を安全かつ高精度に復元し、ひいては安全かつ高精度にオンライン認証を実行する。
【課題を解決するための手段】
【0013】
上記の課題の少なくとも一つを解決するため、本発明の一態様は、以下の構成を採用する。情報処理装置であって、プロセッサとメモリとを有し、前記メモリは、複数種類それぞれの生体情報から得られた登録用特徴量と、秘密データと、所定の埋め込み処理と、に基づいて生成され、前記登録用特徴量それぞれに対応するコミットメントを保持し、前記プロセッサは、複数種類それぞれの生体情報から得られた認証用特徴量を取得し、前記認証用特徴量と、当該認証用特徴量と同種の生体情報から得られた登録用特徴量に対応するコミットメントと、に基づいて、前記秘密データを復元する、情報処理装置。
【発明の効果】
【0014】
本発明の一態様によれば、複数種類の生体情報を用いた生体認証において、効率的に同じ秘密鍵を安全かつ高精度に復元し、ひいては安全かつ高精度にオンライン認証を実行することができる。
【0015】
上記した以外の課題、構成、及び効果は、以下の実施形態の説明により明らかにされる。
【図面の簡単な説明】
【0016】
【
図1】実施例1における生体認証システムの構成例を示すブロック図である。
【
図2】実施例1における生体情報登録処理の一例を示すフローチャートである。
【
図3】実施例1における認証処理の一例を示すフローチャートである。
【
図4】実施例1における分散コミットメント生成処理の一例を示すフローチャートである。
【
図5】実施例1における分散シェア復元処理の一例を示すフローチャートである。
【
図6】実施例2における登録処理の一例を示すフローチャートである。
【
図7】実施例2における認証処理の一例を示すフローチャートである。
【
図8】実施例2における階層型分散コミットメントにおける生体認証グループの階層分けの一例を示す説明図である。
【
図9】実施例2における階層型分散コミットメントの構成例を木構造で示す説明図である
【
図10】実施例3における登録処理の一例を示すフローチャートである。
【
図11】実施例3における認証処理の一例を示すフローチャートである。
【
図12】実施例4における表示装置に表示されるガイドの一例である。
【発明を実施するための形態】
【0017】
以下、図面を参照して本発明の実施形態を説明する。以下の記載および図面は、本発明を説明するための例示であって、説明の明確化のため、適時、省略および簡略化がなされている。本発明は、他の種々の形態でも実施する事が可能である。特に限定しない限り、各構成要素は単数でも複数でも構わない。
【0018】
図面において示す各構成要素の位置、大きさ、形状、及び範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、及び範囲などを表していない場合がある。このため、本発明は、必ずしも、図面に開示された位置、大きさ、形状、及び範囲などに限定されない。
【実施例0019】
図1は、生体認証システム10の構成例を示すブロック図である。生体認証システム10は、顔や指、及び手のひら等の生体画像を用いて生体を認証するシステムである。生体認証システム10は、情報処理装置3、情報処理装置3に備え付けられた又は接続された撮像装置2、及びサーバ5を含む。情報処理装置3とサーバ5は、インターネット等のネットワーク4を介して通信可能である。
【0020】
情報処理装置3は、撮像装置2が撮影した生体情報の静止画又は動画を取得し、動画処理、生体情報抽出、生体情報コード化、秘密データ生成、及び登録データ生成を含む一連の処理を実行し、情報処理装置3とサーバ5は登録処理又は認証処理を実行する。登録処理や認証処理の結果や生体情報の提示方法に関するガイドが必要な場合は、情報処理装置3は、表示装置36などに処理結果やガイドを表示する。なお、情報処理装置3とサーバ5とが一体化していてもよい。
【0021】
情報処理装置3は、例えば、CPU31、メモリ32、補助記憶装置33、通信装置34、入力装置35、及び表示装置36を含む計算機によって構成される。
【0022】
CPU31は、プロセッサを含み、メモリ32に格納されたプログラムを実行する。メモリ32は、不揮発性の記憶素子であるROM(Read Only Memory)及び揮発性の記憶素子であるRAM(Random Access Memory)を含む。ROMは、不変のプログラム(例えば、BIOS(Basic Input/Output System))などを格納する。RAMは、DRAM(Dynamic Random Access Memory)のような高速かつ揮発性の記憶素子であり、CPU31が実行するプログラム及びプログラムの実行時に使用されるデータを一時的に格納する。
【0023】
補助記憶装置33は、例えば、磁気記憶装置(HDD(Hard Disk Drive))、フラッシュメモリ(SSD(Solid State Drive))等の大容量かつ不揮発性の記憶装置であり、CPU31が実行するプログラム及びプログラムの実行時に使用されるデータを格納する。すなわち、プログラムは、補助記憶装置33から読み出されて、メモリ32にロードされて、CPU31によって実行される。
【0024】
なお、本実施形態において、生体認証システム10が使用する情報は、データ構造に依存せずどのようなデータ構造で表現されていてもよい。例えば、テーブル、リスト、データベース、又はキューから適切に選択したデータ構造体が、情報を格納することができる。
【0025】
入力装置35は、キーボードやマウスなどの、オペレータからの入力を受ける装置である。また、入力装置35は、電子文書の入力を受け付けるための装置を含んでいてもよい。表示装置36は、ディスプレイ装置やプリンタなどの、プログラムの実行結果をオペレータが視認可能な形式で出力する装置である。また、情報処理装置3は、撮像装置2から動画の入力を受け付けるための入力インターフェースを有してもよいし、ネットワーク4を介して撮像装置2から動画を受信してもよい。通信装置34は、所定のプロトコルに従って、他の装置との通信を制御するネットワークインターフェース装置である。
【0026】
CPU31が実行するプログラムは、非一時的な記憶装置を備えた他の情報処理装置から、非一時的な記憶媒体であるリムーバブルメディア(CD-ROM、フラッシュメモリなど)又はネットワーク4を介して情報処理装置3に提供され、非一時的記憶媒体である不揮発性の補助記憶装置33に格納されてもよい。このため、情報処理装置3は、リムーバブルメディアからデータを読み込むインターフェースを有するとよい。これは、サーバ5についても同様である。
【0027】
情報処理装置3は、物理的に一つの計算機上で、又は、論理的又は物理的に構成された複数の計算機上で構成される計算機システムであり、同一の計算機上で別個のスレッドで動作してもよく、複数の物理的計算機資源上に構築された仮想計算機上で動作してもよい。これは、サーバ5についても同様である。
【0028】
CPU31は、動画入力部320、動画処理部321、生体情報検知部322、生体特徴抽出部323、秘密データ生成部324、分散コミットメント生成部325、署名生成部326、生体認証部327、及び電子文書入力部328を含む。
【0029】
動画入力部320は、撮像装置2から動画の入力を受け付ける。動画入力部320は、いずれも情報処理装置3の一例であるモバイル端末やノート型PC(Personal Computer)に最初から備わっている機能であってもよい。
【0030】
動画入力部320は、表示装置36にガイドを表示して、撮像装置2が撮像した動画の入力を受け付ける。動画処理部321は、入力された動画を複数の静止画へと変換する。生体情報検知部322は、各静止画から顔、指、及び手のひら等の生体情報の検知及び抽出を行う。生体特徴抽出部323は、抽出された生体情報から特徴量を抽出する。なお、本実施形態では、特徴量とは、1次元の値であってもよいし2次元以上のベクトルであってもよい。
【0031】
秘密データ生成部324は、生体認証成功時に復元される秘密データを生成する。秘密データ生成部324は、例えば、公開鍵暗号方式に基づく秘密鍵と公開鍵の鍵ペアを生成し、秘密鍵を秘密データに決定する。
【0032】
分散コミットメント生成部325は、秘密データと特徴量とから分散コミットメントを生成する。署名生成部326は、認証処理において得られた秘密データを用いて署名を生成する。生体認証部327は、サーバ5との間で生体認証を実行する。
【0033】
補助記憶装置33は、基準行列記憶領域41を含む。基準行列記憶領域41には、ユークリッド距離(L2距離)やハミング距離(L1距離)が定義される特徴ベクトルをL∞距離が定義されるベクトルに変換するための行列が記憶されている。
【0034】
例えば、CPU31は、メモリ32にロードされた動画入力プログラムに従って動作することで、動画入力部320として機能し、メモリ32にロードされた動画処理プログラムに従って動作することで、動画処理部321として機能する。CPU31に含まれる他の機能部についても、プログラムと機能部の関係は同様である。また、サーバ5が有するCPU51に含まれる後述する機能部についても、プログラムと機能部の関係は同様である。
【0035】
なお、CPU31及びCPU51に含まれる機能部による機能の一部又は全部が、例えば、ASIC(Application Specific Integrated Circuit)やFPGA(Field-Programmable Gate Array)等のハードウェアによって実現されてもよい。
【0036】
サーバ5は、例えば、CPU51、メモリ52、補助記憶装置53、通信装置54、入力装置55、及び表示装置56を含む計算機によって構成される。CPU51、メモリ52、補助記憶装置53、通信装置54、入力装置55、及び表示装置56それぞれのハードウェアとしての説明は、CPU31、メモリ32、補助記憶装置33、通信装置34、入力装置35、及び表示装置36それぞれのハードウェアとしての説明と同様であるため、省略する。
【0037】
CPU51は、データ登録部521及びデータ取得部522を含む。データ登録部521は、分散コミットメントをデータベース530に登録する。データ取得部522は、情報処理装置3の生体認証部327の要求に応じて、データベース530に格納された分散コミットメントを取得して、情報処理装置3に送信する。
【0038】
なお、上記した例では、情報処理装置3のCPU31が生体認証部327を有しているが、サーバ5のCPU51が生体認証部327を有し、サーバ5の生体認証部327が生体認証を実行してもよい。
【0039】
補助記憶装置53はデータベース530を有する。データベース530は、分散コミットメントを保持する。
【0040】
図2は、生体情報登録処理の一例を示すフローチャートである。ステップS201では、動画入力部320は、利用者に1種類以上の生体情報を提示するガイドを表示装置36に表示し、これに従って利用者は顔や手などの1種類以上の生体情報を撮像装置2にかざす。なお、動画入力部320がガイドを表示することなく、利用者は撮像装置2に1種類以上の生体情報をかざしてもよい。
【0041】
スマートフォンやタブレットなどのモバイル端末を情報処理装置3として利用する場合であれば、利用者は空中に(情報処理装置3に備え付けられた撮像装置2のレンズに向かって)顔や手を同時にかざす。この時、複数の生体情報が重畳して撮像されないように、例えば「顔と手を放して下さい」等のメッセージを含むガイドを表示装置36に表示してもよい。これにより、利用者は複数の生体情報を安定的に取得でき、認証精度を向上することができる。
【0042】
ステップS202では、動画入力部320は、撮像装置2が利用者の手を一定時間撮影した動画の入力を撮像装置2から受け付ける。
【0043】
ステップS203では、動画処理部321は、ステップS202で入力された動画を複数の静止画へ変換する。動画処理部321は、動画内全てのフレームを静止画へ変換してもよいし、動画の一部のみを静止画に変換してもよい。また、動画処理部321は、この時に得られた静止画の品質判定を行ってもよく、画像品質が所定値未満の静止画を削除して、以降の処理では当該削除した静止画に対して処理が実行されなくてもよい。
【0044】
ステップS204では、生体情報検知部322は、ステップS203で生成した静止画それぞれに写っている1種類以上の生体情報を検出する。生体情報検知部322は、ステップS203で生成した静止画から所定の画像領域(例えば、被認証者の手が写っている画像領域。以下、「切出画像」とも称する。)を切り出し、切出画像から背景分離画像を生成する。生体情報検知部322は、例えば、撮像装置2が取得した画像の固定座標位置によって切出画像を生成したり、撮影画像中から所定の生体情報(例えば、手や顔)を探索し、その外接矩形座標に基づき切り出し画像を生成したりする。
【0045】
ステップS205では、生体情報検知部322は、所定数以上の種類の生体情報を、ステップS204において取得できたかを判定する。生体情報検知部322は、所定数以上の種類の生体情報が取得できるまでステップS204の処理を繰り返す。
【0046】
この時、生体情報検知部322は、全ての生体情報を同列に扱ってもよいし、「顔 AND 手」を取得する必要があり、かつ「虹彩又は顔面」を取得すれば顔を取得したとみなし、「指3本以上又は掌一つ」を取得すれば手を取得したとみなす、というように、生体情報を階層的に扱ってもよい。階層的に扱う場合の処理については、実施例2で説明する。
【0047】
ステップS206では、生体特徴抽出部323は、取得した各生体情報から特徴量X_iを抽出する。生体特徴抽出部323は、使用する生体情報がn種類ある場合、少なくともn件の特徴量X_iを抽出する、即ち各生体情報から少なくとも1つの特徴量を抽出する。
【0048】
ステップS207では、秘密データ生成部324は、後述する認証処理が成功した際に復元されるデータである秘密データ(Ks)を作成する。具体的には、秘密データ生成部324は、例えば、RSA署名、DSA(Digital Signature Algorithm)、ElGamal署名、Schnorr署名、楕円DSA、楕円ElGamal署名、又は楕円Schnorr署名などの電子署名技術により、ランダムに秘密鍵と公開鍵(Kpとする)のペアを生成し(秘密鍵と公開鍵のペアは生体情報から生成されなくてもよい)、公開鍵を補助記憶装置33に格納する。秘密データは、当該秘密鍵に限られず、パスワード、及び個人情報等の、ユーザが秘匿したい任意のデータであってもよい。
【0049】
ステップS208では、分散コミットメント生成部325は、秘密データKsを、(k,n)閾値秘密分散法により、n個のシェア(ds_1,・・・,ds_n)に分割する。
【0050】
ステップS209では、分散コミットメント生成部325は、所定の埋め込み関数Embを用いて、各特徴量X_iに対して分散シェアds_i(i=1,・・・,n)を埋め込むことで、分散コミットメントC_i=Emb(X_i,ds_i)を生成する。このとき、コミットメントC_iからは、特徴量X_i及び分散シェアds_iを推定することが十分に困難であるような埋め込み関数Embが用いられる。埋め込み関数Embの具体例は、特許文献2に記載のものを用いることができる他、
図4にて後述するものを用いることができる。
【0051】
ステップS210では、分散コミットメント生成部325は、ステップS209で生成した分散コミットメントC_iそれぞれを登録データに決定し、登録要求と共にネットワーク4を介してサーバ5に送信する。また、分散コミットメント生成部325は、機微情報である秘密データKs、分散シェアds_i、分散シェア(ds_1,ds_2,・・・,ds_n)、及び生体特徴量(X_1,・・・,X_n)を破棄する。
【0052】
ステップS211では、サーバ5は、ステップS210で情報処理装置3からサーバ5に送信された登録要求と登録データを受信し、データ登録部521は、データベース50に登録データを保存する。1種類以上の生体情報に係る認証が成功しない限り、分割シェアからは秘密データが復元されないため、分散コミットメント生成部325は、サーバ5に分散シェアを送信せずに、全ての分散コミットメントを情報処理装置3の補助記憶装置33に格納してもよい。
【0053】
図3は、認証処理の一例を示すフローチャートである。認証処理では、生体認証システム10が複数種類の生体情報を用いて、同一の秘密鍵を復元し電子署名を行うことでオンライン本人認証を行う。
【0054】
ステップS301では、動画入力部320は、利用者に1種類以上の生体情報の提示を促すガイドを表示装置36に表示し、これに従って利用者は撮像装置2に1種類以上の生体情報(登録時と同じ生体情報であり、例えば顔と手)をかざす。なお、動画入力部320がガイドを表示することなく、利用者は撮像装置2に1種類以上の生体情報をかざしてもよい。
ステップS302からステップS304の処理は、ステップS202からステップS204の処理と同様であるため説明を省略する。
【0055】
ステップS305では、生体認証部327は、ネットワーク4を介してサーバ5に対して分割コミットメント取得要求を送信し、テンプレート要求を受信したサーバ5のデータ取得部522は、データベース50からユーザIDを指定して登録データを取得して情報処理装置3へ送信する。なお、ステップS305の処理は、ステップS301~S306の処理の間であればいつ実行されてもよい。例えば、ステップS301の処理の後にステップS305を実行してからステップS302からステップS304及びステップS306の処理を実行してもよい。
【0056】
ステップS306では、生体認証部327は、取得した生体特徴X’_iと登録データに含まれる分散コミットメントC_iとから、分散シェアds_iを復元する。コミットメントの復元方法については
図5を用いて後述する。
【0057】
ステップS307では、生体認証部327は、復元した分散シェアの個数が所定数kに以上であるかを判定し、復元した分散シェアの個数が所定数k未満である場合、別の生体特徴X’_jと分散コミットメントC_jからさらに分散シェアを復元する。即ち、生体認証部327は、復元した分散シェアの個数が所定数k以上となるまで、ステップS306の処理を繰り返し、復元した分散シェアの個数が所定数k以上となればステップS308に遷移する。
【0058】
ステップS308では、生体認証部327は、所定数k以上の復元した分散シェアから、(k,n)閾値秘密分散法に基いて、秘密データKsを復元する。
【0059】
ステップS309では、復元した秘密データが電子署名における秘密鍵Ksである場合、電子文書入力部328は、電子文書Me(Meはランダムなメッセージであってもよい)を取得する。電子文書入力部328は、例えばネットワーク4を介して電子文書Meを受信してもよいし、USB(Universal Serial Bus)メモリ等の記録媒体から電子文書Meを読み取ってもよいし、情報処理装置3に接続された署名生成装置(不図示)が作成した電子文書Meを読み込んでもよい。
【0060】
ステップS310では、署名生成部326は、電子文書Meに対して復元した秘密鍵(秘密データKs)を用いて電子署名σ=Sign(Me,Ks)を生成し、生成した電子署名σと、当該秘密鍵のペアである公開鍵と、をペアにしたS=(σ,Kp)を署名データとして生成する。なお、署名生成関数(Sign)として、任意の電子署名アルゴリズム、例えば、RSA署名やDSAなどが用いられてもよい。
【0061】
図4は、ステップS209における分散コミットメント生成処理の一例を示すフローチャートである。生体特徴量X_iと分散シェアds_iとから分散コミットメントC_iが生成される。
【0062】
ステップS401では、分散コミットメント生成部325は、複数種類の生体情報のうちの1つの生体特徴量X_iを取得する。ステップS402では、分散コミットメント生成部325は、秘密データKsより作成した分散シェアの一つであるds_iを取得する。
【0063】
ステップS403では、分散コミットメント生成部325は、一般にユークリッド距離(L2距離)やハミング距離(L1距離)が定義される特徴ベクトルX_iをL∞距離が定義されるベクトルY_iに変換する。具体的には、例えば、分散コミットメント生成部325は、基準行列記憶領域41から行列Mを取得し、行列Mと、生体特徴量X_iと、の掛け算により、生体特徴量X_iを特徴量Y_iに変換する。行列Mは、m個の1次元ベクトルから構成される。ここで、nは生体特徴量X_iの次元数である。行列Mの構成例の一つとして、ノルムが所定の定数cに一致するm個の1次元基準ベクトルによって行列Mが構成されてもよい。具体的には、例えば、分散コミットメント生成部325は、以下の変換式である(式1)を用いて特徴ベクトルY_iを算出する。
【0064】
【0065】
ベクトルrは、例えば、擬似乱数生成器を用いて生成された乱数ベクトルである。なお、この乱数ベクトルを加える処理を実行しなくてもよい。
【0066】
ステップS404では、分散コミットメント生成部325は、ステップS403で算出した特徴ベクトルY_iから、所定の基準閾値整数tに基づく演算により、秘密ベクトルと公開ベクトルを作成する。具体的には、例えば、分散コミットメント生成部325は、(式2)を用いて秘密ベクトルYs_iを算出し、以下の(式3)を用いて公開ベクトルYp_iを算出する。
【0067】
【0068】
【0069】
ステップS405では、分散コミットメント生成部325は、分散シェアds_i、秘密ベクトルYs_i、及び公開ベクトルYp_iを用いて、分散コミットメントを算出する。具体的には、例えば、分散コミットメント生成部325は、以下の(式4)を用いて分散コミットメントを算出する。
【0070】
【0071】
分散コミットメントを算出する別の例として、分散コミットメント生成部325は、(式2)で算出される秘密ベクトルについて、暗号学的ハッシュ関数h=hash(Ys_i)をキーとする共通鍵暗号を用いて、分散コミットメントC_i=enc(ds_i,h)を算出してもよい。
【0072】
上記した手順により算出された分散コミットメントC_iからは、特徴量X_i及び分散シェアds_iを推定することが十分に困難である。なお、ステップS401~ステップ405の処理によって1つの分散コミットメントが算出されるが、ステップS307において、分散コミットメントが所定数k以上生成されるまで、ステップS401~ステップ405の処理が繰り返される。
【0073】
図5は、ステップS306における分散シェア復元処理の一例を示すフローチャートである。分散シェア復元処理では、認証処理時に抽出された生体特徴量X’_iに基づいて、分散コミットメントから分散シェアds_iを復元する。
【0074】
ステップS501では、生体認証部327は、生体特徴量X_iを1つ取得する。ステップS502では、生体認証部327は、分散コミットメントC_iを1つ取得する。
【0075】
ステップS503では、生体認証部327は、一般にユークリッド距離(L2距離)やハミング距離(L1距離)が定義される特徴ベクトルX_iをL∞距離が定義されるベクトルY_iに変換する。具体的には、例えば、生体認証部327は、基準行列記憶領域41から行列Mを取得し、行列Mと、生体特徴量X_iと、の掛け算により、生体特徴量X_iを特徴量Y_iに変換する。基準行列記憶領域41に格納されている行列Mは、ステップS403で説明したものと同様であるため、説明を省略する。
【0076】
ステップS504では、生体認証部327は、以下の(式5)によって、分散シェアd_iを復元する。
【0077】
【0078】
なお、(式5)におけるfloor(x)関数は、ベクトルxの各成分を最近傍の整数に変換する関数である。また、
図5中のExt(C_i,Y’)は、C_iとY’とを用いた復号化を表す関数であり、上述した(式5)は、当該関数の具体例である。
【0079】
なお、分散シェアを復元する別の例として、生体認証部327は、下記の(式6)で計算されるハッシュ値hをキーとする共通鍵暗号によって、ds_i=dec(C_i,h)を算出してもよい。
【0080】
【0081】
本実施例によれば、専用装置や汎用カメラで撮像された1種類の生体情報による認証が成功した際に1つの分散シェアを復元することができ、専用装置や汎用カメラで撮像されたn種類の生体情報のうちk種以上の生体認証に成功した際に、固定の秘密鍵を効率的に復元する機能を実現できる。
本実施例では、手の生体認証(指4本のうち2本)や虹彩(二つのうちの一つ)の例に見られるように、複数の構成からなる生体情報と、1つの構成からなるの生体情報の階層的なAND認証を行う例について説明する。
ステップS608では、分散コミットメント生成部325は、秘密データKsを生体認証グループに分けて秘密分散処理する。なお、当該グループ分けは予め定められているものとする。
また、指の1つ下位の階層の指静脈から得られる特徴量と指紋から得られる特徴量それぞれに対して、k=2の(つまり指静脈と指紋の双方から正しい分散シェアが復元されると指の特徴量が復元される)分散コミットメントが生成される。
さらに、指静脈の1つの下位の階層である、指それぞれの指静脈から得られる特徴量それぞれに対して、k=aの(即ちa本以上の指それぞれの指静脈から正しい分散シェアが復元されれば指静脈の特徴量が復元される)分散コミットメントが生成される。また、指静脈の1つの下位の階層である、指それぞれの指紋から得られる特徴量それぞれに対して、k=bの(即ちb本以上の指それぞれの指静脈から正しい分散シェアが復元されれば指静脈の特徴量が復元される)分散コミットメントが生成される。
また、顔の1つ下位の階層の可視光顔から得られる特徴量と虹彩から得られる特徴量それぞれに対して、k=2の(つまり可視光顔と虹彩の双方から正しい分散シェアが復元されると顔の特徴量が復元される)分散コミットメントが生成される。
同様に、1つ可視光顔の特徴量C_22と、1つの虹彩の特徴量C_23と、から正しい分散シェアが復元されれば、それぞれから正しい分散シェアが復元されれば、顔の特徴量DS_2が得られる。最後に、得られた指の特徴量Ds_1と、得られた顔の特徴量Ds_2と、それぞれから正しい分散シェアが復元されれば、秘密データKsが復元される。
ステップS609では、分散コミットメント生成部325は、認証グループが下位の認証グループ(要素)を持つかを判定する。分散コミットメント生成部325は、認証グループが下位の認証グループ(要素)を持つと判定した場合には、下位の認証グループを持つ分散シェアds_iを新たな秘密データとみなして、当該下位の認証グループに対して、ステップS608の処理を実行する。分散コミットメント生成部325は、分散シェアを生成していない下位の認証グループ(要素)がなくなるまで、ステップS608の処理を繰り返し、分散シェアを生成していない下位の認証グループ(要素)がなくなったらステップS610に遷移する。以下、このようにして構成された分散シェアds_i’の集合を、階層型分散シェアTsとも呼ぶ。
ステップS610において、分散コミットメント生成部325は、階層分散シェアTsについて、葉ノードに配置されたすべての分散シェアについて、ステップS209と同様の方法で分散コミットメントC_iを生成する。なお、分散コミットメント生成部325は、コミットメントの復号順序を認識可能とするために、階層分散シェアの階層構造と同じ構造で、分散コミットメントC_iそれぞれを配置して階層分散コミットメントTcを構成する。
ステップS611では、分散コミットメント生成部325は、階層分散コミットメントTcを登録データに決定し、登録要求と共にネットワーク4を介してサーバ5に送信する。また、分散コミットメント生成部325は、機微情報である秘密データKs、分散シェアds_i、階層分散シェア(ds’_1,ds’_2,・・・,ds’_n)、及び生体特徴量(X_1,・・・,X_n)を破棄して、ステップS211に遷移する。
ステップS706では、生体認証部327は、ステップS304で抽出した生体特徴量X’_iと、階層分散コミットメントTcの葉ノードにあるコミットメントC_iから、分散シェアds_iを復元する。
ステップS707では、生体認証部327は、階層分散コミットメントTcの中間ノードのいずれかについて(例えば、深さ優先探索により最初に到達したノード)、各ノードの分散シェアds_iを復元する。
ステップS708では、生体認証部327は、階層分散コミットメントTcのルートノードについて、シェアの復元(即ち秘密データKsの復元)が完了したかを判定する。生体認証部327は、階層分散コミットメントTcのルートノードについて、シェアの復元が完了していないと判定した場合、ステップS711において、深さ優先探索により次の未復元の中間ノードを探索し、ステップS707の処理を実行する。つまり、生体認証部327は、階層分散コミットメントTcのルートノードについて、シェアの復元が完了するまで、ステップS711及びステップS707の処理が繰り返され、シェアの復元が完了すると、ステップS309及びステップS310の処理が実行される。