(57)【要約】【課題】  新規且つ改善された、記憶装置の耐タンパー方法及び装置を提供することを目的とする。【解決手段】  装置内で使用されるソフトウェアを認証するための方法（６００）は、当該装置に入力されるソフトウェアを、秘密鍵によって暗号化すること（６１０）と、当該装置に与えられる該ソフトウェアを、当該装置によるアクセスが可能なメモリから読み出した公開鍵を用いて、当該装置において復号すること（６１２）とを含む認証方法である。【選択図】      図６
2009163701.tif 000002
【特許請求の範囲】
【請求項１】
装置内で使用されるソフトウェアの認証方法であって、
ディスクドライブに入力されるソフトウェアを秘密鍵で暗号化することと、
前記装置と通信を行うメモリから読み出した公開鍵を用いて、当該ソフトウェアを前記装置において復号することと、
を備える認証方法。
【請求項２】
すでに暗号化されたソフトウェアの復号と一致する、前記装置に入力されるソフトウェアを実行すること、を更に備える請求項１に記載の方法。
【請求項３】
前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記ソフトウェアの実行を許可しないことと、
を更に備える請求項１に記載の方法。
【請求項４】
前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記装置に関する集積回路に付随する少なくとも一つのスキャンポートを無効化することと、
を更に備える請求項１に記載の方法。
【請求項５】
前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記装置に関する集積回路に付随するほぼ全てのスキャンポートを無効化することと、
を更に備える請求項１に記載の方法。
【請求項６】
復号されたソフトウェアと、前記装置に与えられたソフトウェアとを比較することと、
前記ソフトウェアをロードすることと、
前記ロードされたソフトウェアを実行することと、
を更に備える請求項１に記載の方法。
【請求項７】
前記ソフトウェアは、前記装置に関するハードウェア素子に組み込まれる命令のセットを含むファームウェアである、請求項１に記載の方法。
【請求項８】
前記装置はディスクドライブである、請求項１に記載の方法。
【請求項９】
装置の操作に用いられるファームウェア上のハッシュコードを決定することと、
秘密鍵を用いて前記決定されたハッシュコードを暗号化することと、
前記装置にアクセス可能なメモリに公開鍵を記憶することと、
前記装置に与えられたファームウェアの実行前に、前記装置に与えられたファームウェアのハッシュコードを決定することと、
前記ファームウェアのすでに暗号化されたハッシュコードを復号することと、
前記復号されたハッシュコードを、前記装置上での実行のために与えられたファームウェアのハッシュコードと比較することと、
を備える方法。
【請求項１０】
前記復号されたハッシュコードが、前記装置上での実行のため与えられたファームウェアのハッシュコードと一致する場合、前記装置に与えられた前記ファームウェアを前記装置によってロードし実行することが認められる、請求項９に記載の方法。
【請求項１１】
前記復号されたハッシュコードが、前記装置上での実行のため与えられたファームウェアのハッシュコードと一致しない場合、前記装置に与えられた前記ファームウェアを前記装置によってロードし実行することは防止される、請求項９に記載の方法。
【請求項１２】
前記装置は集積回路である、請求項９に記載の方法。
【請求項１３】
集積回路であって、
プロセッサと、
前記プロセッサに通信可能に接続される読み出し専用メモリと、
前記集積回路に付随する可視ポートであって、前記集積回路は前記プロセッサ及び前記読み出し専用メモリに関する情報を該可視ポートに提供することが可能であり、前記読み出し専用メモリは少なくとも暗号情報の部分を含む可視ポートと、
前記プロセッサの暗号動作中、前記可視ポートをマスクする可視ポート無効化手段と、
を備える集積回路。
【請求項１４】
前記読み出し専用メモリの前記部分は暗号情報を含み、当該暗号情報は、
エントリベクトルと、
イグジットベクトルであって、前記可視ポート無効化手段は、前記エントリベクトルが要求された時間と前記イグジットベクトルが実行される時間との間、前記可視ポートをマスクする、イグジットベクトルと、
を含む請求項１３に記載の集積回路。
【請求項１５】
コンピュータ読み取り可能なメディアであって、コンピュータによって実行された場合に、当該コンピュータに、
ソフトウェアコードが入力ポートに提供されていると判断することと、
前記ソフトウェアコードを認証する認証ルーチンを有効化することと、
を行わせる命令を提供する、コンピュータ読み取り可能なメディア。
【請求項１６】
コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したら出力ポートを無効化すること、を当該コンピュータに行わせる命令を更に備える、請求項１５に記載のコンピュータ読み取り可能なメディア。
【請求項１７】
コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したら出力ポートをマスクすること、を当該コンピュータに行わせる命令を更に備える、請求項１５に記載のコンピュータ読み取り可能なメディア。
【請求項１８】
コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したらソフトウェアコードの実行を当該コンピュータに阻止させる命令を更に備える、請求項１５に記載のコンピュータ読み取り可能なメディア。
【発明の詳細な説明】
【技術分野】
【０００１】
本明細書中に述べられる様々な実施形態は、記憶装置の耐タンパー(tamper resistant)性をより向上させることに関連する装置、システム及び方法に関する。
【背景技術】
【０００２】
ディスクドライブは、情報記憶装置である。ディスクドライブは回転スピンドルに固定された１枚以上のディスクと、それぞれのディスクの表面からデータを表す情報を読み出すための、及び／又は、それぞれのディスクの表面にデータを書き込むための、少なくとも一つのヘッドを含む。ディスクドライブはまた、１又は複数のディスクの選択されたデータトラック上での１又は複数のトランスデューシングヘッド(transducing head)の位置決めのために、直線運動又は回転運動を用いるアクチュエータを含む。回転アクチュエータは、回転中のディスクの表面をトランスデューシングヘッドにスウィープ(sweep)させるピボットポイント(pivot point)にスライダを連結し、スライダ上には、トランスデューシングヘッドが取り付けられているか、又は一体形成されている。回転アクチュエータは、ボイスコイルモータ(voice coil motor)によって駆動される。データの記憶は、ディスク上のトラックの各部への、データを表す情報の書き込みを含む。データの検索は、データを表す情報が記憶されたトラックの一部分からの、データを表す情報の読み出しを含む。
【０００３】
ディスクドライブ情報記憶装置は、ディスクドライブの動作の全側面を制御する制御システムを採用している。この制御システムは、読み出し動作中、書き込み動作中、及びシーク(seek)中のトランスデューシングヘッドの位置から、ホストコンピュータからのコマンドの受信、当該ホストへのデータの送信、及びコマンドが完了した時点の表示にいたるまでの全てを制御する。制御システムは、データの読み出し及び書き込みのため、トランスデューシングヘッドの位置を正確に定めるために用いられるサーボ制御システム(servo control system)すなわちサーボループ(servo loop)を含む。制御システムは、ディスクドライブの特定の機能を実行する専用のコントローラをいくつか含んでもよい。
【０００４】
長い期間をかけて、集積回路はより小さく、かつますます複雑になってきた。技術が進歩するにつれて、より多くの個々のゲートが１集積回路に設置され得るようになった。加えて、制御機能の多くが集積回路内に設置され得るようになった。現在の技術による集積回路が、先年の集積回路のいくつかに取って代わることもある。電子部品はより複雑化したため、生産される部品が良好であることを保証するための種々のテスト方法が必要とされた。電子部品の１テスト方法としては、バウンダリスキャン(boundary scan)の使用を含むものがある。Joint Test Action Group（ＪＴＡＧ）はバウンダリスキャンの標準規格であり、ＩＥＥＥ／ＡＮＳＩ  １１４９．１−１９９０に見られ、主として集積回路レベルで適用される設計ルールの集合である。ＪＴＡＧ規格は、バウンダリスキャンを使ったプリント基板のテストに用いられる、テストアクセスポート(test access port)用のStandard Test Access Port and Boundary-Scan Architectureと名づけられている。
【０００５】
ＪＴＡＧは、製造後の実装済みの集積回路をテストする方法を開発するために、１９８５年に結成された工業グループである。当時は、多層構造の基板及び非リードフレームＩＣ(non-lead-frame IC)が標準となりつつあり、ＩＣ間の接続はプローブでは利用できないようになっていた。回路基板の分野及び製造における欠陥の大部分は、基板上のはんだ接合、基板接続の不完全性、あるいはＩＣパッドからピンリードフレーム(pin lead frame)へのボンド(bond)及びボンドワイヤ(bond wire)によるものであった。ＪＴＡＧでは、一つのＩＣパッドから他を見るとピン配列が見られるようになっていたため、これらの欠陥の全てが発見可能であった。工業規格は、初期の利用から幾年もの後、ＩＥＥＥ std. １１４９．１−１９９０として、１９９０年に最終的にＩＥＥＥ規格となった。プロセッサ(processor)もまた、ＪＴＡＧ規格向けに設計された。１９９４年には、規格に対してバウンダリスキャン記述言語(boundary scan description language)（ＢＳＤＬ）を加える追補がＪＴＡＧに対して追加された。これ以降、この規格は世界中で電子技術企業に採用されている。バウンダリスキャンは現在では、ＪＴＡＧとほとんど同義である。
【０００６】
ＪＡＴＧは現在、主として集積回路のサブブロック(sub-block)にアクセスするために用いられ、また、組み込みシステムをデバッグするため、及び使い勝手のよい「バックドア(back door)」をシステムへ提供するための機構としても有用である。デバッグ用ツールとして用いられる場合は、ＪＴＡＧインタフェースを介して、プロセッサあるいはＣＰＵに組み込まれたオンチップデバッグモジュール(on-chip debug module)にプログラマがアクセスするのをインサーキットエミュレータ(in-circuit emulator)（ＩＣＥ）が可能とするが、このＩＣＥは転送機構としてＪＴＡＧを順に用いるものである。デバッグモジュールは、プログラマによる組み込みシステムのソフトウェアのデバッグを可能にする。
【０００７】
ＪＴＡＧは、不利な面も有する。使い勝手のよい「バックドア」を組み込みシステムのデバッグのために提供するということはまた、ディスクドライブの各種機能を制御するために実行されるソフトウェアとファームウェアの命令を、競合者が調べるにも使い勝手のよい方法を与える。
【０００８】
トレースポート(trace port)を有するＩＣもある。トレースポートは、別の有用なデバッグ用ツールであるが、これは、内蔵プロセッサの動作についての情報が高速で利用可能なためである。これは、プロセッサが何を実行しているか、及び何のデータがプロセッサから及びプロセッサへ流れているかの開発者等によるトレースを、ほぼリアルタイムで可能とする。ＪＴＡＧは、ＡＳＩＣやチップ上のシステム(system on a chip)（ＳｏＣ）といった集積回路の内部構造を、選択された時に調べるための方法を与える。調査はプロセッサの停止後にのみ行われるため、ＪＴＡＧポートの使用は低速である。トレースポートがもたらすのは、プロセッサがコマンドを実行している間、プロセッサが何を行っているかを、プロセッサに干渉することも減速させることもなく観察する能力である。
【発明の開示】
【発明が解決しようとする課題】
【０００９】
そこで、本発明は、新規且つ改善された、記憶装置の耐タンパー方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【００１０】
本発明は以下の態様を含む。
【００１１】
（１）装置内で使用されるソフトウェアの認証方法であって、
ディスクドライブに入力されるソフトウェアを秘密鍵で暗号化することと、
前記装置と通信を行うメモリから読み出した公開鍵を用いて、当該ソフトウェアを前記装置において復号することと、
を備える認証方法。
【００１２】
（２）すでに暗号化されたソフトウェアの復号と一致する、前記装置に入力されるソフトウェアを実行することを、更に備える（１）に記載の方法。
【００１３】
（３）前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記ソフトウェアの実行を許可しないことと、
を更に備える（１）に記載の方法。
【００１４】
（４）前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記装置に関する集積回路に付随する少なくとも一つのスキャンポートを無効化することと、
を更に備える（１）に記載の方法。
【００１５】
（５）前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記装置に関する集積回路に付随するほぼ全てのスキャンポートを無効化することと、
を更に備える（１）に記載の方法。
【００１６】
（６）復号されたソフトウェアと、前記装置に与えられたソフトウェアとを比較することと、
前記ソフトウェアをロードすることと、
前記ロードされたソフトウェアを実行することと、
を更に備える（１）に記載の方法。
【００１７】
（７）前記ソフトウェアは、前記装置に関するハードウェア素子に組み込まれる命令のセットを含むファームウェアである、（１）に記載の方法。
【００１８】
（８）前記装置はディスクドライブである、（１）に記載の方法。
【００１９】
（９）装置の操作に用いられるファームウェア上のハッシュコードを決定することと、
秘密鍵を用いて前記決定されたハッシュコードを暗号化することと、
前記装置にアクセス可能なメモリに公開鍵を記憶することと、
前記装置に与えられたファームウェアの実行前に、前記装置に与えられたファームウェアのハッシュコードを決定することと、
前記ファームウェアのすでに暗号化されたハッシュコードを復号することと、
前記復号されたハッシュコードを、前記装置上での実行のために与えられたファームウェアのハッシュコードと比較することと、
を備える方法。
【００２０】
（１０）前記復号されたハッシュコードが、前記装置上での実行のため与えられたファームウェアのハッシュコードと一致する場合、前記装置に与えられた前記ファームウェアを前記装置によってロードし実行することが認められる、（９）に記載の方法。
【００２１】
（１１）前記復号されたハッシュコードが、前記装置上での実行のため与えられたファームウェアのハッシュコードと一致しない場合、前記装置に与えられた前記ファームウェアを前記装置によってロードし実行することは防止される、（９）に記載の方法。
【００２２】
（１２）前記装置は集積回路である、（９）に記載の方法。
【００２３】
（１３）前記装置は、トレースポートを更に含む集積回路であり、前記トレースポートを無効化することを更に備える、（１１）に記載の方法。
【００２４】
（１４）前記装置は、ＪＴＡＧポートを更に含む集積回路であり、前記ＪＴＡＧポートを無効化することを更に備える、（１１）に記載の方法。
【００２５】
（１５）前記集積回路はアプリケーション専用集積回路である、（１２）に記載の方法。
【００２６】
（１６）前記集積回路は、ディスクドライブの複数の機能を扱うアプリケーション専用集積回路である、（１２）に記載の方法。
【００２７】
（１７）集積回路であって、
プロセッサと、
前記プロセッサに通信可能に接続される読み出し専用メモリと、
前記集積回路に付随する可視ポートであって、前記集積回路は前記プロセッサ及び前記読み出し専用メモリに関する情報を該可視ポートに提供することが可能であり、前記読み出し専用メモリは少なくとも暗号情報の部分を含む可視ポートと、
前記プロセッサの暗号動作中、前記可視ポートをマスクする可視ポート無効化手段と、
を備える集積回路。
【００２８】
（１８）前記読み出し専用メモリの前記部分は暗号情報を含み、当該暗号情報は、
エントリベクトルと、
イグジットベクトルであって、前記可視ポート無効化手段は、前記エントリベクトルが要求された時間と前記イグジットベクトルが実行される時間との間、前記可視ポートをマスクする、イグジットベクトルと、
を含む、（１７）に記載の集積回路。
【００２９】
（１９）コンピュータ読み取り可能なメディアであって、コンピュータによって実行された場合に、当該コンピュータに、
ソフトウェアコードが入力ポートに提供されていると判断することと、
前記ソフトウェアコードを認証する認証ルーチンを有効化することと、
を行わせる命令を提供する、コンピュータ読み取り可能なメディア。
【００３０】
（２０）コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したら出力ポートを無効化すること、を当該コンピュータに行わせる命令を更に備える、（１９）に記載のコンピュータ読み取り可能なメディア。
【００３１】
（２１）コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したら出力ポートをマスクすること、を当該コンピュータに行わせる命令を更に備える、（１９）に記載のコンピュータ読み取り可能なメディア。
【００３２】
（２２）コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したらソフトウェアコードの実行を当該コンピュータに阻止させる命令を更に備える、（１９）に記載のコンピュータ読み取り可能なメディア。
【発明の効果】
【００３３】
本発明によれば、新規且つ改善された、記憶装置の耐タンパー方法及び装置を提供することができる。
【発明を実施するための最良の形態】
【００３４】
図４は、本発明の一実施形態による、装置４００の概略図である。装置４００は、ファームウェア４１０を含む。ファームウェア４１０又はファームウェア４１０の一部は、暗号化されている。ファームウェア４１０はまた、同様の暗号化の結果物を生成するために用いられてもよい。例えば、ファームウェアのハッシュが秘密鍵を用いて暗号化されてもよい。秘密鍵は製造者によって保持され、一般には製造者によって私的にあるいは秘密に保たれる。公開鍵は、ファームウェア４１０又はファームウェア４１０の一部の復号化に用いられる。公開鍵は、装置４００のメモリ４２０に記憶される。装置によっては、ファームウェア４１０及び公開鍵を保持するメモリ４２０がどちらも、集積回路４３０の一部（点線の囲みで表されている）をなすこともある。
【００３５】
装置４００が起動すると、あるいはファームウェアが装置４００に提供されると、公開鍵はメモリ４２０から読み出され、ファームウェア４１０又はファームウェア４１０の一部の復号に用いられる。ファームウェアの一部又はハッシュのようなファームウェアの結果物が公開鍵を用いて復号されると、これはファームウェア部又は装置上のファームウェアのハッシュのようなファームウェア結果物と比較され、ファームウェアの信頼性が定められる。このような一般的なスキームは、どのようなタイプの装置にも用いることができる。このタイプの装置及びこの方法を用いることができる装置タイプの例としては、ディスクドライブ装置があり、以下で詳細に論じられる。この装置は、装置あるいは装置の一部の駆動又は制御に用いられるソフトウェア（ファームウェアとも呼ばれる）を使用するどのような装置であってもよいことには留意が必要である。
【００３６】
図１は、本発明の様々な実施形態を用いるディスクドライブ１００の分解図である。ディスクドライブ１００は、ハウジングベース(housing base)１０４とハウジングカバー(housing cover)１０６を含むハウジング(housing)１０２を有する。図示されたハウジングベース１０４はベースキャスティング(base casting)であるが、他の実施形態においては、ハウジングベース１０４は、ディスクドライブ１００の組み立てに先立って、あるいは組み立て中に組み立てられる別個の要素を備えてもよい。ディスク１２０は、スピンドルモータ(spindle motor)によって回転されるハブ(hub)すなわちスピンドル(spindle)１２２に取り付けられる。ディスク１２０は、クランプ(clamp)１２１によってハブあるいはスピンドル１２２に取り付けられ得る。ディスクは、一定のレート、もしくは毎分３６００未満から１５０００回転より大きい値にわたる範囲の可変レートで回転させられてもよい。より高速な回転速度も将来には予想されている。スピンドルモータはハウジングベース１０４に接続される。ディスク１２０は、軽アルミ合金、セラミック／ガラス又は他の適当な基板から製造可能で、ディスクの片面又は両面に磁性材料が沈着されている。磁性層は、トランスデューシングヘッド１４６を介して転送されるデータを記憶するための磁化の小領域を含む。トランスデューシングヘッド１４６は、ディスク１２０からデータを読み出し、ディスク１２０にデータを書き込むよう構成された磁気トランスデューサ(magnetic transducer)を含む。他の実施形態では、トランスデューシングヘッド１４６は、別個の読み出し素子と書き込み素子を含む。例えば、この別個の読み出し素子は、ＭＲヘッドとしても知られる磁気抵抗ヘッドであってもよい。多数のヘッド１４６による構成も用いられ得ることも理解される。トランスデューシングヘッド１４６は、スライダ１６５に付随する。
【００３７】
回転アクチュエータ１３０は、ベアリング１３２によってハウジングベース１０４に軸支されて取り付けられ、ディスク１２０の内径(ＩＤ)と、ディスク１２０の外径(ＯＤ)付近に位置するランプ(ramp)１５０との間を、弧を描いてスウィープする。ハウジングベース１０４に取り付けられるのは、上部及び下部磁気リターンプレート(magnet return plate)１１０と少なくとも１つの磁石であり、ボイスコイルモータ(voice coil motor)(ＶＣＭ)１１２の静止部を共に形成する。ボイスコイル(voice coil)１３４は、回転アクチュエータ１３０に取り付けられ、ＶＣＭ１１２のエアギャップ(air gap)に位置する。回転アクチュエータ１３０は、ボイスコイル１３４に電流が流されるとベアリング１３２を軸にして回転し、電流の向きが逆転すると逆方向に回転して、ディスク１２０に対するアクチュエータ１３０の位置及び取り付けられたトランスデューシングヘッド１４６の制御を可能とする。ＶＣＭ１１２は、サーボシステム(servo system)(図４に示す)に連結されるが、このサーボシステムは、トランスデューシングヘッド１４６によってディスク１２０から読み出された位置決めデータを用いて、ディスク１２０の複数のトラックのうちの一つ上でのトランスデューシングヘッド１４６の位置を決定する。サーボシステムは、ボイスコイル１３４に流すのに適切な電流を決定し、電流ドライバ及び関連する回路(図４に示す)を用いて、ボイスコイル１３４に電流を流す。実施形態によっては、二つの別個の素子を有するトランスデューシングヘッドもあるということには留意が必要である。一つの素子は、データを表す情報の読み出し、及び位置情報すなわちサーボ情報(servo information)の読み出しのためのものである。この素子は読み出し素子として知られる。他方の素子は、これらの実施形態においては、データを表す情報の書き込みのためのものであり、書き込み素子として知られている。このようなトランスデューシングヘッドの一例として、磁気抵抗(ＭＲ)トランスデューシングヘッドがある。
【００３８】
ディスク１２０のそれぞれの面について、関連するヘッド１４６があり得、これらのヘッド１４６がそろって回転するように、ヘッド１４６は回転アクチュエータ１３０にまとめて結合される。
【００３９】
サーボシステムの一つのタイプは組み込みのサーボシステムであり、データを表す情報の記憶に用いられるそれぞれのディスク表面上のトラックは、サーボ情報の小セグメント(segment)を含む。サーボ情報はこの実施形態では、２つのセクションに書き込まれる。ディスクドライブ内のディスク１２０、１２０´のそれぞれは、情報を記憶し得る２つの表面を有する。ディスク１２０、１２０´のこれらの表面のうちの一つ５２０が図１に示されている。外径上の複数のスポーク(spoke)は、１つのスポーク１２８によって代表され、ディスク１２０の外部ゾーン(outer zone)周りにほぼ等間隔で配置されている。内径上の複数のスポークは、１つのスポーク１２７によって代表され、ディスク１２０の内部ゾーン(inner zone)周りにほぼ等間隔に配置されている。実際には、図１に示すよりも更に多数のサーボウェッジが存在し得るということは留意されるべきである。サーボウェッジ１２８、すなわち外径におけるスポークの内容は、図３及び図３に関連する議論によって更に詳細に説明される。
【００４０】
ディスク１２０はまた、複数のトラックを各ディスク表面上に有する。複数のトラックのうちの１つ、例えばトラック１２９が、ディスク１２０の表面５２０上にある。サーボウェッジ１２８は、ディスク１２０上で、トラック１２９のような複数のトラックを横切る。複数のトラックは、実施形態によっては、ほぼ同心の円のセットとして配置されてもよい。データは、埋め込まれたサーボウェッジ１２７、１２８間のトラックに沿った固定セクタに記憶される。ディスク１２０上のトラックはそれぞれ、複数のデータセクタ(data sector)を含む。具体的には、データセクタは、固定ブロック長と固定データ記憶容量(例えば、１データセクタにつき５１２バイトのユーザデータ)とを有するトラックの一部である。ディスク１２０の内側に近いトラックは、ディスク１２０の外周に近いトラック程の長さを有しない。結果として、ディスク１２０の内側に近いトラックは、ディスク１２０の外周に近いトラック程多くのデータセクタを保持できない。同数のデータセクタを保持可能なトラックは、データゾーン(data zone)としてグループ化される。密度とデータレート(data rate)はデータゾーンからデータゾーンへ変動するため、サーボウェッジ１２８は、少なくともいくつかのデータセクタを遮り、分断することもある。サーボセクタ１２８は通常、工場においてサーボ書き込み装置(サーボライタ(servo-writer)と呼ばれる)によって記録されるが、ディスクドライブ１００のトランスデューシングヘッド１４６によって、セルフサーボライティング(self-servowriting)動作で書き込まれて(又は部分的に書き込まれて)もよい。
【００４１】
図２は、本明細書で説明される実施形態の一例による、ほとんど組み立てられたディスクドライブの斜視図である。説明のため、ハウジングカバー１０６は取り除かれている。実施形態によっては、ディスクドライブ１００は、磁気記録再生装置(ハードディスクドライブ)である。ディスクドライブハウジングベース１０４は、シャシー(chassis)の役割を果たす。シャシーすなわちハウジングベース１０４に取り付けられるのは、磁気ディスク１２０と、読み出しヘッド及び書き込みヘッドを含むトランスデューシングヘッド１４６である。トランスデューシングヘッド１４６は、スライダ１６５上に位置する。読み出しヘッドと書き込みヘッドはスライダ１６５内及びその一端に、それぞれ形成される。スライダ１６５は、ヘッドサスペンションアッセンブリ(head suspension assembly)１６６によってアクチュエータに取り付けられる。ヘッドサスペンションアッセンブリ１６６は、サスペンションと、ディスク１２０の表面に対して変換関係にあるヘッドスライダ１６５を支持するアクチュエータアーム１６４を含む。また、ハウジングベース１０４すなわちシャシーに取り付けられているのは、プリント基板(ＰＣＢ)４２００（図４に概略的に示される）である。
【００４２】
磁気ディスク１２０は、離散トラックメディア(discrete track media)である。磁気ディスク１２０は、スピンドルモータによって回転されるスピンドル１２２上に取り付けられ、スピンドルモータは通常、ハブすなわちスピンドル１２２内に取り付けられている。様々なデジタルデータが磁気ディスク１２０上に記録される。実施形態によっては、データは、ディスク１２０の主表面に平行な磁気転移によって記録される。一方、他の実施形態では、磁気転移はディスク１２０の主表面に垂直である。実施形態によっては、ヘッドスライダ１６５に内蔵される磁気ヘッドは、単極構造(single pole structure)の書き込みヘッドと遮蔽ＭＲ読み出し素子(ＧＭＲフィルムやＴＭＲフィルム等)を用いる読み出しヘッドとを含む、いわゆる統合ヘッドである。ボイスコイルモータ(ＶＣＭ)１１２は、ヘッドサスペンションアッセンブリをピボットポイント１３１回りで駆動して、磁気ディスク１２０の半径方向での磁気ヘッド１４６の位置を定める。回路基板（図示せず）は、ボイスコイルモータ(ＶＣＭ)１１２の駆動信号と、磁気ヘッド１４６によって行われる読み出し及び書き込み動作を制御する制御信号とを生成するＩＣを備える。
【００４３】
図３は、実施形態の一例による、ディスク１２０の一部及び少なくとも一つのサーボウェッジ１２８を示す。図３では、サーボウェッジ１２８について更なる詳細が論じられ、ディスク１２０の表面上の複数のトラックが示される。各サーボウェッジ１２８は、磁化の領域として記憶された情報を含む。サーボウェッジ１２８は長手方向に磁化され得る(例えば、図３の磁化された部分では、サーボパターン(servo pattern)２００は、左向きに磁化されたクロスハッチされたブロックと、右向きに磁化された余白とを含み、あるいは逆の場合もある)。あるいはサーボウェッジ１２８は、直角方向に磁化されてもよい(例えば、クロスハッチされたブロックは上向きに磁化され、余白は下向きに磁化され、あるいは逆の場合もある)。各サーボウェッジ１２８に含まれるサーボパターン２００は、回転するディスク１２０がトランスデューシングヘッド１４６の下を通過すると、トランスデューシングヘッド１４６によって読み出される。サーボパターン２００は、データフィールド２６４に含まれるデータセクタを識別する情報を含むことができる。例えば、サーボパターン２００は、プリアンブル(preamble)２０２、サーボアドレスマーク(servo address mark)（ＳＡＭ）２０４、トラック識別番号(track identifying number)２０６等のデジタル情報を含むことができる。サーボパターン２００はまた、サーボバースト(servo burst)のセットを含む。図３に示すように、サーボサーストのセットは、Ａサーボバースト、Ｂサーボバースト、Ｃサーボバースト、及びＤサーボバーストを含む。ＡサーボバーストとＢサーボバーストの間にサーボバーストエッジ(servo burst edge)２１０があり、ＣサーボバーストとＤサーボバーストの間にサーボバーストエッジ２２０がある。図示されたパターンは、直交型のパターンである。実施形態によっては、ディスクドライブは、各サーボウェッジ１２８に、各タイプのサーボバーストの単一列を有する。各列はディスクの放射部(radial)に対応する。この実施形態に示すように、Ａ，Ｂ，Ｃ及びＤサーボバーストによる２列があって、実施形態によってはこれが用いられる。実施形態によっては、サーボウェッジ１２８は、ウェッジ番号(wedge number)等の他の情報も含む。これはインデックスウェッジ(wedge #0)を指定するためのシングルビットであってもよい。あるいはＳＡＭが別のパターン(サーボインデックスマーク、すなわちＳＩＭと呼ばれる)に置き換えられてもよく、また、ウェッジはウェッジ番号の低次の数ビット、あるいは完全なウェッジ番号を含んでもよい。サーボバーストには、ヌルパターン(null pattern)等の多くの異なるパターンがある。
【００４４】
このパターンは４つのサーボバーストを示すが、ディスク上にＡＢ及びＣＤサーボバーストの放射直線を作り出すため、サーボウェッジ１２８のようなディスク上の各サーボウェッジにおいて、列として繰り返されてもよいことが理解される。サーボバーストパターンは結果として、Ａ及びＢサーボバーストの間のサーボバーストエッジ２１０と、Ｃ及びＤサーボバーストの間のサーボバーストエッジ２２０をヌルパターンでは与える。実施形態によっては、ディスク１２０は磁気ディスク以外であってもよい。このような場合、サーボウェッジ１２８は、光学徴表(optical indicia)等、他の徴表(indicia)を含むことができる。
【００４５】
図５は、実施形態の一例による、ディスクドライブの集積回路５００の概略図を示す。集積回路５００は、ディスクドライブ１００の電子部の一部をなす。集積回路５００は、上述の図４に関して論じられた１以上の機能を行うことができる。集積回路がより一般に能力を増すと、集積回路５００のような集積回路は、ディスクドライブに付随する複数の機能を行うようになる。実施形態によっては、集積回路５００は、ディスクドライブに関するほとんど全ての機能を行ってもよい。
【００４６】
図５に示すように、集積回路５００は、数種類のメモリに加えて、中央処理演算装置(central processing unit)５１０を含む。集積回路５００に搭載されるメモリは、読み出し専用メモリ（“ＲＯＭ”）５２０、ランダムアクセスメモリ（“ＲＡＭ”）５２２、及びダイナミックランダムアクセスメモリ（“ＤＲＡＭ”）５２４を含む。集積回路５００はまた、シリアルＡＴＡ(Serial Advanced Technology Attachment)（“ＳＡＴＡ”）インタフェース５３２等のインタフェースによってホストコンピュータに接続するためのモジュール５３０を含む。集積回路５００はまた、参照数字５４０によって表される、サーボ動作を取り扱うためのサーボモジュールと、参照数字５５０によって表される読み出し書き込みチャンネルモジュールも含む。集積回路５００はまた、ヘッドディスクアッセンブリに接続するためのインタフェースを含み、ヘッドディスクアッセンブリは通常、アクチュエータ、トランスデューシングヘッド、及びディスクスタックすなわち複数のディスクを含む。ヘッドディスクアッセンブリは、参照数字５６０で示されている。読み出し書き込みチャンネルモジュール５５０は、ヘッドディスクアッセンブリ５６０とバス５６２によって通信する。サーボコントローラモジュール５４０は、通信バス５４２を介してヘッドディスクアッセンブリ５６０に操作可能に接続される。
【００４７】
前述のように、この実施形態では、ＰＣＢはチップ上システム(system on a chip)（“ＳｏＣ”）及びモータドライバチップ(motor driver chip)（“Ｃｏｍｂｏ  Ｃｈｉｐ”）を含む。図５はＳｏＣを示し、モータドライバＩＣ以外の図４の全電子部を含む。インタフェース５６２は、ヘッドに接続するためのインタフェースであり、具体的には、読み出し素子及び書き込み素子に接続するためのインタフェースである。インタフェース５６２は、読み出し／書き込みパス(read/write path)を含む。インタフェース５４２は、ＶＣＭ及びスピンドルモータに接続するためのインタフェースである。一実施形態では、素子５１０から５２０と、５２２及び５２４は、図４に示すＭＰＵ４３０内にある。ＨＤＡは、図４における素子４１００である。
【００４８】
加えて、集積回路５００は、参照数字５８０で示される、１以上のトレースポートあるいはＪＴＡＧポートを含む。バス５３２、５６２、５４２として、あるいはＪＴＡＧ及び／又はトレースポート５８０として示されるインタフェースのそれぞれは、双方向矢印で示されるように、集積回路５００への入力や集積回路５００からの出力を有する。従って集積回路５００は、双方向矢印の出力部によって表される多数の出力ポートと、双方向矢印５３２、５４２、５６２及び双方向矢印５８０の到着部によって表される複数の入力ポートを有する。ポート５８０のトレースポート部が出力専用であることには留意が必要である。
【００４９】
一実施形態において、集積回路５００は、多目的の使用というよりむしろ、特定の用途向けにカスタマイズされた集積回路（ＩＣ）であるアプリケーション専用集積回路(application-specific integrated circuit)（ＡＳＩＣ）である。集積回路５００がどのようなタイプの集積回路であってもよいことには留意すべきである。ディスクドライブの１機能の取り扱い専用のコントローラであってもよい。例えば、この集積回路は、サーボ情報のほぼ全てを扱うためのコントローラであり得る。他の例としては、集積回路５００が、読み出し及び書き込みチャンネルの取り扱い専用のコントローラであってもよい。更に他の実施形態では、集積回路がディスクドライブ１００の複数の機能を処理してもよい。その上、可視ポート(visibility port)５８０（ＪＴＡＧポートやトレースポート等）から情報を隠す必要があるどのような装置(device)あるいは機器(appliance)に対しても、チップ上システム(“System on a Chip”)ＡＳＩＣであることができる。すなわち、集積回路は、多数のどのような種類の装置でも使用でき、ディスクドライブ装置に限定されない。本明細書中に論じられる複数の実施形態は、多種の集積回路に等しく適用可能である。
【００５０】
実施形態によっては、ＩＣ５００内部のＤＲＡＭ５２４が、外付けのＤＲＡＭに置き換えられ得る。バスがＩＣ５００と外付けＤＲＡＭとを接続する。
【００５１】
図６は、実施形態の一例による、ファームウェア等のソフトウェアの認証方法６００のフローチャートである。ソフトウェアという用語は、ディスクドライブのような装置に常駐のファームウェアにも及ぶ。ディスクドライブで用いるためのソフトウェアの認証方法６００は、ディスクドライブへ入力されるソフトウェアを、秘密鍵を用いて暗号化すること６１０、及びディスクドライブのメモリから読み出した公開鍵を用いて、当該ソフトウェアをディスクドライブにおいて復号すること６１２を含む。ソフトウェア／ファームウェアの復号に用いられる公開鍵は、ＲＯＭ５２０（図５に示す）からもたらされる。この公開鍵は、ソフトウェア／ファームウェアの復号に用いられる。
【００５２】
ソフトウェア／ファームウェアは、秘密鍵で暗号化される。秘密鍵は再び用いられることは無い。装置、製造業者及びハードドライブの電源入力時には、ＳｏＣ（ＡＳＩＣ）に内在するＲＯＭが、装置あるいはハードディスクに存在する公開鍵によりファームウェアを復号する。この鍵を隠す必要はない。方法６００は、ソフトウェア／ファームウェアが正しく復号されたかを判断すること６１４を備える。ファームウェアの復号が正しく行われると、当該ファームウェアをロード及び実行すること６２４が認められる。ソフトウェア／ファームウェアの復号が正しく行われなかった場合、参照数字６２２で示すように、ディスクドライブの集積回路に付随する、少なくとも１つのスキャンポートが無効化される。
【００５３】
図７は、実施形態の一例による、ソフトウェアの認証方法８００のフローチャートである。方法８００は、参照数字８１０で示すように、ロードあるいは実行されるファームウェアのハッシュを計算することを含む。また、方法８００は、ハッシュを秘密鍵で暗号化すること８１１を含む。次に、参照数字８１２で示すように、ファームウェアと共に供給された暗号化されたハッシュが捜し出され復号される。そして、参照数字８１３で示すように、装置上でファームウェアのハッシュが計算される。次に、デシジョンボックス８１４によって示されるように、ハッシュの一致が判断される。ハッシュが一致すると、参照数字８１６で示すように、ファームウェアはロードされて実行される。ハッシュが一致しない場合は、与えられたファームウェアは実行されない。本発明の一実施形態においては、８１８で示されるように処理が無限ループに入り、権限の無いファームウェアをロードしようとする人物にとって、ハードウェアが本質的には使い物にならないようにする。
【００５４】
この方法は、装置の起動時に、より迅速に実施される。製造者あるいはファームウェアのソース(source)にのみ知られている秘密鍵を用いたファームウェアイメージ全体の暗号化ではなく、ファームウェアのハッシュのみが暗号化されるのである。これにより製造中及び装置の各起動時の時間が節約できる。ファームウェアを「ブート(boot)」（電源投入時に実行）するＨＤＤ内のＲＯＭはそれから、ファームウェアのハッシュを計算する。このハッシュ値は、公開鍵で復号された暗号化ハッシュと比較される。公開鍵はＲＯＭあるいは装置の他のメモリに記憶されている。復号化されるファームウェアあるいはデータ量が小さいため、全ファームウェアの暗号化を選択するよりも高速で行われる。
【００５５】
配線で接続され、変更不能なＲＯＭもある。他のＲＯＭには、電気的に消去可能であり（例えばフラッシュＲＯＭ）、消去及び再プログラムが可能なものもある。現在論じられている実施形態の目的のためのＲＯＭは、真に「読み出し専用」である。このＲＯＭは、電源投入後の実行のための第１のソフトウェアあるいはコードを含む。ＲＯＭに関する当該コードは、他の場所から、例えば外部のシリアルフラッシュ(serial Flash)から、ＡＳＩＣ内部のあるいはＡＳＩＣ外部のＲＡＭ等のプロセッサによる実行が可能なメモリへ、ファームウェアをロードするタスクを有する。この処理は、コンピュータシステムの起動と同様である。この第１のＲＯＭは、従って、ディスク特有ではない。それどころか、例えば外部フラッシュ(external Flash)に設置された、ディスク特有ファームウェアの「ローダ(loader)」に過ぎない。
【００５６】
既知の存在(entity)によって製造されたファームウェア以外が実行されるのを防ぐための防御の第一線は、ファームウェアに秘密鍵で署名することである。変更ができないブートＲＯＭは、その照合用公開鍵で署名の確認を行う。他の実施形態としては、ファームウェアイメージ全体が暗号化され得、そしてブートＲＯＭがファームウェアを復号してチェックし得る。
【００５７】
他の実施においては、例えば、フラッシュＲＯＭが直接実行可能であってコピー又はロードされる必要がなければ、ブートＲＯＭは、当該フラッシュＲＯＭコンテンツの正当性(legitimacy)をチェックする。これはフラッシュコンテンツの署名をチェックすることによって成され得る。ブートＲＯＭといった、何らかの変更不能なコードの一部が、変更可能なファームウェアのチェック及び復号化をまず実行する限りは、ファームウェアのソースは妥当な確実性をもって決定される。当然ながら、ファームウェアへの署名に用いられた鍵に信頼がおけなければ、ソフトウェアのソースも信頼できない。
【００５８】
この全ては、ファームウェアが署名されている（ファームウェアのハッシュが、製作団体のみが知る秘密鍵によって暗号化されている）こと、及びブートＲＯＭが署名をチェックするための照合鍵を有する（当該ハッシュは照合公開鍵を用いて復号され、ちょうど計算されたハッシュと比較することができる）ことを想定している。
【００５９】
ハードドライブがホストと相互にやり取りして信頼のある関係を形成し、信頼できる作業を行う場合は、ホストはハードドライブに暗号化／復号化あるいはメッセージの署名を要求する。これらの暗号化／復号化のうちには、公開／秘密鍵を伴うものもある。秘密鍵を内密に保つことは重要である。秘密鍵が他の団体に取得されてしまえば、当該他の団体は当初の団体のふりをすることができる。これはディスクドライブに限らず、何らかの機器が他の機器と相互にやり取りし、信頼のおける関係を形成する場合には適用可能であるということには留意が必要である。
【００６０】
ＳｏＣ等の特定のＩＣは、可視ポート（例えばＪＴＡＧポートやトレースポート）を有する。暗号作業を行う際には、可視ポート（例えばＪＴＡＧポートやトレースポート）を閉めるかもしくは無効にすることが望ましく、これによって、暗号作業が隠蔽される。加えて、暗号作業を行わない場合には、鍵や所定のアルゴリズム等の特定の秘密を保持するメモリが、プロセッサに対して不可視であることが望ましい
図８及び図９は、実施形態の一例による、暗号データあるいは暗号情報を含むＲＯＭ５２０又はＲＯＭ５２０の一部の概略図である。図８は、第１の状態における暗号ＲＯＭを示し、第１の状態では、ＲＯＭ９００全体がプロセッサに対して可視であり可視ポートが無効化されている。図９は、第２の状態における暗号ＲＯＭ９００を示し、第２の状態では、エントリベクトル(entry vector)のみがプロセッサに対して可視であり、可視ポートが有効である。図９に示す第２の状態は一般に、装置の通常の動作中、又はＲＯＭ及びこれにアクセスするマイクロプロセッサの通常の動作中に用いられる。図８に示すように、暗号ＲＯＭ９００は、エントリベクトルと呼ばれるデータのセクション９１０、クリプトコード(crypto code)と称するデータのセクション９２０、クリプトキー(crypto key)なるその他のセクション９３０、及びイグジットベクトル(exit vector)なる最終セクション９４０を含む。
【００６１】
エントリベクトル９１０は、クリプトコード９２０と呼ばれるブロックの中間にジャンプする分岐命令である。エントリベクトル９１０の各々は、何らかのアクション（暗号化や復号化又は署名等）を行う機能に対応する。ハードウェアは、プロセッサ５１０（図５参照）がエントリベクトル９１０の範囲内のアドレスの命令を実行していることを検出して可視ポート５８０（図５参照）（ＪＴＡＧポートやトレースポート）を無効化し、ブレイクポイント(breakpoint)を無効化して、暗号ＲＯＭ９００のその他は有効にしてプロセッサから可視となるようにする。ファームウェアのどの部分も、何らかのものが暗号化、署名又は復号化されることを要求できるが、この要求が実行されている間（イグジットベクトルのうちの１つ（１つしかないこともある）によって終了するまで）、ＪＴＡＧポート及び／又はトレースポート５８０（図５参照）といった可視ポートを無効化することによって、内蔵プロセッサ５１０の動作はマスク(mask)される。マスクする時間の長さは、イグジットベクトル９４０を介して終了するまでである。更に、この実行はブレイクポイントでは停止され得ないが、これは、当該期間ではブレイクポイントもまた無効化されているためである。暗号ＲＯＭ内の機能が実行されると、イグジットベクトルのうちの一つを介して終了する。ハードウェアは、プロセッサがイグジットベクトル９４０の範囲内のアドレスの命令を実行していることを検出して、可視ポート５８０を有効とし、暗号ＲＯＭ９００の大部分をプロセッサ５１０からは見えなくする。侵入者(intruder)は再び、ＪＴＡＧを用いて覗き見(peek)や詮索(poke)が可能となり、またプロセッサ５１０の実行をトレースできるが、ＲＯＭ９００の暗号部の部分は見られない。
【００６２】
装置内で使用されるソフトウェアの認証方法は、ディスクドライブに入力されるソフトウェアを秘密鍵で暗号化すること、及び該装置にアクセス可能なメモリから読み出された公開鍵で当該ソフトウェアを復号することを含む。当該方法は、すでに暗号化されたソフトウェアの復号と一致すると、該装置に与えられたソフトウェアを実行することを含む。当該方法はまた、該ソフトウェアの公開鍵で復号されたソフトウェアが、該装置上で実行されるソフトウェアと一致しないことを判断すること、及び該ソフトウェアの実行を許可しないことを含む。実施形態によっては、請求項１の方法は更に、該ソフトウェアの公開鍵で復号されたソフトウェアが、該装置上で実行されるソフトウェアと一致しないことを判断すること、及び該装置に関する集積回路に付随する少なくとも一つのスキャンポート(scan port)を無効化することを含む。他の実施形態では、当該方法は、該ソフトウェアの公開鍵で復号されたソフトウェアが該装置上で実行されるソフトウェアと一致しないことを判断すること、及び該装置に関する集積回路に付随するほぼ全てのスキャンポートを無効化することを含む。当該方法の更に他の実施形態では、復号されたソフトウェアは該装置に与えられたソフトウェアと比較され、当該復号されたソフトウェアが暗号化されたソフトウェアと一致すると、実行のためにロードされる。一実施形態においては、このソフトウェアは、該装置に関するハードウェア素子に組み込まれる命令のセットを含むファームウェアである。更に他の実施形態において、該装置はディスクドライブである。
【００６３】
装置の操作に用いられるファームウェア上のハッシュコード(hash code)を決定すること、秘密鍵を用いて決定されたハッシュコードを暗号化すること、及び公開鍵を該装置にアクセス可能なメモリに記憶すること、を含む方法がある。装置に与えられたファームウェアの実行前に、該装置に与えられたファームウェアのハッシュコードが決定される。すでに暗号化されたファームウェアのハッシュコードは、復号されて、該装置上での実行のため与えられたファームウェアのハッシュコードと比較される。
【００６４】
該装置に与えられたファームウェアが、該装置によってロードされ実行されることが認められるのは、復号されたハッシュコードが、該装置上での実行のため与えられたファームウェアのハッシュコードと一致する場合である。復号されたハッシュコードが、該装置上での実行のため与えられたファームウェアのハッシュコードと一致しない場合には、該装置に与えられたファームウェアをロードし実行することは防止される。実施形態によっては、該装置は、１以上のトレースポートを含む集積回路である。該方法は更に、トレースポートのうちの少なくとも一つを無効化することを含む。他の実施形態では、この集積回路は更にＪＴＡＧポートを含む。該方法は更に、このＪＴＡＧポートを無効化することを含む。実施形態によっては、集積回路がアプリケーション専用集積回路であることもある。さらに他の実施形態では、集積回路は、ディスクドライブの複数の機能を扱うアプリケーション専用集積回路である。
【００６５】
ディスクドライブ１００は、データを表す情報を記憶するディスク１２０、アクチュエータ１３０、及びアクチュエータに取り付けられたトランスデューサを含む。ディスクは更に、データを表す情報及びサーボパターンを有する。アクチュエータはディスク表面上でトランスデューサを動かし、このトランスデューサとディスクの変換関係(transducing relation)が保たれる。ディスクドライブはまた、ディスクドライブの少なくとも一つの機能を制御するための集積回路を含む。集積回路はメモリを含むか、あるいはメモリへのアクセスを有する。
【００６６】
上述の方法６００、７００を行うためのプログラミングを実行するコンピュータシステムのブロック図は、図１０に示される。コンピュータ２０１０の形式の一般的な計算装置は、プロセッシングユニット(processing unit)２００２、メモリ２００４、リムーバブルストレージ(removable storage)２０１２、及びノンリムーバブルストレージ(non-removable storage)２０１４を含んでもよい。メモリ２００４は、揮発性メモリ２００６及び不揮発性メモリ２００８を含んでもよい。コンピュータ２０１０は、揮発性メモリ２００６と不揮発性メモリ２００８、リムーバブルストレージ２０１２とノンリムーバブルストレージ２０１４といった多様なコンピュータ読取り可能なメディアを含むコンピュータ環境を含んでも、あるいはこのようなコンピュータ環境へのアクセスを有してもよい。コンピュータストレージはＲＡＭ、ＲＯＭ、消去可能ＰＲＯＭ（ＥＰＲＯＭ）、電気的消去可能ＰＲＯＭ（ＥＥＰＲＯＭ）、フラッシュメモリや他のメモリ技術、ＣＤ−ＲＯＭ、ＤＶＤ、その他の光学ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージやその他の磁気ストレージ装置、あるいはその他のコンピュータ読取り可能な命令を記憶できるメディアを含む。コンピュータ２０１０は、入力２０１６、出力２０１８、及び通信接続２０２０を含むコンピュータ環境を含んでも、あるいはこのようなコンピュータ環境へのアクセスを含んでもよい。コンピュータは、１以上のリモートコンピュータ(remote computer)と接続するのに、通信接続を用いてネットワーク化された環境において動作してもよい。リモートコンピュータは、パーソナルコンピュータ（ＰＣ）、サーバ、ルータ、ネットワークＰＣ、ピアデバイス(peer device)や他の一般的なネットワークノード(network node)等を含んでもよい。通信接続は、ローカルエリアネットワーク（ＬＡＮ）、ワイドエリアネットワーク（ＷＡＮ）や他のネットワークを含んでもよい。マイクロプロセッサ又はディスクドライブの他の選択された回路やコンポーネントが、このようなコンピュータシステムであってもよい。
【００６７】
コンピュータ読取り可能なメディアに記憶されたコンピュータ読取り可能な命令は、コンピュータ２０１０のプロセッシングユニット２００２によって実行可能である。ハードドライブ、ＣＤ−ＲＯＭ、及びＲＡＭは、コンピュータ読取り可能なメディアを含む物品の例である。機械読み取り可能なメディアは、機械によって実行される場合に、ソフトウェアコードが入力ポートに提供されていることを判断すること、及びソフトウェアコードを認証する認証ルーチン(authentication routine)を有効化すること、を当該機械に行わせる命令を備える。上述のように、機械読み取り可能なメディアは、上述の方法６００、７００のどちらかを実行するための命令を含み得る。例えば方法７００を実施する際に、機械読み取り可能なメディアは、ソフトウェアコードが入力ポートに提供されていることの判断と、ソフトウェアコードを認証する認証ルーチンの有効化をもたらす。機械読み取り可能なメディアは更に、認証ルーチンがソフトウェアコードの認証に失敗した場合に、出力ポートの無効化を当該機械に行わせる命令を含む。他の実施形態では、機械読み取り可能なメディアは、機械によって実行される場合に、認証ルーチンがソフトウェアコードの認証に失敗すると、出力ポートのマスクを当該機械に行わせる更なる命令を含む。更に他の実施形態では、機械読み取り可能なメディアは、機械によって実行される場合に、認証ルーチンがソフトウェアコードの認証に失敗すると、当該機械にソフトウェアコードの実行を阻止させる更なる命令を備える。
【００６８】
上述の特定の実施形態の説明は、本発明の一般的な性質を効果的に明らかにしており、現在の知識の適用により、包括的な概念から逸脱することなく、様々な応用のために容易に修正及び／又は適合が可能である。従って、このような適合及び修正は、開示された実施形態の等価物の意義及び範囲内に包括されることが意図されている。
【００６９】
本明細書において採用された語法や用語は、説明を目的とするものであり、限定のためではないということが理解される。従って本発明は、添付の請求項の精神と範囲内に含まれるこのような代替物、修正、等価物、及び変形全てを包含することが意図されている。
【図面の簡単な説明】
【００７０】
【図１】本明細書中で説明される実施形態の一例による、ディスクドライブの分解図である。
【図２】本明細書中で説明される実施形態の一例による、カバーが取り除かれた状態のディスクドライブの図。
【図３】実施形態の一例による、ディスクの一部と、第１のサーボウェッジ及び第２のサーボウェッジを示す図。
【図４】実施形態の一例による、ファームウェアを含む装置のブロック図。
【図５】実施形態の一例による、少なくとも１つのスキャンポートを有する集積チップの概略図。
【図６】実施形態の一例による、ソフトウェアを認証する方法のフローチャート。
【図７】実施形態の一例による、ソフトウェアの認証方法のフローチャート。
【図８】実施形態の一例による、暗号ＲＯＭの概略図。
【図９】実施形態の一例による、通常動作中の暗号ＲＯＭの概略図。
【図１０】実施形態の例で説明された方法及びコントローラを実施するためのコンピュータシステムのブロック図の例。
【符号の説明】
【００７１】
１００…ディスクドライブ、１０２…ハウジング、１０４…ハウジングベース、１０６…ハウジングカバー、１１０…磁気リターンプレート、１１２…ボイスコイルモータ、１２０、１２０´…ディスク、１２１…クランプ、１２２…スピンドル、１２７、１２８…サーボウェッジ、１２９…トラック、１３０…回転アクチュエータ、１３２…ベアリング、１３４…ボイスコイル、１４６…トランスデューシングヘッド、１５０…ランプ、１６４…アクチュエータアーム、１６５…ヘッドスライダ、１６６…ヘッドサスペンションアッセンブリ、５２０…ディスク表面。
【図１】
2009163701.tif 000003
【図２】
2009163701.tif 000004
【図３】
2009163701.tif 000005
【図４】
2009163701.tif 000006
【図５】
2009163701.tif 000007
【図６】
2009163701.tif 000008
【図７】
2009163701.tif 000009
【図８】
2009163701.tif 000010
【図９】
2009163701.tif 000011
【図１０】
2009163701.tif 000012