暗号化記憶装置、情報機器、暗号化記憶装置のセキュリティ方法
【課題】 領域ごとにデータを無効化できる暗号化記憶装置の提供。ハードウエア暗号記憶装置に複数種類の情報が記憶されている場合において、より操作性のよいデータ無効化を実行できる暗号化記憶装置の提供。当該記憶装置に格納されている資源の有効活用を図ることのできる暗号化記憶装置の提供。
【解決手段】 ホストからパーティション鍵が暗号鍵として対応付けられている特定パーティションのデータ無効化コマンド又は特定パーティション鍵無効化コマンドが発行されたとき当該特定パーティションに対応付けられているパーティション鍵若しくは前記特定パーティション鍵を消去する手段と、ホストからパーティション鍵が暗号鍵として対応付けられていない特定パーティションのデータ無効化コマンド又はデフォルト鍵無効化コマンドが発行されたとき当該デフォルト鍵を消去する手段を設ける。
【解決手段】 ホストからパーティション鍵が暗号鍵として対応付けられている特定パーティションのデータ無効化コマンド又は特定パーティション鍵無効化コマンドが発行されたとき当該特定パーティションに対応付けられているパーティション鍵若しくは前記特定パーティション鍵を消去する手段と、ホストからパーティション鍵が暗号鍵として対応付けられていない特定パーティションのデータ無効化コマンド又はデフォルト鍵無効化コマンドが発行されたとき当該デフォルト鍵を消去する手段を設ける。
【発明の詳細な説明】
【技術分野】
【0001】
本発明はハードウエア暗号化手段を具備した記憶装置の改良、並びに該暗号化記憶装置を組み込んでなる情報機器、暗号化記憶装置のセキュリティ方法に関する。
【背景技術】
【0002】
ハードディスク(HDD)、ソリッドステートドライブ(SSD)、USBメモリなどの記憶装置に記憶したデータの漏洩が問題となっており、そのため、セキュリティ方法としてパスワード認証をアクセスの条件としている。しかしながら、最近の報告によれば、サービス領域のATAパスワード設定フラグをオフにしてロック機能を無効にできるといい(パスワード解除)、事実、捜査機関向けに、斯かるパスワード解除装置が販売されているのが現状である。パスワードが解除されればデータは容易に読まれてしまう。パスワードが解除されない場合でも、記憶部を記憶装置から取り外して、データを直接読み取られる危険がある。
【0003】
そこで、最近ではAES(Advanced Encryption Standard)などの暗号化を用いてデータを記憶している。AESはブロックと呼ばれる固定長(128bit)のデータを単位として、暗号化/復号化を共通の鍵で行うものである。AESでは3種類の鍵長が定義されており、128bit/192bit/256bitのいずれかを用いることができる。鍵長が長いほど、鍵を全数検索する総当り攻撃などに強く、128bit/192bit/256bitの鍵長は、現在の計算機の処理能力では解読に非現実的な時間を要するため安全とされている。
【0004】
AES暗号化には、ホスト側で行うもの(ソフトウエア暗号化)があるが高価であり、システムパフォーマンスに影響があった。そこで最近は、専用のチップを組み込み、AES暗号化をデバイス内部で行う記憶装置(ハードウエア暗号化)が販売されている。この場合、何らかの方法により暗号鍵のデータが把握されると、記憶しているデータが読み出されてしまう危険性は否定できない。
【0005】
また、マルチファンクションプリンタなどの情報機器に記憶装置を組み込んで使用する場合、記憶装置には情報機器に必要な情報(オペレーティングシステムやアプリケーションプログラム)と使用者の機密情報(マルチファンクションプリンタの場合で言えば、プリント用の撮像データ)の両者が記憶される。情報機器を廃棄する場合は記憶データの全部を消去してもよいが、転売、レンタルなどで再利用する場合、機密情報は消去することが望ましいが、機器の運用に必要な情報は資源の有効活用の観点から、そのまま残すことが好ましい。また廃棄する場合は、どのような情報が記憶されているか判断することなく、データを無効化できることが望ましい。
【0006】
そこで本発明者等は、特願2009−141007号(特許第4463320号、以下、「先願」という)において、ハードウエア暗号記憶装置における暗号鍵の安全な管理方法、ハードウエア暗号記憶装置に複数種類の情報を記憶し、譲渡、廃棄、レンタル時等において、重要度、種類に応じて任意に情報を無効化する方法、並びに、ハードウエア暗号記憶装置に複数種類の情報を記憶している場合において、廃棄時等においてどのような情報が記憶されているか判断することなくデータを無効化する方法、を提案した。以下、図11を用いて先願発明の実施形態例の概略を説明する。
【0007】
情報機器ベンダーの初期設定で、ハードディスクドライブ(HDD)若しくはソリッドステートドライブ(SSD)の記憶領域(管理領域を除くユーザデータ領域をいう。以下同じ)全体にデフォルト鍵を設定するとともに、3つのパーティション(パーティション“0”〜パーティション“2”)を設定する。各パーティションにそれぞれ独自のパーティション鍵(Key“0”乃至Key“2”)を設定する。各パーティションに書き込まれるデータはそのパーティションに対応付けられたパーティション鍵で暗号化される。読み出し時にはそのパーティション鍵でデータが復号化される。パーティションが設定されない領域(便宜上、「デフォルト領域」という))に書き込まれるデータはデフォルト鍵で暗号化され、読み出されるときは当該デフォルト鍵で復号化される。各パーティション鍵は、未使用時にはデフォルト鍵で暗号化されて記憶装置内(たとえば記憶部の管理領域)で安全に管理される。この構成により、記憶装置を内蔵した情報機器を転売やレンタルする場合、ユーザの機密情報の記憶された領域(パーティション)のパーティション鍵のみ消去することにより、機器の運用に必要な情報はそのまま残すことができ、資産の有効活用を図ることができる。デフォルト鍵を消去すれば、当該デフォルト鍵で暗号化されてなるパーティション鍵は以降復号化することができなくなるため、記憶領域の全データが無効化され、安心して情報機器を廃棄することができる。
【0008】
しかしながら、先願発明の場合、ベンダー(若しくはユーザ)が何らかの理由によりパーティション“2”にパーティション鍵(Key2)を設定しないようなケースでは、パーティション“2”に格納したデータは、デフォルト鍵で暗号化されて記憶される。このような場合、ホストから特定パーティションデータ無効化コマンドが発行されても、そのパーティションの暗号鍵はデフォルト鍵であるためパーティション鍵消去手段はデフォルト鍵を消去せず、当該パーティションのデータは無効化されない。この場合は、ユーザがそのパーティションにパーティション鍵を新たに設定する作業を行うしかなく、手間が掛かる。
【0009】
また、特定パーティションデータ無効化コマンドが発行されたとき、パーティション鍵消去手段がこのデフォルト鍵を消去するように構成したとすると、パーティション鍵が対応暗号鍵として設定されているパーティションのデータ(OSやアプリケーションプログラム)など、他のパーティションのデータも同時に無効化されてしまい、資源の有効活用を図ることができない。OSやアプリケーションプログラムを継続的にしようする場合はこれらを一旦外部メモリに移して、再度インストールしなおさなければならなかった。即ち、領域ごとの消去を実行する場合の自由度に一定の制限があった。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特表2005−50473号
【特許文献2】特許第4463320号
【発明の概要】
【発明が解決しようとする課題】
【0011】
そこで本発明が解決すべき第1の課題は、領域ごとのデータ無効化を、より操作性よく実行できる暗号化記憶装置の提供にある。第2の課題は、記憶装置に格納されている資源の有効活用を図ることのできる暗号化記憶装置の提供にある。その他の課題は、明細書、図面、特に特許請求の範囲により自ずと明らかとなろう。
【課題を解決するための手段】
【0012】
上記課題解決のため、本発明は、本発明が採用する新規な特徴的構成により、上記課題を解決する。即ち、本発明では、複数種類の情報が記憶されているハードウエア暗号記憶装置において、パーティション鍵とデフォルト鍵の共通の暗号鍵であるルート鍵を採用する。これにより、パーティション鍵とデフォルト鍵は紐付けされた関係にないので、デフォルト鍵を消去してもパーティション鍵が暗号鍵として対応付けられているパーティションデータは無効化されない。
【0013】
さらに、ホストからパーティション鍵が暗号鍵として対応付けられている特定パーティションのデータ無効化コマンド又は特定パーティション鍵無効化コマンドが発行されたとき当該特定パーティションに対応付けられているパーティション鍵若しくは前記特定パーティション鍵を消去する手段と、ホストからパーティション鍵が暗号鍵として対応付けられていない特定パーティションのデータ無効化コマンド又はデフォルト鍵無効化コマンドが発行されたとき当該デフォルト鍵を消去する手段を採用する。
【0014】
ここにおいて、マスターブートレコードを、パーティション鍵が暗号鍵として対応付けられているパーティションに格納しておけば、デフォルト鍵を消去してもマスターブートレコードは無効化されない。
【0015】
尚、デフォルト鍵の消去は、新たなデフォルト鍵を自動的に生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた旧デフォルト鍵に上書きすることにより実行するとよい。また、パーティション鍵の消去は、当該無効化対象とされたパーティション用に新たなパーティション鍵を生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた当該パーティション用の旧パーティション鍵に上書きし、パーティション鍵マップにおける当該パーティションにおける対応暗号鍵(ID)を前記新たに生成したパーティション鍵(ID)に修正することにより実行するとよい。
【0016】
さらに、ホストから全データを無効化するコマンドが発行されたときにルート鍵を消去する手段を採用する。その他、本発明は、特許請求範囲において上位概念から下位概念に亙り列挙する新規な特長的構成により上記課題を解決する。
【発明の効果】
【0017】
本発明によれば、1又は複数の、パーティション鍵が暗号鍵として対応付けられているパーティションデータのみ、又は、1又は複数の、デフォルト鍵が暗号鍵として対応付けられているパーティションデータのみを選択して、領域ごとのデータを操作性よく無効化することができ、使い勝手の良い暗号化記憶装置を提供することができる。また、マスターブートレコードを、パーティション鍵が暗号鍵として対応付けられているパーティションに格納しておけば、デフォルト鍵が暗号鍵として対応付けられているパーティションの当該デフォルト鍵を消去してもマスターブートレコードは無効化されないので、パーティション鍵が対応付けられているパーティションに格納されているOSやアプリケーションプログラムなどを継続して使用することができ、資源の有効活用を図ることができる。
【図面の簡単な説明】
【0018】
【図1】本発明の記憶装置の基本構成例である。
【図2】NAND型フラッシュメモリを用いた記憶装置の構成例である。
【図3】記憶領域の構成と暗号鍵の対応関係例1である。
【図4】記憶領域の構成と暗号鍵の対応関係例2である。
【図5】初期設定の手順例である。
【図6】初期設定の手順例(続き)である。
【図7】パーティション鍵マップ例(状態1)である。
【図8】パーティション鍵マップ例(状態2)である。
【図9】パーティション鍵マップ例(状態3)である。
【図10】パーティション鍵マップ例(状態4/完成状態)である。
【図11】先願発明の構成例(鍵と各領域との相関関係例)である。
【図12】本願発明の構成例1(鍵と各領域との相関関係例)である。
【図13】本願発明の構成例2(鍵と各領域との相関関係例)である。
【発明を実施するための形態】
【0019】
以下、本発明を実施するための最良の形態について図面を用いて説明するが、本発明は特許請求の範囲内において種々の形態を採ることができ、下記実施形態に限定されないことはいうまでもない。
【0020】
(システム基本構成)
図1は、本発明の実施形態に係る記憶装置の基本構成例である。図1に示すように、本発明のセキュリティ方法は、本発明の記憶装置2と、記憶装置2に対するメディアアクセス主体であるホスト1とからなるシステムで実行される。記憶装置2は、ホスト1からコマンド(オペレーションコード、指定アドレス)や書き込み用データを含む)を受け取ったり、読み出したデータやコマンドステータスをホスト1に送出するデータデバイスインターフェース21と、データを格納する記憶部30と、記憶部30へのデータの書き込みや記憶部30からのデータの読み出しの制御を実行する記憶部制御手段31と、ホスト1から送られたデータを暗号化するとともに、記憶部30から読み出されたデータを復号化する暗号/復号処理部20を有する。
【0021】
暗号/復号処理部20は、鍵生成部27と、鍵生成部27で生成された鍵を用いて所定のロジックに基づきデータの暗号化/復号化を実行する暗号化/復号化部24と、暗号化/復号化部24でデータを暗号化/復号化するための鍵を選択して暗号化/復号化部24に設定する暗号鍵設定回路23と、鍵暗号化/復号化部28を有する。これらはプロセッサ25により統括的に制御される。暗号化/復号化部24は独自のハードウエアロジックで構成され、プロセッサ25の処理に拠らないため、非常に高速で処理を実行できる。RAM26は、揮発性メモリであり、プロセッサ25の作業領域である。暗号鍵設定回路23は、後述する各種の暗号鍵をシステム起動中格納する暗号鍵格納部232、暗号化又は復号化を前記いずれの鍵で実行するかを判定する鍵判定回路231、判定回路231からの信号に基づき選択された鍵データを暗号化/復号化部24に入力、設定する鍵データ出力部233を有する。記憶部30は、記憶領域33と周知の管理領域34を有し、管理領域34は後述する、ルート鍵、デフォルト鍵、パーティション鍵、並びにパーティション鍵マップ341を格納する。記憶領域34と管理領域35は、同じ記憶素子で構成される場合と、例えばハードディスクと不揮発性半導体記憶素子、或いはNAND型フラッシュメモリとNOR形フラッシュメモリといったように、異なる記憶素子で構成される場合とがあり得る。鍵暗号化/復号化部28は、プロセッサ25の制御に基づき、ルート鍵、デフォルト鍵、パーティション鍵の暗号化及び復号化を行う。
【0022】
記憶装置2は、HDDの他、記憶部30にNAND型フラッシュメモリのような不揮発性半導体記憶装置を用いたSSDなどで構成することができる。HDDの場合、記憶部制御手段は、磁気ヘッドのシーク、データの書き込み、読み出しを制御する。SSDの場合、記憶部制御手段はNANDフラッシュメモリコントローラで構成される。
【0023】
ホスト1との間のデバイスインターフェース21は、IDEインターフェースやシリアルATAインターフェースで構成され得る。記憶装置2はホスト1に挿抜して使用するUSBメモリで構成してもよい。
【0024】
以下、本発明の記憶装置2がSSDで構成されるとともに、情報機器に組み込んで使用される例について、図2乃至図10を用いて説明する。SSDは図2に示すように、記憶部がNAND型フラッシュメモリ40で構成される。なお図2では、図1と同一の機能及び構成を有する要素については、同一の符号を付している。
【0025】
本実施形態は、記憶部がNAND型フラッシュメモリ40で構成されるため、記憶部制御手段は、フラッシュメモリコントローラ41で構成される。このコントローラ41は、NAND型フラッシュメモリ40にコマンドを発行しデータの読み書きを実行するもので、NAND型フラッシュメモリ特有のbadブロックに対処するための不図示のエラー訂正回路、論理ブロックアドレス/物理ブロックアドレス変換テーブルを有する。
【0026】
(初期設定)
以下、初期設定の手順例を、図5及び図6を用いて説明する。情報機器が例えばマルチファンクションプリンタのような組み込み系の機器の場合、はじめに情報機器のベンダーは、初期設定を行うため、SSDを、OSその他、情報機器の運用に必要なソフトウエアを書き込むマシンに接続する。マシンは初期設定ツールがインストールされている専用のコンピュータで構成され、図2のホスト1がこれに相当する。初期設定は全て初期設定ツールを用いて実行される。マシンに電源を投入後(S11)、まず初期設定ツールである初期設定ソフトウエアを用いてルート鍵の生成を行う(S12)。ルート鍵は、鍵生成部27が有する乱数発生器によって生成される。
【0027】
ルート鍵は適当な値を暗号鍵として、鍵暗号化/復号化回路28よって暗号化され、管理領域45に格納され管理される(S13)。記憶装置が外付けのSSDのように一般ユーザが使用する場合、盗難に備えてATAが標準機能として有するパスワードを設定できるが、ルート鍵生成時までにこのパスワードが設定されている場合は、パスワードを暗号鍵としてデフォルト鍵を暗号化することができる。
【0028】
続いてデフォルト鍵を生成する(S14)。このデフォルト鍵を“KeyD”とする。そして、ルート鍵(平文)を用いてデフォルト鍵が暗号化され、管理領域45に格納され管理される(S15)。
【0029】
尚パスワードは一方向ハッシュ関数を通してハッシュ値に変換され、管理領域45に格納され、以降の記憶装置2でのパスワード照合にそのまま利用される。即ち、記憶装置2を組み込んだ若しくは記憶装置2を接続したシステムに、電源が投入された後、記憶装置2へのアクセス許可を受けるためにATAパスワードが入力されると、同様にハッシュ関数によってハッシュ値に変換される。そして、管理領域45に記憶しているハッシュ値と照合され、両者が一致するとアクセスが許可される。ハッシュ値が元の状態に戻すことができない性質を利用したものであり、これによりパスワードを安全に管理することができる。
【0030】
尚、ルート鍵、デフォルト鍵、パーティション鍵の生成は、プロセッサ25がコマンドを解釈して、鍵生成部27によって実行するものである。ルート鍵の暗号化、続く管理領域45への格納は、ルート鍵生成コマンドに付随して一括して実行される。デフォルト鍵やパーティション鍵の暗号化、続く管理領域45への格納も当該鍵生成コマンドに付随して一括して実行される。内部処理としては、プロセッサ25がフラッシュメモリコントローラ41にコマンドを発行して実行する。
【0031】
デフォルト鍵は、必ず生成される暗号鍵であって、以下の機能を有する。デフォルト鍵を生成すると、更のSSD(パーティション設定前)にベンダーによって何らかのシステム上必要なデータが書き込まれていても、データ読み出しの際、そのデータはデフォルト鍵で復号化されてから読み出されるので、意味のないランダムなデータが読み出される。ユーザが後述するパーティションの設定後、パーティション鍵の生成をしなかった場合(default)でも、その後ホストから送出されるデータはデフォルト鍵で自動的に暗号化される。
【0032】
次に、MBR記憶領域51をユーザパーティションの一つ(図3において、パーティション“0”)として設定する(S16)。具体的には、この領域の容量(例えば256セクタ)を指定することにより設定する。初期設定ソフトウエアは、初期設定者からの指示に基づき、記憶装置2のアドレスであるセクタ0からセクタ255までをユーザ設定パーティション“0”としてのMBR記憶領域51を確保する。このときから初期設定ソフトウエアは、マシン側でパーティション鍵マップの生成を開始する。この段階のパーティション鍵マップは図7のように構成され、マシン側のRAM(図示せず)に一時記録される。
【0033】
次に初期設定者は、鍵生成部27が持っている乱数発生器を使ったパーティション“0”(MBR記憶領域51)用のパーティション鍵生成指示を行う(S17)。このパーティション鍵の生成は初期設定における必須条件とすることが好ましい。このパーティション鍵をKey0とする。この段階でパーティション鍵マップは図8のように設定され、記録される。このとき、マシン側のOSは、当該時点におけるパーティションテーブル511をMBR記憶領域51に書き込むコマンドを記憶装置2に対して発行する。MBR記憶領域51への書き込みは、先に生成しているパーティション鍵Key0によって暗号化されて実行される。
【0034】
続いて、必要な数のユーザパーティションを設定する(S18)。図3では、パーティション“1”(52)乃至パーティション“3”(54)を設定した様子を示している。これらパーティションの設定は、そこに格納することが予定されているファイルの容量を勘案して、当該記憶容量を具体的に指定して実行する。この段階でのパーティション鍵マップは図9のように記録される。このとき、マシン側のOSは、当該時点におけるパーティションテーブル511をMBR記憶領域51に書き込むコマンドを記憶装置2に対して発行する(S19)。この書き込みも、先に生成しているパーティション鍵Key0によって暗号化されて実行される。
【0035】
次に、鍵生成部27が持っている乱数発生器を使って、パーティション“1”とパーティション“2”に対するパーティションの暗号鍵(パーティション鍵)を生成する(S20)。この段階でのパーティション鍵マップは図10のように記録される。パーティションとパーティション鍵(ID)の関係は図3及び図10に示す通り、パーティション“1”、“2”にそれぞれ対応して、パーティション鍵Key1、Key2とする。本実施例では、パーティション“3”にはパーティション鍵は設定されていないので、パーティション鍵マップのパーティション“3”の対応暗号鍵はデフォルト鍵KeyDが自動的に対応付けられ、記録される。尚、複数のパーティションに同一のパーティション鍵を暗号鍵として対応付けてもよい。これで、マシン側におけるパーティション鍵マップの生成は完了する。
【0036】
パーティション鍵マップは図10に示すように、各パーティションの先頭セクタアドレスと終了セクタアドレス並びに対応するパーティション鍵の関係で構成しているが、先頭セクタアドレスとそのパーティションを構成するセクタ数並びに対応するパーティション鍵の関係で構成してよいことは言うまでもない。図8乃至図10において、対応暗号鍵として、Key0乃至Key2と記載しているが、これはKeyのデータではない。実際にはKey番号を特定する情報、例えばそのKeyのID番号である。そして生成したパーティション鍵Key1、Key2は、ルート鍵(平文)を暗号鍵として、鍵暗号化/復号化回路28よって暗号化され(S21)、管理領域45の所定の領域に格納され管理される(方法の詳細は後述する)。
【0037】
マシンはこの時点で、パーティション鍵マップを管理領域45に格納させるコマンドを記憶装置2に対して発行する(S22)。このコマンドは、独自のオペレーションコードと、マシン側のRAMに一時記憶している完成したパーティション鍵マップのデータ(パラメータ)とで構成することができる。記憶装置2のプロセッサ25はオペレーションコードを解釈し、マシン側から送出されたデータを加工してパーティション鍵マップを生成し、管理領域45に格納する(暗号化はされない。図2において、管理領域45に格納されたパーティション鍵マップを符号341で示している)。尚、パーティション鍵が設定されない領域は全て自動的にデフォルト鍵で暗号化/復号化されるので、管理領域45の記憶容量の有効活用のため、パーティション鍵マップのパーティション“3”に係る部分は割愛して格納してもよい。
【0038】
次にパーティション“1”、パーティション“2”へ、情報機器の運用に必要なソフトウエアを格納する(S23)。具体的には、図3に示すように、パーティション“1”にはOS520を、パーティション“2”には、情報機器、例えばマルチファンクションプリンタを運用するために必要な各種アプリケーションプログラム530を格納する。このデータはファイルシステムによってファイルとして記憶される。OS520を格納した際、マシンはMBR記憶領域51にブートローダ512を記録するコマンドを発行する(S24)。ブートローダ512もパーティション鍵Key0によって暗号化されて、マスターブートレコードの一つとして、MBR記憶領域51に記録される。
【0039】
マシンから書き込み指令されるOS520はパーティション鍵Key1を暗号鍵として、アプリケーションプログラム530はKey2を暗号鍵として、暗号化/復号化部24で暗号化され対応するパーティションに格納される。このように構成したSSDを情報機器に組み込む。記憶装置2は情報機器にすでに組み込まれているホスト1に接続されて使用される。この場合のホスト1はCPUが実装されている情報機器内のCPUボードで構成することができる。パーティション“3”はユーザデータ領域、例えばマルチファンクションプリンタのスキャナで撮像されたプリント用データが格納される領域で、最も機密性の高いパーティションであるが、何らかの理由によりパーティション鍵が設定されていない場合であるから、プリント用のデータが撮像されると、撮像データはデフォルト鍵KeyDで暗号化されてパーティション“3”に格納される。
【0040】
以下、(1)ルート鍵の暗号化/復号化、(2)デフォルト鍵の暗号化/復号化、(3)パーティション鍵の暗号化/復号化、(4)ホストから受け取ったデータを暗号化し、ユーザが定義したパーティションに格納する手順、(5)パーティションに格納しているデータを読み出し、パーティション鍵を使って復号化しホストに送出する手順、並びに(6)マスターブートレコードがパーティション鍵Key0によって暗号化されパーティション“0”(MBR記憶領域51)へ格納される手順、について、図2を用いて順に説明する。
【0041】
(1)ルート鍵の暗号化/復号化
上記、「初期設定」の項で述べたように、ルート鍵が生成されると、鍵暗号化/復号化部28で暗号化され、管理領域45に不揮発的に格納されて管理される。以下においては、便宜上、ルート鍵を、ATAパスワードを暗号鍵として暗号化する方法について述べる。鍵の暗号化/復号化は下記(4)で使用するものと同じ論理回路で実行する方式、ファームウエアにAESアルゴリズムを実装して実行する方式など種々の方式で実行することができる。アルゴリズムは、AES方式の他、Triple DES方式など他の暗号化アルゴリズムでもよい。以下、暗号化/復号化部28は、詳細には追って説明するAES方式の回路で実行するものとして説明する。
【0042】
暗号鍵を暗号化する理由は、暗号鍵が平文のまま管理領域45で管理されると、記憶装置2を分解してNANDフラッシュメモリ40から暗号鍵が読み取られてしまい、暗号化されているユーザデータが解読されてしまう危険性があるからである。
【0043】
初期設定時にパスワード設定を行うと、パスワードは揮発性RAM26に一時記憶される。プロセッサ25は、このパスワードを暗号鍵として鍵暗号化/復号化回路28の鍵入力部(図示せず)に入力して設定するとともに、鍵暗号化/復号化回路28の暗号化用データ入力部(図示せず)にルート鍵を入力する。これによりルート鍵が暗号化され、暗号化データ出力部(図示せず)より出力する。プロセッサ25はフラッシュメモリコントローラ41にコマンドを発行し、暗号化されたルート鍵を管理領域45に格納する。
【0044】
システムに電源が投入され、パスワードが入力されるとパスワード照合が行われ、アクセス許可がなされるとルート鍵(暗号文)が管理領域45から読み出され、鍵暗号化/復号化回路28の復号化用データ入力部(図示せず)に入力されるとともに、システム電源投入後にユーザが入力しRAM26に記憶しているパスワードを復号鍵として鍵暗号化/復号化回路28の鍵入力部(図示せず)に入力、設定する。これによりルート鍵が復号化され、復号化データ出力部(図示せず)より出力し、RAM26に一時記憶される。
【0045】
(2)デフォルト鍵の暗号化/復号化
デフォルト鍵が生成されると、プロセッサ25は、デフォルト鍵のデータを鍵暗号化/復号化部28の暗号用データ入力部に入力するとともに、先に設定しているルート鍵(平文)を暗号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定して暗号化する。
【0046】
システムに電源が投入され、パスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、上記(1)の手順によりルート鍵を復号化し、暗号化されたデフォルト鍵が管理領域45から読み出され、プロセッサ25は、鍵暗号化/復号化部28の復号用データ入力部に入力するとともに、前記復号化されたルート鍵(平文)を復号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定する。これにより復号化されたデフォルト鍵が復号化データ出力部から出力し、揮発性RAM26に一時的に記憶される。
【0047】
(3)パーティション鍵の暗号化/復号化
パーティション鍵が生成されると、プロセッサ25は、パーティション鍵のデータを鍵暗号化/復号化部28の暗号用データ入力部に入力するとともに、先に設定しているルート鍵(平文)を暗号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定して暗号化する。
【0048】
システムに電源が投入され、パスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、上記(1)の手順によりルート鍵を復号化し、暗号化されたパーティション鍵が管理領域45から読み出され、プロセッサ25は、鍵暗号化/復号化部28の復号用データ入力部に入力するとともに、前記復号化されたルート鍵(平文)を復号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定する。これにより復号化されたパーティション鍵が復号化データ出力部から出力し、揮発性RAM26に一時的に記憶される。
【0049】
(4)ホストから受け取ったデータを暗号化しパーティションに格納する手順
以下、図2を用いて、ホスト1から受け取ったデータを暗号化してパーティション“3”に格納する手順について、情報機器起動後の状態から説明する。
【0050】
(a)パーティション鍵マップと暗号鍵のセッティング
システムに電源が投入されてパスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、上記(1)の手順によりルート鍵を復号化し、管理領域45に格納しているパーティション鍵マップ341を読み出して鍵判定回路231にセッティングするとともに、管理領域45に格納されている、暗号化されているデフォルト鍵、パーティション鍵を読み出して、上述の手順に基づきすべて復号化して、暗号鍵格納部232にセットする。暗号鍵格納部232は揮発性メモリで構成する。これによりホストから送出されるデータの暗号化の準備が完了する。尚、鍵判定回路231にセットされるパーティション鍵マップは、管理領域45に格納されているパーティション鍵マップ341に必ずしも一致させる必要はない。例えば、パーティション“3”(54)にパーティション鍵が設定されておらず、デフォルト鍵KeyDが暗号化/復号化鍵として設定されているので、パーティション“3”(54)に関する内容は鍵判定回路231にセットする必要がない。何故なら、書き込みコマンドのパラメータであるアドレスが、鍵判定回路231にセット(記載)されていない場合は、自動的にデフォルト鍵が暗号鍵として対応付けられていると一義的に判断し、処理すれば足りるからである。
【0051】
(b)データの入力、アドレスの通知
ホスト1から書き込みコマンドが送られると、デバイスインターフェース21を介して、アドレス(ホストLBA)とデータが暗号化/復号化部24に入力される。データは暗号化/復号化部24の暗号化/復号化回路241の暗号化データ入力部aに入力する。先頭セクタアドレスは暗号化/復号化部24のセクタアドレス更新回路242に入力し、セクタアドレス更新回路242はセクタアドレスを暗号鍵設定回路23の鍵判定回路231に送る。
【0052】
(c)暗号鍵の選択
鍵判定回路231は先にセットされているパーティション鍵マップを参照して、通知されたセクタアドレスに基づき、どのパーティション鍵を使って暗号化すべきかを判定し、鍵データ出力部233に、該当するパーティション鍵選択信号を送る。
【0053】
(d)暗号鍵の設定、データの暗号化
鍵データ出力部233は暗号鍵格納部232から、選択されたパーティション鍵のデータを読み出して、暗号化/復号化部24の鍵入力部bに入力し、設定する。データが入力部aに入力されるとデータの暗号化が開始される。暗号化はブロックと呼ばれる固定長128bitずつ実行される。暗号化が1セクタ(512byte)終了する度に、セクタアドレス更新回路はセクタ情報を1つインクリメントして、次に暗号化するデータのセクタアドレス情報を鍵選択回路231に送る。これは、暗号化に必要なパーティション鍵を常時監視させ、適切な暗号化を実行させるためである。暗号化が終了したデータは、暗号化データ出力部cからバッファ29に出力する。
【0054】
(e)フラッシュメモリコントローラへの入力
プロセッサ25はホスト1から受け取ったコマンドを解釈し、フラッシュメモリコントローラ41に書き込みコマンドを発行するとともに(オペレーションコードとアドレスに関する情報を含む)、バッファ29に溜まったデータをNAND型フラッシュメモリ40に書き込む。尚、暗号化とメモリ40に対する書き込み動作は同時並行して実施することができる。
【0055】
(f)NAND型フラッシュメモリ(パーティション“3”)への書き込み
フラッシュメモリコントローラ41では、論理ブロックアドレス/物理ブロックアドレス変換テーブルを参照して、通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出し、不図示のエラー訂正回路のENDECで生成したエラー訂正符号とともに、バッファ29から取り出したデータを、割り出した物理ブロックアドレスに書き込むようNANDフラッシュメモリ40にコマンドを発行する。NANDフラッシュメモリ40はコマンドにしたがって、指定されたアドレスに暗号化されたデータを書き込む。以上でデータの暗号化と書き込みが完了する。
【0056】
(5)パーティションに格納しているデータを読み出し、復号化してホストに送出する手順
プロセッサ25がホスト1からデバイスインターフェース21を介してreadコマンドを受領すると、先頭セクタアドレス(ホストLBA)を暗号化/復号化部24に設定する。
【0057】
暗号化/復号化部24のアドレス更新回路242は、先に設定されたアドレスをラッチしておき、セクタアドレスを鍵判定回路231に送る。鍵判定回路231は、このアドレスに基づきパーティション鍵マップを参照し、復号に必要な鍵を判定し、鍵選択回路232に通知し、鍵データ出力部233から出力させ、暗号化/復号化部24の鍵入力部bにセットし、復号化用データの入力に待機する。復号に用いる鍵は暗号化に用いた鍵と同じ鍵である。即ち、暗号鍵と復号鍵は共通鍵となっている(必要に応じ、本願では「暗号化/復号化鍵」のように記載している)。
【0058】
プロセッサ25はホスト1から受け取ったコマンドを解釈し、フラッシュメモリコントローラ41に対して読み出しコマンドを発行する。このコマンドには読み出すべきデータのアドレス情報を含む。フラッシュメモリコントローラ41は、論理ブロックアドレス/物理ブロックアドレス変換テーブルを参照して、アドレスとして通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出してデータを読み出し、エラー訂正回路によりエラー有無のチェックを行い、エラーがあれば訂正し、データを暗号化/復号化部24の復号用データ入力部cに入力する。データ入力と同時に復号化が開始される。
【0059】
復号化は暗号化と同じく128bitずつ実行される。1セクタの復号が終了する度に、セクタ情報を1つインクリメントして、そのセクタアドレス情報が、セクタアドレス更新回路242から鍵判定回路231に通知される。復号化が終了すると、暗号化/復号化部24の復号化データ出力部aより、復号化されたデータがデバイスインターフェース21を介してホスト1に送出される。readコマンドに係るすべてのデータが送出されると、コマンド終了ステータスがホスト1に通知され、readコマンドに対する一連の処理が完了する。
【0060】
(6)マスターブートレコードがパーティション鍵Key0によって暗号化され、パーティション“0”(MBR記憶領域51)へ格納される手順
上述の通り、マスターブートレコードを格納するパーティション“0”を含むパーティションが設定されると、マシン側のOSよりパーティションテーブル511の書き込みコマンドが記憶装置2に対して発行され、パーティションテーブル511のデータが暗号化/復号化部24の暗号用データ入力部aに入力される。プロセッサ25は、データの先頭セクタアドレスを鍵判定回路231に送ると、鍵判定回路231はパーティション鍵マップを参照し、通知された先頭セクタアドレスがパーティション“0”(MBR記憶領域51)に属するため、暗号鍵がパーティション鍵Key0であると判定し、パーティション鍵Key0(平文)を暗号鍵として暗号化/復号化部24の鍵入力部bに入力、設定する。これにより、パーティションテーブルデータの暗号化が開始される。
【0061】
一方プロセッサ25は、フラッシュメモリコントローラ41に書き込みコマンド(オペレーションコードとアドレスの情報を含む)を送る。フラッシュメモリコントローラ41が、暗号文を受け取ると、アドレスとして指定された論理ブロックアドレスを、物理ブロックアドレス/論理ブロックアドレス変換テーブルを用いて変換した物理ブロックアドレスに、エラー訂正符号とともにデータを指定されたアドレスに書き込む。上述の通り、MBR記憶領域51はセクタアドレス “0”から始まる。OS520を書き込んだ後は、マシン側からブートローダ512の書き込みコマンドが発行される。この場合も、パーティションテーブルと同様な手順で、指定されたアドレスにデータが書き込まれる。
【0062】
また、上記(4)(a)「パーティション鍵マップと暗号鍵のセッティング」で述べたように、ホスト1から発行された書き込みコマンドに付随する書き込みアドレスが鍵判定回路231のパーティション鍵マップに記載されていない場合、その書き込み指令がデフォルト領域に対するものなのか特定のパーティションに対するものなのかをいちいち判断することなく、受け取ったデータをデフォルト鍵KeyDで暗号化し、指定されたアドレスにそのまま書き込んでよい。
【0063】
上述した実施形態では、情報機器のベンダーがOS520等を組み込む初期設定段階ではじめにルート鍵、デフォルト鍵を生成した例を示したが、工場出荷段階でSSDベンダーがこれらの鍵を生成している場合は必要ではない。また、論理ブロックアドレス/物理ブロックアドレス変換テーブルやエラー訂正回路をプロセッサ25に持たせ、プロセッサ25がフラッシュメモリコントローラ41の役割を兼ねてもよい。その場合、フラッシュメモリコントローラ41は不要であり、プロセッサ25からのコマンドとバッファ29からのデータは、NANDフラッシュメモリ40のNANDインターフェースに直接入力すればよい。
【0064】
(パーティションデータの消去)
本実施形態の記憶装置2を組み込んだ情報機器において、その情報機器の種類によっては、当該機器の運用に必要なOS520やアプリケーションプログラム530をバージョンアップしたり、新たなものに入れ替えたりする必要が生じる場合がある。また、機密情報が格納されている可能性のある特定のユーザデータ領域、例えば、本実施形態におけるパーティション“3”(54)の撮像データは、使用者の機密データが記憶されているため、転売時には消去することが望ましい。上記の観点に立った場合、パーティションに格納されているデータ(パーティションデータ)を無効化するコマンドを解釈する手段をフラッシュメモリコントローラ41に設け、ホスト1から特定パーティションデータを無効化するコマンドが発行されたときは、そのパーティションのデータのみ、有効に無効化できるようにすることが好ましい。
【0065】
ところが、前述した実施例のように、図3に例示のパーティション“3”に対して、エンドユーザがパーティション鍵が設定されておらず(即ち、パーティション“3”にデフォルト鍵KeyDが暗号化/復号化鍵として対応付けられていた場合)、且つ、先願の実施例記載のように、MBR記憶領域がデフォルト領域で構成されていた場合、無効化コマンドにしたがって対応するデフォルト鍵KeyDを消去してしまうと、MBR記憶領域のマスターブートレコードも同時に無効化され、当該情報機器を以降も継続使用する場合に支障が生じる。しかしながら本実施形態例の記憶装置2では、マスターブートレコードをユーザ設定パーティションの一つ(パーティション“0”)に格納するとともに、初期設定時にパーティション“0”(MBR記憶領域51)にパーティション鍵を設定している。マスターブートレコードをユーザ設定のパーティションに格納し、且つそのパーティションにパーティション鍵を暗号鍵として設定した場合は、ホスト1から、デフォルト鍵KeyDが暗号鍵として対応付けられているパーティション“3”に対してデータ無効化コマンドが発行され、当該デフォルト鍵を自動的に消去しても、パーティション“0”(MBR記憶領域51)のマスターブートレコードは無効化されない。
【0066】
よって、本願発明では、ホストからパーティション鍵が暗号鍵として対応付けられている特定パーティションのデータ無効化コマンド又は特定パーティション鍵無効化コマンドが発行されたとき当該特定パーティションに対応付けられているパーティション鍵若しくは前記特定パーティション鍵を消去する手段とともに、ホストからパーティション鍵が暗号鍵として対応付けられていない特定パーティションのデータ無効化コマンド又はデフォルト鍵無効化コマンドが発行されたとき当該デフォルト鍵を消去する手段を設け、特定パーティションデータ無効化コマンドが発行されたときは、当該特定パーティションに対応付けられている暗号化/復号化鍵がパーティション鍵、デフォルト鍵のいずれであるかに拘わらず、当該鍵を自動的に消去する。
【0067】
特定パーティションデータ無効化コマンドは、パーティション番号を指定することによりそのパーティションデータをパーティションごとに個別に無効化するためのコマンドであるが、ホスト1が複数のパーティションに同一のパーティション鍵が暗号鍵として対応付けられていることを把握しているような場合には、パーティション鍵無効化コマンドを発行すれば、それら複数のパーティションデータを一度に無効化することができる。デフォルト鍵無効化コマンドも、複数のパーティションにデフォルト鍵が暗号鍵として対応付けられていることが予め分っているときに使用すると便利である。
【0068】
当該特定パーティションに対応付けられている暗号化/復号化鍵がデフォルト鍵であった場合の当該デフォルト鍵の消去は、新たなデフォルト鍵を自動的に生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた旧デフォルト鍵に上書きすることにより実行できる(管理領域45に格納されているパーティション鍵マップ341の対応付けの修正は不要である)。これより、ユーザデータを格納しているパーティションにデフォルト鍵が暗号鍵として対応付けられていたとしても、旧デフォルト鍵のデータは完全に消去されるので、デフォルト鍵が暗号化/復号化鍵として対応付けられていたパーティションのユーザデータが絶対に読み取られないことを確実に保証することができる。
【0069】
当該特定パーティションに対応付けられている暗号化/復号化鍵がパーティション鍵であった場合の当該パーティション鍵の消去は、当該無効化対象とされたパーティション用に新たなパーティション鍵を生成し、これをルート鍵(平文)で暗号化してから、管理領域45に格納していた当該パーティション用の旧パーティション鍵に上書きするとともに、パーティション鍵マップ341における当該パーティションにおける対応暗号鍵(ID)を前記新たに生成したパーティション鍵(ID)に修正することにより実行できる。この場合も旧パーティション鍵は完全に消去されるので、当該パーティションに格納されていたユーザデータが読み取られる心配はない。
【0070】
尚、ユーザ設定パーティションのすべてにパーティション鍵が必ず対応付けられることが保証され、且つ、デフォルト鍵無効化コマンドを採用しない場合は、図4に示すように、マスターブートレコードは、必ずしもユーザ設定パーティションに格納する必要はない。
【0071】
なお、初期設定段階でパスワードが設定されない場合は、記憶装置2にだれでも自由にアクセスでき、暗号化されて記憶されているデータは自動的に復号化して読み出される。よって、パスワードを設定しない場合、暗号化することはあまり重要な意味を持たない。この点、ホスト1から全暗号化データを無効化するコマンドを発行し、ルート鍵を消去するようにすれば、デフォルト鍵とパーティション鍵両者の復号化を実行できなくなるので、デフォルト領域、パーティション鍵が対応暗号鍵として設定されているパーティション領域、デフォルト鍵が暗号鍵として対応しているパーティション領域、のすべて(記憶領域44に暗号化されて記憶されているすべてのデータ)を一時に解読不能にすることができる(図12、図13の鍵の相関関係を参照されたい)。記憶装置2やこれを組み込んだ情報機器を廃棄する場合、ルート鍵を消去すれば、どのような情報が記憶されているか判断することなく全データを無効化できるとともに、記憶装置2を物理的に破壊するなどしなくてもよいため、非常に利便性の高い記憶装置、情報機器を提供することができる。
【符号の説明】
【0072】
1 ホスト
2 本発明の記憶装置
20 暗号/復号処理部
21 デバイスインターフェース
23 暗号鍵設定回路
24 暗号化/復号化部
25 プロセッサ
26 RAM
27 鍵生成部
28 鍵暗号化/復号化部
29 バッファ
30 記憶部
31 記憶部制御手段
33、44 記憶領域
34、45 管理領域
231 鍵判定回路
232 暗号鍵格納部
233 鍵データ出力部
241 暗号化/復号化回路
242 セクタアドレス更新回路
341 パーティション鍵マップ
a 暗号化用データ入力部、復号化データ出力部
b 鍵入力部
c 暗号化データ出力部、復号用データ入力部
【技術分野】
【0001】
本発明はハードウエア暗号化手段を具備した記憶装置の改良、並びに該暗号化記憶装置を組み込んでなる情報機器、暗号化記憶装置のセキュリティ方法に関する。
【背景技術】
【0002】
ハードディスク(HDD)、ソリッドステートドライブ(SSD)、USBメモリなどの記憶装置に記憶したデータの漏洩が問題となっており、そのため、セキュリティ方法としてパスワード認証をアクセスの条件としている。しかしながら、最近の報告によれば、サービス領域のATAパスワード設定フラグをオフにしてロック機能を無効にできるといい(パスワード解除)、事実、捜査機関向けに、斯かるパスワード解除装置が販売されているのが現状である。パスワードが解除されればデータは容易に読まれてしまう。パスワードが解除されない場合でも、記憶部を記憶装置から取り外して、データを直接読み取られる危険がある。
【0003】
そこで、最近ではAES(Advanced Encryption Standard)などの暗号化を用いてデータを記憶している。AESはブロックと呼ばれる固定長(128bit)のデータを単位として、暗号化/復号化を共通の鍵で行うものである。AESでは3種類の鍵長が定義されており、128bit/192bit/256bitのいずれかを用いることができる。鍵長が長いほど、鍵を全数検索する総当り攻撃などに強く、128bit/192bit/256bitの鍵長は、現在の計算機の処理能力では解読に非現実的な時間を要するため安全とされている。
【0004】
AES暗号化には、ホスト側で行うもの(ソフトウエア暗号化)があるが高価であり、システムパフォーマンスに影響があった。そこで最近は、専用のチップを組み込み、AES暗号化をデバイス内部で行う記憶装置(ハードウエア暗号化)が販売されている。この場合、何らかの方法により暗号鍵のデータが把握されると、記憶しているデータが読み出されてしまう危険性は否定できない。
【0005】
また、マルチファンクションプリンタなどの情報機器に記憶装置を組み込んで使用する場合、記憶装置には情報機器に必要な情報(オペレーティングシステムやアプリケーションプログラム)と使用者の機密情報(マルチファンクションプリンタの場合で言えば、プリント用の撮像データ)の両者が記憶される。情報機器を廃棄する場合は記憶データの全部を消去してもよいが、転売、レンタルなどで再利用する場合、機密情報は消去することが望ましいが、機器の運用に必要な情報は資源の有効活用の観点から、そのまま残すことが好ましい。また廃棄する場合は、どのような情報が記憶されているか判断することなく、データを無効化できることが望ましい。
【0006】
そこで本発明者等は、特願2009−141007号(特許第4463320号、以下、「先願」という)において、ハードウエア暗号記憶装置における暗号鍵の安全な管理方法、ハードウエア暗号記憶装置に複数種類の情報を記憶し、譲渡、廃棄、レンタル時等において、重要度、種類に応じて任意に情報を無効化する方法、並びに、ハードウエア暗号記憶装置に複数種類の情報を記憶している場合において、廃棄時等においてどのような情報が記憶されているか判断することなくデータを無効化する方法、を提案した。以下、図11を用いて先願発明の実施形態例の概略を説明する。
【0007】
情報機器ベンダーの初期設定で、ハードディスクドライブ(HDD)若しくはソリッドステートドライブ(SSD)の記憶領域(管理領域を除くユーザデータ領域をいう。以下同じ)全体にデフォルト鍵を設定するとともに、3つのパーティション(パーティション“0”〜パーティション“2”)を設定する。各パーティションにそれぞれ独自のパーティション鍵(Key“0”乃至Key“2”)を設定する。各パーティションに書き込まれるデータはそのパーティションに対応付けられたパーティション鍵で暗号化される。読み出し時にはそのパーティション鍵でデータが復号化される。パーティションが設定されない領域(便宜上、「デフォルト領域」という))に書き込まれるデータはデフォルト鍵で暗号化され、読み出されるときは当該デフォルト鍵で復号化される。各パーティション鍵は、未使用時にはデフォルト鍵で暗号化されて記憶装置内(たとえば記憶部の管理領域)で安全に管理される。この構成により、記憶装置を内蔵した情報機器を転売やレンタルする場合、ユーザの機密情報の記憶された領域(パーティション)のパーティション鍵のみ消去することにより、機器の運用に必要な情報はそのまま残すことができ、資産の有効活用を図ることができる。デフォルト鍵を消去すれば、当該デフォルト鍵で暗号化されてなるパーティション鍵は以降復号化することができなくなるため、記憶領域の全データが無効化され、安心して情報機器を廃棄することができる。
【0008】
しかしながら、先願発明の場合、ベンダー(若しくはユーザ)が何らかの理由によりパーティション“2”にパーティション鍵(Key2)を設定しないようなケースでは、パーティション“2”に格納したデータは、デフォルト鍵で暗号化されて記憶される。このような場合、ホストから特定パーティションデータ無効化コマンドが発行されても、そのパーティションの暗号鍵はデフォルト鍵であるためパーティション鍵消去手段はデフォルト鍵を消去せず、当該パーティションのデータは無効化されない。この場合は、ユーザがそのパーティションにパーティション鍵を新たに設定する作業を行うしかなく、手間が掛かる。
【0009】
また、特定パーティションデータ無効化コマンドが発行されたとき、パーティション鍵消去手段がこのデフォルト鍵を消去するように構成したとすると、パーティション鍵が対応暗号鍵として設定されているパーティションのデータ(OSやアプリケーションプログラム)など、他のパーティションのデータも同時に無効化されてしまい、資源の有効活用を図ることができない。OSやアプリケーションプログラムを継続的にしようする場合はこれらを一旦外部メモリに移して、再度インストールしなおさなければならなかった。即ち、領域ごとの消去を実行する場合の自由度に一定の制限があった。
【先行技術文献】
【特許文献】
【0010】
【特許文献1】特表2005−50473号
【特許文献2】特許第4463320号
【発明の概要】
【発明が解決しようとする課題】
【0011】
そこで本発明が解決すべき第1の課題は、領域ごとのデータ無効化を、より操作性よく実行できる暗号化記憶装置の提供にある。第2の課題は、記憶装置に格納されている資源の有効活用を図ることのできる暗号化記憶装置の提供にある。その他の課題は、明細書、図面、特に特許請求の範囲により自ずと明らかとなろう。
【課題を解決するための手段】
【0012】
上記課題解決のため、本発明は、本発明が採用する新規な特徴的構成により、上記課題を解決する。即ち、本発明では、複数種類の情報が記憶されているハードウエア暗号記憶装置において、パーティション鍵とデフォルト鍵の共通の暗号鍵であるルート鍵を採用する。これにより、パーティション鍵とデフォルト鍵は紐付けされた関係にないので、デフォルト鍵を消去してもパーティション鍵が暗号鍵として対応付けられているパーティションデータは無効化されない。
【0013】
さらに、ホストからパーティション鍵が暗号鍵として対応付けられている特定パーティションのデータ無効化コマンド又は特定パーティション鍵無効化コマンドが発行されたとき当該特定パーティションに対応付けられているパーティション鍵若しくは前記特定パーティション鍵を消去する手段と、ホストからパーティション鍵が暗号鍵として対応付けられていない特定パーティションのデータ無効化コマンド又はデフォルト鍵無効化コマンドが発行されたとき当該デフォルト鍵を消去する手段を採用する。
【0014】
ここにおいて、マスターブートレコードを、パーティション鍵が暗号鍵として対応付けられているパーティションに格納しておけば、デフォルト鍵を消去してもマスターブートレコードは無効化されない。
【0015】
尚、デフォルト鍵の消去は、新たなデフォルト鍵を自動的に生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた旧デフォルト鍵に上書きすることにより実行するとよい。また、パーティション鍵の消去は、当該無効化対象とされたパーティション用に新たなパーティション鍵を生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた当該パーティション用の旧パーティション鍵に上書きし、パーティション鍵マップにおける当該パーティションにおける対応暗号鍵(ID)を前記新たに生成したパーティション鍵(ID)に修正することにより実行するとよい。
【0016】
さらに、ホストから全データを無効化するコマンドが発行されたときにルート鍵を消去する手段を採用する。その他、本発明は、特許請求範囲において上位概念から下位概念に亙り列挙する新規な特長的構成により上記課題を解決する。
【発明の効果】
【0017】
本発明によれば、1又は複数の、パーティション鍵が暗号鍵として対応付けられているパーティションデータのみ、又は、1又は複数の、デフォルト鍵が暗号鍵として対応付けられているパーティションデータのみを選択して、領域ごとのデータを操作性よく無効化することができ、使い勝手の良い暗号化記憶装置を提供することができる。また、マスターブートレコードを、パーティション鍵が暗号鍵として対応付けられているパーティションに格納しておけば、デフォルト鍵が暗号鍵として対応付けられているパーティションの当該デフォルト鍵を消去してもマスターブートレコードは無効化されないので、パーティション鍵が対応付けられているパーティションに格納されているOSやアプリケーションプログラムなどを継続して使用することができ、資源の有効活用を図ることができる。
【図面の簡単な説明】
【0018】
【図1】本発明の記憶装置の基本構成例である。
【図2】NAND型フラッシュメモリを用いた記憶装置の構成例である。
【図3】記憶領域の構成と暗号鍵の対応関係例1である。
【図4】記憶領域の構成と暗号鍵の対応関係例2である。
【図5】初期設定の手順例である。
【図6】初期設定の手順例(続き)である。
【図7】パーティション鍵マップ例(状態1)である。
【図8】パーティション鍵マップ例(状態2)である。
【図9】パーティション鍵マップ例(状態3)である。
【図10】パーティション鍵マップ例(状態4/完成状態)である。
【図11】先願発明の構成例(鍵と各領域との相関関係例)である。
【図12】本願発明の構成例1(鍵と各領域との相関関係例)である。
【図13】本願発明の構成例2(鍵と各領域との相関関係例)である。
【発明を実施するための形態】
【0019】
以下、本発明を実施するための最良の形態について図面を用いて説明するが、本発明は特許請求の範囲内において種々の形態を採ることができ、下記実施形態に限定されないことはいうまでもない。
【0020】
(システム基本構成)
図1は、本発明の実施形態に係る記憶装置の基本構成例である。図1に示すように、本発明のセキュリティ方法は、本発明の記憶装置2と、記憶装置2に対するメディアアクセス主体であるホスト1とからなるシステムで実行される。記憶装置2は、ホスト1からコマンド(オペレーションコード、指定アドレス)や書き込み用データを含む)を受け取ったり、読み出したデータやコマンドステータスをホスト1に送出するデータデバイスインターフェース21と、データを格納する記憶部30と、記憶部30へのデータの書き込みや記憶部30からのデータの読み出しの制御を実行する記憶部制御手段31と、ホスト1から送られたデータを暗号化するとともに、記憶部30から読み出されたデータを復号化する暗号/復号処理部20を有する。
【0021】
暗号/復号処理部20は、鍵生成部27と、鍵生成部27で生成された鍵を用いて所定のロジックに基づきデータの暗号化/復号化を実行する暗号化/復号化部24と、暗号化/復号化部24でデータを暗号化/復号化するための鍵を選択して暗号化/復号化部24に設定する暗号鍵設定回路23と、鍵暗号化/復号化部28を有する。これらはプロセッサ25により統括的に制御される。暗号化/復号化部24は独自のハードウエアロジックで構成され、プロセッサ25の処理に拠らないため、非常に高速で処理を実行できる。RAM26は、揮発性メモリであり、プロセッサ25の作業領域である。暗号鍵設定回路23は、後述する各種の暗号鍵をシステム起動中格納する暗号鍵格納部232、暗号化又は復号化を前記いずれの鍵で実行するかを判定する鍵判定回路231、判定回路231からの信号に基づき選択された鍵データを暗号化/復号化部24に入力、設定する鍵データ出力部233を有する。記憶部30は、記憶領域33と周知の管理領域34を有し、管理領域34は後述する、ルート鍵、デフォルト鍵、パーティション鍵、並びにパーティション鍵マップ341を格納する。記憶領域34と管理領域35は、同じ記憶素子で構成される場合と、例えばハードディスクと不揮発性半導体記憶素子、或いはNAND型フラッシュメモリとNOR形フラッシュメモリといったように、異なる記憶素子で構成される場合とがあり得る。鍵暗号化/復号化部28は、プロセッサ25の制御に基づき、ルート鍵、デフォルト鍵、パーティション鍵の暗号化及び復号化を行う。
【0022】
記憶装置2は、HDDの他、記憶部30にNAND型フラッシュメモリのような不揮発性半導体記憶装置を用いたSSDなどで構成することができる。HDDの場合、記憶部制御手段は、磁気ヘッドのシーク、データの書き込み、読み出しを制御する。SSDの場合、記憶部制御手段はNANDフラッシュメモリコントローラで構成される。
【0023】
ホスト1との間のデバイスインターフェース21は、IDEインターフェースやシリアルATAインターフェースで構成され得る。記憶装置2はホスト1に挿抜して使用するUSBメモリで構成してもよい。
【0024】
以下、本発明の記憶装置2がSSDで構成されるとともに、情報機器に組み込んで使用される例について、図2乃至図10を用いて説明する。SSDは図2に示すように、記憶部がNAND型フラッシュメモリ40で構成される。なお図2では、図1と同一の機能及び構成を有する要素については、同一の符号を付している。
【0025】
本実施形態は、記憶部がNAND型フラッシュメモリ40で構成されるため、記憶部制御手段は、フラッシュメモリコントローラ41で構成される。このコントローラ41は、NAND型フラッシュメモリ40にコマンドを発行しデータの読み書きを実行するもので、NAND型フラッシュメモリ特有のbadブロックに対処するための不図示のエラー訂正回路、論理ブロックアドレス/物理ブロックアドレス変換テーブルを有する。
【0026】
(初期設定)
以下、初期設定の手順例を、図5及び図6を用いて説明する。情報機器が例えばマルチファンクションプリンタのような組み込み系の機器の場合、はじめに情報機器のベンダーは、初期設定を行うため、SSDを、OSその他、情報機器の運用に必要なソフトウエアを書き込むマシンに接続する。マシンは初期設定ツールがインストールされている専用のコンピュータで構成され、図2のホスト1がこれに相当する。初期設定は全て初期設定ツールを用いて実行される。マシンに電源を投入後(S11)、まず初期設定ツールである初期設定ソフトウエアを用いてルート鍵の生成を行う(S12)。ルート鍵は、鍵生成部27が有する乱数発生器によって生成される。
【0027】
ルート鍵は適当な値を暗号鍵として、鍵暗号化/復号化回路28よって暗号化され、管理領域45に格納され管理される(S13)。記憶装置が外付けのSSDのように一般ユーザが使用する場合、盗難に備えてATAが標準機能として有するパスワードを設定できるが、ルート鍵生成時までにこのパスワードが設定されている場合は、パスワードを暗号鍵としてデフォルト鍵を暗号化することができる。
【0028】
続いてデフォルト鍵を生成する(S14)。このデフォルト鍵を“KeyD”とする。そして、ルート鍵(平文)を用いてデフォルト鍵が暗号化され、管理領域45に格納され管理される(S15)。
【0029】
尚パスワードは一方向ハッシュ関数を通してハッシュ値に変換され、管理領域45に格納され、以降の記憶装置2でのパスワード照合にそのまま利用される。即ち、記憶装置2を組み込んだ若しくは記憶装置2を接続したシステムに、電源が投入された後、記憶装置2へのアクセス許可を受けるためにATAパスワードが入力されると、同様にハッシュ関数によってハッシュ値に変換される。そして、管理領域45に記憶しているハッシュ値と照合され、両者が一致するとアクセスが許可される。ハッシュ値が元の状態に戻すことができない性質を利用したものであり、これによりパスワードを安全に管理することができる。
【0030】
尚、ルート鍵、デフォルト鍵、パーティション鍵の生成は、プロセッサ25がコマンドを解釈して、鍵生成部27によって実行するものである。ルート鍵の暗号化、続く管理領域45への格納は、ルート鍵生成コマンドに付随して一括して実行される。デフォルト鍵やパーティション鍵の暗号化、続く管理領域45への格納も当該鍵生成コマンドに付随して一括して実行される。内部処理としては、プロセッサ25がフラッシュメモリコントローラ41にコマンドを発行して実行する。
【0031】
デフォルト鍵は、必ず生成される暗号鍵であって、以下の機能を有する。デフォルト鍵を生成すると、更のSSD(パーティション設定前)にベンダーによって何らかのシステム上必要なデータが書き込まれていても、データ読み出しの際、そのデータはデフォルト鍵で復号化されてから読み出されるので、意味のないランダムなデータが読み出される。ユーザが後述するパーティションの設定後、パーティション鍵の生成をしなかった場合(default)でも、その後ホストから送出されるデータはデフォルト鍵で自動的に暗号化される。
【0032】
次に、MBR記憶領域51をユーザパーティションの一つ(図3において、パーティション“0”)として設定する(S16)。具体的には、この領域の容量(例えば256セクタ)を指定することにより設定する。初期設定ソフトウエアは、初期設定者からの指示に基づき、記憶装置2のアドレスであるセクタ0からセクタ255までをユーザ設定パーティション“0”としてのMBR記憶領域51を確保する。このときから初期設定ソフトウエアは、マシン側でパーティション鍵マップの生成を開始する。この段階のパーティション鍵マップは図7のように構成され、マシン側のRAM(図示せず)に一時記録される。
【0033】
次に初期設定者は、鍵生成部27が持っている乱数発生器を使ったパーティション“0”(MBR記憶領域51)用のパーティション鍵生成指示を行う(S17)。このパーティション鍵の生成は初期設定における必須条件とすることが好ましい。このパーティション鍵をKey0とする。この段階でパーティション鍵マップは図8のように設定され、記録される。このとき、マシン側のOSは、当該時点におけるパーティションテーブル511をMBR記憶領域51に書き込むコマンドを記憶装置2に対して発行する。MBR記憶領域51への書き込みは、先に生成しているパーティション鍵Key0によって暗号化されて実行される。
【0034】
続いて、必要な数のユーザパーティションを設定する(S18)。図3では、パーティション“1”(52)乃至パーティション“3”(54)を設定した様子を示している。これらパーティションの設定は、そこに格納することが予定されているファイルの容量を勘案して、当該記憶容量を具体的に指定して実行する。この段階でのパーティション鍵マップは図9のように記録される。このとき、マシン側のOSは、当該時点におけるパーティションテーブル511をMBR記憶領域51に書き込むコマンドを記憶装置2に対して発行する(S19)。この書き込みも、先に生成しているパーティション鍵Key0によって暗号化されて実行される。
【0035】
次に、鍵生成部27が持っている乱数発生器を使って、パーティション“1”とパーティション“2”に対するパーティションの暗号鍵(パーティション鍵)を生成する(S20)。この段階でのパーティション鍵マップは図10のように記録される。パーティションとパーティション鍵(ID)の関係は図3及び図10に示す通り、パーティション“1”、“2”にそれぞれ対応して、パーティション鍵Key1、Key2とする。本実施例では、パーティション“3”にはパーティション鍵は設定されていないので、パーティション鍵マップのパーティション“3”の対応暗号鍵はデフォルト鍵KeyDが自動的に対応付けられ、記録される。尚、複数のパーティションに同一のパーティション鍵を暗号鍵として対応付けてもよい。これで、マシン側におけるパーティション鍵マップの生成は完了する。
【0036】
パーティション鍵マップは図10に示すように、各パーティションの先頭セクタアドレスと終了セクタアドレス並びに対応するパーティション鍵の関係で構成しているが、先頭セクタアドレスとそのパーティションを構成するセクタ数並びに対応するパーティション鍵の関係で構成してよいことは言うまでもない。図8乃至図10において、対応暗号鍵として、Key0乃至Key2と記載しているが、これはKeyのデータではない。実際にはKey番号を特定する情報、例えばそのKeyのID番号である。そして生成したパーティション鍵Key1、Key2は、ルート鍵(平文)を暗号鍵として、鍵暗号化/復号化回路28よって暗号化され(S21)、管理領域45の所定の領域に格納され管理される(方法の詳細は後述する)。
【0037】
マシンはこの時点で、パーティション鍵マップを管理領域45に格納させるコマンドを記憶装置2に対して発行する(S22)。このコマンドは、独自のオペレーションコードと、マシン側のRAMに一時記憶している完成したパーティション鍵マップのデータ(パラメータ)とで構成することができる。記憶装置2のプロセッサ25はオペレーションコードを解釈し、マシン側から送出されたデータを加工してパーティション鍵マップを生成し、管理領域45に格納する(暗号化はされない。図2において、管理領域45に格納されたパーティション鍵マップを符号341で示している)。尚、パーティション鍵が設定されない領域は全て自動的にデフォルト鍵で暗号化/復号化されるので、管理領域45の記憶容量の有効活用のため、パーティション鍵マップのパーティション“3”に係る部分は割愛して格納してもよい。
【0038】
次にパーティション“1”、パーティション“2”へ、情報機器の運用に必要なソフトウエアを格納する(S23)。具体的には、図3に示すように、パーティション“1”にはOS520を、パーティション“2”には、情報機器、例えばマルチファンクションプリンタを運用するために必要な各種アプリケーションプログラム530を格納する。このデータはファイルシステムによってファイルとして記憶される。OS520を格納した際、マシンはMBR記憶領域51にブートローダ512を記録するコマンドを発行する(S24)。ブートローダ512もパーティション鍵Key0によって暗号化されて、マスターブートレコードの一つとして、MBR記憶領域51に記録される。
【0039】
マシンから書き込み指令されるOS520はパーティション鍵Key1を暗号鍵として、アプリケーションプログラム530はKey2を暗号鍵として、暗号化/復号化部24で暗号化され対応するパーティションに格納される。このように構成したSSDを情報機器に組み込む。記憶装置2は情報機器にすでに組み込まれているホスト1に接続されて使用される。この場合のホスト1はCPUが実装されている情報機器内のCPUボードで構成することができる。パーティション“3”はユーザデータ領域、例えばマルチファンクションプリンタのスキャナで撮像されたプリント用データが格納される領域で、最も機密性の高いパーティションであるが、何らかの理由によりパーティション鍵が設定されていない場合であるから、プリント用のデータが撮像されると、撮像データはデフォルト鍵KeyDで暗号化されてパーティション“3”に格納される。
【0040】
以下、(1)ルート鍵の暗号化/復号化、(2)デフォルト鍵の暗号化/復号化、(3)パーティション鍵の暗号化/復号化、(4)ホストから受け取ったデータを暗号化し、ユーザが定義したパーティションに格納する手順、(5)パーティションに格納しているデータを読み出し、パーティション鍵を使って復号化しホストに送出する手順、並びに(6)マスターブートレコードがパーティション鍵Key0によって暗号化されパーティション“0”(MBR記憶領域51)へ格納される手順、について、図2を用いて順に説明する。
【0041】
(1)ルート鍵の暗号化/復号化
上記、「初期設定」の項で述べたように、ルート鍵が生成されると、鍵暗号化/復号化部28で暗号化され、管理領域45に不揮発的に格納されて管理される。以下においては、便宜上、ルート鍵を、ATAパスワードを暗号鍵として暗号化する方法について述べる。鍵の暗号化/復号化は下記(4)で使用するものと同じ論理回路で実行する方式、ファームウエアにAESアルゴリズムを実装して実行する方式など種々の方式で実行することができる。アルゴリズムは、AES方式の他、Triple DES方式など他の暗号化アルゴリズムでもよい。以下、暗号化/復号化部28は、詳細には追って説明するAES方式の回路で実行するものとして説明する。
【0042】
暗号鍵を暗号化する理由は、暗号鍵が平文のまま管理領域45で管理されると、記憶装置2を分解してNANDフラッシュメモリ40から暗号鍵が読み取られてしまい、暗号化されているユーザデータが解読されてしまう危険性があるからである。
【0043】
初期設定時にパスワード設定を行うと、パスワードは揮発性RAM26に一時記憶される。プロセッサ25は、このパスワードを暗号鍵として鍵暗号化/復号化回路28の鍵入力部(図示せず)に入力して設定するとともに、鍵暗号化/復号化回路28の暗号化用データ入力部(図示せず)にルート鍵を入力する。これによりルート鍵が暗号化され、暗号化データ出力部(図示せず)より出力する。プロセッサ25はフラッシュメモリコントローラ41にコマンドを発行し、暗号化されたルート鍵を管理領域45に格納する。
【0044】
システムに電源が投入され、パスワードが入力されるとパスワード照合が行われ、アクセス許可がなされるとルート鍵(暗号文)が管理領域45から読み出され、鍵暗号化/復号化回路28の復号化用データ入力部(図示せず)に入力されるとともに、システム電源投入後にユーザが入力しRAM26に記憶しているパスワードを復号鍵として鍵暗号化/復号化回路28の鍵入力部(図示せず)に入力、設定する。これによりルート鍵が復号化され、復号化データ出力部(図示せず)より出力し、RAM26に一時記憶される。
【0045】
(2)デフォルト鍵の暗号化/復号化
デフォルト鍵が生成されると、プロセッサ25は、デフォルト鍵のデータを鍵暗号化/復号化部28の暗号用データ入力部に入力するとともに、先に設定しているルート鍵(平文)を暗号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定して暗号化する。
【0046】
システムに電源が投入され、パスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、上記(1)の手順によりルート鍵を復号化し、暗号化されたデフォルト鍵が管理領域45から読み出され、プロセッサ25は、鍵暗号化/復号化部28の復号用データ入力部に入力するとともに、前記復号化されたルート鍵(平文)を復号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定する。これにより復号化されたデフォルト鍵が復号化データ出力部から出力し、揮発性RAM26に一時的に記憶される。
【0047】
(3)パーティション鍵の暗号化/復号化
パーティション鍵が生成されると、プロセッサ25は、パーティション鍵のデータを鍵暗号化/復号化部28の暗号用データ入力部に入力するとともに、先に設定しているルート鍵(平文)を暗号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定して暗号化する。
【0048】
システムに電源が投入され、パスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、上記(1)の手順によりルート鍵を復号化し、暗号化されたパーティション鍵が管理領域45から読み出され、プロセッサ25は、鍵暗号化/復号化部28の復号用データ入力部に入力するとともに、前記復号化されたルート鍵(平文)を復号鍵として鍵暗号化/復号化部28の鍵入力部に入力、設定する。これにより復号化されたパーティション鍵が復号化データ出力部から出力し、揮発性RAM26に一時的に記憶される。
【0049】
(4)ホストから受け取ったデータを暗号化しパーティションに格納する手順
以下、図2を用いて、ホスト1から受け取ったデータを暗号化してパーティション“3”に格納する手順について、情報機器起動後の状態から説明する。
【0050】
(a)パーティション鍵マップと暗号鍵のセッティング
システムに電源が投入されてパスワードが入力されると、パスワード照合が行われ、アクセス許可がなされると、上記(1)の手順によりルート鍵を復号化し、管理領域45に格納しているパーティション鍵マップ341を読み出して鍵判定回路231にセッティングするとともに、管理領域45に格納されている、暗号化されているデフォルト鍵、パーティション鍵を読み出して、上述の手順に基づきすべて復号化して、暗号鍵格納部232にセットする。暗号鍵格納部232は揮発性メモリで構成する。これによりホストから送出されるデータの暗号化の準備が完了する。尚、鍵判定回路231にセットされるパーティション鍵マップは、管理領域45に格納されているパーティション鍵マップ341に必ずしも一致させる必要はない。例えば、パーティション“3”(54)にパーティション鍵が設定されておらず、デフォルト鍵KeyDが暗号化/復号化鍵として設定されているので、パーティション“3”(54)に関する内容は鍵判定回路231にセットする必要がない。何故なら、書き込みコマンドのパラメータであるアドレスが、鍵判定回路231にセット(記載)されていない場合は、自動的にデフォルト鍵が暗号鍵として対応付けられていると一義的に判断し、処理すれば足りるからである。
【0051】
(b)データの入力、アドレスの通知
ホスト1から書き込みコマンドが送られると、デバイスインターフェース21を介して、アドレス(ホストLBA)とデータが暗号化/復号化部24に入力される。データは暗号化/復号化部24の暗号化/復号化回路241の暗号化データ入力部aに入力する。先頭セクタアドレスは暗号化/復号化部24のセクタアドレス更新回路242に入力し、セクタアドレス更新回路242はセクタアドレスを暗号鍵設定回路23の鍵判定回路231に送る。
【0052】
(c)暗号鍵の選択
鍵判定回路231は先にセットされているパーティション鍵マップを参照して、通知されたセクタアドレスに基づき、どのパーティション鍵を使って暗号化すべきかを判定し、鍵データ出力部233に、該当するパーティション鍵選択信号を送る。
【0053】
(d)暗号鍵の設定、データの暗号化
鍵データ出力部233は暗号鍵格納部232から、選択されたパーティション鍵のデータを読み出して、暗号化/復号化部24の鍵入力部bに入力し、設定する。データが入力部aに入力されるとデータの暗号化が開始される。暗号化はブロックと呼ばれる固定長128bitずつ実行される。暗号化が1セクタ(512byte)終了する度に、セクタアドレス更新回路はセクタ情報を1つインクリメントして、次に暗号化するデータのセクタアドレス情報を鍵選択回路231に送る。これは、暗号化に必要なパーティション鍵を常時監視させ、適切な暗号化を実行させるためである。暗号化が終了したデータは、暗号化データ出力部cからバッファ29に出力する。
【0054】
(e)フラッシュメモリコントローラへの入力
プロセッサ25はホスト1から受け取ったコマンドを解釈し、フラッシュメモリコントローラ41に書き込みコマンドを発行するとともに(オペレーションコードとアドレスに関する情報を含む)、バッファ29に溜まったデータをNAND型フラッシュメモリ40に書き込む。尚、暗号化とメモリ40に対する書き込み動作は同時並行して実施することができる。
【0055】
(f)NAND型フラッシュメモリ(パーティション“3”)への書き込み
フラッシュメモリコントローラ41では、論理ブロックアドレス/物理ブロックアドレス変換テーブルを参照して、通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出し、不図示のエラー訂正回路のENDECで生成したエラー訂正符号とともに、バッファ29から取り出したデータを、割り出した物理ブロックアドレスに書き込むようNANDフラッシュメモリ40にコマンドを発行する。NANDフラッシュメモリ40はコマンドにしたがって、指定されたアドレスに暗号化されたデータを書き込む。以上でデータの暗号化と書き込みが完了する。
【0056】
(5)パーティションに格納しているデータを読み出し、復号化してホストに送出する手順
プロセッサ25がホスト1からデバイスインターフェース21を介してreadコマンドを受領すると、先頭セクタアドレス(ホストLBA)を暗号化/復号化部24に設定する。
【0057】
暗号化/復号化部24のアドレス更新回路242は、先に設定されたアドレスをラッチしておき、セクタアドレスを鍵判定回路231に送る。鍵判定回路231は、このアドレスに基づきパーティション鍵マップを参照し、復号に必要な鍵を判定し、鍵選択回路232に通知し、鍵データ出力部233から出力させ、暗号化/復号化部24の鍵入力部bにセットし、復号化用データの入力に待機する。復号に用いる鍵は暗号化に用いた鍵と同じ鍵である。即ち、暗号鍵と復号鍵は共通鍵となっている(必要に応じ、本願では「暗号化/復号化鍵」のように記載している)。
【0058】
プロセッサ25はホスト1から受け取ったコマンドを解釈し、フラッシュメモリコントローラ41に対して読み出しコマンドを発行する。このコマンドには読み出すべきデータのアドレス情報を含む。フラッシュメモリコントローラ41は、論理ブロックアドレス/物理ブロックアドレス変換テーブルを参照して、アドレスとして通知された論理ブロックアドレスに対応する物理ブロックアドレスを割り出してデータを読み出し、エラー訂正回路によりエラー有無のチェックを行い、エラーがあれば訂正し、データを暗号化/復号化部24の復号用データ入力部cに入力する。データ入力と同時に復号化が開始される。
【0059】
復号化は暗号化と同じく128bitずつ実行される。1セクタの復号が終了する度に、セクタ情報を1つインクリメントして、そのセクタアドレス情報が、セクタアドレス更新回路242から鍵判定回路231に通知される。復号化が終了すると、暗号化/復号化部24の復号化データ出力部aより、復号化されたデータがデバイスインターフェース21を介してホスト1に送出される。readコマンドに係るすべてのデータが送出されると、コマンド終了ステータスがホスト1に通知され、readコマンドに対する一連の処理が完了する。
【0060】
(6)マスターブートレコードがパーティション鍵Key0によって暗号化され、パーティション“0”(MBR記憶領域51)へ格納される手順
上述の通り、マスターブートレコードを格納するパーティション“0”を含むパーティションが設定されると、マシン側のOSよりパーティションテーブル511の書き込みコマンドが記憶装置2に対して発行され、パーティションテーブル511のデータが暗号化/復号化部24の暗号用データ入力部aに入力される。プロセッサ25は、データの先頭セクタアドレスを鍵判定回路231に送ると、鍵判定回路231はパーティション鍵マップを参照し、通知された先頭セクタアドレスがパーティション“0”(MBR記憶領域51)に属するため、暗号鍵がパーティション鍵Key0であると判定し、パーティション鍵Key0(平文)を暗号鍵として暗号化/復号化部24の鍵入力部bに入力、設定する。これにより、パーティションテーブルデータの暗号化が開始される。
【0061】
一方プロセッサ25は、フラッシュメモリコントローラ41に書き込みコマンド(オペレーションコードとアドレスの情報を含む)を送る。フラッシュメモリコントローラ41が、暗号文を受け取ると、アドレスとして指定された論理ブロックアドレスを、物理ブロックアドレス/論理ブロックアドレス変換テーブルを用いて変換した物理ブロックアドレスに、エラー訂正符号とともにデータを指定されたアドレスに書き込む。上述の通り、MBR記憶領域51はセクタアドレス “0”から始まる。OS520を書き込んだ後は、マシン側からブートローダ512の書き込みコマンドが発行される。この場合も、パーティションテーブルと同様な手順で、指定されたアドレスにデータが書き込まれる。
【0062】
また、上記(4)(a)「パーティション鍵マップと暗号鍵のセッティング」で述べたように、ホスト1から発行された書き込みコマンドに付随する書き込みアドレスが鍵判定回路231のパーティション鍵マップに記載されていない場合、その書き込み指令がデフォルト領域に対するものなのか特定のパーティションに対するものなのかをいちいち判断することなく、受け取ったデータをデフォルト鍵KeyDで暗号化し、指定されたアドレスにそのまま書き込んでよい。
【0063】
上述した実施形態では、情報機器のベンダーがOS520等を組み込む初期設定段階ではじめにルート鍵、デフォルト鍵を生成した例を示したが、工場出荷段階でSSDベンダーがこれらの鍵を生成している場合は必要ではない。また、論理ブロックアドレス/物理ブロックアドレス変換テーブルやエラー訂正回路をプロセッサ25に持たせ、プロセッサ25がフラッシュメモリコントローラ41の役割を兼ねてもよい。その場合、フラッシュメモリコントローラ41は不要であり、プロセッサ25からのコマンドとバッファ29からのデータは、NANDフラッシュメモリ40のNANDインターフェースに直接入力すればよい。
【0064】
(パーティションデータの消去)
本実施形態の記憶装置2を組み込んだ情報機器において、その情報機器の種類によっては、当該機器の運用に必要なOS520やアプリケーションプログラム530をバージョンアップしたり、新たなものに入れ替えたりする必要が生じる場合がある。また、機密情報が格納されている可能性のある特定のユーザデータ領域、例えば、本実施形態におけるパーティション“3”(54)の撮像データは、使用者の機密データが記憶されているため、転売時には消去することが望ましい。上記の観点に立った場合、パーティションに格納されているデータ(パーティションデータ)を無効化するコマンドを解釈する手段をフラッシュメモリコントローラ41に設け、ホスト1から特定パーティションデータを無効化するコマンドが発行されたときは、そのパーティションのデータのみ、有効に無効化できるようにすることが好ましい。
【0065】
ところが、前述した実施例のように、図3に例示のパーティション“3”に対して、エンドユーザがパーティション鍵が設定されておらず(即ち、パーティション“3”にデフォルト鍵KeyDが暗号化/復号化鍵として対応付けられていた場合)、且つ、先願の実施例記載のように、MBR記憶領域がデフォルト領域で構成されていた場合、無効化コマンドにしたがって対応するデフォルト鍵KeyDを消去してしまうと、MBR記憶領域のマスターブートレコードも同時に無効化され、当該情報機器を以降も継続使用する場合に支障が生じる。しかしながら本実施形態例の記憶装置2では、マスターブートレコードをユーザ設定パーティションの一つ(パーティション“0”)に格納するとともに、初期設定時にパーティション“0”(MBR記憶領域51)にパーティション鍵を設定している。マスターブートレコードをユーザ設定のパーティションに格納し、且つそのパーティションにパーティション鍵を暗号鍵として設定した場合は、ホスト1から、デフォルト鍵KeyDが暗号鍵として対応付けられているパーティション“3”に対してデータ無効化コマンドが発行され、当該デフォルト鍵を自動的に消去しても、パーティション“0”(MBR記憶領域51)のマスターブートレコードは無効化されない。
【0066】
よって、本願発明では、ホストからパーティション鍵が暗号鍵として対応付けられている特定パーティションのデータ無効化コマンド又は特定パーティション鍵無効化コマンドが発行されたとき当該特定パーティションに対応付けられているパーティション鍵若しくは前記特定パーティション鍵を消去する手段とともに、ホストからパーティション鍵が暗号鍵として対応付けられていない特定パーティションのデータ無効化コマンド又はデフォルト鍵無効化コマンドが発行されたとき当該デフォルト鍵を消去する手段を設け、特定パーティションデータ無効化コマンドが発行されたときは、当該特定パーティションに対応付けられている暗号化/復号化鍵がパーティション鍵、デフォルト鍵のいずれであるかに拘わらず、当該鍵を自動的に消去する。
【0067】
特定パーティションデータ無効化コマンドは、パーティション番号を指定することによりそのパーティションデータをパーティションごとに個別に無効化するためのコマンドであるが、ホスト1が複数のパーティションに同一のパーティション鍵が暗号鍵として対応付けられていることを把握しているような場合には、パーティション鍵無効化コマンドを発行すれば、それら複数のパーティションデータを一度に無効化することができる。デフォルト鍵無効化コマンドも、複数のパーティションにデフォルト鍵が暗号鍵として対応付けられていることが予め分っているときに使用すると便利である。
【0068】
当該特定パーティションに対応付けられている暗号化/復号化鍵がデフォルト鍵であった場合の当該デフォルト鍵の消去は、新たなデフォルト鍵を自動的に生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた旧デフォルト鍵に上書きすることにより実行できる(管理領域45に格納されているパーティション鍵マップ341の対応付けの修正は不要である)。これより、ユーザデータを格納しているパーティションにデフォルト鍵が暗号鍵として対応付けられていたとしても、旧デフォルト鍵のデータは完全に消去されるので、デフォルト鍵が暗号化/復号化鍵として対応付けられていたパーティションのユーザデータが絶対に読み取られないことを確実に保証することができる。
【0069】
当該特定パーティションに対応付けられている暗号化/復号化鍵がパーティション鍵であった場合の当該パーティション鍵の消去は、当該無効化対象とされたパーティション用に新たなパーティション鍵を生成し、これをルート鍵(平文)で暗号化してから、管理領域45に格納していた当該パーティション用の旧パーティション鍵に上書きするとともに、パーティション鍵マップ341における当該パーティションにおける対応暗号鍵(ID)を前記新たに生成したパーティション鍵(ID)に修正することにより実行できる。この場合も旧パーティション鍵は完全に消去されるので、当該パーティションに格納されていたユーザデータが読み取られる心配はない。
【0070】
尚、ユーザ設定パーティションのすべてにパーティション鍵が必ず対応付けられることが保証され、且つ、デフォルト鍵無効化コマンドを採用しない場合は、図4に示すように、マスターブートレコードは、必ずしもユーザ設定パーティションに格納する必要はない。
【0071】
なお、初期設定段階でパスワードが設定されない場合は、記憶装置2にだれでも自由にアクセスでき、暗号化されて記憶されているデータは自動的に復号化して読み出される。よって、パスワードを設定しない場合、暗号化することはあまり重要な意味を持たない。この点、ホスト1から全暗号化データを無効化するコマンドを発行し、ルート鍵を消去するようにすれば、デフォルト鍵とパーティション鍵両者の復号化を実行できなくなるので、デフォルト領域、パーティション鍵が対応暗号鍵として設定されているパーティション領域、デフォルト鍵が暗号鍵として対応しているパーティション領域、のすべて(記憶領域44に暗号化されて記憶されているすべてのデータ)を一時に解読不能にすることができる(図12、図13の鍵の相関関係を参照されたい)。記憶装置2やこれを組み込んだ情報機器を廃棄する場合、ルート鍵を消去すれば、どのような情報が記憶されているか判断することなく全データを無効化できるとともに、記憶装置2を物理的に破壊するなどしなくてもよいため、非常に利便性の高い記憶装置、情報機器を提供することができる。
【符号の説明】
【0072】
1 ホスト
2 本発明の記憶装置
20 暗号/復号処理部
21 デバイスインターフェース
23 暗号鍵設定回路
24 暗号化/復号化部
25 プロセッサ
26 RAM
27 鍵生成部
28 鍵暗号化/復号化部
29 バッファ
30 記憶部
31 記憶部制御手段
33、44 記憶領域
34、45 管理領域
231 鍵判定回路
232 暗号鍵格納部
233 鍵データ出力部
241 暗号化/復号化回路
242 セクタアドレス更新回路
341 パーティション鍵マップ
a 暗号化用データ入力部、復号化データ出力部
b 鍵入力部
c 暗号化データ出力部、復号用データ入力部
【特許請求の範囲】
【請求項1】
管理領域と記憶領域とを有する記憶部と、ホストから送出されるデータを暗号化して前記記憶領域に格納するとともに該暗号化されて記憶領域に格納されているデータを復号化してホストに送出する暗号/復号処理部とを有する暗号化記憶装置であって、
該暗号/復号処理部は、
ルート鍵を生成する手段と、
ルート鍵を暗号化する手段と、
デフォルト鍵を生成する手段と、
ユーザが設定したパーティションに格納されるデータの暗号化並びに前記ユーザが設定したパーティションから読み出される前記データの復号化を行うパーティション鍵を生成する手段と、
デフォルト鍵とパーティション鍵をルート鍵で暗号化/復号化する手段と、
ホストから発行された、暗号/復号処理部内の鍵判定回路が前記ユーザが設定したパーティションごとに暗号化/復号化するためのパーティション鍵を判定するための当該パーティションとパーティション鍵(ID)の関係を対応付けしたパーティション鍵マップを生成しこれを管理領域に格納させるコマンドを解釈しこれを実行する手段と、
ホストからパーティション鍵が暗号鍵として対応付けられている特定パーティションのデータ無効化コマンド又は特定パーティション鍵無効化コマンドが発行されたとき、当該特定パーティションに対応付けられているパーティション鍵若しくは前記特定パーティション鍵を消去する手段と、
ホストからパーティション鍵が暗号鍵として対応付けられていない特定パーティションのデータ無効化コマンド又はデフォルト鍵無効化コマンドが発行されたとき、当該デフォルト鍵を消去する手段と、
ホストから全暗号化データ無効化コマンドが発行されたときルート鍵の消去を実行するルート鍵消去手段、
とを有し、
前記デフォルト鍵は、該デフォルト鍵が生成された以降前記パーティション鍵が設定された領域以外の記憶領域に対して書き込まれるデータを暗号化するとともに、該デフォルト鍵生成時以前に書き込まれていたデータを含め該デフォルト鍵が生成された以降前記パーティション鍵が設定された領域以外の記憶領域に対して書き込まれたデータを復号化するものであることを特徴とする暗号化記憶装置。
【請求項2】
マスターブートレコードは、パーティション鍵が暗号鍵として対応付けられているパーティションに格納されてなることを特徴とする、請求項1記載の暗号化記憶装置。
【請求項3】
デフォルト鍵の消去は、新たなデフォルト鍵を自動的に生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた旧デフォルト鍵に上書きすることにより実行することを特徴とする、請求項1又は請求項2記載の暗号化記憶装置。
【請求項4】
パーティション鍵の消去は、当該無効化対象とされたパーティション用に新たなパーティション鍵を生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた当該パーティション用の旧パーティション鍵に上書きし、パーティション鍵マップにおける当該パーティションにおける対応暗号鍵(ID)を前記新たに生成したパーティション鍵(ID)に修正することにより実行することを特徴とする、請求項1又は請求項2記載の暗号化記憶装置。
【請求項5】
ルート鍵暗号化手段は、ルート鍵を、ユーザが当該暗号化記憶装置の初期状態で設定するパスワードで暗号化するものであることを特徴とする請求項1記載の暗号化記憶装置。
【請求項6】
ハードディスクドライブ又はソリッドステートドライブのいずれかである、請求項1乃至請求項5いずれか1項記載の暗号化記憶装置。
【請求項7】
当該暗号化記憶装置が組み込まれる情報機器の運用に必要なデータが格納される第1のパーティションとユーザデータのみが格納される第2のパーティションを記憶領域に少なくとも一つずつ有する請求項1乃至請求項6いずれか1項記載の暗号化記憶装置を、補助記憶装置として組み込んでなる情報機器。
【請求項8】
管理領域と記憶領域とを有する記憶部と、ホストから送出されるデータを暗号化して前記記憶領域に格納するとともに該暗号化されて記憶領域に格納されているデータを復号化してホストに送出する暗号/復号処理部とを有する暗号化記憶装置における、前記暗号/復号処理部のプロセッサが実行する、下記ステップを有するセキュリティ方法;
(a)ルート鍵を生成するステップと、
(b)ルート鍵を暗号化するステップと、
(c)デフォルト鍵を生成するステップと、
(d)ユーザが設定したパーティションに格納されるデータの暗号化並びに前記ユーザが設定したパーティションから読み出される前記データの復号化を行うパーティション鍵を生成するステップと、
(e)デフォルト鍵とパーティション鍵をルート鍵で暗号化/復号化するステップと、
(f)ホストからパーティション鍵が暗号鍵として対応付けられている特定パーティションのデータ無効化コマンド又は特定パーティション鍵無効化コマンドが発行されたとき、当該特定パーティションに対応付けられているパーティション鍵若しくは前記特定パーティション鍵を消去するステップと、
(g)ホストからパーティション鍵が暗号鍵として対応付けられていない特定パーティションのデータ無効化コマンド又はデフォルト鍵無効化コマンドが発行されたとき、当該デフォルト鍵を消去するステップと、
(h)ホストから送出された、暗号/復号処理部内の鍵判定回路が前記ユーザが設定したパーティションごとに暗号化/復号化するための前記ステップ(d)で生成されたパーティション鍵を判定するための、当該パーティションとパーティション鍵(ID)の関係を対応付けしたパーティション鍵マップを生成しこれを管理領域に格納させるコマンドを解釈しこれを実行するステップ。
【請求項9】
デフォルト鍵の消去は、新たなデフォルト鍵を自動的に生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた旧デフォルト鍵に上書きするステップで構成されることを特徴とする、請求項8記載のセキュリティ方法。
【請求項10】
パーティション鍵の消去は、当該無効化対象とされたパーティション用に新たなパーティション鍵を生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた当該パーティション用の旧パーティション鍵に上書きし、パーティション鍵マップにおける当該パーティションにおける対応暗号鍵(ID)を前記新たに生成したパーティション鍵(ID)に修正するステップで構成されることを特徴とする、請求項8記載のセキュリティ方法。
【請求項11】
ホストから全データ無効化コマンドが発行されたときにルート鍵の消去を実行するステップをさらに有することを特徴とする請求項8乃至請求項10いずれか1項記載のセキュリティ方法。
【請求項1】
管理領域と記憶領域とを有する記憶部と、ホストから送出されるデータを暗号化して前記記憶領域に格納するとともに該暗号化されて記憶領域に格納されているデータを復号化してホストに送出する暗号/復号処理部とを有する暗号化記憶装置であって、
該暗号/復号処理部は、
ルート鍵を生成する手段と、
ルート鍵を暗号化する手段と、
デフォルト鍵を生成する手段と、
ユーザが設定したパーティションに格納されるデータの暗号化並びに前記ユーザが設定したパーティションから読み出される前記データの復号化を行うパーティション鍵を生成する手段と、
デフォルト鍵とパーティション鍵をルート鍵で暗号化/復号化する手段と、
ホストから発行された、暗号/復号処理部内の鍵判定回路が前記ユーザが設定したパーティションごとに暗号化/復号化するためのパーティション鍵を判定するための当該パーティションとパーティション鍵(ID)の関係を対応付けしたパーティション鍵マップを生成しこれを管理領域に格納させるコマンドを解釈しこれを実行する手段と、
ホストからパーティション鍵が暗号鍵として対応付けられている特定パーティションのデータ無効化コマンド又は特定パーティション鍵無効化コマンドが発行されたとき、当該特定パーティションに対応付けられているパーティション鍵若しくは前記特定パーティション鍵を消去する手段と、
ホストからパーティション鍵が暗号鍵として対応付けられていない特定パーティションのデータ無効化コマンド又はデフォルト鍵無効化コマンドが発行されたとき、当該デフォルト鍵を消去する手段と、
ホストから全暗号化データ無効化コマンドが発行されたときルート鍵の消去を実行するルート鍵消去手段、
とを有し、
前記デフォルト鍵は、該デフォルト鍵が生成された以降前記パーティション鍵が設定された領域以外の記憶領域に対して書き込まれるデータを暗号化するとともに、該デフォルト鍵生成時以前に書き込まれていたデータを含め該デフォルト鍵が生成された以降前記パーティション鍵が設定された領域以外の記憶領域に対して書き込まれたデータを復号化するものであることを特徴とする暗号化記憶装置。
【請求項2】
マスターブートレコードは、パーティション鍵が暗号鍵として対応付けられているパーティションに格納されてなることを特徴とする、請求項1記載の暗号化記憶装置。
【請求項3】
デフォルト鍵の消去は、新たなデフォルト鍵を自動的に生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた旧デフォルト鍵に上書きすることにより実行することを特徴とする、請求項1又は請求項2記載の暗号化記憶装置。
【請求項4】
パーティション鍵の消去は、当該無効化対象とされたパーティション用に新たなパーティション鍵を生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた当該パーティション用の旧パーティション鍵に上書きし、パーティション鍵マップにおける当該パーティションにおける対応暗号鍵(ID)を前記新たに生成したパーティション鍵(ID)に修正することにより実行することを特徴とする、請求項1又は請求項2記載の暗号化記憶装置。
【請求項5】
ルート鍵暗号化手段は、ルート鍵を、ユーザが当該暗号化記憶装置の初期状態で設定するパスワードで暗号化するものであることを特徴とする請求項1記載の暗号化記憶装置。
【請求項6】
ハードディスクドライブ又はソリッドステートドライブのいずれかである、請求項1乃至請求項5いずれか1項記載の暗号化記憶装置。
【請求項7】
当該暗号化記憶装置が組み込まれる情報機器の運用に必要なデータが格納される第1のパーティションとユーザデータのみが格納される第2のパーティションを記憶領域に少なくとも一つずつ有する請求項1乃至請求項6いずれか1項記載の暗号化記憶装置を、補助記憶装置として組み込んでなる情報機器。
【請求項8】
管理領域と記憶領域とを有する記憶部と、ホストから送出されるデータを暗号化して前記記憶領域に格納するとともに該暗号化されて記憶領域に格納されているデータを復号化してホストに送出する暗号/復号処理部とを有する暗号化記憶装置における、前記暗号/復号処理部のプロセッサが実行する、下記ステップを有するセキュリティ方法;
(a)ルート鍵を生成するステップと、
(b)ルート鍵を暗号化するステップと、
(c)デフォルト鍵を生成するステップと、
(d)ユーザが設定したパーティションに格納されるデータの暗号化並びに前記ユーザが設定したパーティションから読み出される前記データの復号化を行うパーティション鍵を生成するステップと、
(e)デフォルト鍵とパーティション鍵をルート鍵で暗号化/復号化するステップと、
(f)ホストからパーティション鍵が暗号鍵として対応付けられている特定パーティションのデータ無効化コマンド又は特定パーティション鍵無効化コマンドが発行されたとき、当該特定パーティションに対応付けられているパーティション鍵若しくは前記特定パーティション鍵を消去するステップと、
(g)ホストからパーティション鍵が暗号鍵として対応付けられていない特定パーティションのデータ無効化コマンド又はデフォルト鍵無効化コマンドが発行されたとき、当該デフォルト鍵を消去するステップと、
(h)ホストから送出された、暗号/復号処理部内の鍵判定回路が前記ユーザが設定したパーティションごとに暗号化/復号化するための前記ステップ(d)で生成されたパーティション鍵を判定するための、当該パーティションとパーティション鍵(ID)の関係を対応付けしたパーティション鍵マップを生成しこれを管理領域に格納させるコマンドを解釈しこれを実行するステップ。
【請求項9】
デフォルト鍵の消去は、新たなデフォルト鍵を自動的に生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた旧デフォルト鍵に上書きするステップで構成されることを特徴とする、請求項8記載のセキュリティ方法。
【請求項10】
パーティション鍵の消去は、当該無効化対象とされたパーティション用に新たなパーティション鍵を生成し、これをルート鍵(平文)で暗号化してから、管理領域に格納していた当該パーティション用の旧パーティション鍵に上書きし、パーティション鍵マップにおける当該パーティションにおける対応暗号鍵(ID)を前記新たに生成したパーティション鍵(ID)に修正するステップで構成されることを特徴とする、請求項8記載のセキュリティ方法。
【請求項11】
ホストから全データ無効化コマンドが発行されたときにルート鍵の消去を実行するステップをさらに有することを特徴とする請求項8乃至請求項10いずれか1項記載のセキュリティ方法。
【図1】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【図2】
【図3】
【図4】
【図5】
【図6】
【図7】
【図8】
【図9】
【図10】
【図11】
【図12】
【図13】
【公開番号】特開2012−84043(P2012−84043A)
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願番号】特願2010−231341(P2010−231341)
【出願日】平成22年10月14日(2010.10.14)
【出願人】(311010981)ハギワラソリューションズ株式会社 (2)
【Fターム(参考)】
【公開日】平成24年4月26日(2012.4.26)
【国際特許分類】
【出願日】平成22年10月14日(2010.10.14)
【出願人】(311010981)ハギワラソリューションズ株式会社 (2)
【Fターム(参考)】
[ Back to top ]