(57)【要約】【課題】情報の漏洩を防止する。【解決手段】USBストレージメディア２においては、スペシャルエリア８１は、データの暗号化に用いられる暗号鍵と、認証に用いられる認証情報とを記憶し、セキュアエリア８２は、PC１によって暗号鍵を用いて暗号化されたデータを記憶する。CPU７２は、ユーザによる入力に基づいてPC１によって生成されたパスワードハッシュと、スペシャルエリア８１に記憶されているパスワードハッシュとに基づいてユーザの認証を行い、認証によりユーザの正当性が確認されたとき、スペシャルエリア８１に記憶されている暗号鍵をPC１に送信する。フラッシュメモリコントローラ７５は、PC１が暗号鍵を用いて暗号化した暗号化データの、セキュアエリア８２に対する読み書きを制御する。本発明は、例えば、USBストレージメディア等の記憶装置に適用できる。【選択図】図４
2008040597.tif 000002
【特許請求の範囲】
【請求項１】
情報処理装置に対して着脱可能な記憶装置において、
情報の暗号化に用いられる暗号鍵と、認証に用いられる認証情報とを記憶する第１の領域と、前記情報処理装置によって前記暗号鍵を用いて暗号化された情報を記憶する第２の領域とを有する記憶手段と、
ユーザによる入力に基づいて前記情報処理装置によって生成された認証情報と、前記第１の領域に記憶されている認証情報とに基づいて前記ユーザの認証を行う認証手段と、
前記認証手段による認証により前記ユーザの正当性が確認されたとき、前記第１の領域に記憶されている前記暗号鍵を前記情報処理装置に送信する送信手段と、
前記情報処理装置が前記暗号鍵を用いて暗号化した情報の、前記第２の領域に対する読み書きを制御する制御手段と
を備える記憶装置。
【請求項２】
前記認証情報は、ユーザによる入力に基づいて前記情報処理装置によって生成されたハッシュ値である
請求項１に記載の記憶装置。
【請求項３】
前記記憶手段は、前記暗号鍵を用いた暗号化がされていない情報を記憶する第３の領域をさらに有する
請求項１に記載の記憶装置。
【請求項４】
前記第１の領域は、前記情報処理装置に搭載されるOS（Operating System）上で動作する所定のアプリケーションによってのみ情報の読み書きが可能な領域であり、
前記第２の領域は、前記情報処理装置に搭載されるOSからのコマンドによって情報の読み書きが可能な領域である
請求項１に記載の記憶装置。
【請求項５】
情報処理装置に対して着脱可能な記憶装置の記憶方法であって、
情報の暗号化に用いられる暗号鍵と、認証に用いられる認証情報とを記憶する第１の領域と、前記情報処理装置によって前記暗号鍵を用いて暗号化された情報を記憶する第２の領域とを有する記憶手段が設けられた記憶装置の記憶方法において、
ユーザによる入力に基づいて前記情報処理装置によって生成された認証情報と、前記第１の領域に記憶されている認証情報とに基づいて前記ユーザの認証を行い、
前記ユーザの認証において、前記ユーザの正当性が確認されたとき、前記第１の領域に記憶されている前記暗号鍵を前記情報処理装置に送信し、
前記情報処理装置が前記暗号鍵を用いて暗号化した情報の、前記第２の領域に対する読み書きを制御する
ステップを含む記憶方法。
【請求項６】
着脱可能な記憶装置が装着される情報処理装置において、
ユーザによる入力に基づいて、認識に用いられる認証情報を生成する認証情報生成手段と、
前記ユーザによる入力に基づいて生成された認証情報と、前記記憶装置に記憶されている認証情報とに基づいて、前記記憶装置によって行われる前記ユーザの認証において、前記ユーザの正当性が確認されたときに、前記記憶装置から送信されてくる、情報の暗号化に用いられる暗号鍵を用いて、前記記憶装置に記憶される情報の暗号化、または前記記憶装置からの暗号化された情報の復号を行う暗号処理手段と
を備える情報処理装置。
【請求項７】
前記記憶装置は、情報の暗号化に用いられる暗号鍵と、認証に用いられる認証情報とを記憶する第１の領域と、前記暗号鍵を用いて暗号化された情報を記憶する第２の領域とを有する記憶手段を備える
請求項６に記載の情報処理装置。
【請求項８】
OS上で動作する所定のアプリケーションによって、前記記憶装置が備える記憶手段の第１の領域に対する情報の読み書きを行い、
前記OSからのコマンドによって、前記記憶装置が備える記憶手段の第２の領域に対する情報の読み書きを行う
請求項７に記載の情報処理装置。
【請求項９】
着脱可能な記憶装置が装着される情報処理装置の情報処理方法において、
ユーザによる入力に基づいて、認識に用いられる認証情報を生成し、
前記ユーザによる入力に基づいて生成された認証情報と、前記記憶装置に記憶されている認証情報とに基づいて、前記記憶装置によって行われる前記ユーザの認証において、前記ユーザの正当性が確認されたときに、前記記憶装置から送信されてくる、情報の暗号化に用いられる暗号鍵を用いて、前記記憶装置に記憶される情報の暗号化、または前記記憶装置からの暗号化された情報の復号を行う
ステップを含む情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、記憶装置及び方法、並びに、情報処理装置及び方法に関し、特に、例えば、USB(Universal Serial Bus)ストレージメディア等の記憶装置に記憶される情報の漏洩を防止することができるようにする記憶装置及び方法、並びに、情報処理装置及び方法に関する。
【背景技術】
【０００２】
USBインターフェースを持ったリムーバブルメモリであるUSBストレージメディアは、安価で使い勝手が良いため、急激に普及してきている。
【０００３】
ところで、管理データを格納可能でユーザが書換え不能な管理領域と、ユーザによる記録及び再生が可能なデータ領域と、セキュリティデータを格納可能なセキュリティ領域とを有し、セキュリティデータは、リムーバブルメモリへのアクセスを制御するためにリムーバブルメモリのリムーバブルメモリドライブのファームウェアにより設定及び管理されるリムーバブルメモリがある（例えば、特許文献１参照）。
【０００４】
【特許文献１】特開２００１−３５０９２号公報
【発明の開示】
【発明が解決しようとする課題】
【０００５】
従来のUSBストレージメディアにおいては、セキュリティに対する配慮が十分でないために、USBストレージメディアに記憶される情報が漏洩する可能性が高かった。
【０００６】
例えば、上述の特許文献１に記載されている方法をUSBストレージメディアに採用した場合、USBストレージメディアに記憶される情報は暗号化されないので、USBストレージメディアに記憶される情報が漏洩する可能性があった。
【０００７】
本発明は、このような状況に鑑みてなされたものであり、USBストレージメディア等の記憶装置に記憶される情報の漏洩を防止することができるようにするものである。
【課題を解決するための手段】
【０００８】
本発明の第１の側面の記憶装置は、情報処理装置に対して着脱可能な記憶装置において、情報の暗号化に用いられる暗号鍵と、認証に用いられる認証情報とを記憶する第１の領域と、前記情報処理装置によって前記暗号鍵を用いて暗号化された情報を記憶する第２の領域とを有する記憶手段と、ユーザによる入力に基づいて前記情報処理装置によって生成された認証情報と、前記第１の領域に記憶されている認証情報とに基づいて前記ユーザの認証を行う認証手段と、前記認証手段による認証により前記ユーザの正当性が確認されたとき、前記第１の領域に記憶されている前記暗号鍵を前記情報処理装置に送信する送信手段と、前記情報処理装置が前記暗号鍵を用いて暗号化した情報の、前記第２の領域に対する読み書きを制御する制御手段とを備える。
【０００９】
本発明の第１の側面の記憶方法は、情報処理装置に対して着脱可能な記憶装置の記憶方法であって、情報の暗号化に用いられる暗号鍵と、認証に用いられる認証情報とを記憶する第１の領域と、前記情報処理装置によって前記暗号鍵を用いて暗号化された情報を記憶する第２の領域とを有する記憶手段が設けられた記憶装置の記憶方法において、ユーザによる入力に基づいて前記情報処理装置によって生成された認証情報と、前記第１の領域に記憶されている認証情報とに基づいて前記ユーザの認証を行い、前記ユーザの認証において、前記ユーザの正当性が確認されたとき、前記第１の領域に記憶されている前記暗号鍵を前記情報処理装置に送信し、前記情報処理装置が前記暗号鍵を用いて暗号化した情報の、前記第２の領域に対する読み書きを制御するステップを含む。
【００１０】
本発明の第２の側面の情報処理装置は、着脱可能な記憶装置が装着される情報処理装置において、ユーザによる入力に基づいて、認識に用いられる認証情報を生成する認証情報生成手段と、前記ユーザによる入力に基づいて生成された認証情報と、前記記憶装置に記憶されている認証情報とに基づいて、前記記憶装置によって行われる前記ユーザの認証において、前記ユーザの正当性が確認されたときに、前記記憶装置から送信されてくる、情報の暗号化に用いられる暗号鍵を用いて、前記記憶装置に記憶される情報の暗号化、または前記記憶装置からの暗号化された情報の復号を行う暗号処理手段とを備える。
【００１１】
本発明の第２の側面の情報処理方法は、着脱可能な記憶装置が装着される情報処理装置の情報処理方法において、ユーザによる入力に基づいて、認識に用いられる認証情報を生成し、前記ユーザによる入力に基づいて生成された認証情報と、前記記憶装置に記憶されている認証情報とに基づいて、前記記憶装置によって行われる前記ユーザの認証において、前記ユーザの正当性が確認されたときに、前記記憶装置から送信されてくる、情報の暗号化に用いられる暗号鍵を用いて、前記記憶装置に記憶される情報の暗号化、または前記記憶装置からの暗号化された情報の復号を行うステップを含む。
【００１２】
本発明の第１の側面においては、記憶手段が、情報の暗号化に用いられる暗号鍵と、認証に用いられる認証情報とを記憶する第１の領域と、前記情報処理装置によって前記暗号鍵を用いて暗号化された情報を記憶する第２の領域とを有している。そして、ユーザによる入力に基づいて前記情報処理装置によって生成された認証情報と、前記第１の領域に記憶されている認証情報とに基づいて前記ユーザの認証が行われ、前記ユーザの認証において、前記ユーザの正当性が確認されたとき、前記第１の領域に記憶されている前記暗号鍵が前記情報処理装置に送信され、前記情報処理装置が前記暗号鍵を用いて暗号化した情報の、前記第２の領域に対する読み書きが制御される。
【００１３】
本発明の第２の側面においては、ユーザによる入力に基づいて、認識に用いられる認証情報が生成され、前記ユーザによる入力に基づいて生成された認証情報と、前記記憶装置に記憶されている認証情報とに基づいて、前記記憶装置によって行われる前記ユーザの認証において、前記ユーザの正当性が確認されたときに、前記記憶装置から送信されてくる、情報の暗号化に用いられる暗号鍵を用いて、前記記憶装置に記憶される情報の暗号化、または前記記憶装置からの暗号化された情報の復号が行われる。
【発明の効果】
【００１４】
本発明の第１及び第２の側面によれば、情報の漏洩を防止することができる。
【発明を実施するための最良の形態】
【００１５】
以下に本発明の実施の形態を説明するが、本発明の構成要件と、明細書又は図面に記載の実施の形態との対応関係を例示すると、次のようになる。この記載は、本発明をサポートする実施の形態が、明細書又は図面に記載されていることを確認するためのものである。したがって、明細書又は図面中には記載されているが、本発明の構成要件に対応する実施の形態として、ここには記載されていない実施の形態があったとしても、そのことは、その実施の形態が、その構成要件に対応するものではないことを意味するものではない。逆に、実施の形態が構成要件に対応するものとしてここに記載されていたとしても、そのことは、その実施の形態が、その構成要件以外の構成要件には対応しないものであることを意味するものでもない。
【００１６】
本発明の第１の側面の記憶装置は、
情報処理装置（例えば、図１のPC１）に対して着脱可能な記憶装置（例えば、図１のUSBストレージメディア２）において、
情報の暗号化に用いられる暗号鍵と、認証に用いられる認証情報とを記憶する第１の領域（例えば、図４のスペシャルエリア８１）と、前記情報処理装置によって前記暗号鍵を用いて暗号化された情報を記憶する第２の領域（例えば、図４のセキュアエリア８２）とを有する記憶手段（例えば、図４のフラッシュメモリ６２）と、
ユーザによる入力に基づいて前記情報処理装置によって生成された認証情報と、前記第１の領域に記憶されている認証情報とに基づいて前記ユーザの認証を行う認証手段（例えば、図１１のステップＳ１０２や図１２のステップＳ１３２の処理を行う図４のCPU７２）と、
前記認証手段による認証により前記ユーザの正当性が確認されたとき、前記第１の領域に記憶されている前記暗号鍵を前記情報処理装置に送信する送信手段（例えば、図１１のステップＳ１０４や図１２のステップＳ１３４の処理を行う図４のCPU７２）と、
前記情報処理装置が前記暗号鍵を用いて暗号化した情報の、前記第２の領域に対する読み書きを制御する制御手段（例えば、図４のフラッシュメモリコントローラ７５）と
を備える。
【００１７】
本発明の第１の側面の記憶方法は、
情報処理装置に対して着脱可能な記憶装置の記憶方法であって、
情報の暗号化に用いられる暗号鍵と、認証に用いられる認証情報とを記憶する第１の領域と、前記情報処理装置によって前記暗号鍵を用いて暗号化された情報を記憶する第２の領域とを有する記憶手段が設けられた記憶装置の記憶方法において、
ユーザによる入力に基づいて前記情報処理装置によって生成された認証情報と、前記第１の領域に記憶されている認証情報とに基づいて前記ユーザの認証を行い（例えば、図１１のステップＳ１０２または図１２のステップＳ１３２）、
前記ユーザの認証において、前記ユーザの正当性が確認されたとき、前記第１の領域に記憶されている前記暗号鍵を前記情報処理装置に送信し（例えば、図１１のステップＳ１０４または図１２のステップＳ１３４）、
前記情報処理装置が前記暗号鍵を用いて暗号化した情報の、前記第２の領域に対する読み書きを制御する（例えば、図１１のステップＳ１０６または図１２のステップＳ１３５）
ステップを含む。
【００１８】
本発明の第２の側面の情報処理装置は、
着脱可能な記憶装置が装着される情報処理装置において、
ユーザによる入力に基づいて、認識に用いられる認証情報を生成する認証情報生成手段と（例えば、図３のハッシュ値演算部４２）、
前記ユーザによる入力に基づいて生成された認証情報と、前記記憶装置に記憶されている認証情報とに基づいて、前記記憶装置によって行われる前記ユーザの認証において、前記ユーザの正当性が確認されたときに、前記記憶装置から送信されてくる、情報の暗号化に用いられる暗号鍵を用いて、前記記憶装置に記憶される情報の暗号化、または前記記憶装置からの暗号化された情報の復号を行う暗号処理手段（例えば、図３の暗号処理部４４）と
を備える。
【００１９】
本発明の第２の側面の情報処理方法は、
着脱可能な記憶装置が装着される情報処理装置の情報処理方法において、
ユーザによる入力に基づいて、認識に用いられる認証情報を生成し（例えば、図１１のステップＳ９２または図１２のステップＳ１２２）、
前記ユーザによる入力に基づいて生成された認証情報と、前記記憶装置に記憶されている認証情報とに基づいて、前記記憶装置によって行われる前記ユーザの認証において、前記ユーザの正当性が確認されたときに、前記記憶装置から送信されてくる、情報の暗号化に用いられる暗号鍵を用いて、前記記憶装置に記憶される情報の暗号化、または前記記憶装置からの暗号化された情報の復号を行う（例えば、図１１のステップＳ９５または図１２のステップＳ１２６）
ステップを含む。
【００２０】
以下、図面を参照して本発明を適用した実施の形態について説明する。
【００２１】
図１は、本発明を適用したPC(Personal Computer)及びUSBストレージメディアの一実施の形態の概要を示している。
【００２２】
図１において、PC１にはUSBストレージメディア２が着脱可能となっている。
【００２３】
すなわち、PC１は、USBコネクタ１Ａを有しており、USBストレージメディア２は、USBコネクタ２Ａを有している。USBコネクタ２Ａを、USBコネクタ１Ａに挿入することで、PC１には、USBストレージメディア２が装着される。
【００２４】
USBストレージメディア２が装着されたPC１は、ユーザにパスワードの入力を促し、ユーザによるパスワードの入力があると、ユーザによって入力されたパスワードを受付ける。さらに、PC１は、ユーザによって入力されたパスワードのハッシュ値（以下、適宜、パスワードハッシュという）を生成し、USBストレージメディア２に送信する。
【００２５】
USBストレージメディア２は、内部に、あらかじめ登録されたパスワードハッシュを記憶しており、PC１から送信されてくるパスワードハッシュと、内部のパスワードハッシュである内部パスワードハッシュとに基づいて、ユーザの認証を行う。そして、USBストレージメディア２は、認証によって、ユーザの正当性が確認されると、内部にあらかじめ記憶している暗号鍵をPC１に送信する。
【００２６】
PC１は、USBストレージメディア２から送信されてくる暗号鍵を受信し、その暗号鍵を用いて、データを暗号化する。そして、PC１は、暗号化後のデータである暗号化データを、USBストレージメディア２に送信して記憶させる。また、PC１は、USBストレージメディア２から暗号化データを読み出し、USBストレージメディア２からの暗号鍵を用いて、復号する。
【００２７】
図２は、PC１の内部構成例を示すブロック図である。
【００２８】
図２において、PC１は、USBコネクタ１Ａ，CPU(Central Processor Unit)１１，ROM(Read Only Memory)１２，RAM(Random Access Memory)１３、バス１４、入出力インターフェース１５、入力部１６、出力部１７、記憶部１８、通信部１９、ドライブ２０、リムーバブルメモリ２１、及びUSB-I/F(Interface)２２から構成されている。
【００２９】
CPU１１は、ROM１２、または記憶部１８に記憶されているプログラムにしたがって各種の処理を実行する。また、CPU１１は、入力部１６から入力される指令に対応して各種の処理を実行し、その処理の結果を出力部１７等に出力する。
【００３０】
RAM１３は、CPU１１が実行するプログラムや必要なデータなどを適宜記憶する。
【００３１】
バス１４は、CPU１１，ROM１２，RAM１３、及び入出力インターフェース１５を相互に接続している。
【００３２】
入出力インターフェース１５は、入力部１６、出力部１７、記憶部１８、通信部１９、ドライブ２０、及びUSB-I/F２２を、バス１４と接続するインターフェースとして機能する。
【００３３】
入力部１６は、キーボード、マウス、マイクロホンなどで構成される。
【００３４】
出力部１７は、ディスプレイ、スピーカ等で構成される。
【００３５】
記憶部１８は、例えばハードディスクからなり、CPU１１が実行するプログラムや各種のデータを記憶する。
【００３６】
ここで、図２において、記憶部１８には、少なくとも、例えば、Windows(登録商標)等のOS(Operationg System)と、そのOS上で動作し、USBストレージメディア２に対して専用のコマンドを出力する専用のアプリケーションプログラムとがインストールされている。なお、専用のアプリケーションプログラムは、例えば、OSの起動時に実行され、常駐する。
【００３７】
通信部１９は、インターネットやローカルエリアネットワークなどのネットワークを介して外部の装置と通信する。
【００３８】
ドライブ２０は、磁気ディスク、光ディスク、光磁気ディスク、或いは半導体メモリなどのリムーバブルメモリ２１が装着されたとき、それらを駆動し、そこに記録されているプログラムやデータなどを取得する（読み出す）。ドライブ２０は、リムーバブルメモリ２１から取得したプログラムやデータを、必要に応じて記憶部１８に転送し、記憶させる。
【００３９】
USB I/F２２は、USBコネクタ１Ａに装着されるUSBストレージメディア２等との間で、データやコマンド等をやりとりするUSB通信のI/Fとして機能する。
【００４０】
なお、PC１に実行させるプログラムは、PC１に内蔵されている記憶媒体としてのROM１２や、記憶部１８にあらかじめ記録しておくことができる。
【００４１】
また、プログラムは、USBストレージメディア２、あるいは、USBストレージメディア２以外の、例えば、フレキシブルディスク、CD-ROM(Compact Disc Read Only Memory)，MO(Magneto Optical)ディスク、DVD(Digital Versatile Disc)、磁気ディスク、半導体メモリなどのリムーバブルメディア２１に、一時的あるいは永続的に記録し、PC１にインストールすることができる。
【００４２】
PC１に実行させるプログラムは、USBストレージメディア２や、その他のリムーバブルメディア２１からPC１にインストールする他、ダウンロードサイトから、ディジタル衛星放送用の人工衛星を介して、PC１に無線で転送したり、LAN(Local Area Network)、インターネットといったネットワークを介して、PC１に有線で転送し、PC１では、そのようにして転送されてくるプログラムを、通信部１９で受信し、内蔵する記憶部１８にインストールすることができる。
【００４３】
図３は、図１のPC１の機能的構成例を示すブロック図である。
【００４４】
図３において、PC１には、暗号鍵生成部４１、ハッシュ値演算部４２、通信制御部４３、及び暗号処理部４４が設けられている。なお、図２のCPU１１が、OSを実行し、さらに、そのOS上で専用のアプリケーションプログラムを実行することにより、暗号鍵生成部４１、ハッシュ値演算部４２、通信制御部４３、及び暗号処理部４４として機能する。
【００４５】
暗号鍵生成部４１は、乱数を発生し、その乱数に基づいて暗号鍵を生成して、通信制御部４３に供給する。
【００４６】
ハッシュ値演算部４２には、ユーザが入力部１６を操作することによって入力したパスワードが供給される。
【００４７】
ハッシュ値演算部４２は、ユーザによって入力されたパスワードのハッシュ値であるパスワードハッシュを求め、通信制御部４３に供給する。
【００４８】
通信制御部４３は、例えば、暗号鍵生成部４１から供給される暗号鍵や、ハッシュ値演算部４２から供給されるパスワードハッシュ、暗号処理部４４から供給される暗号化データ等をUSBストレージメディア２に送信する。また、通信制御部４３は、例えば、USBストレージメディア２から送信されてくる暗号化データや、暗号鍵等を受信し、暗号処理部４４に供給する。
【００４９】
暗号処理部４４は、暗号化部４４Ａ及び復号部４４Ｂから構成され、データの暗号化と復号とを行う。
【００５０】
すなわち、暗号化部４４Ａは、通信制御部４３から供給される暗号鍵を用いて、RAM１３や記憶部１８に記憶されたデータ等の暗号化を行い、その結果得られる暗号化データを、通信制御部４３に供給する。
【００５１】
復号部４４Ｂは、通信制御部４３から供給される暗号鍵を用いて、同じく、通信制御部４３から供給される暗号化データの復号を行う。
【００５２】
図４は、図１のUSBストレージメディア２の内部構成例を示すブロック図である。
【００５３】
図４において、USBストレージメディア２は、USBストレージコントローラ６１、フラッシュメモリ６２、及びLED(Light Emitting Diode)６３から構成される。
【００５４】
USBストレージコントローラ６１は、PC１の制御に基づいて、フラッシュメモリ６２へのデータの読み書きを制御する。即ち、USBストレージコントローラ６１は、PC１の制御に基づいて、PC１から送信されてくるデータをフラッシュメモリ６２の所定のエリアに書き込み、また、フラッシュメモリ６２の所定のエリアに記憶されたデータを読み出し、PC１に送信する。
【００５５】
即ち、USBストレージコントローラ６１は、USB-I/F７１，CPU７２，ROM７３，RAM７４、フラッシュメモリコントローラ７５、及びLEDコントローラ７６がバスに接続されて構成されている。
【００５６】
USBストレージコントローラ６１において、USB-I/F７１は、図２のUSB-I/F２２と同様に、USB通信のI/Fとして機能する。すなわち、USB-I/F７１は、USBストレージメディア２がPC１に装着されたときに、PC１に接続され、PC１から送信されてくるデータを受信して、USBストレージコントローラ６１内のバス上に出力し、また、USBストレージコントローラ６１内のバス上のデータをPC１に送信する。
【００５７】
CPU７２は、ROM７３またはフラッシュメモリ６２に記憶されたプログラムを実行することにより、USBストレージコントローラ６１の各部を制御する。
【００５８】
また、CPU７２は、PC１から、USB-I/F７１を介して送信されてくるパスワードハッシュに基づいて、ユーザの認証を行う。
【００５９】
さらに、CPU７２は、ユーザの認証が成功し、ユーザの正当性が確認された場合、フラッシュメモリ６２の、後述するスペシャルエリア８１に記憶されている暗号鍵をフラッシュメモリコントローラ７５を介して取得し、USB-I/F７１を介してPC１に送信する等の処理を行う。
【００６０】
ROM７３は、CPU７２が実行する各種のプログラムを記憶している。
【００６１】
RAM７４は、CPU７２のワーキング用のメモリであり、CPU７２の処理の途中で出力されるデータを一時的に記憶し、また、一時記憶しているデータをCPU７２に供給する。
【００６２】
フラッシュメモリコントローラ７５は、CPU７２の制御に基づいて、フラッシュメモリ６２に対するデータの読み書きを制御する。
【００６３】
すなわち、フラッシュメモリコントローラ７５は、バス上のデータを、フラッシュメモリ６２に供給して記憶させる。また、フラッシュメモリコントローラ７５は、フラッシュメモリ６２に記憶されているデータを読み出し、バス上に出力する。
【００６４】
LEDコントローラ７６は、PC１等がUSBストレージメディア２にアクセスすると、例えば、LED６３が点滅するように、LED６３を制御する。
【００６５】
フラッシュメモリ６２は、不揮発性のメモリで、USBストレージコントローラ６１のフラッシュメモリコントローラ７５の制御に基づいて、フラッシュメモリコントローラ７５から供給されるデータの読み書きを行う。
【００６６】
ここで、フラッシュメモリ６２は、スペシャルエリア８１、セキュアエリア８２、及びオープンエリア８３の３つに区分されている。
【００６７】
スペシャルエリア８１は、データの暗号化に用いられる暗号鍵と、認証に用いられる認証情報としてのパスワードハッシュ（内部パスワードハッシュ）とを記憶する。
【００６８】
セキュアエリア８２は、PC１がスペシャルエリア８１に記憶されている暗号鍵を用いて暗号化した暗号化データを記憶する。
【００６９】
オープンエリア８３は、スペシャルエリア８１に記憶される暗号鍵及び内部パスワードハッシュ、並びに、スペシャルエリア８１に記憶されている暗号鍵を用いて暗号化された暗号化データ以外のデータを記憶する。
【００７０】
LED６３は、そのカソードがUSBストレージコントローラ６１のLEDコントローラ７６に接続され、そのアノードが電源（の＋端子）に接続されており、LEDコントローラ７６の制御に基づいて点滅等する。
【００７１】
次に、図５を参照して、図４のフラッシュメモリ６２のスペシャルエリア８１、セキュアエリア８２、及びオープンエリア８３についてさらに詳しく説明する。
【００７２】
図５は、フラッシュメモリ６２の記憶領域のスペシャルエリア８１、セキュアエリア８２、及びオープンエリア８３を示す図である。
【００７３】
スペシャルエリア８１は、PC１のOS上で動作する専用のアプリケーションプログラムが発する専用のコマンドによってのみアクセス（データの読み書き）が可能な記憶領域であり、上述したように、暗号鍵及び内部パスワードハッシュを記憶する。
【００７４】
ここで、専用のコマンドとしては、例えば、SCSI(Small Computer System Interface)プロトコルのVender Unique Commandを採用することができる。
【００７５】
セキュアエリア８２は、スペシャルエリア８１に記憶されている暗号鍵を用いてPC１によって暗号化された暗号化データを、PC１のOSからのアクセスが可能となるように、例えば、MS-DOS(R)フォーマットで記憶する。
【００７６】
ここで、セキュアエリア８２には、スペシャルエリア８１と異なり、OSからアクセスすることができる（OSのコマンドによってデータの読み書きを行うことができる）。ただし、専用のアプリケーションプログラムが実行されているPC１は、スペシャルエリア８１から暗号鍵を読み出し、その暗号鍵を用いて、セキュアエリア８２から読み出した暗号化データを復号することができるが、専用のアプリケーションプログラムが実行されていないPCは、スペシャルエリア８１へのアクセスが不可能であるため、暗号鍵を読み出すことができず、暗号化データを復号することができない。したがって、セキュアエリア８２には、専用のアプリケーションプログラムが実行されているPC以外のPCからのアクセスが実質的に不可能となるように、暗号化データが記憶されることになる。
【００７７】
オープンエリア８３には、スペシャルエリア８１に記憶された暗号鍵で暗号化されていないデータが、OSからのアクセスが可能となるように、例えば、MS-DOS(R)フォーマットで記憶される。
【００７８】
ここで、オープンエリア８３には、セキュアエリア８２と同様に、OSからアクセスすることができる。また、オープンエリア８３には、スペシャルエリア８１に記憶された暗号鍵で暗号化されていないデータが記憶されるので、セッキュアエリア８２とは異なり、専用のアプリケーションプログラムなしで、自由にアクセスすることができる。
【００７９】
図６は、スペシャルエリア８１に記憶される内部パスワードハッシュと暗号鍵の例を示している。
【００８０】
スペシャルエリア８１には、内部パスワードハッシュとして、例えば、4バイトのデータが記憶され、暗号鍵として、例えば、１６バイトのデータが記憶される。
【００８１】
図７は、PC１の専用のアプリケーションプログラムからUSBストレージメディア２に送信される制御データのフォーマットを示している。
【００８２】
制御データは、その先頭から、４バイトの現パスワードハッシュ部、４バイトの新パスワードハッシュ部、及び１６バイトの登録暗号鍵部が配置されて構成される。
【００８３】
現パスワードハッシュ部及び新パスワードハッシュ部には、ハッシュ値演算部４２（図３）が生成したパスワードハッシュが配置される。登録暗号鍵部には、暗号鍵生成部４１が生成した暗号鍵が配置される。
【００８４】
次に、図８乃至図１２のフローチャートを参照して、PC１（図３）とUSBストレージメディア２（図４）の処理について説明する。
【００８５】
例えば、ユーザが入力部１６（図２）を操作することにより、専用のアプリケーションプログラムに対して、スペシャルエリア８１に、内部パスワードハッシュと暗号鍵を最初に登録する（初期化する）処理である初期化処理を行うことを指令すると、PC１とUSBストレージメディア２は、初期化処理を行う。
【００８６】
すなわち、図８は、PC１とUSBストレージメディア２による初期化処理を説明するフローチャートである。
【００８７】
図８左は、PC１による初期化処理を説明するフローチャートであり、図８右は、USBストレージメディア２による初期化処理を説明するフローチャートである。
【００８８】
まず、図８左を参照して、PC１による初期化処理について説明する。
【００８９】
USBストレージメディア２がPC１に装着された状態で、ユーザが、初期化処理を行うように、入力部１６を操作すると、専用のアプリケーションプログラムは、ユーザに、パスワードの入力を促すメッセージを、出力部１７（図２）に表示させる。
【００９０】
なお、USBストレージメディア２には、まだ内部パスワードハッシュが登録されていないものとする。
【００９１】
ユーザがメッセージに従い、入力部１６を操作することにより、パスワードを入力すると、専用のアプリケーションプログラムは、ステップＳ１において、ユーザが入力部１６を操作することにより入力したパスワードを受付け、ステップＳ２に進む。
【００９２】
なお、ユーザがパスワードとして入力する情報としては、数字、文字、記号の他、図３のハッシュ値演算部４２でハッシュ値を求めることができる情報、すなわち、例えば、指紋読み取り装置で読み取った指紋のデータや、ユーザが指定するファイルに格納されたデータ等を採用することが可能である。
【００９３】
ステップＳ２において、ハッシュ値演算部４２は、ステップＳ１で受付けられたパスワードのハッシュ値であるパスワードハッシュを求め、通信制御部４３に供給して、ステップＳ３に進む。
【００９４】
ステップＳ３において、暗号鍵生成部４１は、乱数を発生し、その乱数に基づいて暗号鍵を生成する。そして、暗号鍵生成部４１は、その暗号鍵を、通信制御部４３に供給して、ステップＳ４に進む。
【００９５】
ステップＳ４において、通信制御部４３は、図７に示した制御データの新パスワードハッシュ部に、ハッシュ値演算部４２から供給されたパスワードハッシュを配置するとともに、登録暗号鍵部に、暗号鍵生成部４１から供給された暗号鍵を配置することにより、制御データを構成し、USBストレージメディア２に送信して、PC１の初期化処理を終了する。なお、ステップＳ４において、制御データの現パスワードハッシュ部には、ダミーのデータが配置される。
【００９６】
次に、図８右を参照して、USBストレージメディア２による初期化処理について説明する。
【００９７】
USBストレージメディア２のCPU７２（図４）は、PC１から制御データが送信されてくると、ステップＳ１１において、PC１からの制御データを、USB-I/F７１を介して受信する。
【００９８】
ここで、いまの場合、上述したように、フラッシュメモリ６２のスペシャルエリア８１には、内部パスワードハッシュが記憶されていない。このように、フラッシュメモリ６２のスペシャルエリア８１に、内部パスワードハッシュが記憶されていない場合、CPU７２は、PC１からの制御データのうちの、現パスワードハッシュ部を無視し、新パスワードハッシュ部のパスワードハッシュと登録暗号鍵部の暗号鍵をフラッシュメモリコントローラ７５に供給して、ステップＳ１２に進む。
【００９９】
ステップＳ１２において、フラッシュメモリコントローラ７５は、フラッシュメモリ６２のスペシャルエリア８１に対して、CPU７２から供給されたパスワードハッシュを内部パスワードハッシュとして記憶させるとともに、CPU７２から供給された暗号鍵を記憶させ、USBストレージメディア２の初期化処理を終了する。
【０１００】
以上のように、スペシャルエリア８１に、内部パスワードハッシュと暗号鍵が記憶された後に、ユーザが、内部パスワードハッシュを変更するように、入力部１６を操作すると、PC１とUSBストレージメディア２は、スペシャルエリア８１に登録された内部パスワードハッシュを変更する処理であるパスワード変更処理を行う。
【０１０１】
そこで、図９のフローチャートを参照して、PC１とUSBストレージメディア２によるパスワード変更処理について説明する。
【０１０２】
図９左は、PC１によるパスワード変更処理を説明するフローチャートであり、図９右は、USBストレージメディア２によるパスワード変更処理を説明するフローチャートである。
【０１０３】
まず、図９左を参照して、PC１によるパスワード変更処理について説明する。
【０１０４】
USBストレージメディア２がPC１に装着された状態で、ユーザが、パスワード変更処理を行うように、入力部１６を操作すると、専用のアプリケーションプログラムは、ユーザに、現在のパスワード（変更前のパスワード）である現パスワードと新しいパスワード（変更後のパスワード）である新パスワードの入力を促すメッセージを、出力部１７（図２）に表示させる。
【０１０５】
ユーザがメッセージに従い、入力部１６を操作することにより、パスワードを入力すると、専用のアプリケーションプログラムは、ステップＳ３１において、ユーザが入力部１６を操作することにより入力した現パスワードと新パスワードを受付け、ステップＳ３２に進む。
【０１０６】
ステップＳ３２において、ハッシュ値演算部４２（図３）は、ステップＳ３１で受付けられた現パスワードのハッシュ値である現パスワードハッシュと、新パスワードのハッシュ値である新パスワードハッシュをそれぞれ求め、通信制御部４３に供給して、ステップＳ３３に進む。
【０１０７】
ステップＳ３３において、通信制御部４３は、図７に示した制御データの現パスワードハッシュ部に、ハッシュ値演算部４２から供給された現パスワードハッシュを配置するとともに、新パスワードハッシュ部に、ハッシュ値演算部４２から供給された新パスワードハッシュを配置することにより、制御データを構成し、USBストレージメディア２に送信して、PC１のパスワード変更処理を終了する。なお、ステップＳ３３において、制御データの登録暗号鍵部には、ダミーのデータが配置される。
【０１０８】
次に、図９右を参照して、USBストレージメディア２によるパスワード変更処理について説明する。
【０１０９】
USBストレージメディア２のCPU７２（図４）は、PC１から制御データが送信されてくると、ステップＳ４１において、PC１からの制御データを、USB-I/F７１を介して受信し、ステップＳ４２に進む。
【０１１０】
ステップＳ４２において、CPU７２は、フラッシュメモリ６２のスペシャルエリア８１に記憶されている内部パスワードハッシュをフラッシュメモリコントローラ７５を介して取得する（読み出す）。そして、CPU７２は、スペシャルエリア８１から読み出した内部パスワードハッシュと、ステップＳ４１で受信された制御データの現パスワードハッシュ部のパスワードハッシュとを照合し、ステップＳ４３に進む。
【０１１１】
ステップＳ４３において、CPU７２は、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致するかどうかを判定する。ステップＳ４３において、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致しないと判定された場合、つまり、ユーザの正当性が確認されなかった場合、USBストレージメディア２のパスワード変更処理を終了する。
【０１１２】
この場合、CPU７２は、例えば、エラーメッセージを、PC１に送信し、PC１では、CPU７２からのエラーメッセージが、出力部１７（図２）に表示される。
【０１１３】
一方、ステップＳ４３において、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致すると判定された場合、つまり、ユーザの正当性が確認された場合、CPU７２は、制御データの新パスワードハッシュ部に配置されている情報が、後述する変更指示情報及び鍵要求情報のうちのいずれでもない、新パスワードのパスワードハッシュであることを確認して、制御データの新パスワードハッシュ部のパスワードハッシュをフラッシュメモリコントローラ７５に供給し、ステップＳ４４に進む。
【０１１４】
すなわち、専用のアプリケーションは、USBストレージメディア２のスペシャルエリア８１に記憶された暗号鍵を変更する場合は、新パスワードハッシュ部に、後述する変更指示情報を配置した制御データを構成し、USBストレージメディア２に対する暗号データの読み書きを行う場合には、新パスワードハッシュ部に、後述する鍵要求情報を配置した制御データを構成する。
【０１１５】
CPU７２は、制御データの新パスワードハッシュ部に、変更指示情報でもなく、鍵要求情報でもない情報が配置されている場合、その情報が、新パスワードのパスワードハッシュであると認識し、その新パスワードのパスワードハッシュを、フラッシュメモリコントローラ７５に供給する。
【０１１６】
ステップＳ４４において、フラッシュメモリコントローラ７５は、CPU７２から供給された新パスワードハッシュ部のパスワードハッシュを、スペシャルエリア８１に記憶された内部パスワードハッシュに上書し、USBストレージメディア２のパスワード変更処理を終了する。
【０１１７】
これにより、USBストレージメディア２に記憶されている内部パスワードハッシュが変更される。
【０１１８】
次に、USBストレージメディア２のスペシャルエリア８１に記憶された暗号鍵は、ユーザの指示にしたがって変更することができる。
【０１１９】
そこで、図１０のフローチャートを参照して、PC１とUSBストレージメディア２による、暗号鍵を変更する暗号鍵変更処理について説明する。
【０１２０】
図１０左は、PC１による暗号鍵変更処理を説明するフローチャートであり、図１０右は、USBストレージメディア２による暗号鍵変更処理を説明するフローチャートである。
【０１２１】
まず、図１０左を参照して、PC１による暗号鍵変更処理について説明する。
【０１２２】
USBストレージメディア２がPC１に装着された状態で、ユーザが、暗号鍵を変更するように、入力部１６を操作すると、専用のアプリケーションプログラムは、ユーザに、現在のパスワードである現パスワードの入力を促すメッセージを、出力部１７に表示させる。
【０１２３】
ユーザがメッセージに従い、入力部１６を操作することにより、現在のパスワードである現パスワードを入力すると、専用のアプリケーションプログラムは、ステップＳ６１において、ユーザによって入力された現パスワードを受付け、ステップＳ６２に進む。
【０１２４】
ステップＳ６２において、ハッシュ値演算部４２は、ステップＳ６１で受付けられた現パスワードのハッシュ値である現パスワードハッシュを求め、通信制御部４３に供給して、ステップＳ６３に進む。
【０１２５】
ステップＳ６３において、暗号鍵生成部４１は、乱数を発生し、その乱数に基づいて、新たな暗号鍵を生成する。そして、暗号鍵生成部４１は、その新たな暗号鍵を、通信制御部４３に供給して、ステップＳ６４に進む。
【０１２６】
ステップＳ６４において、通信制御部４３は、図７に示した制御データの現パスワードハッシュ部に、ハッシュ値演算部４２から供給された現パスワードハッシュを配置するとともに、登録暗号鍵部に、暗号鍵生成部４１から供給された新たな暗号鍵を配置することにより、制御データを構成し、USBストレージメディア２に送信して、PC１の暗号鍵変更処理を終了する。なお、ステップＳ６４において、制御データの新パスワードハッシュ部には、暗号鍵変更処理を指示する変更指示情報としての、例えば、１６進数の00(16)、またはＦＦ(16)のいずれかが配置される。
【０１２７】
次に、図１０右を参照して、USBストレージメディア２による暗号鍵変更処理について説明する。
【０１２８】
USBストレージメディア２のCPU７２（図４）は、PC１から制御データが送信されてくると、ステップＳ７１において、PC１からの制御データを、USB-I/F７１を介して受信し、ステップＳ７２に進む。
【０１２９】
ステップＳ７２において、CPU７２は、フラッシュメモリ６２のスペシャルエリア８１に記憶されている内部パスワードハッシュをフラッシュメモリコントローラを介して取得する（読み出す）。そして、CPU７２は、スペシャルエリア８１から読み出した内部パスワードハッシュと、ステップＳ７１で受信された制御データの現パスワードハッシュ部のパスワードハッシュとを照合し、ステップＳ７３に進む。
【０１３０】
ステップＳ７３において、CPU７２は、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致するかどうかを判定する。ステップＳ７３において、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致しないと判定された場合、つまり、ユーザの正当性が確認されなかった場合、USBストレージメディア２の暗号鍵変更処理を終了する。
【０１３１】
この場合、CPU７２は、例えば、エラーメッセージを、PC１に送信し、PC１では、CPU７２からのエラーメッセージが、出力部１７（図２）に表示される。
【０１３２】
一方、ステップＳ７３において、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致すると判定された場合、つまり、ユーザの正当性が確認された場合、CPU７２は、制御データの登録暗号鍵部の新しい暗号鍵を、フラッシュメモリコントローラ７５に供給し、ステップＳ７４に進む。
【０１３３】
すなわち、いまの場合、PC１からの制御データの新パスワードハッシュ部には、変更指示情報としての00(16)、またはＦＦ(16)が配置されている。CPU７２は、制御データの新パスワードハッシュ部に、変更指示情報が配置されている場合、スペシャルエリア８１に記憶されている暗号鍵を変更するために、制御データの登録暗号鍵部の新しい暗号鍵を、フラッシュメモリコントローラ７５に供給する。
【０１３４】
ステップＳ７４において、フラッシュメモリコントローラ７５は、CPU７２から供給された登録暗号鍵部の新しい暗号鍵を、スペシャルエリア８１に記憶された暗号鍵に上書し、USBストレージメディア２の暗号鍵変更処理を終了する。
【０１３５】
これにより、USBストレージメディア２に記憶されている暗号鍵が変更される。
【０１３６】
次に、図１１のフローチャートを参照して、PC１とUSBストレージメディア２がセキュアエリア８２に暗号化データを書き込む処理であるデータ書き込み処理について説明する。
【０１３７】
図１１左は、PC１によるデータ書き込み処理を説明するフローチャートであり、図１１右は、USBストレージメディア２によるデータ書き込み処理を説明するフローチャートである。
【０１３８】
まず、図１１左を参照して、PC１によるデータ書き込み処理について説明する。
【０１３９】
データ書き込み処理は、例えば、USBストレージメディア２がPC１に装着された状態で、ユーザが、入力部１６を操作することによって、セキュアエリア８２に対するデータの書き込みを指示すると開始される。
【０１４０】
すなわち、専用のアプリケーションプログラムは、ユーザが、入力部１６を操作することによって、セキュアエリア８２に対するデータの書き込みを指示すると、パスワードの入力を促すメッセージを出力部１７に表示させる。
【０１４１】
ユーザがメッセージに従い、入力部１６を操作することにより、現在のパスワードである現パスワードを入力すると、専用のアプリケーションプログラムは、ステップＳ９１において、ユーザによって入力された現パスワードを受付け、ステップＳ９２に進む。
【０１４２】
ステップＳ９２において、ハッシュ値演算部４２は、ステップＳ９１で受付けられた現パスワードのハッシュ値である現パスワードハッシュを求め、通信制御部４３に供給して、ステップＳ９３に進む。
【０１４３】
ステップＳ９３において、通信制御部４３は、図７に示した制御データの現パスワードハッシュ部に、ハッシュ値演算部４２から供給された現パスワードハッシュを配置するとともに、新パスワードハッシュ部に、例えば、現パスワードハッシュと同一のパスワードハッシュを配置することにより、制御データを構成し、USBストレージメディア２に送信する。そして、通信制御部４３は、後述するようにして、USBストレージメディア２から暗号鍵が送信されてくるのを待って、ステップＳ９４に進む。
【０１４４】
ステップＳ９４において、PC１の通信制御部４３は、USBストレージメディア２から送信されてくる暗号鍵を受信し、その暗号鍵を、暗号処理部４４に供給して、ステップＳ９５に進む。
【０１４５】
ステップＳ９５において、暗号処理部４４の暗号化部４４Ａは、ステップＳ９４で通信制御部４３から供給された暗号鍵を用いて、ユーザによって書き込みが指定されたデータを暗号化し、その暗号化後の暗号化データを、通信制御部４３に供給して、ステップＳ９６に進む。
【０１４６】
ステップＳ９６において、通信制御部４３は、ステップＳ９５で暗号化された暗号化データを、USBストレージメディア２に送信して、PC１のデータ書き込み処理を終了する。
【０１４７】
次に、図１１右を参照して、USBストレージメディア２によるデータ書き込み処理について説明する。
【０１４８】
USBストレージメディア２のCPU７２（図４）は、PC１から制御データが送信されてくると、ステップＳ１０１において、PC１からの制御データを、USB-I/F７１を介して受信し、ステップＳ１０２に進む。
【０１４９】
ステップＳ１０２において、CPU７２は、フラッシュメモリ６２のスペシャルエリア８１に記憶されている内部パスワードハッシュをフラッシュメモリコントローラ７５を介して取得する（読み出す）。そして、CPU７２は、スペシャルエリア８１から読み出した内部パスワードハッシュとステップＳ１０１で受信された制御データの現パスワードハッシュ部のパスワードハッシュとを照合し、ステップＳ１０３に進む。
【０１５０】
ステップＳ１０３において、CPU７２は、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致するかどうかを判定する。ステップＳ１０３において、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致しないと判定された場合、つまり、ユーザの正当性が確認されなかった場合、USBストレージメディア２のデータ書き込み処理を終了する。
【０１５１】
この場合、CPU７２は、例えば、エラーメッセージを、PC１に送信し、PC１では、CPU７２からのエラーメッセージが、出力部１７（図２）に表示される。
【０１５２】
一方、ステップＳ１０３において、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致すると判定された場合、つまり、ユーザの正当性が確認された場合、ステップＳ１０４に進み、CPU７２は、ステップＳ１０１で受信された制御データの新パスワードハッシュ部の情報が、現パスワードハッシュ部のパスワードハッシュと同一であると、フラッシュメモリ６２のスペシャルエリア８１に記憶されている暗号鍵を、フラッシュメモリコントローラ７５を介して取得する（読み出す）。
【０１５３】
すなわち、PC１の専用のアプリケーションプログラムは、USBストレージメディア２に対して暗号鍵を要求する場合、図１１左のフローチャートで説明したように、新パスワード部に、現パスワード部のパスワードハッシュと同一の情報を配置した制御データを構成する。専用のアプリケーションプログラムが、暗号鍵を要求する場合に、制御データの新パスワードハッシュ部に配置される、現パスワードハッシュ部のパスワードハッシュと同一の情報を、鍵要求情報ということとすると、CPU７２は、制御データの新パスワード部に、現パスワード部のパスワードハッシュと同一の情報である鍵要求情報が配置されている場合、フラッシュメモリ６２のスペシャルエリア８１から暗号鍵を読み出す。
【０１５４】
さらに、CPU７２は、スペシャルエリア８１から読み出した暗号鍵を、USB-I/F７１を介して、PC１に送信し、その暗号鍵を用いてPC１によって暗号化された暗号化データがPC１から送信されてくるのを待って、ステップＳ１０５に進む。
【０１５５】
ステップＳ１０５において、CPU７２は、PC１から送信されてくる暗号化データを受信し、ステップＳ１０６に進む。
【０１５６】
ステップＳ１０６において、CPU７２は、PC１からの暗号化データを、フラッシュメモリコントローラ７５を介して、フラッシュメモリ６２のセキュアエリア８２に書き込み、USBストレージメディア２のデータ書き込み処理を終了する。
【０１５７】
これにより、USBストレージメディア２のセキュアエリア８２には、スペシャルエリア８１に記憶されている暗号鍵を用いてPC１によって暗号化された暗号化データが記憶される。
【０１５８】
次に、図１２のフローチャートを参照して、PC１及びUSBストレージメディア２がセキュアエリア８２から暗号化データを読み出す処理であるデータ読み出し処理について説明する。
【０１５９】
図１２左は、PC１によるデータ読み出し処理を説明するフローチャートであり、図１２右は、USBストレージメディア２によるデータ読み出し処理を説明するフローチャートである。
【０１６０】
まず、図１２左を参照して、PC１によるデータ読み出し処理について説明する。
【０１６１】
データ読み出し処理は、例えば、USBストレージメディア２がPC１に装着された状態で、ユーザが、入力部１６を操作することによって、セキュアエリア８２に対するデータの読み出しを指示すると開始される。
【０１６２】
すなわち、専用のアプリケーションプログラムは、ユーザが、入力部１６を操作することによって、セキュアエリア８２に対するデータの読み出しを指示すると、パスワードの入力を促すメッセージを出力部１７に表示させる。
【０１６３】
ユーザがメッセージに従い、入力部１６を操作することにより、現在のパスワードである現パスワードを入力すると、専用のアプリケーションプログラムは、ステップＳ１２１において、ユーザによって入力された現パスワードを受付け、ステップＳ１２２に進む。
【０１６４】
ステップＳ１２２において、ハッシュ値演算部４２は、ステップＳ１２１で受付けられた現パスワードのハッシュ値である現パスワードハッシュを求め、通信制御部４３に供給して、ステップＳ１２３に進む。
【０１６５】
ステップＳ１２３において、通信制御部４３は、図７に示した制御データの現パスワードハッシュ部に、ハッシュ値演算部４２から供給された現パスワードハッシュを配置するとともに、新パスワードハッシュ部に、例えば、現パスワードハッシュと同一のパスワードハッシュ、つまり、鍵要求情報を配置することにより、制御データを構成し、USBストレージメディア２に送信する。そして、通信制御部４３は、後述するようにして、USBストレージメディア２から暗号鍵が送信されてくるのを待って、ステップＳ１２４に進む。
【０１６６】
ステップＳ１２４において、PC１の通信制御部４３は、USBストレージメディア２から送信されてくる暗号鍵を受信し、その暗号鍵を、暗号処理部４４に供給する。そして、通信制御部４３は、ユーザによって読み出しが指定された暗号化データがUSBストレージメディア２から送信されてくるのを待って、ステップＳ１２５に進む。
【０１６７】
ステップＳ１２５において、通信制御部４３は、USBストレージメディア２から送信されてくる暗号化データを受信し、その暗号化データを、暗号処理部４４に供給し、ステップＳ１２６に進む。
【０１６８】
ステップＳ１２６において、暗号処理部４４の復号部４４Ｂは、ステップＳ１２４で通信制御部４３から供給された暗号鍵を用いて、ステップＳ１２５で通信制御部４３から供給された暗号化データを復号して、PC１のデータ読み出し処理を終了する。
【０１６９】
これにより、USBストレージメディア２のセキュアエリア８２から、暗号化データが読み出され、その暗号化データは、スペシャルエリア８１に記憶されている暗号鍵を用いて復号される。
【０１７０】
次に、図１２右を参照して、USBストレージメディア２によるデータ読み出し処理について説明する。
【０１７１】
USBストレージメディア２のCPU７２（図４）は、PC１から制御データが送信されてくると、ステップＳ１３１において、PC１からの制御データを、USB-I/F７１を介して受信し、ステップＳ１３２に進む。
【０１７２】
ステップＳ１３２において、CPU７２は、フラッシュメモリ６２のスペシャルエリア８１に記憶されている内部パスワードハッシュをフラッシュメモリコントローラ７５を介して取得する（読み出す）。そして、CPU７２は、スペシャルエリア８１から読み出した内部パスワードハッシュとステップＳ１３１で受信した制御データの現パスワードハッシュ部のパスワードハッシュとを照合し、ステップＳ１３３に進む。
【０１７３】
ステップＳ１３３において、CPU７２は、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致するかどうかを判定する。ステップＳ１３３において、内部パスワードハッシュと現パスワードハッシュのパスワードハッシュとが一致しないと判定された場合、つまり、ユーザの正当性が確認されなかった場合、USBストレージメディア２のデータ読み出し処理を終了する。
【０１７４】
この場合、CPU７２は、例えば、エラーメッセージを、PC１に送信し、PC１では、CPU７２からのエラーメッセージが、出力部１７（図２）に表示される。
【０１７５】
一方、ステップＳ１３３において、内部パスワードハッシュと現パスワードハッシュ部のパスワードハッシュとが一致すると判定された場合、つまり、ユーザの正当性が確認された場合、ステップＳ１３４に進み、CPU７２は、ステップＳ１３１で受信された制御データの新パスワードハッシュ部の情報が、現パスワードハッシュ部のパスワードハッシュと同一であること、つまり、鍵要求情報であることを確認し、フラッシュメモリ６２のスペシャルエリア８１に記憶されている暗号鍵を、フラッシュメモリコントローラ７５を介して取得する（読み出す）。
【０１７６】
さらに、CPU７２は、スペシャルエリア８１から読み出した暗号鍵を、USB-I/F７１を介して、PC１に送信し、ステップＳ１３５に進む。
【０１７７】
ステップＳ１３５において、CPU７２は、ユーザによって読み出しが指定された暗号化データを、フラッシュメモリ５５を介して、フラッシュメモリ６２のセキュアエリア８２から読み出し、ステップＳ１３６に進む。
【０１７８】
ステップＳ１３６において、CPU７２は、ステップＳ１３５でセキュアエリア８２から読み出した暗号化データを、USB-I/F７１を介して、PC１に送信し、USBストレージメディア２のデータ読み出し処理を終了する。
【０１７９】
以上のように、USBストレージメディア２に、PC１によって生成された暗号鍵とパスワードハッシュ（内部パスワードハッシュ）を記憶するスペシャルエリア８１と、PC１によって暗号鍵を用いて暗号化された暗号化データを記憶するセキュアエリア８２とを、少なくとも有するフラッシュメモリ６２を設け、ユーザによる入力に基づいてPC１によって生成されたパスワードハッシュと、スペシャルエリア８１に記憶されているパスワードハッシュ（内部パスワードハッシュ）とに基づいてユーザの認証を行い、認証によりユーザの正当性が確認されたときに、スペシャルエリア８１に記憶されている暗号鍵を、USBストレージメディア２からPC１に送信するようにしたので、ユーザの正当性が確認されない限りセキュアエリア８２に記憶された暗号化データを復号することができないため、セキュアエリア８２に記憶された情報の漏洩を防止することができる。
【０１８０】
また、USBストレージメディア２では、暗号化及び復号という高コストな演算を行わないため、USBストレージメディア２は、セキュリティが考慮されていない通常のUSBストレージメディアと同程度の価格とすることができる。
【０１８１】
さらに、USBストレージメディア２は、セキュリティを確保するためのパスワードに対応するパスワードハッシュを内部に記憶する、いわゆるセルフコンテインドなデバイスとなっているので、専用のアプリケーションプログラムが稼動するPCであれば、そのPCに、USBストレージメディア２を装着することによって、上述した初期化処理、パスワード変更処理、暗号鍵変更処理、データ書き込み処理、及びデータ読み出し処理を行うことができる。
【０１８２】
次に、GUI(Graphical User Interface)を用いて、ドライブ（記憶装置）としてPC１に認識されたUSBストレージメディア２に対して、ファイルを読み書きする場合のPC１とUSBストレージメディア２による処理について説明する。
【０１８３】
PC１においては、USBストレージメディア２をドライブとして認識し、HDD(Hard Disk Drive)等の一般のドライブと同様に、ファイルの読み書きを行うことができる。
【０１８４】
すなわち、図１３は、PC１においてドライブとして認識されたUSBストレージメディア２のセキュアエリア８２の記憶内容を表すGUIとしてのドライブウィンドウ１０３を示している。
【０１８５】
ユーザは、ドライブウィンドウ１０３外にあるファイル（を表すアイコン）１０１をドラッグし、ドライブウィンドウ１０３内に移動して、ドラッグを解除する（ドロップする）ことにより、ファイル１０１を、ドライブウィンドウ１０３外からドライブウィンドウ１０３内に移動することができる。
【０１８６】
また、ユーザは、ドライブウィンドウ１０３内のファイル１０２をドラッグし、ドライブウィンドウ１０３外に移動して、ドラッグを解除することにより、ファイル１０２を、ドライブウィンドウ１０３内からドライブウィンドウ１０３外に移動することができる。
【０１８７】
即ち、ファイル１０１がドライブウィンドウ１０３外からドライブウィンドウ１０３内に移動されると、PC１のOSによって、ファイル１０１がドライブウィンドウ１０３内に移動されたことが検知され、専用のアプリケーションプログラムに通知される。専用のアプリケーションプログラムは、ファイル１０１がドライブウィンドウ１０３内に移動されたことの通知を、USBストレージメディア２へのデータの書き込みの指示として認識し、上述したPC１とUSBストレージメディア２によるデータ書き込み処理にしたがって、ファイル１０１を暗号鍵を用いて暗号化する。さらに、PC１のOSは、暗号化後のファイル１０１をセキュアエリア８２に書き込む。そして、専用のアプリケーションプログラムは、暗号化後のファイル１０１の書き込みが終了すると、OSを経由して、暗号化前のファイル１０１を消去する。
【０１８８】
一方、ファイル１０２がドライブアイコン１０３内からドライブアイコン１０３外に移動されると、PC１のOSによって、ファイル１０２がドライブウィンドウ１０３外に移動されたことが検知され、専用のアプリケーションプログラムに通知される。さらに、PC１のOSは、暗号化後のファイル１０２をセキュアエリア８２から読み出す。また、専用のアプリケーションプログラムは、ファイル１０２がドライブウィンドウ１０３外に移動されたことのOSからの通知を、USBストレージメディア２からのデータの読み出しの指示として認識し、上述したPC１とUSBストレージメディア２によるデータ読み出し処理にしたがって、暗号鍵を用いて、OSによって読み出された暗号化後のファイル１０２を復号する。そして、専用のアプリケーションプログラムは、復号が終了すると、OSを経由して、USBストレージメディア２のセキュアエリア８２に記憶されている暗号化後のファイル１０２、及びUSBストレージメディア２からPC１に読み出された暗号化後のファイル１０２を消去させる。
【０１８９】
ここで、図１１のデータ書き込み処理、及び図１２のデータ読み出し処理によれば、USBストレージメディア２に対する読み書きをするたびに、ユーザがパスワードを入力する必要があるが、データ書き込み処理またはデータ読み出し処理におけるユーザの認証により、一旦、ユーザの正当性が確認された後は、ユーザの正当性が確認されているとみなせる間は、ユーザによるパスワードの入力を不要とすることができる。その場合、ユーザは、PC１による暗号化または復号の処理を意識することなく、表面的には、暗号化や復号を行わない通常のファイルの読み書きと変わりないかのように、GUIを用いて、ドライブとしてPC１に認識されたUSBストレージメディア２に対して、ファイルを読み書きを行うことができる。
【０１９０】
なお、ユーザの正当性が確認されているとみなせる間、ユーザによるパスワードの入力を不要とする場合、図１１のデータ書き込み処理、または図１２のデータ読み出し処理が最初に行われた後、データ書き込み処理としては、図１１のステップＳ９５及びステップＳ９６、並びに、ステップＳ１０５及びステップＳ１０６の処理が行われ、データ読み出し処理としては、図１２のステップＳ１２５及びステップＳ１２６、並びに、ステップＳ１３５及びステップＳ１３６の処理が行われる。
【０１９１】
また、例えば、USBストレージメディア２がPC１から取り外された場合等、ユーザの正当性が確認されているとみなせなくなった場合には、PC１の専用のアプリケーションプログラムは、USBストレージメディア２から送信された暗号鍵を、内部から消去する。
【０１９２】
ここでは、暗号化方法の詳細については特に述べないが、PC１とUSBストレージメディア２の間の通信を暗号通信とした方が、セキュリティがより高まる事は言うまでも無いことである。
【０１９３】
本明細書において、プログラム記録媒体に格納されるプログラムを記述するステップは、記載された順序に沿って時系列的に行われる処理はもちろん、必ずしも時系列的に処理されなくとも、並列的あるいは個別に実行される処理をも含むものである。
【０１９４】
本発明は、USBストレージメディアの他、例えば、磁気ディスク、磁気テープ、DVD等の記憶媒体を用いた記憶装置（ドライブ）に適用することができる。
【０１９５】
なお、本発明の実施の形態は、上述した実施の形態に限定されるものではなく、本発明の要旨を逸脱しない範囲において種々の変更が可能である。
【図面の簡単な説明】
【０１９６】
【図１】本発明を適用したPC及びUSBストレージメディアの一実施の形態の概要を示す図である。
【図２】PC１の内部構成例を示すブロック図である。
【図３】PC１の機能的構成例を示すブロック図である。
【図４】USBストレージメディア２の内部構成例を示すブロック図である。
【図５】フラッシュメモリ６２の記憶領域のスペシャルエリア８１、セキュアエリア８２、及びオープンエリア８３を示す図である。
【図６】スペシャルエリア８１に記憶される内部パスワードハッシュと暗号鍵の例を示す図である。
【図７】PC１からUSBストレージメディア２に送信される制御データのフォーマットを示す図である。
【図８】PC１とUSBストレージメディア２による初期化処理を示すフローチャートである。
【図９】PC１とUSBストレージメディア２によるパスワード変更処理を示すフローチャートである。
【図１０】PC１とUSBストレージメディア２による暗号鍵変更処理を示すフローチャートである。
【図１１】PC１及びUSBストレージメディア２によるデータ書き込み処理を示すフローチャートである。
【図１２】PC１及びUSBストレージメディア２によるデータ読み出し処理を示すフローチャートである。
【図１３】USBストレージメディア２のセキュアエリア８２の記憶内容を表すドライブウィンドウ１０３を示す図である。
【符号の説明】
【０１９７】
１  PC，  １Ａ  USBコネクタ，  ２  USBストレージメディア，  ２Ａ  USBコネクタ，  １１  CPU，  １２  ROM，  １３  RAM，  １４  バス，  １５  入出力インターフェース，  １６  入力部，  １７  出力部，  １８  記憶部，  １９  通信部，  ２０  ドライブ，  ２１  リムーバブルメディア，  ２２  USB-I/F，  ４１  暗号鍵生成部  ，  ４２  ハッシュ値演算部，  ４３  通信制御部，  ４４  暗号処理部，  ４４Ａ  暗号化部，  ４４Ｂ  復号部，  ６１  USBストレージコントローラ，  ６２  フラッシュメモリ，  ６３  LED，  ７１  USB-IF，  ７２  CPU，  ７３  ROM，  ７４  RAM，  ７５  フラッシュメモリコントローラ，  ７６  LEDコントローラ，  ８１  スペシャルエリア，  ８２  セキュアエリア，  ８３  オープンエリア，  １０１，１０２  ファイル，  １０３  ドライブウィンドウ
【図１】
2008040597.tif 000003
【図２】
2008040597.tif 000004
【図３】
2008040597.tif 000005
【図４】
2008040597.tif 000006
【図５】
2008040597.tif 000007
【図６】
2008040597.tif 000008
【図７】
2008040597.tif 000009
【図８】
2008040597.tif 000010
【図９】
2008040597.tif 000011
【図１０】
2008040597.tif 000012
【図１１】
2008040597.tif 000013
【図１２】
2008040597.tif 000014
【図１３】
2008040597.tif 000015