(57)【要約】【課題】トークンデバイスに記録された情報を用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、トークンデバイスに記録された情報を用いた認証によりアクセス可能となるデータベースへの不正なアクセスを防止すること。【解決手段】端末装置は、Ｉｎｉｔコマンドがあった場合に、多重化部４０２によって、トークンデバイス１０４に記録されている秘密鍵および乱数ｎ１を読み込んで、読み込んだ秘密鍵および乱数ｎ１を多重化した多重化データを生成する。そして、分散符号化部４０３によって、生成された多重化データの分散符号化をおこなうことによりシェアｄ１、ｄ２を生成し、生成されたシェアｄ１、ｄ２のうちシェアｄ１をトークンデバイス１０４に出力するとともにシェアｄ２をＨＤ２０５に書き込むようにした。【選択図】図４
2008219619.tif 000002
【特許請求の範囲】
【請求項１】
公開鍵暗号方式により認証をおこなう認証装置において、
乱数を生成する乱数生成手段と、
トークンデバイスからの秘密鍵と前記乱数生成手段によって生成された乱数とを多重化する多重化手段と、
前記多重化手段によって得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力するとともに、残余の分散符号化データを前記トークンデバイス以外の他のデバイスに書き込む分散符号化手段と、
を備えることを特徴とする認証装置。
【請求項２】
前記トークンデバイスに出力された一部の分散符号化データと前記他のデバイスに書き込まれた残余の分散符号化データとを読み込んで、前記多重化データに復号する復号手段と、
前記復号手段によって復号された多重化データから前記秘密鍵を抽出する抽出手段と、
前記抽出手段によって抽出された秘密鍵を用いて認証をおこなう認証手段と、
を備えることを特徴とする請求項１に記載の認証装置。
【請求項３】
前記乱数生成手段は、
前記抽出手段によって前記秘密鍵が抽出された場合、乱数をあらたに生成し、
前記多重化手段は、
前記抽出手段によって抽出された秘密鍵と前記乱数生成手段によってあらたに生成された乱数とを多重化し、
前記分散符号化手段は、
前記多重化手段によってあらたに得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力するとともに、残余の分散符号化データを前記他のデバイスに書き込むことを特徴とする請求項２に記載の認証装置。
【請求項４】
公開鍵暗号方式により認証をおこなう認証方法において、
乱数を生成する乱数生成工程と、
トークンデバイスからの秘密鍵と前記乱数生成工程によって生成された乱数とを多重化する多重化工程と、
前記多重化工程によって得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力するとともに、残余の分散符号化データを前記トークンデバイス以外の他のデバイスに書き込む分散符号化工程と、
を含んだことを特徴とする認証方法。
【請求項５】
公開鍵暗号方式による認証をコンピュータに実行させる認証プログラムにおいて、
乱数を生成させる乱数生成工程と、
トークンデバイスからの秘密鍵と前記乱数生成工程によって生成された乱数とを多重化させる多重化工程と、
前記多重化工程によって得られた多重化データの分散符号化をおこなわせ、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力させるとともに、残余の分散符号化データを前記トークンデバイス以外の他のデバイスに書き込ませる分散符号化工程と、
を前記コンピュータに実行させることを特徴とする認証プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
この発明は、公開鍵暗号方式により認証をおこなう認証装置、認証方法及び認証プログラムに関する。
【背景技術】
【０００２】
近年、たとえば特定の部屋や建物における入退出状況の管理、企業における顧客情報の管理、クレジットカードやキャッシュカードを利用した決算内容の管理など、管理される情報の秘匿が要求される状況下において、管理にかかわる情報が正しい情報であるか否かの認証をおこなう認証システムを導入するケースが増えている。
【０００３】
一般的な認証技術である公開鍵暗号方式により認証をおこなう認証システムにおいては、認証に際して秘密鍵を用いる。このような認証システムでは、システム構築の容易性が高いことから、たとえばＵＳＢトークンやＩＣカードなどのトークンデバイスに秘密鍵を格納することが多い。秘密鍵としては、偽造防止を目的として、予測不可能なデータであってトークンデバイスの所有者本人も知り得ないデータが使用される。
【０００４】
従来では、たとえば、ＰＫＩ（Ｐｕｂｌｉｃ Ｋｅｙ Ｉｎｆｒａｓｔｒｕｃｔｕｒｅ）方式に基づいて生成した秘密鍵および公開鍵を、外部から読み出し不可能な書き込み専用領域を備える記憶部に書き込み、外部から入力された被認証情報が認証された場合に上記記憶部に書き込まれた秘密鍵を用いて所定のセキュリティ処理をおこなうことにより、秘密鍵の不正取得を防止するようにした技術があった（たとえば、下記特許文献１を参照。）。
【０００５】
また、従来では、たとえば、ランダムに分割された電子データのうちの一方の電子データを自装置が備える記憶媒体に残し他方の電子データを外部記憶媒体に保存するとともに、電子データの分割の仕方を記録した分割マップを自装置または外部記憶媒体に記録保存することにより、電子データの流出の危険性を回避するようにした技術があった（たとえば、下記特許文献２を参照。）。
【０００６】
【特許文献１】特開２００４−２６６３６０号公報
【特許文献２】特開２００６−２２１２５９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００７】
しかしながら、認証に際してトークンデバイスに格納した秘密鍵を用いる従来の技術においては、認証に用いる秘密鍵をトークンデバイスから端末側に読み出す際にトークンデバイスと端末とを接続する通信回線上を生の秘密鍵が流れることとなるため、秘密鍵が通信回線上にある間に複写（スキミング）されるなどして盗難される可能性があった。
【０００８】
そして、秘密鍵が盗難された場合、盗難された秘密鍵および認証システムに接続可能な端末を用いて、秘密鍵の正当な保持者ではない第３者が、本来厳密な管理が必要であるデータベースなどに不正にアクセスできてしまうという問題があった。
【０００９】
また、上述した従来の技術において、インターネットに接続されたＰＣなどのような任意の端末を含む認証システムを構築した場合、秘密鍵を記録したトークンデバイスが装着された端末がサーバにアクセス可能となるため、たとえば正当なアクセス権利を有する利用者がトークンデバイスを紛失すると、当該トークンデバイスを入手した第３者が正当なアクセス権利がないままでデータベースに不正にアクセスできてしまうという問題があった。
【００１０】
このような場合、紛失したトークンデバイスに記録されていた秘密鍵を無効とし、あらたな秘密鍵に交換する処理（初期化）を実施するまでの間、正当なアクセス権利のない第３者がデータベースに不正にアクセスする可能性があるという問題があった。
【００１１】
上記の不具合を回避して秘密鍵を安全に管理するためにはトークンデバイス内で認証をおこなうことが望ましいが、この方法では認証をおこなうためのプログラムやデータなどをトークンデバイス内に格納しておく必要があり、これらのプログラムやデータなどを格納できる容量をもったメモリをトークンデバイスに確保しなくてはならないため実現性が低いという問題があった。
【００１２】
また、上述した特許文献１に記載された技術では、外部から読み出し不可能な書き込み専用領域を備え、秘密鍵および公開鍵を書き込むための記憶部が必要であり、当該記憶部を設けることによりシステム構築の容易性が低下するという問題があった。
【００１３】
また、一般的に秘密鍵をあらわす情報量は数バイトから１００バイト程度であるため、上述した特許文献２に記載された技術を用いても、一部の分割データを用いて秘密鍵を復元することが可能となり、秘匿性を確保できないという問題があった。
【００１４】
この発明は、上述した従来技術による問題点を解消するため、トークンデバイスに記録された情報を用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、トークンデバイスに記録された情報を用いた認証によりアクセス可能となるデータベースへの不正なアクセスを防止することができる認証装置、認証方法及び認証プログラムを提供することを目的とする。
【課題を解決するための手段】
【００１５】
上述した課題を解決し、目的を達成するため、この発明にかかる認証装置は、公開鍵暗号方式により認証をおこなう認証装置において、乱数を生成し、トークンデバイスからの秘密鍵と生成された乱数とを多重化し、得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力するとともに、残余の分散符号化データを前記トークンデバイス以外の他のデバイスに書き込むことを特徴とする。
【００１６】
この発明によれば、各々単体では意味をもたない分散符号化データを、トークンデバイスおよび他のデバイスに分散して記録することができる。
【００１７】
また、この発明にかかる認証装置は、上記の認証装置において、前記トークンデバイスに出力された一部の分散符号化データと前記他のデバイスに書き込まれた残余の分散符号化データとを読み込んで、前記多重化データに復号し、復号された多重化データから前記秘密鍵を抽出し、抽出された秘密鍵を用いて認証をおこなうことを特徴とする。
【００１８】
この発明によれば、トークンデバイスと他のデバイスとを１対１に対応付け、トークンデバイスに記録された一部の分散符号化データと他のデバイスに記録された残余の分散符号化データとの双方が揃った場合に限って秘密鍵を抽出することができる。
【００１９】
また、この発明にかかる認証装置は、上記の認証装置において、前記秘密鍵が抽出された場合、乱数をあらたに生成し、抽出された秘密鍵とあらたに生成された乱数とを多重化し、あらたに得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力するとともに、残余の分散符号化データを前記他のデバイスに書き込むことを特徴とする。
【００２０】
この発明によれば、毎回異なる分散符号化データを用いて秘密鍵の抽出をおこなうことができる。
【００２１】
また、この発明にかかる認証装置は、上記の認証装置において、前記他のデバイスが、前記認証装置内部のデバイスであることを特徴とする。
【００２２】
この発明によれば、トークンデバイスと認証装置とを１対１に対応付けることができる。
【００２３】
また、この発明にかかる認証装置は、上記の認証装置において、前記他のデバイスが、前記認証装置外部のデバイスであることを特徴とする。
【００２４】
この発明によれば、トークンデバイスと他のデバイスとを１対１に対応付けることができる。
【００２５】
また、この発明にかかる認証装置は、上記の認証装置において、秘密分散法により前記分散符号化をおこなうことを特徴とする。
【００２６】
この発明によれば、トークンデバイスまたは他のデバイスに記録された分散符号化データのみを用いての秘密鍵の抽出を防止することができる。
【００２７】
この発明によれば、仮にトークンデバイスまたは他のデバイスに記録された分散符号化データがスキミングされ、正当な使用者より早く使用された場合には、正当な使用者が認証に失敗するため、早期にデータ盗難を発見することができる。
【００２８】
また、この発明にかかる認証方法および認証プログラムは、公開鍵暗号方式により認証をおこなう際に、乱数を生成し、トークンデバイスからの秘密鍵と生成された乱数とを多重化し、得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力するとともに、残余の分散符号化データを前記トークンデバイス以外の他のデバイスに書き込むことを特徴とする。
【００２９】
この発明によれば、各々単体では意味をもたない分散符号化データを、トークンデバイスおよび他のデバイスに分散して記録することができる。
【発明の効果】
【００３０】
本発明にかかる認証装置、認証方法及び認証プログラムによれば、トークンデバイスに記録された情報を用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、トークンデバイスに記録された情報を用いた認証によりアクセス可能となるデータベースへの不正なアクセスを防止することができるという効果を奏する。
【発明を実施するための最良の形態】
【００３１】
以下に添付図面を参照して、この発明にかかる認証装置、認証方法及び認証プログラムの好適な実施の形態を詳細に説明する。
【００３２】
（認証システムのシステム構成）
まず、この発明の実施の形態にかかる認証システムのシステム構成について説明する。図１は、この発明の実施の形態にかかる認証システムのシステム構成図である。図１において、認証システム１００は、インターネットなどの通信網を介して互いに通信可能に接続される複数のコンピュータ装置によって実現される。
【００３３】
複数のコンピュータ装置は、それぞれ、サーバとなるコンピュータ装置（以下、「サーバ」という。）１０１、および、ホストコンピュータあるいはクライアントとなるコンピュータ装置（以下、「端末装置」という）１０２であり、ＬＡＮ，ＷＡＮ，インターネットなどのネットワーク１１０に接続されることにより互いに通信可能とされている。
【００３４】
認証システム１００において、端末装置１０２は複数設けられている。認証システム１００においては、認証システム１００の管理者などが設定した任意の端末装置１０２がホストコンピュータとなり、それ以外の端末装置１０２はクライアントとなる。ホストコンピュータとなる端末装置１０２（図３における符号１０２ａを参照）は、クライアントとなる端末装置１０２（図３における符号１０２ｂを参照）に対する各種のコマンドを発行することが可能となる（下記図４〜７を参照）。
【００３５】
なお、ホストコンピュータとなる端末装置１０２は、クライアントとなる端末装置１０２との間で通信可能であればよく、ホストコンピュータとなる端末装置１０２とクライアントとなる端末装置１０２とはインターネットなどの通信網を介さず、ＵＳＢケーブルなどを介して直接接続されていてもよい。また、ホストコンピュータとなる端末装置１０２は、ホストコンピュータとしての機能に加えて、クライアントとしての機能を備えていてもよい。
【００３６】
認証システム１００においては、クライアントとなる端末装置１０２がサーバ１０１に対してアクセス要求をおこなった場合に、当該端末装置１０２がサーバ１０１に対するアクセス権を有する端末装置１０２であるか否かを認証する。認証システム１００における認証は、公開鍵暗号方式によっておこなわれる。公知の技術であるため説明を省略するが、公開鍵暗号方式とは、公開鍵を用いてデータの暗号化をおこない、暗号化されたデータを秘密鍵を用いて復号する暗号方式である。
【００３７】
本実施の形態において、認証システム１００を利用する利用者の公開鍵は、あらかじめサーバ１０１に登録されており、当該公開鍵と対をなす秘密鍵はトークンデバイス１０４に書き込まれた状態で各利用者に配布されているものとする。サーバ１０１およびトークンデバイス１０４には、登録された公開鍵と当該公開鍵と対をなす秘密鍵とが互いに対応付けられた状態で記憶されている。また本実施の形態において、サーバ１０１およびトークンデバイス１０４間においては、対をなす公開鍵および秘密鍵を用いて暗号化／復号をおこなう利用者のユーザ名（識別情報）が共有されている。
【００３８】
サーバ１０１は、たとえばプロバイダや所定の管理会社などによって管理されるコンピュータ装置である。端末装置１０２は、たとえば企業の受け付けなどの事務処理を担当する事務課や個人の所有するパーソナル・コンピュータなどによって実現されるコンピュータ装置である。
【００３９】
また、サーバ１０１は、たとえば住所・氏名・電話番号・嗜好などの個人情報や、業績・取引会社・業務（研究）内容など、不特定多数に公開することを目的としないデータを記録するデータベース１０３を備えている。データベース１０３には、他に、上記のユーザ名（識別情報）、公開鍵、および秘密鍵が関連付けて記憶されている。
【００４０】
各端末装置１０２は、トークンデバイス１０４が脱離自在に装着されるインターフェース（以下、「Ｉ／Ｆ」という）を備えている（図２における符号２１４を参照）。トークンデバイス１０４は、たとえばＵＳＢトークンやＩＣカードなどによって実現することができる。公知の技術であるため説明を省略するが、ＵＳＢトークンやＩＣカードなどのトークンデバイス１０４は、ＩＣチップを備えている。
【００４１】
ＩＣチップには、Ｉ／Ｆにおけるコネクタピンを介して端末装置１０２との間でデータをやり取りする接点が設けられている。また、ＩＣチップには、接点を介して入力された任意のデータを消去可能に記録するメモリが確保されている。メモリには、公開鍵暗号方式にしたがった認証に用いる秘密鍵が記録されている。ここで、秘密鍵とは、公開鍵暗号方式にしたがった認証に用いる秘密鍵をあらわす情報であり、サーバ１０１にアクセスする場合に用いられる情報である。
【００４２】
トークンデバイス１０４は、端末装置１０２から出力されたコマンドに応じて、ＩＣチップにおけるメモリにデータを記録したり、メモリに記録されたデータを端末装置１０２へ送出したり、メモリに記録されたデータを消去したりする。
【００４３】
認証システム１００においては、たとえばデータベース１０３に記録されたデータを端末装置１０２において閲覧する場合など、サーバ１０１と端末装置１０２との間で接続を確立する要求が発生した場合に、接続を確立しようとする端末装置１０２がサーバ１０１に対する正式なアクセス権利を有するか否かが認証される。
【００４４】
（コンピュータ装置のハードウェア構成）
つぎに、図１に示したコンピュータ装置のハードウェア構成について説明する。図２は、図１に示したコンピュータ装置のハードウェア構成を示すブロック図である。図２において、サーバ１０１となるコンピュータ装置は、ＣＰＵ２０１と、ＲＯＭ２０２と、ＲＡＭ２０３と、ＨＤＤ（ハードディスクドライブ）２０４と、ＨＤ（ハードディスク）２０５と、ＦＤＤ（フレキシブルディスクドライブ）２０６と、ＦＤ（フレキシブルディスク）２０７と、ディスプレイ２０８と、通信Ｉ／Ｆ（インターフェース）２０９と、キーボード２１０と、マウス２１１と、スキャナ２１２と、プリンタ２１３と、トークンデバイス１０４用のＩ／Ｆ２１４と、を備えている。各構成部２０１〜２１４は、バス２００によってそれぞれ接続されている。
【００４５】
ここで、ＣＰＵ２０１は、コンピュータ装置の全体の制御を司る。ＲＯＭ２０２は、ブートプログラムなどのプログラムを記憶している。ＲＡＭ２０３は、ＣＰＵ２０１のワークエリアとして使用される。ＨＤＤ２０４は、ＣＰＵ２０１の制御にしたがってＨＤ２０５に対するデータのリード／ライトを制御する。ＨＤＤ２０４は、コンピュータ装置の電源のＯＮ／ＯＦＦに拘わらず、記録された情報を保持する。ＨＤＤ２０４に記録された情報は、所定のコマンドによって消去される以外には記録されつづける。本実施の形態においては、端末装置１０２におけるＨＤ２０５によって他のデバイスの一例を実現することができる。
【００４６】
ＦＤＤ２０６は、ＣＰＵ２０１の制御にしたがってＦＤ２０７に対するデータのリード／ライトを制御する。ＦＤ２０７は、ＦＤＤ２０６の制御で書き込まれたデータを記憶したり、ＦＤ２０７に記憶されたデータをコンピュータ装置に読み取らせたりする。ＦＤ２０７は、コンピュータ装置の電源のＯＮ／ＯＦＦに拘わらず記録された情報を保持し、所定のコマンドによって消去される以外には記録された情報を記録しつづける。このため、本実施の形態においては、端末装置１０２に着脱自在なＦＤ２０７によって他のデバイスの一例を実現することもできる。
【００４７】
また、着脱可能な記録媒体として、ＦＤ２０７のほか、ＣＤ−ＲＯＭ（ＣＤ−Ｒ、ＣＤ−ＲＷ）、ＭＯ、ＤＶＤ（Ｄｉｇｉｔａｌ  Ｖｅｒｓａｔｉｌｅ  Ｄｉｓｋ）、メモリーカードなどであってもよい。ディスプレイ２０８は、カーソル、アイコンあるいはツールボックスをはじめ、文書、画像、機能情報などのデータを表示する。このディスプレイ２０８は、たとえば、ＣＲＴ、ＴＦＴ液晶ディスプレイ、プラズマディスプレイなどを採用することができる。
【００４８】
通信Ｉ／Ｆ２０９は、通信回線を通じてインターネットなどのネットワーク１１０に接続され、このネットワーク１１０を介して他の装置に接続される。そして、通信Ｉ／Ｆ２０９は、ネットワーク１１０と内部のインターフェースを司り、外部装置からのデータの入出力を制御する。通信Ｉ／Ｆ２０９には、たとえばモデムやＬＡＮアダプタなどを採用することができる。
【００４９】
キーボード２１０は、文字、数字、各種指示などの入力のためのキーを備え、データの入力をおこなう。また、タッチパネル式の入力パッドやテンキーなどであってもよい。マウス２１１は、カーソルの移動や範囲選択、あるいはウィンドウの移動やサイズの変更などをおこなう。ポインティングデバイスとして同様に機能を備えるものであれば、トラックボールやジョイスティックなどであってもよい。
【００５０】
スキャナ２１２は、画像を光学的に読み取り、コンピュータ装置内に画像データを取り込む。なお、スキャナ２１２は、ＯＣＲ機能をもたせてもよい。また、プリンタ２１３は、画像データや文書データを印刷する。プリンタ２１３には、たとえば、レーザプリンタやインクジェットプリンタを採用することができる。
【００５１】
トークンデバイス１０４に記録されたデータは、トークンデバイス１０４が端末装置１０２に装着され、トークンデバイス１０４が端末装置１０２のＩ／Ｆ２１４に接続されたことがＣＰＵ２０１によって認識された場合に読み取り可能となる。また、トークンデバイス１０４が端末装置１０２に装着され、トークンデバイス１０４がＩ／Ｆ２１４に接続されたことがＣＰＵ２０１によって認識された場合に、端末装置１０２によるトークンデバイス１０４へのデータの記録が可能になる。
【００５２】
（認証システム１００の概略構成）
つぎに、図１に示した認証システム１００の概略構成について説明する。図３は、認証システム１００の概略構成を示すブロック図である。図３においては、認証システム１００においておこなわれる認証にかかわる各部が示されている。図３において、認証システム１００における端末装置１０２は、鍵管理部３０１、認証部３０２、コマンド処理部３０３を備えている。
【００５３】
図３において、端末装置１０２のＨＤ２０５は他のデバイスとして機能し、端末装置１０２のＦＤ２０７は外部のデバイスとして機能する。認証部３０２は、通信Ｉ／Ｆ２０９を介してサーバ１０１との間で通信をおこなう。コマンド処理部３０３は、Ｉ／Ｆ２１４を介してホストコンピュータとなる端末装置１０２ａとの間で通信をおこなう。
【００５４】
鍵管理部３０１は、乱数を生成し、トークンデバイス１０４からの秘密鍵と生成された乱数とを多重化し、得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データをトークンデバイス１０４に出力するとともに、残余の分散符号化データをトークンデバイス１０４以外の他のデバイスに書き込む。これによって、各々単体では意味をもたない分散符号化データを、トークンデバイス１０４および端末装置１０２におけるＨＤ２０５に分散して記録することができる。
【００５５】
また、鍵管理部３０１は、トークンデバイス１０４に出力された一部の分散符号化データと端末装置１０２におけるＨＤ２０５に書き込まれた残余の分散符号化データとを読み込んで上記多重化データに復号し、復号された多重化データから秘密鍵を抽出する。これによって、トークンデバイス１０４と端末装置１０２におけるＨＤ２０５とを１対１に対応付け、トークンデバイス１０４に記録された一部の分散符号化データと端末装置１０２におけるＨＤ２０５に記録された残余の分散符号化データとの双方が揃った場合に限って秘密鍵を抽出することができる。
【００５６】
認証部３０２は、鍵管理部３０１によって抽出された秘密鍵を用いて認証をおこなう。公知の技術であるため秘密鍵を用いた認証については説明を省略するが、認証部３０２は、秘密鍵をパスワードとして用いて、トークンデバイス１０４が装着されている端末装置１０２がサーバ１０１にアクセス可能であるか否かの認証をおこなう。認証システム１００においては、トークンデバイス１０４および端末装置１０２におけるＨＤ２０５に分散して記録された分散符号化データを用いて得られる秘密鍵を用いることで認証にかかるセキュリティ性の向上を図ることができる。
【００５７】
秘密鍵は、トークンデバイス１０４を用いてサーバ１０１へのアクセスを試みる利用者自身も知り得ない情報であり、人間が予測することは不可能な情報である。認証部３０２は、認証の結果鍵管理部３０１によって抽出された秘密鍵が正しい秘密鍵である場合に、端末装置１０２における通信Ｉ／Ｆ２０９を介してサーバ１０１に対してアクセス要求を送信する。
【００５８】
サーバ１０１は、認証部３０２を介して端末装置１０２からアクセス要求が送信された場合に、端末装置１０２との接続を確立する処理をおこない、アクセス要求に応じた応答を端末装置１０２へ送信する。アクセス要求に応じた応答を端末装置１０２が受信した場合に、サーバ１０１と端末装置１０２との間での接続が確立され、端末装置１０２のサーバ１０１へのアクセスが可能となる。
【００５９】
また、鍵管理部３０１は、秘密鍵が抽出された場合に、乱数をあらたに生成し、抽出された秘密鍵とあらたに生成された乱数とを多重化し、あらたに得られた多重化データの分散符号化をおこなうことにより、当該分散符号化により得られた一部の分散符号化データをトークンデバイス１０４に出力するとともに、残余の分散符号化データを端末装置１０２におけるＨＤ２０５に書き込む。これによって、端末装置１０２は、毎回異なる分散符号化データを用いて秘密鍵を抽出することができる。
【００６０】
公知の技術であるため説明を省略するが、多重化データを生成する際に用いる多重化技術は、あらかじめ決められた所定の周波数帯域において多チャンネル通信を実現する技術として多数存在する。本実施の形態においては、たとえばＴＤＭ（Ｔｉｍｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘ：時分割多重化）や、ＣＤＭ（Ｃｏｄｅ  Ｄｉｖｉｓｉｏｎ  Ｍｕｌｔｉｐｌｅｘ：符号分割多重化）などの多重化技術を用いて多重化データを生成することができる。
【００６１】
多重化データの生成に際しては、たとえば、秘密鍵と乱数とを用いて得られる排他論理和を多重化データとしてもよい。これによって、多重化データの生成にかかわる各部にかかる処理負担の軽減を図ることができる。
【００６２】
なお、本実施の形態における端末装置１０２は、たとえば一部の分散符号化データが複写（スキミング）された場合に、複写（スキミング）されたことが判明した時点であらたな分散符号化データを生成することにより、複写（スキミング）された分散符号化データを直ちに無効とすることができる。
【００６３】
コマンド処理部３０３は、端末装置１０２におけるＩ／Ｆ２１４を介して入力された情報に応じた各種コマンドを鍵管理部３０１に出力する。コマンド処理部３０３は、ホストコンピュータとなる端末装置１０２から出力されたコマンドを、鍵管理部３０１に出力する。コマンド処理部３０３から鍵管理部３０１に出力されるコマンドとしては、たとえば、生の秘密鍵を用いて分散符号化データを生成する処理を実行させるコマンド（以下、「Ｉｎｉｔコマンド」という）、生成された分散符号化データを用いてあらたな分散符号化データを生成する処理を実行させるコマンド（以下、「Ｃｒｅａｔｅコマンド」という）、生成された分散符号化データの記録先を端末装置１０２におけるＨＤ２０５から別のデバイスに変更する処理を実行させるコマンド（以下、「Ｍｏｖｅコマンド」という）、変更された記録先から分散符号化データを取得する処理を実行させるコマンド（以下、「Ｓｅｔコマンド」という）などがある。
【００６４】
（鍵管理部３０１の機能（その１））
つぎに、鍵管理部３０１の機能（その１）について詳細に説明する。図４は、鍵管理部３０１を示すブロック図（その１）である。図４においては、鍵管理部３０１が備える各部の中で、コマンド処理部３０３から鍵管理部３０１に対してＩｎｉｔコマンドが入力された場合に実現されるＩｎｉｔ機能にかかわる各部を示している。
【００６５】
図４において、鍵管理部３０１は、乱数生成部４０１、多重化部４０２、および分散符号化部４０３を備え、これらの各部４０１〜４０３を用いてＩｎｉｔ機能を実現する。乱数生成部４０１は、任意の乱数を生成し、生成した乱数を多重化部４０２へ出力する。多重化部４０２は、トークンデバイス１０４に記録された秘密鍵と乱数生成部４０１から出力された乱数ｎ１とを用いて、秘密鍵と乱数ｎ１とを多重化した多重化データを生成する。
【００６６】
分散符号化部４０３は、多重化部４０２によって生成された多重化データを用いて分散符号化データであるシェアｄ１、ｄ２を生成する。分散符号化部４０３による符号化方式は、下記の分散復号部（図４〜図６における符号６０１を参照）において復号可能な方式にしたがっておこなわれるものであって、かつ、個々のシェアｄ１またはｄ２では元の秘密鍵を復元することが不可能な方式であればよい。
【００６７】
具体的に、本実施の形態における分散符号化部４０３は、秘密分散法を用いてシェアｄ１、ｄ２を生成する。ここで、秘密分散法とは、秘密情報（ここでは秘密鍵を含む多重化データ）を複数の分散符号化データに分け、分散させることにより秘密情報を秘匿するようにした暗号方式である。
【００６８】
公知の技術であるため秘密分散法についての説明を省略するが、秘密分散法によれば、各々同じデータサイズになるように複数生成した分散符号化データのうち、所定の数の分散符号化データが揃った場合のみ秘密情報を復元することが可能となり、所定の数の分散符号化データが揃わない場合には秘密情報を復元することはできない。秘密情報の復元を可能とする所定の数は、任意に設定することができる。
【００６９】
たとえば、分散符号化部４０３によって任意に設定されるｋ個の分散符号化データを用いて復元可能なｎ個（ただし、ｎ≧ｋ）のシェアを生成する場合、生成された複数のシェアのうちｋ’個（ただし、ｋ’＜ｋ）の分散符号化データをトークンデバイス１０４に記録させた場合、トークンデバイス１０４に記録されたシェアが複写（スキミング）された場合にも、複写（スキミング）したシェアのみでは多重化データ（秘密鍵を含む多重化データ）への復号が不可能であるので、認証にかかるセキュリティ性の向上を図ることができる。
【００７０】
すなわち、トークンデバイス１０４に記録させるシェアの個数を、多重化データへの復号が可能となるｋ個のシェアよりも少ないｋ’個とすることにより、トークンデバイス１０４に記録されたシェアが複写（スキミング）された場合にも、複写（スキミング）したシェアのみでは多重化データの復元が不可能であるので、認証にかかるセキュリティ性の向上を図ることができる。
【００７１】
秘密分散法においては、分割された後の個々のデータのデータサイズを任意に指定したり、分割された後の個々のデータのデータサイズをそれぞれ異ならせたりすることができる。また、秘密分散法においては、上記のようにしきい値ｋによって決められるｋ個の分散符号化データを集めることにより秘密情報を復元することができる方法（しきい値法）に代えて、秘密情報を復元できる／できない集合を任意に定め、復元できる集合を集めた場合に秘密情報を復元することができる方法（一般アクセス構造に対する秘密分散法）を用いてもよい。
【００７２】
上記の一般アクセス構造に対する秘密分散法によれば、ｎ個の分散符号化データのうち、指定された分散符号化データの部分集合からは秘密情報を復号することができ、それ以外の分散情報の組合せからは秘密情報に関する情報が一切もれないようにすることができる。分散符号化に際して秘密分散法を用いることにより、秘密情報の秘匿性を確保することができる。
【００７３】
上記の分散符号化部４０３は、シェアｄ１、ｄ２を生成した後、生成されたシェアｄ１、ｄ２のうち一部の分散符号化データであるシェアｄ１をトークンデバイス１０４に出力し、残余の分散符号化データであるシェアｄ２を端末装置１０２におけるＨＤ２０５に記録する。これによって、各々単体では意味をもたないシェアｄ１、ｄ２を、トークンデバイス１０４および端末装置１０２におけるＨＤ２０５に分散して記録することができる。
【００７４】
Ｉｎｉｔ機能を実現することにより、たとえばトークンデバイス１０４に記録された情報の読み出しに際してトークンデバイス１０４に記録されたシェアｄ１が複写（スキミング）された場合にも、シェアｄ１に基づいて秘密鍵を抽出することを防止できる。これによって、秘密鍵の漏洩を防止することができる。
【００７５】
これによって、トークンデバイス１０４に記録された情報を用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、盗難などによって不正に入手した秘密鍵を用いてのデータベース１０３への不正なアクセスを防止することができる。
【００７６】
また、Ｉｎｉｔ機能を実現することにより、トークンデバイス１０４とトークンデバイス１０４を用いて認証をおこなう端末装置１０２とを１対１に対応付け、トークンデバイス１０４に対して１対１に対応付けられた端末装置１０２を用いた場合に限って認証をおこなうことが可能になる。これによって、トークンデバイス１０４に記録された情報を用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、データベース１０３への不正なアクセスを効果的に防止することができる。
【００７７】
（鍵管理部３０１の機能（その２））
つぎに、鍵管理部３０１の機能（その２）について詳細に説明する。図５は、鍵管理部３０１を示すブロック図（その２）である。図５においては、鍵管理部３０１が備える各部の中で、コマンド処理部３０３から鍵管理部３０１に対してＣｒｅａｔｅコマンドが入力された場合に実現されるＣｒｅａｔｅ機能にかかわる各部を示している。なお、上述した図４に示した構成と同一部分については同一名称および同一符号で示し、説明を省略する。
【００７８】
図５において、鍵管理部３０１は、分散復号部（復号部）５０１、乱数除去（抽出）部５０２、多重化部５０３、分散符号化部５０４、および乱数生成部４０１を備え、これらの各部５０１〜５０４および５０１を用いてＣｒｅａｔｅ機能を実現する。分散復号部５０１は、上記のＩｎｉｔ機能によってトークンデバイス１０４に記録されたシェアｄ１と端末装置１０２におけるＨＤ２０５に書き込まれたシェアｄ２とを読み込んで、秘密鍵と乱数ｎ１とを多重化した多重化データに復号する。
【００７９】
乱数除去（抽出）部５０２は、分散復号部５０１によって復号された多重化データから乱数ｎ１を除去し、秘密鍵を抽出する。図５においては図示を省略するが、抽出された秘密鍵は上記の認証部３０２へ出力され、認証部３０２における認証に供される。
【００８０】
図５における乱数生成部４０１は、任意の乱数ｎ２を生成し、生成した乱数ｎ２を多重化部５０３へ出力する。多重化部５０３は、乱数除去（抽出）部５０２によって抽出された秘密鍵と乱数生成部４０１から出力された乱数ｎ２とを用いて、秘密鍵と乱数ｎ２とを多重化した多重化データを生成する。
【００８１】
分散符号化部５０４は、多重化部５０３によって生成された多重化データを用いて分散符号化データであるシェアｄ３、ｄ４を生成し、生成されたシェアｄ３、ｄ４のうち一部の分散符号化データであるシェアｄ３をトークンデバイス１０４に出力し、残余の分散符号化データであるシェアｄ４を端末装置１０２におけるＨＤ２０５に記録する。
【００８２】
Ｃｒｅａｔｅ機能を実現することによって、トークンデバイス１０４と端末装置１０２におけるＨＤ２０５とを１対１に対応付け、トークンデバイス１０４に記録された一部の分散符号化データであるシェアｄ３と、端末装置１０２におけるＨＤ２０５に記録された残余の分散符号化データであるシェアｄ４との双方が揃った場合に限って秘密鍵を抽出することができる。
【００８３】
また、Ｃｒｅａｔｅ機能を実現することによって、毎回異なるシェアを用いて秘密鍵の抽出をおこなうことができる。すなわち、Ｃｒｅａｔｅ機能を実現することによって、上記のＩｎｉｔ機能を実現することによって生成されたシェアｄ１、ｄ２を用いておこなわれた秘密鍵の抽出が、次回はＣｒｅａｔｅ機能を実現することによって生成されたシェアｄ３、ｄ４を用いておこなわれる。
【００８４】
これによって、たとえばトークンデバイス１０４に記録された情報の読み出しに際してトークンデバイス１０４に記録されたシェアｄ１が複写（スキミング）された場合にも、シェアｄ３が生成された時点でシェアｄ１が無効となり、シェアｄ３を利用可能な期間を短くすることができる。
【００８５】
これによって、たとえばトークンデバイス１０４が盗難された場合にも盗難されたトークンデバイス１０４のみでは秘密鍵を抽出することができず認証をおこなうことができないため、トークンデバイス１０４に記録されたデータを用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、データベース１０３への不正なアクセスを効果的に防止することができる。
【００８６】
なお、Ｃｒｅａｔｅ機能を実現することによって、秘密鍵は端末装置１０２の内部にのみ存在することとなる。これによって、たとえばトークンデバイス１０４に記録された情報の読み出しに際して、トークンデバイス１０４と端末装置１０２との間で秘密鍵が送受信されることがないので、秘密鍵の漏洩を効果的に防止することができる。
【００８７】
そして、上記のＩｎｉｔ機能を、認証システム１００の利用者に対してトークンデバイス１０４を提供する前に、認証システム１００の提供元において実現しておくことにより、生の秘密鍵が記録された状態のトークンデバイス１０４が市場に流通することがないので、秘密鍵の漏洩をより確実に防止することができる。
【００８８】
また、認証システム１００の利用者に対してトークンデバイス１０４を提供する前に上記のＩｎｉｔ機能をおこない、その後にＣｒｅａｔｅ機能を実現することによって、仮にトークンデバイス１０４（あるいは他のデバイス）に記録された分散符号化データをスキミングされ、スキミングされた分散符号化データが正当な使用者より早く使用された場合、以降、正当な使用者がおこなった認証が失敗となる。これによって、分散符号化データあるいは秘密鍵などのデータが盗難されたことを早期に発見することができる。
【００８９】
（鍵管理部３０１の機能（その３））
つぎに、鍵管理部３０１の機能（その３）について詳細に説明する。図６は、鍵管理部３０１を示すブロック図（その３）である。図６においては、鍵管理部３０１が備える各部の中で、コマンド処理部３０３から鍵管理部３０１に対してＭｏｖｅコマンドが入力された場合に実現されるＭｏｖｅ機能にかかわる各部を示している。なお、上述した図４〜図５に示した構成と同一部分については同一名称および同一符号で示し、説明を省略する。
【００９０】
図６において、鍵管理部３０１は、分散復号部５０１、乱数除去（抽出）部５０２、多重化部５０３、分散符号化部５０４、および乱数生成部４０１を備え、これらの各部５０１〜５０４および４０１を用いてＭｏｖｅ機能を実現する。分散復号部５０１は、上記のＣｒｅａｔｅ機能によってトークンデバイス１０４に記録されたシェアｄ３と端末装置１０２におけるＨＤ２０５に書き込まれたシェアｄ４とを読み込んで、秘密鍵と乱数ｎ２とを多重化した多重化データに復号する。
【００９１】
乱数除去（抽出）部５０２は、分散復号部５０１によって復号された多重化データから乱数ｎ２を除去し、秘密鍵を抽出する。図６においては図示を省略するが、抽出された秘密鍵は上記の認証部３０２へ出力され、認証部３０２における認証に供される。
【００９２】
図６における乱数生成部４０１は、任意の乱数ｎ３を生成し、生成した乱数ｎ３を多重化部５０３へ出力する。多重化部５０３は、乱数除去（抽出）部５０２によって抽出された秘密鍵と乱数生成部４０１から出力された乱数ｎ３とを用いて、秘密鍵と乱数ｎ３とを多重化した多重化データを生成する。
【００９３】
分散符号化部５０４は、多重化部５０３によって生成された多重化データを用いて分散符号化データであるシェアｄ５、ｄ６を生成し、生成されたシェアｄ５、ｄ６のうち一部の分散符号化データであるシェアｄ５をトークンデバイス１０４に出力し、残余の分散符号化データであるシェアｄ６を端末装置１０２におけるＨＤ２０５以外の他のデバイスとして、端末装置１０２に着脱自在なＦＤ２０７に記録する。
【００９４】
Ｍｏｖｅ機能を実現することにより、トークンデバイス１０４と端末装置１０２に着脱自在なＦＤ２０７とを１対１に対応付けることができ、１対１に対応付けられたトークンデバイス１０４と端末装置１０２に着脱自在なＦＤ２０７とが揃った場合に限って認証をおこなうことが可能になる。
【００９５】
すなわち、サーバ１０１に接続可能な環境にあって、かつ、トークンデバイス１０４および端末装置１０２に着脱自在なＦＤ２０７に記録されたデータの読み出しが可能な任意の端末装置１０２を用いて認証をおこなうことが可能になる。これによって、データベース１０３への不正なアクセスを防止するとともに、トークンデバイス１０４に記録された情報を用いて認証をおこなうことによる利便性の向上を図ることができる。
【００９６】
（鍵管理部３０１の機能（その４））
つぎに、鍵管理部３０１の機能（その４）について詳細に説明する。図７は、鍵管理部３０１を示すブロック図（その４）である。図７においては、鍵管理部３０１が備える各部の中で、コマンド処理部３０３から鍵管理部３０１に対してＳｅｔコマンドが入力された場合に実現されるＳｅｔ機能にかかわる各部を示している。なお、上述した図４〜図６に示した構成と同一部分については同一名称および同一符号で示し、説明を省略する。
【００９７】
図７において、鍵管理部３０１は、分散復号部５０１、乱数除去（抽出）部５０２、多重化部５０３、分散符号化部５０４、および乱数生成部４０１を備え、これらの各部５０１〜５０４および４０１を用いてＳｅｔ機能を実現する。分散復号部５０１は、上記のＭｏｖｅ機能によってトークンデバイス１０４に記録されたシェアｄ５と端末装置１０２に着脱自在なＦＤ２０７に書き込まれたシェアｄ６とを読み込んで、秘密鍵と乱数ｎ３とを多重化した多重化データに復号する。
【００９８】
乱数除去（抽出）部５０２は、分散復号部５０１によって復号された多重化データから乱数ｎ３を除去し、秘密鍵を抽出する。図７においては図示を省略するが、抽出された秘密鍵は上記の認証部３０２へ出力され、認証部３０２における認証に供される。
【００９９】
図７における乱数生成部４０１は、任意の乱数ｎ４を生成し、生成した乱数ｎ４を多重化部５０３へ出力する。多重化部５０３は、乱数除去（抽出）部５０２によって抽出された秘密鍵と乱数生成部４０１から出力された乱数ｎ４とを用いて、秘密鍵と乱数ｎ４とを多重化した多重化データを生成する。
【０１００】
分散符号化部５０４は、多重化部５０３によって生成された多重化データを用いて分散符号化データであるシェアｄ７、ｄ８を生成し、生成されたシェアｄ７、ｄ８のうち一部の分散符号化データであるシェアｄ７をトークンデバイス１０４に出力し、残余の分散符号化データであるシェアｄ８を端末装置１０２におけるＨＤ２０５に記録する。
【０１０１】
Ｓｅｔ機能を実現することにより、端末装置１０２に着脱自在なＦＤ２０７に記録されたシェアｄ６を用いて認証をおこなうことが可能になり、また、あらたに生成したシェアｄ８を再び端末装置１０２におけるＨＤ２０５に記録することができる。すなわち、サーバ１０１に接続可能な環境にあって、かつ、トークンデバイス１０４および端末装置１０２におけるＦＤ２０７に記録されたデータの読み出しが可能な任意の端末装置１０２を用いて認証をおこなうことが可能になる。これによって、データベース１０３への不正なアクセスを防止するとともに、トークンデバイス１０４に記録された情報を用いて認証をおこなうことによる利便性の向上を図ることができる。
【０１０２】
（端末装置１０２の処理手順（その１））
つぎに、端末装置１０２の処理手順（その１）について説明する。図８は、端末装置１０２の処理手順（その１）を示すフローチャートである。図８においては、上記Ｉｎｉｔ機能の実現に際して実行される処理手順が示されている。図８に示す処理手順は、あらかじめ秘密鍵が記録されたトークンデバイス１０４が端末装置１０２に装着されていることを前提としておこなわれる。図８において、まず、Ｉｎｉｔコマンドがあるまで待機する（ステップＳ８０１：Ｎｏ）。
【０１０３】
ステップＳ８０１において、Ｉｎｉｔコマンドがあった場合（ステップＳ８０１：Ｙｅｓ）には、多重化部４０２によって、トークンデバイス１０４に記録されている秘密鍵および乱数ｎ１を読み込んで（ステップＳ８０２）、読み込んだ秘密鍵および乱数ｎ１を多重化した多重化データを生成する（ステップＳ８０３）。
【０１０４】
そして、分散符号化部４０３によって、ステップＳ８０３において生成された多重化データの分散符号化をおこなうことによりシェアｄ１、ｄ２を生成し（ステップＳ８０４）、生成されたシェアｄ１、ｄ２のうちシェアｄ１をトークンデバイス１０４に出力するとともにシェアｄ２を端末装置１０２におけるＨＤ２０５に書き込んで（ステップＳ８０５）、一連の処理を終了する。
【０１０５】
図示を省略するが、上記ステップＳ８０５においてトークンデバイス１０４に出力されたシェアｄ１は、トークンデバイス１０４が備えるＣＰＵによって制御されてトークンデバイス１０４が備えるメモリに書き込まれる。トークンデバイス１０４に書き込まれたシェアｄ１は、端末装置１０２などを用いて所定の操作をおこなうまでの間記録されつづける。
【０１０６】
（端末装置１０２の処理手順（その２））
つぎに、端末装置１０２の処理手順（その２）について説明する。図９は、端末装置１０２の処理手順（その２）を示すフローチャートである。図９においては、上記Ｃｒｅａｔｅ機能の実現に際して実行される処理手順が示されている。図９において、まず、Ｃｒｅａｔｅコマンドがあるまで待機する（ステップＳ９０１：Ｎｏ）。
【０１０７】
ステップＳ９０１においてＣｒｅａｔｅコマンドがあった場合（ステップＳ９０１：Ｙｅｓ）には、トークンデバイス１０４が装着されているか否かを判断する（ステップＳ９０２）。トークンデバイス１０４が装着されている場合（ステップＳ９０２：Ｙｅｓ）には、分散復号部５０１によって、装着されているトークンデバイス１０４に記録されているシェアｄ１および端末装置１０２におけるＨＤ２０５に記録されているシェアｄ２を読み込んで（ステップＳ９０３）、読み込んだシェアｄ１、ｄ２を、秘密鍵および乱数ｎ１を多重化した多重化データに復号する（ステップＳ９０４）。
【０１０８】
つづいて、乱数除去（抽出）部５０２によって、ステップＳ９０４において復号された多重化データ（秘密鍵＋乱数ｎ１）から乱数ｎ１を除去することにより秘密鍵を抽出する（ステップＳ９０５）。ステップＳ９０５において抽出された秘密鍵は、上記認証部３０２による認証に供される。なお、秘密鍵を用いた認証については公知の技術であるため、ここでは説明を省略する。
【０１０９】
そして、多重化部５０３によって、乱数生成部４０１においてあらたに生成された乱数ｎ２を取得し（ステップＳ９０６）、ステップＳ９０５において抽出された秘密鍵およびステップＳ９０６において取得された乱数ｎ２を多重化した多重化データを生成する（ステップＳ９０７）。
【０１１０】
そして、分散符号化部５０４によって、ステップＳ９０７において生成された多重化データの分散符号化をおこなうことによりシェアｄ３、ｄ４を生成し（ステップＳ９０８）、生成されたシェアｄ３、ｄ４のうちシェアｄ３をトークンデバイス１０４に出力するとともにシェアｄ４を端末装置１０２におけるＨＤ２０５に書き込んで（ステップＳ９０９）、一連の処理を終了する。
【０１１１】
図示を省略するが、上記ステップＳ９０９においてトークンデバイス１０４に出力されたシェアｄ３は、トークンデバイス１０４が備えるＣＰＵによって制御されてトークンデバイス１０４が備えるメモリに書き込まれる。トークンデバイス１０４に書き込まれたシェアｄ３は、端末装置１０２などを用いて所定の操作をおこなうまでの間記録されつづける。
【０１１２】
一方、ステップＳ９０２において、トークンデバイス１０４が装着されていない場合（ステップＳ９０２：Ｎｏ）には、ステップＳ９０１においてＣｒｅａｔｅコマンドがあった時点から所定時間が経過したか否かを判断する（ステップＳ９１０）。そして、所定時間が経過していない場合（ステップＳ９１０：Ｎｏ）にはステップＳ９０２へ戻る。
【０１１３】
ステップＳ９１０において、所定時間が経過した場合（ステップＳ９１０：Ｙｅｓ）には、たとえばディスプレイ２０８に所定のエラーメッセージを表示するなどのエラー処理をおこなって（ステップＳ９１１）、一連の処理を終了する。
【０１１４】
（端末装置１０２の処理手順（その３））
つぎに、端末装置１０２の処理手順（その３）について説明する。図１０は、端末装置１０２の処理手順（その３）を示すフローチャートである。図１０においては、上記Ｍｏｖｅ機能の実現に際して実行される処理手順が示されている。図１０において、まず、Ｍｏｖｅコマンドがあるまで待機する（ステップＳ１００１：Ｎｏ）。
【０１１５】
ステップＳ１００１においてＭｏｖｅコマンドがあった場合（ステップＳ１００１：Ｙｅｓ）には、トークンデバイス１０４が装着されているか否かを判断する（ステップＳ１００２）。トークンデバイス１０４が装着されている場合（ステップＳ１００２：Ｙｅｓ）には、分散復号部５０１によって、装着されているトークンデバイス１０４に記録されているシェアｄ３および端末装置１０２におけるＨＤ２０５に記録されているシェアｄ４を読み込んで（ステップＳ１００３）、読み込んだシェアｄ３、ｄ４を、秘密鍵および乱数ｎ２を多重化した多重化データに復号する（ステップＳ１００４）。
【０１１６】
つづいて、乱数除去（抽出）部５０２によって、ステップＳ１００４において復号された多重化データ（秘密鍵＋乱数ｎ２）から乱数ｎ２を除去することにより秘密鍵を抽出する（ステップＳ１００５）。ステップＳ１００５において抽出された秘密鍵は、上記認証部３０２による認証に供される。なお、秘密鍵を用いた認証については公知の技術であるため、ここでは説明を省略する。
【０１１７】
そして、多重化部５０３によって、乱数生成部４０１においてあらたに生成された乱数ｎ３を取得し（ステップＳ１００６）、ステップＳ１００５において抽出された秘密鍵およびステップＳ１００６において取得された乱数ｎ３を多重化した多重化データを生成する（ステップＳ１００７）。
【０１１８】
そして、分散符号化部５０４によって、ステップＳ１００７において生成された多重化データの分散符号化をおこなうことによりシェアｄ５、ｄ６を生成し（ステップＳ１００８）、生成されたシェアｄ５、ｄ６のうちシェアｄ５をトークンデバイス１０４に出力するとともにシェアｄ６を端末装置１０２に着脱自在なＦＤ２０７に書き込んで（ステップＳ１００９）、一連の処理を終了する。
【０１１９】
図示を省略するが、上記ステップＳ１００９においてトークンデバイス１０４に出力されたシェアｄ５は、トークンデバイス１０４が備えるＣＰＵによって制御されてトークンデバイス１０４が備えるメモリに書き込まれる。トークンデバイス１０４に書き込まれたシェアｄ５は、端末装置１０２などを用いて所定の操作をおこなうまでの間記録されつづける。
【０１２０】
一方、ステップＳ１００２において、トークンデバイス１０４が装着されていない場合（ステップＳ１００２：Ｎｏ）には、ステップＳ１００１においてＭｏｖｅコマンドがあった時点から所定時間が経過したか否かを判断する（ステップＳ１０１０）。そして、所定時間が経過していない場合（ステップＳ１０１０：Ｎｏ）にはステップＳ１００２へ戻る。
【０１２１】
ステップＳ１０１０において、所定時間が経過した場合（ステップＳ１０１０：Ｙｅｓ）には、たとえばディスプレイ２０８に所定のエラーメッセージを表示するなどのエラー処理をおこなって（ステップＳ１０１１）、一連の処理を終了する。
【０１２２】
（端末装置１０２の処理手順（その４））
つぎに、端末装置１０２の処理手順（その４）について説明する。図１１は、端末装置１０２の処理手順（その４）を示すフローチャートである。図１１においては、上記Ｓｅｔ機能の実現に際して実行される処理手順が示されている。図１１において、まず、Ｓｅｔコマンドがあるまで待機する（ステップＳ１１０１：Ｎｏ）。
【０１２３】
ステップＳ１１０１においてＳｅｔコマンドがあった場合（ステップＳ１１０１：Ｙｅｓ）には、トークンデバイス１０４が装着されているか否かを判断する（ステップＳ１１０２）。トークンデバイス１０４が装着されている場合（ステップＳ１１０２：Ｙｅｓ）には、分散復号部５０１によって、装着されているトークンデバイス１０４に記録されているシェアｄ５および端末装置１０２に着脱自在なＦＤ２０７に記録されているシェアｄ６を読み込んで（ステップＳ１１０３）、読み込んだシェアｄ５、ｄ６を、秘密鍵および乱数ｎ３を多重化した多重化データに復号する（ステップＳ１１０４）。
【０１２４】
つづいて、乱数除去（抽出）部５０２によって、ステップＳ１１０４において復号された多重化データ（秘密鍵＋乱数ｎ３）から乱数ｎ３を除去することにより秘密鍵を抽出する（ステップＳ１１０５）。ステップＳ１１０５において抽出された秘密鍵は、上記認証部３０２による認証に供される。なお、秘密鍵を用いた認証については公知の技術であるため、ここでは説明を省略する。
【０１２５】
そして、多重化部５０３によって、乱数生成部４０１においてあらたに生成された乱数ｎ４を取得し（ステップＳ１１０６）、ステップＳ１１０５において抽出された秘密鍵およびステップＳ１１０６において取得された乱数ｎ４を多重化した多重化データを生成する（ステップＳ１１０７）。
【０１２６】
そして、分散符号化部５０４によって、ステップＳ１１０７において生成された多重化データの分散符号化をおこなうことによりシェアｄ７、ｄ８を生成し（ステップＳ１１０８）、生成されたシェアｄ７、ｄ８のうちシェアｄ７をトークンデバイス１０４に出力するとともにシェアｄ８を端末装置１０２におけるＨＤ２０５に書き込んで（ステップＳ１１０９）、一連の処理を終了する。
【０１２７】
図示を省略するが、上記ステップＳ１００９においてトークンデバイス１０４に出力されたシェアｄ７は、トークンデバイス１０４が備えるＣＰＵによって制御されてトークンデバイス１０４が備えるメモリに書き込まれる。トークンデバイス１０４に書き込まれたシェアｄ７は、端末装置１０２などを用いて所定の操作をおこなうまでの間記録されつづける。
【０１２８】
一方、ステップＳ１１０２において、トークンデバイス１０４が装着されていない場合（ステップＳ１１０２：Ｎｏ）には、ステップＳ１１０１においてＳｅｔコマンドがあった時点から所定時間が経過したか否かを判断する（ステップＳ１１１０）。そして、所定時間が経過していない場合（ステップＳ１１１０：Ｎｏ）にはステップＳ１１０２へ戻る。
【０１２９】
ステップＳ１１１０において、所定時間が経過した場合（ステップＳ１１１０：Ｙｅｓ）には、たとえばディスプレイ２０８に所定のエラーメッセージを表示するなどのエラー処理をおこなって（ステップＳ１１１１）、一連の処理を終了する。
【０１３０】
上述したように、本実施の形態によれば、公開鍵暗号方式により認証をおこなう端末装置１０２において、乱数を生成し、トークンデバイス１０４からの秘密鍵と生成された乱数とを多重化し、得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データをトークンデバイス１０４に出力するとともに、残余の分散符号化データを前記トークンデバイス以外の他のデバイスに書き込むことにより、各々単体では意味をもたない分散符号化データを、トークンデバイス１０４およびＨＤ２０５に分散して記録することができる。
【０１３１】
これによって、トークンデバイス１０４に記録されたデータの読み出しに際してトークンデバイス１０４と端末装置１０２とを接続する通信回線上を生の秘密鍵が流れることがないので、トークンデバイス１０４に記録されたデータが複写（スキミング）された場合にも、秘密鍵の漏洩を防止することができる。
【０１３２】
また、本実施の形態によれば、トークンデバイス１０４に出力されたシェアｄ１あるいはｄ３と端末装置１０２におけるＨＤ２０５に記録されたシェアｄ２あるいは端末装置１０２に着脱自在なＦＤ２０７に記録されたシェアｄ６とを読み込んで多重化データに復号し、復号された多重化データから秘密鍵を抽出し、抽出された秘密鍵を用いて認証をおこなうことにより、トークンデバイス１０４と端末装置１０２におけるＨＤ２０５あるいはＦＤ２０７とを１対１に対応付け、トークンデバイス１０４に記録された一部の分散符号化データと他のデバイスに記録された残余の分散符号化データとの双方が揃った場合に限って秘密鍵を抽出することができる。
【０１３３】
これによって、たとえばトークンデバイス１０４が盗難された場合にも盗難されたトークンデバイス１０４のみでは認証をおこなうことができないため、トークンデバイス１０４に記録された情報を用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、データベース１０３への不正なアクセスを防止することができる。
【０１３４】
また、本実施の形態によれば、秘密鍵が抽出された場合、乱数をあらたに生成し、抽出された秘密鍵とあらたに生成された乱数とを多重化し、あらたに得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データをトークンデバイス１０４に出力するとともに、残余の分散符号化データを前記他のデバイスに書き込むことにより、毎回異なる分散符号化データを用いて秘密鍵の抽出をおこなうことができる。
【０１３５】
これによって、たとえばトークンデバイス１０４に記録された情報の読み出しに際してトークンデバイス１０４に記録された分散符号化データが複写（スキミング）された場合にも、当該分散符号化データを利用可能な期間を短くすることができ、トークンデバイス１０４に記録された情報を用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、データベース１０３への不正なアクセスを効果的に防止することができる。
【０１３６】
また、本実施の形態によれば、シェアｄ２、ｄ４、ｄ８を、端末装置１０２内部のデバイスである端末装置１０２におけるＨＤ２０５に記録することにより、トークンデバイス１０４と端末装置１０２とを１対１に対応付けることができる。
【０１３７】
これによって、トークンデバイス１０４に対して１対１に対応付けられた端末装置１０２を用いた場合に限って認証をおこなうことが可能になり、トークンデバイス１０４に記録された情報を用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、トークンデバイス１０４に記録された情報を用いた認証によりアクセス可能となるデータベースへの不正なアクセスを効果的に防止することができる。
【０１３８】
また、本実施の形態によれば、端末装置１０２外部のデバイスである端末装置１０２に着脱自在な端末装置１０２におけるＦＤ２０７にシェアｄ６を記録することにより、トークンデバイス１０４と端末装置１０２におけるＦＤ２０７とを１対１に対応付けることができる。
【０１３９】
これによって、１対１に対応付けられたトークンデバイス１０４と端末装置１０２におけるＦＤ２０７とが揃った場合に限って認証をおこなうことが可能になり、データベース１０３への不正なアクセスを防止するとともに、トークンデバイス１０４に記録された情報を用いて認証をおこなうことによる利便性の向上を図ることができる。
【０１４０】
また、本実施の形態によれば、分散符号化部５０４が、秘密分散法により分散符号化をおこなってシェアを生成することにより、トークンデバイス１０４、端末装置１０２におけるＨＤ２０５あるいは端末装置１０２におけるＦＤ２０７に記録されたシェアのみを用いての秘密鍵の抽出を防止することができる。これによって、トークンデバイス１０４に記録された情報を用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、データベース１０３への不正なアクセスを効果的に防止することができる。
【０１４１】
以上説明したように、本発明にかかる認証装置、認証方法及び認証プログラムによれば、トークンデバイスに記録された情報を用いて認証をおこなうことによるシステム構築の容易性を低下させることなく、トークンデバイスに記録された情報を用いた認証によりアクセス可能となるデータベースへの不正なアクセスを防止することができるという効果を奏する。
【０１４２】
なお、本実施の形態で説明した認証方法は、あらかじめ用意されたプログラムをパーソナル・コンピュータやワークステーション等のコンピュータで実行することにより実現することができる。このプログラムは、ハードディスク、フレキシブルディスク、ＣＤ−ＲＯＭ、ＭＯ、ＤＶＤ等のコンピュータで読み取り可能な記録媒体に記録され、コンピュータによって記録媒体から読み出されることによって実行される。またこのプログラムは、インターネット等のネットワークを介して配布することが可能な伝送媒体であってもよい。
【０１４３】
また、本実施の形態で説明した端末装置１０２は、スタンダードセルやストラクチャードＡＳＩＣ(Application Specific Integrated Circuit)などの特定用途向けＩＣ（以下、単に「ＡＳＩＣ」と称す。）やＦＰＧＡなどのＰＬＤ(Programmable Logic Device)によっても実現することができる。具体的には、たとえば、上述した端末装置１０２の機能的構成４０１〜４０３および５０１〜５０４をＨＤＬ記述によって機能定義し、そのＨＤＬ記述を論理合成してＡＳＩＣやＰＬＤに与えることにより、端末装置１０２を製造することができる。
【０１４４】
（付記１）公開鍵暗号方式により認証をおこなう認証装置において、
乱数を生成する乱数生成手段と、
トークンデバイスからの秘密鍵と前記乱数生成手段によって生成された乱数とを多重化する多重化手段と、
前記多重化手段によって得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力するとともに、残余の分散符号化データを前記トークンデバイス以外の他のデバイスに書き込む分散符号化手段と、
を備えることを特徴とする認証装置。
【０１４５】
（付記２）前記トークンデバイスに出力された一部の分散符号化データと前記他のデバイスに書き込まれた残余の分散符号化データとを読み込んで、前記多重化データに復号する復号手段と、
前記復号手段によって復号された多重化データから前記秘密鍵を抽出する抽出手段と、
前記抽出手段によって抽出された秘密鍵を用いて認証をおこなう認証手段と、
を備えることを特徴とする付記１に記載の認証装置。
【０１４６】
（付記３）前記乱数生成手段は、
前記抽出手段によって前記秘密鍵が抽出された場合、乱数をあらたに生成し、
前記多重化手段は、
前記抽出手段によって抽出された秘密鍵と前記乱数生成手段によってあらたに生成された乱数とを多重化し、
前記分散符号化手段は、
前記多重化手段によってあらたに得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力するとともに、残余の分散符号化データを前記他のデバイスに書き込むことを特徴とする付記２に記載の認証装置。
【０１４７】
（付記４）前記他のデバイスは、
前記認証装置内部のデバイスであることを特徴とする付記１〜３のいずれか一つに記載の認証装置。
【０１４８】
（付記５）前記他のデバイスは、
前記認証装置外部のデバイスであることを特徴とする付記１〜３のいずれか一つに記載の認証装置。
【０１４９】
（付記６）前記分散符号化手段は、
秘密分散法により前記分散符号化をおこなうことを特徴とする付記１〜５のいずれか一つに記載の認証装置。
【０１５０】
（付記７）公開鍵暗号方式により認証をおこなう認証方法において、
乱数を生成する乱数生成工程と、
トークンデバイスからの秘密鍵と前記乱数生成工程によって生成された乱数とを多重化する多重化工程と、
前記多重化工程によって得られた多重化データの分散符号化をおこない、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力するとともに、残余の分散符号化データを前記トークンデバイス以外の他のデバイスに書き込む分散符号化工程と、
を含んだことを特徴とする認証方法。
【０１５１】
（付記８）公開鍵暗号方式による認証をコンピュータに実行させる認証プログラムにおいて、
乱数を生成させる乱数生成工程と、
トークンデバイスからの秘密鍵と前記乱数生成工程によって生成された乱数とを多重化させる多重化工程と、
前記多重化工程によって得られた多重化データの分散符号化をおこなわせ、当該分散符号化により得られた一部の分散符号化データを前記トークンデバイスに出力させるとともに、残余の分散符号化データを前記トークンデバイス以外の他のデバイスに書き込ませる分散符号化工程と、
を前記コンピュータに実行させることを特徴とする認証プログラム。
【０１５２】
（付記９）付記８に記載の認証プログラムを記録した前記コンピュータに読み取り可能な記録媒体。
【産業上の利用可能性】
【０１５３】
以上のように、本発明にかかる認証装置、認証方法、および認証プログラムは、公開鍵暗号方式により秘密鍵を用いた認証に有用であり、特に、トークンデバイスに記録された秘密鍵を用いた認証に適している。
【図面の簡単な説明】
【０１５４】
【図１】この発明の実施の形態にかかる認証システムのシステム構成図である。
【図２】図１に示したコンピュータ装置のハードウェア構成を示すブロック図である。
【図３】認証システムの概略構成を示すブロック図である。
【図４】鍵管理部を示すブロック図（その１）である。
【図５】鍵管理部を示すブロック図（その２）である。
【図６】鍵管理部を示すブロック図（その３）である。
【図７】鍵管理部を示すブロック図（その４）である。
【図８】端末装置の処理手順（その１）を示すフローチャートである。
【図９】端末装置の処理手順（その２）を示すフローチャートである。
【図１０】端末装置の処理手順（その３）を示すフローチャートである。
【図１１】端末装置の処理手順（その４）を示すフローチャートである。
【符号の説明】
【０１５５】
１０２  端末装置
１０４  トークンデバイス
２０５  ＨＤ
２０７  ＦＤ
３０２  認証部
４０１  乱数生成部
４０２、５０３  多重化部
４０３、５０４  分散符号化部
５０１  分散復号部
【図１】
2008219619.tif 000003
【図２】
2008219619.tif 000004
【図３】
2008219619.tif 000005
【図４】
2008219619.tif 000006
【図５】
2008219619.tif 000007
【図６】
2008219619.tif 000008
【図７】
2008219619.tif 000009
【図８】
2008219619.tif 000010
【図９】
2008219619.tif 000011
【図１０】
2008219619.tif 000012
【図１１】
2008219619.tif 000013