(57)【特許請求の範囲】
【請求項１】
撮像装置で撮像された第１の画像をより低解像度に変換した第２の画像を用いて前記撮像装置による撮像条件を調整する調整部と、
セキュアな環境で動作するセキュアプロセッサに、前記調整部により調整された前記撮像条件で前記撮像装置により撮像された第３の画像を用いて、個人の虹彩を特徴付けるデータを含む虹彩のデジタルテンプレートとの照合を実行させる指示部と、
を含む、虹彩認証装置。
【請求項２】
更に、前記第３の画像をより低解像度に変換した第４の画像から瞳の位置と大きさを検出する検出部を含み、
前記指示部は、前記検出部で検出された前記瞳の位置と大きさの情報を、前記セキュアプロセッサに通知して、前記照合を実行させる、請求項１に記載の虹彩認証装置。
【請求項３】
前記セキュアプロセッサは、前記指示部から通知された前記瞳の位置と大きさの情報を用いて前記第３の画像から虹彩の情報を取得し、前記虹彩の情報を、前記虹彩のデジタルテンプレートと照合する、ことを特徴とする請求項２に記載の虹彩認証装置。
【請求項４】
更に、前記撮像装置で撮像された前記第３の画像を、前記セキュアプロセッサからのみ参照可能なセキュアメモリ領域に保存する保存部を含む、
ことを特徴とする請求項１から３のいずれか１項に記載の虹彩認証装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、虹彩認証装置に関する。
【背景技術】
【０００２】
例えば、携帯電話機、スマートフォン、タブレット端末、パーソナルコンピュータ（ＰＣ）、ノートＰＣなどの情報処理装置のロックの解除、及びネットワークを介したサービスへのログインの際に認証処理が行われている。認証処理は、例えば、ＩＤ（identification）とパスワードを用いて行われることがある。
【０００３】
また、例えば、指紋認証、及び虹彩認証などの生体認証が注目を集めている。なお、虹彩は、人間の眼球の瞳孔の外側にある環状の部分であり、虹彩の模様は、個人によって異なるため、個人の識別情報として利用することができる。虹彩から抽出した特徴を用いて認証を行うのが虹彩認証である。
【０００４】
これに関し、カメラ付き携帯電話のようなデジタル画像収集装置における改善された顔トラッキングを提供するための技術が知られている（例えば、特許文献１）。また、地域、施設または装置、例えばコンピュータまたはＡＴＭに対するアクセスを生物測定学的な評価で制御するために使用するための技術が知られている（例えば、特許文献２）。プライバシーとセキュリティの保護を両立する画像配信装置を提供するための技術が知られている（例えば、特許文献３）。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特表２０１１−５１４５６３号公報
【特許文献２】特表平１０−５０５１８０号公報
【特許文献３】国際公開第２０１２／００４９０７号公報
【発明の概要】
【発明が解決しようとする課題】
【０００６】
例えば、虹彩認証の際に撮像装置で撮像された虹彩の写った画像データ、及び照合のために用いられる虹彩のデジタルテンプレートが流出すると、他人が虹彩認証を行うことが可能になり、悪用される恐れがある。なお、虹彩のデジタルテンプレートは、例えば、ユーザの虹彩の画像から抽出されたデータであってよく、個々のユーザの虹彩を特徴付けるデータであってよい。そのため、虹彩認証は、例えば、トラステッド実行環境（ＴＥＥ：Trusted Execution Environment）などのセキュアな領域で動作するプロセッサで実行される。しかしながら、例えば、セキュアな領域で動作するプロセッサに処理を実行させる場合に時間がかかることがある。１つの側面では、本発明は、虹彩認証にかかる処理時間を短縮することを目的とする。
【課題を解決するための手段】
【０００７】
本発明の一つの態様の虹彩認証装置は、調整部と、指示部とを含む。調整部は、撮像装置で撮像された第１の画像をより低解像度に変換した第２の画像を用いて撮像装置による撮像条件を調整する。指示部は、セキュアな環境で動作するセキュアプロセッサに、調整部により調整された撮像条件で撮像装置により撮像された第３の画像を用いて、個人の虹彩を特徴付けるデータを含む虹彩のデジタルテンプレートとの照合を実行させる。
【発明の効果】
【０００８】
虹彩認証にかかる処理時間を短縮することができる。
【図面の簡単な説明】
【０００９】
【図１】虹彩認証を実行する虹彩認証装置を例示する図である。
【図２】或るプロセッサによる別のプロセッサの起動を例示する図である。
【図３】実施形態に係る虹彩認証装置を実現するためのハードウェア構成を例示する図である。
【図４】実施形態に係るアプリケーションが動作するプロセッサが実行する認証結果出力処理を例示する図である。
【図５】第１の実施形態に係る虹彩認証を行うアプリケーションが動作するプロセッサが実行する虹彩認証処理の動作フローを例示する図である。
【図６】実施形態に係る撮像装置を制御するドライバが実行する画像データの読み込み処理を例示する図である。
【図７】撮像装置の起動と画像データの保存に関するシーケンスを例示する図である。
【図８】実施形態に係るセキュアプロセッサが実行する照合処理を例示する図である。
【図９】第２の実施形態に係る虹彩認証を行うアプリケーションが動作するプロセッサが実行する虹彩認証処理の動作フローを例示する図である。
【図１０】実施形態に係る虹彩認証装置のブロック構成を例示する図である。
【発明を実施するための形態】
【００１０】
以下、図面を参照しながら、本発明のいくつかの実施形態について詳細に説明する。なお、複数の図面において対応する要素には同一の符号を付す。
【００１１】
図１は、虹彩認証を実行する虹彩認証装置１００を例示する図である。虹彩認証装置１００は、例えば、携帯電話機、スマートフォン、タブレット端末、パーソナルコンピュータ（ＰＣ）、及びノートＰＣなどの装置であってよい。虹彩認証装置１００は、例えば、タッチパネル、及びディスプレーなどの表示装置１０１、レシーバなどの音声出力装置１０２、マイクなどの音声入力装置１０３、撮像装置１０４、及び電源や音量調節のためのハードキー１０５を備えていてよい。撮像装置１０４は、例えば、カメラなどであり、虹彩の画像を撮像するために用いられてよい。虹彩認証は、上述のように例えば、トラステッド実行環境などのセキュアな領域で動作するプロセッサで実行される。そして、セキュアな領域で動作するプロセッサを準備するのに時間がかかることがある。
【００１２】
図２は、或るプロセッサによる別のプロセッサの起動を例示する図である。図２（ａ）では、プロセッサ−０は、プログラム‐ａの実行途中で、オペレーティングシステム（ＯＳ）のスケジューラ（Schedulor）からプロセッサコントローラを介して、プロセッサ−１の電源をオンにし、起動する。プロセッサ−１は起動すると、プログラム‐ｂを実行する。
【００１３】
一方、図２（ｂ）は、トラステッド実行環境などのセキュアな領域で動作するプロセッサを起動して処理を実行させる場合を例示している。上述のように、例えば、虹彩認証の際に撮像装置１０４で撮像された虹彩の写った画像データ、及び照合のために用いられる虹彩のデジタルテンプレートは、流出すると悪用される恐れがある。特に、例えば、アンドロイド（Android（登録商標））などのオープンソースソフトウェア(Open Source Software)のＯＳを搭載した装置では、悪意をもったアプリケーションの作成が比較的容易である。そのため、虹彩認証は、高いセキュリティ下で実行することが望ましく、虹彩認証は、例えば、トラステッド実行環境などのセキュアな領域で実行される。
【００１４】
図２（ｂ）では、プロセッサ−０はプログラム‐ｃを実行し、ハイパーバイザ（HyperVisor）からプロセッサコントローラ経由でプロセッサ−１をトラステッド実行環境などのセキュアな領域で起動する。セキュアな領域で起動したプロセッサ−１は、例えば、虹彩認証処理などを実行するトラステッド実行環境（ＴＥＥ）プログラムを実行する。そして、セキュアな領域を作る際、また、セキュアな領域で起動したプロセッサ−１を通常のプロセッサに戻す際、ＯＳのハイパーバイザ（HyperVisor）経由でプロセッサ−１にハード的な初期化処理が実行される（図２の★部分）。それにより、図２（ａ）の場合と比較して、セキュアな領域でのプログラムの実行には時間がかかる。
【００１５】
また、虹彩認証では、撮像装置１０４から入力される画像のピントや輝度などの撮像条件がズレていたり、又は、そもそも瞳が画像に写っていなかったりし、瞳が検出できないことがあり、その結果、虹彩のデジタルテンプレートとの照合に失敗することがある。この場合、撮像条件を適切に調製したり、瞳が写っている画像を取得したりすることで、虹彩のデジタルテンプレートとの照合に成功する可能性がある。そのため、虹彩認証では、例えば、１度の照合の失敗で認証の失敗と判定せず、動画に含まれる複数の画像に対して照合を実行することがある。しかしながら、この様に複数回にわたって照合を実行する場合、例えば、照合の度にプロセッサがセキュアな領域で起動され、その都度、プロセッサの初期化処理が実行される。その結果、虹彩認証の処理時間が長くなってしまうことがある。
【００１６】
また、セキュアな環境で動作するプロセッサは、数が１つに制限されていたり、処理性能が制限されていたりすることもある。そのため、例えば、セキュアな環境で実行される処理のうちの一部の処理を、通常のプロセッサで実行することができれば、セキュアな環境で実行する処理量を削減することができ、好ましい。
【００１７】
そのため、以下で述べる実施形態では、例えば、虹彩認証を実行する場合、虹彩認証装置１００は、セキュアな領域で動作するプロセッサで照合を行う前に、例えば、通常のプロセッサで、撮像条件の調整や瞳の検出などの処理を実行する。ここで、通常のプロセッサはセキュアな環境で動作していない。そのため、虹彩認証装置１００は、撮像装置１０４で撮像された画像を、虹彩の照合ができない程度の解像度に落として、低解像度の画像を生成する。そして、虹彩認証装置１００は、低解像度の画像を用いて、撮像条件の調整や瞳の検出を実行する。この様に、虹彩の情報が取得できない低解像度の画像を用いることで、画像が流出したとしても虹彩の情報が流出することを防止することができる。
【００１８】
また、虹彩認証装置１００は、撮像条件の調整や瞳の検出などの処理で用いた低解像度の画像に対応する虹彩認証が可能な元の高解像度の画像を用いて、セキュアな領域で起動したプロセッサで照合を実行する。そのため、撮像条件が調整済みであり、また、瞳が写っている画像で照合処理を実行することができ、照合が成功する可能性を高めることができる。その結果、照合の失敗によりプロセッサをセキュアな環境で複数回起動することを抑制することができ、虹彩認証における処理時間を短縮することができる。なお、以下の説明では、撮像装置１０４で撮像された虹彩認証が実行可能な解像度を有する画像を高解像度の画像、及び、そのデータを高解像度の画像データと呼ぶことがある。また、高解像度の画像の解像度を、虹彩が認証できない程度の解像度に変換して得られる画像を低解像度の画像と呼ぶことがあり、また、そのデータを低解像度の画像データと呼ぶことがある。なお、低解像度の画像は、虹彩認証の実行には不十分な解像度であるが、後述するように、例えば、輝度やフォーカスなどの撮像条件の調整、及び瞳の検出の実行には十分な解像度の画像であってよい。
【００１９】
図３は、実施形態に係る虹彩認証装置１００を実現するためのハードウェア構成を例示する図である。図３の虹彩認証装置１００を実現するためのハードウェア構成は、例えば、プロセッサ３０１、メモリ３０２、記憶装置３０３、通信インタフェース３０４、入出力インタフェース３０５、及び撮像装置１０４を備える。なお、プロセッサ３０１、メモリ３０２、記憶装置３０３、通信インタフェース３０４、入出力インタフェース３０５、及び撮像装置１０４は、例えば、バス３０８を介して互いに接続されている。
【００２０】
虹彩認証装置１００は、複数のプロセッサ３０１を含んでいてよく、プロセッサ３０１は、例えば、ＣＰＵ(Central Processing Unit)である。プロセッサ３０１は、例えば、メモリ３０２のメモリ領域３２１に読み出したアプリケーションのプログラムを実行することで、Android（登録商標）及びｉＯＳ（登録商標）などのＯＳ上でアプリケーション３１１を動作させる。アプリケーション３１１は、例えば、後述する認証結果出力処理及び虹彩認証処理を実行するアプリケーションであってよい。また、プロセッサ３０１は、メモリ３０２のドライバメモリ領域３２２に読み出したプログラムを実行することで、撮像装置１０４のドライバ３１２として動作し、撮像装置１０４を制御してよい。また、プロセッサ３０１は、例えば、別のプロセッサ３０１からの制御を受けてセキュアな領域で起動され、セキュアアプリケーション３１３を実行することで、セキュアプロセッサ３１０として動作してよい。セキュアプロセッサ３１０は、例えば、トラステッド実行環境で動作するプロセッサであってよく、セキュアメモリ領域３２３に読み出したプログラムを実行してよい。また、セキュアアプリケーション３１３は、例えば、TrustZone（登録商標）などのセキュアな領域で動作するアプリケーションであってよい。なお、以下の説明では、例えば、認証結果出力処理及び虹彩認証処理を実行するアプリケーション３１１などのＯＳ上でのアプリケーションが動作するプロセッサ３０１を、単にプロセッサ３０１及び通常のプロセッサ３０１と呼ぶことがある。また、例えば、撮像装置１０４のドライバ３１２が動作するプロセッサ３０１を、ドライバ３１２と呼ぶことがある。また更に、例えば、セキュアな領域で起動され、セキュアアプリケーション３１３が動作するプロセッサ３０１を、セキュアプロセッサ３１０と呼ぶことがある。
【００２１】
メモリ３０２は、例えば、ＲＡＭなどの半導体メモリである。なお、ＲＡＭは、Random Access Memoryの略称である。メモリ３０２は、例えば、メモリ領域３２１、ドライバメモリ領域３２２、及びセキュアメモリ領域３２３を含む。メモリ領域３２１は、例えば、ＯＳ上で動くアプリケーションが動作するプロセッサ３０１に割り当てられたメモリ領域である。
【００２２】
ドライバメモリ領域３２２は、例えば、撮像装置１０４を制御するドライバ３１２に割り当てられたメモリ領域である。ＯＳは、例えば、アプリケーション３１１で利用するメモリ領域３２１と、ＯＳやドライバ３１２が利用するメモリ領域とを論理的に分離している。例えば、ＯＳは、アプリケーション３１１からドライバが利用するドライバメモリ領域３２２にはアクセスができないように制御している。例えば、ドライバメモリ領域３２２には、撮像装置１０４で撮像された画像が記憶されてよい。
【００２３】
セキュアメモリ領域３２３は、例えば、セキュアプロセッサ３１０に割り当てられたメモリ領域である。セキュアメモリ領域３２３は、例えば、セキュアな環境で動作するセキュアプロセッサ３１０からはアクセス可能であるが、アプリケーション３１１が動作するプロセッサ３０１からはアクセスされないセキュアなメモリ領域である。
【００２４】
また、記憶装置３０３は、例えば、ＲＯＭなどの半導体メモリである。ＲＯＭは、Read Only Memoryの略称である。記憶装置３０３は、例えばフラッシュメモリである。記憶装置３０３は、例えば、照合に用いる虹彩のデジタルテンプレートを暗号化された状態で記憶している。
【００２５】
通信インタフェース３０４は、プロセッサ３０１の指示に従ってネットワークを介してデータを送受信する。入出力インタフェース３０５は、例えば、入力装置及び出力装置との間のインタフェースであってよい。入力装置は、例えば、ユーザからの指示を受け付けるキーボードやマウスなどのデバイス、及び、マイクなどの音声入力装置１０３である。出力装置は、例えば、タッチパネル、及びディスプレーなどの表示装置１０１、並びにレシーバなどの音声出力装置１０２である。
【００２６】
図４は、実施形態に係るアプリケーション３１１が動作するプロセッサ３０１が実行する認証結果出力処理を例示する図である。例えば、ＯＳ上で動作する図４の認証結果出力処理を実行するアプリケーション３１１に、認証結果出力処理の起動指示が入力されると、アプリケーション３１１が動作するプロセッサ３０１は、図４の動作フローを開始してよい。
【００２７】
ステップ４０１（以降、ステップを“Ｓ”と記載し、例えば、Ｓ４０１と表記する）においてプロセッサ３０１は、虹彩認証に使用する虹彩の画像を撮像する撮像装置１０４を起動する指示をドライバ３１２に出力する。ドライバ３１２は、撮像装置１０４を起動する指示が入力されると、撮像装置１０４に起動指示を出力し、撮像装置１０４を起動する。
【００２８】
Ｓ４０２においてプロセッサ３０１は、虹彩認証処理を起動する。虹彩認証処理において、プロセッサ３０１は、後述する図５の虹彩認証処理の動作フローを実行する。虹彩認証処理では、虹彩認証処理の実行中は虹彩認証状態が「処理中」に設定され、虹彩認証処理が終了すると、虹彩認証状態は「終了」に設定される。
【００２９】
そして、Ｓ４０３においてプロセッサ３０１は、Ｓ４０２の虹彩認証処理で設定される虹彩認証状態を読み出す。Ｓ４０４においてプロセッサ３０１は、読み出した虹彩認証状態が「処理中」であるか否かを判定する。Ｓ４０４において読み出した虹彩認証状態が「処理中」である場合（Ｓ４０４がＹＥＳ）、フローはＳ４０３へと戻る。一方、Ｓ４０４において読み出した虹彩認証状態が「処理中」でない場合（Ｓ４０４がＮＯ）、フローはＳ４０５へと進む。Ｓ４０５においてプロセッサ３０１は、撮像装置１０４を停止する指示をドライバ３１２に出力する。ドライバ３１２は、撮像装置１０４を停止する指示が入力されると、撮像装置１０４に停止指示を出力し、撮像装置１０４を停止する。
【００３０】
Ｓ４０６においてプロセッサ３０１は、Ｓ４０２で起動した虹彩認証処理により判定された虹彩認証の結果を出力する。例えば、プロセッサ３０１は、虹彩認証が成功したか否かを示す情報を出力してよい。プロセッサ３０１が虹彩認証の結果を出力すると本動作フローは終了する。
【００３１】
続いて、図５を参照して、上記の認証結果出力処理のＳ４０２で起動される虹彩認証処理について説明する。なお、図５は、虹彩認証を行うアプリケーション３１１が動作するプロセッサ３０１が実行する第１の実施形態に係る虹彩認証処理の動作フローである。
【００３２】
Ｓ５０１においてプロセッサ３０１は、例えば、虹彩認証状態を「処理中」に設定する。Ｓ５０２においてプロセッサ３０１は、ドライバ３１２に、撮像装置１０４からの画像データの読み込み処理の実行を指示する。
【００３３】
図６は、実施形態に係る撮像装置１０４を制御するドライバ３１２（即ち、ドライバ３１２が動作するプロセッサ３０１）が実行する画像データの読み込み処理を例示する図である。
【００３４】
Ｓ６０１においてドライバ３１２は、撮像装置１０４に画像データをドライバメモリ領域３２２に格納するように指示する。撮像装置１０４は、格納指示が入力されると、撮像した画像データをドライバメモリ領域３２２に格納し、格納通知をドライバ３１２に出力する。なお、撮像装置１０４がドライバメモリ領域３２２に格納する画像データは、例えば、虹彩認証を実行可能な解像度を有する高解像度の画像データである。
【００３５】
Ｓ６０２においてドライバ３１２は、画像データの格納通知が撮像装置１０４から入力されたか否かを判定する。画像データの格納通知が撮像装置１０４から入力されていない場合（Ｓ６０２がＮＯ）、フローはＳ６０２を繰り返す。一方、画像データの格納通知が撮像装置１０４から入力された場合（Ｓ６０２がＹＥＳ）、フローはＳ６０３に進む。Ｓ６０３においてドライバ３１２は、撮像装置１０４によりドライバメモリ領域３２２に格納された画像データを、セキュアメモリ領域３２３にコピーする。
【００３６】
Ｓ６０４においてドライバ３１２は、ドライバメモリ領域３２２に格納された高解像度の画像データの解像度を落とし、虹彩認証の実行に不十分な解像度を有する低解像度の画像に変換する。Ｓ６０５においてドライバ３１２は、低解像度の画像データをメモリ領域３２１にコピーする。Ｓ６０６においてドライバ３１２は、画像データの読み込みの完了通知を、図６の動作フローの呼び出し元であり、図５の虹彩認証の動作フローを実行するアプリケーションが動作するプロセッサ３０１に通知する。Ｓ６０６の処理が完了すると、本動作フローは終了し、図５の動作フローに戻る。
【００３７】
なお、図７は、以上で述べた、撮像装置１０４の起動と、撮像装置１０４で撮像された画像データの保存に関するシーケンスを例示する図である。
【００３８】
例えば、図４の認証結果出力処理の開始指示が入力されると、認証結果出力処理を実行するアプリケーション３１１が動作するプロセッサ３０１は、撮像装置１０４の起動指示をドライバ３１２に入力する（Ｓ７０１）。ドライバ３１２は、撮像装置１０４を起動する（Ｓ７０２）。
【００３９】
続いて、プロセッサ３０１は、ドライバ３１２に画像の読み込み指示を行い（Ｓ７０３）、ドライバ３１２は、撮像装置１０４に画像の読み込みを指示する（Ｓ７０４）。撮像装置１０４は、画像の読み込み指示の入力を受けると、撮像した画像をドライバメモリ領域３２２に格納し（Ｓ７０５）、画像の格納が完了したことをドライバ３１２が動作するプロセッサ３０１に通知する（Ｓ７０６）。なお、ここで得られる画像は、虹彩認証を実行するのに十分な虹彩の画像を取得可能な解像度を有する高解像度の画像であってよい。
【００４０】
続いて、ドライバ３１２は、ドライバメモリ領域３２２に保存された高解像度の画像データを、セキュアメモリ領域３２３にコピーする（Ｓ７０７）。セキュアメモリ領域３２３は、例えば、トラステッド実行環境などのセキュアな環境で動作するセキュアプロセッサ３１０からのみ参照可能なメモリ領域である。
【００４１】
また、ドライバ３１２は、ドライバメモリ領域３２２に保存された高解像度の画像データを、虹彩認証を実行するには不十分な解像度を有する低解像度の画像に変換する。そして、ドライバ３１２は、アプリケーション３１１を実行するプロセッサ３０１が参照可能なメモリ領域３２１に低解像度の画像を保存する（Ｓ７０８）。画像データのコピーが完了すると、ドライバ３１２は、画像データのコピーが完了したことを示す読み込み完了通知を、アプリケーションが動作するプロセッサ３０１に通知する。
【００４２】
なお、例えば、図７のＳ７０１の処理は図４のＳ４０１と対応しており、Ｓ７０３の処理はＳ５０２の処理と対応している。また、例えば、図７のＳ７０４、Ｓ７０７、Ｓ７０８、及びＳ７０９の処理は、図６のＳ６０１、Ｓ６０３、Ｓ６０５、及びＳ６０６の処理とそれぞれ対応している。そして、虹彩認証処理を実行するアプリケーションが動作するプロセッサ３０１が、ドライバ３１２から画像データの読み込みの完了通知を受け付けると、処理は図５のＳ５０３に進む。
【００４３】
Ｓ５０３においてプロセッサ３０１は、メモリ領域３２１に保存された低解像度の画像データを用いて、輝度が適切か否かを判定する。低解像度の画像データの輝度が適切でない場合（Ｓ５０３がＮＯ）、フローはＳ５０４に進む。Ｓ５０４においてプロセッサ３０１は、ドライバ３１２を介して撮像装置１０４に輝度の調整を指示し、フローはＳ５０２に戻る。
【００４４】
一方、Ｓ５０３において、輝度が適切である場合（Ｓ５０３がＹＥＳ）、フローはＳ５０５へと進む。Ｓ５０５においてプロセッサ３０１は、メモリ領域３２１に保存されている低解像度の画像を用いて、ピント（焦点）が合っているか否かを判定する。ピントが合っていない場合（Ｓ５０５がＮＯ）、フローはＳ５０６へと進む。Ｓ５０６においてプロセッサ３０１は、ピントが合うようにフォーカスを合わせる調整指示を、ドライバ３１２を介して撮像装置１０４に通知し、フローはＳ５０２へと戻る。
【００４５】
また、ピントが合っている場合（Ｓ５０５がＹＥＳ）、フローはＳ５０７へと進む。Ｓ５０７においてプロセッサ３０１は、メモリ領域３２１に保存されている低解像度の画像で瞳検出を実行し、瞳が検出できたか否かを判定する。瞳が検出されない場合（Ｓ５０７がＮＯ）、フローはＳ５０２へと戻る。一方、瞳が検出された場合（Ｓ５０７がＹＥＳ）、フローはＳ５０８に進む。Ｓ５０８においてプロセッサ３０１は、メモリ領域３２１に保存されている低解像度の画像を用いて瞳の情報（例えば、瞳の位置と大きさ）を取得する。
【００４６】
Ｓ５０９においてプロセッサ３０１は、図８の照合処理を呼び出し、瞳の情報をセキュアプロセッサ３１０に通知して、照合処理を実行させる。例えば、プロセッサ３０１は、ハイパーバイザを介して別のプロセッサ３０１を初期化し、セキュアなプロセッサとして動作させるためのプログラムをロードして、セキュアプロセッサ３１０を起動する。セキュアプロセッサ３１０は、例えば、トラステッド実行環境などのセキュアな環境で動作するプロセッサであってよい。そして、プロセッサ３０１は、起動したセキュアプロセッサ３１０に瞳の情報（例えば、瞳の位置と大きさ）を通知して照合処理を実行させてよい。セキュアプロセッサ３１０は、プロセッサ３０１から照合処理の実行指示が入力されると、例えば図８の動作フローを実行する。
【００４７】
図８は、実施形態に係るセキュアプロセッサ３１０が実行する照合処理を例示する図である。
【００４８】
Ｓ８０１においてセキュアプロセッサ３１０は、通知された瞳の情報（例えば、瞳の位置と大きさ）を用いて、セキュアメモリ領域３２３に保存されている高解像度の画像における瞳の位置と大きさを確認する。Ｓ８０２においてセキュアプロセッサ３１０は、高解像度の画像に写った瞳から虹彩の特徴を抽象化した抽象化データを生成する。なお、抽象化データは、例えば、虹彩のデジタルテンプレートの生成と同様のアルゴリズムを用いて抽象化されてよい。
【００４９】
Ｓ８０３においてセキュアプロセッサ３１０は、抽象化データを、記憶装置３０３に保存されている虹彩認証装置１００のユーザの虹彩を特徴付けるデータを含む虹彩のデジタルテンプレートと照合する。なお、虹彩のデジタルテンプレートは、例えば、記憶装置３０３に暗号化されて保存されていてよい。そして、セキュアプロセッサ３１０は、セキュアメモリ領域３２３にロードされた復号プログラムを用いて、虹彩のデジタルテンプレートをセキュアメモリ領域３２３で復号し、抽象化データとの照合を実行してよい。
【００５０】
抽象化データと虹彩のデジタルテンプレートとの照合が成功した場合（Ｓ８０３がＹＥＳ）、フローはＳ８０４に進み、セキュアプロセッサ３１０は、照合を成功と判定し、判定結果を呼び出し元のプロセッサ３０１に返す。一方、抽象化データと虹彩のデジタルテンプレートとの照合に失敗した場合（Ｓ８０３がＮＯ）、フローはＳ８０５に進み、セキュアプロセッサ３１０は、照合を失敗と判定し、判定結果を呼び出し元のプロセッサ３０１に返す。セキュアプロセッサ３１０が照合の結果を呼び出し元のプロセッサ３０１に返すと本動作フローは終了し、虹彩認証処理を実行するアプリケーションが動作する呼び出し元のプロセッサ３０１は、図５のＳ５１０の処理に進む。
【００５１】
Ｓ５１０において虹彩認証処理を実行するアプリケーションが動作するプロセッサ３０１は、セキュアプロセッサ３１０が返した判定結果に基づいて、照合が成功したか否かを判定する。照合に失敗している場合（Ｓ５１０がＮＯ）、フローはＳ５１１に進む。Ｓ５１１においてプロセッサ３０１は、図５の虹彩認証処理の実行を開始してから所定の時間が経過したか否かを判定する。所定の時間が経過していない場合（Ｓ５１１がＮＯ）、フローはＳ５０２に戻る。これは、例えば、瞳が写った画像であっても、撮像の際のブレなどの影響で虹彩認証に十分な画質の画像が撮影されていないことがあり、この場合、別のフレームで撮像された画像では照合に成功する可能性があるためである。そのため、プロセッサ３０１は、所定の時間が経過していなければ、別のフレームの画像を用いて再度照合を試みている。
【００５２】
一方、所定の時間が経過している場合（Ｓ５１１がＹＥＳ）、フローはＳ５１２に進み、プロセッサ３０１は、虹彩認証状態を「終了」に変更し、虹彩認証を失敗と判定し、本動作フローは終了する。
【００５３】
また、Ｓ５１０において照合に成功した場合（Ｓ５１０がＹＥＳ）、フローはＳ５１３に進む。Ｓ５１３においてプロセッサ３０１は、虹彩認証状態を「終了」に変更し、虹彩認証を成功と判定し、本動作フローは終了する。なお、Ｓ５１２又はＳ５１３の判定結果は、図４のＳ４０６で出力されてよい。
【００５４】
以上で述べたように、第１の実施形態に係る虹彩認証装置１００では、ドライバ３１２は、ドライバメモリ領域３２２に保存された虹彩認証が可能な解像度を有する高解像度の画像をセキュアメモリ領域３２３に保存する。また、ドライバ３１２は、高解像度の画像から虹彩認証に不十分な解像度を有する低解像度の画像を生成し、メモリ領域３２１に保存する。そして、虹彩認証を行うアプリケーション３１１が動作するプロセッサ３０１は、メモリ領域３２１に保存された低解像度の画像データを用いて、輝度調整やピント調整などの撮像条件を調整する。また、プロセッサ３０１は、調整後の撮像条件で撮影された画像から変換された低解像度の画像データを用いて、瞳検出を実行する。そして、プロセッサ３０１は、低解像度の画像データで瞳検出に成功すると、別のプロセッサ３０１をセキュアプロセッサ３１０として起動し、起動したセキュアプロセッサ３１０に瞳の情報を通知する。セキュアプロセッサ３１０は、瞳が検出された低解像度の画像に対応する高解像度の画像をセキュアメモリ領域３２３から読み出し、通知された瞳の情報を用いて、虹彩の抽象化データを生成する。そして、セキュアプロセッサ３１０は、抽象化データと、虹彩のデジタルテンプレートとの照合を実行する。
【００５５】
従って、セキュアプロセッサ３１０は、輝度やピントなどの撮像条件が適切に調整された画像に対して虹彩のデジタルテンプレートとの照合を実行することができる。そのため、輝度やピントなどの撮像条件がズレていることに起因して照合が失敗することを抑制できる。また更に、セキュアプロセッサ３１０は、瞳が検出された画像に対して虹彩のデジタルテンプレートとの照合を実行することができる。従って、瞳の写っていない画像などの照合に失敗する画像に対して、セキュアプロセッサ３１０を起動して照合を実行することを抑制できる。その結果、照合の度にセキュアプロセッサ３１０を起動し、セキュアプロセッサ３１０の起動に伴う初期化などにかかる時間が長くなることを抑制することができる。そのため、虹彩認証における処理時間を短縮することができる。
【００５６】
また、例えば、セキュアな環境で動作するセキュアプロセッサ３１０は、数が１つに制限されていたり、処理性能が制限されていたりすることもある。そのため、上記に撮像条件の調整や瞳検出を例として示すように、例えば、セキュアな環境で実行される処理を削減し、通常のプロセッサ３０１に処理を回すことで、虹彩認証にかかる処理時間を短縮することができる。
【００５７】
また、上記の実施形態では、虹彩認証に用いることが可能な高解像度の画像は、ドライバメモリ領域３２２又はセキュアメモリ領域３２３に保存される。ここで、ドライバメモリ領域３２２は、例えば、アプリケーション３１１が利用するメモリ領域３２１とは論理的に分離されており、アプリケーション３１１が動作するプロセッサ３０１からはアクセスされない。また、同様に、セキュアメモリ領域３２３は、例えば、セキュアプロセッサ３１０からのみアクセスされ、アプリケーション３１１が動作するプロセッサ３０１からはアクセスされない。そのため、虹彩の写った高解像度の画像データが流出し、悪用されてしまう危険性を低くすることができる。特に、オープンソースソフトウェアのＯＳを搭載した虹彩認証装置１００では、悪意をもったアプリケーション３１１の作成が比較的容易である。しかしながら、実施形態によれば、アプリケーション３１１が動作するプロセッサ３０１が虹彩の写った高解像度の画像データにアクセスすることを防ぐことができる。
【００５８】
一方、メモリ領域３２１には、虹彩認証には不十分な解像度を有する低解像度の画像が保存される。メモリ領域３２１は、アプリケーション３１１が動作するプロセッサ３０１からのアクセスが可能であり、低解像度の画像を用いてプロセッサ３０１は、撮像条件の調整や瞳の検出を実行することができる。一方で、メモリ領域３２１に保存された画像データは、低解像度の画像であるため、画像データが流出したとしても虹彩の情報が漏れることを防ぐことができる。
【００５９】
＜第２の実施形態＞
第１の実施形態では、Ｓ５０２の画像データ読み込み処理でドライバ３１２は、高解像度の画像データをセキュアメモリ領域３２３にコピーし、また、低解像度の画像データを生成してメモリ領域３２１にコピーしている。第２の実施形態では、虹彩認証を行うアプリケーションが動作するプロセッサ３０１は、まず、ドライバ３１２に低解像度の画像データを生成させて、メモリ領域３２１にコピーさせる。そして、プロセッサ３０１は、低解像度の画像データを用いて撮像条件の調整や、瞳の検出などの処理を完了する。その後、プロセッサ３０１は、ドライバ３１２に高解像度の画像データをセキュアメモリ領域３２３にコピーさせて、セキュアプロセッサ３１０に虹彩の照合を実行させる。それにより、例えば、撮像条件の調整や、瞳の検出などを完了させるまでの間に、データサイズの大きな高解像度の画像データをセキュアメモリ領域３２３に複数回コピーすることを防止できる。そのため、データサイズの大きな高解像度の画像データのコピーにかかる時間を短縮し、虹彩認証にかかる処理時間を短縮することができる。以下、第２の実施形態に係る虹彩認証処理を例示する。
【００６０】
図９は、第２の実施形態に係る虹彩認証を行うアプリケーション３１１が動作するプロセッサ３０１が実行する虹彩認証処理の動作フローを例示する図である。図９の動作フローは、例えば、図４のＳ４０２に進むと起動してよい。
【００６１】
図９のＳ９０１からＳ９０８までの処理において、プロセッサ３０１は、図５のＳ５０１からＳ５０８までの処理と類似する処理を実行してよい。ただし、第２の実施形態では、Ｓ９０２においてプロセッサ３０１の指示を受けたドライバ３１２は、低解像度の画像データをメモリ領域３２１にコピーするが、高解像度の画像データのセキュアメモリ領域３２３へのコピーは実行しない。即ち、第２の実施形態では、ドライバ３１２は、例えば、図６の動作フローのＳ６０３の処理を実行しない。
【００６２】
また、Ｓ９０９においてプロセッサ３０１は、瞳が検出された低解像度の画像データに対応する高解像度の画像データを、セキュアメモリ領域３２３にコピーするようにドライバ３１２に指示する。ドライバ３１２は、プロセッサ３０１から指示を受けると、瞳が検出された低解像度の画像データに対応する高解像度の画像データを、ドライバメモリ領域３２２からセキュアメモリ領域３２３にコピーする。
【００６３】
続くＳ９１０からＳ９１４までの処理においてプロセッサ３０１は、図５のＳ５０９からＳ５１３までの処理と同様の処理を実行してよい。
【００６４】
以上で述べた様に、第２の実施形態では、まず、ドライバ３１２に低解像度の画像データのメモリ領域３２１にコピーさせて、撮像条件の調整や、瞳の検出などの処理が完了する。その後、プロセッサ３０１は、ドライバ３１２に高解像度の画像データをセキュアメモリ領域３２３にコピーさせて、セキュアプロセッサ３１０に虹彩の照合を実行させる。そのため、第２の実施形態は、第１の実施形態と同様の効果を奏する。また更に、第２の実施形態では、例えば、撮像条件の調整や、瞳の検出などを完了させるまでの間に、データサイズの大きな高解像度の画像データをセキュアメモリ領域３２３に複数回コピーすることを防止できる。そのため、データサイズの大きな高解像度の画像データのコピーにかかる時間を短縮し、虹彩認証にかかる処理時間を短縮することができる。
【００６５】
図１０は、実施形態に係る虹彩認証装置１００のブロック構成を例示する図である。虹彩認証装置１００は、例えば、制御部１００１、記憶部１００２、及び撮像装置１０４を含む。制御部１００１は、例えば調整部１０１１、指示部１０１２、検出部１０１３、及び保存部１０１４などを含む。例えば、プロセッサ３０１は、メモリ３０２に虹彩認証を行うためのプログラムを読み込んで実行することで、制御部１００１に含まれる調整部１０１１、指示部１０１２、及び検出部１０１３などとして動作してよい。また、プロセッサ３０１は、メモリ３０２に撮像装置１０４のドライバプログラムを読み込んで実行することで、制御部１００１に含まれる保存部１０１４として動作してよい。プロセッサ３０１は、別のプロセッサ３０１からの制御を受けて、セキュアな環境で動作するセキュアプロセッサ３１０として動作してよい。記憶部１００２は、例えば、メモリ３０２及び記憶装置３０３を含む。撮像装置１０４は、例えば、カメラなどであってよい。
【００６６】
調整部１０１１は、例えば、撮像装置１０４で撮像された高解像度の画像を低い解像度に変換して得られた低解像度の画像を用いて撮像装置１０４の撮像条件を調整する。例えば、プロセッサ３０１は、上述のＳ５０３からＳ５０６及びＳ９０３からＳ９０６の処理において調整部１０１１として動作してよい。
【００６７】
指示部１０１２は、例えば、トラステッド実行環境（ＴＥＥ）などのセキュアな環境で動作するセキュアプロセッサ３１０に、調整部１０１１により調整された設定で撮像された高解像度の画像を用いて虹彩のテンプレートとの照合を実行させる指示を出力する。例えば、プロセッサ３０１は、上述のＳ５０９及びＳ９１０の処理において指示部１０１２として動作してよい。
【００６８】
検出部１０１３は、例えば、高解像度の画像を低解像度に変換した低解像度の画像から瞳を検出する。例えば、プロセッサ３０１は、上述のＳ５０７からＳ５０８及びＳ９０７からＳ９０８の処理において検出部１０１３として動作してよい。なお、指示部１０１２は、上述のＳ５０９及びＳ９１０の処理において検出部１０１３で検出された瞳の情報（例えば、瞳の位置と大きさ）を、セキュアプロセッサ３１０に通知してよい。
【００６９】
保存部１０１４は、例えば、撮像装置１０４で撮像された高解像度の画像を、セキュアプロセッサ３１０からのみ参照が許可されるセキュアメモリ領域３２３に保存する。また、保存部１０１４は、高解像度の画像の解像度を落として低解像度の画像を生成し、調整部１０１１及び検出部１０１３からアクセス可能なメモリ領域３２１に保存する。例えば、プロセッサ３０１は、上述の図６の動作フローにおいて保存部１０１４として動作する。保存部１０１４は、例えば、ドライバ３１２である。
【００７０】
以上において、実施形態を例示したが、実施形態はこれに限定されるものではない。例えば、上述の動作フローは例示であり、実施形態はこれに限定されるものではない。可能な場合には、動作フローは、処理の順番を変更して実行されてもよく、別に更なる処理を含んでもよく、又は、一部の処理が省略されてもよい。例えば、Ｓ６０３と、Ｓ６０４からＳ６０５との処理は順序を入れ替えて実行してもよい。
【００７１】
また、例えば、上記の実施形態では、プロセッサ３０１は、輝度及びフォーカスなどの撮像条件の調整と、瞳の検出との双方が完了してから虹彩の照合をセキュアプロセッサ３１０に指示する場合を例示している。しかしながら、実施形態はこれに限定されるものではない。例えば、撮像条件の調整が完了したらセキュアプロセッサ３１０に指示し、瞳の検出をセキュアプロセッサ３１０に実行させたとしても、実施形態に係る虹彩認証における処理時間を短縮する効果を得ることができる。
【００７２】
また、上述の実施形態では、ドライバ３１２が、撮像装置１０４で撮像された高解像度の画像から低解像度の画像を生成する場合を例示している。しかしながら、実施形態はこれに限定されるものではない。例えば、撮像装置１０４が、高解像度の画像と、低解像度の画像とを出力してよい。
【００７３】
また、上述の実施形態では、例えば、セキュアな領域で動作するセキュアプロセッサ３１０を、プロセッサ３０１の初期化などを実行することで起動する例を述べている。しかしながら、別の実施形態では、例えば、セキュアな環境で動作するセキュアプロセッサ３１０が、プロセッサ３０１とは別に虹彩認証装置１００に備えられてもよい。
【００７４】
なお、図３を参照して述べた虹彩認証装置１００を実現するためのハードウェア構成は、例示であり、実施形態はこれに限定されるものではない。例えば、上述の機能部の一部または全部の機能がＦＰＧＡ及びＳｏＣなどによるハードウェアとして実装されてもよい。なお、ＦＰＧＡは、Field Programmable Gate Arrayの略称である。ＳｏＣは、System-on-a-chipの略称である。
【００７５】
また、実施形態に係る各プログラムは、例えば、記憶装置３０３に予めインストールされている又はプログラムサーバから提供されてよい。
【００７６】
以上において、いくつかの実施形態が説明される。しかしながら、実施形態は上記の実施形態に限定されるものではなく、上述の実施形態の各種変形形態及び代替形態を包含するものとして理解されるべきである。例えば、各種実施形態は、その趣旨及び範囲を逸脱しない範囲で構成要素を変形して具体化できることが理解されよう。また、前述した実施形態に開示されている複数の構成要素を適宜組み合わせることにより、種々の実施形態が実施され得ることが理解されよう。更には、実施形態に示される全構成要素からいくつかの構成要素を削除して又は置換して、或いは実施形態に示される構成要素にいくつかの構成要素を追加して種々の実施形態が実施され得ることが当業者には理解されよう。
【００７７】
以上の実施形態１〜３を含む実施形態に関し、更に以下の付記を開示する。
（付記１）
撮像装置で撮像された第１の画像をより低解像度に変換した第２の画像を用いて前記撮像装置による撮像条件を調整する調整部と、
セキュアな環境で動作するセキュアプロセッサに、前記調整部により調整された前記撮像条件で前記撮像装置により撮像された第３の画像を用いて、個人の虹彩を特徴付けるデータを含む虹彩のデジタルテンプレートとの照合を実行させる指示部と、
を含む、虹彩認証装置。
（付記２）
前記撮像条件の調整は、フォーカス又は輝度の調整を含む、付記１に記載の虹彩認証装置。
（付記３）
前記セキュアプロセッサは、トラステッド実行環境で動作するプロセッサである、付記１に記載の虹彩認証装置。
（付記４）
更に、前記第３の画像をより低解像度に変換した第４の画像から瞳の位置と大きさを検出する検出部を含み、
前記指示部は、前記検出部で検出された前記瞳の位置と大きさの情報を、前記セキュアプロセッサに通知して、前記照合を実行させる、付記１から３のいずれか１項に記載の虹彩認証装置。
（付記５）
前記セキュアプロセッサは、前記指示部から通知された前記瞳の位置と大きさの情報を用いて前記第３の画像から虹彩の情報を取得し、前記虹彩の情報を、前記虹彩のデジタルテンプレートと照合する、ことを特徴とする付記４に記載の虹彩認証装置。
（付記６）
更に、前記撮像装置で撮像された前記第３の画像を、前記セキュアプロセッサからのみ参照可能なセキュアメモリ領域に保存する保存部を含む、
ことを特徴とする付記１から５のいずれか１項に記載の虹彩認証装置。
【符号の説明】
【００７８】
１００      虹彩認証装置
１０１      表示装置
１０２      音声出力装置
１０３      音声入力装置
１０４      撮像装置
１０５      ハードキー
３０１      プロセッサ
３０２      メモリ
３０３      記憶装置
３０４      通信インタフェース
３０５      入出力インタフェース
３０８      バス
３１０      セキュアプロセッサ
３１１      アプリケーション
３１２      ドライバ
３１３      セキュアアプリケーション
３２１      メモリ領域
３２２      ドライバメモリ領域
３２３      セキュアメモリ領域
１００１    制御部
１００２    記憶部
１０１１    調整部
１０１２    指示部
１０１３    検出部
１０１４    保存部
【図１】
0006610289.tif 000002
【図２】
0006610289.tif 000003
【図３】
0006610289.tif 000004
【図４】
0006610289.tif 000005
【図５】
0006610289.tif 000006
【図６】
0006610289.tif 000007
【図７】
0006610289.tif 000008
【図８】
0006610289.tif 000009
【図９】
0006610289.tif 000010
【図１０】
0006610289.tif 000011