(57)【特許請求の範囲】
【請求項１】
記憶装置であって、
記憶媒体と、
前記記憶装置内のプログラム・コードの選択されたビットから暗号化／復号化キーを発生するようにされたキー発生器と、
前記記憶媒体へのアクセスを制御するように、また前記記憶媒体へ書き込みまたはそこから読み取るデータを暗号化し復号化する前記暗号化／復号化キーを適用するようにされたコントローラとを含み、
前記キー発生器は、前記記憶装置の一つまたはそれ以上の構成要素（ｃｏｍｐｏｎｅｎｔｓ）からデバイス特定入力を受信するようにされたデバイス特定入力インターフェイスを含み、
前記キー発生器は、前記デバイス特定入力に基づいてプログラム・コードのビットを選択するように構成されている、記憶装置。
【請求項２】
前記暗号化／復号化キーを使用して、データを暗号化および復号化するために前記コントローラにより使用される、前記記憶装置内の暗号化アルゴリズムのためのプログラム・コードをさらに含む、請求項１記載の記憶装置。
【請求項３】
前記キー発生器および前記コントローラが、特定用途向けＩＣの回路要素を含む、請求項１または２記載の記憶装置。
【請求項４】
前記キー発生器は、
前記デバイス特定入力からビット・マップを発生するように構成されたビット・マップ発生器と、
前記ビット・マップに基づいてＲＯＭベースのプログラム・コードからビットを選択するようにされたビット・セレクタとを含む、請求項１記載の記憶装置。
【請求項５】
前記暗号化／復号化キーに基づいてハッシュド・キー値を発生するように構成されたキー値ハッシュ・カリキュレータと、
前記ハッシュド・キー値を記憶されたハッシュ値へ比較して、前記暗号化／復号化キーが以前に使用された暗号化／復号化キーと同一のものであるかどうかを判定するように構成されたコンパレータとをさらに含む、請求項１〜４のいずれか１項記載の記憶装置。
【請求項６】
記憶装置内のキー発生器内に、前記記憶装置の一つまたはそれ以上の構成要素からデバイス特定入力を受信するステップと、
前記デバイス特定入力からビット・マップを導出するステップと、
前記ビット・マップに基づいて前記記憶装置内のＲＯＭベースのプログラムからビット・シーケンスを抽出するステップとを含む、情報処理方法。
【請求項７】
前記ビット・シーケンスが一つの暗号化／復号化キーを含む、請求項６記載の情報処理方法。
【請求項８】
前記ビット・シーケンスから一つの暗号化／復号化キーを発生するステップをさらに含む、請求項６または７記載の情報処理方法。
【請求項９】
前記デバイス特定入力は、前記記憶装置のトランスデューサ・ヘッドからの抵抗情報を含む、請求項６〜８のいずれか１項記載の情報処理方法。
【請求項１０】
前記デバイス特定入力は、前記記憶装置の固有のシリアルナンバーを含む、請求項６〜８のいずれか１項記載の情報処理方法。
【請求項１１】
前記デバイス特定入力同士を暗号法により組み合わせて（ｃｒｙｐｔｏｇｒａｐｈｉｃａｌｌｙ  ｃｏｍｂｉｎｉｎｇ）、暗号化／復号化キーを形成するステップをさらに含む、請求項６〜１０のいずれか１項記載の情報処理方法。
【請求項１２】
記憶装置であって、
記憶媒体と、
キー発生器およびコントローラを含む集積回路であって、前記キー発生器が前記集積回路のＲＯＭベースのコードの選択されたビットに基づいて、暗号化／復号化キーを開始においてダイナミックに発生するようにされ、前記コントローラは、前記記憶媒体へのアクセスを制御して、前記暗号化／復号化キーを使用して前記記憶媒体へ書き込みまたそこから読み出すデータを暗号化し復号化するようにされた前記集積回路とを含み、
前記キー発生器は、
当該記憶装置の一つまたはそれ以上の構成要素から入力を受信するようにされたデバイス特定入力インターフェイスと、
前記受信された入力に基づいてビット・マップを発生するようにされたビット・マップ発生器と、
前記ビット・マップに基づいてＲＯＭベースのプログラム・コードからビット・シーケンスを抽出するようにされたビット・セレクタとを含む、記憶装置。
【請求項１３】
前記ビット・シーケンスは、前記暗号化／復号化キーを含む、請求項１２記載の記憶装置。
【請求項１４】
前記受信された入力は、前記記憶装置のトランスデューサ・ヘッドの抵抗の値を含む、請求項１２または１３記載の記憶装置。
【請求項１５】
前記受信された入力は、前記記憶装置の固有のシリアルナンバーを含む、請求項１２または１３記載の記憶装置。
【請求項１６】
前記暗号化／復号化キーが前記集積回路内でのみ知られる、請求項１２〜１５のいずれか１項記載の記憶装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は一般にデータ記憶装置に関し、また特に非揮発（不揮発）性キー記憶メモリ（ｎｏｎ−ｖｏｌａｔｉｌｅ  ｋｅｙ  ｓｔｏｒａｇｅ  ｍｅｍｏｒｙ）を有するデータ記憶システム上の暗号化キー／復号化キー（ｅｎｃｒｙｐｔｉｏｎ／ｄｅｃｒｙｐｔｉｏｎ  ｋｅｙｓ）に関するが、これに限定されない。
【背景技術】
【０００２】
データ記憶装置は典型的に、ユーザおよびその他のデータを記憶する記憶媒体を供給する。不正なアクセスからそうしたデータを保護するのが望ましい場合、（典型的に付加コンピュータ・システム内の）ソフトウェア・アプリケーションが暗号化を遂行して、暗号化されたデータをデータ記憶装置へ渡して記憶させる。最近、強化セキュリティ記憶システムが導入されたが、これは暗号化／復号化作業の少なくとも一部分を記憶装置内で遂行する。しばしばそうしたシステムは、電気的消去可能プログラム可能読取専用メモリ（ＥＥＰＲＯＭ）などの記憶装置内の非揮発性メモリに記憶された暗号化／復号化キーを採用する。
【０００３】
あいにく、そうした非揮発性メモリに内蔵されている（または、たとえばリモート・サーバに記憶されている）暗号化キーを採用したデータ記憶装置は、物理的攻撃を受けやすい。たとえば、暗号化／復号化キーは、付加コンピュータ・システムとデータ記憶装置の間のメッセージを傍受し、分析することにより発見できる。代わりにこのキーは、物理的に記憶装置を開いて記憶装置自体を探査（プロービング）することによっても発見できる。記憶装置のハウジングが開かれた場合に消去される暗号化キーをメモリ内に記憶することにより、後者のセキュリティ・ホールに対応する試みがいくつかの従来のアプリケーションにより行われてきた。しかしながら、そうしたセキュリティ対策が存在することが知られている場合は、このセキュリティ機能を迂回して、それにより保護措置を阻止することが可能である。
【発明の開示】
【発明が解決しようとする課題】
【０００４】
したがって、物理的攻撃をキーが受けやすくない安全なデータ記憶装置への現在の需要がある。本発明の諸実施例は、こうした問題および他の諸問題への解決を提供し、先行技術に勝る他の利点を供給する。
【課題を解決するための手段】
【０００５】
記憶装置は、この記憶装置で使用する暗号化／復号化キーを、ダイナミックに発生する。この記憶装置は、記憶媒体、キー発生器およびコントローラを有する。キー発生器は、記憶装置内のプログラム・コードの選択されたビットから暗号化／復号化キーを発生する。コントローラは、記憶媒体へのアクセスを制御して、記憶媒体へ書き込まれまたはそこから読み出されるデータを暗号化および復号化するために暗号化／復号化キーを適用する。
【０００６】
本発明の特徴をなすその他の機能と利点は、下記の詳細の説明を読みまた添付図面を参照することにより、明らかになる。
【実施例】
【０００７】
第１図は、ディスク・ドライブ１００の等角投影図であり、ディスク・ドライブ１００は、例示的なデータ記憶装置である。ディスク・ドライブ１００は、インターフェイス１０３を通じてホスト・システム１０１へ動作可能に結合されている。ディスク・ドライブ１００は、ベース１０２およびトップ・カバー（図示なし）を有するハウジングを含む。ディスク・ドライブ１００は、さらにディスク・パック１０６を含み、これはディスク・クランプ１０８によりスピンドル・モータ（図示なし）上に装着されている。ディスク・パック１０６は、複数の個別ディスクを含み、これらは中心軸１０９の周りに回転するように装着されている。各ディスク表面は、このディスク表面と連絡するためにディスク・ドライブ１００上に装着された付属ディスク・ヘッド・スライダ１１０を有する。図１に示す例では、スライダ１１０はサスペンション１１２により支持され、サスペンション１１２はアクチュエータ１１６のトラック・アクセシング・アーム１１４に取り付けられている。図１に示すアクチュエータは、ロータリ・ムービング・コイル・アクチュエータとして知られるタイプのものであり、１１８で一般的に示すボイス・コイル・モータ（ＶＣＭ）を含む。ボイス・コイル・モータ１１８は、その付属ヘッド１１０によりピボット・シャフト１２０の周りにアクチュエーター１１６を回転させて、ディスク内径１２４とディスク外径１２６の間の弓形パスに沿って希望するデータ・トラック上へヘッド１１０を位置決めする。ボイス・コイル・モータ１１８は、ヘッド１１０およびホスト・システム１０１により発生される信号に基づいて、サーボ電子機器１３０により駆動される。
【０００８】
図２は、記憶システム２００の簡単なブロック図である。システム２００は、インターフェイス１０３を有する記憶装置１００を含み、インターフェイス１０３を通じてユーザー入力２０１が受信される。記憶装置１００は、コントローラ２０２、読み出し書き込み機構２０４および記憶媒体２０６を含む。一つの実施例において、コントローラ２０２は、図１に一般的に示した記憶装置１００の回路１３０に含まれ得る。追加的に、読み出し書き込み機構２０４および記憶媒体２０６は、それぞれトランスデューサ・ヘッド１１０およびディスク１０６（図１に示す）に対応し得る。
【０００９】
一つの実施例において、コントローラ２０２は、特定用途向けＩＣ（ＡＳＩＣ）２０８の一部としてインプリメントされる。ＡＳＩＣ２０８は、プログラム・コード２１２を記憶するリード・オンリ・メモリ（ＲＯＭ）２１０を含み、プログラム・コード２１２は、製造中にＲＯＭ２１０へ設定または書き込まれる。プログラム・コード２１２は、たとえば、開始に際して記憶装置１００によりアクセスされるブート・レベル・プログラム・コードを含む。プログラム・コード２１２は、一般に時間を通じて変化せずに残る。ＡＳＩＣ２０８はまたキー発生器２１４を含み、またオプションとして暗号化アルゴリズム２１６およびデバイス特定入力２１８を含む。
【００１０】
キー発生器２１４は、ＡＳＩＣ２０８に含まれる情報に部分的に基づいて暗号化／復号化キーを生成する。たとえば、キー発生器２１４は、リーダ・ヘッド抵抗、ライタ・コイル抵抗、ドライブ・シリアルナンバーなどのデバイス特定入力２１８、またはＡＳＩＣ２０８内のコンパレータ・ビットのランダム出力を含む、他のデバイス特定情報に基づいて、暗号化／復号化キーを生成できる。暗号化／復号化キーは、後に議論するビット・マップに基づいて発生されることができる。コントローラ２０２は、暗号化アルゴリズム２１６および暗号化／復号化キーを使用して、ユーザ・データを暗号化する。暗号化されたユーザ・データは、それから読み出し書き込み機構２１４を介して、記憶媒体２０６へ書き込まれる。
【００１１】
一般に、完全にＡＳＩＣ２０８内で暗号化／復号化キーを発生することにより、この暗号化／復号化キーは、プロービングにより確定できない。その上、このキーをダイナミックに発生できるので、発見されるべき、記憶されたキーが何もない。このキーのハッシュ値（ｈａｓｈ  ｖａｌｕｅ）は、たとえそれが回復された（ｒｅｃｏｖｅｒｅｄ）としても暗号化／復号化キーを再現（ｒｅｃｒｅａｔｅ：再生）するのに使用できない。記憶装置へ入るデータはＡＳＩＣ２０８内で処理されるので、このキーは記憶装置１００の外部の装置に暴露されたり明らかにされることはない。
【００１２】
図３は、ビット・マップを生成するための処理の簡単なフローチャートである。図示のように、ドライブ特定パラメータ３００は、ビット・マップ発生器３０２により処理されて、ビット・マップ３０４を生成する。たとえば、記憶装置のシリアル・ナンバーは、ビット・マップ３０２により処理されて、暗号化／復号化キーを構成するためのビット・マップを構成する。一つの実施例において、ビット・マップ発生器３０２は、ドライブ特定パラメータ３００からいくつかのビットを選択するためのあるアルゴリズムを適用する。ドライブ特定パラメータ３００は、デバイス・シリアルナンバーおよび／または読み取りヘッド抵抗、書き込みコイル抵抗などのデバイス特定パラメータを含む。代わりに、そうしたデバイス特定パラメータの組み合わせを使用することができる。
【００１３】
図４は、暗号化／復号化キーを生成するために、ビット・マップを使用するための簡単なフローチャートである。ビット・マップ３０４は、たとえば記憶装置のリード・オンリ・メモリ内に記憶されたＲＯＭコード４００に適用されて、暗号化キー／復号化キー４０２として使用できるＲＯＭコード４００の或るビットを選択する。たとえばＲＯＭコード４００の一部分は、排他的ＯＲ、ＮＡＮＤ、ＡＮＤまたは他のそうした演算などの論理演算を使用して、ビット・マップ３０４に対して処理することができる。代替として、ＲＯＭコード４００はビット・マップ３０４により連結されて、暗号化／復号化キー４０２を生成できる。ビット・マップ３０４およびＲＯＭコード４００を使用して、暗号化／復号化キー４０２を導出する他の技法も使用できる。
【００１４】
ビット・マップ３０４をＲＯＭコード４００へ適用することの一つの利点は、その結果のビット・ストリングが完全に記憶装置内に生成され（ｐｒｏｄｕｃｅｄ  ｅｎｔｉｒｅｌｙ  ｗｉｔｈｉｎ  ｔｈｅ  ｓｔｏｒａｇｅ  ｄｅｖｉｃｅ）、好ましくは完全にＡＳＩＣ内に生成されることである（ｅｎｔｉｒｅｌｙ  ｗｉｔｈｉｎ  ａｎ  ＡＳＩＣ）。この結果のビット・ストリングは暗号化／復号化キーであってよく、またはそれから特定の実施に応じて一つのキーへアセンブルされてもよい。ＲＯＭコード４００の機密が保たれている限り、暗号化／復号化キーの秘密が保たれる。
【００１５】
いくつかの従来のハードディスク・ドライブにおいては、しばしば高価な非揮発性メモリが使用されて、情報を暗号化または復号化するときに使用されるキーを維持している。あいにく、メモリは通常（プローブなどの）適当な器具を使用して、観察できる電子データ・パスにより、他の電子機器へメモリが取り付けられているのが普通であり、これによりキーが盗難にさらされる。その上、メモリは装置に対して固定的な製造コストを追加し、それは暗号化キーのように小さな使用頻度の低いものに基づいて正当化できるとは限らないものである。
【００１６】
本発明の諸実施例は、この問題に対して簡単な解決を提供する。すなわち、結果としての暗号化／復号化キーが記憶装置によりダイナミックに生成されて、記憶装置自体（または一層詳しくはＡＳＩＣ２０８内自体の中）でしか知られない。ハードディスク・ドライブなどのコストが高くなりがちなアプリケーションに対して、本発明は最小限の追加コストによりセキュリティ機能をサポートすることを可能にする。詳しくは、シリアルナンバーのようなドライブ特定情報は、従来の装置内にすでに存在しており、それは、開始（ｓｔａｒｔｕｐ）に際して記憶装置を動作させるのに必要なＲＯＭコードにおいてもしかりである。こうして、本発明による諸実施例は、安全なキーをダイナミックに発生する手段を提供し、それにより関連のセキュリティ強化を最小追加コストまたは努力により提供できる。
【００１７】
図５は、特定用途向けＩＣ２０８の拡張されたブロック図である。上述のように特定用途向けＩＣ２０８は、コントローラ２０２、暗号化アルゴリズム２１６およびキー発生器２１４を含む。キー発生器２１４は、ＲＯＭベースのプログラム・コード５００、ビット・セレクタ５０２、ビット・マップ発生器３０２、デバイス特定入力インターフェイス５０４、キー値ハッシュ（ｋｅｙ  ｖａｌｕｅ  ｈａｓｈ）・カルキュレータ５０６、コンパレータ５０８およびストアード・ハッシュド・キー値（ｓｔｏｒｅｄ  ｈａｓｈｅｄ  ｋｅｙ  ｖａｌｕｅ）５１０を含む。一般に、デバイス特定入力インターフェイス５０４は、ＡＳＩＣ特定ビット５１２、ドライブ・シリアルナンバー５１４、ライター・コイル抵抗５１８および／または読み取りヘッド抵抗５１６などの１つまたはそれ以上の入力を受信する。受信された入力は、デバイス特定入力インターフェイスにより処理されて、ビット・マップ発生器３０２へ渡され、ビット・マップ発生器３０２は、これら入力からビット・マップを発生する。ビット・セレクタ５０２がこのビット・マップを記憶装置内のＲＯＭベースのプログラム・コード５００へ適用して、キー／ビット・シーケンス（ｋｅｙ／ｂｉｔ  ｓｅｑｕｅｎｃｅ）を発生する。このキー・ビット・シーケンスは、キー値ハッシュ・カルキュレータ５０６により処理されてハッシュド・キー値を生成し、ハッシュド・キー値は、それからコンパレータ５０８により、記憶されたハッシュ・キー値５１０と比較される。この照合処理は、このハッシュド・キー値が暗号化キーの以前のハッシュド値に対応することを確認する。
【００１８】
特に重要なのは、キーが時間を通じて変化しないことであり、それによりデータを記憶でき、またそれから希望によりコントローラ２０２でアクセスできることである。もしビット値が変化すると、記憶媒体上のデータがコントローラ２０２でアクセス不可能になるが、それは復号キーが紛失するかも知れないからである。結果として、コンパレータ５０８は新しく生成されたキー・ビット・シーケンスからのハッシュド・キー値について、そのキーをコントローラ２０２へ転送するのに先立って、記憶されたハッシュ値に対して比較する。
【００１９】
図６は、暗号化／復号化キーを発生するプロセッサの簡単なフローチャートである。最初に、固有（ｕｎｉｑｕｅ）のドライブ特性および／または識別子が選択される（ステップ６００）。この選択処理は製造者において起り、または記憶装置の最初の所有者により開始（ｓｔａｒｔｕｐ）に際して影響される。たとえば製造者またはデバイス所有者は、どちらの装置特定パラメータまたはパラメータの組み合わせを使用して、暗号化／復号化キーを発生させるべきかを規定する。記憶装置は、固有のドライブ特性および／または識別子から、ビット・マップを導出する（ステップ６０２）。この導出されたビット・マップに基づいて、記憶装置内のＲＯＭベースのプログラム・コードから、ビット・シーケンスが抽出される（ステップ６０４）。最後に、コントローラで使用するために、暗号化／復号化キーがビット・シーケンスから発生される。
【００２０】
上述のように、発生された暗号化／復号化をハッシング（ｈａｓｈｉｎｇ）し、またハッシュド・キー値を記憶されたハッシュ値に対して比較するなどの追加のステップを処理に付け加えて、それにより記憶装置内のコントローラにより使用される前にキーを照合（ｖｅｒｉｆｙ：確認）することができる。その上、ユーザ・キー、指紋または他のユーザ特定情報をキーに組み込んで、ユーザ特定アプリケーションのためにデータを暗号化することができる。一つの実施例において、たとえば指紋装置を使用して、抽出されたビット・シーケンスと連結可能な固有の指紋ベースのディジタル署名を発生させて、暗号化／復号化キーを生成することができる。その実施例において、記憶装置に記憶されたデータは、その指紋を有するユーザのみがアクセス可能である。
【００２１】
本発明の諸実施例は、キーが電子ループ（ｅｌｅｃｔｒｏｎｉｃ  ｌｏｏｐ）または接続によりコントローラへ供給されるストアド・キー・システムを超える有利な点を供給する。そうした従来のシステムは、適当なワイヤ接続を盗聴することによってキーを特定するために、ハッキングされたり不正侵入して嗅ぎまわられる。完全に記憶装置内に記憶された情報からダイナミックにキーを発生させることにより、また特定用途向けＩＣ内にこのキーを維持することにより、盗聴すべき露出したワイヤーが何も無くなる。結果として、遥かに安全な方法でコントローラによりキーがダイナミックに発生されて使用される。
【００２２】
理解すべきは、本発明の種々な実施例の多数の特性と利点を、本発明の種々の実施例の構造と機能の詳細とともに上記の説明に示してきたが、この開示は単に例示的なものであって細部の変更が可能であり、添付の特許請求の範囲に表現される用語の広い一般的な意味により指示される完全な範囲にまで、本発明の諸原則の範囲内で、特に構造の問題と部品の配列に関して、変更が可能である。たとえば、本発明の範囲と精神から離れることなく、同一の機能性を実質的に維持しながら、キー発生システムのために、特定アプリケーションに応じて特定の要素が変化しうる。その上、本書に説明された好ましい実施例は、データ記憶装置によるデータの暗号化および復号化のためのダイナミックキー発生システムに向けられているが、本発明の教示は、キーの保護が望ましい暗号化／復号化キーを使用するあらゆるシステムに対して、本発明の範囲と精神から離れることなく応用できることが、当業者により理解される。
【図面の簡単な説明】
【００２３】
【図１】ディスク・ドライブの等角投影図である。
【図２】記憶装置の簡単なブロック図である。
【図３】ビット・マップを生成する処理の簡単なフローチャートである。
【図４】図３のビット・マップを使用して、暗号化／復号化キーを生成する処理の簡単なフローチャートである。
【図５】記憶装置の拡張ブロック図である。
【図６】暗号化／復号化キーを発生する処理の簡単なフローチャートである。
【符号の説明】
【００２４】
１００  ディスク・ドライブ
１０１  ホスト・システム
１０２  ベース
１０３  インターフェイス
１０６  ディスク・パック
１０８  ディスク・クランプ
１０９  中心軸
１１０  スライダ、ヘッド
１１２  サスペンション
１１４  アクセシング・アーム
１１６  アクチュエータ
１１８  ボイス・コイル・モータ（ＶＣＭ）
１２０  ピボット・シャフト
１２４  内径
１２６  外径
１３０  サーボ電子機器
２００  記憶システム
２０２  コントローラ
２０４  読み出し書き込み機構
２０６  記憶媒体
２０８  特定用途向けＩＣ（ＡＳＩＣ）
２１０  リード・オンリ・メモリ（ＲＯＭ）
２１２  プログラム・コード
２１４  キー発生器
２１６  暗号化アルゴリズム
３００  ドライブ特定パラメータ
３０２  ビット・マップ発生器
３０４  ビット・マップ
４００  ＲＯＭコード
５００  ＲＯＭベースのプログラム・コード
５０２  ビット・セレクタ
５０４  デバイス特定入力インターフェイス
５０６  キー値ハッシュ・カルキュレータ
５０８  コンパレータ
５１０  記憶されたハッシュ・キー値
５１２  ＡＳＩＣ特定ビット
５１４  ドライブ・シリアルナンバー
５１６  読み取りヘッド抵抗
５１８  ライター・コイル抵抗
【図１】
0004646927.tif 000002
【図２】
0004646927.tif 000003
【図３】
0004646927.tif 000004
【図４】
0004646927.tif 000005
【図５】
0004646927.tif 000006
【図６】
0004646927.tif 000007