(57)【要約】【課題】暗号処理の機能を有していない記憶媒体に対して、より安全にデータを記憶させておくことができるようにする。【解決手段】フラッシュメモリが内蔵される指紋照合機能付きUFD１（UFD１）には、指紋センサ１１と、リムーバブルメディア２を抜き差し可能なリムーバブルメディアアダプタ１２が設けられる。指紋の照合が成功したとき、UFD１に内蔵されるフラッシュメモリや、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２に対してPCからアクセスすることが可能となる。PCから送信されたデータは、UFD１内で暗号化されてから内部のフラッシュメモリやリムーバブルメディア２に記憶される。内部のフラッシュメモリやリムーバブルメディア２に記憶されているデータは、UFD１内で復号されてからPCに送信される。本発明は、UFDに適用することができる。【選択図】図１
2008084059.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に接続可能な電子機器において、
生体情報を読み取る読み取り手段と、
前記電子機器自身に対して抜き差し可能な記憶媒体が挿入される挿入手段と、
前記読み取り手段により読み取られた前記生体情報に基づいてユーザの認証を行い、認証結果に応じて、前記電子機器が接続される前記情報処理装置による、前記挿入手段に挿入された前記記憶媒体に対するデータの書き込みと、前記挿入手段に挿入された前記記憶媒体に記憶されているデータの読み出しのうちの少なくともいずれかを制御する制御手段と
を備える電子機器。
【請求項２】
暗号鍵と、他の電子機器に記憶されている秘密鍵に対応する公開鍵を記憶する記憶手段と、
前記電子機器が接続される前記情報処理装置から送信されてきた書き込みの対象とするデータを、前記記憶手段により記憶されている前記暗号鍵を用いて暗号化し、前記暗号鍵を、前記記憶手段により記憶されている前記公開鍵を用いて暗号化する暗号処理手段と
をさらに備え、
前記制御手段は、前記暗号処理手段により暗号化された前記データと前記暗号鍵を、前記挿入手段に挿入された前記記憶媒体に記憶させる
請求項１に記載の電子機器。
【請求項３】
前記電子機器が接続される前記情報処理装置から送信されてきた書き込みの対象とするデータを暗号化する前記暗号鍵は、書き込みの対象とするデータが送信されてくる毎に、前記電子機器自身により作成される
請求項２に記載の電子機器。
【請求項４】
前記記憶手段は秘密鍵をさらに記憶し、
前記暗号処理手段は、前記他の電子機器に記憶される暗号鍵を用いて暗号化されたデータと、前記記憶手段により記憶されている前記秘密鍵に対応する公開鍵を用いて暗号化された前記他の電子機器に記憶される前記暗号鍵が、前記挿入手段に挿入された前記記憶媒体に記憶されている場合、前記記憶媒体に記憶されている前記暗号鍵を前記記憶手段により記憶されている前記秘密鍵を用いて復号し、復号して得られた前記暗号鍵を用いて、前記記憶媒体に記憶されている前記データを復号し、
前記制御手段は、前記暗号処理手段により復号された前記データを、前記電子機器が接続される前記情報処理装置に送信する
請求項２に記載の電子機器。
【請求項５】
データを記憶可能な記憶手段をさらに備え、
前記制御手段は、さらに、前記電子機器が接続される前記情報処理装置による、前記記憶手段に対するデータの書き込みと、前記記憶手段に記憶されているデータの読み出しのうちの少なくともいずれかを制御する
請求項１に記載の電子機器。
【請求項６】
暗号鍵を記憶する他の記憶手段と、
前記電子機器が接続される前記情報処理装置から送信されてきた書き込みの対象とするデータを前記他の記憶手段により記憶されている前記暗号鍵を用いて暗号化する暗号処理手段と
をさらに備え、
前記制御手段は、さらに、前記暗号処理手段により暗号化された前記データを前記記憶手段に記憶させる
請求項５に記載の電子機器。
【請求項７】
前記暗号処理手段は、さらに、前記記憶手段により記憶されている前記データを、前記他の記憶手段により記憶されている前記暗号鍵を用いて復号し、
前記制御手段は、前記暗号処理手段により復号された前記データを、前記電子機器が接続される前記情報処理装置に送信する
請求項６に記載の電子機器。
【請求項８】
前記読み取り手段は、前記生体情報として指紋を読み取る
請求項１に記載の電子機器。
【請求項９】
生体情報を読み取る読み取り手段と、電子機器自身に対して抜き差し可能な記憶媒体が挿入される挿入手段とを備え、情報処理装置に接続可能な電子機器の情報処理方法において、
前記読み取り手段により読み取られた前記生体情報に基づいてユーザの認証を行い、認証結果に応じて、前記電子機器が接続される前記情報処理装置による、前記挿入手段に挿入された前記記憶媒体に対するデータの書き込みと、前記挿入手段に挿入された前記記憶媒体に記憶されているデータの読み出しのうちの少なくともいずれかを制御する
ステップを含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、電子機器、および情報処理方法に関し、特に、暗号処理の機能を有していない記憶媒体に対して、より安全にデータを記憶させておくことができるようにした電子機器、および情報処理方法に関する。
【背景技術】
【０００２】
近年、フラッシュメモリの低価格化、大容量化が進んでいることなどから、PC(Personal Computer)によって作成したデータを記憶しておくための機器としてUFD(USB Flash Disk)が普及してきている。ユーザは、自分のPCに設けられているUSB(Universal Serial Bus)端子にUFDを差し込むことによって、UFDを外部の記憶媒体としてPCに認識させ、そこにデータを記憶させておくことができる。
【０００３】
このようなUFDに記憶させておくデータにPC内で暗号化を施しておくことも行われている。これにより、記憶されているデータを復号することができる機器はUFDにデータを記憶させたPCだけといったように制限されるから、ユーザは、UFDをなくしてしまったとしても、UFDに記憶させておいたデータが他人によって見られてしまうのを防ぐことができる。
【０００４】
特許文献１には、多数のアルゴリズムの中から選択された１つのアルゴリズムによってデータを暗号化し、暗号化されたデータをHDD(Hard Disk Drive)に記憶しておく技術が開示されている。特許文献２には、フラッシュメモリの他にワンライトメモリを設け、暗号化された個人情報をそのワンライトメモリに記憶させておくことによって、認証のための個人情報の漏洩を防ぐ技術が開示されている。特許文献３には、コンピュータによって指紋の認証を行い、その認証結果に応じて、メモリユニットへのアクセスを許可／不許可する技術が開示されている。
【特許文献１】特表２００５−５０４３７３号公報
【特許文献２】特開２００３−３４６１２２号公報
【特許文献３】登録実用新案第３１１５０８１号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
UFDに記憶させるデータにPC内で暗号化を施すようにした場合、その暗号化に用いられる鍵は例えばPCのHDDなどに記憶されることになるが、PCに記憶されているデータは、仮に、それが分かりづらい場所に記憶されている場合であっても、悪意のある者によっては容易に見つけ出すことが可能であり、盗まれてしまうという可能性を有している。
【０００６】
また、従来、そのようなデータの暗号化を行う前の本人認証は、ユーザに入力させたパスワードを用いたり、PCに設けられた指紋センサに指をあてさせるなどしてバイオメトリックスを用いたり、リーダライタにかざさせたICカードに記憶されているユーザのIDを用いたり、あるいは、USBキーに記憶されている認証情報を用いたりすることによって行われていたが、いずれも、PC上で行われるものであるために、ユーザに入力させた情報と照合する情報がPCから盗まれる可能性があった。
【０００７】
本発明はこのような状況に鑑みてなされたものであり、例えば暗号処理の機能を有していない記憶媒体に対して、より安全にデータを記憶させておくことができるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の一側面の電子機器は、情報処理装置に接続可能な電子機器において、生体情報を読み取る読み取り手段と、前記電子機器自身に対して抜き差し可能な記憶媒体が挿入される挿入手段と、前記読み取り手段により読み取られた前記生体情報に基づいてユーザの認証を行い、認証結果に応じて、前記電子機器が接続される前記情報処理装置による、前記挿入手段に挿入された前記記憶媒体に対するデータの書き込みと、前記挿入手段に挿入された前記記憶媒体に記憶されているデータの読み出しのうちの少なくともいずれかを制御する制御手段とを備える。
【０００９】
暗号鍵と、他の電子機器に記憶されている秘密鍵に対応する公開鍵を記憶する記憶手段と、前記電子機器が接続される前記情報処理装置から送信されてきた書き込みの対象とするデータを、前記記憶手段により記憶されている前記暗号鍵を用いて暗号化し、前記暗号鍵を、前記記憶手段により記憶されている前記公開鍵を用いて暗号化する暗号処理手段とをさらに設けることができる。この場合、前記制御手段には、前記暗号処理手段により暗号化された前記データと前記暗号鍵を、前記挿入手段に挿入された前記記憶媒体に記憶させることができる。
【００１０】
前記電子機器が接続される前記情報処理装置から送信されてきた書き込みの対象とするデータを暗号化する前記暗号鍵は、書き込みの対象とするデータが送信されてくる毎に、前記電子機器自身により作成されるようにすることができる。
【００１１】
前記記憶手段には秘密鍵をさらに記憶させ、前記暗号処理手段には、前記他の電子機器に記憶される暗号鍵を用いて暗号化されたデータと、前記記憶手段により記憶されている前記秘密鍵に対応する公開鍵を用いて暗号化された前記他の電子機器に記憶される前記暗号鍵が、前記挿入手段に挿入された前記記憶媒体に記憶されている場合、前記記憶媒体に記憶されている前記暗号鍵を前記記憶手段により記憶されている前記秘密鍵を用いて復号させ、復号して得られた前記暗号鍵を用いて、前記記憶媒体に記憶されている前記データを復号させ、前記制御手段には、前記暗号処理手段により復号された前記データを、前記電子機器が接続される前記情報処理装置に送信させることができる。
【００１２】
データを記憶可能な記憶手段をさらに設けることができる。この場合、前記制御手段には、さらに、前記電子機器が接続される前記情報処理装置による、前記記憶手段に対するデータの書き込みと、前記記憶手段に記憶されているデータの読み出しのうちの少なくともいずれかを制御させることができる。
【００１３】
暗号鍵を記憶する他の記憶手段と、前記電子機器が接続される前記情報処理装置から送信されてきた書き込みの対象とするデータを前記他の記憶手段により記憶されている前記暗号鍵を用いて暗号化する暗号処理手段とをさらに設けることができる。この場合、前記制御手段には、さらに、前記暗号処理手段により暗号化された前記データを前記記憶手段に記憶させることができる。
【００１４】
前記暗号処理手段には、さらに、前記記憶手段により記憶されている前記データを、前記他の記憶手段により記憶されている前記暗号鍵を用いて復号させ、前記制御手段には、前記暗号処理手段により復号された前記データを、前記電子機器が接続される前記情報処理装置に送信させることができる。
【００１５】
前記読み取り手段には、前記生体情報として指紋を読み取らせることができる。
【００１６】
本発明の一側面の情報処理方法は、生体情報を読み取る読み取り手段と、電子機器自身に対して抜き差し可能な記憶媒体が挿入される挿入手段とを備え、情報処理装置に接続可能な電子機器の情報処理方法において、前記読み取り手段により読み取られた前記生体情報に基づいてユーザの認証を行い、認証結果に応じて、前記電子機器が接続される前記情報処理装置による、前記挿入手段に挿入された前記記憶媒体に対するデータの書き込みと、前記挿入手段に挿入された前記記憶媒体に記憶されているデータの読み出しのうちの少なくともいずれかを制御するステップを含む。
【００１７】
本発明の一側面においては、生体情報に基づいてユーザの認証が行われ、認証結果に応じて、電子機器が接続される情報処理装置による、挿入手段に挿入された記憶媒体に対するデータの書き込みと、挿入手段に挿入された記憶媒体に記憶されているデータの読み出しのうちの少なくともいずれかが制御される。
【発明の効果】
【００１８】
本発明の一側面によれば、例えば暗号処理の機能を有していない記憶媒体に対して、より安全にデータを記憶させておくことができる。
【発明を実施するための最良の形態】
【００１９】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。従って、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が発明に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外には対応しないものであることを意味するものでもない。
【００２０】
本発明の一側面の電子機器（例えば、図１の指紋照合機能付きUFD１）は、情報処理装置に接続可能な電子機器において、生体情報を読み取る読み取り手段（例えば、図１の指紋センサ１１）と、前記電子機器自身に対して抜き差し可能な記憶媒体が挿入される挿入手段（例えば、図１のリムーバブルメディアアダプタ１２）と、前記読み取り手段により読み取られた前記生体情報に基づいてユーザの認証を行い、認証結果に応じて、前記電子機器が接続される前記情報処理装置による、前記挿入手段に挿入された前記記憶媒体に対するデータの書き込みと、前記挿入手段に挿入された前記記憶媒体に記憶されているデータの読み出しのうちの少なくともいずれかを制御する制御手段（例えば、図２のリムーバブルメディアコントローラ３２）とを備える。
【００２１】
この電子機器には、暗号鍵と、他の電子機器に記憶されている秘密鍵に対応する公開鍵を記憶する記憶手段（例えば、図２のEEPROM３５）と、前記電子機器が接続される前記情報処理装置から送信されてきた書き込みの対象とするデータを、前記記憶手段により記憶されている前記暗号鍵を用いて暗号化し、前記暗号鍵を、前記記憶手段により記憶されている前記公開鍵を用いて暗号化する暗号処理手段（例えば、図２の暗号エンジン３４）とをさらに設けることができる。
【００２２】
また、データを記憶可能な記憶手段（例えば、図２のフラッシュメモリ２２）をさらに設けることができる。
【００２３】
暗号鍵を記憶する他の記憶手段（例えば、図２のEEPROM３５）と、前記電子機器が接続される前記情報処理装置から送信されてきた書き込みの対象とするデータを前記他の記憶手段により記憶されている前記暗号鍵を用いて暗号化する暗号処理手段（例えば、図２の暗号エンジン３４）とをさらに設けることもできる。
【００２４】
本発明の一側面の情報処理方法は、生体情報を読み取る読み取り手段と、電子機器自身に対して抜き差し可能な記憶媒体が挿入される挿入手段とを備え、情報処理装置に接続可能な電子機器の情報処理方法において、前記読み取り手段により読み取られた前記生体情報に基づいてユーザの認証を行い、認証結果に応じて、前記電子機器が接続される前記情報処理装置による、前記挿入手段に挿入された前記記憶媒体に対するデータの書き込みと、前記挿入手段に挿入された前記記憶媒体に記憶されているデータの読み出しのうちの少なくともいずれかを制御するステップ（例えば、図５のステップＳ１５）を含む。
【００２５】
以下、本発明の実施の形態について図を参照して説明する。
【００２６】
図１は、本発明の一実施形態に係る指紋照合機能付きUFD(USB Flash Disk)１の外観の例を示す図である。
【００２７】
指紋照合機能付きUFD１（以下、単にUFD１という）は箱形の筐体からなり、筐体の側面に設けられるUSB端子１Ａが差し込まれることによって、USB端子が設けられるPCなどに接続される。
【００２８】
UFD１にはフラッシュメモリが内蔵されており、ユーザは、UFD１をPCに差し込み、UFD１を外部の記憶媒体としてPCに認識させることによって、PCを用いて作成した各種のデータをUFD１に記憶させておくことができる。
【００２９】
UFD１の筐体表面には指紋センサ１１が露出して設けられている。ユーザは、UFD１をPCの外部の記憶媒体として用いるとき、UFD１をPCに差し込んだ状態で１本の指の腹を指紋センサ１１にあて、指紋の照合を行わせる必要がある。指紋センサ１１により読み取られたユーザの指紋のデータは、ユーザによってあらかじめ登録され、UFD１内に記憶されている指紋のデータとUFD１によって照合され、それらが一致したとき、UFD１に対してPCからデータを記憶させたり、UFD１に記憶されているデータをPCから読み出したりすることが可能となる。
【００３０】
また、UFD１の筐体には、リムーバブルメディア２を抜き差し可能なスロットや、リムーバブルメディア２との電気的な接続を実現する端子などから構成されるリムーバブルメディアアダプタ１２が設けられている。ユーザは、メモリスティック（商標）、SDカード（商標）、CF（商標）などの、フラッシュメモリが内蔵されたリムーバブルメディア２をPCに接続されたUFD１のリムーバブルメディアアダプタ１２に挿入することによって、リムーバブルメディア２に対してPCからデータを記憶させたり、リムーバブルメディア２に記憶されているデータをPCから読み出したりすることも可能となる。
【００３１】
すなわち、UFD１は、指紋認証機能、外部の記憶媒体としての機能の他に、それ自身に挿入されたリムーバブルメディア２に記憶されているデータの読み書きを行ういわゆるカードリーダとしての機能も有している。
【００３２】
後に詳述するように、UFD１にはPKI(Public Key Infrastructure)を実現するために用いられる秘密鍵や公開鍵、または、データの暗号化、復号に用いられる暗号鍵などが記憶されており、ハードウェアトークンとしての機能も有している。
【００３３】
書き込みの対象としてPCから送信されてきたデータは、常に、UFD１内で暗号化されてから、内部のフラッシュメモリや、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２に記憶される。また、データの読み出しを指示する読み出しコマンドがPCから送信されてきたとき、内部のフラッシュメモリや、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２に暗号化された状態で記憶されているデータは、UFD１内で復号されてからPCに送信される。
【００３４】
データを暗号化したり、暗号化されているデータを復号する機能がリムーバブルメディア２自身に用意されていない場合であっても、そのようなリムーバブルメディア２をUFD１のリムーバブルメディアアダプタ１２に挿入して利用することによって、ユーザは、PCから、データを暗号化した状態でリムーバブルメディア２に記憶させておいたり、そのような状態で記憶されているデータをPCから読み出すことが可能になる。
【００３５】
暗号化した状態で記憶させておきたいデータが大量にあり、UFD１に内蔵されているフラッシュメモリの容量では足りない場合であっても、リムーバブルメディア２を複数、リムーバブルメディアアダプタ１２に差し替えたりして使うことによって、大量にあるデータを全て暗号化した状態で記憶させておくことが可能になる。
【００３６】
また、データの暗号化、暗号化されているデータの復号に用いられる鍵データはUFD１により管理されるから、PCなどに管理させておく場合に較べて、鍵データが漏洩してしまうリスクを抑えることができる。
【００３７】
図２は、UFD１のハードウエア構成例を示すブロック図である。図１に示される構成と同じ構成には同じ符号を付してある。
【００３８】
図２に示されるように、UFD１は、基本的に、コントローラLSI(Large Scale Integrated Circuit)２１に対して指紋センサ１１、リムーバブルメディアアダプタ１２、フラッシュメモリ２２、水晶発振子２３が接続されることによって構成される。
【００３９】
コントローラLSI２１は、USB I/F(Interface)３１、リムーバブルメディアコントローラ３２、CPU(Central Processing Unit)３３、暗号エンジン３４、EEPROM(Electrically Erasable and Programmable Read Only Memory)３５、プログラム用RAM/ROM(Random Access Memory/Read Only Memory)３６、指紋照合エンジン３７、PLL(Phase Lock Loop)３８、およびフラッシュメモリI/F３９がバス４０を介して接続されることによって構成される。
【００４０】
USB I/F３１は、UFD１が接続される外部の情報処理装置であるホストPC３とUSB規格に従って通信を行う。USB I/F３１は、ホストPC３から送信されてきたデータを受信し、受信したデータをバス４０に出力する。バス４０に出力されたデータは、例えば、暗号エンジン３４により暗号化された後、フラッシュメモリI/F３９に供給され、フラッシュメモリ２２に記憶される。
【００４１】
また、USB I/F３１は、フラッシュメモリ２２からフラッシュメモリI/F３９により読み出され、暗号エンジン３４により復号されたデータがバス４０を介して供給されたとき、それをホストPC３に送信する。
【００４２】
リムーバブルメディアコントローラ３２は、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２に対するデータの書き込み、またはリムーバブルメディア２に記憶されているデータの読み出しを制御する。
【００４３】
リムーバブルメディアコントローラ３２は、暗号エンジン３４により暗号化され、バス４０を介して供給されたデータをリムーバブルメディア２に記憶させる。また、リムーバブルメディアコントローラ３２は、暗号化された状態でリムーバブルメディア２に記憶されているデータを読み出し、読み出したデータをバス４０を介して暗号エンジン３４に出力する。
【００４４】
CPU３３は、プログラム用RAM/ROM３６に記憶されているプログラムを実行し、UFD１の全体の動作を制御する。
【００４５】
例えば、CPU３３は、ホストPC３による、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２に対するアクセス、フラッシュメモリ２２に対するアクセスを制御し、指紋による認証が成功したことが指紋照合エンジン３７から通知されたとき、それらのアクセスを許可する。
【００４６】
暗号エンジン３４は、ホストPC３から送信された書き込みの対象とするデータがバス４０を介して供給されたとき、そのデータをEEPROM３５に記憶されている暗号鍵を用いて暗号化し、暗号化して得られたデータを、ホストPC３により指定された書き込み先に応じて、リムーバブルメディアコントローラ３２またはフラッシュメモリI/F３９に出力する。
【００４７】
また、暗号エンジン３４は、フラッシュメモリ２２に記憶されているデータがフラッシュメモリI/F３９により読み出され、読み出されたデータが供給されたとき、供給されたデータに施されている暗号をEEPROM３５に記憶されている暗号鍵を用いて復号し、復号して得られたデータをUSB I/F３１に出力して、ホストPC３に送信させる。
【００４８】
暗号エンジン３４は、リムーバブルメディア２に記憶されているデータがリムーバブルメディアコントローラ３２により読み出され、読み出されたデータが供給されたとき、供給されたデータに施されている暗号を復号するのに用いられる暗号鍵を、EEPROM３５に記憶されている秘密鍵を用いて復号し、復号して得られた暗号鍵を用いて復号したデータをUSB I/F３１に出力して、ホストPC３に送信させる。後述するように、リムーバブルメディア２にデータを書き込む時にそのデータの暗号化に用いられた暗号鍵は、EEPROM３５に記憶されている秘密鍵に対応する公開鍵によって暗号化されている。
【００４９】
EEPROM３５は、図３に示されるように、秘密鍵、公開鍵、暗号鍵、および指紋テンプレートを記憶する。
【００５０】
秘密鍵、公開鍵、暗号鍵は暗号エンジン３４により適宜読み出され、データの暗号化、または復号に用いられる。
【００５１】
秘密鍵は、これに対応する公開鍵により暗号化されたデータを復号するのに用いられる。この秘密鍵に対応する公開鍵は、例えば、UFD１と同様の構成を有する他のUFDに記憶されている。
【００５２】
公開鍵は、暗号化されたデータをリムーバブルメディア２に記憶させるとき、その暗号化に用いられた暗号鍵を暗号化するのに用いられる。この公開鍵に対応する秘密鍵は、例えば、UFD１と同様の構成を有する他のUFDに記憶されている。
【００５３】
暗号鍵は、RSA、AES(Advanced Encryption Standard)、DES(Data Encryption Standard)などの鍵データであり、記憶させておくデータの暗号化、暗号化された状態で記憶されているデータの復号に用いられる。
【００５４】
例えば、暗号鍵は、ユーザにより指紋の登録が行われたとき、登録された指紋のデータの一部と、EEPROM３５にあらかじめ記憶されているデータとを用いて生成され、EEPROM３５に記憶される。暗号鍵は、書き込みの対象とするデータがホストPC３から送信されてくる毎に新たに生成され、EEPROM３５に記憶されるようにしてもよい。
【００５５】
後に詳述するように、EEPROM３５に記憶されている秘密鍵と公開鍵は、UFD１と同様の構成を有するUFDを使うユーザとの間で、リムーバブルメディア２を介してデータをやりとりするときに用いられる。UFD１のユーザをユーザＡ、UFD１と同様の構成を有する他のUFDのユーザをユーザＢとし、ユーザＡとユーザＢの間でデータをやりとりするものとすると、ユーザＡが有するUFD１のEEPROM３５には、ユーザＡの秘密鍵と、ユーザＢの秘密鍵に対応する公開鍵（ユーザＢが公開する公開鍵）が少なくとも記憶され、ユーザＢが有するUFDのEEPROMには、ユーザＢの秘密鍵と、ユーザＡの秘密鍵に対応する公開鍵（ユーザＡが公開する公開鍵）が少なくとも記憶される。
【００５６】
UFD１のEEPROM３５に記憶されているユーザＡの秘密鍵は、ユーザＢによってリムーバブルメディア２に記憶されたデータをユーザＡがホストPC３から読み出させるとき、暗号化されたデータとともにリムーバブルメディア２に記憶されている、ユーザＡの公開鍵を用いてユーザＢのUFDによって暗号化された暗号鍵を復号するのに用いられる。
【００５７】
また、UFD１のEEPROM３５に記憶されているユーザＢの公開鍵は、ユーザＢに提供するデータをユーザＡがホストPC３からリムーバブルメディア２に記憶させるとき、暗号化されたデータとともにリムーバブルメディア２に記憶させる暗号鍵を暗号化するのに用いられる。
【００５８】
一方、ユーザＢが有するUFDのEEPROMに記憶されているユーザＢの秘密鍵は、ユーザＡによってリムーバブルメディア２に記憶されたデータをユーザＢが自分のPCから読み出すとき、暗号化されたデータとともにリムーバブルメディア２に記憶されている、ユーザＢの公開鍵を用いてユーザＡのUFD１によって暗号化された暗号鍵を復号するのに用いられる。
【００５９】
また、ユーザＢが有するUFDのEEPROMに記憶されているユーザＡの公開鍵は、ユーザＡに提供するデータをユーザＢが自分のPCからリムーバブルメディア２に記憶させるとき、暗号化されたデータとともにリムーバブルメディア２に記憶させる暗号鍵を暗号化するのに用いられる。
【００６０】
図３の指紋テンプレートは指紋の特徴を表すデータであり、指紋照合エンジン３７に供給され、指紋センサ１１により読み取られた指紋の照合に用いられる。指紋テンプレートは、指紋の登録時に指紋照合エンジン３７により取得され、EEPROM３５に記憶される。
【００６１】
このように、１チップ化されたコントローラLSI２１に含まれるEEPROM３５に各種の鍵データや指紋テンプレートが記憶されるから、コントローラLSI２１からみて外部のメモリであるフラッシュメモリ２２などにそれらのデータが記憶される場合に較べて、データの漏洩を防ぐことができる。
【００６２】
図２の説明に戻り、プログラム用RAM/ROM３６は、CPU３３により実行されるプログラムの他、CPU３３が各種の処理を実行する上で必要な各種のデータを記憶する。
【００６３】
指紋照合エンジン３７は、指紋センサ１１から供給されたRF信号に基づいて指紋を読み取り、読み取った指紋の照合を行う。
【００６４】
例えば、指紋照合エンジン３７は、指紋センサ１１に設定された複数の比較的狭い範囲において指紋が読み取られることによって出力されるRF信号の信号レベルの積算値が閾値を超えたとき、指紋センサ１１に指が置かれたと判断し、指紋の読み取りを開始する。
【００６５】
また、指紋照合エンジン３７は、指紋センサ１１からの出力に基づいて読み取った指紋を照合対象の指紋とし、EEPROM３５に記憶されている指紋テンプレートにより表される特徴の照合を行う。指紋照合エンジン３７は、照合対象の指紋と、EEPROM３５に記憶されている指紋テンプレートにより表される特徴が一致する場合、指紋センサ１１に指を置いたユーザが正当なユーザであると判定し、指紋による認証が成功したことをCPU３３に通知する。
【００６６】
PLL３８は、水晶発振子２３から供給されたクロックに基づいてコントローラLSI２１内の各部が動作するのに必要なクロックを生成し、生成したクロックを各部に供給する。
【００６７】
フラッシュメモリI/F３９は、データストレージ用の内蔵のメモリであるフラッシュメモリ２２に対するデータの書き込み、またはフラッシュメモリ２２に記憶されているデータの読み出しを制御する。
【００６８】
フラッシュメモリI/F３９は、暗号エンジン３４により暗号化され、バス４０を介して供給されたデータをフラッシュメモリ２２に記憶させる。また、フラッシュメモリI/F３９は、暗号化された状態でフラッシュメモリ２２に記憶されているデータを読み出し、読み出したデータをバス４０を介して暗号エンジン３４に出力する。
【００６９】
ここで、以上のような構成を有するUFD１の処理について説明する。いずれの処理も、UFD１がホストPC３に接続されている状態で行われる。
【００７０】
はじめに、図４のフローチャートを参照して、指紋を登録するUFD１の処理について説明する。
【００７１】
この処理は、UFD１が接続されるホストPC３を操作するなどして、指紋の登録を行うことがユーザにより指示されたときに開始される。ユーザによる指示が行われたとき、指紋の登録を開始することを指示するコマンドがホストPC３からUFD１に送信される。
【００７２】
ステップＳ１において、指紋照合エンジン３７は、指紋センサ１１に指が置かれたか否かを判定し、指が置かれたと判定するまで待機する。
【００７３】
指紋照合エンジン３７は、ステップＳ１において、例えば、指紋センサ１１に設定された複数の比較的狭い範囲において物体が検出されることによって出力されるRF信号の信号レベルの積算値が閾値を超えたことから、指が置かれたと判定した場合、ステップＳ２に進む。
【００７４】
ステップＳ２において、指紋照合エンジン３７は、指紋を読み取ることによって得られたRF信号が指紋読み取りデータとして指紋センサ１１から供給されたとき、それを取り込む。
【００７５】
ステップＳ３において、指紋照合エンジン３７は、指紋センサ１１により読み取られた指紋の特徴を表すデータを指紋テンプレートとして取り出す。
【００７６】
ステップＳ４において、指紋照合エンジン３７は、取り出した指紋テンプレートをEEPROM３５に記憶させることによって指紋の登録を行い、処理を終了させる。
【００７７】
なお、指紋テンプレートは、EEPROM３５に記憶されている暗号鍵を用いて暗号エンジン３４により暗号化された後、フラッシュメモリ２２に記憶されるようにしてもよい。例えば、空いている記憶領域がEEPROM３５にない場合、指紋のテンプレートはEEPROM３５ではなくフラッシュメモリ２２に暗号化された状態で記憶される。
【００７８】
次に、図５のフローチャートを参照して、指紋の認証を行うUFD１の処理について説明する。
【００７９】
ステップＳ１１において、指紋照合エンジン３７は、指紋センサ１１に指が置かれたか否かを判定し、指が置かれたと判定するまで待機する。
【００８０】
例えば、ホストPC３を用いて作成したデータを、リムーバブルメディアアダプタ１２に挿入したリムーバブルメディア２やUFD１が内蔵するフラッシュメモリ２２に記憶させようとするとき、または、リムーバブルメディアアダプタ１２に挿入したリムーバブルメディア２やUFD１が内蔵するフラッシュメモリ２２に記憶されているデータを、ホストPC３に読み出させようとするとき、ユーザは、指紋センサ１１に指を置き、認証を行わせる。
【００８１】
指紋照合エンジン３７は、ステップＳ１１において、指が置かれたと判定した場合、ステップＳ１２に進み、指紋センサ１１から供給された指紋読み取りデータを取り込む。
【００８２】
ステップＳ１３において、指紋照合エンジン３７は、指紋読み取りデータによって表される指紋を照合対象の指紋とし、EEPROM３５に記憶されている指紋テンプレートにより表される特徴の照合を行う。
【００８３】
なお、指紋テンプレートがフラッシュメモリ２２に記憶されている場合、指紋照合エンジン３７は、EEPROM３５に記憶されている暗号鍵を用いて暗号エンジン３４により復号された指紋テンプレートを用いて照合を行う。
【００８４】
ステップＳ１４において、指紋照合エンジン３７は、ステップＳ１３の処理の結果を判定し、照合対象の指紋から抽出した特徴と、指紋テンプレートにより表される特徴が一致しないことから認証が失敗したと判定した場合、処理を終了させる。この場合、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２や、フラッシュメモリ２２に対してホストPC３からアクセスすることは禁止される。
【００８５】
一方、ステップＳ１４において、指紋照合エンジン３７は、照合対象の指紋から抽出した特徴と、指紋テンプレートにより表される特徴が一致することから認証が成功したと判定した場合、そのことをCPU３３に通知する。
【００８６】
ステップＳ１５において、CPU３３は、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２や、フラッシュメモリ２２に対してアクセスすることをホストPC３に許可し、ホストPC３からのアクセスを受け付ける処理を行う。
【００８７】
ここでは、ホストPC３から供給されたデータをリムーバブルメディア２やフラッシュメモリ２２に記憶させる、データの書き込みを受け付ける処理、リムーバブルメディア２やフラッシュメモリ２２に記憶されたデータをホストPC３に送信する、データの読み出しを受け付ける処理がUFD１により行われる。
【００８８】
次に、図６のフローチャートを参照して、図５のステップＳ１５において行われる、データの書き込みを受け付けるUFD１の処理について説明する。
【００８９】
ステップＳ２１において、暗号エンジン３４は、書き込みの対象とするデータを受信する。ホストPC３から送信されてきた書き込みの対象とするデータは、USB I/F３１により受信され、バス４０を介して暗号エンジン３４に供給される。CPU３３に対しては、データの書き込み先を、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２とするのか、UFD１の内蔵のメモリであるフラッシュメモリ２２とするのかを指定する情報などを含むコマンドが供給される。
【００９０】
ステップＳ２２において、暗号エンジン３４は、EEPROM３５から暗号鍵を読み出し、読み出した暗号鍵を用いて、ホストPC３から送信されてきたデータを暗号化する。
【００９１】
ステップＳ２３において、CPU３３は、ホストPC３から送信されてきたコマンドに基づいて、書き込み先（アクセス先）がUFD１の内蔵のメモリであるフラッシュメモリ２２であるか否かを判定し、フラッシュメモリ２２であると判定した場合、ステップＳ２４に進む。このとき、暗号化されたデータは、暗号エンジン３４からフラッシュメモリI/F３９に供給される。
【００９２】
ステップＳ２４において、フラッシュメモリI/F３９は、暗号エンジン３４により暗号化されたデータをフラッシュメモリ２２に記憶させ、図５の処理に戻る。これにより、書き込みの対象としてホストPC３から送信されてきたデータは、UFD１の内蔵のメモリであるフラッシュメモリ２２に暗号化された状態で記憶される。
【００９３】
一方、ステップＳ２３において、CPU３３は、書き込み先がUFD１の内蔵のメモリであるフラッシュメモリ２２ではなく、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２であると判定した場合、ステップＳ２５に進む。
【００９４】
ステップＳ２５において、暗号エンジン３４は、データの暗号化に用いた暗号鍵を、EEPROM３５に記憶されている、リムーバブルメディア２の利用者が公開する公開鍵を用いて暗号化する。
【００９５】
データの書き込み先がリムーバブルメディア２である場合、ホストPC３からCPU３３に対して送信されたコマンドには、リムーバブルメディア２の利用者を指定する情報も含まれている。すなわち、データをリムーバブルメディア２に記憶させるとき、ユーザは、そのデータを見ることを許可するユーザ（PCを用いてリムーバブルメディア２からデータを読み出すことを許可するユーザ）をリムーバブルメディア２の利用者として指定することができるようになされている。
【００９６】
リムーバブルメディア２の利用者が公開する公開鍵は、所定の方法によりUFD１のEEPROM３５に記憶されている。例えば、その利用者が利用するPCにUFD１が接続されたとき、PCからUFD１のEEPROM３５に公開鍵が書き込まれ、図３に示されるように秘密鍵などとともに記憶される。
【００９７】
ユーザはリムーバブルメディア２の利用者を複数指定することができ、この場合、データの暗号化に用いられた暗号鍵は、リムーバブルメディア２の利用者として指定されたそれぞれのユーザが公開する公開鍵を用いて暗号化される。リムーバブルメディア２の利用者としては、本人だけでなく、知人、同僚、家族などが指定される。
【００９８】
リムーバブルメディア２の利用者が公開する公開鍵を用いて暗号化された暗号鍵と、その暗号化に用いられた公開鍵は、ステップＳ２２で暗号化された書き込みの対象のデータとともに暗号エンジン３４からリムーバブルメディアコントローラ３２に供給される。
【００９９】
ステップＳ２６において、リムーバブルメディアコントローラ３２は、暗号化された暗号鍵と、その暗号化に用いられた公開鍵のペアを、暗号化された書き込みの対象のデータとともに、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２に記憶させ、図５の処理に戻る。
【０１００】
UFD１のユーザがユーザＡであり、そのユーザＡが、リムーバブルメディア２の利用者としてユーザＡ自身を指定して、ホストPC３からリムーバブルメディア２にデータを記憶させた場合、以上の処理が行われることにより、リムーバブルメディア２には、暗号鍵を用いて暗号化されたデータとともに、ユーザＡが使うUFD１のEEPROM３５に記憶されている秘密鍵に対応するユーザＡが公開する公開鍵と、その公開鍵によって暗号化された暗号鍵のペアが記憶される。
【０１０１】
リムーバブルメディア２に記憶されているデータは、後述する処理によって、リムーバブルメディア２が挿入されたUFD１がホストPC３に接続されているとき、そのホストPC３だけが読み出すことが可能、すなわち、利用者として指定されたホストPC３のユーザであるユーザＡだけが見ることが可能になる。
【０１０２】
また、ユーザＡが、リムーバブルメディア２の利用者としてユーザＢを指定して、ホストPC３からリムーバブルメディア２にデータを記憶させた場合、以上の処理が行われることにより、リムーバブルメディア２には、暗号鍵を用いて暗号化されたデータとともに、ユーザＢが使うUFDのEEPROMに記憶されている秘密鍵に対応するユーザＢが公開する公開鍵と、その公開鍵によって暗号化された暗号鍵のペアが記憶される。ユーザＢが使うUFDのEEPROMに記憶されている秘密鍵に対応する公開鍵は、UFD１のEEPROM３５に所定のタイミングで記憶されている。
【０１０３】
リムーバブルメディア２に記憶されているデータは、後述する処理によって、ユーザＢが使うUFDにリムーバブルメディア２が挿入され、そのUFDがPCに接続されているとき、そのPCだけが読み出すことが可能、すなわち、利用者として指定されたユーザＢだけが見ることが可能になる。
【０１０４】
図７は、フラッシュメモリ２２に記憶されたデータの例を示す図である。
【０１０５】
図７に示されるように、フラッシュメモリ２２の記憶領域全体は領域Ａ1と領域Ａ2に分けられる。
【０１０６】
領域Ａ1には、EEPROM３５に記憶されている暗号鍵を用いて暗号化された指紋テンプレートが記憶される。この領域Ａ1は、指紋による認証が成功した後であっても、領域Ａ1に記憶されているデータに関する情報はUFD１からホストPC３に通知されず、ホストPC３からはアクセスすることができない領域とされる。
【０１０７】
一方、領域Ａ2には、EEPROM３５に記憶されている暗号鍵を用いて暗号化されたデータが記憶される。図６のステップＳ２４においてデータの書き込み先となるフラッシュメモリ２２の領域は、この領域Ａ2となる。指紋による認証が成功した後、領域Ａ2はホストPC３からアクセス可能な領域となり、ホストPC３からデータを記憶させたり、そこに記憶されているデータをホストPC３が読み出したりすることが可能となる。
【０１０８】
領域Ａ2にデータを記憶させるときのデータの暗号化、領域Ａ2に暗号化された状態で記憶されているデータを読み出すときのデータの復号は、ホストPC３から送信されてくるコマンドに応じてUFD１内で自動的に行われるから、データの読み書きに際して、ホストPC３が暗号処理を意識する必要はない。
【０１０９】
図８は、リムーバブルメディア２（リムーバブルメディア２に内蔵されるフラッシュメモリ）に記憶されたデータの例を示す図である。
【０１１０】
図８に示されるように、リムーバブルメディア２の記憶領域全体は領域Ａ11と領域Ａ12に分けられる。
【０１１１】
領域Ａ11には、リムーバブルメディア２の利用者が公開する公開鍵と、その公開鍵によって暗号化された暗号鍵のペアが、ユーザが指定したリムーバブルメディア２の利用者の数だけ記憶される。公開鍵によって暗号化された暗号鍵は、領域Ａ12に記憶させるデータの暗号化に用いられた鍵である。図６のステップＳ２６において公開鍵と暗号鍵のペアの書き込み先となるリムーバブルメディア２の領域は、この領域Ａ11となる。
【０１１２】
図８において、公開鍵Aeは、ユーザＡが有するUFDに記憶されている秘密鍵に対応する、ユーザＡが公開する公開鍵を表し、データ（Ｋ）Aeは、公開鍵Aeによって暗号化された暗号鍵Ｋを表す。同様に、公開鍵Neは、ユーザＮが有するUFDに記憶されている秘密鍵に対応する、ユーザＮが公開する公開鍵を表し、データ（Ｋ）Neは、公開鍵Neによって暗号化された暗号鍵Ｋを表す。公開鍵Ae，Neは、所定のタイミングでEEPROM３５に記憶されていたものである。
【０１１３】
一方、領域Ａ12には、EEPROM３５に記憶されている暗号鍵を用いて暗号化されたデータが記憶される。図６のステップＳ２６において、暗号化されたデータの書き込み先となるリムーバブルメディア２の領域は、この領域Ａ12となる。指紋による認証が成功した後、領域Ａ12はホストPC３からアクセス可能な領域となり、ホストPC３がデータを記憶させたり、そこに記憶されているデータをホストPC３が読み出したりすることが可能となる。
【０１１４】
次に、図９のフローチャートを参照して、図５のステップＳ１５において行われる、データの読み出しを受け付けるUFD１の処理について説明する。
【０１１５】
ステップＳ３１において、CPU３３は、ホストPC３から送信されてきた読み出しコマンドを受信する。読み出しコマンドには、アクセス先を、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２とするのか、UFD１の内蔵のメモリであるフラッシュメモリ２２とするのかを指定する情報や、読み出しの対象とするデータを指定する情報も含まれている。
【０１１６】
ステップＳ３２において、CPU３３は、ホストPC３から送信されてきたコマンドに基づいて、アクセス先がUFD１の内蔵のメモリであるフラッシュメモリ２２であるか否かを判定し、フラッシュメモリ２２であると判定した場合、ステップＳ３３に進む。
【０１１７】
ステップＳ３３において、暗号エンジン３４は、EEPROM３５に記憶されている暗号鍵を用いて、フラッシュメモリ２２に暗号化された状態で記憶されている、ホストPC３により指定された読み出しの対象とするデータを復号する。暗号エンジン３４は、復号して得られたデータをバス４０、USB I/F３１を介してホストPC３に送信し、図５の処理に戻る。ホストPC３においては、フラッシュメモリ２２に記憶されていたデータに基づいて各種の処理が行われる。
【０１１８】
一方、ステップＳ３２において、CPU３３は、アクセス先がUFD１の内蔵のメモリであるフラッシュメモリ２２ではなく、リムーバブルメディアアダプタ１２に挿入されたリムーバブルメディア２であると判定した場合、ステップＳ３４に進む。
【０１１９】
ステップＳ３４において、暗号エンジン３４は、EEPROM３５に記憶されている秘密鍵を用いて、リムーバブルメディア２に記憶されている暗号鍵を復号する。上述したように、リムーバブルメディア２には、データの暗号化に用いられた暗号鍵を、EEPROM３５に記憶されている秘密鍵に対応する公開鍵を用いて暗号化したデータが記憶されている。
【０１２０】
ステップＳ３５において、暗号エンジン３４は、ステップＳ３４で得られた暗号鍵を用いて、リムーバブルメディア２に暗号化された状態で記憶されている、ホストPC３により指定された読み出しの対象とするデータを復号する。暗号エンジン３４は、復号して得られたデータをバス４０、USB I/F３１を介してホストPC３に送信し、処理を終了させる。ホストPC３においては、リムーバブルメディア２に記憶されていたデータに基づいて各種の処理が行われる。
【０１２１】
UFD１のユーザがユーザＡであり、そのユーザＡが、リムーバブルメディア２の利用者としてユーザＡ自身を指定して、ホストPC３からリムーバブルメディア２にデータを記憶させていた場合、以上の処理が行われることにより、リムーバブルメディア２に暗号化された状態で記憶されている暗号鍵が、ユーザＡが使うUFD１のEEPROM３５に記憶されている秘密鍵を用いて復号され、復号された暗号鍵を用いて、読み出しの対象となるデータが復号される。
【０１２２】
また、ユーザＡが、リムーバブルメディア２の利用者としてユーザＢを指定してホストPC３からリムーバブルメディア２にデータを記憶させていた場合、ユーザＢが使うUFDにおいて以上の処理が行われることにより、リムーバブルメディア２に暗号化された状態で記憶されている暗号鍵が、ユーザＢが使うUFDのEEPROMに記憶されている秘密鍵を用いて復号され、復号された暗号鍵を用いて、読み出しの対象となるデータが復号される。
【０１２３】
ここで、図１０のフローチャートを参照して、ユーザＡが、リムーバブルメディア２を用いてユーザＢにデータを渡すときの一連の処理について説明する。
【０１２４】
ここでは、ユーザＡが使うホストPC３をホストPCＡ、ユーザＢが使うホストPC３をホストPCＢとして説明する。また、ユーザＡが自分のホストPCＡのUSB端子に差し込んで使うUFD１をUFDＡ、ユーザＢが自分のホストPCＢのUSB端子に差し込んで使うUFD１をUFDＢとして説明する。基本的に、UFDＡにおいては図６を参照して説明した処理が行われ、UFDＢにおいては図９を参照して説明した処理が行われることになる。
【０１２５】
UFDＡに設けられている指紋センサ１１にユーザＡが指を置いたとき、ステップＳ６１において、UFDＡはユーザＡの認証を行い、認証が成功したとき、UFDＡが接続されるホストPCＡからのアクセスを許可する。
【０１２６】
ステップＳ５１において、ホストPCＡは、書き込みの対象とするデータをUFDＡに送信する。
【０１２７】
ステップＳ６２において、UFDＡは、ホストPCＡから送信されてきたデータを受信し、ステップＳ６３に進み、EEPROM３５に記憶されている暗号鍵を用いて、ホストPCＡから送信されてきたデータを暗号化する。
【０１２８】
ステップＳ６４において、UFDＡは、EEPROM３５に記憶されている、ユーザＢが公開する公開鍵を用いて、データの暗号化に用いた暗号鍵を暗号化し、ステップＳ６５に進み、暗号化されたデータとともに、ユーザＢが公開する公開鍵と、その公開鍵によって暗号化された暗号鍵のペアを、UFDＡのリムーバブルメディアアダプタ１２に挿入されているリムーバブルメディア２に記憶させる。
【０１２９】
例えば、暗号化されたデータなどが記憶されたリムーバブルメディア２は、ユーザＡからユーザＢに渡され、UFDＢのリムーバブルメディアアダプタ１２にユーザＢによって挿入される。
【０１３０】
UFDＢに設けられている指紋センサ１１にユーザＢが指を置いたとき、ステップＳ７１において、UFDＢはユーザＢの認証を行い、認証が成功したとき、UFDＢが接続されるホストPCＢからのアクセスを許可する。
【０１３１】
ステップＳ８１において、ホストPCＢは読み出しの対象とするデータを指定する情報などを含む読み出しコマンドをUFDＢに送信する。
【０１３２】
ステップＳ７２において、UFDＢは、ホストPCＢから送信されてきたコマンドを受信し、ステップＳ７３に進み、UFDＢのEEPROM３５に記憶されている秘密鍵を用いて、リムーバブルメディア２に記憶されている暗号鍵を復号する。この暗号鍵は、ユーザＡが使うUFDＡに記憶されている、ユーザＢが公開する公開鍵により暗号化されている（ステップＳ６４）。
【０１３３】
ステップＳ７４において、UFDＢは、復号して得られた暗号鍵を用いて、リムーバブルメディア２に暗号化された状態で記憶されているデータを復号し、ステップＳ７５において、復号して得られたデータをホストPCＢに送信する。
【０１３４】
ステップＳ８２において、ホストPCＢは、UFDＢから送信されてきたデータを受信する。これにより、ユーザＡがホストPCＡからリムーバブルメディア２に記憶させたデータが、リムーバブルメディア２を介して、ユーザＢが使うホストPCＢに提供される。
【０１３５】
以上のような一連の処理が行われることにより、リムーバブルメディア２に記憶されているデータを、データを記憶させたユーザＡ本人が、本人の装置であるホストPCＡで復号するだけでなく、ユーザＡが指定した、ユーザＢの装置であるホストPCＢにおいても復号することが可能になる。
【０１３６】
例えば、ユーザＡがユーザＢにパスワードを教え、データを記憶させるときに設定したパスワードと同じパスワードが入力されたときにそのデータを読み出すことができるようにすることによっても、ユーザＡが記憶させたデータをユーザＢが復号することができるようにすることもできるが、この場合、パスワードが外部に漏洩したときには誰でも復号することができるようになってしまうのに対し、以上のような処理によればそのようなことを防ぐことができる。
【０１３７】
以上のように、暗号化された状態でリムーバブルメディア２に記憶されているデータは、第１に、データを記憶させた装置と同じ装置（UFD１）において、データを記憶させたユーザの指紋による認証が成功したとき、第２に、データを記憶させた装置とは別の装置ではあるが、同様の構成を有する装置において、データを記憶させたユーザの指紋による認証が成功したとき、第３に、データを記憶させた装置とは別の装置ではあるが、同様の構成を有する装置において、データを記憶させたユーザによって指定されたユーザの指紋による認証が成功したとき、といったように複数の環境で復号することが可能となる。
【０１３８】
以上のように、UFD１に挿入して用いることによって、比較的安価に購入できるリムーバブルメディア２を、安全性が極めて確保された、データ保存・移動メディアとして使うことが可能となる。
【０１３９】
すなわち、データの暗号化に用いられた暗号鍵は、リムーバブルメディア２にデータを記憶させたユーザによって指定されたユーザだけが復号することができるから、暗号鍵が第三者に漏洩することを防ぐことができる。また、その暗号鍵を復号することができる秘密鍵はUFD１内で管理されるから、その秘密鍵自身が外部に漏洩こともなく、データを安全にリムーバブルメディア２に記憶させておくことができる。
【０１４０】
また、指紋というバイオメトリックスによる認証をUFD１に行わせ、その認証が成功したときにだけ、暗号処理などをUFD１に行わせることが可能になるため、鍵データだけでなく、指紋の認証に用いられる指紋テンプレートなどの情報も盗まれる可能性が極めて低いシステムを構築することが可能となる。
【０１４１】
以上においては、データの暗号化に用いられた暗号鍵を暗号化する手段としてPKIが用いられるものとしたが、PKIに限定されるものではなく、共通鍵による暗号方式によって暗号鍵が暗号化されるようにしてもよい。
【０１４２】
また、公開鍵によって暗号鍵を暗号化する場合、図１１に示されるように、公開鍵や、それによって暗号化された暗号鍵に対して有効期限が設定されるようにしてもよい。
【０１４３】
この場合、例えば、リムーバブルメディア２がUFD１のリムーバブルメディアアダプタ１２に挿入された時点で、有効期限が経過していないか否かが判断され、有効期限が経過していると判断された公開鍵や暗号化された暗号鍵はリムーバブルメディア２から消去される。
【０１４４】
これにより、ユーザＡを利用者として指定して記憶させたデータはいつまで有効、ユーザＢを利用者として指定して記憶させたデータはいつまで有効といったように、利用者として指定したユーザに合わせた有効期限を設定することが可能になる。
【０１４５】
また、UFD１を、リムーバブルメディア２にデータを記憶させたユーザが誰であるのかを証明するためのいわゆるデジタルサイン装置としても利用することができる。
【０１４６】
この場合、例えば、UFD１のリムーバブルメディアアダプタ１２に挿入したリムーバブルメディア２にデータを記憶させたとき、図１２に示されるように、リムーバブルメディア２には、書き込みの対象としてユーザにより選択されたデータであるオリジナルデータが暗号化されずにそのまま記憶されるとともに、オリジナルデータにハッシュ関数を適用して求められたハッシュ値をEEPROM３５に記憶されている秘密鍵で暗号化して得られたデータであるサインデータが記憶される。
【０１４７】
リムーバブルメディア２を受け取ったユーザは、サインデータの生成に用いられた秘密鍵に対応する公開鍵が自分が使う装置に記憶されている場合には、その装置にサインデータの確認を行わせ、データを書き込んだユーザが誰であるのかを確認させることができる。
【０１４８】
すなわち、リムーバブルメディア２を受け取ったユーザが使う装置においては、その装置に記憶されている公開鍵を用いてサインデータが復号され、サインデータからハッシュ値が取得される。また、オリジナルデータにハッシュ関数を適用することによってハッシュ値が求められ、サインデータから取得されたハッシュ値と、オリジナルデータから求められたハッシュ値が一致する場合に、リムーバブルメディア２にデータを記憶させたユーザが証明される。
【０１４９】
なお、この場合、リムーバブルメディア２を受け取ったユーザが使う装置としては、上述したようなUFDに限られるものではなく、サインデータの生成に用いられた秘密鍵に対応する公開鍵が記憶されており、リムーバブルメディア２を挿入することができる限り、PCなどの各種の装置を用いることができる。
【０１５０】
このように、UFD１をデジタルサイン装置として用いることにより、リムーバブルメディア２に記憶されているデータが誰によって書き込まれたのかを証明することが可能になり、データの信憑性を高めることができる。不明な人からのファイルを開くと、ウイルスに感染したりしてしまうことなどが問題になっているが、そのようなことの対策にもなる。
【０１５１】
以上においては、指紋センサ１１により読み取られた指紋によってユーザの認証が行われるものとしたが、必ずしも指紋によって行われる必要はなく、UFD１内で本人認証を行うことができるものであれば良い。例えば、虹彩や掌紋といったように、個人に特有の他の生体情報によってユーザの認証が行われるようにしてもよい。
【０１５２】
また、以上においては、指紋による認証が成功したとき、リムーバブルメディア２やフラッシュメモリ２２にホストPC３がデータを記憶させることと、リムーバブルメディア２やフラッシュメモリ２２に記憶されているデータをホストPC３が読み出すことのいずれもが許可されるものとしたが、いずれか一方だけが許可されるようにしてもよい。
【０１５３】
さらに、以上においては、UFD１にはリムーバブルメディアアダプタ１２が１つだけ設けられるものとしたが、複数設けられるようにしてもよい。この場合、複数設けられるリムーバブルメディアアダプタ１２は、それぞれ異なる規格のリムーバブルメディアに対応したものであってもよいし、同じ規格のリムーバブルメディアに対応したものであってもよい。
【０１５４】
また、リムーバブルメディアとしては、メモリスティック、SDカード、CFをあげたが、これらに限らず、リムーバブルメディアであれば他の規格のものでも良い。
【０１５５】
上述した一連の処理は、ハードウエアにより実行させることもできるし、ソフトウエアにより実行させることもできる。一連の処理をソフトウエアにより実行させる場合には、そのソフトウエアを構成するプログラムが、専用のハードウエアに組み込まれているコンピュータ、または、各種のプログラムをインストールすることで、各種の機能を実行することが可能な、例えば汎用のパーソナルコンピュータなどに、プログラム記録媒体からインストールされる。
【０１５６】
図１３は、上述した一連の処理をプログラムにより実行するパーソナルコンピュータの構成の例を示すブロック図である。
【０１５７】
CPU(Central Processing Unit)１０１は、ROM(Read Only Memory)１０２、または記憶部１０８に記憶されているプログラムに従って各種の処理を実行する。RAM(Random Access Memory)１０３には、CPU１０１が実行するプログラムやデータなどが適宜記憶される。これらのCPU１０１、ROM１０２、およびRAM１０３は、バス１０４により相互に接続されている。
【０１５８】
CPU１０１にはまた、バス１０４を介して入出力インタフェース１０５が接続されている。入出力インタフェース１０５には、キーボード、マウス、マイクロホンなどよりなる入力部１０６、ディスプレイ、スピーカなどよりなる出力部１０７が接続されている。CPU１０１は、入力部１０６から入力される指令に対応して各種の処理を実行する。そして、CPU１０１は、処理の結果を出力部１０７に出力する。
【０１５９】
入出力インタフェース１０５に接続されている記憶部１０８は、例えばハードディスクからなり、CPU１０１が実行するプログラムや各種のデータを記憶する。通信部１０９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【０１６０】
入出力インタフェース１０５に接続されているドライブ１１０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメディア１１１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する。取得されたプログラムやデータは、必要に応じて記憶部１０８に転送され、記憶される。
【０１６１】
コンピュータにインストールされ、コンピュータによって実行可能な状態とされるプログラムを格納するプログラム記録媒体は、図１３に示すように、磁気ディスク（フレキシブルディスクを含む）、光ディスク（CD-ROM(Compact Disc-Read Only Memory)，DVD(Digital Versatile Disc)を含む）、光磁気ディスク、もしくは半導体メモリなどよりなるパッケージメディアであるリムーバブルメディア１１１、または、プログラムが一時的もしくは永続的に格納されるROM１０２や、記憶部１０８を構成するハードディスクなどにより構成される。プログラム記録媒体へのプログラムの格納は、必要に応じてルータ、モデムなどのインタフェースである通信部１０９を介して、ローカルエリアネットワーク、インターネット、デジタル衛星放送といった、有線または無線の通信媒体を利用して行われる。
【０１６２】
なお、本明細書において、プログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１６３】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１６４】
【図１】本発明の一実施形態に係る指紋照合機能付きUFDの外観の例を示す図である。
【図２】指紋照合機能付きUFDのハードウエア構成例を示すブロック図である。
【図３】図２のEEPROMに記憶されているデータの例を示す図である。
【図４】指紋照合機能付きUFDの指紋登録処理について説明するフローチャートである。
【図５】指紋照合機能付きUFDの認証処理について説明するフローチャートである。
【図６】図５のステップＳ１５において行われる処理について説明するフローチャートである。
【図７】指紋照合機能付きUFDが内蔵するフラッシュメモリに記憶されたデータの例を示す図である。
【図８】リムーバブルメディアに記憶されたデータの例を示す図である。
【図９】図５のステップＳ１５において行われる他の処理について説明するフローチャートである。
【図１０】データの受け渡しを実現する一連の処理を説明するフローチャートである。
【図１１】リムーバブルメディアに記憶されたデータの例を示す図である。
【図１２】リムーバブルメディアに記憶されたデータの他の例を示す図である。
【図１３】パーソナルコンピュータの構成例を示すブロック図である。
【符号の説明】
【０１６５】
１  指紋照合機能付きUFD，  ２  リムーバブルメディア，  ３  ホストPC，  １１  指紋センサ，  １２  リムーバブルメディアアダプタ，  ２１  コントローラLSI，  ２２  フラッシュメモリ，  ２３  水晶発振子，  ３１  USB I/F，  ３２  リムーバブルメディアコントローラ，  ３３  CPU，  ３４  暗号エンジン，  ３５  EEPROM，  プログラム用RAM/ROM，  ３７  指紋照合エンジン，  ３８  PLL，  ３９  フラッシュメモリI/F
【図１】
2008084059.tif 000003
【図２】
2008084059.tif 000004
【図３】
2008084059.tif 000005
【図４】
2008084059.tif 000006
【図５】
2008084059.tif 000007
【図６】
2008084059.tif 000008
【図７】
2008084059.tif 000009
【図８】
2008084059.tif 000010
【図９】
2008084059.tif 000011
【図１０】
2008084059.tif 000012
【図１１】
2008084059.tif 000013
【図１２】
2008084059.tif 000014
【図１３】
2008084059.tif 000015