(57)【要約】【課題】  ハードウエア暗号記憶装置における暗号鍵の安全な管理方法の提供。ハードウエア暗号記憶装置に複数種類の情報を記憶し、譲渡、廃棄、レンタル時等における、重要度、種類に応じて任意に情報を無効化する方法の提供。ハードウエア暗号記憶装置に複数種類の情報を記憶している場合において、廃棄時等において、どのような情報が記憶されているか判断することなくデータを無効化する方法の提供。【解決手段】  複数のパーティションを設定するステップと、各パーティションにそれぞれ固有のパーティション鍵を生成するステップと、パーティション鍵を暗号化するステップと、ホストから特定パーティションデータ無効化コマンドが発行されたとき、そのパーティション鍵の消去を実行するステップを実行する。【選択図】  図２
2010288123.tif 000002
【特許請求の範囲】
【請求項１】
複数のパーティションを設定するステップと、各パーティションにそれぞれ固有のパーティション鍵を生成するステップと、パーティション鍵を暗号化するステップと、ホストから特定パーティションデータ無効化コマンドが発行されたとき、そのパーティション鍵の消去を実行するステップを有する、記憶装置のセキュリティ方法。
【請求項２】
パーティション鍵を消去次第、パーティション鍵マップにおける当該パーティションのパーティション鍵をデフォルト鍵に変更することを特徴とする請求項１記載の、記憶装置のセキュリティ方法。
【請求項３】
パーティション鍵の消去を、そのパーティションに係る新たなパーティション鍵の自動設定により実行することを特徴とする、請求項１記載の記憶装置のセキュリティ方法。
【請求項４】
パーティション鍵マップに、消去してはいけないパーティション番号を予め属性として書き込んでおき、記憶部制御手段は、パーティション鍵消去コマンドを受け取ったとき、該属性を確認し、前記消去コマンドが消去してはいけないパーティションに対するものであるときホストにエラーを返すことを特徴とする請求項１乃至請求項３いずれか１項記載の、記憶装置のセキュリティ方法。
【請求項５】
ユーザが定義した複数のパーティションと、パーティションごと固有のパーティション鍵と、パーティション鍵を暗号化／復号化する手段と、パーティションごとのアドレスとパーティション鍵の関係を記憶しているパーティション鍵マップと、ホストからのコマンドに基づきパーティション鍵の消去を実行する手段、を有することを特徴とする記憶装置。
【請求項６】
パーティション鍵を消去次第、パーティション鍵マップにおける当該パーティションのパーティション鍵をデフォルト鍵に変更する手段をさらに有することを特徴とする請求項５記載の記憶装置。
【請求項７】
パーティション鍵の消去を、そのパーティションに係る新たなパーティション鍵を設定することにより実行することを特徴とする、請求項５記載の記憶装置。
【請求項８】
パーティション鍵マップに対し、消去してはいけないパーティション番号を予め属性として書き込んでおき、記憶部制御手段は、パーティション鍵消去コマンドを受け取ったとき、該属性を確認し、前記消去コマンドが消去してはいけないパーティションに対するものであるときホストにエラーを返すことを特徴とする請求項５乃至請求項７いずれか１項記載の記憶装置。
【請求項９】
ハードディスクドライブ又はソリッドステートドライブのいずれかである請求項５乃至請求項８いずれか１項記載の記憶装置。
【請求項１０】
当該記憶装置が組み込まれる情報機器の運用に必要なデータのみが格納される第１のパーティションと、ユーザデータのみが格納される第２のパーティションを少なくとも一つずつ有する請求項５乃至請求項９いずれか１項記載の記憶装置と該記憶装置にアクセスするホストをシステムとして組み込んでなる情報機器。
【請求項１１】
一又は複数のパーティションを設定するステップと、該パーティションに固有のパーティション鍵を生成するステップと、該パーティション鍵をデフォルト鍵で暗号化するステップと、ホストからコマンドが発行されたときデフォルト鍵の消去を実行するステップを有する、記憶装置のセキュリティ方法。
【請求項１２】
ユーザが定義した一または複数のパーティションに固有のパーティション鍵を生成する手段と、パーティション鍵をデフォルト鍵で暗号化する手段と、ホストからのコマンドに基づきデフォルト鍵の消去を実行する手段を有する記憶装置。
【請求項１３】
請求項１２の記憶装置と、該記憶装置にアクセスするホストからなるシステムを組み込んでなる情報機器。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はハードウエア暗号化手段を具備した記憶装置の改良されたセキュリティ方法、及び該方法を使用する記憶装置、該記憶装置を組み込んでなる情報機器に関する。
【背景技術】
【０００２】
ハードディスク（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、ＵＳＢメモリなどの記憶装置に記憶したデータの漏洩が問題となっており、そのため、セキュリティ方法としてパスワード認証をアクセスの条件としている。しかしながら、最近の報告によれば、サービス領域のＡＴＡパスワード設定フラグをオフにしてロック機能を無効にできるといい（パスワード解除）、事実、捜査機関向けに、斯かるパスワード解除装置が販売されているのが現状である。パスワードが解除されればデータは容易に読まれてしまう。パスワードが解除されない場合でも、記憶部を記憶装置から取り外して、データを直接読み取られる危険がある。
【０００３】
そこで、最近ではＡＥＳ（Ａｄｖａｎｃｅｄ Ｅｎｃｒｙｐｔｉｏｎ Ｓｔａｎｄａｒｄ）などの暗号化を用いてデータを記憶している。ＡＥＳはブロックと呼ばれる固定長（１２８ｂｉｔ）のデータを単位として、暗号化／復号化を共通の鍵で行
うものである。ＡＥＳでは３種類の鍵長が定義されており、１２８ｂｉｔ／１９２ｂｉｔ／２５６ｂｉｔのいずれかを用いることができる。鍵長が長いほど、鍵を全数検索する総当り攻撃などに強く、１２８ｂｉｔ／１９２ｂｉｔ／２５６ｂｉｔの鍵長は、現在の計算機の処理能力では解読に非現実的な時間を要するため安全とされている。
【０００４】
ＡＥＳ暗号化には、ホスト側で行うもの（ソフトウエア暗号化）があるが高価であり、システムパフォーマンスに影響があった。そこで最近は、専用のチップを組み込み、ＡＥＳ暗号化をデバイス内部で行う記憶装置（ハードウエア暗号化）が販売されている。この場合、何らかの方法により暗号鍵のデータが把握されると、記憶しているデータが読み出されてしまう危険性は否定できない。
【０００５】
また、マルチファンクションプリンタなどの情報機器に記憶装置を組み込んで使用する場合、記憶装置には情報機器に必要な情報（オペレーティングシステムやアプリケーションプログラム）と使用者の機密情報（マルチファンクションプリンタの場合で言えば、プリント用の撮像データ）の両者が記憶される。情報機器を廃棄する場合は記憶データの全部を消去してもよいが、転売、レンタルなどで再利用する場合、機密情報は消去することが望ましいが、機器の運用に必要な情報は資源の有効活用の観点から、そのまま残すことが好ましい。また廃棄する場合は、どのような情報が記憶されているか判断することなく、データを無効化できることが望ましい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００５−５０４７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
そこで本発明が解決すべき第１の課題は、ハードウエア暗号記憶装置における暗号鍵の安全な管理方法の提供にある。第２の課題はハードウエア暗号記憶装置に複数種類の情報を記憶し、譲渡、廃棄、レンタル時等において、重要度、種類に応じて任意に情報を無効化する方法の提供にある。第３の課題は、ハードウエア暗号記憶装置に複数種類の情報を記憶している場合において、廃棄時等において、どのような情報が記憶されているか判断することなくデータを無効化する方法の提供にある。その他の課題は、明細書、図面、特に特許請求の範囲により自ずと明らかとなろう。
【課題を解決するための手段】
【０００８】
本発明では、上記課題解決のため本発明が採用する新規な特徴的構成により上記課題を解決する。即ち本発明方法の第１の特徴は、記憶装置に複数のパーティションを設けるとともに、各パーティションにそれぞれ固有のパーティション鍵を定義する。パーティション鍵は暗号化して管理する。ホストから特定パーティションのデータを無効化するコマンドが発行されたときは、そのパーティション鍵の消去を実行する。本発明方法の第２の特徴は、記憶装置に一又は複数のパーティションを設けるとともに、パーティションに固有のパーティション鍵を定義する。パーティション鍵はデフォルト鍵で暗号化して管理する。ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵を消去する。その他、本発明は、特許請求範囲において上位概念から下位概念に亙り列挙する新規な構成的特長により上記課題を解決する。
【発明の効果】
【０００９】
本発明によれば、データを暗号化して記憶するとともに、暗号／復号化鍵を暗号化して管理するので、パスワード機能が解除され、或いは記憶部が記憶装置から取り外されても、データが解読されることがない。また記憶装置にユーザが複数のパーティションを設けるので、重要度、種類に応じてデータを記憶できるとともに、パーティションごとに固有の暗号化／復号化鍵を定義するので、ホストから特定パーティションのデータを無効化するコマンドが発行されたとき、そのパーティション固有の鍵を消去することにより、任意のデータのみ無効化し、その余のデータは継続使用することができる。また、パーティション鍵をデフォルト鍵で暗号化して管理することにより、ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵の消去を実行することにより、暗号化された全データを無効化することができる。また無効化を瞬時に実行できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の記憶装置の基本構成例である。
【図２】ＮＡＮＤ型フラッシュメモリを用いた記憶装置の構成例である。
【図３】記憶部の領域例である。
【図４】パーティション鍵生成前のパーティション鍵マップの構成例である。
【図５】パーティション鍵マップの構成例である。
【図６】パーティション鍵マップの他の構成例である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための最良の形態について図面を用いて説明するが、本発明は特許請求の範囲内において種々の形態を採ることができ、下記実施形態に限定されないことはいうまでもない。
【００１２】
（システム基本構成）
図１は、本発明の実施形態に係る記憶装置の基本構成例である。図１に示すように、本発明のセキュリティ方法は、本発明の記憶装置２と、記憶装置２に対するメディアアクセス主体であるホスト１とからなるシステムで実行される。記憶装置２は、ホスト１からコマンド（オペレーションコード、指定アドレス）や書き込み用データを含む）を受け取ったり、読み出したデータやコマンドステータスをホスト１に送出するデータデバイスインターフェース２１と、データを格納する記憶部３０と、記憶部３０へのデータの書き込みや記憶部３０からのデータの読み出しの制御を実行する記憶部制御手段３１と、ホスト１から送られたデータを暗号化するとともに、記憶部３０から読み出されたデータを復号化する暗号／復号処理部２０を有する。
【００１３】
暗号／復号処理部２０は、鍵生成部２７と、鍵生成部２７で生成された鍵を用いて所定のロジックに基づきデータの暗号化／復号化を実行する暗号化／復号化部２４と、暗号化／復号化部２４でデータを暗号化／復号化するための鍵を選択して暗号化／復号化部２４に設定する暗号鍵設定回路２３と、鍵暗号化／復号化部２８を有する。これらはプロセッサ２５により統括的に制御される。暗号化／復号化部２４は独自のハードウエアロジックで構成され、プロセッサ２５の処理に拠らないため、非常に高速で処理を実行できる。ＲＡＭ２６は、揮発性メモリであり、プロセッサ２５の作業領域である。暗号鍵設定回路２３は、後述する各種の暗号鍵をシステム起動中格納する暗号鍵格納部２３２、暗号化又は復号化を前記いずれの鍵で実行するかを判定する鍵判定回路２３１、判定回路２３１からの信号に基づき選択された鍵データを暗号化／復号化部２４に入力、設定する鍵データ出力部２３３を有する。記憶部３０は、記憶領域３３と周知の管理領域３４を有し、管理領域３４は後述するデフォルト鍵、パーティション鍵、並びにパーティション鍵マップ３４１を格納する。鍵暗号化／復号化部２８は、プロセッサ２５の制御に基づき、デフォルト鍵、パーティション鍵の暗号化及び復号化を行う。
【００１４】
記憶装置２は、ＨＤＤの他、記憶部３０にＮＡＮＤ型フラッシュメモリのような不揮発性半導体記憶装置を用いたＳＳＤなどで構成することができる。ＨＤＤの場合、記憶部制御手段は、磁気ヘッドのシーク、データの書き込み、読み出しを制御する。ＳＳＤの場合、記憶部制御手段はＮＡＮＤフラッシュメモリコントローラで構成される。
【００１５】
ホスト１との間のデバイスインターフェース２１は、ＩＤＥインターフェースやシリアルＡＴＡインターフェースで構成され得る。記憶装置２はホスト１に挿抜して使用するUSBメモリで構成してもよい。
【００１６】
以下、本発明の記憶装置２がＳＳＤで構成されるとともに、情報機器に組み込んで使用される例について、図２乃至図５を用いて説明する。ＳＳＤは図２に示すように、記憶部がＮＡＮＤ型フラッシュメモリ４０で構成される。なお図２では、図１と同一の機能及び構成を有する要素については、同一の符号を付している。
【００１７】
本実施形態は、記憶部がＮＡＮＤ型フラッシュメモリ４０で構成されるため、記憶部制御手段は、フラッシュメモリコントローラ４１で構成される。このコントローラ４１は、ＮＡＮＤ型フラッシュメモリ４０にコマンドを発行しデータの読み書きを実行するもので、ＮＡＮＤ型フラッシュメモリ特有のｂａｄブロックに対処するための不図示のエラー訂正回路、論理ブロックアドレス/物理ブロックアドレス変換テーブルを有する。
【００１８】
（初期設定）
はじめに情報機器のベンダーは、初期設定としてＳＳＤを、ＯＳその他、情報機器の運用に必要なソフトウエアを書き込むマシンに接続する。マシンはハードウエア暗号の初期設定ツールがインストールされている専用のコンピュータで構成され、図２のホスト１がこれに相当する。マシンに電源を投入後、まず初期設定ツールであるソフトウエアを用いてデフォルト鍵生成を行う。デフォルト鍵は、鍵生成部２７が有する乱数発生器によって生成される。このデフォルト鍵を“ＫｅｙＤ”とする。デフォルト鍵は初期設定のとき生成されるもので、その後変更されることはないが、再利用時に再度設定することもできる。
【００１９】
デフォルト鍵は適当な値を暗号鍵として、鍵暗号化／復号化回路２８よって暗号化され、管理領域４５に格納される。記憶装置が外付けのＳＳＤのように一般ユーザが使用する場合、盗難に備えてＡＴＡが標準機能として有するパスワードを設定できるが、デフォルト鍵生成時にこのパスワードが設定されている場合は、パスワードを暗号鍵としてデフォルト鍵が暗号化される。デフォルト鍵（平文）は、パスワードが変更される度に、最新のパスワードを暗号鍵として暗号化される。
【００２０】
尚パスワードは一方向ハッシュ関数を通してハッシュ値に変換され、管理領域４５に格納され、以降の記憶装置２でのパスワード照合にそのまま利用される。即ち、記憶装置２を組み込んだ若しくは記憶装置２を接続したシステムに、電源が投入された後、記憶装置２へのアクセス許可を受けるためにＡＴＡパスワードが入力されると、同様にハッシュ関数によってハッシュ値に変換される。そして、管理領域４５に記憶しているハッシュ値と照合され、両者が一致するとアクセスが許可される。ハッシュ値が元の状態に戻すことができない性質を利用したものであり、これによりパスワードを安全に管理することができる。
【００２１】
尚、デフォルト鍵と後述するパーティション鍵の生成は、プロセッサ２５がコマンドを解釈して、鍵生成部２７によって実行するものである。暗号化されたデフォルト鍵の管理領域４５への格納はデフォルト鍵生成コマンドに付随して一括して実行される。暗号化されたパーティション鍵の管理領域４５への格納も、同様にパーティション鍵の生成に付随して実行される。内部処理としては、プロセッサ２５がフラッシュメモリコントローラ４１にコマンドを発行して実行する。
【００２２】
デフォルト鍵は、初期設定の際に生成される暗号鍵であって、以下の機能を有する。
デフォルト鍵を生成すると、更のＳＳＤ（パーティション設定前）にベンダーに
よって何らかのシステム上必要なデータが書き込まれていても、データ読み出しの際、そのデータはデフォルト鍵で復号化されてから読み出されるので、意味のないランダムなデータが読み出される。ユーザが後述するパーティションの設定後、パーティション鍵の生成をしなかった場合（ｄｅｆａｕｌｔ）でも、その後ホストから送出されるデータはデフォルト鍵で自動的に暗号化される。後述するパーティションテーブルやマスターブートレコードのように、パーティションで定義されていない領域に対するホストからの書き込みデータを暗号化する。詳しくは後述する。
【００２３】
次に、必要な数だけパーティションを設定する。図３では、パーティション“０”（５２）乃至パーティション“２”（５４）を設定した様子を示している。各パーティションで構成される領域の記憶容量は、そこに格納することが予定されているファイルの容量を勘案して決定する。マシンが初期設定者からパーティション設定の指示を受けると、マシンは記憶領域４４をどのように分割して使うか、その内容をMBR記憶領域５１内のパーテションテーブル５１１へ書き込みます。この書き込みはデフォルト鍵によって暗号化されて実行されるとともに、平文データがＲＡＭ２６に一時記憶される。
【００２４】
プロセッサ２５は、ＲＡＭ２６に一時記憶されているパーティションテーブル５１１のデータを参照し、各パーティションのアドレス（論理セクタアドレス）を、管理領域４５に記憶させるためのコマンドをフラッシュメモリコントローラ４１に発行する。コマンドパラメータとして、パーティション番号、パーティションの先頭セクタアドレスと終了セクタアドレス、若しくは、パーティション番号、パーティションの先頭アドレスとセクタ数を指定する。このコマンドは、後述するパーティション鍵マップ３４１を生成するためのものである。図４は、記憶された状態を模式的に表したものであり、後述するパーティション鍵を生成したときには、パーティション鍵マップ３４１として完成されるものである。図示するように、この段階では、各パーティションの先頭セクタアドレスと終了セクタアドレス（図４（ａ））、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数（図４（ｂ））で構成される。
【００２５】
上記、ユーザが設定したパーティションは、ホスト１からドライブと認識され得る領域を構成する。
【００２６】
次に、鍵生成部２７が持っている乱数発生器を使って各パーティションの暗号鍵を生成する。本実施例ではパーティションを３つ設定しているので、パーティション鍵を、Ｋｅｙ“０”乃至Ｋｅｙ“２”の３つ生成するものとする。パーティションとパーティション鍵番号の関係は図３に示す通り、パーティション“０”、“１”、“２”にそれぞれ対応して、パーティション鍵Ｋｅｙ“０”、Ｋｅｙ“１”、Ｋｅｙ“２”とする。そして生成したパーティション鍵を、デフォルト鍵（平文）を暗号鍵として、鍵暗号化／復号化回路２８よって暗号化し、管理領域４５の所定の領域に格納する（詳しくは後述する）。
【００２７】
このときプロセッサ２５は、管理領域４５に、パーティション設定時に記憶された各パーティションのセクタアドレス情報に対し、各パーティションを暗号化するパーティション鍵との関係を追記し、パーティション鍵マップ３４１を完成する。
図５は完成したパーティション鍵マップ３４１の例である。図示するように、各パーティションの先頭セクタアドレスと終了セクタアドレス並びに対応するパーティション鍵の関係（図５（ａ））、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数並びに対応するパーティション鍵の関係（図５（ｂ））で構成される。図５において、対応暗号鍵として、Ｋｅｙ０乃至Ｋｅｙ２と記載しているが、これはＫｅｙのデータではない。実際にはＫｅｙ番号を特定する情報、例えばそのＫｅｙのＩＤ番号である。
【００２８】
次にパーティションへ、組込みが予定されている情報機器の運用に必要なソフトウエアを格納する。具体的には、図３に示すように、パーティション“０”にはＯＳ５２０を、パーティション“１”には、情報機器、例えばマルチファンクションプリンタを運用するために必要な各種アプリケーションプログラム５３０を格納する。このデータはファイルシステムによってファイルとして記憶される。ＯＳ５２０を格納した際、マシンはＭＢＲ記憶領域５１にブートローダ５１２を記録する。ブートローダ５１２は、後述するように、デフォルト鍵によって暗号化されて記録される。
【００２９】
ホスト１から書き込み指令されるＯＳ５２０はパーティション鍵Ｋｅｙ“０”を暗号鍵として、アプリケーションプログラム５３０はＫｅｙ“１”を暗号鍵として、暗号化／復号化部２４で暗号化してパーティションに格納される。このようにして設定したＳＳＤを、予定されている情報機器に組み込む。記憶装置２は情報機器にすでに組み込まれているホスト１に接続されて使用される。この場合のホスト１はＣＰＵが実装されているＣＰＵボードで構成することができる。パーティション“２”はユーザデータ領域、例えばマルチファンクションプリンタのスキャナで撮像されたプリント用データが格納される領域で、最も機密性の高いパーティションである。プリント用のデータが撮像されると、Ｋｅｙ“２”により撮像データが暗号化されてパーティション“２”に格納される。
【００３０】
以下、（１）デフォルト鍵の暗号化／復号化、（２）パーティション鍵の暗号化／復号化、（３）ホストから受け取ったデータを暗号化し、ユーザが定義したパーティションに格納する手順、（４）ユーザが定義したパーティションに格納しているデータを読み出し、パーティション鍵を使って復号化しホストに送出する手順、並びに（５）デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されていない領域へ格納する手順について、図２を用いて順に説明する。
【００３１】
（１）デフォルト鍵の暗号化／復号化；
上記、「初期設定」の項で述べたように、デフォルト鍵が生成されると、鍵暗号化／復号化部２８で暗号化され、管理領域４５に不揮発的に格納されて管理される。以下においては、便宜上、デフォルト鍵を、ＡＴＡパスワードを暗号鍵として暗号化する方法について述べる。鍵の暗号化／復号化は下記（３）で使用するものと同じ論理回路で実行する方式、ファームウエアにＡＥＳアルゴリズムを実装して実行する方式など種々の方式で実行することができる。アルゴリズムは、ＡＥＳ方式の他、Ｔｒｉｐｌｅ  ＤＥＳ方式など他の暗号化アルゴリズムでもよい。以下、暗号化／復号化部２８は、便宜上、詳細には追って説明するＡＥＳ方式の回路で実行するものとして説明する。
【００３２】
暗号鍵を暗号化する理由は、暗号鍵が平文のまま管理領域４５で管理されると、記憶装置２を分解してＮＡＮＤフラッシュメモリ４０から暗号鍵が読み取られてしまい、暗号化されているユーザデータが解読されてしまう危険性があるからである。    
【００３３】
初期設定時にパスワード設定を行うと、パスワードは揮発性ＲＡＭ２６に一時記憶される。プロセッサ２５は、このパスワードを暗号鍵として鍵暗号化／復号化回路２８の鍵入力部（図示せず）に入力して設定するとともに、鍵暗号化／復号化回路２８の暗号化用データ入力部にデフォルト鍵を入力する。これによりデフォルト鍵が暗号化され、暗号化データ出力部より出力する。プロセッサ２５はフラッシュメモリコントローラ４１にコマンドを発行し、暗号化されたデフォルト鍵を管理領域４５に格納する。
【００３４】
システムに電源が投入され、パスワードが入力されるとパスワード照合が行われ、アクセス許可がなされるとデフォルト鍵（暗号文）が管理領域４５から読み出され、鍵暗号化／復号化回路２８の復号化用データ入力部に入力されるとともに、システム電源投入後にユーザが入力しＲＡＭ２６に記憶しているパスワードを復号鍵として鍵暗号化／復号化回路２８の鍵入力部に入力、設定する。これによりデフォルト鍵が復号化され、復号化データ出力部より出力し、ＲＡＭ２６に一時記憶される。
【００３５】
（２）パーティション鍵の暗号化／復号化
パーティション鍵が生成されると、プロセッサ２５は、パーティション鍵のデータを鍵暗号化／復号化部２８の暗号用データ入力部に入力するとともに、先に設定しているデフォルト鍵（平文）を暗号鍵として鍵暗号化／復号化部２８の鍵入力部に入力、設定して暗号化する。
【００３６】
システムに電源が投入され、パスワードが入力されると、パスワード照合が行われ、アクセス許可が成されると、暗号化されたパーティション鍵が管理領域４５から読み出され、プロセッサ２５は、鍵暗号化／復号化部２８の復号用データ入力部に入力するとともに、デフォルト鍵（平文）を復号鍵として鍵暗号化／復号化部２８の鍵入力部に入力、設定する。これにより復号化されたパーティション鍵が復号化データ出力部から出力し、揮発性ＲＡＭ２６に一時的に記憶される。
【００３７】
（３）ホストから受け取ったデータを暗号化しパーティションに格納する手順
以下、図２を用いて、ホスト１から受け取ったデータを暗号化してパーティション“２”に格納する手順について、情報機器起動後の状態から説明する。
【００３８】
（ａ）パーティション鍵マップと暗号鍵のセッティング
システムに電源が投入されてパスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、管理領域４５に格納しているパーティション鍵マップ３４１を読み出して鍵判定回路２３１にセッティングするとともに、管理領域４５に格納されている暗号化されているデフォルト鍵、パーティション鍵を読み出して、上述の手順に基づきすべて復号化して、暗号鍵格納部２３２にセットする。暗号鍵格納部２３２は揮発性メモリで構成する。これによりホストから送出されるデータの暗号化の準備が完了する。
【００３９】
（ｂ）データの入力、アドレスの通知
ホスト１から書き込みコマンドが送られると、デバイスインターフェース２１を介して、アドレス（ホストＬＢＡ）とデータが暗号化／復号化部２４に入力される。データは暗号化／復号化部２４の暗号化／復号化回路２４１の暗号化データ入力部ａに入力する。先頭セクタアドレスは暗号化／復号化部２４のセクタアドレス更新回路２４２に入力し、セクタアドレス更新回路２４２はセクタアドレスを暗号鍵設定回路２３の鍵判定回路２３１に送る。
【００４０】
（ｃ）暗号鍵の選択
鍵判定回路２３１は先にセットされているパーティション鍵マップ３４１を参照して、通知されたセクタアドレスに基づき、どのパーティション鍵を使って暗号化すべきかを判定し、鍵データ出力部２３３に、該当するパーティション鍵選択信号を送る。
【００４１】
（ｄ）暗号鍵の設定、データの暗号化
鍵データ出力部２３３は暗号鍵格納部２３２から、選択されたパーティション鍵のデータを読み出して、暗号化／復号化部２４の鍵入力部ｂに入力し、設定する。データが入力部ａに入力されるとデータの暗号化が開始される。暗号化はブロックと呼ばれる固定長１２８ｂｉｔずつ実行される。暗号化が１セクタ（５１２ｂｙｔｅ）終了する度に、セクタアドレス更新回路はセクタ情報を１つインクリメントして、次に暗号化するデータのセクタアドレス情報を鍵選択回路２３１に送る。これは、暗号化に必要なパーティション鍵を常時監視させ、適切な暗号化を実行させるためである。暗号化が終了したデータは、暗号化データ出力部ｃからバッファ２９に出力する。
【００４２】
（ｅ）フラッシュメモリコントローラへの入力
プロセッサ２５はホスト１から受け取ったコマンドを解釈し、フラッシュメモリコントローラ４１に書き込みコマンドを発行するとともに（オペレーションコードとアドレスに関する情報を含む）、バッファ２９に溜まったデータをＮＡＮＤ型フラッシュメモリ４０に書き込む。尚、暗号化とメモリ４０に対する書き込み動作は同時並行して実施することができる。
【００４３】
（ｆ）ＮＡＮＤ型フラッシュメモリ（パーティション“２”）への書き込み
フラッシュメモリコントローラ４１では、論理ブロックアドレス／物理ブロックアドレス変換テーブルを参照して、通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出し、不図示のエラー訂正回路のＥＮＤＥＣで生成したエラー訂正符号とともに、バッファ２９から取り出したデータを、割り出した物理ブロックアドレスに書き込むようＮＡＮＤフラッシュメモリ４０にコマンドを発行する。ＮＡＮＤフラッシュメモリ４０はコマンドにしたがって、指定されたアドレスに暗号化されたデータを書き込む。以上でデータの暗号化と書き込みが完了する。
【００４４】
（４）パーティションに格納しているデータを読み出し、復号化してホストに送出する手順
プロセッサ２５がホスト１からデバイスインターフェース２１を介してｒｅａｄコマンドを受領すると、先頭セクタアドレス（ホストＬＢＡ）を暗号化／復号化部２４に設定する。
【００４５】
暗号化／復号化部２４のアドレス更新回路２４２は、先に設定されたアドレスをラッチしておき、セクタアドレスを鍵判定回路２３１に送る。鍵判定回路２３１は、このアドレスに基づきパーティション鍵マップ３４１を参照し、復号に必要な鍵を判定し、鍵選択回路２３２に通知し、鍵データ出力部２３３から出力させ、暗号化／復号化部２４の鍵入力部ｂにセットし、復号化用データの入力に待機する。復号に用いる鍵は暗号化に用いた鍵と同じ鍵である。即ち、暗号鍵と復号鍵は共通鍵となっている。
【００４６】
プロセッサ２５はホスト１から受け取ったコマンドを解釈し、フラッシュメモリコントローラ４１に対して読み出しコマンドを発行する。このコマンドには読み出すべきデータのアドレス情報を含む。フラッシュメモリコントローラ４１は、論理ブロックアドレス／物理ブロックアドレス変換テーブルを参照して、アドレスとして通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出してデータを読み出し、エラー訂正回路によりエラー有無のチェックを行い、エラーがあれば訂正し、データを暗号化／復号化部２４の復号用データ入力部ｃに入力する。データ入力と同時に復号化が開始される。
【００４７】
復号化は暗号化と同じく１２８ｂｉｔずつ実行される。１セクタの復号が終了する度に、セクタ情報を１つインクリメントして、そのセクタアドレス情報が、セクタアドレス更新回路２４２から鍵判定回路２３１に通知される。復号化が終了すると、暗号化／復号化部２４の復号化データ出力部ａより、復号化されたデータがデバイスインターフェース２１を介してホスト１に送出される。ｒｅａｄコマンドに係るすべてのデータが送出されるとｒｅａｄコマンドに対する処理が完了する。
【００４８】
（５）デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されてい
ない領域へ格納する手順
上述の通り、パーティションが設定されると、マシン側のＯＳよりパーティションテーブルデータの書き込みコマンドがマシン側から入力され、パーティションテーブルデータが暗号化／復号化部２４の暗号用データ入力部ａに入力される。プロセッサ２５は、データの先頭セクタアドレスを鍵判定回路２３１に送ると、鍵判定回路２３１はパーティション鍵マップ３４１を参照し、通知された先頭セクタアドレスがいずれのパーティションにも属さないため、暗号鍵がデフォルト鍵であると判定し、デフォルト鍵データ（平文）を暗号鍵として暗号化／復号化部２４の鍵入力部ｂに入力、設定する。これにより、パーティションテーブルデータの暗号化が開始される。
【００４９】
一方プロセッサ２５は、フラッシュメモリコントローラ４１に書き込みコマンド（オペレーションコードとアドレスの情報を含む）を送る。フラッシュメモリコントローラ４１が、暗号文を受け取ると、アドレスとして指定された論理ブロックアドレスを、物理ブロックアドレス／論理ブロックアドレス変換テーブルを用いて変換した物理ブロックアドレスに、エラー訂正符号とともにデータを指定されたアドレスに書き込む。ＭＢＲ記憶領域５１は、通常、セクタアドレス “０”に予定されている。ＯＳ５２０を書き込んだ後は、マシン側からブートローダ５１２の書き込みコマンドが発行される。この場合も、パーティションテーブルと同様な手順で、指定されたアドレスにデータを書き込む。
【００５０】
（変更例）
上述した実施形態では、初期設定としてはじめにデフォルト鍵を生成した例を示したが、初期設定を行う段階ですでにベンダーによりデフォルト鍵が生成されている場合は必要ではない。またユーザがパーティション鍵を生成することを当然予定されてものとしてみれば、デフォルト鍵は必ずしも必要ではない。その場合、パーティション鍵を暗号化する場合は、ＡＴＡパスワード（平文）を鍵としてパーティション鍵を暗号化すればよい。ＡＴＡパスワードが設定されない場合は、適当な値で暗号化すればよい。また、論理ブロックアドレス／物理ブロックアドレス変換テーブルやエラー訂正回路をプロセッサ２５に持たせ、プロセッサ２５がフラッシュメモリコントローラ４１の役割を兼ねてもよい。その場合、フラッシュメモリコントローラ４１は不要とであり、プロセッサ２５からのコマンドとバッファ２９からのデータは、ＮＡＮＤフラッシュメモリ４０のＮＡＮＤインターフェースに直接入力すればよい。
【００５１】
（ユーザ領域のデータの消去）
本実施形態の記憶装置２を組み込んだ情報機器は再利用される場合がある。資産の有効活用の観点からすれば、ＯＳやアプリケーションプログラムなど機器の運用に必要なプログラムは転売時に削除せず資産として、そのまま後の使用者に使用させることが好ましい。一方、機密情報が格納されている可能性のある特定のユーザデータ領域、例えば、本実施形態におけるパーティション“２”の撮像データは、前使用者の機密データが記憶されているため、転売時には消去することが望ましい。
【００５２】
上記の観点に立った場合、本実施形態例において消去すべきは、パーティション“２”に係るデータのみであるから、フラッシュメモリコントローラ４１にパーティションデータ無効化コマンドを解釈する手段を設け、ホスト１から該コマンドが発行されたときは、そのパーティション鍵を消去する。ここで消去とは、パーティション鍵自体を完全に消去し、以降そのパーティションに記憶されている暗号化されたデータ（のみ）を解読不可能にすることをいう。パーティションデータ無効化コマンドは、専用のオペレーションコードと無効化の対象となるパーティション番号で定義することができる。パーティション鍵が消去されると、そのパーティションのデータは以降、復号化して読み出すことはできない。
【００５３】
パーティション鍵消去方法例１として、パーティションデータ無効化コマンドを受け取ったプロセッサ２５が、当該コマンドの実行をフラッシュメモリコントローラ４１にリクエストし、コントローラ４１内のプロセッサがコマンドのオペレーションコードを解釈し、管理領域４５に格納されているＫｅｙ２を消去する。この消去はＫｅｙ２を記憶している物理ブロックの当該Ｋｅｙ２以外のデータを他のブロックに一旦退避させ、元のブロックをＮＡＮＤ型フラッシュメモリが有するｅｒａｓｅコマンドでブロック消去（セル電荷の除去）し、退避していたブロックのデータを元のブロックに書き戻すことにより行う。このとき退避先のブロックの消去も実行する。
【００５４】
新たにパーティション鍵“Ｋｅｙ２”を設定するのは機器の性質上メンテナンスの一環として当該情報機器に詳しい専用の業者（初期設定ソフトを用いて行う）である場合も想定される。この場合パーティション“２”のデータが完全消去されていれば、データを見られてしまうという心配をしなくて済み、したがって前使用者は安心して当該情報機器を再利用にまわすことができ、資源の有効活用を図ることができる。
【００５５】
パーティション鍵“Ｋｅｙ２”を消去するとき、パーティション鍵マップ３４１におけるパーティション“２”に対応する暗号鍵を、“デフォルト鍵”に書き換えるとよい。こうすれば、パーティション“２”に対する以降の書き込みは、デフォルト鍵によって自動的に暗号化されて記憶され、パーティション鍵の新たな設定をしなくても、継続使用することができる。仮にデータにアクセスしても、旧パーティション鍵“Ｋｅｙ２”で暗号化されたデータがデフォルト鍵で復号化されるので、ランダムなデータが読み出されるだけで、機密漏洩の心配はない。
【００５６】
この他パーティション鍵消去方法例２として、パーティション鍵“Ｋｅｙ２”の消去を、パーティション“２”の新たなパーティション鍵の設定により実行してもよい。これは、プロセッサ２５がパーティション消去コマンドを受けたとき、新たなパーティション鍵“Ｋｅｙ２”を生成、暗号化するとともに、フラッシュメモリコントローラ４１にコマンドを発行し、暗号化したあらたなパーティション鍵“Ｋｅｙ２”のデータを渡して管理領域４５に格納させる。この格納は、旧パーティション鍵に対して新たな鍵を上書きすることにより実行する。なおこの場合はパーティション鍵マップの書き換えは不要であることが理解されよう。
【００５７】
また、情報機器に電源投入された際、パーティションデータ無効化コマンドを記憶装置２（プロセッサ２５）に発行しておき、印刷が終わって一定の状態（例えば、機器がスタンバイ状態）になったときに、パーティション鍵“Ｋｅｙ２”を自動的に更新（新しいパーティション鍵を設定）してもよい。あるいは所定時間間隔、たとえば１２時間おきに、タイマーイベントとして実行してもよい。
【００５８】
記憶装置２が外付けのＳＳＤの場合は、ユーザがパーティションを任意の数設定することができ、使い方もまちまちであるが、特定パーティションを機密情報格納用として使用し、使用途中で不要になった機密情報を削除したい場合も生じる。ユーザは、パーティション設定時に、予めどのパーティションを機密情報格納用とするか把握することができるので、機密情報を削除する場合は、そのパーティションに係るパーティション鍵のみ消去すればよい。消去するには専用のアプリケーションソフトによって実行できる。
【００５９】
パーティション設定時に消去してよいパーティションと、消去してはいけないパーティションを定義できる場合は、その情報を、図６の３４１（ｃ）、３４１（ｄ）に示すように、パーティション鍵マップ３４１に属性として書き込むようにしてもよい。属性は、ホスト１からプロセッサ２５にコマンドを発行し、パーティション鍵マップ３４１の然るべき場所に書き込めばよい。システム稼動中、パーティション鍵マップをＲＡＭ２６に記憶させておき、フラッシュメモリコントローラ４１がパーティション鍵消去コマンドを受け取ったときに、パーティション鍵マップ３４１の属性を確認し、消去禁止のパーティションに対する消去コマンドであった場合はホスト１にエラーを返す。これにより、消去してはいけないデータを誤って消去してしまうことがない。これに付随し、ＯＳ５２０を格納したパーティション“０”とアプリケーションプログラム５２１を格納したパーティション“１”を、読み出し専用の領域に設定するとよい。
【００６０】
なお、パスワードは記憶装置２のアクセスとデフォルト鍵の暗号化に使用されるだけで、再利用者があらたなパスワードを設定してもあらたなデフォルト鍵が生成されるわけではない。パスワードが設定されない場合は、記憶装置２にだれでも自由にアクセスでき、暗号化されて記憶されているデータは自動的に復号化して読み出される。よって、パスワードを設定しない場合、暗号化することはあまり重要な意味を持たない。
【００６１】
この点、ホスト１から全暗号化データを無効化するコマンドを発行し、デフォルト鍵を消去するようにすれば、パーティション鍵の復号化を実行できなくなるので、パーティションで定義されている領域だけでなく、記憶領域４４に暗号化されて記憶されているすべてのデータを解読不能にすることができる。記憶装置２やこれを組み込んだ情報機器を廃棄する場合、記憶装置２を物理的に破壊するなどしなくてもよいため、非常に利便性の高い記憶装置、情報機器を提供することができる。また、本記憶装置１は、全体を一つのＬＳＩで構成することができる。
【００６２】
以上、本実施形態例によれば、パスワード機能を解除し、或いは記憶部を取り外しても、暗号化されたデータしか読み出せない。またパスワードはハッシュ値を以って管理され、且つ、パーティション鍵はデフォルト鍵で暗号化され、デフォルト鍵はパスワードで暗号化されて管理されるので、パスワード、デフォルト鍵、パーティション鍵のいずれも解読される心配がない。即ち暗号化されたデータが解読される可能性は極めて低い。尚且つ、転売、リサイクル、或いは廃棄のときに、暗号鍵を消去すればデータは無効となり、記憶装置に一層のセキュリティを確保できる。
【００６３】
本出願人における先願（特願２００９−０１８４２５）では、特定パーティションのデータのみを高速消去する方法を提案したが、本願のハードウエア暗号機能を有する記憶装置の場合は、特定パーティション鍵のみを瞬時に消去するので、消去時間は先願に比べて高速である。
【符号の説明】
【００６４】
１  ホスト
２  本発明の記憶装置
２０  暗号／復号処理部
２１  デバイスインターフェース
２３  暗号鍵設定回路
２４  暗号化／復号化部
２５  プロセッサ
２６  ＲＡＭ
２７  鍵生成部
２８  鍵暗号化／復号化部
２９  バッファ
３０  記憶部
３１  記憶部制御手段
３３、４４  記憶領域
３４、４５  管理領域
２３１  鍵判定回路
２３２  暗号鍵格納部
２３３  鍵データ出力部
２４１  暗号化／復号化回路
２４２  セクタアドレス更新回路
３４１  パーティション鍵マップ  
ａ  暗号化用データ入力部、復号化データ出力部
ｂ  鍵入力部
ｃ  暗号化データ出力部、復号用データ入力部
【図１】
2010288123.tif 000003
【図２】
2010288123.tif 000004
【図３】
2010288123.tif 000005
【図４】
2010288123.tif 000006
【図５】
2010288123.tif 000007
【図６】
2010288123.tif 000008
【手続補正書】
【提出日】平成21年9月28日(2009.9.28)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
デフォルト鍵生成手段と、パーティション鍵生成手段と、パーティション鍵をデフォルト鍵で暗号化する手段と、パーティションと当該パーティション鍵の関係を規定したパーティション鍵マップを生成する手段と、ホストから特定パーティションデータ無効化コマンドが発行されたときそのパーティション鍵の消去を実行するパーティション鍵消去手段とを特徴とする暗号化記憶装置。
【請求項２】
パーティション鍵消去手段は、当該パーティション鍵データを完全消去して、パーティション鍵マップにおける当該パーティションのパーティション鍵をデフォルト鍵に変更するものであることを特徴とする請求項１記載の暗号化記憶装置。
【請求項３】
パーティション鍵消去手段によるパーティション鍵の消去は、そのパーティションに係る新たなパーティション鍵の自動設定により実行することを特徴とする、請求項１記載の暗号化記憶装置。 
【請求項４】
パーティション鍵マップに、消去してはいけないパーティション番号を予め属性として書き込んでおき、パーティション鍵消去手段は、該属性を確認し、パーティションデータ無効化コマンドが消去してはいけないパーティションに対するものであるときホストにエラーを返すことを特徴とする請求項１乃至請求項３いずれか１項記載の暗号化記憶装置。
【請求項５】
デフォルト鍵暗号化手段をさらに有することを特徴とする請求項１乃至請求項４いずれか１項記載の暗号化記憶装置。
【請求項６】
デフォルト鍵暗号化手段は、当該暗号化記憶装置へのアクセス条件となるパスワードで暗号化することを特徴とする請求項５記載の暗号化記憶装置。
【請求項７】
ホストから全暗号化データ無効化コマンドが発行されたときにデフォルト鍵の消去を実行するデフォルト鍵消去手段をさらに有することを特徴とする請求項1乃至請求項６いずれか1項記載の暗号化記憶装置。
【請求項８】
ハードディスクドライブ又はソリッドステートドライブのいずれかである請求項１乃至請求項７いずれか１項記載の暗号化記憶装置。
【請求項９】
当該暗号化記憶装置が組み込まれる情報機器の運用に必要なデータが格納される第１のパーティションとユーザデータのみが格納される第２のパーティションを少なくとも一つずつ有する請求項１乃至請求項８いずれか１項記載の暗号化記憶装置を補助記憶装置として組み込んでなる情報機器。
【請求項１０】
デフォルト鍵を生成するステップと、デフォルト鍵をパスワードで暗号化するステップと、パーティション鍵を生成するステップと、パーティション鍵を前記デフォルト鍵で暗号化するステップと、パーティションと当該パーティション鍵の関係を規定したパーティション鍵マップを生成するステップと、ホストから特定パーティションデータ無効化コマンドが発行されたときパーティション鍵の消去を実行するステップと、ホストから全暗号化データ無効化コマンドが発行されたときにデフォルト鍵の消去を実行するステップ、を有することを特徴とする暗号化記憶装置のセキュリティ方法。
【請求項１１】
パーティション鍵の消去は、当該パーティション鍵データの完全消去により実行し、当該パーティション鍵データを消去次第、パーティション鍵マップにおける当該パーティションのパーティション鍵をデフォルト鍵に変更することを特徴とする請求項１０記載の暗号化記憶装置のセキュリティ方法。
【請求項１２】
パーティション鍵の消去は、そのパーティションに係る新たなパーティション鍵の自動設定により実行することを特徴とする、請求項１０記載の暗号化記憶装置のセキュリティ方法。
【請求項１３】
パーティション鍵マップを生成するステップにおいて、消去してはいけないパーティション番号を属性として書き込み、パーティション鍵を消去するステップでは該属性を確認し、パーティションデータ無効化コマンドが消去してはいけないパーティションに対するものであるときホストにエラーを返すステップをさらに含むことを特徴とする請求項１０乃至請求項１２いずれか１項記載の暗号化記憶装置のセキュリティ方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はハードウエア暗号化手段を具備した記憶装置の改良、並びに該暗号化記憶装置を組み込んでなる情報機器、暗号化記憶装置のセキュリティ方法に関する。
【背景技術】
【０００２】
ハードディスク（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、ＵＳＢメモリなどの記憶装置に記憶したデータの漏洩が問題となっており、そのため、セキュリティ方法としてパスワード認証をアクセスの条件としている。しかしながら、最近の報告によれば、サービス領域のＡＴＡパスワード設定フラグをオフにしてロック機能を無効にできるといい（パスワード解除）、事実、捜査機関向けに、斯かるパスワード解除装置が販売されているのが現状である。パスワードが解除されればデータは容易に読まれてしまう。パスワードが解除されない場合でも、記憶部を記憶装置から取り外して、データを直接読み取られる危険がある。
【０００３】
そこで、最近ではＡＥＳ（Ａｄｖａｎｃｅｄ Ｅｎｃｒｙｐｔｉｏｎ Ｓｔａｎｄａｒｄ）などの暗号化を用いてデータを記憶している。ＡＥＳはブロックと呼ばれる固定長（１２８ｂｉｔ）のデータを単位として、暗号化／復号化を共通の鍵で行
うものである。ＡＥＳでは３種類の鍵長が定義されており、１２８ｂｉｔ／１９２ｂｉｔ／２５６ｂｉｔのいずれかを用いることができる。鍵長が長いほど、鍵を全数検索する総当り攻撃などに強く、１２８ｂｉｔ／１９２ｂｉｔ／２５６ｂｉｔの鍵長は、現在の計算機の処理能力では解読に非現実的な時間を要するため安全とされている。
【０００４】
ＡＥＳ暗号化には、ホスト側で行うもの（ソフトウエア暗号化）があるが高価であり、システムパフォーマンスに影響があった。そこで最近は、専用のチップを組み込み、ＡＥＳ暗号化をデバイス内部で行う記憶装置（ハードウエア暗号化）が販売されている。この場合、何らかの方法により暗号鍵のデータが把握されると、記憶しているデータが読み出されてしまう危険性は否定できない。
【０００５】
また、マルチファンクションプリンタなどの情報機器に記憶装置を組み込んで使用する場合、記憶装置には情報機器に必要な情報（オペレーティングシステムやアプリケーションプログラム）と使用者の機密情報（マルチファンクションプリンタの場合で言えば、プリント用の撮像データ）の両者が記憶される。情報機器を廃棄する場合は記憶データの全部を消去してもよいが、転売、レンタルなどで再利用する場合、機密情報は消去することが望ましいが、機器の運用に必要な情報は資源の有効活用の観点から、そのまま残すことが好ましい。また廃棄する場合は、どのような情報が記憶されているか判断することなく、データを無効化できることが望ましい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００５−５０４７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
そこで本発明が解決すべき第１の課題は、ハードウエア暗号記憶装置における暗号鍵の安全な管理方法の提供にある。第２の課題はハードウエア暗号記憶装置に複数種類の情報を記憶し、譲渡、廃棄、レンタル時等において、重要度、種類に応じて任意に情報を無効化する方法の提供にある。第３の課題は、ハードウエア暗号記憶装置に複数種類の情報を記憶している場合において、廃棄時等において、どのような情報が記憶されているか判断することなくデータを無効化する方法の提供にある。その他の課題は、明細書、図面、特に特許請求の範囲により自ずと明らかとなろう。
【課題を解決するための手段】
【０００８】
本発明では、上記課題解決のため本発明が採用する新規な特徴的構成により上記課題を解決する。即ち本発明方法の第１の特徴は、記憶装置に複数のパーティションを設けるとともに、各パーティションにそれぞれ固有のパーティション鍵を定義する。パーティション鍵は暗号化して管理する。ホストから特定パーティションのデータを無効化するコマンドが発行されたときは、そのパーティション鍵の消去を実行する。本発明方法の第２の特徴は、記憶装置に一又は複数のパーティションを設けるとともに、パーティションに固有のパーティション鍵を定義する。パーティション鍵はデフォルト鍵で暗号化して管理する。ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵を消去する。その他、本発明は、特許請求範囲において上位概念から下位概念に亙り列挙する新規な構成的特長により上記課題を解決する。
【発明の効果】
【０００９】
本発明によれば、データを暗号化して記憶するとともに、暗号／復号化鍵を暗号化して管理するので、パスワード機能が解除され、或いは記憶部が記憶装置から取り外されても、データが解読されることがない。また記憶装置にユーザが複数のパーティションを設けるので、重要度、種類に応じてデータを記憶できるとともに、パーティションごとに固有の暗号化／復号化鍵を定義するので、ホストから特定パーティションのデータを無効化するコマンドが発行されたとき、そのパーティション固有の鍵を消去することにより、任意のデータのみ無効化し、その余のデータは継続使用することができる。また、パーティション鍵をデフォルト鍵で暗号化して管理することにより、ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵の消去を実行することにより、暗号化された全データを無効化することができる。また無効化を瞬時に実行できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の記憶装置の基本構成例である。
【図２】ＮＡＮＤ型フラッシュメモリを用いた記憶装置の構成例である。
【図３】記憶部の領域例である。
【図４】パーティション鍵生成前のパーティション鍵マップの構成例である。
【図５】パーティション鍵マップの構成例である。
【図６】パーティション鍵マップの他の構成例である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための最良の形態について図面を用いて説明するが、本発明は特許請求の範囲内において種々の形態を採ることができ、下記実施形態に限定されないことはいうまでもない。
【００１２】
（システム基本構成）
図１は、本発明の実施形態に係る記憶装置の基本構成例である。図１に示すように、本発明のセキュリティ方法は、本発明の記憶装置２と、記憶装置２に対するメディアアクセス主体であるホスト１とからなるシステムで実行される。記憶装置２は、ホスト１からコマンド（オペレーションコード、指定アドレス）や書き込み用データを含む）を受け取ったり、読み出したデータやコマンドステータスをホスト１に送出するデータデバイスインターフェース２１と、データを格納する記憶部３０と、記憶部３０へのデータの書き込みや記憶部３０からのデータの読み出しの制御を実行する記憶部制御手段３１と、ホスト１から送られたデータを暗号化するとともに、記憶部３０から読み出されたデータを復号化する暗号／復号処理部２０を有する。
【００１３】
暗号／復号処理部２０は、鍵生成部２７と、鍵生成部２７で生成された鍵を用いて所定のロジックに基づきデータの暗号化／復号化を実行する暗号化／復号化部２４と、暗号化／復号化部２４でデータを暗号化／復号化するための鍵を選択して暗号化／復号化部２４に設定する暗号鍵設定回路２３と、鍵暗号化／復号化部２８を有する。これらはプロセッサ２５により統括的に制御される。暗号化／復号化部２４は独自のハードウエアロジックで構成され、プロセッサ２５の処理に拠らないため、非常に高速で処理を実行できる。ＲＡＭ２６は、揮発性メモリであり、プロセッサ２５の作業領域である。暗号鍵設定回路２３は、後述する各種の暗号鍵をシステム起動中格納する暗号鍵格納部２３２、暗号化又は復号化を前記いずれの鍵で実行するかを判定する鍵判定回路２３１、判定回路２３１からの信号に基づき選択された鍵データを暗号化／復号化部２４に入力、設定する鍵データ出力部２３３を有する。記憶部３０は、記憶領域３３と周知の管理領域３４を有し、管理領域３４は後述するデフォルト鍵、パーティション鍵、並びにパーティション鍵マップ３４１を格納する。鍵暗号化／復号化部２８は、プロセッサ２５の制御に基づき、デフォルト鍵、パーティション鍵の暗号化及び復号化を行う。
【００１４】
記憶装置２は、ＨＤＤの他、記憶部３０にＮＡＮＤ型フラッシュメモリのような不揮発性半導体記憶装置を用いたＳＳＤなどで構成することができる。ＨＤＤの場合、記憶部制御手段は、磁気ヘッドのシーク、データの書き込み、読み出しを制御する。ＳＳＤの場合、記憶部制御手段はＮＡＮＤフラッシュメモリコントローラで構成される。
【００１５】
ホスト１との間のデバイスインターフェース２１は、ＩＤＥインターフェースやシリアルＡＴＡインターフェースで構成され得る。記憶装置２はホスト１に挿抜して使用するUSBメモリで構成してもよい。
【００１６】
以下、本発明の記憶装置２がＳＳＤで構成されるとともに、情報機器に組み込んで使用される例について、図２乃至図５を用いて説明する。ＳＳＤは図２に示すように、記憶部がＮＡＮＤ型フラッシュメモリ４０で構成される。なお図２では、図１と同一の機能及び構成を有する要素については、同一の符号を付している。
【００１７】
本実施形態は、記憶部がＮＡＮＤ型フラッシュメモリ４０で構成されるため、記憶部制御手段は、フラッシュメモリコントローラ４１で構成される。このコントローラ４１は、ＮＡＮＤ型フラッシュメモリ４０にコマンドを発行しデータの読み書きを実行するもので、ＮＡＮＤ型フラッシュメモリ特有のｂａｄブロックに対処するための不図示のエラー訂正回路、論理ブロックアドレス/物理ブロックアドレス変換テーブルを有する。
【００１８】
（初期設定）
情報機器が例えばマルチファンクションプリンタのような組み込み系の機器の場合、はじめに情報機器のベンダーは、初期設定を行うため、ＳＳＤを、ＯＳその他、情報機器の運用に必要なソフトウエアを書き込むマシンに接続する。マシンはハードウエア暗号の初期設定ツールがインストールされている専用のコンピュータで構成され、図２のホスト１がこれに相当する。マシンに電源を投入後、まず初期設定ツールであるソフトウエアを用いてデフォルト鍵生成を行う。デフォルト鍵は、鍵生成部２７が有する乱数発生器によって生成される。このデフォルト鍵を“ＫｅｙＤ”とする。デフォルト鍵は初期設定のとき生成されるもので、その後変更されることはない。
【００１９】
デフォルト鍵は適当な値を暗号鍵として、鍵暗号化／復号化回路２８よって暗号化され、管理領域４５に格納される。記憶装置が外付けのＳＳＤのように一般ユーザが使用する場合、盗難に備えてＡＴＡが標準機能として有するパスワードを設定できるが、デフォルト鍵生成時までにこのパスワードが設定されている場合は、パスワードを暗号鍵としてデフォルト鍵が暗号化される。
【００２０】
尚パスワードは一方向ハッシュ関数を通してハッシュ値に変換され、管理領域４５に格納され、以降の記憶装置２でのパスワード照合にそのまま利用される。即ち、記憶装置２を組み込んだ若しくは記憶装置２を接続したシステムに、電源が投入された後、記憶装置２へのアクセス許可を受けるためにＡＴＡパスワードが入力されると、同様にハッシュ関数によってハッシュ値に変換される。そして、管理領域４５に記憶しているハッシュ値と照合され、両者が一致するとアクセスが許可される。ハッシュ値が元の状態に戻すことができない性質を利用したものであり、これによりパスワードを安全に管理することができる。
【００２１】
尚、デフォルト鍵と後述するパーティション鍵の生成は、プロセッサ２５がコマンドを解釈して、鍵生成部２７によって実行するものである。暗号化されたデフォルト鍵の管理領域４５への格納はデフォルト鍵生成コマンドに付随して一括して実行される。暗号化されたパーティション鍵の管理領域４５への格納も、同様にパーティション鍵の生成に付随して実行される。内部処理としては、プロセッサ２５がフラッシュメモリコントローラ４１にコマンドを発行して実行する。
【００２２】
デフォルト鍵は、必ず生成される暗号鍵であって、以下の機能を有する。デフォルト鍵を生成すると、更のＳＳＤ（パーティション設定前）にベンダーによって何らかのシステム上必要なデータが書き込まれていても、データ読み出しの際、そのデータはデフォルト鍵で復号化されてから読み出されるので、意味のないランダムなデータが読み出される。ユーザが後述するパーティションの設定後、パーティション鍵の生成をしなかった場合（ｄｅｆａｕｌｔ）でも、その後ホストから送出されるデータはデフォルト鍵で自動的に暗号化される。また、後述するパーティションテーブルやマスターブートレコードのように、パーティションで定義されていない領域に対するホストからの書き込みデータを暗号化する。詳しくは後述する。
【００２３】
次に、必要な数だけパーティションを設定する。図３では、パーティション“０”（５２）乃至パーティション“２”（５４）を設定した様子を示している。各パーティションで構成される領域の記憶容量は、そこに格納することが予定されているファイルの容量を勘案して決定する。マシンが初期設定者からパーティション設定の指示を受けると、マシンは記憶領域４４をどのように分割して使うか、その内容をMBR記憶領域５１内のパーテションテーブル５１１へ書き込む。この書き込みはデフォルト鍵によって暗号化されて実行されるとともに、平文データがＲＡＭ２６に一時記憶される。
【００２４】
プロセッサ２５は、ＲＡＭ２６に一時記憶されているパーティションテーブル５１１のデータを参照し、各パーティションのアドレス（論理セクタアドレス）を、管理領域４５に記憶させるためのコマンドをフラッシュメモリコントローラ４１に発行する。コマンドパラメータとして、パーティション番号、パーティションの先頭セクタアドレスと終了セクタアドレス、若しくは、パーティション番号、パーティションの先頭アドレスとセクタ数を指定する。このコマンドは、後述するパーティション鍵マップ３４１を生成するためのものである。図４は、記憶された状態を模式的に表したものであり、後述するパーティション鍵を生成したときには、パーティション鍵マップ３４１として完成されるものである。図示するように、この段階では、各パーティションの先頭セクタアドレスと終了セクタアドレス（図４（ａ））、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数（図４（ｂ））で構成される。
【００２５】
上記、ユーザが設定したパーティションは、ホスト１からドライブと認識され得る領域を構成する。
【００２６】
次に、鍵生成部２７が持っている乱数発生器を使って各パーティションの暗号鍵を生成する。本実施例ではパーティションを３つ設定しているので、パーティション鍵を、Ｋｅｙ“０”乃至Ｋｅｙ“２”の３つ生成するものとする。パーティションとパーティション鍵番号の関係は図３に示す通り、パーティション“０”、“１”、“２”にそれぞれ対応して、パーティション鍵Ｋｅｙ“０”、Ｋｅｙ“１”、Ｋｅｙ“２”とする。そして生成したパーティション鍵を、デフォルト鍵（平文）を暗号鍵として、鍵暗号化／復号化回路２８よって暗号化し、管理領域４５の所定の領域に格納する（詳しくは後述する）。
【００２７】
このときプロセッサ２５は、管理領域４５に、パーティション設定時に記憶された各パーティションのセクタアドレス情報に対し、各パーティションを暗号化するパーティション鍵との関係を追記し、パーティション鍵マップ３４１を完成する。図５は完成したパーティション鍵マップ３４１の例である。図示するように、各パーティションの先頭セクタアドレスと終了セクタアドレス並びに対応するパーティション鍵の関係（図５（ａ））、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数並びに対応するパーティション鍵の関係（図５（ｂ））で構成される。図５において、対応暗号鍵として、Ｋｅｙ０乃至Ｋｅｙ２と記載しているが、これはＫｅｙのデータではない。実際にはＫｅｙ番号を特定する情報、例えばそのＫｅｙのＩＤ番号である。
【００２８】
次にパーティションへ、組込みが予定されている情報機器の運用に必要なソフトウエアを格納する。具体的には、図３に示すように、パーティション“０”にはＯＳ５２０を、パーティション“１”には、情報機器、例えばマルチファンクションプリンタを運用するために必要な各種アプリケーションプログラム５３０を格納する。このデータはファイルシステムによってファイルとして記憶される。ＯＳ５２０を格納した際、マシンはＭＢＲ記憶領域５１にブートローダ５１２を記録する。ブートローダ５１２は、後述するように、デフォルト鍵によって暗号化されて記録される。
【００２９】
ホスト１から書き込み指令されるＯＳ５２０はパーティション鍵Ｋｅｙ“０”を暗号鍵として、アプリケーションプログラム５３０はＫｅｙ“１”を暗号鍵として、暗号化／復号化部２４で暗号化してパーティションに格納される。このようにして設定したＳＳＤを、予定されている情報機器に組み込む。記憶装置２は情報機器にすでに組み込まれているホスト１に接続されて使用される。この場合のホスト１はＣＰＵが実装されているＣＰＵボードで構成することができる。パーティション“２”はユーザデータ領域、例えばマルチファンクションプリンタのスキャナで撮像されたプリント用データが格納される領域で、最も機密性の高いパーティションである。プリント用のデータが撮像されると、Ｋｅｙ“２”により撮像データが暗号化されてパーティション“２”に格納される。
【００３０】
以下、（１）デフォルト鍵の暗号化／復号化、（２）パーティション鍵の暗号化／復号化、（３）ホストから受け取ったデータを暗号化し、ユーザが定義したパーティションに格納する手順、（４）ユーザが定義したパーティションに格納しているデータを読み出し、パーティション鍵を使って復号化しホストに送出する手順、並びに（５）デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されていない領域へ格納する手順について、図２を用いて順に説明する。
【００３１】
（１）デフォルト鍵の暗号化／復号化；
上記、「初期設定」の項で述べたように、デフォルト鍵が生成されると、鍵暗号化／復号化部２８で暗号化され、管理領域４５に不揮発的に格納されて管理される。以下においては、便宜上、デフォルト鍵を、ＡＴＡパスワードを暗号鍵として暗号化する方法について述べる。鍵の暗号化／復号化は下記（３）で使用するものと同じ論理回路で実行する方式、ファームウエアにＡＥＳアルゴリズムを実装して実行する方式など種々の方式で実行することができる。アルゴリズムは、ＡＥＳ方式の他、Ｔｒｉｐｌｅ  ＤＥＳ方式など他の暗号化アルゴリズムでもよい。以下、暗号化／復号化部２８は、便宜上、詳細には追って説明するＡＥＳ方式の回路で実行するものとして説明する。
【００３２】
暗号鍵を暗号化する理由は、暗号鍵が平文のまま管理領域４５で管理されると、記憶装置２を分解してＮＡＮＤフラッシュメモリ４０から暗号鍵が読み取られてしまい、暗号化されているユーザデータが解読されてしまう危険性があるからである。    
【００３３】
初期設定時にパスワード設定を行うと、パスワードは揮発性ＲＡＭ２６に一時記憶される。プロセッサ２５は、このパスワードを暗号鍵として鍵暗号化／復号化回路２８の鍵入力部（図示せず）に入力して設定するとともに、鍵暗号化／復号化回路２８の暗号化用データ入力部（図示せず）にデフォルト鍵を入力する。これによりデフォルト鍵が暗号化され、暗号化データ出力部より出力する。プロセッサ２５はフラッシュメモリコントローラ４１にコマンドを発行し、暗号化されたデフォルト鍵を管理領域４５に格納する。
【００３４】
システムに電源が投入され、パスワードが入力されるとパスワード照合が行われ、アクセス許可がなされるとデフォルト鍵（暗号文）が管理領域４５から読み出され、鍵暗号化／復号化回路２８の復号化用データ入力部（図示せず）に入力されるとともに、システム電源投入後にユーザが入力しＲＡＭ２６に記憶しているパスワードを復号鍵として鍵暗号化／復号化回路２８の鍵入力部に入力、設定する。これによりデフォルト鍵が復号化され、復号化データ出力部（図示せず）より出力し、ＲＡＭ２６に一時記憶される。
【００３５】
（２）パーティション鍵の暗号化／復号化
パーティション鍵が生成されると、プロセッサ２５は、パーティション鍵のデータを鍵暗号化／復号化部２８の暗号用データ入力部に入力するとともに、先に設定しているデフォルト鍵（平文）を暗号鍵として鍵暗号化／復号化部２８の鍵入力部に入力、設定して暗号化する。
【００３６】
システムに電源が投入され、パスワードが入力されると、パスワード照合が行われ、アクセス許可が成されると、暗号化されたパーティション鍵が管理領域４５から読み出され、プロセッサ２５は、鍵暗号化／復号化部２８の復号用データ入力部に入力するとともに、デフォルト鍵（平文）を復号鍵として鍵暗号化／復号化部２８の鍵入力部に入力、設定する。これにより復号化されたパーティション鍵が復号化データ出力部から出力し、揮発性ＲＡＭ２６に一時的に記憶される。
【００３７】
（３）ホストから受け取ったデータを暗号化しパーティションに格納する手順
以下、図２を用いて、ホスト１から受け取ったデータを暗号化してパーティション“２”に格納する手順について、情報機器起動後の状態から説明する。
【００３８】
（ａ）パーティション鍵マップと暗号鍵のセッティング
システムに電源が投入されてパスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、管理領域４５に格納しているパーティション鍵マップ３４１を読み出して鍵判定回路２３１にセッティングするとともに、管理領域４５に格納されている暗号化されているデフォルト鍵、パーティション鍵を読み出して、上述の手順に基づきすべて復号化して、暗号鍵格納部２３２にセットする。暗号鍵格納部２３２は揮発性メモリで構成する。これによりホストから送出されるデータの暗号化の準備が完了する。
【００３９】
（ｂ）データの入力、アドレスの通知
ホスト１から書き込みコマンドが送られると、デバイスインターフェース２１を介して、アドレス（ホストＬＢＡ）とデータが暗号化／復号化部２４に入力される。データは暗号化／復号化部２４の暗号化／復号化回路２４１の暗号化データ入力部ａに入力する。先頭セクタアドレスは暗号化／復号化部２４のセクタアドレス更新回路２４２に入力し、セクタアドレス更新回路２４２はセクタアドレスを暗号鍵設定回路２３の鍵判定回路２３１に送る。
【００４０】
（ｃ）暗号鍵の選択
鍵判定回路２３１は先にセットされているパーティション鍵マップ３４１を参照して、通知されたセクタアドレスに基づき、どのパーティション鍵を使って暗号化すべきかを判定し、鍵データ出力部２３３に、該当するパーティション鍵選択信号を送る。
【００４１】
（ｄ）暗号鍵の設定、データの暗号化
鍵データ出力部２３３は暗号鍵格納部２３２から、選択されたパーティション鍵のデータを読み出して、暗号化／復号化部２４の鍵入力部ｂに入力し、設定する。データが入力部ａに入力されるとデータの暗号化が開始される。暗号化はブロックと呼ばれる固定長１２８ｂｉｔずつ実行される。暗号化が１セクタ（５１２ｂｙｔｅ）終了する度に、セクタアドレス更新回路はセクタ情報を１つインクリメントして、次に暗号化するデータのセクタアドレス情報を鍵選択回路２３１に送る。これは、暗号化に必要なパーティション鍵を常時監視させ、適切な暗号化を実行させるためである。暗号化が終了したデータは、暗号化データ出力部ｃからバッファ２９に出力する。
【００４２】
（ｅ）フラッシュメモリコントローラへの入力
プロセッサ２５はホスト１から受け取ったコマンドを解釈し、フラッシュメモリコントローラ４１に書き込みコマンドを発行するとともに（オペレーションコードとアドレスに関する情報を含む）、バッファ２９に溜まったデータをＮＡＮＤ型フラッシュメモリ４０に書き込む。尚、暗号化とメモリ４０に対する書き込み動作は同時並行して実施することができる。
【００４３】
（ｆ）ＮＡＮＤ型フラッシュメモリ（パーティション“２”）への書き込み
フラッシュメモリコントローラ４１では、論理ブロックアドレス／物理ブロックアドレス変換テーブルを参照して、通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出し、不図示のエラー訂正回路のＥＮＤＥＣで生成したエラー訂正符号とともに、バッファ２９から取り出したデータを、割り出した物理ブロックアドレスに書き込むようＮＡＮＤフラッシュメモリ４０にコマンドを発行する。ＮＡＮＤフラッシュメモリ４０はコマンドにしたがって、指定されたアドレスに暗号化されたデータを書き込む。以上でデータの暗号化と書き込みが完了する。
【００４４】
（４）パーティションに格納しているデータを読み出し、復号化してホストに送出する手順
プロセッサ２５がホスト１からデバイスインターフェース２１を介してｒｅａｄコマンドを受領すると、先頭セクタアドレス（ホストＬＢＡ）を暗号化／復号化部２４に設定する。
【００４５】
暗号化／復号化部２４のアドレス更新回路２４２は、先に設定されたアドレスをラッチしておき、セクタアドレスを鍵判定回路２３１に送る。鍵判定回路２３１は、このアドレスに基づきパーティション鍵マップ３４１を参照し、復号に必要な鍵を判定し、鍵選択回路２３２に通知し、鍵データ出力部２３３から出力させ、暗号化／復号化部２４の鍵入力部ｂにセットし、復号化用データの入力に待機する。復号に用いる鍵は暗号化に用いた鍵と同じ鍵である。即ち、暗号鍵と復号鍵は共通鍵となっている。
【００４６】
プロセッサ２５はホスト１から受け取ったコマンドを解釈し、フラッシュメモリコントローラ４１に対して読み出しコマンドを発行する。このコマンドには読み出すべきデータのアドレス情報を含む。フラッシュメモリコントローラ４１は、論理ブロックアドレス／物理ブロックアドレス変換テーブルを参照して、アドレスとして通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出してデータを読み出し、エラー訂正回路によりエラー有無のチェックを行い、エラーがあれば訂正し、データを暗号化／復号化部２４の復号用データ入力部ｃに入力する。データ入力と同時に復号化が開始される。
【００４７】
復号化は暗号化と同じく１２８ｂｉｔずつ実行される。１セクタの復号が終了する度に、セクタ情報を１つインクリメントして、そのセクタアドレス情報が、セクタアドレス更新回路２４２から鍵判定回路２３１に通知される。復号化が終了すると、暗号化／復号化部２４の復号化データ出力部ａより、復号化されたデータがデバイスインターフェース２１を介してホスト１に送出される。ｒｅａｄコマンドに係るすべてのデータが送出されるとｒｅａｄコマンドに対する処理が完了する。
【００４８】
（５）デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されてい
ない領域へ格納する手順
上述の通り、パーティションが設定されると、マシン側のＯＳよりパーティションテーブルデータの書き込みコマンドがマシン側から入力され、パーティションテーブルデータが暗号化／復号化部２４の暗号用データ入力部ａに入力される。プロセッサ２５は、データの先頭セクタアドレスを鍵判定回路２３１に送ると、鍵判定回路２３１はパーティション鍵マップ３４１を参照し、通知された先頭セクタアドレスがいずれのパーティションにも属さないため、暗号鍵がデフォルト鍵であると判定し、デフォルト鍵データ（平文）を暗号鍵として暗号化／復号化部２４の鍵入力部ｂに入力、設定する。これにより、パーティションテーブルデータの暗号化が開始される。
【００４９】
一方プロセッサ２５は、フラッシュメモリコントローラ４１に書き込みコマンド（オペレーションコードとアドレスの情報を含む）を送る。フラッシュメモリコントローラ４１が、暗号文を受け取ると、アドレスとして指定された論理ブロックアドレスを、物理ブロックアドレス／論理ブロックアドレス変換テーブルを用いて変換した物理ブロックアドレスに、エラー訂正符号とともにデータを指定されたアドレスに書き込む。ＭＢＲ記憶領域５１は、通常、セクタアドレス “０”に予定されている。ＯＳ５２０を書き込んだ後は、マシン側からブートローダ５１２の書き込みコマンドが発行される。この場合も、パーティションテーブルと同様な手順で、指定されたアドレスにデータを書き込む。
【００５０】
（変更例）
上述した実施形態では、OS５２０等を組み込む初期設定段階ではじめにデフォルト鍵を生成した例を示したが、工場出荷段階でSSDベンダーがデフォルト鍵を生成している場合は必要ではない。またユーザがパーティション鍵を生成することが必須の要件とされている場合は、デフォルト鍵は必ずしも必要ではない。その場合、パーティション鍵を暗号化する場合は、ＡＴＡパスワード（平文）を鍵としてパーティション鍵を暗号化すればよい。ＡＴＡパスワードが設定されない場合は、適当な値で暗号化すればよい。また、論理ブロックアドレス／物理ブロックアドレス変換テーブルやエラー訂正回路をプロセッサ２５に持たせ、プロセッサ２５がフラッシュメモリコントローラ４１の役割を兼ねてもよい。その場合、フラッシュメモリコントローラ４１は不要とであり、プロセッサ２５からのコマンドとバッファ２９からのデータは、ＮＡＮＤフラッシュメモリ４０のＮＡＮＤインターフェースに直接入力すればよい。
【００５１】
（ユーザ領域のデータの消去）
本実施形態の記憶装置２を組み込んだ情報機器は再利用される場合がある。資産の有効活用の観点からすれば、ＯＳやアプリケーションプログラムなど機器の運用に必要なプログラムは転売時に削除せず資産として、そのまま後の使用者に使用させることが好ましい。一方、機密情報が格納されている可能性のある特定のユーザデータ領域、例えば、本実施形態におけるパーティション“２”の撮像データは、前使用者の機密データが記憶されているため、転売時には消去することが望ましい。
【００５２】
上記の観点に立った場合、本実施形態例において消去すべきは、パーティション“２”に係るデータのみであるから、フラッシュメモリコントローラ４１にパーティションデータ無効化コマンドを解釈する手段を設け、ホスト１から該コマンドが発行されたときは、そのパーティション鍵を消去する。ここで消去とは、パーティション鍵自体を完全に消去し、以降そのパーティションに記憶されている暗号化されたデータ（のみ）を解読不可能にすることをいう。パーティションデータ無効化コマンドは、専用のオペレーションコードと無効化の対象となるパーティション番号で定義することができる。パーティション鍵が消去されると、そのパーティションのデータは以降、復号化して読み出すことはできない。
【００５３】
パーティション鍵消去方法例１として、パーティションデータ無効化コマンドを受け取ったプロセッサ２５が、当該コマンドの実行をフラッシュメモリコントローラ４１にリクエストし、コントローラ４１内のプロセッサがコマンドのオペレーションコードを解釈し、管理領域４５に格納されているＫｅｙ２を消去する。この消去はＫｅｙ２を記憶している物理ブロックの当該Ｋｅｙ２以外のデータを他のブロックに一旦退避させ、元のブロックをＮＡＮＤ型フラッシュメモリが有するｅｒａｓｅコマンドでブロック消去（セル電荷の除去）し、退避していたブロックのデータを元のブロックに書き戻すことにより行う。このとき退避先のブロックの消去も実行する（特許請求範囲の“パーティション鍵データの完全消去”に相当）。
【００５４】
新たにパーティション鍵“Ｋｅｙ２”を設定するのは機器の性質上メンテナンスの一環として当該情報機器に詳しい専用の業者（初期設定ソフトを用いて行う）である場合も想定される。この場合パーティション“２”のデータが完全消去されていれば、データを見られてしまうという心配をしなくて済み、したがって前使用者は安心して当該情報機器を再利用にまわすことができ、資源の有効活用を図ることができる。
【００５５】
パーティション鍵“Ｋｅｙ２”を消去するとき、パーティション鍵マップ３４１におけるパーティション“２”に対応する暗号鍵を、“デフォルト鍵”に書き換えるとよい。こうすれば、パーティション“２”に対する以降の書き込みは、デフォルト鍵によって自動的に暗号化されて記憶され、パーティション鍵の新たな設定をしなくても、継続使用することができる。仮にデータにアクセスしても、旧パーティション鍵“Ｋｅｙ２”で暗号化されたデータがデフォルト鍵で復号化されるので、ランダムなデータが読み出されるだけで、機密漏洩の心配はない。
【００５６】
この他パーティション鍵消去方法例２として、パーティション鍵“Ｋｅｙ２”の消去を、パーティション“２”の新たなパーティション鍵の設定により実行してもよい。これは、プロセッサ２５がパーティション消去コマンドを受けたとき、新たなパーティション鍵“Ｋｅｙ２”を生成、暗号化するとともに、フラッシュメモリコントローラ４１にコマンドを発行し、暗号化したあらたなパーティション鍵“Ｋｅｙ２”のデータを渡して管理領域４５に格納させる。この格納は、旧パーティション鍵に対して新たな鍵を上書きすることにより実行する。なおこの場合はパーティション鍵マップ３４１の書き換えは不要であることが理解されよう。
【００５７】
また、情報機器に電源投入された際、その都度パーティションデータ無効化コマンドを記憶装置２（プロセッサ２５）に発行しておき、一定の状態（例えば、機器がスタンバイ状態）になったときに、パーティション鍵“Ｋｅｙ２”を自動的に更新（新しいパーティション鍵を設定）してもよい。あるいは所定時間間隔、たとえば１２時間おきに、タイマーイベントとして実行してもよい。
【００５８】
記憶装置２が外付けのＳＳＤの場合は、ユーザがパーティションを任意の数設定することができ、使い方もまちまちであるが、特定パーティションを機密情報格納用として使用し、使用途中で不要になった機密情報を削除したい場合も生じる。ユーザは、パーティション設定時に、予めどのパーティションを機密情報格納用とするか把握することができるので、機密情報を削除する場合は、そのパーティションに係るパーティション鍵のみ消去すればよい。消去するには専用のアプリケーションソフトによって実行できる。
【００５９】
パーティション設定時に消去してよいパーティションと、消去してはいけないパーティションを定義できる場合は、その情報を、図６の３４１（ｃ）、３４１（ｄ）に示すように、パーティション鍵マップ３４１に属性として書き込むようにしてもよい。属性は、ホスト１からプロセッサ２５にコマンドを発行し、パーティション鍵マップ３４１の然るべき場所に書き込めばよい。システム稼動中、パーティション鍵マップ３４１をＲＡＭ２６に記憶させておき、フラッシュメモリコントローラ４１がパーティション鍵消去コマンドを受け取ったときに、パーティション鍵マップ３４１の属性を確認し、消去禁止のパーティションに対する消去コマンドであった場合はホスト１にエラーを返す。これにより、消去してはいけないデータを誤って消去してしまうことがない。これに付随し、ＯＳ５２０を格納したパーティション“０”とアプリケーションプログラム５２１を格納したパーティション“１”を、読み出し専用の領域に設定するとよい。
【００６０】
なお、パスワードは記憶装置２のアクセスとデフォルト鍵の暗号化に使用されるだけで、再利用（リユース）者があらたなパスワードを設定してもあらたなデフォルト鍵が生成されるわけではない。初期設定段階でパスワードが設定されない場合は、記憶装置２にだれでも自由にアクセスでき、暗号化されて記憶されているデータは自動的に復号化して読み出される。よって、パスワードを設定しない場合、暗号化することはあまり重要な意味を持たない。
【００６１】
この点、ホスト１から全暗号化データを無効化するコマンドを発行し、デフォルト鍵を消去するようにすれば、パーティション鍵の復号化を実行できなくなるので、パーティションで定義されている領域だけでなく、記憶領域４４に暗号化されて記憶されているすべてのデータを解読不能にすることができる。記憶装置２やこれを組み込んだ情報機器を廃棄する場合、どのような情報が記憶されているか判断することなく全データを無効化できるとともに、記憶装置２を物理的に破壊するなどしなくてもよいため、非常に利便性の高い記憶装置、情報機器を提供することができる。また、本記憶装置１は、全体を一つのＬＳＩで構成することができる。
【００６２】
以上、本実施形態例によれば、パスワード機能を解除し、或いは記憶部を取り外しても、暗号化されたデータしか読み出せない。またパスワードはハッシュ値を以って管理され、且つ、パーティション鍵はデフォルト鍵で暗号化され、デフォルト鍵はパスワードで暗号化されて管理されるので、パスワード、デフォルト鍵、パーティション鍵のいずれも解読される心配がない。即ち暗号化されたデータが解読される可能性は極めて低い。尚且つ、転売、リサイクル、或いは廃棄のときに、暗号鍵を消去すればデータは無効となり、記憶装置に一層のセキュリティを確保できる。
【００６３】
本出願人における先願（特願２００９−０１８４２５）では、特定パーティションのデータのみを高速消去する方法を提案したが、本願のハードウエア暗号機能を有する記憶装置の場合は、特定パーティション鍵のみを瞬時に消去するので、消去時間は先願に比べて高速である。
【符号の説明】
【００６４】
１  ホスト
２  本発明の記憶装置
２０  暗号／復号処理部
２１  デバイスインターフェース
２３  暗号鍵設定回路
２４  暗号化／復号化部
２５  プロセッサ
２６  ＲＡＭ
２７  鍵生成部
２８  鍵暗号化／復号化部
２９  バッファ
３０  記憶部
３１  記憶部制御手段
３３、４４  記憶領域
３４、４５  管理領域
２３１  鍵判定回路
２３２  暗号鍵格納部
２３３  鍵データ出力部
２４１  暗号化／復号化回路
２４２  セクタアドレス更新回路
３４１  パーティション鍵マップ  
ａ  暗号化用データ入力部、復号化データ出力部
ｂ  鍵入力部
ｃ  暗号化データ出力部、復号用データ入力部
【手続補正書】
【提出日】平成21年11月13日(2009.11.13)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
管理領域と記憶領域とを有する記憶部と、ホストから送出されるデータを暗号化して前記記憶領域に格納するとともに該暗号化されて記憶領域に格納されているデータを復号化してホストに送出する暗号／復号処理部とを有する暗号化記憶装置であって、
該暗号／復号処理部は、
当該暗号化記憶装置の工場出荷段階若しくはユーザによる初期設定段階において、前記記憶領域に対するホストからの書き込みデータの暗号化並びに前記記憶領域から読み出されるデータの復号化を行うデフォルト鍵を生成する手段と、
ユーザが設定したパーティションに格納されるデータの暗号化並びに当該パーティションから読み出されるデータの復号化を行うパーティション鍵を生成する手段と、
パーティション鍵をデフォルト鍵で暗号化する手段と、
前記暗号化されたパーティション鍵をデフォルト鍵で復号化する手段と、
デフォルト鍵を暗号化するデフォルト鍵暗号化手段と、
前記暗号化されたデフォルト鍵を復号化する手段と、
当該暗号／復号処理部内の鍵判定回路が暗号化若しくは復号化するための鍵を判定するための、パーティションとそのパーティション鍵（ＩＤ）の関係を規定するパーティション鍵マップを生成する手段と、
ホストから特定パーティションデータ無効化コマンドが発行されたとき当該特定パーティションのパーティション鍵データの消去を実行するパーティション鍵消去手段、
とを有し、
前記デフォルト鍵は、該デフォルト鍵が生成された以降前記パーティション鍵が設定された領域以外の記憶領域に対して書き込まれるデータを暗号化するとともに、該デフォルト鍵生成時以前に書き込まれていたデータを含め該デフォルト鍵が生成された以降前記パーティション鍵が設定された領域以外の記憶領域に対して書き込まれたデータを復号化するものであることを特徴とする暗号化記憶装置。
【請求項２】
パーティション鍵消去手段は、ホストから特定パーティションデータ無効化コマンドが発行されたとき、当該パーティション鍵データを完全消去するとともにパーティション鍵マップにおける当該パーティションのパーティション鍵（ＩＤ）をデフォルト鍵に変更するものであり、これにより以降デフォルト鍵によって、前記特定パーティションに格納されているデータが復号化されるとともに当該特定パーティションに格納されるデータが暗号化されることを特徴とする請求項１に記載の暗号化記憶装置。
【請求項３】
パーティション鍵消去手段は、ホストから特定パーティションデータ無効化コマンドが発行されたとき、当該特定パーティションに係る新たなパーティション鍵を自動生成するとともにパーティション鍵マップにおける当該特定パーティションのパーティション鍵（ＩＤ）を前記新たに設定したパーティション鍵のＩＤに変更するものであり、これにより以降当該新たなパーティション鍵によって前記特定パーティションに格納されているデータが復号化されるとともに当該特定パーティションに格納されるデータが暗号化されることを特徴とする請求項１記載の暗号化記憶装置。
【請求項４】
パーティション鍵マップに、消去してはいけないパーティション番号を属性として書き込む手段と、パーティションデータ無効化コマンドが発行されたとき、パーティション鍵消去手段は、該属性を確認し、当該コマンドが、消去してはいけないパーティションに対して発行されたものであるときはホストにエラーを返す手段をさらに有することを特徴とする請求項１乃至請求項３いずれか１項記載の暗号化記憶装置。
【請求項５】
デフォルト鍵暗号化手段は、デフォルト鍵が工場出荷段階で生成される場合は、当該デフォルト鍵を所定の値で暗号化するものであることを特徴とする請求項４記載の暗号化記憶装置。
【請求項６】
ホストから全暗号化データ無効化コマンドが発行されたときにデフォルト鍵の消去を実行するデフォルト鍵消去手段をさらに有することを特徴とする請求項1乃至請求項５いずれか1項記載の暗号化記憶装置。
【請求項７】
ハードディスクドライブ又はソリッドステートドライブのいずれかである請求項１乃至請求項６いずれか１項記載の暗号化記憶装置。
【請求項８】
当該暗号化記憶装置が組み込まれる情報機器の運用に必要なデータが格納される第１のパーティションとユーザデータのみが格納される第２のパーティションを記憶領域に少なくとも一つずつ有する請求項１乃至請求項７いずれか１項記載の暗号化記憶装置を、補助記憶装置として組み込んでなる情報機器。
【請求項９】
管理領域と記憶領域とを有する記憶部と、ホストから送出されるデータを暗号化して前記記憶領域に格納するとともに該暗号化されて記憶領域に格納されているデータを復号化してホストに送出する暗号／復号処理部とを有する暗号化記憶装置における、前記暗号／復号処理部のプロセッサが実行する、下記ステップを有するセキュリティ方法；
（ａ）当該暗号化記憶装置の工場出荷段階若しくはユーザによる初期設定段階において、前記記憶領域に対するホストからの書き込みデータの暗号化並びに前記記憶領域から読み出されるデータの復号化を行うデフォルト鍵を生成するステップと、
（ｂ）ステップ（ａ）で生成されたデフォルト鍵を所定の値で暗号化するステップと、
（ｃ）ユーザが設定したパーティションに格納されるデータの暗号化並びに当該パーティションから読み出されるデータの復号化を行うパーティション鍵を生成するステップと、
（ｄ）ステップ（ｃ）で生成されたパーティション鍵をステップ（ａ）で生成されたデフォルト鍵で暗号化するステップと、
（ｅ）暗号／復号処理部内の鍵判定回路が暗号化若しくは復号化するための鍵を判定するための、パーティションとそのパーティション鍵（ＩＤ）の関係を規定するパーティション鍵マップを生成するステップと、
（ｆ）ホストから特定パーティションデータ無効化コマンドが発行されたとき当該特定パーティションのパーティション鍵データの消去を実行するステップと、
（ｇ）ホストから全暗号化データ無効化コマンドが発行されたときにデフォルト鍵の消去を実行するステップ。
【請求項１０】
ステップ（ｆ）は、ホストから特定パーティションデータ無効化コマンドが発行されたとき、当該特定パーティションのパーティション鍵データを完全消去するとともにステップ（ｅ）で生成したパーティション鍵マップにおける当該パーティションのパーティション鍵（ＩＤ）をデフォルト鍵に変更するものであって、以降当該デフォルト鍵を以って前記特定パーティションに格納されているデータを復号化するステップ（ｈ）と、以降当該デフォルト鍵を以って当該特定パーティションに格納されるデータを暗号化するステップ（ｉ）をさらに有することを特徴とする請求項９に記載の暗号化記憶装置のセキュリティ方法。
【請求項１１】
ステップ（ｆ）は、ホストから特定パーティションデータ無効化コマンドが発行されたとき、当該特定パーティションに係る新たなパーティション鍵を自動生成するとともにパーティション鍵マップにおける当該特定パーティションのパーティション鍵（ＩＤ）を前記新たに設定したパーティション鍵のＩＤに変更するものであって、以降当該新たなパーティション鍵を以って前記特定パーティションに格納されているデータを復号化するステップ（ｊ）と、以降当該新たなパーティション鍵を以って当該特定パーティションに格納されるデータを暗号化するステップ（ｋ）をさらに有することを特徴とする請求項９に記載の暗号化記憶装置のセキュリティ方法。
【請求項１２】
ステップ（ｅ）で生成されたパーティション鍵マップに消去してはいけないパーティション番号を属性として書き込むステップ（ｌ）と、パーティションデータ無効化コマンドが発行されたとき、該属性を確認し、当該コマンドが消去してはいけないパーティションに対して発行されたものであるときはホストにエラーを返すステップ（ｍ）をさらに有することを特徴とする請求項９乃至請求項１１いずれか１項記載の暗号化記憶装置のセキュリティ方法。
【手続補正２】
【補正対象書類名】明細書
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はハードウエア暗号化手段を具備した記憶装置の改良、並びに該暗号化記憶装置を組み込んでなる情報機器、暗号化記憶装置のセキュリティ方法に関する
【背景技術】
【０００２】
ハードディスク（ＨＤＤ）、ソリッドステートドライブ（ＳＳＤ）、ＵＳＢメモリなどの記憶装置に記憶したデータの漏洩が問題となっており、そのため、セキュリティ方法としてパスワード認証をアクセスの条件としている。しかしながら、最近の報告によれば、サービス領域のＡＴＡパスワード設定フラグをオフにしてロック機能を無効にできるといい（パスワード解除）、事実、捜査機関向けに、斯かるパスワード解除装置が販売されているのが現状である。パスワードが解除されればデータは容易に読まれてしまう。パスワードが解除されない場合でも、記憶部を記憶装置から取り外して、データを直接読み取られる危険がある。
【０００３】
そこで、最近ではＡＥＳ（Ａｄｖａｎｃｅｄ Ｅｎｃｒｙｐｔｉｏｎ Ｓｔａｎｄａｒｄ）などの暗号化を用いてデータを記憶している。ＡＥＳはブロックと呼ばれる固定長（１２８ｂｉｔ）のデータを単位として、暗号化／復号化を共通の鍵で行うものである。ＡＥＳでは３種類の鍵長が定義されており、１２８ｂｉｔ／１９２ｂｉｔ／２５６ｂｉｔのいずれかを用いることができる。鍵長が長いほど、鍵を全数検索する総当り攻撃などに強く、１２８ｂｉｔ／１９２ｂｉｔ／２５６ｂｉｔの鍵長は、現在の計算機の処理能力では解読に非現実的な時間を要するため安全とされている。
【０００４】
ＡＥＳ暗号化には、ホスト側で行うもの（ソフトウエア暗号化）があるが高価であり、システムパフォーマンスに影響があった。そこで最近は、専用のチップを組み込み、ＡＥＳ暗号化をデバイス内部で行う記憶装置（ハードウエア暗号化）が販売されている。この場合、何らかの方法により暗号鍵のデータが把握されると、記憶しているデータが読み出されてしまう危険性は否定できない。
【０００５】
また、マルチファンクションプリンタなどの情報機器に記憶装置を組み込んで使用する場合、記憶装置には情報機器に必要な情報（オペレーティングシステムやアプリケーションプログラム）と使用者の機密情報（マルチファンクションプリンタの場合で言えば、プリント用の撮像データ）の両者が記憶される。情報機器を廃棄する場合は記憶データの全部を消去してもよいが、転売、レンタルなどで再利用する場合、機密情報は消去することが望ましいが、機器の運用に必要な情報は資源の有効活用の観点から、そのまま残すことが好ましい。また廃棄する場合は、どのような情報が記憶されているか判断することなく、データを無効化できることが望ましい。
【先行技術文献】
【特許文献】
【０００６】
【特許文献１】特表２００５−５０４７３号公報
【発明の概要】
【発明が解決しようとする課題】
【０００７】
そこで本発明が解決すべき第１の課題は、ハードウエア暗号記憶装置における暗号鍵の安全な管理方法の提供にある。第２の課題はハードウエア暗号記憶装置に複数種類の情報を記憶し、譲渡、廃棄、レンタル時等において、重要度、種類に応じて任意に情報を無効化する方法の提供にある。第３の課題は、ハードウエア暗号記憶装置に複数種類の情報を記憶している場合において、廃棄時等において、どのような情報が記憶されているか判断することなくデータを無効化する方法の提供にある。その他の課題は、明細書、図面、特に特許請求の範囲により自ずと明らかとなろう。
【課題を解決するための手段】
【０００８】
本発明では、上記課題解決のため本発明が採用する新規な特徴的構成により上記課題を解決する。即ち本発明方法の第１の特徴は、記憶装置に複数のパーティションを設けるとともに、各パーティションにそれぞれ固有のパーティション鍵を定義する。パーティション鍵は暗号化して管理する。ホストから特定パーティションのデータを無効化するコマンドが発行されたときは、そのパーティション鍵の消去を実行する。本発明方法の第２の特徴は、記憶装置に一又は複数のパーティションを設けるとともに、パーティションに固有のパーティション鍵を定義する。パーティション鍵はデフォルト鍵で暗号化して管理する。ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵を消去する。その他、本発明は、特許請求範囲において上位概念から下位概念に亙り列挙する新規な構成的特長により上記課題を解決する。
【発明の効果】
【０００９】
本発明によれば、データを暗号化して記憶するとともに、暗号／復号化鍵を暗号化して管理するので、パスワード機能が解除され、或いは記憶部が記憶装置から取り外されても、データが解読されることがない。また記憶装置にユーザが複数のパーティションを設けるので、重要度、種類に応じてデータを記憶できるとともに、パーティションごとに固有の暗号化／復号化鍵を定義するので、ホストから特定パーティションのデータを無効化するコマンドが発行されたとき、そのパーティション固有の鍵を消去することにより、任意のデータのみ無効化し、その余のデータは継続使用することができる。また、パーティション鍵をデフォルト鍵で暗号化して管理することにより、ホストから全データを無効化するコマンドが発行された場合、デフォルト鍵の消去を実行することにより、暗号化された全データを無効化することができる。また無効化を瞬時に実行できる。
【図面の簡単な説明】
【００１０】
【図１】本発明の記憶装置の基本構成例である。
【図２】ＮＡＮＤ型フラッシュメモリを用いた記憶装置の構成例である。
【図３】記憶部の領域例である。
【図４】パーティション鍵生成前のパーティション鍵マップの構成例である。
【図５】パーティション鍵マップの構成例である。
【図６】パーティション鍵マップの他の構成例である。
【発明を実施するための形態】
【００１１】
以下、本発明を実施するための最良の形態について図面を用いて説明するが、本発明は特許請求の範囲内において種々の形態を採ることができ、下記実施形態に限定されないことはいうまでもない。
【００１２】
（システム基本構成）
図１は、本発明の実施形態に係る記憶装置の基本構成例である。図１に示すように、本発明のセキュリティ方法は、本発明の記憶装置２と、記憶装置２に対するメディアアクセス主体であるホスト１とからなるシステムで実行される。記憶装置２は、ホスト１からコマンド（オペレーションコード、指定アドレス）や書き込み用データを含む）を受け取ったり、読み出したデータやコマンドステータスをホスト１に送出するデータデバイスインターフェース２１と、データを格納する記憶部３０と、記憶部３０へのデータの書き込みや記憶部３０からのデータの読み出しの制御を実行する記憶部制御手段３１と、ホスト１から送られたデータを暗号化するとともに、記憶部３０から読み出されたデータを復号化する暗号／復号処理部２０を有する。
【００１３】
暗号／復号処理部２０は、鍵生成部２７と、鍵生成部２７で生成された鍵を用いて所定のロジックに基づきデータの暗号化／復号化を実行する暗号化／復号化部２４と、暗号化／復号化部２４でデータを暗号化／復号化するための鍵を選択して暗号化／復号化部２４に設定する暗号鍵設定回路２３と、鍵暗号化／復号化部２８を有する。これらはプロセッサ２５により統括的に制御される。暗号化／復号化部２４は独自のハードウエアロジックで構成され、プロセッサ２５の処理に拠らないため、非常に高速で処理を実行できる。ＲＡＭ２６は、揮発性メモリであり、プロセッサ２５の作業領域である。暗号鍵設定回路２３は、後述する各種の暗号鍵をシステム起動中格納する暗号鍵格納部２３２、暗号化又は復号化を前記いずれの鍵で実行するかを判定する鍵判定回路２３１、判定回路２３１からの信号に基づき選択された鍵データを暗号化／復号化部２４に入力、設定する鍵データ出力部２３３を有する。記憶部３０は、記憶領域３３と周知の管理領域３４を有し、管理領域３４は後述するデフォルト鍵、パーティション鍵、並びにパーティション鍵マップ３４１を格納する。鍵暗号化／復号化部２８は、プロセッサ２５の制御に基づき、デフォルト鍵、パーティション鍵の暗号化及び復号化を行う。
【００１４】
記憶装置２は、ＨＤＤの他、記憶部３０にＮＡＮＤ型フラッシュメモリのような不揮発性半導体記憶装置を用いたＳＳＤなどで構成することができる。ＨＤＤの場合、記憶部制御手段は、磁気ヘッドのシーク、データの書き込み、読み出しを制御する。ＳＳＤの場合、記憶部制御手段はＮＡＮＤフラッシュメモリコントローラで構成される。
【００１５】
ホスト１との間のデバイスインターフェース２１は、ＩＤＥインターフェースやシリアルＡＴＡインターフェースで構成され得る。記憶装置２はホスト１に挿抜して使用するUSBメモリで構成してもよい。
【００１６】
以下、本発明の記憶装置２がＳＳＤで構成されるとともに、情報機器に組み込んで使用される例について、図２乃至図５を用いて説明する。ＳＳＤは図２に示すように、記憶部がＮＡＮＤ型フラッシュメモリ４０で構成される。なお図２では、図１と同一の機能及び構成を有する要素については、同一の符号を付している。
【００１７】
本実施形態は、記憶部がＮＡＮＤ型フラッシュメモリ４０で構成されるため、記憶部制御手段は、フラッシュメモリコントローラ４１で構成される。このコントローラ４１は、ＮＡＮＤ型フラッシュメモリ４０にコマンドを発行しデータの読み書きを実行するもので、ＮＡＮＤ型フラッシュメモリ特有のｂａｄブロックに対処するための不図示のエラー訂正回路、論理ブロックアドレス/物理ブロックアドレス変換テーブルを有する。
【００１８】
（初期設定）
情報機器が例えばマルチファンクションプリンタのような組み込み系の機器の場合、はじめに情報機器のベンダーは、初期設定を行うため、ＳＳＤを、ＯＳその他、情報機器の運用に必要なソフトウエアを書き込むマシンに接続する。マシンはハードウエア暗号の初期設定ツールがインストールされている専用のコンピュータで構成され、図２のホスト１がこれに相当する。マシンに電源を投入後、まず初期設定ツールであるソフトウエアを用いてデフォルト鍵生成を行う。デフォルト鍵は、鍵生成部２７が有する乱数発生器によって生成される。このデフォルト鍵を“ＫｅｙＤ”とする。デフォルト鍵は初期設定のとき生成されるもので、その後変更されることはない。
【００１９】
デフォルト鍵は適当な値を暗号鍵として、鍵暗号化／復号化回路２８よって暗号化され、管理領域４５に格納される。記憶装置が外付けのＳＳＤのように一般ユーザが使用する場合、盗難に備えてＡＴＡが標準機能として有するパスワードを設定できるが、デフォルト鍵生成時までにこのパスワードが設定されている場合は、パスワードを暗号鍵としてデフォルト鍵を暗号化することができる。
【００２０】
尚パスワードは一方向ハッシュ関数を通してハッシュ値に変換され、管理領域４５に格納され、以降の記憶装置２でのパスワード照合にそのまま利用される。即ち、記憶装置２を組み込んだ若しくは記憶装置２を接続したシステムに、電源が投入された後、記憶装置２へのアクセス許可を受けるためにＡＴＡパスワードが入力されると、同様にハッシュ関数によってハッシュ値に変換される。そして、管理領域４５に記憶しているハッシュ値と照合され、両者が一致するとアクセスが許可される。ハッシュ値が元の状態に戻すことができない性質を利用したものであり、これによりパスワードを安全に管理することができる。
【００２１】
尚、デフォルト鍵と後述するパーティション鍵の生成は、プロセッサ２５がコマンドを解釈して、鍵生成部２７によって実行するものである。暗号化されたデフォルト鍵の管理領域４５への格納はデフォルト鍵生成コマンドに付随して一括して実行される。暗号化されたパーティション鍵の管理領域４５への格納も、同様にパーティション鍵の生成に付随して実行される。内部処理としては、プロセッサ２５がフラッシュメモリコントローラ４１にコマンドを発行して実行する。
【００２２】
デフォルト鍵は、必ず生成される暗号鍵であって、以下の機能を有する。デフォルト鍵を生成すると、更のＳＳＤ（パーティション設定前）にベンダーによって何らかのシステム上必要なデータが書き込まれていても、データ読み出しの際、そのデータはデフォルト鍵で復号化されてから読み出されるので、意味のないランダムなデータが読み出される。ユーザが後述するパーティションの設定後、パーティション鍵の生成をしなかった場合（ｄｅｆａｕｌｔ）でも、その後ホストから送出されるデータはデフォルト鍵で自動的に暗号化される。また、後述するパーティションテーブルやマスターブートレコードのように、パーティションで定義されていない領域に対するホストからの書き込みデータを暗号化する。詳しくは後述する。
【００２３】
次に、必要な数だけパーティションを設定する。図３では、パーティション“０”（５２）乃至パーティション“２”（５４）を設定した様子を示している。各パーティションで構成される領域の記憶容量は、そこに格納することが予定されているファイルの容量を勘案して決定する。マシンが初期設定者からパーティション設定の指示を受けると、マシンは記憶領域４４をどのように分割して使うか、その内容をMBR記憶領域５１内のパーティションテーブル５１１へ書き込む。この書き込みはデフォルト鍵によって暗号化されて実行されるとともに、平文データがＲＡＭ２６に一時記憶される。
【００２４】
プロセッサ２５は、ＲＡＭ２６に一時記憶されているパーティションテーブル５１１のデータを参照し、各パーティションのアドレス（論理セクタアドレス）を、管理領域４５に記憶させるためのコマンドをフラッシュメモリコントローラ４１に発行する。コマンドパラメータとして、パーティション番号、パーティションの先頭セクタアドレスと終了セクタアドレス、若しくは、パーティション番号、パーティションの先頭アドレスとセクタ数を指定する。このコマンドは、後述するパーティション鍵マップ３４１を生成するためのものである。図４は、記憶された状態を模式的に表したものであり、後述するパーティション鍵を生成したときには、パーティション鍵マップ３４１として完成されるものである。図示するように、この段階では、各パーティションの先頭セクタアドレスと終了セクタアドレス（図４（ａ））、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数（図４（ｂ））で構成される。
【００２５】
上記、ユーザが設定したパーティションは、ホスト１からドライブと認識され得る領域を構成する。
【００２６】
次に、鍵生成部２７が持っている乱数発生器を使って各パーティションの暗号鍵を生成する。本実施例ではパーティションを３つ設定しているので、パーティション鍵を、Ｋｅｙ“０”乃至Ｋｅｙ“２”の３つ生成するものとする。パーティションとパーティション鍵番号の関係は図３に示す通り、パーティション“０”、“１”、“２”にそれぞれ対応して、パーティション鍵Ｋｅｙ“０”、Ｋｅｙ“１”、Ｋｅｙ“２”とする。そして生成したパーティション鍵を、デフォルト鍵（平文）を暗号鍵として、鍵暗号化／復号化回路２８よって暗号化し、管理領域４５の所定の領域に格納する（詳しくは後述する）。
【００２７】
このときプロセッサ２５は、管理領域４５に、パーティション設定時に記憶された各パーティションのセクタアドレス情報に対し、各パーティションを暗号化するパーティション鍵との関係を追記し、パーティション鍵マップ３４１を完成する。図５は完成したパーティション鍵マップ３４１の例である。図示するように、各パーティションの先頭セクタアドレスと終了セクタアドレス並びに対応するパーティション鍵の関係（図５（ａ））、若しくは先頭セクタアドレスとそのパーティションを構成するセクタ数並びに対応するパーティション鍵の関係（図５（ｂ））で構成される。図５において、対応暗号鍵として、Ｋｅｙ０乃至Ｋｅｙ２と記載しているが、これはＫｅｙのデータではない。実際にはＫｅｙ番号を特定する情報、例えばそのＫｅｙのＩＤ番号である。
【００２８】
次にパーティションへ、組込みが予定されている情報機器の運用に必要なソフトウエアを格納する。具体的には、図３に示すように、パーティション“０”にはＯＳ５２０を、パーティション“１”には、情報機器、例えばマルチファンクションプリンタを運用するために必要な各種アプリケーションプログラム５３０を格納する。このデータはファイルシステムによってファイルとして記憶される。ＯＳ５２０を格納した際、マシンはＭＢＲ記憶領域５１にブートローダ５１２を記録する。ブートローダ５１２は、後述するように、デフォルト鍵によって暗号化されて記録される。
【００２９】
ホスト１から書き込み指令されるＯＳ５２０はパーティション鍵Ｋｅｙ“０”を暗号鍵として、アプリケーションプログラム５３０はＫｅｙ“１”を暗号鍵として、暗号化／復号化部２４で暗号化してパーティションに格納される。このようにして設定したＳＳＤを、予定されている情報機器に組み込む。記憶装置２は情報機器にすでに組み込まれているホスト１に接続されて使用される。この場合のホスト１はＣＰＵが実装されているＣＰＵボードで構成することができる。パーティション“２”はユーザデータ領域、例えばマルチファンクションプリンタのスキャナで撮像されたプリント用データが格納される領域で、最も機密性の高いパーティションである。プリント用のデータが撮像されると、Ｋｅｙ“２”により撮像データが暗号化されてパーティション“２”に格納される。
【００３０】
以下、（１）デフォルト鍵の暗号化／復号化、（２）パーティション鍵の暗号化／復号化、（３）ホストから受け取ったデータを暗号化し、ユーザが定義したパーティションに格納する手順、（４）ユーザが定義したパーティションに格納しているデータを読み出し、パーティション鍵を使って復号化しホストに送出する手順、並びに（５）デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されていない領域へ格納する手順について、図２を用いて順に説明する。
【００３１】
（１）デフォルト鍵の暗号化／復号化；
上記、「初期設定」の項で述べたように、デフォルト鍵が生成されると、鍵暗号化／復号化部２８で暗号化され、管理領域４５に不揮発的に格納されて管理される。以下においては、便宜上、デフォルト鍵を、ＡＴＡパスワードを暗号鍵として暗号化する方法について述べる。鍵の暗号化／復号化は下記（３）で使用するものと同じ論理回路で実行する方式、ファームウエアにＡＥＳアルゴリズムを実装して実行する方式など種々の方式で実行することができる。アルゴリズムは、ＡＥＳ方式の他、Ｔｒｉｐｌｅ  ＤＥＳ方式など他の暗号化アルゴリズムでもよい。以下、暗号化／復号化部２８は、便宜上、詳細には追って説明するＡＥＳ方式の回路で実行するものとして説明する。
【００３２】
暗号鍵を暗号化する理由は、暗号鍵が平文のまま管理領域４５で管理されると、記憶装置２を分解してＮＡＮＤフラッシュメモリ４０から暗号鍵が読み取られてしまい、暗号化されているユーザデータが解読されてしまう危険性があるからである。    
【００３３】
初期設定時にパスワード設定を行うと、パスワードは揮発性ＲＡＭ２６に一時記憶される。プロセッサ２５は、このパスワードを暗号鍵として鍵暗号化／復号化回路２８の鍵入力部（図示せず）に入力して設定するとともに、鍵暗号化／復号化回路２８の暗号化用データ入力部（図示せず）にデフォルト鍵を入力する。これによりデフォルト鍵が暗号化され、暗号化データ出力部より出力する。プロセッサ２５はフラッシュメモリコントローラ４１にコマンドを発行し、暗号化されたデフォルト鍵を管理領域４５に格納する。
【００３４】
システムに電源が投入され、パスワードが入力されるとパスワード照合が行われ、アクセス許可がなされるとデフォルト鍵（暗号文）が管理領域４５から読み出され、鍵暗号化／復号化回路２８の復号化用データ入力部（図示せず）に入力されるとともに、システム電源投入後にユーザが入力しＲＡＭ２６に記憶しているパスワードを復号鍵として鍵暗号化／復号化回路２８の鍵入力部に入力、設定する。これによりデフォルト鍵が復号化され、復号化データ出力部（図示せず）より出力し、ＲＡＭ２６に一時記憶される。
【００３５】
（２）パーティション鍵の暗号化／復号化
パーティション鍵が生成されると、プロセッサ２５は、パーティション鍵のデータを鍵暗号化／復号化部２８の暗号用データ入力部に入力するとともに、先に設定しているデフォルト鍵（平文）を暗号鍵として鍵暗号化／復号化部２８の鍵入力部に入力、設定して暗号化する。
【００３６】
システムに電源が投入され、パスワードが入力されると、パスワード照合が行われ、アクセス許可が成されると、暗号化されたパーティション鍵が管理領域４５から読み出され、プロセッサ２５は、鍵暗号化／復号化部２８の復号用データ入力部に入力するとともに、デフォルト鍵（平文）を復号鍵として鍵暗号化／復号化部２８の鍵入力部に入力、設定する。これにより復号化されたパーティション鍵が復号化データ出力部から出力し、揮発性ＲＡＭ２６に一時的に記憶される。
【００３７】
（３）ホストから受け取ったデータを暗号化しパーティションに格納する手順
以下、図２を用いて、ホスト１から受け取ったデータを暗号化してパーティション“２”に格納する手順について、情報機器起動後の状態から説明する。
【００３８】
（ａ）パーティション鍵マップと暗号鍵のセッティング
システムに電源が投入されてパスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、管理領域４５に格納しているパーティション鍵マップ３４１を読み出して鍵判定回路２３１にセッティングするとともに、管理領域４５に格納されている暗号化されているデフォルト鍵、パーティション鍵を読み出して、上述の手順に基づきすべて復号化して、暗号鍵格納部２３２にセットする。暗号鍵格納部２３２は揮発性メモリで構成する。これによりホストから送出されるデータの暗号化の準備が完了する。
【００３９】
（ｂ）データの入力、アドレスの通知
ホスト１から書き込みコマンドが送られると、デバイスインターフェース２１を介して、アドレス（ホストＬＢＡ）とデータが暗号化／復号化部２４に入力される。データは暗号化／復号化部２４の暗号化／復号化回路２４１の暗号化データ入力部ａに入力する。先頭セクタアドレスは暗号化／復号化部２４のセクタアドレス更新回路２４２に入力し、セクタアドレス更新回路２４２はセクタアドレスを暗号鍵設定回路２３の鍵判定回路２３１に送る。
【００４０】
（ｃ）暗号鍵の選択
鍵判定回路２３１は先にセットされているパーティション鍵マップ３４１を参照して、通知されたセクタアドレスに基づき、どのパーティション鍵を使って暗号化すべきかを判定し、鍵データ出力部２３３に、該当するパーティション鍵選択信号を送る。
【００４１】
（ｄ）暗号鍵の設定、データの暗号化
鍵データ出力部２３３は暗号鍵格納部２３２から、選択されたパーティション鍵のデータを読み出して、暗号化／復号化部２４の鍵入力部ｂに入力し、設定する。データが入力部ａに入力されるとデータの暗号化が開始される。暗号化はブロックと呼ばれる固定長１２８ｂｉｔずつ実行される。暗号化が１セクタ（５１２ｂｙｔｅ）終了する度に、セクタアドレス更新回路はセクタ情報を１つインクリメントして、次に暗号化するデータのセクタアドレス情報を鍵選択回路２３１に送る。これは、暗号化に必要なパーティション鍵を常時監視させ、適切な暗号化を実行させるためである。暗号化が終了したデータは、暗号化データ出力部ｃからバッファ２９に出力する。
【００４２】
（ｅ）フラッシュメモリコントローラへの入力
プロセッサ２５はホスト１から受け取ったコマンドを解釈し、フラッシュメモリコントローラ４１に書き込みコマンドを発行するとともに（オペレーションコードとアドレスに関する情報を含む）、バッファ２９に溜まったデータをＮＡＮＤ型フラッシュメモリ４０に書き込む。尚、暗号化とメモリ４０に対する書き込み動作は同時並行して実施することができる。
【００４３】
（ｆ）ＮＡＮＤ型フラッシュメモリ（パーティション“２”）への書き込み
フラッシュメモリコントローラ４１では、論理ブロックアドレス／物理ブロックアドレス変換テーブルを参照して、通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出し、不図示のエラー訂正回路のＥＮＤＥＣで生成したエラー訂正符号とともに、バッファ２９から取り出したデータを、割り出した物理ブロックアドレスに書き込むようＮＡＮＤフラッシュメモリ４０にコマンドを発行する。ＮＡＮＤフラッシュメモリ４０はコマンドにしたがって、指定されたアドレスに暗号化されたデータを書き込む。以上でデータの暗号化と書き込みが完了する。
【００４４】
（４）パーティションに格納しているデータを読み出し、復号化してホストに送出する手順
プロセッサ２５がホスト１からデバイスインターフェース２１を介してｒｅａｄコマンドを受領すると、先頭セクタアドレス（ホストＬＢＡ）を暗号化／復号化部２４に設定する。
【００４５】
暗号化／復号化部２４のアドレス更新回路２４２は、先に設定されたアドレスをラッチしておき、セクタアドレスを鍵判定回路２３１に送る。鍵判定回路２３１は、このアドレスに基づきパーティション鍵マップ３４１を参照し、復号に必要な鍵を判定し、鍵選択回路２３２に通知し、鍵データ出力部２３３から出力させ、暗号化／復号化部２４の鍵入力部ｂにセットし、復号化用データの入力に待機する。復号に用いる鍵は暗号化に用いた鍵と同じ鍵である。即ち、暗号鍵と復号鍵は共通鍵となっている。
【００４６】
プロセッサ２５はホスト１から受け取ったコマンドを解釈し、フラッシュメモリコントローラ４１に対して読み出しコマンドを発行する。このコマンドには読み出すべきデータのアドレス情報を含む。フラッシュメモリコントローラ４１は、論理ブロックアドレス／物理ブロックアドレス変換テーブルを参照して、アドレスとして通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出してデータを読み出し、エラー訂正回路によりエラー有無のチェックを行い、エラーがあれば訂正し、データを暗号化／復号化部２４の復号用データ入力部ｃに入力する。データ入力と同時に復号化が開始される。
【００４７】
復号化は暗号化と同じく１２８ｂｉｔずつ実行される。１セクタの復号が終了する度に、セクタ情報を１つインクリメントして、そのセクタアドレス情報が、セクタアドレス更新回路２４２から鍵判定回路２３１に通知される。復号化が終了すると、暗号化／復号化部２４の復号化データ出力部ａより、復号化されたデータがデバイスインターフェース２１を介してホスト１に送出される。ｒｅａｄコマンドに係るすべてのデータが送出されるとｒｅａｄコマンドに対する処理が完了する。
【００４８】
（５）デフォルト鍵を使ってデータを暗号化し、パーティション鍵が設定されていない領域へ格納する手順
上述の通り、パーティションが設定されると、マシン側のＯＳよりパーティションテーブルデータの書き込みコマンドがマシン側から入力され、パーティションテーブルデータが暗号化／復号化部２４の暗号用データ入力部ａに入力される。プロセッサ２５は、データの先頭セクタアドレスを鍵判定回路２３１に送ると、鍵判定回路２３１はパーティション鍵マップ３４１を参照し、通知された先頭セクタアドレスがいずれのパーティションにも属さないため、暗号鍵がデフォルト鍵であると判定し、デフォルト鍵データ（平文）を暗号鍵として暗号化／復号化部２４の鍵入力部ｂに入力、設定する。これにより、パーティションテーブルデータの暗号化が開始される。
【００４９】
一方プロセッサ２５は、フラッシュメモリコントローラ４１に書き込みコマンド（オペレーションコードとアドレスの情報を含む）を送る。フラッシュメモリコントローラ４１が、暗号文を受け取ると、アドレスとして指定された論理ブロックアドレスを、物理ブロックアドレス／論理ブロックアドレス変換テーブルを用いて変換した物理ブロックアドレスに、エラー訂正符号とともにデータを指定されたアドレスに書き込む。ＭＢＲ記憶領域５１は、通常、セクタアドレス “０”に予定されている。ＯＳ５２０を書き込んだ後は、マシン側からブートローダ５１２の書き込みコマンドが発行される。この場合も、パーティションテーブルと同様な手順で、指定されたアドレスにデータを書き込む。
【００５０】
（変更例）
上述した実施形態では、OS５２０等を組み込む初期設定段階ではじめにデフォルト鍵を生成した例を示したが、工場出荷段階でSSDベンダーがデフォルト鍵を生成している場合は必要ではない。またユーザがパーティション鍵を生成することが必須の要件とされている場合は、デフォルト鍵は必ずしも必要ではない。その場合、パーティション鍵を暗号化する場合は、ＡＴＡパスワード（平文）を鍵としてパーティション鍵を暗号化すればよい。ＡＴＡパスワードが設定されない場合は、適当な値で暗号化すればよい。また、論理ブロックアドレス／物理ブロックアドレス変換テーブルやエラー訂正回路をプロセッサ２５に持たせ、プロセッサ２５がフラッシュメモリコントローラ４１の役割を兼ねてもよい。その場合、フラッシュメモリコントローラ４１は不要とであり、プロセッサ２５からのコマンドとバッファ２９からのデータは、ＮＡＮＤフラッシュメモリ４０のＮＡＮＤインターフェースに直接入力すればよい。
【００５１】
（ユーザ領域のデータの消去）
本実施形態の記憶装置２を組み込んだ情報機器は再利用される場合がある。資産の有効活用の観点からすれば、ＯＳやアプリケーションプログラムなど機器の運用に必要なプログラムは転売時に削除せず資産として、そのまま後の使用者に使用させることが好ましい。一方、機密情報が格納されている可能性のある特定のユーザデータ領域、例えば、本実施形態におけるパーティション“２”の撮像データは、前使用者の機密データが記憶されているため、転売時には消去することが望ましい。
【００５２】
上記の観点に立った場合、本実施形態例において消去すべきは、パーティション“２”に係るデータのみであるから、フラッシュメモリコントローラ４１にパーティションデータ無効化コマンドを解釈する手段を設け、ホスト１から該コマンドが発行されたときは、そのパーティション鍵を消去する。ここで消去とは、パーティション鍵自体を完全に消去し、以降そのパーティションに記憶されている暗号化されたデータ（のみ）を解読不可能にすることをいう。パーティションデータ無効化コマンドは、専用のオペレーションコードと無効化の対象となるパーティション番号で定義することができる。パーティション鍵が消去されると、そのパーティションのデータは以降、復号化して読み出すことはできない。
【００５３】
パーティション鍵消去方法例１として、パーティションデータ無効化コマンドを受け取ったプロセッサ２５が、当該コマンドの実行をフラッシュメモリコントローラ４１にリクエストし、コントローラ４１内のプロセッサがコマンドのオペレーションコードを解釈し、管理領域４５に格納されているＫｅｙ２を消去する。この消去はＫｅｙ２を記憶している物理ブロックの当該Ｋｅｙ２以外のデータを他のブロックに一旦退避させ、元のブロックをＮＡＮＤ型フラッシュメモリが有するｅｒａｓｅコマンドでブロック消去（セル電荷の除去）し、退避していたブロックのデータを元のブロックに書き戻すことにより行う。このとき退避先のブロックの消去も実行する。
【００５４】
新たにパーティション鍵“Ｋｅｙ２”を設定するのは機器の性質上メンテナンスの一環として当該情報機器に詳しい専用の業者（初期設定ソフトを用いて行う）である場合も想定される。この場合パーティション“２”のデータが完全消去されていれば、データを見られてしまうという心配をしなくて済み、したがって前使用者は安心して当該情報機器を再利用にまわすことができ、資源の有効活用を図ることができる。
【００５５】
パーティション鍵“Ｋｅｙ２”を消去するとき、パーティション鍵マップ３４１におけるパーティション“２”に対応する暗号鍵（ＩＤ）を、デフォルト鍵に変更するとよい。こうすれば、パーティション“２”に対する以降の書き込みは、デフォルト鍵によって自動的に暗号化されて記憶され、パーティション鍵の新たな設定をしなくても、継続使用することができる。仮にデータにアクセスしても、旧パーティション鍵“Ｋｅｙ２”で暗号化されたデータがデフォルト鍵で復号化されるので、ランダムなデータが読み出されるだけで、機密漏洩の心配はない。
【００５６】
この他パーティション鍵消去方法例２として、パーティション鍵“Ｋｅｙ２”の消去を、パーティション“２”の新たなパーティション鍵の設定により実行してもよい。これは、プロセッサ２５がパーティション消去コマンドを受けたとき、新たなパーティション鍵“Ｋｅｙ２”を生成、暗号化するとともに、フラッシュメモリコントローラ４１にコマンドを発行し、暗号化したあらたなパーティション鍵“Ｋｅｙ２”のデータを渡して管理領域４５に格納させる。この格納は、旧パーティション鍵に対して新たな鍵を上書きすることにより実行する。なおこの場合はパーティション鍵マップ３４１の書き換えは不要であることが理解されよう。
【００５７】
また、情報機器に電源投入された際、その都度パーティションデータ無効化コマンドを記憶装置２（プロセッサ２５）に発行しておき、一定の状態（例えば、機器がスタンバイ状態）になったときに、パーティション鍵“Ｋｅｙ２”を自動的に更新（新しいパーティション鍵を設定）してもよい。あるいは所定時間間隔、たとえば１２時間おきに、タイマーイベントとして実行してもよい。
【００５８】
記憶装置２が外付けのＳＳＤの場合は、ユーザがパーティションを任意の数設定することができ、使い方もまちまちであるが、特定パーティションを機密情報格納用として使用し、使用途中で不要になった機密情報を削除したい場合も生じる。ユーザは、パーティション設定時に、予めどのパーティションを機密情報格納用とするか把握することができるので、機密情報を削除する場合は、そのパーティションに係るパーティション鍵のみ消去すればよい。消去するには専用のアプリケーションソフトによって実行できる。
【００５９】
パーティション設定時に消去してよいパーティションと、消去してはいけないパーティションを定義できる場合は、その情報を、図６の３４１（ｃ）、３４１（ｄ）に示すように、パーティション鍵マップ３４１に属性として書き込むようにしてもよい。属性は、ホスト１からプロセッサ２５にコマンドを発行し、パーティション鍵マップ３４１の然るべき場所に書き込めばよい。システム稼動中、パーティション鍵マップ３４１をＲＡＭ２６に記憶させておき、フラッシュメモリコントローラ４１がパーティション鍵消去コマンドを受け取ったときに、パーティション鍵マップ３４１の属性を確認し、消去禁止のパーティションに対する消去コマンドであった場合はホスト１にエラーを返す。これにより、消去してはいけないデータを誤って消去してしまうことがない。これに付随し、ＯＳ５２０を格納したパーティション“０”とアプリケーションプログラム５２１を格納したパーティション“１”を、読み出し専用の領域に設定するとよい。
【００６０】
なお、パスワードは記憶装置２のアクセスとデフォルト鍵の暗号化に使用されるだけで、再利用（リユース）者があらたなパスワードを設定してもあらたなデフォルト鍵が生成されるわけではない。初期設定段階でパスワードが設定されない場合は、記憶装置２にだれでも自由にアクセスでき、暗号化されて記憶されているデータは自動的に復号化して読み出される。よって、パスワードを設定しない場合、暗号化することはあまり重要な意味を持たない。
【００６１】
この点、ホスト１から全暗号化データを無効化するコマンドを発行し、デフォルト鍵を消去するようにすれば、パーティション鍵の復号化を実行できなくなるので、パーティションで定義されている領域だけでなく、記憶領域４４に暗号化されて記憶されているすべてのデータを解読不能にすることができる。記憶装置２やこれを組み込んだ情報機器を廃棄する場合、どのような情報が記憶されているか判断することなく全データを無効化できるとともに、記憶装置２を物理的に破壊するなどしなくてもよいため、非常に利便性の高い記憶装置、情報機器を提供することができる。また、本記憶装置１は、全体を一つのＬＳＩで構成することができる。
【００６２】
以上、本実施形態例によれば、パスワード機能を解除し、或いは記憶部を取り外しても、暗号化されたデータしか読み出せない。またパスワードはハッシュ値を以って管理され、且つ、パーティション鍵はデフォルト鍵で暗号化され、デフォルト鍵はパスワードで暗号化されて管理されるので、パスワード、デフォルト鍵、パーティション鍵のいずれも解読される心配がない。即ち暗号化されたデータが解読される可能性は極めて低い。尚且つ、転売、リサイクル、或いは廃棄のときに、暗号鍵を消去すればデータは無効となり、記憶装置に一層のセキュリティを確保できる。
【００６３】
本出願人における先願（特願２００９−０１８４２５）では、特定パーティションのデータのみを高速消去する方法を提案したが、本願のハードウエア暗号機能を有する記憶装置の場合は、特定パーティション鍵のみを瞬時に消去するので、消去時間は先願に比べて高速である。
【符号の説明】
【００６４】
１  ホスト
２  本発明の記憶装置
２０  暗号／復号処理部
２１  デバイスインターフェース
２３  暗号鍵設定回路
２４  暗号化／復号化部
２５  プロセッサ
２６  ＲＡＭ
２７  鍵生成部
２８  鍵暗号化／復号化部
２９  バッファ
３０  記憶部
３１  記憶部制御手段
３３、４４  記憶領域
３４、４５  管理領域
２３１  鍵判定回路
２３２  暗号鍵格納部
２３３  鍵データ出力部
２４１  暗号化／復号化回路
２４２  セクタアドレス更新回路
３４１  パーティション鍵マップ  
ａ  暗号化用データ入力部、復号化データ出力部
ｂ  鍵入力部
ｃ  暗号化データ出力部、復号用データ入力部