(57)【要約】【課題】データ記憶装置内において、安全にデータ用暗号鍵を管理する。【解決手段】本発明の一実施形態において、データの暗復号を実施する暗号処理部２３４は、ホスト・インターフェース２３１とメモリ・マネージャ２３３との間に位置する。ＨＤＤ１のホスト・インターフェース２３１を除く他の部分において、ＨＤＤ１は、ユーザ・データを暗号化した状態で取り扱う。暗号処理部２３４がユーザ・データの暗復号化に使用するデータ用暗号鍵は、暗号化されて磁気ディスク１１に格納されている。ＭＰＵ２３５は、パスワードと乱数とを使用してデータ用暗号鍵を復号化し、暗号処理部２３４に供給する。外部からのパスワードとＨＤＤ１内の乱数を使用することで、より安全にデータ用暗号鍵を管理することができる。【選択図】図２
2008245112.tif 000002
【特許請求の範囲】
【請求項１】
メディアのデータを暗号処理するデータ記憶装置であって、
データを記憶するメディアと、
ホストから受信した鍵生成外部データと内部に記憶されている鍵生成内部データとを使用して鍵用暗号鍵を生成し、暗号化した状態で内部に記憶されているデータ用暗号鍵を、前記鍵用暗号鍵を使用して復号する鍵暗号処理部と、
復号した前記データ用暗号鍵を使用して、メディアのデータを暗号処理するデータ暗号処理部と、
を有するデータ記憶装置。
【請求項２】
前記鍵生成外部データをパスワードとして使用した認証処理を行う、認証処理部をさらに有し、
前記鍵暗号処理部は、前記認証が正常に行なわれた場合に、前記認証に使用されたパスワードを使用して前記鍵用暗号鍵を生成する、
請求項１に記載のデータ記憶装置。
【請求項３】
乱数生成器をさらに有し、
前記鍵生成内部データは、前記乱数生成器が生成した乱数である、
請求項１に記載のデータ記憶装置。
【請求項４】
前記鍵暗号処理部は、前記鍵生成内部データを変化させて前記鍵用暗号鍵を更新する、
請求項１に記載のデータ記憶装置。
【請求項５】
前記鍵暗号処理部は、前記パスワードが更新される場合、前記更新されたパスワードと更新された鍵生成内部データとで前記鍵用暗号鍵を生成し、その鍵用暗号鍵を使用して前記データ用暗号鍵を暗号化する、
請求項２に記載のデータ記憶装置。
【請求項６】
前記鍵暗号処理部は、前記暗号化されて記憶されているデータ用暗号鍵が外部からアクセスされた場合、前記鍵生成内部データを変化させて前記鍵用暗号鍵を更新する、
請求項４に記載のデータ記憶装置。
【請求項７】
前記メディアのデータ記憶領域は分割された複数のセクションを有しており、
前記複数のセクションのそれぞれに対応したデータ用暗号鍵は、それぞれ異なる鍵生成内部データから生成された鍵用暗号鍵を使用して暗号化されて内部記憶されている、
請求項１に記載のデータ記憶装置。
【請求項８】
メディアのデータを暗号処理するデータ記憶装置において、データ用暗号鍵を管理する方法であって、
ホストから鍵生成外部データを受信し、
前記鍵生成外部データと内部に記憶されている鍵生成内部データとを使用して鍵用暗号鍵を生成し、
暗号化した状態で内部に記憶されているデータ用暗号鍵を、前記鍵用暗号鍵を使用して復号し、
復号した前記データ用暗号鍵を使用してメディアのデータを暗号処理する、方法。
【請求項９】
前記鍵生成外部データをパスワードとして使用した認証処理をさらに行い、
前記認証が正常に行なわれた場合に、前記認証に使用されたパスワードを使用して前記鍵用暗号鍵を生成する、
請求項８に記載の方法。
【請求項１０】
乱数生成器をさらに有し、
前記鍵生成内部データは、前記乱数生成器が生成した乱数である、
請求項８に記載の方法。
【請求項１１】
前記鍵生成内部データを変化させて前記鍵用暗号鍵を更新する、
請求項８に記載の方法。
【請求項１２】
前記パスワードが更新される場合、前記更新されたパスワードと更新された鍵生成内部データとで前記鍵用暗号鍵を生成し、その鍵用暗号鍵を使用して前記データ用暗号鍵を暗号化する、
請求項９に記載の方法。
【請求項１３】
前記暗号化されて記憶されているデータ用暗号鍵が外部からアクセスされた場合、前記鍵生成内部データを変化させて前記鍵用暗号鍵を更新する、
請求項１１に記載の方法。
【請求項１４】
前記メディアのデータ記憶領域は分割された複数のセクションを有しており、
前記複数のセクションのそれぞれに対応したデータ用暗号鍵は、それぞれ異なる鍵生成内部データから生成された鍵用暗号鍵を使用して暗号化されて内部記憶されている、
請求項８に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明はデータ記憶装置及びその暗号鍵の管理方法に関し、特に、メディアに記憶されているデータの暗号鍵を暗号化する方式に関する。
【背景技術】
【０００２】
データ記憶を記憶するメディアとして、光ディスク、光磁気ディスク、磁気ディスクあるいは半導体メモリなどの様々な方式が知られている。これらメディアを使用してデータを記憶するデータ記憶装置において、メディアに保存されるユーザ・データを不正なアクセスから保護するため、そのユーザ・データを暗号化する技術が知られている。例えば、特許文献１は、磁気ディスクをメディアとして使用するハードディスク・ドライブ（ＨＤＤ）において、磁気ディスクに記憶するデータを暗号化する技術の一例を開示している。
【０００３】
具体的には、ＨＤＤはデータの暗号化と復号化とを行う暗号処理部を有している。この暗号処理部は、磁気ディスク装置内において、磁気ディスクに記録されるデータ、そして磁気ディスクから再生されるデータを、それぞれデータ転送速度で暗号化及び復号化する。このＨＤＤは、ユーザ・データの暗復号化のためのデータ用暗号鍵を、個人識別情報（例えばパスワード）を暗号化することで生成する。
【０００４】
更に、このＨＤＤは、パスワードをデータ用暗号鍵で暗号化し、その暗号化したパスワードを認証データとしてＨＤＤ内に格納しておく。利用者の認証時において、ＨＤＤは、格納されている認証データと入力されたパスワードから生成したデータ用暗号鍵による暗号処理結果とを比較し、それらの一致を検証する。利用者認証が成功すると、ＨＤＤは、データ用暗号鍵を生成し、そのデータ用暗号鍵を磁気ディスクのユーザ・データの暗復号に使用する。
【０００５】
また、上記特許文献１は、別の方法を開示している。この別の方法は、データの暗復号化のためのデータ用暗号鍵を個別に生成する。ＨＤＤは、さらに、パスワードを暗号化した認証暗号鍵でデータ用暗号鍵を暗号化し、その内部に保持する。ＨＤＤを使用する際には、ＨＤＤは利用者の認証を実施し、正規の利用者であれば、入力されたパスワードから生成した認証暗号鍵でＨＤＤ内に保持されている暗号化されたデータ用暗号鍵を復号し、そのデータ用暗号鍵を磁気ディスクのデータの暗復号に使用する。
【特許文献１】特開２００４−２０１０３８号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかし、ＨＤＤがデータを暗復号化するためのデータ用暗号鍵の管理を適切に行わないと、データを暗号化することの機能を十分に活かすことができない。上記特許文献１も管理方法を開示しているが、その管理方法が安全性の点で十分とは言い難い。上記特許文献１の管理方法は、個人識別情報（パスワード等）から鍵用暗号鍵を生成し、その鍵用暗号鍵を使用してデータ用暗号鍵を暗号化する。
【０００７】
従って、そのデータ用暗号鍵の鍵管理においては、常に鍵用暗号鍵とパスワードとが一対一の関係にある。また、データ用暗号鍵の安全性を高めるためにデータ用暗号鍵の管理状態（暗号化されたデータ用暗号鍵）を変更するには、パスワードを変更する必要がある。このため、データ記憶装置内において、より安全にデータ用暗号鍵を管理する手法が必要とされる。
【課題を解決するための手段】
【０００８】
本発明の一態様は、メディアのデータを暗号処理するデータ記憶装置である。このデータ記憶装置は、データを記憶するメディアと、ホストから受信した鍵生成外部データと内部に記憶されている鍵生成内部データとを使用して鍵用暗号鍵を生成し、暗号化した状態で内部に記憶されているデータ用暗号鍵を、前記鍵用暗号鍵を使用して復号する鍵暗号処理部と、復号した前記データ用暗号鍵を使用して、メディアのデータを暗号処理するデータ暗号処理部とを有する。鍵生成外部データと鍵生成内部データとを使用して鍵用暗号鍵を生成することで、データ用暗号鍵をより安全に管理することができる。
【０００９】
好ましくは、前記鍵生成外部データをパスワードとして使用した認証処理を行う認証処理部をさらに有し、前記鍵暗号処理部は、前記認証が正常に行なわれた場合に、前記認証に使用されたパスワードを使用して前記鍵用暗号鍵を生成する。これにより、より安全性を高めることができる。さらに、好ましい一例において、前記鍵暗号処理部は、前記パスワードが更新される場合、前記更新されたパスワードと更新された内部データとで前記鍵用暗号鍵を生成し、その鍵用暗号鍵を使用して前記データ用暗号鍵を暗号化する。パスワードと内部データとを更新することで、より安全性を高めることができる。
【００１０】
乱数生成器をさらに有し、前記鍵生成内部データは、前記乱数生成器が生成した乱数であることが好ましい。鍵生成内部データとして内部で乱数を生成するとで、鍵用暗号鍵をよりランダムな方法で生成でき、安全性を高めることができる。
好ましくは、前記鍵暗号処理部は、前記鍵生成内部データを変化させて前記鍵用暗号鍵を更新する。これにより、より安全性を高めることができる。さらに、前記鍵暗号処理部は、前記暗号化されて記憶されているデータ用暗号鍵が外部からアクセスされた場合、前記鍵生成内部データを変化させて前記鍵用暗号鍵を更新することが好ましい。
【００１１】
好ましくは、前記メディアのデータ記憶領域は分割された複数のセクションを有しており、前記複数のセクションのそれぞれに対応したデータ用暗号鍵は、それぞれ異なる鍵生成内部データから生成された鍵用暗号鍵を使用して暗号化されて内部記憶されている。これにより、より安全性を高めることができる。
【００１２】
本発明の他の態様は、メディアのデータを暗号処理するデータ記憶装置において、データ用暗号鍵を管理する方法である。この方法は、ホストから鍵生成外部データを受信する。前記鍵生成外部データと内部に記憶されている鍵生成内部データとを使用して鍵用暗号鍵を生成する。暗号化した状態で内部に記憶されているデータ用暗号鍵を、前記鍵用暗号鍵を使用して復号する。復号した前記データ用暗号鍵を使用してメディアのデータを暗号処理する。鍵生成外部データと鍵生成内部データとを使用して鍵用暗号鍵を生成することで、データ用暗号鍵をより安全に管理することができる。
【発明の効果】
【００１３】
本発明によれは、データ用暗号鍵をデータ記憶装置内で適切に管理し、データ記憶装置からのデータ漏洩をより確実に回避することが可能となる
【発明を実施するための最良の形態】
【００１４】
以下に、本発明を適用可能な実施の形態を説明する。説明の明確化のため、以下の記載及び図面は、適宜、省略及び簡略化がなされている。又、各図面において、同一要素には同一の符号が付されており、説明の明確化のため、必要に応じて重複説明は省略されている。以下においては、データ記憶装置の一例であるハードディスク・ドライブ（ＨＤＤ）を例として、本発明の実施形態を説明する。本形態は、磁気ディスクの記憶データを暗号化するデータ用暗号鍵のＨＤＤ内における管理にその特徴を有している。
【００１５】
まず、ＨＤＤの全体構成を説明する。図１は、ＨＤＤ１の全体構成を模式的に示すブロック図である。ＨＤＤ１は、エンクロージャ１０の外側に固定された回路基板２０を有している。回路基板２０上に、リード・ライト・チャネル（ＲＷチャネル）２１、モータ・ドライバ・ユニット２２、ロジック回路であるハードディスク・コントローラ（ＨＤＣ）とＭＰＵの集積回路（ＨＤＣ／ＭＰＵ）２３及びＲＡＭ２４などの各回路が実装されている。
【００１６】
エンクロージャ１０内において、スピンドル・モータ（ＳＰＭ）１４は所定の角速度で磁気ディスク１１を回転する。磁気ディスク１１は、データを記憶する、メディアである。ＨＤＣ／ＭＰＵ２３からの制御データに従って、モータ・ドライバ・ユニット２２がＳＰＭ１４を駆動する。各ヘッド・スライダ１２は、磁気ディスク上を浮上するスライダと、スライダに固定され磁気信号と電気信号との間の変換（データの読み書き）を行うヘッド素子部とを備えている。各ヘッド・スライダ１２はアクチュエータ１６の先端部に固定されている。アクチュエータ１６はボイス・コイル・モータ（ＶＣＭ）１５に連結され、回動軸を中心に回動することによって、ヘッド・スライダ１２を回転する磁気ディスク１１上においてその半径方向に移動する。
【００１７】
モータ・ドライバ・ユニット２２は、ＨＤＣ／ＭＰＵ２３からの制御データに従ってＶＣＭ１５を駆動する。アーム電子回路（ＡＥ：Arm Electronics）１３は、ＨＤＣ／ＭＰＵ２３からの制御データに従って複数のヘッド素子部１２の中から磁気ディスク１１にアクセス（リードもしくはライト）するヘッド・スライダ１２を選択し、リード／ライト信号の増幅を行う。
【００１８】
ＲＷチャネル２１は、リード処理において、ＡＥ１３から供給されたリード信号を一定の振幅となるように増幅し、その後、取得したリード信号からデータを抽出し、デコード処理を行う。デコード処理されたデータは、ＨＤＣ／ＭＰＵ２３に供給される。また、ＲＷチャネル２１は、ライト処理において、ＨＤＣ／ＭＰＵ２３から供給されたライト・データをコード変調し、さらに、コード変調されたデータをライト信号に変換してＡＥ１３に供給する。
【００１９】
コントローラの一例であるＨＤＣ／ＭＰＵ２３において、ＭＰＵはＲＡＭ２４にロードされたファーム・ウェアに従って動作する。ＨＤＣ／ＭＰＵ２３は、リード／ライト処理制御、コマンド実行順序の管理、サーボ信号を使用したヘッド・ポジショニング制御（サーボ制御）、ホスト５１との間のインターフェース制御、ディフェクト管理、エラー対応処理など、データ処理に関する必要な処理及びＨＤＤ１の全体制御を実行する。
【００２０】
本形態のＨＤＣ／ＭＰＵ２３は、磁気ディスク１１に記録されるユーザ・データの暗号処理を実行する。図２は、この暗号処理に関連する構成要素を模式的に示すブロック図である。ＨＤＣ／ＭＰＵ２３は、ホスト・インターフェース２３１、ＥＣＣ処理部２３２、メモリ・マネージャ２３３、暗号処理部２３４を有している。これらは、論理回路で構成されている。また、ＨＤＣ／ＭＰＵ２３は、ファーム・ウェアに従って動作するＭＰＵ２３５を有している。
【００２１】
ホスト・インターフェース２３１は、外部ホスト５１とのデータ通信におけるインターフェースである。ＥＣＣ処理部２３２は、磁気ディスク１１の記録データの誤り検出及び誤り訂正処理を行う。メモリ・マネージャ２３３は、データ・フローの制御やメモリ・バスのアクセス制御等を実施する。暗号処理部２３４は、磁気ディスク１１のユーザ・データの暗号化及び復号化を行う。ＲＡＭ２４に形成されたデータ・バッファ２４１は、ライト・データ及びリード・データを一時的に格納する。
【００２２】
ライト処理において、ホスト５１からのライト・データは、ホスト・インターフェース２３１を介して、暗号処理部２３４に転送される。暗号処理部２３４は、ライト・データを暗号化して、メモリ・マネージャ２３３送る。メモリ・マネージャ２３３は、暗号化されたライト・データをデータ・バッファ２４１に格納する。メモリ・マネージャ２３３は、その後、データ・バッファ２４１からライト・データを取得して、ＥＣＣ処理部２３２に送る。ＥＣＣ処理部２３２は、誤り訂正のために必要な処理をライト・データに行い、ＲＷチャネル２１に送る。
【００２３】
リード処理において、ＥＣＣ処理部２３２は、ＲＷチャネル２１から転送された磁気ディスク１１からのリード・データの誤り訂正処理を行う。その後、リード・データは、メモリ・マネージャ２３３を介して、データ・バッファ２４１に格納される。メモリ・マネージャ２３３は、データ・バッファ２４１からリード・データを取得して暗号処理部２３４に送る。暗号処理部２３４は、リード・データの復号化処理を行う。復号化されたリード・データは、ホスト・インターフェース２３１を介して、ホスト５１に転送される。
【００２４】
図２に示すように、データの暗復号を実施する暗号処理部２３４は、ホスト・インターフェース２３１とメモリ・マネージャ２３３との間に位置する。従って、ＨＤＤ１のホスト・インターフェース２３１を除く他の部分において、ＨＤＤ１は、ユーザ・データを暗号化した状態で取り扱うことが出来る。つまり、ＨＤＤ１の動作中において、データ・バッファ２４１内のユーザ・データも、暗号化により保護されている。
【００２５】
暗号処理部２３４がユーザ・データの暗号化及び復号化に使用するデータ用暗号鍵は、磁気ディスク１１に格納されているデータを基に、ＭＰＵ２３５によって再現（復合化）され、暗号処理部２３４に供給される。以下において、このデータ用暗号鍵の管理方法について説明する。本形態において、データを暗復号化するための鍵の管理方法の主な点は、次の通りである。
【００２６】
ＭＰＵ２３５は、ホスト５１から取得したユーザ認証用のパスワードと磁気ディスク１１上の乱数データＲＳｘとを使用して、鍵用暗号鍵ＥＫｅｙを生成する。この鍵用暗号鍵ＥＫｅｙは、ユーザ・データの暗号処理に使用するデータ用暗号鍵ＤＫｅｙの暗号処理に使用される。ＭＰＵ２３５は、鍵用暗号鍵ＥＫｅｙを使用してデータ用暗号鍵ＤＫｅｙを暗号化する。この暗号化されたデータ用暗号鍵を、Ｅ｛ＥＫｅｙ、ＤＫｅｙ｝と表す。つまり、Ｅ｛ＥＫｅｙ、ＤＫｅｙ｝は、データ用暗号鍵ＤＫｅｙを鍵用暗号鍵Ｅｋｅｙで暗号化していることを表す。暗号化されたデータ用暗号鍵Ｅ｛ＥＫｅｙ、ＤＫｅｙ｝は、磁気ディスク１１上に記憶される。
【００２７】
ＭＰＵ２３５は、データ用暗号鍵ＤＫｅｙを再現させる（復号化する）ために、ホスト５１から入力されたユーザ認証用のパスワードと、磁気ディスク１１上の乱数データＲＳｘとを基に、鍵用暗号鍵ＥＫｅｙを生成する。ＭＰＵ２３５は、さらに、磁気ディスク１１上に保持されている暗号化されたデータ用暗号鍵Ｅ｛ＥＫｅｙ、ＤＫｅｙ｝を読み出して、鍵用暗号鍵Ｅｋｅｙで暗号解除（復号化）する。
【００２８】
上記管理方法は、データ用暗号鍵ＤＫｅｙを暗号化されたデータ用暗号鍵Ｅ｛ＥＫｅｙ、ＤＫｅｙ｝として安全に保持しつつ、認証用パスワードの変更が可能である。また、必要に応じて乱数データＲＳｘを定期的に更新することにより、暗号化されたデータ用暗号鍵Ｅ｛ＥＫｅｙ、ＤＫｅｙ｝を定期的に更新できる。これにより、データ用暗号鍵Ｄｋｅｙの管理をよりセキュアに実施することができる。また、本形態において、ＭＰＵ２３５は、ユーザ認証用のパスワード、データ用暗号鍵Ｄｋｅｙ、そして乱数データＲＳｘを、ホスト５１からのコマンドにより変更することができる。これにより、データ用暗号鍵Ｄｋｅｙの管理をよりセキュアに実施することができる。
【００２９】
以下において、データ用暗号鍵の管理における、複数のシーケンスのそれぞれについて、図３〜図９を参照して具体的に説明する。各図は、暗号処理部２３４に使用するデータ用暗号鍵Ｄｋｅｙの管理方法について説明するもので、ＨＤＤ１の状態毎のデータ用暗号鍵Ｄｋｅｙの取り扱いを示す。ここで、暗号処理部２３４が使用する暗号方法は、ＡＥＳ（Advanced Encryption Standard）のような共通鍵暗号方式（秘密鍵暗号方式）とする。なお、本発明の鍵管理は、他の暗号方式に適用することもできる。
【００３０】
図３は、ＨＤＤ１内でデータ用暗号鍵ＤＫｅｙを最初に生成する処理、又はデータ用暗号鍵ＤＫｅｙの更新処理における、各工程もしくは各工程を実行する構成要素を示すブロック図である。図３において、ハッシュ関数３５１、排他的論理和演算器３５２、第１乱数生成器３５３、第２乱数生成器３５４、そして鍵暗号化部３５５のそれぞれは、ＭＰＵ２３５がファーム・ウェアに従って動作することにより実現される。これらの各処理が生成したデータは、ＭＰＵ２３５内のレジスタ（メモリ）内に、一端格納される。なお、これらの処理の一部を、ＨＤＣ／ＭＰＵ２３内の論理回路が実行するようにしてもよい。
【００３１】
第１乱数生成器３５３が生成した乱数が、ＨＤＤ内で使用する新たなデータ用暗号鍵ＤＫｅｙとなる。生成されたデータ用暗号鍵ＤＫｅｙ鍵は、暗号処理部２３４に設定されて、ユーザ・データの暗号処理に使用される。また、鍵暗号化部３５５は、データ用暗号鍵ＤＫｅｙを暗号化する。ＨＤＤ１内には、この暗号化されたデータ用暗号鍵Ｅ｛ＥＫｅｙ、ＤＫｅｙ｝が保持される。
【００３２】
データ用暗号鍵ＤＫｅｙを暗号化するための鍵用暗号鍵Ｅｋｅｙは、ＨＤＤ１内部で予め設定されている初期パスワードDefault Passwordと乱数ＲＳｘとから生成される。具体的には、一方向関数であるハッシュ関数３５１が初期パスワードDefault Passwordのハッシュ値Ｈ（Ｐｗｄ）を生成する。さらに、第２乱数生成器３５４は、乱数ＲＳｘを生成する。排他的論理和演算器３５２は、初期パスワードDefault Passwordのハッシュ値Ｈ（Ｐｗｄ）と乱数ＲＳｘとの排他的論理和を算出する。この値が、鍵用暗号鍵Ｅｋｅｙである。
【００３３】
磁気ディスク１１は、データ用暗号鍵ＤＫｅｙを鍵用暗号鍵Ｅｋｅｙにより暗号化したＥ｛Ｅｋｅｙ、ＤＫｅｙ｝を保持する。また、磁気ディスク１１は、鍵用暗号鍵Ｅｋｅｙの生成に使用した乱数ＲＳｘも保持する。この時点では、未だ使用者の認証情報であるパスワードは設定されていないので、認証情報のパスワードが設定されるまでの間は、ＭＰＵ２３５は初期パスワードDefault Passwordを一時的に使用する。
【００３４】
鍵用暗号鍵Ｅｋｅｙの生成は、データ用暗号鍵生成用の第１乱数生成器３５３を使用してもよい。また、データ用暗号鍵ＤＫｅｙを生成する以前に、予め磁気ディスク１１に保持しておいた値を使用しても良い。この値は、ＨＤＤ１内において生成する、あるいは、ＨＤＤ１の製造工程において予め磁気ディスク１１に格納しておくことができる。
【００３５】
生成されたデータ用暗号鍵ＤＫｅｙは暗号処理部２３４に設定されているので、磁気ディスク１１へのユーザ・データの記録再生の際には、暗号処理部２３４がライト・データを暗号化し、リード・データを復号化して出力する。従って、磁気ディスク１１上のデータ、暗号化された状態で保護される。このように、データ用暗号鍵ＤＫｅｙを安全に更新できるので、データ用暗号鍵を更新することで、それまでのデータ用暗号鍵を使用したデータを無効化できる。
【００３６】
次に、図４を参照して、利用者がＨＤＤ１にパスワードを設定する処理を説明する。図４において、同一の符号が付された複数のブロックが示されている。これらは、説明の明確化のために示されているものであって、同一符号のブロックは同一の構成要素である。例えば、二つのハッシュ関数３５１のブロックは、同一のハッシュ関数である。この点は、以下の説明において同様である。
【００３７】
利用者が、ＨＤＤ１にパスワードを設定するために、ホスト５１からパスワードPasswordを入力すると、認証処理部３５７が認証処理を行う。ＭＰＵ２３５が認証処理部３５７として機能する。認証処理部３５７は、パスワードPasswordに所定の演算処理を施し、認証データとしてＨＤＤ１内設定する。認証処理部３５７の認証処理は従来の方法であり、その詳細は省略する。
【００３８】
認証処理部３５７の認定処理が正しく終了したことを受けて、ハッシュ関数３５１は、入力されたパスワードPasswordからハッシュ値Ｈ（ｐｗ）を生成する。更に、排他的論理和演算器３５２は、このハッシュ値Ｈ（ｐｗ）と、磁気ディスク１１読み出された乱数ＲＳｘとの排他的論理和を算出する。この排他的論理和が、新たな鍵用暗号鍵Ｅｋｅｙａである。
【００３９】
また、ハッシュ関数３５１は、初期パスワードDefault Passwordのハッシュ値Ｈ（ｐｗｄ）を生成する。排他的論理和演算器３５２は、このハッシュ値Ｈ（ｐｗｄ）磁気ディスク１１読み出された乱数ＲＳｘとの排他的論理和を算出する。この値が更新前の現在の鍵用暗号鍵Ｅｋｅｙである。鍵復号化部３５６は、現在の鍵用暗号鍵Ｅｋｅｙを使用して、磁気ディスク１１に保持されている暗号化された鍵用暗号鍵Ｅ｛Ｅｋｅｙ、ＤＫｅｙ｝を復号化する。これにより、データ用暗号鍵ＤＫｅｙが得られる。ＭＰＵ２３５が、鍵復号化部３５６として機能する。
【００４０】
鍵暗号化部３５５は、データ用暗号鍵ＤＫｅｙを鍵用暗号Ｅｋｅｙａにより暗号化してＥ｛Ｅｋｅｙａ、ＤＫｅｙ｝を生成し、磁気ディスク１１にそれを格納する。以上の処理によって、パスワード及び鍵用暗号鍵の更新が終了する。以上の処理は、データ用暗号鍵ＤＫｅｙは変更していない。暗号処理部２３４は、以前と同様のデータ用暗号鍵ＤＫｅｙを使用して暗復号する。なお、新たなハッシュ後のパスワードＨ（ｐｗ）と排他的論理和を実施するため、磁気ディスク１１に保存された乱数ＲＳｘではなく、第２乱数生成器３５４がその時点で新たに生成した乱数を使用してもよい。つまり、鍵用暗号鍵は、新たなパスワードと新たな乱数により更新される。この場合、新たに生成された乱数が磁気ディスク１１に保持される。
【００４１】
図５は、パスワードが設定されたＨＤＤを利用者が使用する場合のシーケンスを示している。利用者は、ホスト５１を介して、自身の認証用パスワードPasswordをＨＤＤ１に入力する。認証処理部３５７が、所定の方法で認証処理を行う。その認定処理が正しく終了したことを受けて、ハッシュ関数３５１は、入力されたパスワードPasswordからハッシュ値Ｈ（ｐｗ）を生成する。更に磁気ディスク１１から乱数ＲＳｘが読み出され、排他的論理和演算器３５２は、ハッシュ後のパスワードＨ（ｐｗ）と乱数ＲＳｘとの排他的論理和を算出する。この算出値が、暗号用鍵Ｅｋｅｙａである。
【００４２】
鍵復号化部３５６は、磁気ディスク１１に保持されている暗号化されたデータ用暗号鍵Ｅ｛Ｅｋｅｙａ、ＤＫｅｙ｝を読み出し、そのデータ用暗号鍵Ｅ｛Ｅｋｅｙａ、ＤＫｅｙ｝を、生成された暗号用鍵Ｅｋｅｙａで復号する。これにより、データ用暗号鍵Ｄｋｅｙが得られる。さらに、鍵復号化部３５６は、このデータ用暗号鍵Ｄｋｅｙを暗号処理部２３４に設定する。
【００４３】
これにより入力情報を暗号化し、出力情報は復号化されて出力され、磁気ディスク１１上の情報は暗号化された状態で保護される。なお、利用者の認証用パスワードPasswordが設定されていない場合には、認証用パスワードPasswordの入力及び認証処理を省き、ＨＤＤ１内部の初期パスワードDefault Passwordで同様に処理することができる。
【００４４】
次に、図６を参照して、利用者がＨＤＤ１のパスワードを変更（更新）する場合の動作を説明する。まず、図５を参照して説明したように、ＭＰＵ２３５は、更新前のパスワードPasswordからデータ用暗号鍵Ｅｋｅｙａを再生する。具体的には、ＭＰＵ２３５は、認証処理されたパスワードPasswordのハッシュ値Ｈ（ｐｗ）と、磁気ディスク１１から読み出された乱数ＲＳｘとの排他的論理和演算により、鍵用暗号鍵Ｅｋｅｙａを再生する。さらに、鍵用暗号鍵Ｅｋｅｙａを使用して磁気ディスク１１から読み出した暗号化されたデータ用暗号鍵Ｅ｛Ｅｋｅｙａ、ＤＫｅｙ｝を復号し、データ用暗号鍵ＤＫｅｙを取得する。
【００４５】
さらに、ＭＰＵ２３５は、図４を参照して説明したように、新たなパスワードNew Passwordを使用して鍵用暗号鍵を更新し、その更新した鍵用暗号鍵でデータ用暗号鍵を暗号化して、磁気ディスク１１に保存する。具体的には、認証処理が正常に終了すると、排他的論理和演算器３５２が、新たなパスワードのハッシュ値Ｈ（ｐｗｎ）と、磁気ディスク１１から読み出された乱数ＲＳｘとの排他的論理和を算出する。これが、新たな鍵用暗号鍵Ｅｋｅｙｂとなる。鍵暗号部３５５は、鍵復号部３５６が復号したデータ用暗号鍵ＤＫｅｙを取得し、それを更新された新たな鍵用暗号鍵Ｅｋｅｙｂで暗号化する。暗号化されたデータ用暗号鍵Ｅ｛Ｅｋｅｙｂ、ＤＫｅｙ｝は、磁気ディスク１１に保持される。以上の処理により、でパスワード及び鍵用暗号鍵の更新が完了する。
【００４６】
図７は、利用者がＨＤＤ１のパスワードを削除する場合の動作を模式的に示している。まず、図５を参照して説明したように、ＭＰＵ２３５は、更新前のパスワードPasswordからデータ用暗号鍵ＤＫｅｙを再生する。さらに、ＭＰＵ２３５は、図３を参照して説明したように、初期パスワードDefault Passwordによる設定を行う。
【００４７】
具体的には、ＭＰＵ２３５は、初期パスワードDefault Passwordのハッシュ値Ｈ（ｐｗｄ）と、磁気ディスク１１保持されている乱数ＲＳｘの排他的論理和演算を行い、鍵用暗号鍵Ｅｋｅｙｄを生成する。ここでは、乱数ＲＳｘは磁気ディスク１１保持されているものを再生して使用するが、新たな乱数を生成してもよい。次に、ＭＰＵ２３５は、新たに生成した鍵用暗号鍵Ｅｋｅｙｄを使用して、復号したデータ用暗号鍵ＤＫｅｙを暗号化する。新たに暗号化されたデータ用暗号鍵Ｅ｛Ｅｋｅｙｄ、ＤＫｅｙ｝は、磁気ディスク１１に保持される。
【００４８】
続いて、図８を参照して、乱数ＲＳｘ及びその乱数から生成する鍵用暗号鍵の更新シーケンスについて説明する。まず、ＭＰＵ２３５は、図５を参照して説明したように、データ用暗号鍵ＤＫｅｙを再生する。つまり、利用者によるパスワードPasswordの入力、その認証処理、パスワードPasswordと更新前の乱数を使用した鍵用暗号鍵Ｅｋｅｙａの生成、さらに、鍵用暗号鍵Ｅｋｅｙａによるデータ用暗号鍵ＤＫｅｙの復号化の各工程が終了している。
【００４９】
次に、乱数ＲＳｘを更新するため、第１乱数生成器３５４が、新たな乱数ＲＳｙを生成する。新たな生成された乱数ＲＳｙは、磁気ディスク１１に保持される。さらに、排他的論理和演算器３５２は、新たな生成された乱数ＲＳｙと、パスワードのハッシュ値Ｈ（ｐｗ）との、排他的論理和を算出する。この値が、更新された鍵用暗号鍵Ｅｋｅｙｆとなる。
【００５０】
鍵暗号化部３５５は、更新された鍵用暗号鍵Ｅｋｅｙｆを使用して、データ用暗号鍵ＤＫｅｙを暗号化する。鍵暗号化部３５５は、さらに、暗号化したデータ用暗号鍵Ｅ｛Ｅｋｅｙｆ、ＤＫｅｙ｝を磁気ディスク１１に格納する。このように、乱数を更新することによって、パスワードを変更することなく、磁気ディスク１１に保持する暗号化したデータ用暗号鍵Ｅ｛Ｅｋｅｙｆ、ＤＫｅｙ｝を更新できる。
【００５１】
乱数を更新するタイミングとしては、いくつかの好ましい例が考えられる。具体的には、乱数あるいは鍵用暗号鍵を更新してからＨＤＤ１の動作時間（パワー・オン時間）が基準値を超えた場合、あるいは乱数あるいは鍵用暗号鍵を更新してから、ホスト５１から受信したコマンド数が基準値を超えた場合、あるいは認証処理が行われる毎に乱数を更新することができる。
【００５２】
また、ＨＤＤ１内におけるデータ用暗号鍵ＤＫｅｙを安全に管理するため、暗号化されたデータ用暗号鍵Ｅ｛Ｅｋｅｙ、ＤＫｅｙ｝への外部からの規則外のアクセスに対応することが重要である。ＨＤＤ１の通常使用において、データ用暗号鍵Ｅ｛Ｅｋｅｙ、ＤＫｅｙ｝に外部からアクセスされることはない。従って、そのような予め定められた規則外のアクセスあった場合、ユーザ・データの漏洩の危険性が高いことを意味する。従って、好ましくは、ＭＰＵ２３５は、データ用暗号鍵Ｅ｛Ｅｋｅｙ、ＤＫｅｙ｝に外部から規則外のアクセスがあった場合、現在の鍵用暗号鍵を更新し、新たな鍵用暗号鍵を使用して、データ用暗号鍵を再暗号化する。これによって、データ用暗号鍵及び磁気ディスク上のデータの安全性をより高めることができる。
【００５３】
続いて、乱数を更新する他の好ましい例を説明する。図９は、パスワード及び乱数の更新を同時に実施する場合の動作を模式的に示している。ＭＰＵ２３５は、パスワードPasswordの更新を、図６を参照して説明した動作に従って実行する。具体的には、排他的論理和演算器３５１が、現在のパスワードPasswordのハッシュ値Ｈ（ｐｗ）と現在の乱数ＲＳｘの排他的論理和を算出する。これが、現在の鍵用暗号鍵Ｅｋｅｙａである。鍵復号化部３５６は、現在の鍵用暗号鍵Ｅｋｅｙａを使用して、データ用暗号鍵データ用暗号鍵Ｄｋｅｙを再生する。
【００５４】
次に、利用者がＨＤＤ１に新しいパスワードを設定するために、ホスト５１を介して、新たなパスワードNew Passwordを入力する。認証処理部３５７による認証処理により、新たなパスワードNew Passwordが認証用データとしてＨＤＤ１内に所定の方法で設定される。これは従来の方法でよい。その認証処理が正しく終了したことを受けて、一方向関数であるハッシュ関数３５１が、入力された新パスワードNew Passwordのハッシュ値Ｈ（ｐｗｎ）を生成する。
【００５５】
乱数ＲＳｘを更新するため、第１乱数生成器３５４が新たな乱数ＲＳｙを生成する。こ新たな乱数ＲＳｙは、磁気ディスク１１に保持される。さらに、排他的論理和演算器３５１が、新たなパスワードのハッシュ値Ｈ（ｐｗｎ）と新たなＲＳｙとの排他的論理和を実行する。その結果の値が、新たな鍵用暗号鍵Ｅｋｅｙｈとなる。鍵暗号化部３５５は、この更新された鍵用暗号鍵Ｅｋｅｙｈを使用して、データ用暗号鍵Ｄｋｅｙを暗号化する。
【００５６】
この暗号化されたデータ用暗号鍵Ｅ｛Ｅｋｅｙｈ、ＤＫｅｙ｝は、新たに磁気ディスク１１に保持される。以上の処理により、パスワードと乱数の更新とを同時に行うことができる。これにより、鍵用暗号鍵が更新され、磁気ディスク１１に保持する暗号化したデータ用暗号鍵も更新される。パスワードと乱数双方を更新することで、データ用暗号鍵ＤＫｅｙをより安全に管理することが可能となる。
【００５７】
上記例において、ＨＤＤ１は、その内部に一つのデータ用暗号鍵を保持している。しかし、安全性を高めるためには、データ記憶領域を複数のセグメントに分割し、各セグメントに対応したデータ用暗号鍵を使用することが好ましい。例えば、図１０（ａ）、（ｂ）に示すように、ＨＤＤ１は、磁気ディスク１１の各記録面に対応したデータ用暗号鍵を有する。図１０の例において、ＨＤＤ１は２枚の磁気ディスク１１ａ、１１ｂを有しており、各磁気ディスク１１ａ、ｂが、それぞれ二つの記録面１１１ａ〜１１１ｄを有している。
【００５８】
ＨＤＤ１は、各記録面１１１ａ〜１１１ｄに対して異なるデータ用暗号鍵Ｄｋｅｙ＿１〜Ｄｋｅｙ＿４を有している。さらに、各記録面１１１ａ〜１１１ｄに対して異なる鍵用暗号鍵Ｅｋｅｙ＿１〜Ｅｋｅｙ＿４が対応付けられている。従って、各記録面１１１ａ〜１１１ｄのそれぞれに対応する暗号化されたデータ用鍵は、Ｅ｛Ｅｋｅｙ＿１、ＤＫｅｙ＿１｝〜Ｅ｛Ｅｋｅｙ＿４、ＤＫｅｙ＿４｝となる。ＭＰＵ２３５は、リード及びライト処理において、対象となるユーザ・データが記憶される記録面に応じて、図２〜図９を参照して説明したように、対応する鍵用暗号鍵の生成及びデータ用暗号鍵の暗復号を行う。なお、典型的には、パスワードは、各セグメントに対して同一の値が使用される。なお、データ記録領域の分割方法は、上記例に限定されない。例えば、各記録面のゾーンをセグメントとして使用することができる。
【００５９】
以上のように、本実施形態によれば、ユーザ・データを暗号化し、また、そのための暗号鍵を適切に管理することで、磁気ディスク上のデータを直接アクセスすること等を含めて、ＨＤＤからのデータ漏洩を回避することが可能となる。さらに、データ用暗号鍵を暗号化することによって安全にデータ記憶装置内に保持し、利用することができる。また、暗号鍵の保持に関わるパラメータを任意に変更することができるので、常に暗号鍵を安全に保持し続けることができる。
【００６０】
以上、本発明を好ましい実施形態を例として説明したが、本発明が上記の実施形態に限定されるものではない。当業者であれば、上記の実施形態の各要素を、本発明の範囲において容易に変更、追加、変換することが可能である。例えば、本発明を、磁気ディスクと異なるメディアを有するデータ記憶装置に適用することができる。あるいは、データを記録あるいは再生のみ行うデータ記憶装置に適用することができる。この場合、暗号処理部は暗号化もしくは復号化のみ行う。
【００６１】
暗号化されたデータ暗号鍵などの必要なデータは、磁気ディスク以外の不揮発性メモリに格納しておいてもよい。上述の説明における乱数は、擬似乱数を含み、また、乱数を得るために乱数表を使用してもよい。なお、データ用暗号鍵や鍵用暗号鍵を生成するための内部データは、乱数に限定されるものではない。鍵用暗号鍵の生成に使用するパスワードは、認証処理に使用するパスワードと異なるデータでもよい。また、設計によっては、認証処理を省略することができ、パスワード以外の鍵生成外部データを使用して鍵用暗号鍵を生成することができる。
【図面の簡単な説明】
【００６２】
【図１】本実施形態に係るＨＤＤの全体構成を模式的に示すブロック図である。
【図２】本実施形態に暗号処理に関連する構成要素を模式的に示すブロック図である。
【図３】本実施形態ＨＤＤ内で、データ用暗号鍵ＤＫｅｙを最初に生成する処理、又はデータ用暗号鍵ＤＫｅｙの更新処理における、各工程もしくは各工程を実行する構成要素を示すブロック図である。
【図４】本実施形態ＨＤＤ内で、利用者がＨＤＤにパスワードを設定する処理における、各工程もしくは各工程を実行する構成要素を示すブロック図である。
【図５】本実施形態ＨＤＤ内で、パスワードが設定されたＨＤＤを利用者が使用する場合の、各工程もしくは各工程を実行する構成要素を示すブロック図である。
【図６】本実施形態ＨＤＤ内で、利用者がＨＤＤ１のパスワードを変更（更新）する処理における、各工程もしくは各工程を実行する構成要素を示すブロック図である。
【図７】本実施形態ＨＤＤ内で利用者がＨＤＤ１のパスワードを削除する場合における、各工程もしくは各工程を実行する構成要素を示すブロック図である。
【図８】本実施形態ＨＤＤ内で、乱数ＲＳｘ及びその乱数から生成する鍵用暗号鍵の更新処理における、各工程もしくは各工程を実行する構成要素を示すブロック図である。
【図９】本実施形態ＨＤＤ内で、パスワード及び乱数の更新を同時に実施する場合における、各工程もしくは各工程を実行する構成要素を示すブロック図である。
【図１０】本実施形態ＨＤＤ内で、データ記憶領域を複数のセグメントに分割し、各セグメントに対応したデータ用暗号鍵を使用する例を模式的に示す図である。
【符号の説明】
【００６３】
１  ハード・ディスク・ドライブ、１０  エンクロージャ、１１  磁気ディスク
１２  ヘッド・スライダ、１３  アーム・エレクトロニクス（ＡＥ）、
１４  スピンドル・モータ、１５  ボイス・コイル・モータ、１６  アクチュエータ
２０  回路基板、２１  ＲＷチャネル、２２  モータ・ドライバ・ユニット
２３  ＨＤＣ／ＭＰＵ、２４  ＲＡＭ、５１  ホスト、１１１ａ〜１１１ｄ  記録面
２３１  ホスト・インターフェース、２３２  ＥＣＣ処理部
２３３  メモリ・マネージャ、２３４  暗号処理部、２３５  ＭＰＵ
２４１  データ・バッファ、３５１  ハッシュ関数、３５２  排他的論理和演算器
３５３  第１乱数生成器、３５４  第２乱数生成器、３５５  鍵暗号化部
３５６  鍵復号化部、３５７  認証処理部
【図１】
2008245112.tif 000003
【図２】
2008245112.tif 000004
【図３】
2008245112.tif 000005
【図４】
2008245112.tif 000006
【図５】
2008245112.tif 000007
【図６】
2008245112.tif 000008
【図７】
2008245112.tif 000009
【図８】
2008245112.tif 000010
【図９】
2008245112.tif 000011
【図１０】
2008245112.tif 000012