説明

記憶装置の耐タンパー方法及び装置

【課題】 新規且つ改善された、記憶装置の耐タンパー方法及び装置を提供することを目的とする。
【解決手段】 装置内で使用されるソフトウェアを認証するための方法(600)は、当該装置に入力されるソフトウェアを、秘密鍵によって暗号化すること(610)と、当該装置に与えられる該ソフトウェアを、当該装置によるアクセスが可能なメモリから読み出した公開鍵を用いて、当該装置において復号すること(612)とを含む認証方法である。

【発明の詳細な説明】
【技術分野】
【0001】
本明細書中に述べられる様々な実施形態は、記憶装置の耐タンパー(tamper resistant)性をより向上させることに関連する装置、システム及び方法に関する。
【背景技術】
【0002】
ディスクドライブは、情報記憶装置である。ディスクドライブは回転スピンドルに固定された1枚以上のディスクと、それぞれのディスクの表面からデータを表す情報を読み出すための、及び/又は、それぞれのディスクの表面にデータを書き込むための、少なくとも一つのヘッドを含む。ディスクドライブはまた、1又は複数のディスクの選択されたデータトラック上での1又は複数のトランスデューシングヘッド(transducing head)の位置決めのために、直線運動又は回転運動を用いるアクチュエータを含む。回転アクチュエータは、回転中のディスクの表面をトランスデューシングヘッドにスウィープ(sweep)させるピボットポイント(pivot point)にスライダを連結し、スライダ上には、トランスデューシングヘッドが取り付けられているか、又は一体形成されている。回転アクチュエータは、ボイスコイルモータ(voice coil motor)によって駆動される。データの記憶は、ディスク上のトラックの各部への、データを表す情報の書き込みを含む。データの検索は、データを表す情報が記憶されたトラックの一部分からの、データを表す情報の読み出しを含む。
【0003】
ディスクドライブ情報記憶装置は、ディスクドライブの動作の全側面を制御する制御システムを採用している。この制御システムは、読み出し動作中、書き込み動作中、及びシーク(seek)中のトランスデューシングヘッドの位置から、ホストコンピュータからのコマンドの受信、当該ホストへのデータの送信、及びコマンドが完了した時点の表示にいたるまでの全てを制御する。制御システムは、データの読み出し及び書き込みのため、トランスデューシングヘッドの位置を正確に定めるために用いられるサーボ制御システム(servo control system)すなわちサーボループ(servo loop)を含む。制御システムは、ディスクドライブの特定の機能を実行する専用のコントローラをいくつか含んでもよい。
【0004】
長い期間をかけて、集積回路はより小さく、かつますます複雑になってきた。技術が進歩するにつれて、より多くの個々のゲートが1集積回路に設置され得るようになった。加えて、制御機能の多くが集積回路内に設置され得るようになった。現在の技術による集積回路が、先年の集積回路のいくつかに取って代わることもある。電子部品はより複雑化したため、生産される部品が良好であることを保証するための種々のテスト方法が必要とされた。電子部品の1テスト方法としては、バウンダリスキャン(boundary scan)の使用を含むものがある。Joint Test Action Group(JTAG)はバウンダリスキャンの標準規格であり、IEEE/ANSI 1149.1−1990に見られ、主として集積回路レベルで適用される設計ルールの集合である。JTAG規格は、バウンダリスキャンを使ったプリント基板のテストに用いられる、テストアクセスポート(test access port)用のStandard Test Access Port and Boundary-Scan Architectureと名づけられている。
【0005】
JTAGは、製造後の実装済みの集積回路をテストする方法を開発するために、1985年に結成された工業グループである。当時は、多層構造の基板及び非リードフレームIC(non-lead-frame IC)が標準となりつつあり、IC間の接続はプローブでは利用できないようになっていた。回路基板の分野及び製造における欠陥の大部分は、基板上のはんだ接合、基板接続の不完全性、あるいはICパッドからピンリードフレーム(pin lead frame)へのボンド(bond)及びボンドワイヤ(bond wire)によるものであった。JTAGでは、一つのICパッドから他を見るとピン配列が見られるようになっていたため、これらの欠陥の全てが発見可能であった。工業規格は、初期の利用から幾年もの後、IEEE std. 1149.1−1990として、1990年に最終的にIEEE規格となった。プロセッサ(processor)もまた、JTAG規格向けに設計された。1994年には、規格に対してバウンダリスキャン記述言語(boundary scan description language)(BSDL)を加える追補がJTAGに対して追加された。これ以降、この規格は世界中で電子技術企業に採用されている。バウンダリスキャンは現在では、JTAGとほとんど同義である。
【0006】
JATGは現在、主として集積回路のサブブロック(sub-block)にアクセスするために用いられ、また、組み込みシステムをデバッグするため、及び使い勝手のよい「バックドア(back door)」をシステムへ提供するための機構としても有用である。デバッグ用ツールとして用いられる場合は、JTAGインタフェースを介して、プロセッサあるいはCPUに組み込まれたオンチップデバッグモジュール(on-chip debug module)にプログラマがアクセスするのをインサーキットエミュレータ(in-circuit emulator)(ICE)が可能とするが、このICEは転送機構としてJTAGを順に用いるものである。デバッグモジュールは、プログラマによる組み込みシステムのソフトウェアのデバッグを可能にする。
【0007】
JTAGは、不利な面も有する。使い勝手のよい「バックドア」を組み込みシステムのデバッグのために提供するということはまた、ディスクドライブの各種機能を制御するために実行されるソフトウェアとファームウェアの命令を、競合者が調べるにも使い勝手のよい方法を与える。
【0008】
トレースポート(trace port)を有するICもある。トレースポートは、別の有用なデバッグ用ツールであるが、これは、内蔵プロセッサの動作についての情報が高速で利用可能なためである。これは、プロセッサが何を実行しているか、及び何のデータがプロセッサから及びプロセッサへ流れているかの開発者等によるトレースを、ほぼリアルタイムで可能とする。JTAGは、ASICやチップ上のシステム(system on a chip)(SoC)といった集積回路の内部構造を、選択された時に調べるための方法を与える。調査はプロセッサの停止後にのみ行われるため、JTAGポートの使用は低速である。トレースポートがもたらすのは、プロセッサがコマンドを実行している間、プロセッサが何を行っているかを、プロセッサに干渉することも減速させることもなく観察する能力である。
【発明の開示】
【発明が解決しようとする課題】
【0009】
そこで、本発明は、新規且つ改善された、記憶装置の耐タンパー方法及び装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明は以下の態様を含む。
【0011】
(1)装置内で使用されるソフトウェアの認証方法であって、
ディスクドライブに入力されるソフトウェアを秘密鍵で暗号化することと、
前記装置と通信を行うメモリから読み出した公開鍵を用いて、当該ソフトウェアを前記装置において復号することと、
を備える認証方法。
【0012】
(2)すでに暗号化されたソフトウェアの復号と一致する、前記装置に入力されるソフトウェアを実行することを、更に備える(1)に記載の方法。
【0013】
(3)前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記ソフトウェアの実行を許可しないことと、
を更に備える(1)に記載の方法。
【0014】
(4)前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記装置に関する集積回路に付随する少なくとも一つのスキャンポートを無効化することと、
を更に備える(1)に記載の方法。
【0015】
(5)前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記装置に関する集積回路に付随するほぼ全てのスキャンポートを無効化することと、
を更に備える(1)に記載の方法。
【0016】
(6)復号されたソフトウェアと、前記装置に与えられたソフトウェアとを比較することと、
前記ソフトウェアをロードすることと、
前記ロードされたソフトウェアを実行することと、
を更に備える(1)に記載の方法。
【0017】
(7)前記ソフトウェアは、前記装置に関するハードウェア素子に組み込まれる命令のセットを含むファームウェアである、(1)に記載の方法。
【0018】
(8)前記装置はディスクドライブである、(1)に記載の方法。
【0019】
(9)装置の操作に用いられるファームウェア上のハッシュコードを決定することと、
秘密鍵を用いて前記決定されたハッシュコードを暗号化することと、
前記装置にアクセス可能なメモリに公開鍵を記憶することと、
前記装置に与えられたファームウェアの実行前に、前記装置に与えられたファームウェアのハッシュコードを決定することと、
前記ファームウェアのすでに暗号化されたハッシュコードを復号することと、
前記復号されたハッシュコードを、前記装置上での実行のために与えられたファームウェアのハッシュコードと比較することと、
を備える方法。
【0020】
(10)前記復号されたハッシュコードが、前記装置上での実行のため与えられたファームウェアのハッシュコードと一致する場合、前記装置に与えられた前記ファームウェアを前記装置によってロードし実行することが認められる、(9)に記載の方法。
【0021】
(11)前記復号されたハッシュコードが、前記装置上での実行のため与えられたファームウェアのハッシュコードと一致しない場合、前記装置に与えられた前記ファームウェアを前記装置によってロードし実行することは防止される、(9)に記載の方法。
【0022】
(12)前記装置は集積回路である、(9)に記載の方法。
【0023】
(13)前記装置は、トレースポートを更に含む集積回路であり、前記トレースポートを無効化することを更に備える、(11)に記載の方法。
【0024】
(14)前記装置は、JTAGポートを更に含む集積回路であり、前記JTAGポートを無効化することを更に備える、(11)に記載の方法。
【0025】
(15)前記集積回路はアプリケーション専用集積回路である、(12)に記載の方法。
【0026】
(16)前記集積回路は、ディスクドライブの複数の機能を扱うアプリケーション専用集積回路である、(12)に記載の方法。
【0027】
(17)集積回路であって、
プロセッサと、
前記プロセッサに通信可能に接続される読み出し専用メモリと、
前記集積回路に付随する可視ポートであって、前記集積回路は前記プロセッサ及び前記読み出し専用メモリに関する情報を該可視ポートに提供することが可能であり、前記読み出し専用メモリは少なくとも暗号情報の部分を含む可視ポートと、
前記プロセッサの暗号動作中、前記可視ポートをマスクする可視ポート無効化手段と、
を備える集積回路。
【0028】
(18)前記読み出し専用メモリの前記部分は暗号情報を含み、当該暗号情報は、
エントリベクトルと、
イグジットベクトルであって、前記可視ポート無効化手段は、前記エントリベクトルが要求された時間と前記イグジットベクトルが実行される時間との間、前記可視ポートをマスクする、イグジットベクトルと、
を含む、(17)に記載の集積回路。
【0029】
(19)コンピュータ読み取り可能なメディアであって、コンピュータによって実行された場合に、当該コンピュータに、
ソフトウェアコードが入力ポートに提供されていると判断することと、
前記ソフトウェアコードを認証する認証ルーチンを有効化することと、
を行わせる命令を提供する、コンピュータ読み取り可能なメディア。
【0030】
(20)コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したら出力ポートを無効化すること、を当該コンピュータに行わせる命令を更に備える、(19)に記載のコンピュータ読み取り可能なメディア。
【0031】
(21)コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したら出力ポートをマスクすること、を当該コンピュータに行わせる命令を更に備える、(19)に記載のコンピュータ読み取り可能なメディア。
【0032】
(22)コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したらソフトウェアコードの実行を当該コンピュータに阻止させる命令を更に備える、(19)に記載のコンピュータ読み取り可能なメディア。
【発明の効果】
【0033】
本発明によれば、新規且つ改善された、記憶装置の耐タンパー方法及び装置を提供することができる。
【発明を実施するための最良の形態】
【0034】
図4は、本発明の一実施形態による、装置400の概略図である。装置400は、ファームウェア410を含む。ファームウェア410又はファームウェア410の一部は、暗号化されている。ファームウェア410はまた、同様の暗号化の結果物を生成するために用いられてもよい。例えば、ファームウェアのハッシュが秘密鍵を用いて暗号化されてもよい。秘密鍵は製造者によって保持され、一般には製造者によって私的にあるいは秘密に保たれる。公開鍵は、ファームウェア410又はファームウェア410の一部の復号化に用いられる。公開鍵は、装置400のメモリ420に記憶される。装置によっては、ファームウェア410及び公開鍵を保持するメモリ420がどちらも、集積回路430の一部(点線の囲みで表されている)をなすこともある。
【0035】
装置400が起動すると、あるいはファームウェアが装置400に提供されると、公開鍵はメモリ420から読み出され、ファームウェア410又はファームウェア410の一部の復号に用いられる。ファームウェアの一部又はハッシュのようなファームウェアの結果物が公開鍵を用いて復号されると、これはファームウェア部又は装置上のファームウェアのハッシュのようなファームウェア結果物と比較され、ファームウェアの信頼性が定められる。このような一般的なスキームは、どのようなタイプの装置にも用いることができる。このタイプの装置及びこの方法を用いることができる装置タイプの例としては、ディスクドライブ装置があり、以下で詳細に論じられる。この装置は、装置あるいは装置の一部の駆動又は制御に用いられるソフトウェア(ファームウェアとも呼ばれる)を使用するどのような装置であってもよいことには留意が必要である。
【0036】
図1は、本発明の様々な実施形態を用いるディスクドライブ100の分解図である。ディスクドライブ100は、ハウジングベース(housing base)104とハウジングカバー(housing cover)106を含むハウジング(housing)102を有する。図示されたハウジングベース104はベースキャスティング(base casting)であるが、他の実施形態においては、ハウジングベース104は、ディスクドライブ100の組み立てに先立って、あるいは組み立て中に組み立てられる別個の要素を備えてもよい。ディスク120は、スピンドルモータ(spindle motor)によって回転されるハブ(hub)すなわちスピンドル(spindle)122に取り付けられる。ディスク120は、クランプ(clamp)121によってハブあるいはスピンドル122に取り付けられ得る。ディスクは、一定のレート、もしくは毎分3600未満から15000回転より大きい値にわたる範囲の可変レートで回転させられてもよい。より高速な回転速度も将来には予想されている。スピンドルモータはハウジングベース104に接続される。ディスク120は、軽アルミ合金、セラミック/ガラス又は他の適当な基板から製造可能で、ディスクの片面又は両面に磁性材料が沈着されている。磁性層は、トランスデューシングヘッド146を介して転送されるデータを記憶するための磁化の小領域を含む。トランスデューシングヘッド146は、ディスク120からデータを読み出し、ディスク120にデータを書き込むよう構成された磁気トランスデューサ(magnetic transducer)を含む。他の実施形態では、トランスデューシングヘッド146は、別個の読み出し素子と書き込み素子を含む。例えば、この別個の読み出し素子は、MRヘッドとしても知られる磁気抵抗ヘッドであってもよい。多数のヘッド146による構成も用いられ得ることも理解される。トランスデューシングヘッド146は、スライダ165に付随する。
【0037】
回転アクチュエータ130は、ベアリング132によってハウジングベース104に軸支されて取り付けられ、ディスク120の内径(ID)と、ディスク120の外径(OD)付近に位置するランプ(ramp)150との間を、弧を描いてスウィープする。ハウジングベース104に取り付けられるのは、上部及び下部磁気リターンプレート(magnet return plate)110と少なくとも1つの磁石であり、ボイスコイルモータ(voice coil motor)(VCM)112の静止部を共に形成する。ボイスコイル(voice coil)134は、回転アクチュエータ130に取り付けられ、VCM112のエアギャップ(air gap)に位置する。回転アクチュエータ130は、ボイスコイル134に電流が流されるとベアリング132を軸にして回転し、電流の向きが逆転すると逆方向に回転して、ディスク120に対するアクチュエータ130の位置及び取り付けられたトランスデューシングヘッド146の制御を可能とする。VCM112は、サーボシステム(servo system)(図4に示す)に連結されるが、このサーボシステムは、トランスデューシングヘッド146によってディスク120から読み出された位置決めデータを用いて、ディスク120の複数のトラックのうちの一つ上でのトランスデューシングヘッド146の位置を決定する。サーボシステムは、ボイスコイル134に流すのに適切な電流を決定し、電流ドライバ及び関連する回路(図4に示す)を用いて、ボイスコイル134に電流を流す。実施形態によっては、二つの別個の素子を有するトランスデューシングヘッドもあるということには留意が必要である。一つの素子は、データを表す情報の読み出し、及び位置情報すなわちサーボ情報(servo information)の読み出しのためのものである。この素子は読み出し素子として知られる。他方の素子は、これらの実施形態においては、データを表す情報の書き込みのためのものであり、書き込み素子として知られている。このようなトランスデューシングヘッドの一例として、磁気抵抗(MR)トランスデューシングヘッドがある。
【0038】
ディスク120のそれぞれの面について、関連するヘッド146があり得、これらのヘッド146がそろって回転するように、ヘッド146は回転アクチュエータ130にまとめて結合される。
【0039】
サーボシステムの一つのタイプは組み込みのサーボシステムであり、データを表す情報の記憶に用いられるそれぞれのディスク表面上のトラックは、サーボ情報の小セグメント(segment)を含む。サーボ情報はこの実施形態では、2つのセクションに書き込まれる。ディスクドライブ内のディスク120、120´のそれぞれは、情報を記憶し得る2つの表面を有する。ディスク120、120´のこれらの表面のうちの一つ520が図1に示されている。外径上の複数のスポーク(spoke)は、1つのスポーク128によって代表され、ディスク120の外部ゾーン(outer zone)周りにほぼ等間隔で配置されている。内径上の複数のスポークは、1つのスポーク127によって代表され、ディスク120の内部ゾーン(inner zone)周りにほぼ等間隔に配置されている。実際には、図1に示すよりも更に多数のサーボウェッジが存在し得るということは留意されるべきである。サーボウェッジ128、すなわち外径におけるスポークの内容は、図3及び図3に関連する議論によって更に詳細に説明される。
【0040】
ディスク120はまた、複数のトラックを各ディスク表面上に有する。複数のトラックのうちの1つ、例えばトラック129が、ディスク120の表面520上にある。サーボウェッジ128は、ディスク120上で、トラック129のような複数のトラックを横切る。複数のトラックは、実施形態によっては、ほぼ同心の円のセットとして配置されてもよい。データは、埋め込まれたサーボウェッジ127、128間のトラックに沿った固定セクタに記憶される。ディスク120上のトラックはそれぞれ、複数のデータセクタ(data sector)を含む。具体的には、データセクタは、固定ブロック長と固定データ記憶容量(例えば、1データセクタにつき512バイトのユーザデータ)とを有するトラックの一部である。ディスク120の内側に近いトラックは、ディスク120の外周に近いトラック程の長さを有しない。結果として、ディスク120の内側に近いトラックは、ディスク120の外周に近いトラック程多くのデータセクタを保持できない。同数のデータセクタを保持可能なトラックは、データゾーン(data zone)としてグループ化される。密度とデータレート(data rate)はデータゾーンからデータゾーンへ変動するため、サーボウェッジ128は、少なくともいくつかのデータセクタを遮り、分断することもある。サーボセクタ128は通常、工場においてサーボ書き込み装置(サーボライタ(servo-writer)と呼ばれる)によって記録されるが、ディスクドライブ100のトランスデューシングヘッド146によって、セルフサーボライティング(self-servowriting)動作で書き込まれて(又は部分的に書き込まれて)もよい。
【0041】
図2は、本明細書で説明される実施形態の一例による、ほとんど組み立てられたディスクドライブの斜視図である。説明のため、ハウジングカバー106は取り除かれている。実施形態によっては、ディスクドライブ100は、磁気記録再生装置(ハードディスクドライブ)である。ディスクドライブハウジングベース104は、シャシー(chassis)の役割を果たす。シャシーすなわちハウジングベース104に取り付けられるのは、磁気ディスク120と、読み出しヘッド及び書き込みヘッドを含むトランスデューシングヘッド146である。トランスデューシングヘッド146は、スライダ165上に位置する。読み出しヘッドと書き込みヘッドはスライダ165内及びその一端に、それぞれ形成される。スライダ165は、ヘッドサスペンションアッセンブリ(head suspension assembly)166によってアクチュエータに取り付けられる。ヘッドサスペンションアッセンブリ166は、サスペンションと、ディスク120の表面に対して変換関係にあるヘッドスライダ165を支持するアクチュエータアーム164を含む。また、ハウジングベース104すなわちシャシーに取り付けられているのは、プリント基板(PCB)4200(図4に概略的に示される)である。
【0042】
磁気ディスク120は、離散トラックメディア(discrete track media)である。磁気ディスク120は、スピンドルモータによって回転されるスピンドル122上に取り付けられ、スピンドルモータは通常、ハブすなわちスピンドル122内に取り付けられている。様々なデジタルデータが磁気ディスク120上に記録される。実施形態によっては、データは、ディスク120の主表面に平行な磁気転移によって記録される。一方、他の実施形態では、磁気転移はディスク120の主表面に垂直である。実施形態によっては、ヘッドスライダ165に内蔵される磁気ヘッドは、単極構造(single pole structure)の書き込みヘッドと遮蔽MR読み出し素子(GMRフィルムやTMRフィルム等)を用いる読み出しヘッドとを含む、いわゆる統合ヘッドである。ボイスコイルモータ(VCM)112は、ヘッドサスペンションアッセンブリをピボットポイント131回りで駆動して、磁気ディスク120の半径方向での磁気ヘッド146の位置を定める。回路基板(図示せず)は、ボイスコイルモータ(VCM)112の駆動信号と、磁気ヘッド146によって行われる読み出し及び書き込み動作を制御する制御信号とを生成するICを備える。
【0043】
図3は、実施形態の一例による、ディスク120の一部及び少なくとも一つのサーボウェッジ128を示す。図3では、サーボウェッジ128について更なる詳細が論じられ、ディスク120の表面上の複数のトラックが示される。各サーボウェッジ128は、磁化の領域として記憶された情報を含む。サーボウェッジ128は長手方向に磁化され得る(例えば、図3の磁化された部分では、サーボパターン(servo pattern)200は、左向きに磁化されたクロスハッチされたブロックと、右向きに磁化された余白とを含み、あるいは逆の場合もある)。あるいはサーボウェッジ128は、直角方向に磁化されてもよい(例えば、クロスハッチされたブロックは上向きに磁化され、余白は下向きに磁化され、あるいは逆の場合もある)。各サーボウェッジ128に含まれるサーボパターン200は、回転するディスク120がトランスデューシングヘッド146の下を通過すると、トランスデューシングヘッド146によって読み出される。サーボパターン200は、データフィールド264に含まれるデータセクタを識別する情報を含むことができる。例えば、サーボパターン200は、プリアンブル(preamble)202、サーボアドレスマーク(servo address mark)(SAM)204、トラック識別番号(track identifying number)206等のデジタル情報を含むことができる。サーボパターン200はまた、サーボバースト(servo burst)のセットを含む。図3に示すように、サーボサーストのセットは、Aサーボバースト、Bサーボバースト、Cサーボバースト、及びDサーボバーストを含む。AサーボバーストとBサーボバーストの間にサーボバーストエッジ(servo burst edge)210があり、CサーボバーストとDサーボバーストの間にサーボバーストエッジ220がある。図示されたパターンは、直交型のパターンである。実施形態によっては、ディスクドライブは、各サーボウェッジ128に、各タイプのサーボバーストの単一列を有する。各列はディスクの放射部(radial)に対応する。この実施形態に示すように、A,B,C及びDサーボバーストによる2列があって、実施形態によってはこれが用いられる。実施形態によっては、サーボウェッジ128は、ウェッジ番号(wedge number)等の他の情報も含む。これはインデックスウェッジ(wedge #0)を指定するためのシングルビットであってもよい。あるいはSAMが別のパターン(サーボインデックスマーク、すなわちSIMと呼ばれる)に置き換えられてもよく、また、ウェッジはウェッジ番号の低次の数ビット、あるいは完全なウェッジ番号を含んでもよい。サーボバーストには、ヌルパターン(null pattern)等の多くの異なるパターンがある。
【0044】
このパターンは4つのサーボバーストを示すが、ディスク上にAB及びCDサーボバーストの放射直線を作り出すため、サーボウェッジ128のようなディスク上の各サーボウェッジにおいて、列として繰り返されてもよいことが理解される。サーボバーストパターンは結果として、A及びBサーボバーストの間のサーボバーストエッジ210と、C及びDサーボバーストの間のサーボバーストエッジ220をヌルパターンでは与える。実施形態によっては、ディスク120は磁気ディスク以外であってもよい。このような場合、サーボウェッジ128は、光学徴表(optical indicia)等、他の徴表(indicia)を含むことができる。
【0045】
図5は、実施形態の一例による、ディスクドライブの集積回路500の概略図を示す。集積回路500は、ディスクドライブ100の電子部の一部をなす。集積回路500は、上述の図4に関して論じられた1以上の機能を行うことができる。集積回路がより一般に能力を増すと、集積回路500のような集積回路は、ディスクドライブに付随する複数の機能を行うようになる。実施形態によっては、集積回路500は、ディスクドライブに関するほとんど全ての機能を行ってもよい。
【0046】
図5に示すように、集積回路500は、数種類のメモリに加えて、中央処理演算装置(central processing unit)510を含む。集積回路500に搭載されるメモリは、読み出し専用メモリ(“ROM”)520、ランダムアクセスメモリ(“RAM”)522、及びダイナミックランダムアクセスメモリ(“DRAM”)524を含む。集積回路500はまた、シリアルATA(Serial Advanced Technology Attachment)(“SATA”)インタフェース532等のインタフェースによってホストコンピュータに接続するためのモジュール530を含む。集積回路500はまた、参照数字540によって表される、サーボ動作を取り扱うためのサーボモジュールと、参照数字550によって表される読み出し書き込みチャンネルモジュールも含む。集積回路500はまた、ヘッドディスクアッセンブリに接続するためのインタフェースを含み、ヘッドディスクアッセンブリは通常、アクチュエータ、トランスデューシングヘッド、及びディスクスタックすなわち複数のディスクを含む。ヘッドディスクアッセンブリは、参照数字560で示されている。読み出し書き込みチャンネルモジュール550は、ヘッドディスクアッセンブリ560とバス562によって通信する。サーボコントローラモジュール540は、通信バス542を介してヘッドディスクアッセンブリ560に操作可能に接続される。
【0047】
前述のように、この実施形態では、PCBはチップ上システム(system on a chip)(“SoC”)及びモータドライバチップ(motor driver chip)(“Combo Chip”)を含む。図5はSoCを示し、モータドライバIC以外の図4の全電子部を含む。インタフェース562は、ヘッドに接続するためのインタフェースであり、具体的には、読み出し素子及び書き込み素子に接続するためのインタフェースである。インタフェース562は、読み出し/書き込みパス(read/write path)を含む。インタフェース542は、VCM及びスピンドルモータに接続するためのインタフェースである。一実施形態では、素子510から520と、522及び524は、図4に示すMPU430内にある。HDAは、図4における素子4100である。
【0048】
加えて、集積回路500は、参照数字580で示される、1以上のトレースポートあるいはJTAGポートを含む。バス532、562、542として、あるいはJTAG及び/又はトレースポート580として示されるインタフェースのそれぞれは、双方向矢印で示されるように、集積回路500への入力や集積回路500からの出力を有する。従って集積回路500は、双方向矢印の出力部によって表される多数の出力ポートと、双方向矢印532、542、562及び双方向矢印580の到着部によって表される複数の入力ポートを有する。ポート580のトレースポート部が出力専用であることには留意が必要である。
【0049】
一実施形態において、集積回路500は、多目的の使用というよりむしろ、特定の用途向けにカスタマイズされた集積回路(IC)であるアプリケーション専用集積回路(application-specific integrated circuit)(ASIC)である。集積回路500がどのようなタイプの集積回路であってもよいことには留意すべきである。ディスクドライブの1機能の取り扱い専用のコントローラであってもよい。例えば、この集積回路は、サーボ情報のほぼ全てを扱うためのコントローラであり得る。他の例としては、集積回路500が、読み出し及び書き込みチャンネルの取り扱い専用のコントローラであってもよい。更に他の実施形態では、集積回路がディスクドライブ100の複数の機能を処理してもよい。その上、可視ポート(visibility port)580(JTAGポートやトレースポート等)から情報を隠す必要があるどのような装置(device)あるいは機器(appliance)に対しても、チップ上システム(“System on a Chip”)ASICであることができる。すなわち、集積回路は、多数のどのような種類の装置でも使用でき、ディスクドライブ装置に限定されない。本明細書中に論じられる複数の実施形態は、多種の集積回路に等しく適用可能である。
【0050】
実施形態によっては、IC500内部のDRAM524が、外付けのDRAMに置き換えられ得る。バスがIC500と外付けDRAMとを接続する。
【0051】
図6は、実施形態の一例による、ファームウェア等のソフトウェアの認証方法600のフローチャートである。ソフトウェアという用語は、ディスクドライブのような装置に常駐のファームウェアにも及ぶ。ディスクドライブで用いるためのソフトウェアの認証方法600は、ディスクドライブへ入力されるソフトウェアを、秘密鍵を用いて暗号化すること610、及びディスクドライブのメモリから読み出した公開鍵を用いて、当該ソフトウェアをディスクドライブにおいて復号すること612を含む。ソフトウェア/ファームウェアの復号に用いられる公開鍵は、ROM520(図5に示す)からもたらされる。この公開鍵は、ソフトウェア/ファームウェアの復号に用いられる。
【0052】
ソフトウェア/ファームウェアは、秘密鍵で暗号化される。秘密鍵は再び用いられることは無い。装置、製造業者及びハードドライブの電源入力時には、SoC(ASIC)に内在するROMが、装置あるいはハードディスクに存在する公開鍵によりファームウェアを復号する。この鍵を隠す必要はない。方法600は、ソフトウェア/ファームウェアが正しく復号されたかを判断すること614を備える。ファームウェアの復号が正しく行われると、当該ファームウェアをロード及び実行すること624が認められる。ソフトウェア/ファームウェアの復号が正しく行われなかった場合、参照数字622で示すように、ディスクドライブの集積回路に付随する、少なくとも1つのスキャンポートが無効化される。
【0053】
図7は、実施形態の一例による、ソフトウェアの認証方法800のフローチャートである。方法800は、参照数字810で示すように、ロードあるいは実行されるファームウェアのハッシュを計算することを含む。また、方法800は、ハッシュを秘密鍵で暗号化すること811を含む。次に、参照数字812で示すように、ファームウェアと共に供給された暗号化されたハッシュが捜し出され復号される。そして、参照数字813で示すように、装置上でファームウェアのハッシュが計算される。次に、デシジョンボックス814によって示されるように、ハッシュの一致が判断される。ハッシュが一致すると、参照数字816で示すように、ファームウェアはロードされて実行される。ハッシュが一致しない場合は、与えられたファームウェアは実行されない。本発明の一実施形態においては、818で示されるように処理が無限ループに入り、権限の無いファームウェアをロードしようとする人物にとって、ハードウェアが本質的には使い物にならないようにする。
【0054】
この方法は、装置の起動時に、より迅速に実施される。製造者あるいはファームウェアのソース(source)にのみ知られている秘密鍵を用いたファームウェアイメージ全体の暗号化ではなく、ファームウェアのハッシュのみが暗号化されるのである。これにより製造中及び装置の各起動時の時間が節約できる。ファームウェアを「ブート(boot)」(電源投入時に実行)するHDD内のROMはそれから、ファームウェアのハッシュを計算する。このハッシュ値は、公開鍵で復号された暗号化ハッシュと比較される。公開鍵はROMあるいは装置の他のメモリに記憶されている。復号化されるファームウェアあるいはデータ量が小さいため、全ファームウェアの暗号化を選択するよりも高速で行われる。
【0055】
配線で接続され、変更不能なROMもある。他のROMには、電気的に消去可能であり(例えばフラッシュROM)、消去及び再プログラムが可能なものもある。現在論じられている実施形態の目的のためのROMは、真に「読み出し専用」である。このROMは、電源投入後の実行のための第1のソフトウェアあるいはコードを含む。ROMに関する当該コードは、他の場所から、例えば外部のシリアルフラッシュ(serial Flash)から、ASIC内部のあるいはASIC外部のRAM等のプロセッサによる実行が可能なメモリへ、ファームウェアをロードするタスクを有する。この処理は、コンピュータシステムの起動と同様である。この第1のROMは、従って、ディスク特有ではない。それどころか、例えば外部フラッシュ(external Flash)に設置された、ディスク特有ファームウェアの「ローダ(loader)」に過ぎない。
【0056】
既知の存在(entity)によって製造されたファームウェア以外が実行されるのを防ぐための防御の第一線は、ファームウェアに秘密鍵で署名することである。変更ができないブートROMは、その照合用公開鍵で署名の確認を行う。他の実施形態としては、ファームウェアイメージ全体が暗号化され得、そしてブートROMがファームウェアを復号してチェックし得る。
【0057】
他の実施においては、例えば、フラッシュROMが直接実行可能であってコピー又はロードされる必要がなければ、ブートROMは、当該フラッシュROMコンテンツの正当性(legitimacy)をチェックする。これはフラッシュコンテンツの署名をチェックすることによって成され得る。ブートROMといった、何らかの変更不能なコードの一部が、変更可能なファームウェアのチェック及び復号化をまず実行する限りは、ファームウェアのソースは妥当な確実性をもって決定される。当然ながら、ファームウェアへの署名に用いられた鍵に信頼がおけなければ、ソフトウェアのソースも信頼できない。
【0058】
この全ては、ファームウェアが署名されている(ファームウェアのハッシュが、製作団体のみが知る秘密鍵によって暗号化されている)こと、及びブートROMが署名をチェックするための照合鍵を有する(当該ハッシュは照合公開鍵を用いて復号され、ちょうど計算されたハッシュと比較することができる)ことを想定している。
【0059】
ハードドライブがホストと相互にやり取りして信頼のある関係を形成し、信頼できる作業を行う場合は、ホストはハードドライブに暗号化/復号化あるいはメッセージの署名を要求する。これらの暗号化/復号化のうちには、公開/秘密鍵を伴うものもある。秘密鍵を内密に保つことは重要である。秘密鍵が他の団体に取得されてしまえば、当該他の団体は当初の団体のふりをすることができる。これはディスクドライブに限らず、何らかの機器が他の機器と相互にやり取りし、信頼のおける関係を形成する場合には適用可能であるということには留意が必要である。
【0060】
SoC等の特定のICは、可視ポート(例えばJTAGポートやトレースポート)を有する。暗号作業を行う際には、可視ポート(例えばJTAGポートやトレースポート)を閉めるかもしくは無効にすることが望ましく、これによって、暗号作業が隠蔽される。加えて、暗号作業を行わない場合には、鍵や所定のアルゴリズム等の特定の秘密を保持するメモリが、プロセッサに対して不可視であることが望ましい
図8及び図9は、実施形態の一例による、暗号データあるいは暗号情報を含むROM520又はROM520の一部の概略図である。図8は、第1の状態における暗号ROMを示し、第1の状態では、ROM900全体がプロセッサに対して可視であり可視ポートが無効化されている。図9は、第2の状態における暗号ROM900を示し、第2の状態では、エントリベクトル(entry vector)のみがプロセッサに対して可視であり、可視ポートが有効である。図9に示す第2の状態は一般に、装置の通常の動作中、又はROM及びこれにアクセスするマイクロプロセッサの通常の動作中に用いられる。図8に示すように、暗号ROM900は、エントリベクトルと呼ばれるデータのセクション910、クリプトコード(crypto code)と称するデータのセクション920、クリプトキー(crypto key)なるその他のセクション930、及びイグジットベクトル(exit vector)なる最終セクション940を含む。
【0061】
エントリベクトル910は、クリプトコード920と呼ばれるブロックの中間にジャンプする分岐命令である。エントリベクトル910の各々は、何らかのアクション(暗号化や復号化又は署名等)を行う機能に対応する。ハードウェアは、プロセッサ510(図5参照)がエントリベクトル910の範囲内のアドレスの命令を実行していることを検出して可視ポート580(図5参照)(JTAGポートやトレースポート)を無効化し、ブレイクポイント(breakpoint)を無効化して、暗号ROM900のその他は有効にしてプロセッサから可視となるようにする。ファームウェアのどの部分も、何らかのものが暗号化、署名又は復号化されることを要求できるが、この要求が実行されている間(イグジットベクトルのうちの1つ(1つしかないこともある)によって終了するまで)、JTAGポート及び/又はトレースポート580(図5参照)といった可視ポートを無効化することによって、内蔵プロセッサ510の動作はマスク(mask)される。マスクする時間の長さは、イグジットベクトル940を介して終了するまでである。更に、この実行はブレイクポイントでは停止され得ないが、これは、当該期間ではブレイクポイントもまた無効化されているためである。暗号ROM内の機能が実行されると、イグジットベクトルのうちの一つを介して終了する。ハードウェアは、プロセッサがイグジットベクトル940の範囲内のアドレスの命令を実行していることを検出して、可視ポート580を有効とし、暗号ROM900の大部分をプロセッサ510からは見えなくする。侵入者(intruder)は再び、JTAGを用いて覗き見(peek)や詮索(poke)が可能となり、またプロセッサ510の実行をトレースできるが、ROM900の暗号部の部分は見られない。
【0062】
装置内で使用されるソフトウェアの認証方法は、ディスクドライブに入力されるソフトウェアを秘密鍵で暗号化すること、及び該装置にアクセス可能なメモリから読み出された公開鍵で当該ソフトウェアを復号することを含む。当該方法は、すでに暗号化されたソフトウェアの復号と一致すると、該装置に与えられたソフトウェアを実行することを含む。当該方法はまた、該ソフトウェアの公開鍵で復号されたソフトウェアが、該装置上で実行されるソフトウェアと一致しないことを判断すること、及び該ソフトウェアの実行を許可しないことを含む。実施形態によっては、請求項1の方法は更に、該ソフトウェアの公開鍵で復号されたソフトウェアが、該装置上で実行されるソフトウェアと一致しないことを判断すること、及び該装置に関する集積回路に付随する少なくとも一つのスキャンポート(scan port)を無効化することを含む。他の実施形態では、当該方法は、該ソフトウェアの公開鍵で復号されたソフトウェアが該装置上で実行されるソフトウェアと一致しないことを判断すること、及び該装置に関する集積回路に付随するほぼ全てのスキャンポートを無効化することを含む。当該方法の更に他の実施形態では、復号されたソフトウェアは該装置に与えられたソフトウェアと比較され、当該復号されたソフトウェアが暗号化されたソフトウェアと一致すると、実行のためにロードされる。一実施形態においては、このソフトウェアは、該装置に関するハードウェア素子に組み込まれる命令のセットを含むファームウェアである。更に他の実施形態において、該装置はディスクドライブである。
【0063】
装置の操作に用いられるファームウェア上のハッシュコード(hash code)を決定すること、秘密鍵を用いて決定されたハッシュコードを暗号化すること、及び公開鍵を該装置にアクセス可能なメモリに記憶すること、を含む方法がある。装置に与えられたファームウェアの実行前に、該装置に与えられたファームウェアのハッシュコードが決定される。すでに暗号化されたファームウェアのハッシュコードは、復号されて、該装置上での実行のため与えられたファームウェアのハッシュコードと比較される。
【0064】
該装置に与えられたファームウェアが、該装置によってロードされ実行されることが認められるのは、復号されたハッシュコードが、該装置上での実行のため与えられたファームウェアのハッシュコードと一致する場合である。復号されたハッシュコードが、該装置上での実行のため与えられたファームウェアのハッシュコードと一致しない場合には、該装置に与えられたファームウェアをロードし実行することは防止される。実施形態によっては、該装置は、1以上のトレースポートを含む集積回路である。該方法は更に、トレースポートのうちの少なくとも一つを無効化することを含む。他の実施形態では、この集積回路は更にJTAGポートを含む。該方法は更に、このJTAGポートを無効化することを含む。実施形態によっては、集積回路がアプリケーション専用集積回路であることもある。さらに他の実施形態では、集積回路は、ディスクドライブの複数の機能を扱うアプリケーション専用集積回路である。
【0065】
ディスクドライブ100は、データを表す情報を記憶するディスク120、アクチュエータ130、及びアクチュエータに取り付けられたトランスデューサを含む。ディスクは更に、データを表す情報及びサーボパターンを有する。アクチュエータはディスク表面上でトランスデューサを動かし、このトランスデューサとディスクの変換関係(transducing relation)が保たれる。ディスクドライブはまた、ディスクドライブの少なくとも一つの機能を制御するための集積回路を含む。集積回路はメモリを含むか、あるいはメモリへのアクセスを有する。
【0066】
上述の方法600、700を行うためのプログラミングを実行するコンピュータシステムのブロック図は、図10に示される。コンピュータ2010の形式の一般的な計算装置は、プロセッシングユニット(processing unit)2002、メモリ2004、リムーバブルストレージ(removable storage)2012、及びノンリムーバブルストレージ(non-removable storage)2014を含んでもよい。メモリ2004は、揮発性メモリ2006及び不揮発性メモリ2008を含んでもよい。コンピュータ2010は、揮発性メモリ2006と不揮発性メモリ2008、リムーバブルストレージ2012とノンリムーバブルストレージ2014といった多様なコンピュータ読取り可能なメディアを含むコンピュータ環境を含んでも、あるいはこのようなコンピュータ環境へのアクセスを有してもよい。コンピュータストレージはRAM、ROM、消去可能PROM(EPROM)、電気的消去可能PROM(EEPROM)、フラッシュメモリや他のメモリ技術、CD−ROM、DVD、その他の光学ディスクストレージ、磁気カセット、磁気テープ、磁気ディスクストレージやその他の磁気ストレージ装置、あるいはその他のコンピュータ読取り可能な命令を記憶できるメディアを含む。コンピュータ2010は、入力2016、出力2018、及び通信接続2020を含むコンピュータ環境を含んでも、あるいはこのようなコンピュータ環境へのアクセスを含んでもよい。コンピュータは、1以上のリモートコンピュータ(remote computer)と接続するのに、通信接続を用いてネットワーク化された環境において動作してもよい。リモートコンピュータは、パーソナルコンピュータ(PC)、サーバ、ルータ、ネットワークPC、ピアデバイス(peer device)や他の一般的なネットワークノード(network node)等を含んでもよい。通信接続は、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)や他のネットワークを含んでもよい。マイクロプロセッサ又はディスクドライブの他の選択された回路やコンポーネントが、このようなコンピュータシステムであってもよい。
【0067】
コンピュータ読取り可能なメディアに記憶されたコンピュータ読取り可能な命令は、コンピュータ2010のプロセッシングユニット2002によって実行可能である。ハードドライブ、CD−ROM、及びRAMは、コンピュータ読取り可能なメディアを含む物品の例である。機械読み取り可能なメディアは、機械によって実行される場合に、ソフトウェアコードが入力ポートに提供されていることを判断すること、及びソフトウェアコードを認証する認証ルーチン(authentication routine)を有効化すること、を当該機械に行わせる命令を備える。上述のように、機械読み取り可能なメディアは、上述の方法600、700のどちらかを実行するための命令を含み得る。例えば方法700を実施する際に、機械読み取り可能なメディアは、ソフトウェアコードが入力ポートに提供されていることの判断と、ソフトウェアコードを認証する認証ルーチンの有効化をもたらす。機械読み取り可能なメディアは更に、認証ルーチンがソフトウェアコードの認証に失敗した場合に、出力ポートの無効化を当該機械に行わせる命令を含む。他の実施形態では、機械読み取り可能なメディアは、機械によって実行される場合に、認証ルーチンがソフトウェアコードの認証に失敗すると、出力ポートのマスクを当該機械に行わせる更なる命令を含む。更に他の実施形態では、機械読み取り可能なメディアは、機械によって実行される場合に、認証ルーチンがソフトウェアコードの認証に失敗すると、当該機械にソフトウェアコードの実行を阻止させる更なる命令を備える。
【0068】
上述の特定の実施形態の説明は、本発明の一般的な性質を効果的に明らかにしており、現在の知識の適用により、包括的な概念から逸脱することなく、様々な応用のために容易に修正及び/又は適合が可能である。従って、このような適合及び修正は、開示された実施形態の等価物の意義及び範囲内に包括されることが意図されている。
【0069】
本明細書において採用された語法や用語は、説明を目的とするものであり、限定のためではないということが理解される。従って本発明は、添付の請求項の精神と範囲内に含まれるこのような代替物、修正、等価物、及び変形全てを包含することが意図されている。
【図面の簡単な説明】
【0070】
【図1】本明細書中で説明される実施形態の一例による、ディスクドライブの分解図である。
【図2】本明細書中で説明される実施形態の一例による、カバーが取り除かれた状態のディスクドライブの図。
【図3】実施形態の一例による、ディスクの一部と、第1のサーボウェッジ及び第2のサーボウェッジを示す図。
【図4】実施形態の一例による、ファームウェアを含む装置のブロック図。
【図5】実施形態の一例による、少なくとも1つのスキャンポートを有する集積チップの概略図。
【図6】実施形態の一例による、ソフトウェアを認証する方法のフローチャート。
【図7】実施形態の一例による、ソフトウェアの認証方法のフローチャート。
【図8】実施形態の一例による、暗号ROMの概略図。
【図9】実施形態の一例による、通常動作中の暗号ROMの概略図。
【図10】実施形態の例で説明された方法及びコントローラを実施するためのコンピュータシステムのブロック図の例。
【符号の説明】
【0071】
100…ディスクドライブ、102…ハウジング、104…ハウジングベース、106…ハウジングカバー、110…磁気リターンプレート、112…ボイスコイルモータ、120、120´…ディスク、121…クランプ、122…スピンドル、127、128…サーボウェッジ、129…トラック、130…回転アクチュエータ、132…ベアリング、134…ボイスコイル、146…トランスデューシングヘッド、150…ランプ、164…アクチュエータアーム、165…ヘッドスライダ、166…ヘッドサスペンションアッセンブリ、520…ディスク表面。

【特許請求の範囲】
【請求項1】
装置内で使用されるソフトウェアの認証方法であって、
ディスクドライブに入力されるソフトウェアを秘密鍵で暗号化することと、
前記装置と通信を行うメモリから読み出した公開鍵を用いて、当該ソフトウェアを前記装置において復号することと、
を備える認証方法。
【請求項2】
すでに暗号化されたソフトウェアの復号と一致する、前記装置に入力されるソフトウェアを実行すること、を更に備える請求項1に記載の方法。
【請求項3】
前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記ソフトウェアの実行を許可しないことと、
を更に備える請求項1に記載の方法。
【請求項4】
前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記装置に関する集積回路に付随する少なくとも一つのスキャンポートを無効化することと、
を更に備える請求項1に記載の方法。
【請求項5】
前記ソフトウェアの前記公開鍵で復号された前記ソフトウェアが、前記装置上で実行されるソフトウェアと一致しないと判断することと、
前記装置に関する集積回路に付随するほぼ全てのスキャンポートを無効化することと、
を更に備える請求項1に記載の方法。
【請求項6】
復号されたソフトウェアと、前記装置に与えられたソフトウェアとを比較することと、
前記ソフトウェアをロードすることと、
前記ロードされたソフトウェアを実行することと、
を更に備える請求項1に記載の方法。
【請求項7】
前記ソフトウェアは、前記装置に関するハードウェア素子に組み込まれる命令のセットを含むファームウェアである、請求項1に記載の方法。
【請求項8】
前記装置はディスクドライブである、請求項1に記載の方法。
【請求項9】
装置の操作に用いられるファームウェア上のハッシュコードを決定することと、
秘密鍵を用いて前記決定されたハッシュコードを暗号化することと、
前記装置にアクセス可能なメモリに公開鍵を記憶することと、
前記装置に与えられたファームウェアの実行前に、前記装置に与えられたファームウェアのハッシュコードを決定することと、
前記ファームウェアのすでに暗号化されたハッシュコードを復号することと、
前記復号されたハッシュコードを、前記装置上での実行のために与えられたファームウェアのハッシュコードと比較することと、
を備える方法。
【請求項10】
前記復号されたハッシュコードが、前記装置上での実行のため与えられたファームウェアのハッシュコードと一致する場合、前記装置に与えられた前記ファームウェアを前記装置によってロードし実行することが認められる、請求項9に記載の方法。
【請求項11】
前記復号されたハッシュコードが、前記装置上での実行のため与えられたファームウェアのハッシュコードと一致しない場合、前記装置に与えられた前記ファームウェアを前記装置によってロードし実行することは防止される、請求項9に記載の方法。
【請求項12】
前記装置は集積回路である、請求項9に記載の方法。
【請求項13】
集積回路であって、
プロセッサと、
前記プロセッサに通信可能に接続される読み出し専用メモリと、
前記集積回路に付随する可視ポートであって、前記集積回路は前記プロセッサ及び前記読み出し専用メモリに関する情報を該可視ポートに提供することが可能であり、前記読み出し専用メモリは少なくとも暗号情報の部分を含む可視ポートと、
前記プロセッサの暗号動作中、前記可視ポートをマスクする可視ポート無効化手段と、
を備える集積回路。
【請求項14】
前記読み出し専用メモリの前記部分は暗号情報を含み、当該暗号情報は、
エントリベクトルと、
イグジットベクトルであって、前記可視ポート無効化手段は、前記エントリベクトルが要求された時間と前記イグジットベクトルが実行される時間との間、前記可視ポートをマスクする、イグジットベクトルと、
を含む請求項13に記載の集積回路。
【請求項15】
コンピュータ読み取り可能なメディアであって、コンピュータによって実行された場合に、当該コンピュータに、
ソフトウェアコードが入力ポートに提供されていると判断することと、
前記ソフトウェアコードを認証する認証ルーチンを有効化することと、
を行わせる命令を提供する、コンピュータ読み取り可能なメディア。
【請求項16】
コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したら出力ポートを無効化すること、を当該コンピュータに行わせる命令を更に備える、請求項15に記載のコンピュータ読み取り可能なメディア。
【請求項17】
コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したら出力ポートをマスクすること、を当該コンピュータに行わせる命令を更に備える、請求項15に記載のコンピュータ読み取り可能なメディア。
【請求項18】
コンピュータによって実行された場合に、前記認証ルーチンが前記ソフトウェアコードの認証に失敗したらソフトウェアコードの実行を当該コンピュータに阻止させる命令を更に備える、請求項15に記載のコンピュータ読み取り可能なメディア。

【図1】
image rotate

【図2】
image rotate

【図3】
image rotate

【図4】
image rotate

【図5】
image rotate

【図6】
image rotate

【図7】
image rotate

【図8】
image rotate

【図9】
image rotate

【図10】
image rotate


【公開番号】特開2009−163701(P2009−163701A)
【公開日】平成21年7月23日(2009.7.23)
【国際特許分類】
【出願番号】特願2008−93641(P2008−93641)
【出願日】平成20年3月31日(2008.3.31)
【出願人】(000003078)株式会社東芝 (54,554)
【Fターム(参考)】