データ記憶装置であって、安全な鍵が予め記録される不揮発性メモリであって、前記安全な鍵が、前記データ記憶装置の外部では読み出し不可能である不揮発性メモリと、ホスト装置からの書き込みコマンドの受信に応じて書き込み動作を実行するための手段であって、前記書き込みコマンドが、データおよびアドレスを指定する手段と、前記書き込み動作用のタイムスタンプを生成するための手段と、前記安全な鍵を用い、かつ少なくとも前記データおよび前記タイムスタンプを入力として用いて、ハッシュコードを生成するためのハッシュコード生成器と、前記タイムスタンプおよび前記ハッシュコードを、前記データに関連するメタデータとして記録するための手段と、を含むデータ記憶装置。前記ハッシュコード生成器が、前記ハッシュコードを生成する際に前記アドレスを用いる、請求項1に記載のデータ記憶装置。前記ホスト装置からの検証コマンドの受信に応じて検証動作を実行するための手段であって、前記検証コマンドが前記アドレスを指定し、前記検証動作が、前記データ、前記タイムスタンプおよび前記ハッシュコードを読み出すことと、前記データおよび前記タイムスタンプ用の新しいハッシュコードを計算することと、前記新しいハッシュコードが前記読み出されたハッシュコードと等しい場合には、検証の成功を報告することと、を含む手段をさらに含む、請求項1に記載のデータ記憶装置。前記タイムスタンプが、POSIXタイムスタンプであり、前記データ記憶装置が、前記データ記憶装置の製造時間を記録する原始記入を含むパワーオン時間POH対POSIX時間表と、前記データ記憶装置の前記製造時間より早い、前記ホスト装置からのどんなPOSIX時間も拒絶するための手段と、をさらに含む、請求項1に記載のデータ記憶装置。データ記憶装置を動作させる方法であって、前記データ記憶装置における不揮発性メモリの位置に安全な鍵を記録することであって、前記位置が、前記データ記憶装置の外部から読み出すためにはアクセスできないことと、ホスト装置からの書き込みコマンドの受信に応じて書き込み動作を実行することであって、前記書き込みコマンドがデータおよびアドレスを指定し、前記書き込み動作が、前記書き込み動作用のタイムスタンプを生成することと、前記安全な鍵を用い、かつ少なくとも前記データおよび前記タイムスタンプを入力として用いて、前記ハッシュコードを生成することと、前記タイムスタンプおよび前記ハッシュコードを、前記データに関連するメタデータとして記録することと、を含むことと、を含む方法。前記ハッシュコードを生成することが、前記ハッシュコードを生成する際に前記アドレスを用いることをさらに含む、請求項5に記載の方法。前記ホスト装置からの検証コマンドの受信に応じて検証動作を実行することであって、前記検証コマンドが前記アドレスを指定し、前記検証動作が、前記データ、前記タイムスタンプおよび前記ハッシュコードを記憶装置から読み出すことと、前記データおよび前記タイムスタンプ用の新しいハッシュコードを計算することと、前記新しいハッシュコードが前記読み出されたハッシュコードと等しい場合には、検証の成功を報告することと、を含むことをさらに含む、請求項5に記載の方法。前記タイムスタンプが、POSIXタイムスタンプであり、前記書き込み動作用に前記タイムスタンプを生成することが、パワーオン時間POH対POSIX時間をマップする表を用いることをさらに含む、請求項5に記載の方法。前記表が、最も早い許可されたPOSIX時間として用いられる前記データ記憶装置の製造時間を記録した記入を含む、請求項8に記載の方法。データ記憶装置であって、安全な鍵が予め記録された不揮発性メモリであって、前記安全な鍵が、前記データ記憶装置の外部では読み出し不可能である不揮発性メモリと、ホスト装置からの書き込みコマンドの受信に応じて書き込み動作を実行するための手段であって、前記書き込みコマンドが、データおよびアドレスを指定する手段と、前記書き込み動作用のタイムスタンプを生成するための手段と、暗号化された記録を生成する前記安全な鍵を用いて、前記データおよび前記タイムスタンプを暗号化するための暗号化関数と、前記暗号化された記録を前記アドレスに記録するための手段と、を含むデータ記憶装置。前記ホスト装置からの検証コマンドの受信に応じて検証動作を実行するための手段であって、前記検証コマンドが前記アドレスを指定し、前記検証動作が、前記アドレスにおける前記暗号化された記録を読み出すことと、前記安全な鍵を用いて、前記暗号化された記録を復号して前記データおよび前記タイムスタンプを検索することと、エラーが検出されない場合には検証の成功を報告することと、を含む手段をさらに含む、請求項10に記載のデータ記憶装置。前記タイムスタンプが、POSIXタイムスタンプであり、前記データ記憶装置が、前記データ記憶装置の製造時間を記録した原始記入を含むパワーオン時間POH対POSIX時間表と、前記データ記憶装置の前記製造時間より早い、前記ホスト装置からのどんなPOSIX時間も拒絶するための手段と、をさらに含む、請求項10に記載のデータ記憶装置。データ記憶装置を動作させる方法であって、前記データ記憶装置における不揮発性メモリの位置に安全な鍵を記録することであって、前記位置が、前記データ記憶装置の外部から読み出すためにアクセスできないことと、ホスト装置からの書き込みコマンドの受信に応じて書き込み動作を実行することであって、前記書き込みコマンドがデータおよびアドレスを指定し、前記書き込み動作が、前記書き込み動作用のタイムスタンプを生成することと、前記安全な鍵を用いて前記データおよび前記タイムスタンプを暗号化し、暗号化された記録を生成することと、前記暗号化された記録を前記アドレスに記録することと、を含むことと、を含む方法。前記ホスト装置からの検証コマンドの受信に応じて検証動作を実行することであって、前記検証コマンドが前記アドレスを指定し、前記検証動作が、前記アドレスにおける前記暗号化された記録を読み出すことと、前記安全な鍵を用いて、前記暗号化された記録を復号して前記データおよび前記タイムスタンプを検索することと、エラーが検出されない場合には検証の成功を報告することと、を含むことをさらに含む、請求項13に記載の方法。前記データ記憶装置が、複数のディスクドライブにおけるセクタのセット間にデータを分割するRAID記憶システムであって、前記セットにおけるいくつかのセクタがパリティデータだけを含み、前記検証動作を実行することが、前記セットにおける前記パリティデータだけを含むセクタを省略することをさらに含むRAID記憶システムである、請求項14に記載の方法。前記タイムスタンプが、POSIXタイムスタンプであり、前記書き込み動作用に前記タイムスタンプを生成することが、パワーオン時間POH対POSIX時間をマップする表を用いることをさらに含む、請求項13に記載の方法。前記表が、最も早い許可されたPOSIX時間として用いられる前記データ記憶装置の製造時間を記録した記入を含む、請求項16に記載の方法。本発明の実施形態は、記録データの生成または変更用のタイムスタンプの認証を、このサービスを安全に提供するように設計されたデータ記憶装置の使用を介して提供する。下記の実施形態はハードディスクドライブHDDであるが、しかし本発明は、フラッシュドライブなど、HDDに似た装置において実行することができる。HDDを介したタイムスタンプの認証は、より短くかつより知られた権威を含んだ潜在的により簡単な信用の連鎖という利点のみならず、より低いコスト初期資本支出および常時サービスの両方の利点も提供する。追加的な利点は、本発明によるHDDタイムスタンプが、ネットワーク中心の攻撃に対して脆弱性を有しないということである。本発明の実施形態は、書き込み動作が実行された時間を表す少なくとも1つのタイムスタンプを含む、各々記録されたデータユニットセクタなど用のメタデータを生成する。HDD自体が、安全な方法でタイムスタンピングを実行する。タイムスタンプは、データおよびタイムスタンプを用いて安全な動作すなわち、HDDだけが実行できる動作を実行することによって安全に作られる。安全な動作は、記憶装置に内蔵された安全な鍵を用い、装置の外部では読み出し不可能である。いくつかの実施形態において、安全な動作は、安全な鍵を用いた暗号化である。他の実施形態において、安全な動作は、少なくとも記録データおよびタイムスタンプを入力として用いてハッシュコードを生成するために、安全な鍵を用いるハッシュコード関数ハッシュベースメッセージ認証コードHMAC関数などである。次に、ハッシュコードは、データユニット用に記録されるメタデータに含まれる。実施形態のそれぞれにおいて、タイムスタンプは、検出されていない改ざんから保護されている。したがって、要求に応じて安全な関数を再計算することにより、装置によってユニットごとにタイムスタンプを認証することができる。認証情報は、ドライブから読み出されたデータが、タイムスタンプによって指定された特定の時間の、記録されたままの未変更のデータであるという証拠となる痕跡を提供する。図1は、ハッシュコードを用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。情報、コマンド、データ等が、通信インタフェース31を介して、ホストコンピュータ20とディスクドライブ50との間を行き来するが、通信インタフェース31は、現在用いられている先行技術インタフェースのいずれかを含む任意のハードウェアインタフェースとすることができる。ディスクドライブには、揮発性メモリ37および不揮発性メモリ35の両方にアクセスする汎用マイクロプロセッサ33が含まれる。マイクロプロセッサ33用のプログラムコードファームウェアは、揮発性メモリ37または不揮発性メモリ35のどちらかにおいて実行することができる。プログラムコードファームウェアは、EEpromなどの予めプログラムされたデバイス形態の不揮発性メモリ35で生じる。ディスクドライブ50は、別個のコントローラ39を含むように示されているが、しかし代替実施形態において、マイクロプロセッサは、通常はコントローラによって実行されるタスクのいくつかまたは全てを処理するように設計することができる。アームエレクトロニクス41、ボイスコイルモータVCM43、ディスク45、スピンドルモータ47およびヘッド46は、先行技術によるものである。ディスク45は、情報が記憶される薄膜媒体図示せずでコーティングされる。本発明の実施形態による記録データ102のユニットには、データ、POSIXタイムスタンプおよびハッシュコードが含まれる。ハッシュコードは、ハッシュ発生器101によって生成されるが、以下でさらに論じる。記録データのユニットは、ディスク45上に記憶され、かつそこから検索される。POH対POSIX表73は、以下でさらに論じるが、不揮発性メモリ35に記憶される。POH対POSIX表73は、1970年1月1日00:00:00UTC協定世界時以来経過した秒であるPOSIX時間に対してデバイスのパワーオン時間通電時間、POHをマップするために用いられる。図2は、暗号化関数を用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。データおよびタイムスタンプ102を暗号化するために暗号化関数99を用いるディスクドライブ51における本発明の実施形態を示す。ホストコンピュータとディスクドライブとの間で用いられる通信インタフェースIDE、SCSI、シリアルATA、ファイバチャネルアービトレーテッドループなどFC-AL等は、形式、すなわち、これを介してホストがコマンドおよびデータをディスクドライブに提供できる形式を定義する。本発明は、以下で説明する新しいコマンドに対して、限られた変更で、これらのシステムのいずれかの一般的な枠組み内で実行することができる。本発明による一変更によって、コンピュータが、データユニット、例えば1つまたは複数のセクタ用の認証情報の要求コマンドを送信するための方法が提供される。本発明の実施形態において、認証情報には、データ変更タイムスタンプの後でデータ内容が変更されていないという証拠を含むべきである。認証情報検証の要求は、本発明に従ってハードドライブにより実行される新しく定義されたコマンドを介して、ホストコンピュータによって送信することができる。ハードドライブの通信インタフェースおよびファームウェアは、新しいコマンドを実行するように変更することができる。検証要求の結果は、インタフェースを介してホストに返送することができる。いくつかの実施形態において、ドライブによって書き込まれた各データユニットの追加的なメタデータには、現在時間およびデータ識別子の非暗号化タイムスタンプと、別個の暗号的に保護/符号化されたハッシュと、が含まれる。データ識別子は、データを一意に識別すべきである。識別子は、論理ブロックアドレスLBAなどの仮想アドレス、またはHDDアーキテクチャによって決定される実際の物理アドレスとすることができる。HDDだけが安全な鍵を知っており、その結果、HDDだけがハッシュを生成するか、またはデータユニットおよびメタデータが変更されていないことを検証することができる。安全な鍵は、バルク暗号化用の鍵を生成するために用いられるような、先行技術の方法によって生成される。本発明用の用途の実例には、デスクトップコンピュータ、監視システムおよび中央公正証書サーバが含まれる。提供される認証データは、法廷においてまたは監査人にとって、文書、画像またはマルチメディアファイルが特定の時間に生成/保存されたという有用な証拠になるように意図されている。別の使用法は、ファイルに含まれるようなログが変更されなかったことを証明することであり得る。先行技術のファイルシステムは、ファイル全体に対する最後の変更時間を名目上維持するが、しかしかかるタイムスタンプは変更することができ、したがって安全ではない。本発明によれば、信頼できるタイムスタンプは、改竄することも、データの各原子ユニット例えばセクタに対するタイムスタンプの粒度を増加させることもできない。したがって、例えば、追記型ログは、単調に増加するセクタタイムスタンプを有するべきであり、この場合に、タイムスタンプは、ログに記録された最新のアプリケーションレベルの時間および最新のファイルシステム変更時間と一致する。図3は、ハッシュ関数を用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。ディスクドライブ50Aは、POSIXタイムスタンプ55および安全なハッシュコード57を含む追加メタデータと共に、データの各セクタ53をディスク媒体に書き込む。この実施形態において、追加メタデータは、ドライブによって実行される全ての書き込み動作において自動的に書き込まれる。POSIXタイムスタンプ55におけるビット数は、最大時間値を表すために十分に大きくなければならない。例えば、それは、便宜上、32または64ビットのどちらかにすることができる。先行技術の暗号法には、安全な秘密鍵と組み合わせて暗号ハッシュ関数を用い、メッセージ認証コードMACを計算するハッシュベースメッセージ認証コードHMAC関数が含まれる。MACを用いて、データ完全性およびメッセージ認証の両方を検証することができる。任意の暗号ハッシュ関数を、HMACの計算に用いることができる。この実施形態において、HMACは、タイムスタンプを信頼できるものにするために用いられ、HDDによる書き込み動作以外のどんな機構を介しても変更できない。ディスクドライブ50は、安全な鍵63と、セクタデータおよびセクタLBAこれらは、ホストコンピュータからの書き込みコマンド65において指定されるの連結であるメッセージと、現在のPOSIX時間69と、の入力と共にHMAC関数61を用いる。HMAC関数61の出力は、セクタ用のメタデータの一部として媒体に書き込まれる安全なハッシュ57である。セクタデータおよびメタデータは、1回の書き込み動作で書き込むことができるが、しかしまた、メタデータを別々に記憶することも可能である。LBAが、媒体に書き込まれるデータの一部ではなく、それが、ドライブによって用いられるセクタ用アドレスを指すことに留意されたい。したがって、セクタをどんな他のLBAに移動させることも、結果として、もはや有効でないハッシュコードをもたらす。しかしながら、LBAは、ドライブによって、物理シリンダ/ヘッド/セクタ位置に割り当てられる仮想アドレスである。物理シリンダ/ヘッド/セクタ位置ではなくLBAを用いることが有利である。なぜなら、ブロックが、ドライブの通常の機能の一部として不良であると判定された場合に、ドライブが、ブロックを再配置する必要があり得るからである。したがって、ドライブは、LBAが同じままである限り、データを移動させることができるが、しかし攻撃者は、データを移動させることができない。検証動作は、図3の右下部分に示されている。検証プロセスは、LBAを指定するホストからコマンドを受信することによって開始される。検証は、検証されたタイムスタンプを返す特別のコマンドに応じて実行する必要がある。通常、ユーザは、改竄が発生しなかったことと同様に、実際のタイムスタンプを知りたいと思う。ユーザは、タイムスタンプをドライブから直接受信したいと思うかもしれない。ホストのファイルシステムはまた、その現在のタイムスタンプそれは別個に維持され、安全ではないをドライブからの信頼できるタイムスタンプと比較する必要があり得る。典型的なホストのファイルシステムは、単にファイル単位でタイムスタンプを維持するだけだが、しかしドライブの信頼できるタイムスタンプは、各セクタ用に維持される。ファイルは、典型的には多くのデータセクタを含み、これらのセクタは、たとえ媒体上で隣接して配置されていなくてもよい。したがって、セクタ用の信頼できるタイムスタンプを用いるファイルシステムは、典型的には、複数のタイムスタンプを、最も最近の変更を反映する単一のタイムスタンプへ統合する必要がある。ホストから検証コマンドを受信した後で、セクタデータおよびPOSIXタイムスタンプが読み出されて75、HMAC関数77へ入力として伝達される。LBA67および安全な鍵63もまた、HMAC77用の入力として用いられる。安全なハッシュは、媒体から読み出されるが76、HMAC77には伝達されない。次に、再構成されたハッシュコードが、媒体から読み出されたハッシュコードと比較される78。2つが等しい場合には、ドライブは、セクタ用のPOSIXタイムスタンプが検証されたことを報告し、そうでなければ検証は失敗する79。HMACにおいて用いられる基礎となるハッシュ関数に依存して、安全なハッシュ57用の追加バイトが変わる。例えば、SHA-1として知られている標準的な暗号ハッシュ関数は、セクタ当たり20の追加バイトをもたらし、SHA-512ハッシュ関数は、セクタ当たり64バイトをもたらす。メタデータは、セクタデータ用に用いられる標準エラー検出およびエラー検出機構によってカバーすべきである。しかしながら、ドライブのアーキテクチャは、セクタデータとメタデータとの間の関連が明白で安全である限り、セクタ用のメタデータをセクタデータと別々に記憶できるように設計することができる。典型的なHDD装置が、現在時間を決定する独立した方法を有しないので、それは、現在のPOSIX時間71をHDDに通信するようにホストに頼らなければならない。安全な鍵63およびPOH対POSIX時間表73は、不揮発性メモリに記憶しなければならない。時間表73には、少なくとも1つの記入がなければならない。POHおよびPOSIX記入は、単調に増加している。変換処理の例として、TPOHを特定のPOHタイムスタンプとし、TPOSIXを対応するPOSIX時間とする。最初に、表においてPOHxを見つけることによってTPOSIXが得られるが、この場合に、POHxは、TPOHより小さいかまたは等しい。POHxが最後の表記入でない場合には、TPOHは、POHx1より小さい。POHxが最後の表記入である場合には、POHx1は存在しない。次に、TPOSIXが、次のように見つけられる。TPOSIX=時間xTPOH-POHx/Cここで、時間xは、POHxに対応する、前に計算されたPOSIX記入であり、Cは、特定のドライブ用にファームウェアによって固定された定数であり、かつ他の通常のドライブ機能用に必要とされる。鍵63および表73は、変更から保護されるべきだが、しかし少なくとも耐改竄性でなければならない。鍵63は、外部では読み出し可能であるべきではない。タイムスタンプは、安全なハッシュコードを生成したHDD装置によってだけ検証することができる。なぜなら、この装置だけが、検証に必要な安全な鍵を知っているからである。図4は、暗号化関数を用いる本発明の実施形態に係るディスクドライブの選択された構成要素の実例である。バルク暗号化能力を有するドライブにおいて、ディスクドライブ51Bの代替実施形態は、図4に示すような内蔵の暗号化関数を用いる。この実施形態において、HMAC関数は、暗号化/解読関数によって取って代わられる。媒体に書き込まれるデータセクタは、現在のPOSIXタイムスタンプ69と連結され、この連結されたユニットは、安全な鍵63を用いて、暗号化関数81によって処理される。次に、暗号化されたユニットは、暗号化されたセクタデータ53eおよび暗号化されたPOSIXタイムスタンプ55eを含み、媒体82に書き込まれる。検証プロセスは、アドレスLBAを指定するホストからコマンドを受信することによって開始され、暗号化されたユニット85を読み出し、次に、この暗号化されたユニット85は、安全な鍵63を用いて解読される。POSIXタイムスタンプ88の検証は、エラーのない読み出しを達成することからなる。CRCなどの標準的なエラーチェック法は、データおよびPOSIXタイムスタンプが変更されていないことを確認する。本発明の代替実施形態は、シングル書き込みを用いることができる。シングル書き込みでは、隣接トラックのバンドが、互いに重なり、特定の順序で書き込まれなければならない。重なっているトラックセットが書き込まれた後で、重なっているトラックを破壊することなく、適所において単一トラックを更新することはできない。したがって、シングル書き込みは、年代順ログまたは一度書き込まれると決して更新されないアーカイブにおいて追加的なセキュリティの利点を提供する。この実施形態は、本発明による信頼できるタイムスタンプを備えた文書の保存場所として、認定公証人には特に有用になり得る。この実施形態において、データ文書およびタイムスタンプの両方をシングル書き込みすることができる。別の代替実施形態において、媒体スペースは、単一のタイムスタンプが、最も最近に変更されたセクタにおける最後の変更時間を反映するように、セクタをまとめることによって節約される。本発明は、複数のディスクドライブにおけるセクタセット間にデータを分割するRAID記憶システムにおいて実行することができる。信頼できるタイムスタンプをRAID構成において用いる場合に、タイムスタンプは、システムの全てのドライブにおける全てのセクタ用に書き込まれる。しかしながら、タイムスタンプ検証のためには、本発明によるRAIDコントローラは、どのHDDおよびセクタが実際のデータすなわちパリティビットではないを含むかを知る必要があり、その実際のデータ用のタイムスタンプの検証だけを要求する。したがって、パリティデータだけを含むセットにおけるセクタは、検証動作から省略することができる。本発明によるシステムが、タイムスタンプを変更しようとする様々な予測し得る攻撃者にどのように耐えるかを考えることは有益である。例えば、ディスクが、一時的に取り出されて、安全でない装置に置き替えられた場合であっても、タイムスタンプは、もちろん破壊または破損される可能性があるが、安全な鍵についての知識なしでは、有効なタイムスタンプを生成することは不可能であろう。変更されたタイムスタンプは、ディスクが元の装置に戻された場合に、容易に検出されよう。別のタイプの攻撃は、例えば、不正な前のPOSIX時間をHDDに通信することによって、HDDをだまし、誤った現在時間を使用させることを伴う可能性がある。この可能性に対して防御するには、ドライブがタイムクロックの設定に制限を加えることを必要とする。先行技術のHDDにおけるPOSIX時間は、最新期間の終了前に設定することができない。なぜなら、パワーオン時間通電時間、POH対POSIX時間表は、重なり合う期間を可能にしないからである。その結果、追加的なセキュリティ手段なしであっても、セクタタイムスタンプを任意の前の時間に設定することは、HDDが電源を切られ、設定された人工的な時間の前に決して再び電源を入れられることがないので、実行するのが通常は困難である。別の形態の攻撃は、過去に全く用いられていない新しい対象HDDに、内容内容全体または少なくとも重要な部分をコピーすることであり得る。対象HDDにおけるPOSIX時間は、各セクタ用に所望のPOH対POSIX時間表および所望の不正タイムスタンプを生成するように戦略的に設定することが可能である。この攻撃に対する保護は、HDDの製造時間を記録するPOH対POSIX時間表における原始記入の設定である。そうなら、HDDは、この製造時間より早いホストからのどんなPOSIX時間も拒絶し、したがって、これは、そのHDDに設定できる最も早い不正時間に対するバリアを提供する。安全な鍵を発見できなくすることは、本発明の実行において重要である。したがって、好ましくは、鍵は、同様にはるかに大きな機能を扱うASIC上に統合される。すなわち、鍵は、複雑な集積回路内に埋め込まれる。これは、差動電力解析または物理的分解を介して安全な鍵を発見する試みを妨げる。パッケージングが破壊されるか、さもなければ明らかに不正に手を加えられた場合には、ドライブは、タイムスタンプを検証できないか、または不正に手を加えられたゆえに信頼できないと判定することができる。非破壊分析は、全てのプロセスが含まれるので、非常に困難であろう。特定の実施形態に関連して本発明を説明したが、しかし本発明による技術に対する変更、他の使用法または用途が、当業者には明らかであろう。