説明

認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラム

【課題】秘密鍵を外部に出さずに認証し、生体情報を漏えいしないこと。
【解決手段】準同型暗号による暗号化情報を暗号化したまま認証し暗号化情報を更新可能な認証装置101は、受信部304によって利用者の公開鍵を用いて準同型暗号によって暗号化された生体情報と、利用者の識別情報と、利用者の公開鍵と受信する。続けて、認証装置101は、検索部305によって、暗号化生体情報テーブル108から、受信部304で受信された識別情報に基づいて、暗号化生体情報テーブル108に記憶されている公開鍵と暗号化された生体情報とを検索する。検索後、認証装置101は、実行部306によって検索された公開鍵と暗号化された生体情報と、受信した公開鍵と暗号化された生体情報とを基に利用者の認証を行う。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、情報を認証する認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラムに関する。
【背景技術】
【0002】
近年、社会において様々なシステムを用いる場合に、利用者が正規のユーザであることを認証する必要がある局面が多い。認証を行う際には、個人ごとに固有の情報である生体認証を利用した方式が普及している。生体認証の対象としては、指紋・静脈・虹彩・顔・音声などである。また、生体情報は、個人に関する機密情報のため、暗号化することが好ましい。このとき、準同型暗号を使用して、暗号化された状態にて、生体情報の一致判定をする技術が開示されている(たとえば、下記特許文献1を参照。)。
【0003】
特許文献1は、少なくとも2つのデータの類似性の指標を暗号化された状態で計算する方法およびシステムに関するものである。確認方法として、認証装置は、生体情報を示すビットシーケンスX=(x1、・・・、xn)と、認証を行う際の生体情報を示すビットシーケンスY=(y1、・・・、yn)に対して、共通の公開鍵pkで暗号化したデータEpk(X)、Epk(Y)を用意する。この際Eは、下記準同型性を満たす、Paillier暗号やEl Gamal暗号を用いる。
【0004】
E(x+y)=E(x)E(y)
【0005】
続けて、認証装置が、ハミング距離dH(X、Y)が一定値T以下かをEpk(dH(X、Y))を準同型性の性質に基づいて式を変形し、さらに、非特許文献1によるセキュア計算によって、生体情報を暗号化した状態で判断する。
【先行技術文献】
【特許文献】
【0006】
【特許文献1】特表2008−521025号公報
【非特許文献】
【0007】
【非特許文献1】B.Schoenmakers,P.Tuyls,“Practical two−party computation based on the conditional gate”,ASIACRYPT 2004, LNCS, Springer−Verlag, 2004
【発明の概要】
【発明が解決しようとする課題】
【0008】
しかしながら、上述した従来技術において、特許文献1の認証システムでは、秘密鍵skは、システム設計者、運用者によって管理される。したがって、特許文献1の認証システムは、ユーザの関与しないところで秘密鍵skが漏えいする可能性があるという問題があった。
【0009】
また、暗号化された生体情報が漏えいした場合、第三者が、その情報を用いて正規のユーザになりすますことが可能である。そこで、生体情報の再登録を行うことで、漏えいした生体情報を無効にする必要がある。しかし、漏えいした生体情報Xと、再登録した生体情報X’によるハミング距離dH(X、X’)は閾値Tより小さい。したがって、生体情報の再登録を行っても、漏えいした生体情報Xで認証に成功してしまう。このことから、暗号化された生体情報でも、一旦漏えいしてしまうと、その後、なりすましを防ぐことは困難になるという問題があった。
【0010】
本発明は、上述した従来技術による問題点を解消するため、暗号化された生体情報が漏えいしても、秘密鍵と生体情報を漏えいしない暗号化装置、トークンデバイス、認証システム、暗号化方法、および暗号化プログラムを提供することを目的とする。
【課題を解決するための手段】
【0011】
上述した課題を解決し、目的を達成するため、開示の認証装置は、暗号化装置から準同型暗号による暗号化情報を受信し、認証を行う認証装置であって、暗号化装置から、利用者の公開鍵を用いて準同型暗号によって暗号化された生体情報と、利用者の識別情報と、利用者の公開鍵とを受信し、利用者の識別情報と、利用者の公開鍵を用いて準同型暗号によって暗号化された利用者の生体情報と、利用者の公開鍵とを利用者ごとに対応づけて記憶するデータベースから、受信手段によって受信された識別情報に基づいて、データベースに記憶されている公開鍵と暗号化された生体情報とを検索し、検索された公開鍵と暗号化された生体情報と、受信した公開鍵と暗号化された生体情報とを基に利用者の認証を行うことを要件とする。
【発明の効果】
【0012】
本認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラムによれば、暗号化された生体情報が漏えいしても、異なる公開鍵による暗号化された生体情報を登録でき、秘密鍵と生体情報を漏えいしないことができるという効果を奏する。
【図面の簡単な説明】
【0013】
【図1】本実施の形態にかかる認証システム100を示すブロック図である。
【図2】暗号化装置103のハードウェア構成を示すブロック図である。
【図3】認証システム100の機能的構成を示すブロック図である。
【図4】認証システム100での公開鍵および秘密鍵の所在を示す説明図である。
【図5】暗号化された生体情報の認証処理の概要を示す説明図である。
【図6】暗号化生体情報テーブル108の記憶内容の一例を示す説明図である。
【図7】鍵生成処理のフローチャートである。
【図8】生体情報登録処理のフローチャートである。
【図9】生体情報認証処理のフローチャートである。
【図10】生体情報認証処理にて暗号化された生体情報がランダム性を持つ場合の処理を示すフローチャートである。
【発明を実施するための形態】
【0014】
以下に添付図面を参照して、本発明にかかる認証装置、暗号化装置、トークンデバイス、認証方法、および認証プログラムの好適な実施の形態を詳細に説明する。
【0015】
図1は、本実施の形態にかかる認証システム100を示すブロック図である。認証システム100は、認証装置101と、暗号化装置103と、トークンデバイス104と、で構成する。サービス102は、認証システム100によって認証成功した際に暗号化装置103にアクセスされる。認証装置101とサービス102と暗号化装置103とは、ネットワーク105にてそれぞれ接続されている。暗号化装置103は、生体情報読取デバイス106と、トークン読取デバイス107が接続されている。認証装置101の内部には、暗号化生体情報テーブル108が存在する。
【0016】
認証システム100は、利用者がサービス102を利用する際の認証処理を司る。アクセスを行った利用者が正規のユーザか否かを確認し、正規のユーザであれば認証し、暗号化装置103がサービス102に接続する許可をする。
【0017】
認証装置101は、利用者がサービス102を利用する際の認証処理を行う。具体的には、たとえば、認証装置101は、登録時点の準同型暗号によって暗号化された生体情報と、アクセスを行った利用者の生体情報が一致するか否かを確認する。
【0018】
サービス102は、ソフトウェアの機能を、ネットワーク105を経由して提供する。具体的には、たとえば、認証システム100が銀行が提供するサービスに対する認証システムである場合、暗号化装置103は、認証成功後、サービス102を構築している銀行のサーバ群に接続する。サーバ群は、利用者に対して、預金の入出金管理、振り込み等を行う機能を、ネットワーク105を経由して提供する。
【0019】
暗号化装置103は、利用者の生体情報とトークンデバイス104から情報を取得し、生体情報を暗号化して認証装置101に送信する。また、認証成功後には、サービス102から提供されるソフトウェアの操作を行う。暗号化装置103の具体例としては、たとえば、銀行でのATM(Automated Teller Machine)である。
【0020】
トークンデバイス104は、認証処理の助けとなる物理デバイスである。具体的には、情報の記憶、演算を行うための集積回路を組み込んだスマートカードなどである。トークンデバイス104の実装は、暗号方式によって様々な形態がある。たとえば、実装の1つとして、トークンデバイス104はユーザの識別番号を記録し、認証時にユーザの識別番号を出力する形式であってもよい。
【0021】
ネットワーク105は、LAN(Local Area Network)、WAN(Wide Area Network)、インターネットなどの通信網である。または、セキュリティ強固のために、ネットワーク105は、専用回線であってもよい。
【0022】
生体情報読取デバイス106は、利用者の生体情報を、デジタル情報として取り込むためのデバイスである。また、トークン読取デバイス107は、トークンデバイス104を読み取るためのデバイスである。たとえば、トークンデバイス104がスマートカードであればカードリーダとなる。
【0023】
(暗号化装置103のハードウェア構成)
図2は、暗号化装置103のハードウェア構成を示すブロック図である。図2において、暗号化装置103は、CPU(Central Processing Unit)201と、ROM(Read‐Only Memory)202と、RAM(Random Access Memory)203と、を備えている。また、記憶装置として暗号化装置103は、磁気ディスクドライブ204と、磁気ディスク205と、光ディスクドライブ206と、光ディスク207と、を備えている。また、ユーザやその他の機器との入出力装置として暗号化装置103は、ディスプレイ208と、I/F(Interface)209と、キーボード210と、マウス211と、スキャナ212と、カードリーダ213と、を備えている。また、各構成部はバス200によってそれぞれ接続されている。
【0024】
ここで、CPU201は、暗号化装置の全体の制御を司る。ROM202は、ブートプログラムなどのプログラムを記憶している。RAM203は、CPU201のワークエリアとして使用される。磁気ディスクドライブ204は、CPU201の制御にしたがって磁気ディスク205に対するデータのリード/ライトを制御する。磁気ディスク205は、磁気ディスクドライブ204の制御で書き込まれたデータを記憶する。
【0025】
光ディスクドライブ206は、CPU201の制御にしたがって光ディスク207に対するデータのリード/ライトを制御する。光ディスク207は、光ディスクドライブ206の制御で書き込まれたデータを記憶したり、光ディスク207に記憶されたデータをコンピュータに読み取らせたりする。
【0026】
ディスプレイ208は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ208は、たとえば、CRT、TFT液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【0027】
I/F209は、ネットワーク105を介して認証装置101などの他の装置に接続される。そして、I/F209は、ネットワーク105と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。I/F209には、たとえばモデムやLANアダプタなどを採用することができる。
【0028】
キーボード210は、文字、数字、各種指示などの入力のためのキーを備え、データの入力を行う。また、キーボード210は、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス211は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などを行う。マウス211はポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【0029】
スキャナ212は、生体情報読取デバイス106の一つの例であり、生体情報を光学的方法、電圧などで読み取り、暗号化装置103内にたとえば画像データを取り込む。取り込む生体情報としては、指紋、静脈等である。また、虹彩、顔を生体情報とする場合には、生体情報読取デバイス106としてカメラを採用し、画像データとして取り込んでもよい。また、音声を生体情報とする場合には、生体情報読取デバイス106としてマイクを採用し、音声データとして取り込んでもよい。
【0030】
カードリーダ213は、トークン読取デバイス107の一つの例であり、トークンデバイス104がスマートカードであることを想定した際のデバイスである。カードリーダ213は、トークンデバイス104を読み取り、暗号化装置103内にユーザ識別子情報等を取り込む。
【0031】
(認証システム100の機能的構成)
次に、認証システム100の機能的構成について説明する。図3は、認証システム100の機能的構成を示すブロック図である。暗号化装置103は、取得部301と、暗号化部302と、送信部303と、受信部307と、生成指示部308と、復号指示部312と、判断部315と、署名生成指示部316と、署名検証部318と、を含む構成である。トークンデバイス104は、生成部309、送信部310と、取得部313と、復号部314と、署名生成部317と、記憶部319と、判断部320と、を含む構成である。認証装置101は、受信部304と、検索部305と、実行部306と、更新部311と、を含む構成である。
【0032】
暗号化装置103での制御部となる機能(取得部301〜署名検証部318)は、具体的には、たとえば、記憶装置に記憶されたプログラムをCPU201が実行することにより、その機能を実現する。記憶装置とは、図2に示したROM202、RAM203、磁気ディスク205、光ディスク207などである。または、I/F209を経由して他のCPUが実行することにより、その機能を実現してもよい。
【0033】
同様に、トークンデバイス104での制御部となる機能(生成部309〜署名生成部317、判断部320)も、具体的には、たとえば、記憶装置に記憶されたプログラムをトークンデバイス104のCPUが実行することにより、その機能を実現する。記憶装置とは、トークンデバイス104に内蔵されているROM、RAM、フラッシュROMなどである。または、外部の装置が制御部となる機能を実行した後に、トークンデバイス104は、実行された結果を格納する状態であってもよい。
【0034】
同様に、認証装置101での制御部となる機能(受信部304〜実行部306、更新部311)も、具体的には、たとえば、記憶装置に記憶されたプログラムを認証装置101のCPUが実行することにより、その機能を実現する。記憶装置とは、認証装置101に内蔵されているROM、RAM、磁気ディスク、光ディスクなどである。または、ネットワーク105を経由して他のCPUが実行することにより、その機能を実現してもよい。
【0035】
また、各機能を結ぶ線分の種別として、実線の矢印で示す処理順序は、認証システム100における認証処理の処理順序を示している。具体的には、取得部301、暗号化部302、送信部303、受信部304、検索部305、実行部306、受信部307、判断部315までの一連の処理が、認証処理の処理順序となる。また、認証装置101は、検索部305にて暗号化生体情報テーブル108にアクセスする。また認証システム100は、取得部301の処理が実行される際に、トークンデバイス104によって記憶部319と、判断部320の機能を実行する。
【0036】
同様に、点線の矢印で示す処理順序は、認証システム100における生体情報の再登録処理の処理順序の一部を示している。具体的には、点線の矢印で示される生成指示部308〜送信部310、実線の矢印で示される取得部301〜検索部305、更新部311までの一連の処理が、生体情報の再登録処理の処理順序となる。また、認証装置101は、更新部311にて暗号化生体情報テーブル108にアクセスする。
【0037】
同様に、一点鎖線の矢印で示す処理は、認証システム100における暗号化された生体情報にランダム性を持つ場合の処理順序を示している。具体的には、実線の矢印で示される取得部301〜受信部307、一点鎖線の矢印で示される復号指示部312〜送信部310、取得部301、判断部315までの一連の処理が、暗号化された生体情報がランダム性を持つ場合の処理順序となる。
【0038】
同様に、破線の矢印で示す処理順序は、認証システム100におけるトークンデバイス104の検証処理の処理順序の一部を示している。具体的には、破線の矢印で示される署名生成指示部316〜送信部310、取得部301、署名検証部318までの一連の処理が、トークンデバイス104の検証処理の処理順序となる。
【0039】
取得部301は、利用者の識別情報と公開鍵および秘密鍵の組み合わせとを記憶するトークンデバイス104から、識別情報と公開鍵とを取得する機能を有する。また、取得部301は、生成指示部308によって、公開鍵と秘密鍵の生成を指示した場合に、識別情報と生成された公開鍵を取得してもよい。また、取得部301は、復号指示部312によって認証結果の復号を指示した場合に、復号された認証結果を取得してもよい。また、取得部301は、署名生成指示部316によって電子署名の生成を指示した場合に、生成された電子署名を取得してもよい。利用者とは、認証システム100を利用するユーザである。
【0040】
具体的には、たとえば、暗号化装置103は、利用者の識別情報として、ユーザUiのユーザ識別子Uiと、公開鍵pkiを取得する。なお、取得されたデータは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
【0041】
暗号化部302は、取得部301によって取得された公開鍵によって、利用者の生体情報を準同型暗号によって暗号化する機能を有する。また、暗号化部302は、利用者の生体情報を準同型暗号によってランダム性を持つように暗号化してもよい。準同型暗号の具体例としては、たとえば、Paillier暗号やEl Gamal暗号である。また、ランダム性を持つような暗号化とは、暗号化アルゴリズム自体にランダム性を持たせることにより、入力が同じ平文に対し、異なる暗号文を出力する暗号化である。ランダム性を持つ暗号化アルゴリズムの具体例は、RSA−OAEP(RSA Optimal Asymmetric Encryption Padding)暗号、RSAES−PKCS1−v1_5暗号等である。
【0042】
具体的には、たとえば、暗号化装置103は、スキャナ212によって読み取った生体情報Miを、準同型暗号Eを用いて公開鍵pkiによって暗号化し、Epki(Mi)を得る。なお、暗号化されたデータは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
【0043】
送信部303は、識別情報と公開鍵と暗号化部302によって暗号化された生体情報とを認証装置101に送信する機能を有する。具体的には、たとえば、暗号化装置103は、ユーザ識別子Uiと、公開鍵pkiと、準同型暗号によって暗号化された生体情報Epki(Mi)を、認証装置101に送信する。なお、送信されたデータは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されてもよい。
【0044】
受信部304は、暗号化装置103から送信された識別情報と公開鍵と準同型暗号によって暗号化された生体情報を受信する機能を有する。具体的には、たとえば、認証装置101は、ユーザ識別子Uiと、公開鍵pkiと、準同型暗号によって暗号化された生体情報Epki(Mi)を受信する。なお、受信されたデータは、認証装置101内のRAM、磁気ディスク、光ディスクなどの記憶領域に記憶される。
【0045】
検索部305は、データベースから、受信部304によって受信された識別情報に基づいて、データベースに記憶されている公開鍵と暗号化された生体情報とを検索する機能を有する。データベースとは、利用者の識別情報ごとに、準同型暗号によって暗号化された利用者の生体情報と利用者の生体情報を暗号化した公開鍵とを記憶する暗号化生体情報テーブル108である。
【0046】
具体的には、たとえば、認証装置101は、暗号化生体情報テーブル108から、受信された識別情報がユーザ識別子Uiである場合に、ユーザUiの準同型暗号によって暗号化された生体情報と、生体情報を暗号化した公開鍵を検索する。なお、検索され、発見されたデータは、認証装置101内のRAM、磁気ディスク、光ディスクなどの記憶領域に記憶される。
【0047】
実行部306は、検索部305によってデータベース内に受信された識別情報に関連した公開鍵と暗号化された生体情報が検索された場合、受信部304によって受信された生体情報と検索された生体情報が一致するかを判断する関数を実行する機能を有する。関数とは、暗号化されていない生体情報の一致を判断する生体認証アルゴリズムfに対応した、準同型暗号によって暗号化された生体情報の一致を判断する暗号化生体認証アルゴリズムFのことである。
【0048】
生体認証アルゴリズムfの具体例としては、たとえば、ハミング距離が一定の値以下であるか否かを判断するアルゴリズムである。他の具体例としては、ハミング距離で判断する以外にレーベンシュタイン距離にて判断してもよい。また、準同型暗号Eが、加法、乗法の両方の演算が可能な完全準同型暗号であれば、生体認証アルゴリズムfは任意のアルゴリズムを使用できる。
【0049】
完全準同型暗号とは、すべてのロジック回路による演算に対して準同型性を満たす暗号である(下記参考文献1参照)。
(参考文献1:Craig Gentry “Fully homomorphic encryption using ideal lattices”Proceedings of the 41st Annual ACM Symposium on Theory of Computing, 2009, p169−178)
【0050】
ここで、鍵ペア:(pk、sk)と、平文Mの公開鍵pkによる暗号化:C=Epk(M)、暗号文Cの秘密鍵skによる復号:M=Dsk(C)とする平文M1、・・・、Mnを入力とする関数をf(M1、・・・、Mn)とする。完全準同型暗号は、下記を満たす関数Fの存在と、その効率的実行を保証する。
【0051】
Dsk(F(pk、Epk(M1)、・・・、Epk(Mn)))
=f(M1、・・・、Mn)
【0052】
また、生体認証アルゴリズムfの具体例としては、生体情報が指紋情報であれば、指紋の一致を比較するアルゴリズムとして、マニューシャ法、パターンマッチング法、周波数解析法などを適用してもよい。生体情報が指紋以外の生体情報であった場合にも、それぞれの生体情報の特徴にあったアルゴリズムを使用してもよい。
【0053】
実行部306の具体例としては、たとえば、認証装置101は、受信部304によって暗号化された生体情報Epki(M’i)と公開鍵pkiを受信しており、検索部305によって、登録時点の暗号化された生体情報Epki(Mi)を検索したとする。このとき、認証装置101は、実行部306によってF(pki、Epki(Mi)、Epki(M’i))を実行する。
【0054】
実行の結果となる認証結果は、認証成功となるOK、または認証失敗となるNGがそれぞれ暗号化された値、Epki(OK)、Epki(NG)となる。認証装置101は、認証結果をEpki(OK)と比較し、一致した場合にOKとして暗号化装置103に送信する。また、暗号化部302にて、生体情報にランダム性を持つように暗号化された場合は、認証成功したかはわからないため、暗号化された認証結果を暗号化装置103に送信する。暗号化生体認証アルゴリズムFの出力値となる認証結果は、暗号化装置103に送信される。また認証結果は、認証装置101内のRAM、磁気ディスク、光ディスクなどの記憶領域に記憶されてもよい。
【0055】
受信部307は、実行部306によって実行された認証結果を受信する機能を有する。具体的には、たとえば、暗号化装置103は、OK、NGなどを受信する。受信後、暗号化装置103は、受信した結果を、判断部315へ送信する。また、暗号化部302にて、生体情報がランダム性を持つように暗号化された場合、暗号化装置103は、暗号化された認証結果を復号指示部312へ送信する。また、受信されたデータは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されてもよい。
【0056】
生成指示部308は、トークンデバイス104に、現在使用している公開鍵および秘密鍵の組み合わせとは異なる公開鍵および秘密鍵の組み合わせの生成を指示する機能を有する。具体的には、たとえば、暗号化装置103は、トークンデバイス104内に公開鍵および秘密鍵の組み合わせとして公開鍵pki、秘密鍵skiがあるときに、前述の鍵の組み合わせとは異なる、新たな公開鍵と秘密鍵を生成するよう指示をする。また、指示内容となる電文データは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されてもよい。
【0057】
生成部309は、公開鍵と秘密鍵との組み合わせを生成する機能を有する。具体的には、たとえば、トークンデバイス104は、公開鍵pki、秘密鍵skiを生成する。また、公開鍵pki、秘密鍵skiが生成された後に、再度生成する場合、トークンデバイス104は、公開鍵pki’、秘密鍵ski’を生成する。なお、生成された公開鍵と秘密鍵は、トークンデバイス104内のフラッシュROMなどの不揮発性の記憶領域に記憶される。
【0058】
送信部310は、判断部320によって準同型暗号による暗号化を要求されたと判断された場合、記憶部319によって記憶された識別情報と生成部309によって生成された公開鍵とを要求元に送信する機能を有する。また、送信部310は、復号指示を受けた場合、復号結果を指示元に送信してもよい。具体的には、たとえば、要求元となる暗号化装置103が、準同型暗号による暗号化を要求した場合に、トークンデバイス104は、ユーザ識別子Uiと公開鍵pkiを暗号化装置103に送信する。なお、送信されたデータは、トークンデバイス104内のRAM、フラッシュROMなどの記憶領域に記憶されてもよい。
【0059】
更新部311は、検索部305によってデータベースに受信された識別情報に関連した公開鍵と暗号化された生体情報とが検索された場合、受信部304によって受信された公開鍵と暗号化された生体情報とでデータベースを更新する機能を有する。また、更新部311は、暗号化装置から生体情報の更新情報と利用者の識別情報と更新指示を受信した場合、データベースを更新してもよい。
【0060】
具体的には、たとえば、認証装置101は、受信部304によって暗号化された生体情報Epki(Mi’)と公開鍵pki’を受信しており、検索部305によって、登録時点の暗号化された生体情報Epki(Mi)と公開鍵pkiを検索したとする。このとき、認証装置101は、Epki(Mi’)とpki’とで暗号化生体情報テーブル108を更新する。なお、認証装置101は、更新時に、古いデータとなるEpki(Mi)と公開鍵pkiに対して新しいデータとなるEpki(Mi’)とpki’を上書きすることで、古いデータを削除してもよい。
【0061】
復号指示部312は、トークンデバイス104に、秘密鍵によって暗号化された認証結果の復号を指示する機能を有する。具体的には、たとえば、暗号化装置103は、受信部307からEpki(認証結果)を取得し、Epki(認証結果)を、復号するようにトークンデバイス104に指示をする。なお、指示内容となる電文データは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されてもよい。
【0062】
取得部313は、復号指示部312によって復号指示された場合、復号する対象となるデータを取得する機能を有する。また、取得部313は、署名生成指示部316によって署名生成指示された場合、電子署名の対象となる値を取得してもよい。具体的には、たとえば、トークンデバイス104は、暗号化装置103から、Epki(認証結果)を復号するように指示を受けた場合に、Epki(認証結果)を取得する。なお、取得されたデータは、トークンデバイス104内のRAM、フラッシュROMなどの記憶領域に記憶される。
【0063】
復号部314は、復号指示部312によって復号指示されたデータを復号する機能を有する。具体的には、たとえば、トークンデバイス104は、復号するように指示を受けたEpki(認証結果)を、秘密鍵を使用して復号する。なお、復号されたデータは、トークンデバイス104内のRAM、フラッシュROMなどの記憶領域に記憶される。
【0064】
判断部315は、取得部301によって復号された認証結果を取得するとともに、復号された認証結果に基づいて、認証が成功したか否かを判断する機能を有する。また、判断部315は、受信部307によって暗号化されていない認証結果を取得した場合も、認証結果に基づいて、認証が成功したか否か判断してもよい。
【0065】
署名生成指示部316は、トークンデバイス104に、秘密鍵によって任意の値に対する電子署名の生成を指示する機能を有する。具体的には、たとえば、暗号化装置103は、任意の値を生成し、生成された値をトークンデバイス104に送信する。なお、送信されたデータは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
【0066】
署名生成部317は、任意の値に対する電子署名を生成する機能を有する。具体的には、たとえば、トークンデバイス104は、取得部313によって取得された任意の値に対して、トークンデバイス104内に格納されている秘密鍵を使用して、電子署名を生成する。また、電子署名に使用する鍵ペアは、生体情報の暗号化に使用した鍵ペアとは異なる鍵ペアであってもよい。なお、生成された電子署名は、送信部310によって暗号化装置103に送信される。なお、送信されたデータは、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶されてもよい。
【0067】
署名検証部318は、取得部301によって生成された任意の値に対する電子署名を取得するとともに、任意の値に対する電子署名の正当性を、公開鍵によって検証する機能を有する。具体的には、たとえば、暗号化装置103は、署名生成指示部316にて生成した値と、電子署名を公開鍵で復号した値が一致することで、電子署名の正当性を検証する。なお、検証結果は、RAM203、磁気ディスク205、光ディスク207などの記憶領域に記憶される。
【0068】
記憶部319は、利用者の識別情報を記憶する機能を有する。具体的には、たとえば、トークンデバイス104は、ユーザ識別子Uiを記憶する。なお、ユーザ識別子Uiは、トークンデバイス104内のROM、フラッシュROMなどの不揮発性の記憶領域に記憶される。
【0069】
判断部320は、準同型暗号による暗号化を要求されたか否かを判断する機能を有する。具体的には、たとえば、トークンデバイス104は、暗号化装置103の取得部301によって識別情報と公開鍵の取得要求を受けた場合、取得要求となる電文データを読み込む。続けて、トークンデバイス104は、電文データのフォーマットに従って電文データに準同型暗号であるという値が設定されていた場合に、準同型暗号であることを判断する。また、認証システム100が常に準同型暗号による暗号化しか行わない場合は、トークンデバイス104は、常に準同型暗号による暗号化として判断してもよい。なお、判断結果は、トークンデバイス104内のROM、RAM、フラッシュROMなどの記憶領域に記憶される。
【0070】
図4は、認証システム100での公開鍵および秘密鍵の所在を示す説明図である。トークンデバイス104は、公開鍵401と秘密鍵402を生成し、準同型暗号による暗号化の要求を受けた際に公開鍵401のみ外部に出力する。公開鍵401を取得した暗号化装置103は、公開鍵401によって、生体情報を暗号化し、公開鍵401により暗号化された生体情報403を得る。生体情報はたとえば、図4で示すように指紋を読み取った画像である。
【0071】
暗号化を行った後、暗号化装置103は、ネットワーク105を経由して、公開鍵401と公開鍵401により暗号化された生体情報403を認証装置101へ送信する。認証装置101は2つの情報を受信して、登録済であり、準同型暗号によって暗号化された生体情報と比較するアルゴリズムを実行する。このように、秘密鍵402はトークンデバイス104の中にしか存在しないため、秘密鍵402が外部に漏れる心配がない。
【0072】
図5は、暗号化された生体情報の認証処理の概要を示す説明図である。符号501にて示すブロック図は、暗号化された生体情報にランダム性を持たせない場合の認証処理の概要を示す。ユーザUiの認証処理を行う場合、暗号化装置103は、公開鍵401にて暗号化を行うと、暗号化されたユーザUiの生体情報として、Epki(M’i)を得る。暗号化後、暗号化装置103は、暗号化された生体情報を認証装置101に送信する。認証装置101は、Epki(M’i)を受信し、暗号化生体情報テーブル108に記憶されている、登録時点の生体情報と比較をする。比較方法としては、生体認証アルゴリズムfを実行することで比較をし、その出力値によって一致しているかを判断する。
【0073】
生体認証アルゴリズムfは、完全準同型暗号を用いる場合には、任意のアルゴリズムを使用できる。生体認証アルゴリズムfの具体例としては、たとえば、ハミング距離が所定の閾値以下である場合に、認証成功とするアルゴリズムである。また、アルゴリズムFは、準同型暗号Eにおいて生体認証アルゴリズムfに対応する暗号化生体認証アルゴリズムとする。
【0074】
生体認証アルゴリズムfの他の例としては、完全準同型暗号であれば、生体情報が指紋等の画像データであった場合に、比較を行う2つの画像が入力された際に、それぞれの画像の中で、特徴点を抽出し照合するマニューシャ法としてもよい。また、生体認証アルゴリズムfは、前述方法以外にも、パターンマッチング法や、周波数解析法等でもよい。指紋以外の生体情報であった場合にも、それぞれの生体情報の特徴にあったアルゴリズムを使用してもよい。認証装置101は、実行部306によって下記式(1)を実行する。
【0075】
F(pki、Epki(Mi)、Epki(M’i))…(1)
【0076】
完全準同型の性質より、式(1)は、下記式(2)に変形される。
【0077】
Epki(f(Mi、M’i))…(2)
【0078】
生体認証アルゴリズムfの出力値となる認証結果502は、ハミング距離が所定の閾値以下であれば“OK”、異なれば“NG”の2つの値のうち、どちらかを出力する。生体認証アルゴリズムfの出力値は固定となるため、認証装置101は、“OK”を公開鍵pkiによって暗号化した値Epki(OK)を算出し、式(2)の出力値とEpki(OK)を比較し、一致した場合に認証成功とする。
【0079】
このように、暗号化された生体情報にランダム性を持たせない場合の認証処理では、秘密鍵402を使用することなく認証することができる。したがって、認証システム100は、ユーザUiが関与しないところで、ユーザUiの生体情報Miが漏えいすることのないシステムとなる。認証システム100では、ユーザUiが秘密鍵402の管理を正しく行うことで、第三者がEpki(Mi)を復号することができず、ユーザUiの生体情報Miが漏えいすることがない。
【0080】
また、暗号化された生体情報Epki(Mi)が、万一漏えいした場合を想定する。この場合、認証システム100は、生体情報の再登録処理を行う。トークンデバイス104は、新たな鍵ペア(pki’、ski’)を生成する。暗号化装置103は、ユーザUiの新たな登録時点の生体情報Mi’を読み取り、新たな公開鍵pki’と、公開鍵pki’による暗号化生体情報Epki’(Mi’)をユーザUiのエントリーとして認証装置101に送信する。認証装置101は、受信した公開鍵pki’と暗号化生体情報Epki’(Mi’)とで暗号化生体情報テーブル108を更新する。
【0081】
既に登録されていたEpki(Mi)は、削除してもよい。このように、認証システム100は、一旦登録した生体情報をキャンセルすることができる。生体情報をキャンセルできるシステムを、キャンセラブル生体認証と呼ぶ。一度キャンセルし、再登録した状態では、第三者が、漏えいした古い暗号化生体情報Epki(Mi)を、ユーザUiになりすますために使用したとしても、認証装置101は、公開鍵pkiとpki’が異なるため、認証結果はNGとなる。
【0082】
また、暗号化された生体情報がランダム性を持つ場合の認証処理では、キャンセラブル生体認証であることに加えて、平文Miに対して、暗号文を変えることができる。これにより、同じ平文が入力された場合でも、暗号文が毎回異なることにより、同じ平文が入力されているということが第三者に対して漏れることがない。
【0083】
また、暗号化された生体情報がランダム性を持つ場合の認証処理では、トークンデバイス104の復号部314にて暗号化された認証結果を復号するが、秘密鍵402を暗号化装置103に送信し、暗号化装置103にて復号を行ってもよい。トークンデバイス104にて復号する処理では、Epki(認証結果)に対して、適当な値、たとえば“OK”を返す処理が組み込まれた偽装されたトークンデバイス104が第三者によって用意された場合にも、認証OKとなる。しかし、暗号化装置103にて復号を行うことにより、トークンデバイス104にて復号を行わないようにすることができる。
【0084】
また、認証システム100は、トークンデバイス104の復号部314にて復号する際に、復号を行う前後のいずれかにて、トークンデバイス104に電子署名を生成させ、暗号化装置103にて署名を検証するという検証処理を行ってもよい。
【0085】
具体的には、暗号化装置103にて任意の値を生成し、トークンデバイス104に送信する。トークンデバイス104は、生体情報認証処理で使用されている公開鍵401、秘密鍵402とは異なる署名用の鍵ペアを生成しておき署名を行う。トークンデバイス104では、任意の値に対する電子署名の生成を署名用の秘密鍵で行い、暗号化装置103に送信する。最後に暗号化装置103では、生成された電子署名を署名用の公開鍵にて検証し、トークンデバイス104が偽装されていないことが確認できる。任意の値については、生成の度に異なる値を用いることで、より安全に運用できる。前述の検証処理は、図10にて詳細に記述する。
【0086】
図6は、暗号化生体情報テーブル108の記憶内容の一例を示す説明図である。暗号化生体情報テーブル108は、ユーザ識別子、公開鍵、暗号化生体情報という3つのフィールドで構成する。ユーザ識別子フィールドは、ユーザを識別する識別情報であり、暗号化生体情報テーブル108のレコードを一意に決める値を格納する。公開鍵フィールドは、トークンデバイス104から送信された公開鍵を格納する。暗号化生体情報フィールドは、ユーザ識別子に格納されたユーザの生体情報を、公開鍵フィールドに設定された公開鍵を使用して暗号化した値を格納する。
【0087】
図7は、鍵生成処理のフローチャートである。鍵生成処理は、トークンデバイス104にて実行される。また、外部の装置が鍵生成処理を行い、トークンデバイス104内に公開鍵、秘密鍵を格納してもよい。トークンデバイス104は、鍵ペア(pki、ski)を生成する(ステップS701)。鍵ペアとは、公開鍵pkiと秘密鍵skiである。続けて、トークンデバイス104は、指定されたユーザ識別子Uiと鍵ペア(pki、ski)を記憶領域に格納する(ステップS702)。
【0088】
図8は、生体情報登録処理のフローチャートである。生体情報登録処理は、暗号化装置103と、認証装置101とで実行される。また、図8〜図10での破線の矢印は、複数の装置間でのメッセージのやりとりを示す。暗号化装置103は、認証装置101と登録セッションを確立する(ステップS801)。具体的な処理としては、暗号化装置103は、登録セッション接続要求を認証装置101に送信し、認証装置101の応答を待つ。登録セッション接続要求を受けた認証装置101は、暗号化装置103と登録セッションを確立する(ステップS802)。
【0089】
登録セッション確立後、暗号化装置103は、生体情報Miをトークン読取デバイス107から、ユーザ識別子Ui、公開鍵pkiをトークンデバイス104から取得する(ステップS803)。このとき、トークンデバイス104は、暗号化装置103からの取得要求となる電文データから、準同型暗号による暗号化を行うことを判断し、公開鍵pkiを送信する。取得後、暗号化装置103は、公開鍵を用いて準同型暗号による暗号化情報Epki(Mi)を算出する(ステップS804)。算出後、暗号化装置103は、認証装置101へUi、pki、Epki(Mi)を送信する(ステップS805)。送信後、暗号化装置103は、認証装置101からの応答があるまで待機する。
【0090】
次に認証装置101は、暗号化装置103から識別子Ui、公開鍵pki、暗号化情報Epki(Mi)を受信する(ステップS806)。受信した識別子Uiを用いて、認証装置101は、暗号化生体情報テーブル108のユーザ識別子フィールドがUiであるレコードが存在するかを検索する(ステップS807)。検索されたレコードが存在する場合(ステップS807:Yes)、認証装置101は、上書き可能か否かの問い合わせを暗号化装置103に送信する(ステップS808)。暗号化装置103は、上書き可能問い合わせを受け付けたかを確認する(ステップS809)。
【0091】
上書き可能問い合わせを受けた場合(ステップS809:Yes)、暗号化装置103は、ユーザの指示を受けた後、上書き可能か否かの指示を認証装置101に送信する(ステップS810)。実際の処理としては、上書き可能問い合わせを受け付けた場合、暗号化装置103は、ディスプレイ208に上書き可能問い合わせを示す内容を表示し、ユーザに対し、上書きを許可するか否かを問い合わせる。上書き可能か否かの指示を暗号化装置103に送信後、または、上書き問い合わせを受け付けていない場合(ステップS809:No)、暗号化装置103は、認証装置101からの応答があるまで待機する。
【0092】
ステップS808の処理後、認証装置101は、上書き可能指示を受け付けたかを確認する(ステップS811)。上書き可能指示が、更新指示となる。また、暗号化装置103は、ステップS805の処理にて、更新指示を含めて送信してもよい。更新指示が送信内容に含まれていた場合、認証装置101は、ステップS807〜ステップS812を実行せず、ステップS813の処理を行ってもよい。
【0093】
上書き可能指示を受け付けた場合(ステップS811:Yes)、認証装置101は、暗号化生体情報テーブル108のユーザ識別子フィールドがUiであるレコードに、受信したpki、Epki(Mi)を登録する(ステップS813)。登録終了後、または、上書き可能指示を受け付けていない場合(ステップS811:No)、認証装置101は、暗号化装置103との登録セッションを終了する(ステップS814)。暗号化装置103も、認証装置101からの登録セッション終了を受け付けて、認証装置101との登録セッションを終了する(ステップS815)。
【0094】
ステップS807の処理にて、ユーザ識別子フィールドがUiであるレコードが存在しない場合(ステップS807:No)、認証装置101は、暗号化生体情報テーブル108に、ユーザ識別子フィールドがUiであるレコードを追加する(ステップS812)。追加後、認証装置101は、ステップS813の処理に移行する。
【0095】
また、ステップS811の処理で、上書き可能指示を受け付けていない場合(ステップS811:No)、認証装置101は、ステップS814の処理に移行する。また、上書き可能指示を受け付けていない場合としては、上書きを許可しない指示であった場合、または、暗号化装置103から一定時間応答が返ってこない場合にも、上書き可能指示を受け付けていない場合に該当する。
【0096】
図9は、生体情報認証処理のフローチャートである。生体情報認証処理も生体情報登録処理と同様に、暗号化装置103と、認証装置101とで実行される。暗号化装置103は、認証装置101と認証セッションを確立する(ステップS901)。具体的な処理としては、暗号化装置103は、認証セッション接続要求を認証装置101に送信し、認証装置101の応答を待つ。認証セッション接続要求を受けた認証装置101は、暗号化装置103と認証セッションを確立する(ステップS902)。
【0097】
認証セッション確立後、暗号化装置103は、生体情報M’iをトークン読取デバイス107から、ユーザ識別子Ui、公開鍵pkiをトークンデバイス104から取得する(ステップS903)。このとき、トークンデバイス104は、暗号化装置103からの取得要求となる電文データから、準同型暗号による暗号化を行うことを判断し、公開鍵pkiを送信する。取得後、暗号化装置103は、公開鍵を用いて準同型暗号による暗号化情報Epki(M’i)を算出する(ステップS904)。算出後、暗号化装置103は、認証装置101へUi、pki、Epki(M’i)を送信する(ステップS905)。送信後、暗号化装置103は、認証装置101からの応答があるまで待機する。
【0098】
次に認証装置101は、暗号化装置103から識別子Ui、公開鍵pki、暗号化情報Epki(M’i)を受信する(ステップS906)。受信した識別子Uiを用いて、認証装置101は、暗号化生体情報テーブル108のユーザ識別子フィールドがUiであるレコードが存在するかを検索する(ステップS907)。検索されたレコードが存在する場合(ステップS907:Yes)、認証装置101は、存在したレコードを選択する(ステップS908)。存在しなかった場合(ステップS907:No)、認証装置101は、暗号化装置103に“NG”を送信する(ステップS913)。
【0099】
レコードを選択後、認証装置101は、受信したpkiと選択したレコードのpkiとが一致するかを確認する(ステップS909)。一致しない場合(ステップS909:No)、認証装置101は、ステップS913の処理に移行する。一致する場合(ステップS909:Yes)、認証装置101は、F(pki、Epki(Mi)、Epki(M’i))を算出する(ステップS910)。算出後、認証装置101は、算出結果がEpki(OK)に一致するかを確認する(ステップS911)。一致しなかった場合(ステップS911:No)、認証装置101は、ステップS913の処理に移行する。一致する場合(ステップS911:Yes)、認証装置101は、暗号化装置103に“OK”を送信する(ステップS912)。
【0100】
“OK”か“NG”を受け付けた暗号化装置103は、受け付けた内容が“OK”か否かを確認する(ステップS914)。受け付けた内容が“OK”の場合(ステップS914:Yes)、暗号化装置103は、ユーザUiに、サービス102へのアクセスを許可する(ステップS915)。アクセスを許可した場合、または、受け付けた内容が“OK”でない場合(ステップS914:No)、暗号化装置103は、認証装置101との認証セッションを終了する(ステップS916)。認証装置101も、暗号化装置103からの認証セッション終了を受け付けて、暗号化装置103との認証セッションを終了する(ステップS917)。
【0101】
図10は、生体情報認証処理にて暗号化された生体情報にランダム性を持つ場合の処理を示すフローチャートである。図10にて図示したフローチャートの前段階として、生体情報認証処理で暗号化された生体情報にランダム性を持つ場合、暗号化装置103は、ステップS904の処理にて、平文となる生体情報M’iに対し、ランダム性を持たせて暗号化を行う。続けて、ステップS911の処理にて、算出結果がEpki(OK)に一致するかの確認を行わず、算出結果となる暗号化された認証結果を暗号化装置103に送信する。
【0102】
また、図10で図示したフローチャートでは、トークンデバイス104の検証処理を行っている。ステップS1001〜ステップS1008で示す処理がトークンデバイス104の検証処理であり、ステップS1009〜ステップS1015で示す処理が暗号化された認証結果の復号処理となる。また、図10での図示したフローチャートは、ステップS914、ステップS915と置き換えて実行される。
【0103】
暗号化された認証結果を受信後、暗号化装置103は、任意の値を生成し、署名対象に設定し(ステップS1001)、署名対象をトークンデバイス104に送信する(ステップS1002)。トークンデバイス104は、生体情報認証処理で使用されている鍵ペア(pki、ski)とは異なる鍵ペア(pki’’、ski’’)を生成しておき署名を行う。トークンデバイス104は、署名対象を受信し(ステップS1003)、秘密鍵ski’’にて電子署名を生成する(ステップS1004)。生成後、トークンデバイス104は、生成された電子署名を暗号化装置103に送信する(ステップS1005)。送信後、トークンデバイス104は、暗号化装置103の応答があるまで待機する。
【0104】
暗号化装置103は、電子署名を受信し(ステップS1006)、受信された電子署名を公開鍵pki’’にて検証する(ステップS1007)。暗号化装置103は、電子署名の正当性を検証できたかを確認する(ステップS1008)。正当性を検証できた場合(ステップS1008:Yes)、暗号化装置103は、暗号化された認証結果をトークンデバイス104に送信する(ステップS1009)。正当性を検証できなかった場合(ステップS1008:No)、暗号化装置103は、ユーザUiにサービス102のアクセスを許可せず、ステップS916の処理に移行する。
【0105】
次に、トークンデバイス104は、暗号化装置103より送信された、暗号化された認証結果を受信する(ステップS1010)。受信後、トークンデバイス104は、受信された認証結果を秘密鍵skiにて復号する(ステップS1011)。復号後、トークンデバイス104は、復号された認証結果を暗号化装置103に送信する(ステップS1012)。
【0106】
暗号化装置103は、復号された認証結果を受信し(ステップS1013)、認証結果に基づいて、認証が成功したかを判断する(ステップS1014)。認証が成功していると判断した場合(ステップS1014:Yes)、暗号化装置103は、ユーザUiに、サービス102へのアクセスを許可し(ステップS1015)、ステップS916の処理に移行する。
【0107】
認証が失敗したと判断した場合(ステップS1014:No)、暗号化装置103は、ユーザUiにサービス102のアクセスを許可せず、ステップS916の処理に移行する。トークンデバイス104からの応答がなくタイムアウトし、認証結果の判断が行えなかった場合も、暗号化装置103は、ステップS1014:Noに移行する。
【0108】
図10にて図示したフローチャートでは、ステップS914、ステップS915と置き換えて実行されていた。しかし、ステップS1001〜ステップS1008で示す検証処理について、たとえば、暗号化装置103は、ステップS903の処理の前に行い、検証処理が失敗した場合、ステップS903の処理を実行せずに終了してもよい。また、暗号化装置103は、ステップS1001〜ステップS1008で示す検証処理を、ステップS1014:Yesの後に行ってもよい。
【0109】
以上説明したように、認証装置、認証方法、および認証プログラムは、利用者の公開鍵と識別情報と準同型暗号によって暗号化された生体情報とを受信し、受信した識別情報から、データベースに記憶された公開鍵と暗号化された生体情報を検索する。検索後、認証装置は、検索された生体情報と受信した公開鍵と暗号化された生体情報で認証を行う。これにより、認証装置が準同型暗号による暗号化情報のまま認証でき、秘密鍵を外部に出さずに済む。したがって、秘密鍵が漏えいすることがなく、ひいてはユーザの生体情報が流出することをなくすことができる。
【0110】
また、認証装置は、利用者の更新指示を受信した場合、データベースに記憶された利用者の識別情報に対応した暗号化された生体情報と公開鍵とを更新してもよい。これにより、暗号化生体情報が漏えいした場合にも、古い暗号化生体情報をキャンセルし、新しい暗号化生体情報を登録することで、漏えいした暗号化生体情報によるなりすましを防止することができる。
【0111】
また、認証装置が記憶する公開鍵は、利用者の識別情報と公開鍵および秘密鍵の組み合わせとを記憶するトークンデバイスから、暗号化装置が取得した公開鍵であってもよい。これにより、認証装置が記憶する公開鍵は、漏えいしない秘密鍵と対になった公開鍵であるため、暗号化された生体情報が復号されることがなく、ユーザの生体情報が流出することをなくすことができる。
【0112】
また、暗号化装置は、識別情報と公開鍵を取得し、公開鍵で生体情報を準同型暗号によって暗号化し、認証装置に送信する。これにより、認証装置が準同型暗号による暗号化情報のまま認証でき、秘密鍵を外部に出さずに済む。したがって、秘密鍵が漏えいすることがなく、ひいてはユーザの生体情報が流出することをなくすことができる。
【0113】
また、暗号化装置は、トークンデバイスに、公開鍵と秘密鍵を新たに生成し、生成された公開鍵を用いて生体情報を暗号化してもよい。これにより、暗号化された生体情報が流出し、漏えいした場合にも、新しい公開鍵で暗号化された生体情報を再登録することで、漏えいした暗号化生体情報によるなりすましを防止することができる。
【0114】
また、暗号化装置は、生体情報を暗号化する際に、ランダム性を持たせた準同型暗号による暗号化を行ってもよい。これにより、ユーザの生体情報が流出することをなくすことができるうえに、認証時に、生体情報が同じであっても、常に異なる暗号文を出力するため、生体情報である平文を特定されるリスクを減らすことができる。また、トークンデバイスに対して電子署名を生成させ、暗号化装置は電子署名を検証してもよい。これにより、トークンデバイスのなりすましを防ぐことができる。
【0115】
また、以上説明したトークンデバイスによれば、識別情報を記憶し、公開鍵と秘密鍵との組み合わせを生成し、準同型暗号による暗号化を要求されたと判断された場合に、識別情報と公開鍵を送信する。これにより、準同型暗号による暗号化であれば、秘密鍵を外部に出さずに済み、秘密鍵が漏えいすることがなく、ひいてはユーザの生体情報が流出することをなくすことができる。
【0116】
また、本実施の形態では、暗号化装置とトークンデバイスが別の装置になっていたが、暗号化装置とトークンデバイスが一体となった装置であってもよい。具体的には、たとえば、指紋読み取り装置を備えたパーソナル・コンピュータにおいて、鍵ペアを生成し、ハードディスクに公開鍵と秘密鍵の鍵ペアを格納すればよい。
【0117】
なお、本実施の形態で説明した暗号化方法は、予め用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。本暗号化プログラムは、ハードディスク、フレキシブルディスク、CD−ROM、MO、DVD等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。また本暗号化プログラムは、インターネット等のネットワークを介して配布してもよい。
【0118】
上述した実施の形態に関し、さらに以下の付記を開示する。
【0119】
(付記1)暗号化装置から準同型暗号による暗号化情報を受信し、認証を行う認証装置であって、
前記暗号化装置から、利用者の公開鍵を用いて準同型暗号によって暗号化された生体情報と、前記利用者の識別情報と、前記利用者の公開鍵とを受信する受信手段と、
任意の利用者の識別情報と、前記任意の利用者の公開鍵を用いて準同型暗号によって暗号化された前記任意の利用者の生体情報と、前記任意の利用者の公開鍵とを前記任意の利用者ごとに対応づけて記憶するデータベースから、前記受信手段によって受信された識別情報に基づいて、前記データベースに記憶されている公開鍵と暗号化された生体情報とを検索する検索手段と、
前記検索された公開鍵と暗号化された生体情報と、前記受信した公開鍵と暗号化された生体情報とを基に前記利用者の認証を行う実行部と、
を備えることを特徴とする認証装置。
【0120】
(付記2)前記暗号化装置から、利用者の公開鍵と前記公開鍵を用いて準同型暗号によって暗号化された前記利用者の生体情報の更新情報と前記利用者の識別情報と更新指示とを受信すると、前記データベースに記憶されている前記利用者の識別情報に対応する暗号化された生体情報と公開鍵とを更新する更新手段を、さらに備えることを特徴とする付記1に記載の認証装置。
【0121】
(付記3)前記利用者の公開鍵は、前記利用者の識別情報と公開鍵および秘密鍵の組み合わせとを記憶するトークンデバイスから、前記暗号化装置が取得した公開鍵であることを特徴とする付記1または2に記載の認証装置。
【0122】
(付記4)準同型暗号による暗号化情報を暗号化したまま認証し前記暗号化情報を更新可能な認証装置に対し通信可能な暗号化装置であって、
利用者の識別情報と公開鍵および秘密鍵の組み合わせとを記憶するトークンデバイスから、前記識別情報と前記公開鍵とを取得する取得手段と、
前記取得手段によって取得された公開鍵によって、前記利用者の生体情報を前記準同型暗号によって暗号化する暗号化手段と、
前記識別情報と前記公開鍵と前記暗号化手段によって暗号化された生体情報とを前記認証装置に送信する送信手段と、
を備えることを特徴とする暗号化装置。
【0123】
(付記5)前記トークンデバイスに、前記公開鍵および前記秘密鍵の組み合わせとは異なる公開鍵および秘密鍵の組み合わせの生成を指示する生成指示手段をさらに備え、
前記取得手段は、
前記トークンデバイスから、前記識別情報と前記生成指示手段によって生成された公開鍵とを取得することを特徴とする付記4に記載の暗号化装置。
【0124】
(付記6)認証結果に基づいて、認証が成功したか否かを判断する判断手段と、
前記認証装置から前記準同型暗号によって暗号化された認証結果を受信する受信手段と、
前記トークンデバイスに、前記秘密鍵によって前記暗号化された認証結果の復号を指示する復号指示手段と、をさらに備え、
前記暗号化手段は、
前記取得手段によって読み取られた公開鍵によって、前記利用者の生体情報が前記準同型暗号のうちランダム性を持つ準同型暗号によって暗号化し、
前記取得手段は、
前記トークンデバイスから、前記復号指示手段によって復号された認証結果を取得し、
前記判断手段は、
前記取得手段によって復号された認証結果を取得するとともに、前記復号された認証結果に基づいて、認証が成功したか否かを判断することを特徴とする付記4または5に記載の暗号化装置。
【0125】
(付記7)電子署名の正当性を検証する署名検証手段と、
前記トークンデバイスに、前記暗号化手段によって前記生体情報を暗号化した秘密鍵および公開鍵の組み合わせとは異なる署名用の秘密鍵および署名用の公開鍵のうち、前記署名用の秘密鍵によって任意の値に対する電子署名の生成を指示する署名生成指示手段と、をさらに備え、
前記取得手段は、
前記トークンデバイスから、前記署名生成指示手段によって生成された前記任意の値に対する電子署名を取得し、
前記署名検証手段は、
前記取得手段によって生成された任意の値に対する電子署名を取得するとともに、前記任意の値に対する電子署名を前記署名用の公開鍵によって検証することを特徴とする付記4〜6のいずれか一つに記載の暗号化装置。
【0126】
(付記8)利用者の識別情報を記憶する記憶手段と、
公開鍵と秘密鍵との組み合わせを生成する生成手段と、
準同型暗号による暗号化を要求されたか否かを判断する判断手段と、
前記判断手段によって準同型暗号による暗号化を要求されたと判断された場合、前記記憶手段によって記憶された識別情報と前記生成手段によって生成された公開鍵とを要求元に送信する送信手段と、
を備えることを特徴とするトークンデバイス。
【0127】
(付記9)暗号化装置から準同型暗号による暗号化情報を受信し、認証装置によって実行される認証方法であって、
前記暗号化装置から、利用者の公開鍵を用いて準同型暗号によって暗号化された生体情報と、前記利用者の識別情報と、前記利用者の公開鍵とを受信するステップと、
任意の利用者の識別情報と、前記任意の利用者の公開鍵を用いて準同型暗号によって暗号化された前記任意の利用者の生体情報と、前記任意の利用者の公開鍵とを前記任意の利用者ごとに対応づけて記憶するデータベースから、前記受信した識別情報に基づいて、前記データベースに記憶されている公開鍵と暗号化された生体情報とを検索するステップと、
前記検索された公開鍵と暗号化された生体情報と、前記受信した公開鍵と暗号化された生体情報とを基に前記利用者の認証を行うステップと、
を前記認証装置が実行することを特徴とする認証方法。
【0128】
(付記10)暗号化装置から準同型暗号による暗号化情報を受信し、認証を行う認証装置として機能するコンピュータに、
前記暗号化装置から、利用者の公開鍵を用いて準同型暗号によって暗号化された生体情報と、前記利用者の識別情報と、前記利用者の公開鍵とを受信するステップと、
任意の利用者の識別情報と、前記任意の利用者の公開鍵を用いて準同型暗号によって暗号化された前記任意の利用者の生体情報と、前記任意の利用者の公開鍵とを前記任意の利用者ごとに対応づけて記憶するデータベースから、前記受信した識別情報に基づいて、前記データベースに記憶されている公開鍵と暗号化された生体情報とを検索するステップと、
前記検索された公開鍵と暗号化された生体情報と、前記受信した公開鍵と暗号化された生体情報とを基に前記利用者の認証を行うステップと、
を実行させることを特徴とする認証プログラム。
【符号の説明】
【0129】
100 認証システム
101 認証装置
103 暗号化装置
104 トークンデバイス
108 暗号化生体情報テーブル
301 取得部
302 暗号化部
303 送信部
304 受信部
305 検索部
306 実行部
307 受信部
308 生成指示部
309 生成部
310 送信部
311 更新部
312 復号指示部
313 取得部
314 復号部
315 判断部
316 署名生成指示部
317 署名生成部
318 署名検証部
319 記憶部
320 判断部

【特許請求の範囲】
【請求項1】
暗号化装置から準同型暗号による暗号化情報を受信し、認証を行う認証装置であって、
前記暗号化装置から、利用者の公開鍵を用いて準同型暗号によって暗号化された生体情報と、前記利用者の識別情報と、前記利用者の公開鍵とを受信する受信手段と、
任意の利用者の識別情報と、前記任意の利用者の公開鍵を用いて準同型暗号によって暗号化された前記任意の利用者の生体情報と、前記任意の利用者の公開鍵とを前記任意の利用者ごとに対応づけて記憶するデータベースから、前記受信手段によって受信された識別情報に基づいて、前記データベースに記憶されている公開鍵と暗号化された生体情報とを検索する検索手段と、
前記検索された公開鍵と暗号化された生体情報と、前記受信した公開鍵と暗号化された生体情報とを基に前記利用者の認証を行う実行部と、
を備えることを特徴とする認証装置。
【請求項2】
前記暗号化装置から、利用者の公開鍵と前記公開鍵を用いて準同型暗号によって暗号化された前記利用者の生体情報の更新情報と前記利用者の識別情報と更新指示とを受信すると、前記データベースに記憶されている前記利用者の識別情報に対応する暗号化された生体情報と公開鍵とを更新する更新手段を、さらに備えることを特徴とする請求項1に記載の認証装置。
【請求項3】
前記利用者の公開鍵は、前記利用者の識別情報と公開鍵および秘密鍵の組み合わせとを記憶するトークンデバイスから、前記暗号化装置が取得した公開鍵であることを特徴とする請求項1または2に記載の認証装置。
【請求項4】
準同型暗号による暗号化情報を暗号化したまま認証し前記暗号化情報を更新可能な認証装置に対し通信可能な暗号化装置であって、
利用者の識別情報と公開鍵および秘密鍵の組み合わせとを記憶するトークンデバイスから、前記識別情報と前記公開鍵とを取得する取得手段と、
前記取得手段によって取得された公開鍵によって、前記利用者の生体情報を前記準同型暗号によって暗号化する暗号化手段と、
前記識別情報と前記公開鍵と前記暗号化手段によって暗号化された生体情報とを前記認証装置に送信する送信手段と、
を備えることを特徴とする暗号化装置。
【請求項5】
電子署名の正当性を検証する署名検証手段と、
前記トークンデバイスに、前記暗号化手段によって前記生体情報を暗号化した秘密鍵および公開鍵の組み合わせとは異なる署名用の秘密鍵および署名用の公開鍵のうち、前記署名用の秘密鍵によって任意の値に対する電子署名の生成を指示する署名生成指示手段と、をさらに備え、
前記取得手段は、
前記トークンデバイスから、前記署名生成指示手段によって生成された前記任意の値に対する電子署名を取得し、
前記署名検証手段は、
前記取得手段によって生成された任意の値に対する電子署名を取得するとともに、前記任意の値に対する電子署名を前記署名用の公開鍵によって検証することを特徴とする請求項4に記載の暗号化装置。
【請求項6】
利用者の識別情報を記憶する記憶手段と、
公開鍵と秘密鍵との組み合わせを生成する生成手段と、
準同型暗号による暗号化を要求されたか否かを判断する判断手段と、
前記判断手段によって準同型暗号による暗号化を要求されたと判断された場合、前記記憶手段によって記憶された識別情報と前記生成手段によって生成された公開鍵とを要求元に送信する送信手段と、
を備えることを特徴とするトークンデバイス。
【請求項7】
暗号化装置から準同型暗号による暗号化情報を受信し、認証装置によって実行される認証方法であって、
前記暗号化装置から、利用者の公開鍵を用いて準同型暗号によって暗号化された生体情報と、前記利用者の識別情報と、前記利用者の公開鍵とを受信するステップと、
任意の利用者の識別情報と、前記任意の利用者の公開鍵を用いて準同型暗号によって暗号化された前記任意の利用者の生体情報と、前記任意の利用者の公開鍵とを前記任意の利用者ごとに対応づけて記憶するデータベースから、前記受信した識別情報に基づいて、前記データベースに記憶されている公開鍵と暗号化された生体情報とを検索するステップと、
前記検索された公開鍵と暗号化された生体情報と、前記受信した公開鍵と暗号化された生体情報とを基に前記利用者の認証を行うステップと、
を前記認証装置が実行することを特徴とする認証方法。
【請求項8】
暗号化装置から準同型暗号による暗号化情報を受信し、認証を行う認証装置として機能するコンピュータに、
前記暗号化装置から、利用者の公開鍵を用いて準同型暗号によって暗号化された生体情報と、前記利用者の識別情報と、前記利用者の公開鍵とを受信するステップと、
任意の利用者の識別情報と、前記任意の利用者の公開鍵を用いて準同型暗号によって暗号化された前記任意の利用者の生体情報と、前記任意の利用者の公開鍵とを前記任意の利用者ごとに対応づけて記憶するデータベースから、前記受信した識別情報に基づいて、前記データベースに記憶されている公開鍵と暗号化された生体情報とを検索するステップと、
前記検索された公開鍵と暗号化された生体情報と、前記受信した公開鍵と暗号化された生体情報とを基に前記利用者の認証を行うステップと、
を実行させることを特徴とする認証プログラム。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2011−211593(P2011−211593A)
【公開日】平成23年10月20日(2011.10.20)
【国際特許分類】
【出願番号】特願2010−78569(P2010−78569)
【出願日】平成22年3月30日(2010.3.30)
【出願人】(000005223)富士通株式会社 (25,993)
【Fターム(参考)】