(57)【要約】本発明は、電子デバイス、例えば、セル電話が、別のデバイスからコピーされた（かつそのデバイスのみに認可されている）ソフトウエアで動作するのを防止するのに使用することのできる方法およびデバイスを目的とする。本発明は、そのような方法およびデバイスを使用するデバイス、例えば、セル電話なども目的とする。本発明のいくつかの態様においては、（デバイス内に記憶されるソフトウエアに関連する）プログラム識別子と、デバイスの照合識別子とを比較することによって、ソフトウエアがそのデバイスでの使用に対して認可されているかどうかを判定する。いくつかの態様おいては、比較結果に対して実質的にハードウエア内で応答することによって、プログラム識別子と照合識別子とが互いに一致しない場合に、デバイスが動作禁止にされるのを防止する、検査中のソフトウエアの能力が低くなるようにされる。
2005524919.tif 000002
【特許請求の範囲】
【請求項１】
デバイスのプロセッサコア内部で使用する方法であって、
前記プロセッサコア内部からの照合識別子を受け取るための入力を設けること；
システムメモリ内に記憶されたソフトウエアに関連するプログラム識別子を受け取るための入力を設けること；
少なくとも所定の相互対応尺度を有する、照合識別子およびプログラム識別子の受領、またはその欠如を意味するデータを生成すること；および
少なくとも事前設定された所定の相互対応尺度を有するプログラム識別子および照合識別子の受領を前記データが示さない限り、前記プロセッサコアの動作特性を動作禁止にすることを含み、前記受領、またはその欠如を意味するデータに、実質的にハードウエア内で応答することを含む、前記方法。
【請求項２】
応答することが、システムメモリ内に記憶されたソフトウエアと独立に応答することを含む、請求項１に記載の方法。
【請求項３】
応答することが、排他的にハードウエア内で応答することを含む、請求項１に記載の方法。
【請求項４】
データに応答することが、アドレス／データバスから分離されたデータ経路を介してデータを受け取ることを含む、請求項１に記載の方法。
【請求項５】
プロセッサコア内に記憶された識別子コードを暗号化すること、および該暗号化された識別子コードに応じて照合識別子を生成することを含む、請求項１に記載の方法。
【請求項６】
暗号化することが、暗号化戦略と、システムメモリに記憶されたソフトウエアによって供給されるシードとに応じて、識別子コードを暗号化することを含む、請求項５に記載の方法。
【請求項７】
プロセッサコア内に識別子コードを記憶すること、および前記プロセッサコアの外部から識別子コードの形態への間接アクセスを提供することをさらに含む、請求項１に記載の方法。
【請求項８】
間接アクセスを提供することが、識別子コードの暗号化形態への間接アクセスを提供することを含む、請求項７に記載の方法。
【請求項９】
識別子コードの形態に応じてプログラム識別子を生成すること、および該プログラム識別子をシステムメモリ内に記憶することをさらに含む、請求項７に記載の方法。
【請求項１０】
解読を用いて識別子コードを特定すること、該識別子コードおよび暗号化戦略に応じてプログラム識別子を生成すること、および該プログラム識別子をシステムメモリ内に記憶されたソフトウエア内に記憶することをさらに含む、請求項８に記載の方法。
【請求項１１】
プロセッサコアの外部からの識別子コードへの直接アクセスを防止することをさらに含む、請求項６に記載の方法。
【請求項１２】
応答することが、所定の事象からの所定持続時間内に、少なくとも所定の相互対応尺度を有するプログラム識別子および照合識別子の受領をデータが示さない限り、プロセッサの動作特性を動作禁止にすることを含む、請求項１に記載の方法。
【請求項１３】
エミュレータが起動状態の場合に、動作禁止にすることが禁止される、請求項１に記載の方法。
【請求項１４】
動作禁止にすることが、所定の事象からの所定持続時間内に、少なくとも所定の相互対応尺度を有するプログラム識別子および照合識別子の受領をデータが示さない限り、ウォッチドッグタイマーのリフレッシュを動作禁止にすることを含む、請求項１に記載の方法。
【請求項１５】
エミュレータが起動状態である場合に、ウォッチドッグタイマーが動作禁止にされる、請求項１４に記載の方法。
【請求項１６】
デバイスが、セル電話である、請求項１に記載の方法。
【請求項１７】
プロセッサコアであって、
該プロセッサコア内部からの照合識別子と、システムメモリ内に記憶されたソフトエウアに関連するプログラム識別子とを受け取り、少なくとも所定の相互対応尺度を有する照合識別子およびプログラム識別子の受領、またはその欠如を意味するデータを生成するコンパレータ；および
対応尺度を示すデータに応答する動作禁止システムであって、前記プログラム識別子と前記照合識別子との間に少なくとも所定の対応尺度があることを前記データが示さない限り、前記プロセッサコアの動作特性を動作禁止にする信号を生成する前記動作禁止システムを含む、前記プロセッサコア。
【請求項１８】
照合識別子を記憶するレジスタをさらに含み、コンパレータが、プロセッサコアとシステムメモリとを結合するデータ経路と分離されたデータ経路によって、前記レジスタに動作可能に結合されている、請求項１７に記載のプロセッサコア。
【請求項１９】
動作禁止回路が、プロセッサコアとシステムメモリとを結合するデータ経路から分離されたデータ経路を介してデータを受け取る、請求項１７に記載のプロセッサコア。
【請求項２０】
動作禁止回路が、プロセッサコアとシステムメモリとを結合するデータ経路から分離されたデータ経路を介してデータを受け取る、請求項１８に記載のプロセッサコア。
【請求項２１】
プロセッサコアに記憶された識別子コードを暗号化し、該暗号化された識別子コードに応じて照合識別子を生成する、ディジタル回路をさらに含む、請求項１７に記載のプロセッサコア。
【請求項２２】
プロセッサコアが、該プロセッサコアの外部から識別子コードの形態への間接アクセスを提供する、請求項２１に記載のプロセッサコア。
【請求項２３】
プロセッサコアが、識別子コードの暗号化された形態への間接アクセスを提供する、請求項２１に記載のプロセッサコア。
【請求項２４】
プロセッサコアが、該プロセッサコアの外部からの識別子コードへの直接アクセスを防止する、請求項２１に記載のプロセッサコア。
【請求項２５】
エミュレータが起動状態の場合には、動作禁止システムが、動作禁止の信号を生成しない、請求項１７に記載のプロセッサコア。
【請求項２６】
動作禁止システムが、ウォッチドッグタイマーのリフレッシュを動作禁止にする回路を含む、請求項１７に記載のプロセッサコア。
【請求項２７】
エミュレータが起動状態の場合に、ウォッチドッグタイマーが、動作禁止にされる、請求項２６に記載のプロセッサコア。
【請求項２８】
コンパレータが、ディジタル回路である、請求項１７に記載のプロセッサコア。
【請求項２９】
動作禁止システムが、回路である、請求項１７に記載のプロセッサコア。
【請求項３０】
照合識別子が、プロセッサコアの外部端子を介してアクセス可能ではない、請求項１７に記載のプロセッサコア。
【請求項３１】
プロセッサコアであって、
該プロセッサコア内部から照合識別子を受け取るための入力；
システムメモリ内に記憶されたソフトウエアと関連するプログラム識別子を受け取るための入力；
少なくとも所定の相互対応尺度を有する照合識別子およびプログラム識別子の受領、またはその欠如を意味するデータを生成する手段；および
該受領、またはその欠如を意味するデータに、実質的にハードウエア内で、応答する手段であって、少なくとも所定の相互対応尺度を有するプログラム識別子および照合識別子の受領を前記データが意味しない限り、前記プロセッサコアの動作特性を動作禁止にする手段を含む前記応答する手段を含む、前記プロセッサコア。
【請求項３２】
電子デバイスであって、
メモリ；
該メモリ内に記憶されて、プログラム識別子を含むソフトウエア；
データ経路を介して前記メモリに結合されたプロセッサコアを含み、該プロセッサコアはコンパレータを含み、該コンパレータは、前記プログラム識別子と照合識別子とを受け取り、それらに応じて、前記プログラム識別子と前記照合識別子との対応尺度を示す信号を生成するとともに、前記プロセッサコアはさらに動作禁止システムを含み、該動作禁止システムは、前記コンパレータが生成する信号に応答して、前記照合識別子と前記プログラム識別子との間に少なくとも所定の対応尺度があることを前記信号が示さない限り、前記電子デバイスの動作特性を動作禁止にするように構成されている、前記電子デバイス。
【請求項３３】
コンパレータおよび動作禁止システムが、回路である、請求項３２に記載の電子デバイス。
【請求項３４】
電子デバイスが、セル電話である、請求項３２に記載の電子デバイス。
【請求項３５】
プロセッサコアが、照合識別子を記憶するレジスタをさらに含み、コンパレータが、前記プロセッサコアとメモリとを結合するデータ経路と分離されたデータ経路によって、前記レジスタに動作可能に結合されている、請求項３２に記載のデバイス。
【請求項３６】
動作禁止システムが、プロセッサコアとシステムメモリとを結合するデータ経路と分離されたデータ経路を介して、データを受け取る、請求項３２に記載のデバイス。
【請求項３７】
プロセッサが、該プロセッサコアに記憶された識別子コードを暗号化して、該暗号化された識別子コードに応じて照合識別子を生成する、ディジタル回路をさらに含む、請求項３２に記載のデバイス。
【請求項３８】
プロセッサコアが、該プロセッサコアの外部から識別子コードの形態への間接アクセスを提供する、請求項３７に記載のデバイス。
【請求項３９】
プロセッサコアが、識別子コードの暗号化された形態への間接アクセスを提供する、請求項３７に記載のデバイス。
【請求項４０】
プロセッサコアが、該プロセッサコアの外部から識別子コードへの直接アクセスを防止する、請求項３７に記載のデバイス。
【請求項４１】
エミュレータが起動状態の場合に、動作禁止システムが、動作禁止の信号を生成しない、請求項３２に記載のデバイス。
【請求項４２】
動作禁止システムが、ウォッチドッグタイマーのリフレッシュを動作禁止にする回路を含む、請求項３２に記載のデバイス。
【請求項４３】
エミュレータが起動状態の場合に、ウォッチドッグタイマーを動作禁止にする回路を、動作禁止システムが含む、請求項４２に記載のデバイス。
【請求項４４】
照合識別子が、プロセッサコアの外部端子を介してアクセス可能ではない、請求項３２に記載のデバイス。
【請求項４５】
移動通信用のセル電話であって、
プロセッサコアとメモリとを含むプロセッサを有し、前記プロセッサコアは、データ経路を介して前記メモリに結合されており、前記メモリは、ランタイムプログラムおよびそのソフトウエアに関連する識別子を含むソフトウエアを記憶するのに使用可能であり、
その改良が、前記プロセッサコア内部にあるコンパレータであって、前記プロセッサコア内部からの照合識別子と、システムメモリ内に記憶された、ソフトウエアに関連するプログラム識別子とを受け取り、少なくとも所定の相互対応尺度を有する照合識別子およびプログラム識別子の受領、またはその欠如を意味するデータを生成する、前記コンパレータ；および
前記プロセッサコア内部にあり、対応尺度を示すデータに応答する動作禁止システムであって、前記プログラム識別子と前記照合識別子との間に少なくとも所定の対応尺度があることを前記データが示さない限り、前記プロセッサコアの動作特性を動作禁止にする信号を生成する前記動作禁止システムを含む、前記セル電話。
【発明の詳細な説明】
【発明の詳細な説明】
【０００１】
発明の分野
本発明は、電子デバイスに関し、より具体的には、ソフトウエアを使用するデバイスであって、そのソフトウエアが、認可されずにプログラムされているソフトウエア利用電子デバイス（例えば、セルラー電話）の使用を困難にすることが望ましいデバイスに関する。
【０００２】
発明の背景
セルラー電話またはセル電話は、移動電話と呼ばれることもあるが、移動通信システムにおいて一般的に使用されている。すべてではないにしても、ほとんどのセル電話は、ソフトウエア利用デバイスであり、これは、１つまたは２つ以上の内部コンピュータ、すなわちプロセッサ、およびそのようなプロセッサ（単数または複数）の動作を指示するソフトウエアを有することを意味する。この手法によれば、セル電話製造業者にいくつかの利点をもたらすことができる。第１に、セル電話がソフトウエア利用でない場合に必要とされるよりも、開発時間およびライフサイクルコストを少なくすることができる。第２に、動作特性が、おおむね電話内部に記憶されるソフトウエアの機能となる。これによって、製造業者は、電話の各モデルに対して、単に異なるバージョンのソフトウエアを１つずつ開発することによって、様々なモデルのセル電話を製造することが可能となる。
【０００３】
しかしながら、１つの問題は、ユーザーが、製造業者の許可または認証なしに別の電話からソフトウエアをコピーすることによって、セル電話を「再プログラム」する場合があることである。これは、２つの異なる状況において発生する。第１の状況は、ユーザーが、アップグレード費用を支払わずに、電話をアップグレードしようとする場合である。例えば、ある場合には、ハイエンド電話からローエンド電話にソフトウエアを単にコピーするだけで、ローエンド電話をハイエンド電話に変換することができる。これによって、潜在的なハイエンド電話の売上が減少し、そのために電話製造業者の利益とともに、ハイエンドソフトウエア供給業者の利益が損われる。第２の状況は、ユーザ−が盗難電話を使用しようとする場合である。この理由は、それぞれの電話には、一般にＩＭＥＩ（国際携帯電話機識別（International Mobile Equipment Identity））コードと呼ばれる固有のコードが割り当てられており、これが盗難電話の使用を防止するのに用いられるからである。ＩＭＥＩコードは、通常、電話ソフトウエアに埋め込まれており、ユーザーが通話を開始するときに通信ネットワークに伝送される。ネットワークは、伝送されたＩＭＥＩコードをデータベースと比較して、その電話に盗難の報告がされているかどうかを判定する。その電話に対して盗難の報告がされている場合には、ネットワークは、その電話にネットワーク上での通話を許可しない。しかしながら、盗難電話が、正当な電話（すなわち、盗難にあっていない電話）からコピーされた（ＩＭＥＩコードを含む）ソフトウエアで再プログラムされている場合には、ＩＭＥＩチェックが無効になるので、問題が発生する。その後に、盗難電話は、表面上は正当と思われるＩＭＥＩコードを伝送して、ネットワーク上での通話を許可される。
【０００４】
したがって、別の電話からコピーされた（その電話にだけ認可されている）ソフトウエアで、電話が動作するのを防止するための方法が求められている。
現在、いくつかの方法が存在する。１つの方法では、ユーザーが、電話のスイッチを入れるときに、ＰＩＮ（個人識別番号）コード、またはライセンス番号を入力する必要がある。しかしながら、この方法は、盗難電話、または当初はローエンドであった電話が、コピーされたソフトウエアで動作可能にされるのを防止せず、その代わりに、ユーザーに対して、ＰＩＮコードまたは、認可された電話もしくはハイエンド電話のライセンス番号を入力することを単に要求する。
【０００５】
第２の方法は、各電話にハードウエア識別子を与える。電話の中のソフトウエアが、このハードウエア識別子を読み出し、それをソフトウエアに記憶された照合識別子と比較して、そのハードウエア識別子が照合識別子と一致しない場合には、電話を動作禁止にする。しかしながら、この方法は、比較的容易に無効にされてしまう。デバッガーおよび／またはエミュレータを使用して、検査および動作禁止の動作を実行するソフトウエアの部分を識別することができる。次いで、そのようなソフトウエアの部分を置換するか、または変更することができる。
したがって、電話のような電子デバイスを、別のデバイスからコピーされた（そのデバイスにのみ認可されている）ソフトウエアで動作するのを防止するための、その他の方法が求められている。
【０００６】
発明の概要
本発明は、例えばセル電話などの電子デバイスが、別のデバイスからコピーされた（そのデバイスのみに使用が認可されている）ソフトウエアで動作するのを防止するのを支援する。
本発明の第１の側面によれば、そのようなデバイス（例えば、電話）で使用されて、そのデバイスを制御するプロセッサコア内部で使用する方法は、前記プロセッサコア内部からの照合識別子を受け取るための入力を設けること；システムメモリ内に記憶されたプログラムに関連するプログラム識別子を受け取るための入力を設けること；少なくとも所定の相互対応尺度を有する照合識別子およびプログラム識別子の受領、またはその欠如を意味するデータを生成すること；および少なくとも所定の相互対応尺度を有するプログラム識別子および照合識別子の受領を前記データが示さない限り、プロセッサコアの動作特性を動作禁止にすることを含み、受領、またはその欠如を意味するデータに、実質的にハードウエア内で応答することを含む。
【０００７】
比較結果に対して実質的にハードウエア内で応答することによって、プログラム識別子と照合識別子が互いに一致しない場合に、デバイスが動作禁止にされるのを防止する、検査中のソフトウエアの能力が低下することになる。
本発明の別の側面によれば、プロセッサコアは、該プロセッサコア内部からの照合識別子と、システムメモリ内に記憶されたソフトエウアに関連するプログラム識別子とを受け取り、少なくとも所定の相互対応尺度を有する照合識別子およびプログラム識別子の受領、またはその欠如を意味するデータを生成するコンパレータ；および対応尺度を示すデータに応答する動作禁止システムであって、前記プログラム識別子と前記照合識別子との間に少なくとも所定の対応尺度があることを前記データが示さない限り、プロセッサコアの動作特性を動作禁止にする信号を生成する前記動作禁止システムを含む。
【０００８】
本発明の別の側面によれば、プロセッサコアは、該プロセッサコア内部からの照合識別子を受け取るための入力；システムメモリ内に記憶されたソフトウエアと関連するプログラム識別子を受け取るための入力；少なくとも所定の相互対応尺度を有する照合識別子およびプログラム識別子の受領、またはその欠如を意味するデータを生成する手段；および受領、またはその欠如を意味するデータに、実質的にハードウエア内で、応答する手段であって、少なくとも所定の相互対応尺度を有するプログラム識別子および照合識別子の受領を前記データが意味しない限り、前記プロセッサコアの動作特性を動作禁止にする手段を含む応答の手段を含む。
【０００９】
本発明の別の側面によれば、電子デバイスは、メモリ；該メモリ内に記憶されて、プログラム識別子を含むソフトウエア；データ経路を介して前記メモリに結合されたプロセッサコアを含み、該プロセッサコアがコンパレータを含み、該コンパレータは、前記プログラム識別子と照合識別子とを受け取り、それらに応じて、前記プログラム識別子と前記照合識別子との対応尺度を示す信号を生成するとともに、前記プロセッサコアがさらに動作禁止システムを含み、該動作禁止システムは、前記コンパレータが生成する信号に応答して、前記照合識別子と前記プログラム識別子との間に少なくとも所定の対応尺度があることを前記信号が示さない限り、前記電子デバイスの動作特性を動作禁止にするように構成されている。
【００１０】
本発明の別の側面によれば、移動通信用のセル電話が提供される。このセル電話は、プロセッサコアとメモリとを含むプロセッサを有し、前記プロセッサコアは、データ経路を介して前記メモリに結合されており、前記メモリは、ランタイムプログラムおよびそのソフトウエアに関連する識別子を含むソフトウエアを記憶するのに使用可能であり、改良が、前記プロセッサコア内部にあるコンパレータであって、前記プロセッサコア内部からの照合識別子と、システムメモリ内に記憶されたソフトウエアに関連するプログラム識別子とを受け取り、少なくとも所定の相互対応尺度を有する照合識別子およびプログラム識別子の受領、またはその欠如を意味するデータを生成する前記コンパレータ；および前記プロセッサコア内部にあり、対応尺度を示すデータに応答する動作禁止システムであって、プログラム識別子と照合識別子との間に少なくとも所定の対応尺度があることを前記データが示さない限り、前記プロセッサコアの動作特性を動作禁止にする信号を生成する前記動作禁止システムを含む。
本発明の１または２以上の側面に従う１または２以上の態様による潜在的な有利さにも拘わらず、従来技術の欠点を解決する本発明のいずれの側面によるいずれの態様につていも必須の要件は存在しないことを理解すべきである。
【００１１】
詳細な説明
図１に示す、移動通信システムと接続して使用するためのセル電話５０に関して本発明を以下に説明する。しかしながら、本発明は、セル電話での使用、さらに通信システムでの使用にも限定されるものではないことを認識すべきである。セル電話は、本発明を利用することのできる電子デバイスの例にすぎない。
図１を参照すると、セル電話５０は、ユーザー５４から入力信号５２を受け取る。セル電話５０は、この信号を処理して出力信号５６を生成し、この出力信号が通信ネットワーク５８に伝送される。この入力信号および出力信号は、通常、図に示すように、それぞれ音声信号および無線信号である。
【００１２】
セル電話５０は、１つまたは２つ以上のプロセッサ（図１には示さず）を含む。そのようなプロセッサの１つは、ベースバンドプロセッサと呼ばれる。ベースバンドプロセッサは、（例えば、圧縮などの）信号処理動作を実行するとともに、ＩＭＥＩコードを通信システムに伝送させる命令を実行する。
図２は、本発明の一態様による、ベースバンドプロセッサ６０の一部分のブロック図であり、このベースバンドプロセッサは、図１のセル電話５０に使用することができる。
ベースバンドプロセッサ６０は、プロセッサコア８０および関連するメモリ８２を含む。関連するメモリ８２は、本明細書においてはシステムメモリ８２またはユーザメモリ８２とも呼ぶ。このプロセッサコア８０およびシステムメモリ８２は、バス８４で接続されている。バスは、通常、パラレル型インターフェイスであり、さらに、ベースバンドディジタルプロセッサ６０の一部であるか、またはそうではない他のデバイス（図示せず）にも接続することができる。必須ではないが、１つまたは２つ以上の他のインターフェイス、例えばシリアル型インターフェイス８５を、プロセッサコア８０に接続することもできる。
【００１３】
システムメモリ８２は、ランタイムプログラム９４を記憶するのに使用する。このランタイムプログラム９４は、ＩＭＥＩコード９６と、（ＩＭＥＩコード９６をセル電話からネットワークに伝送するための命令を含む（図１））電話の平常使用時にプロセッサコア８０が実行する命令とを含む。ランタイムプログラム９４は、システムメモリに記憶されたソフトウエアを識別するために使用することのできるプログラム識別子９８をさらに含む。プログラム識別子９８は、それに限定はされないが、ディジタルコードを含む、任意の形態とすることができる。このディジタルコードは、システムメモリに記憶するか、またはシステムに記憶した一連の命令に応じて生成することができる。
システムメモリ８２は、それに限定はされないが、再プログラム可能型メモリコンポーネント（例えば、ＦＬＡＳＨまたはＥＥＰＲＯＭ）、交換可能なメモリコンポーネント、および／またはそれらの組合せを含む、任意の形態とすることができる。システムメモリ８２は、必須ではないが、プロセッサコア８０とともに、チップ上および／または単一パッケージ中に統合することができる。
【００１４】
上述のように、ユーザーは、別の電話からの（その電話にのみ使用が認可されている）ソフトウエアをコピーすることによって、セル電話を「再プログラム」しようとすることがある。
これを念頭において、図２を再び参照すると、プロセッサコアのこの態様は、別の電話からコピーされた（その電話のみ使用が認可されている）ソフトウエアで電話が動作するのを防止するためのセキュリティシステム１００を含む。セキュリティシステム１００は、照合識別子１０１、コンパレータ１０２および動作禁止システム１０３を含む。上記のプログラム識別子９８と同様に、照合識別子１０１は、それに限定はされないが、ディジタルコードの形態を含む、任意の形態とすることができる。この照合識別子１０１は、予め生成して不揮発性記憶場所に記憶するか、または、図４を参照として以下に記するように、セル電話の動作中に生成することができる。
【００１５】
動作に際しては、データ経路１０４、１０５を使用して、プログラム識別子９８および照合識別子１０１がそれぞれコンパレータ１０２に供給される。このコンパレータ１０２は、識別子９８、１０１を比較して、１０６に出力信号を供給する。この態様においては、出力信号は、ディジタル論理信号の形態である。プログラム識別子９８および照合識別子１０１が互いに一致すれば、出力信号は、第１の（例えばロー）論理状態（すなわち、論理０）を有する。プログラム識別子９８および照合識別子１０１が互いに一致しないか、または識別子の一方または両方を、コンパレータ１０２が受け取らない場合には、出力信号は第２の（例えば、ハイ）論理状態（すなわち論理１）を有することになる。
【００１６】
コンパレータ出力信号は、データ経路１０７を介して動作禁止システム１０３に供給される。コンパレータ出力信号が、ハイ論理状態であれば（これはこの態様においては、一致する識別子を受け取っていないことを意味する）、動作禁止システム１０３は、プロセッサコア８０の動作特性を動作禁止にする信号（これはデータ経路１０８上で供給される）を生成する。コンパレータ出力信号が論理ロー状態である（この態様においては、一致する識別子を受け取ったことを意味する）場合には、動作禁止システム１０３は、ランタイムプログラム９４は、セル電話で使用することが認可されていると仮定し、動作特性を動作禁止にする信号を生成しない。
照合識別子１０１は、個々のセル電話によって変わることが期待される。これは、任意特定のセル電話の照合識別子１０１は、そのメーカーおよびモデルによる、他のほとんどのセル電話の照合識別子１０１と異なるはずであることを意味するが、特定のメーカーおよびモデルのセル電話がすべて、固有の照合識別子１０１を有することは、必要条件ではない。
【００１７】
さらに、セル電話製造業者は、特定のセル電話に関連しての使用が認可されたランタイムプログラム９４が、そのセル電話の照合識別子１０１と一致するプログラム識別子９８を有することを保証するための処置をとることが期待される。これを行うための様々な態様について、以下に説明する。
本明細書において使用する場合には、プログラム識別子９８および照合識別子１０１は、プログラム識別子９８および照合識別子１０１が、少なくとも所定の相互対応尺度を有していれば、互いに一致することになる。この所定の対応尺度は、態様によって変えることができる。態様によっては、プログラム識別子９８および照合識別子１０１は、それらが互いに同一である場合にのみ、その所定の対応尺度を有することになる。その他の態様においては、プログラム識別子９８および照合識別子１０１は、それらが互いに所定の関係を有する限り、それらが互いに同一でなくても、所定の尺度を有することになる。
【００１８】
セキュリシステムのコンパレータ１０２、動作禁止システム１０３、およびデータ経路１０５、１０７の部分は、実質的にハードウエア内に実装するのが好ましい。ここで、「実質的にハードウエア内」という用語を用いるときには、検査中のプログラム（例えば、ランタイムプログラム９４）は、一致が見られないときに、セキュリティシステムが動作特性を動作禁止にすることを防止するのに十分な制御権を、これらの部分のいずれに対しても有さないことを意味する。すなわち、検査中のプログラム（例えば、ランタイムプログラム９４）による制御は行われないか、または限定された制御だけが行われる。これによって、上記した従来方法よりも、セキュリティシステムを不正変更および／または無効化するのがより難しくなる。
【００１９】
「実質的にハードウエア内」という用語は、排他的にハードウエア内ということを意味するものではないことを理解すべきである。例えば、「実質的にハードウエア内」とは、状態マシーン、ファームウエアおよび／または検査中のプログラムの制御下にないソフトウエアを除外するものではない。そのようなソフトウエアは、例えば、コアプロセッサ中に埋め込んで、コアプロセッサの外部からはアクセス不能とする（例えば、コアプロセッサ内部で別個のアドレス／データバス上で動作させる）ことができる。実際に、コンパレータ１０２および動作禁止システム１０３は、任意の形態、例えば、それに限定はされないが、ソフトウエア、ハードウエア、ファームウエア、またはそれらの任意の組合せの形態で実現することができる。より具体的には、１つまたは２つ以上のそのような要素の形態としては、それに限定はされないが、ルール、プロセス、ファンクション、公式、方程式、線形フィードバックシフトレジスタ、ルックアップテーブル、マッピング、その他、またはそれらの任意の組合せがある。上記にもかかわらず、態様によっては、セキュリティシステムは、ハードウエア、例えば結合式論理（combinatorial logic）や順序レジスタ（sequence register）に、排他的に実装される。
【００２０】
さらに、「実質的にハードウエア内」という用語は、コンパレータ１０２および／または動作禁止システム１０３が、検査中のプログラムから入力を受け取れないことを意味するものではないことを理解すべきである。例えば、検査中のプログラムは、通常、プログラム識別子９８を提供する。
図３は、プロセッサコア８０（図２）に使用することのできる１つのアーキテクチャを示す。このアーキテクチャにおいては、プロセッサコアは、中央プロセッサユニット（ＣＰＵ）１１０、メモリ１１１、セキュリティシステム論理部１１２およびセキュリシステムデータレジスタ部１１３を含む。プロセッサコア８０には、ＣＰＵ１１０と協働する、追加のプロセッサユニット（図示せず）を含めることができる。データ経路１１４、１１５は、ＣＰＵ１１０を外部インターフェイス８４、８５にそれぞれ接続する。データ経路１１６Ａ〜１１６Ｅは、別個のプロセッサコア構成要素を互いに接続する。データ経路１１６Ａ〜１１６Ｅは、互いに分離した状態で示してあるが、これらの１つまたは２つ以上を、互いに結合、および／またはデータ経路１１４、１１５と結合することもできることを理解すべきである。プロセッサ８０は、通常、単一チップ上に配置、および／または単一パッケージ中に統合される。
【００２１】
メモリ１１１は、本明細書ではプロセッサメモリ１１１と呼び、通常、プロセッサコア８０の製造業者により設計されて導入されている機能を提供することだけ（または少なくともほとんどそのため）に使用される。プロセッサメモリ１１１は、レジスタおよび／または比較的少量のメモリを含む。このメモリは、それに限定はされないが、読出し専用メモリ（ＲＯＭ）、ランダムアクセスメモリ（ＲＡＭ）、およびそれらの組合せを含む、任意の種類のものでよい。メモリ１１１は、必須ではないが、一回だけプログラム可能な部分（one time programmable portion）を有してもよい。
【００２２】
プロセッサメモリ１１１は、ブートプログラム１１７Ａおよびダウンロードプログラム１１７Ｂを記憶することができる。ブートプログラム１１７Ａは、リセットまたは電源投入時に実行してもよく、ランタイムプログラム９４がシステムメモリ８２にロードされているかどうかを判定する命令をそれに含めることができる。ランタイムプログラム９４がシステムメモリ８２内にロードされているとブートプログラム１１７Ａが判定すると、実行はランタイムプログラム９４へとジャンプする。一方、ランタイムプログラム９４がシステムメモリ８２にロードされていないとブートプログラム１１７Ａが判定すると、実行はダウンロードプログラムへとジャンプする。ダウンロードプログラム１１７Ｂには、ランタイムプログラム９４を受け取り、システムメモリ８２中にロードすることを可能にする命令が含まれる。これは、例えば、セル電話の製造段階において発生することがある。
【００２３】
セキュリティシステム論理部１１２は、照合識別子を生成して記憶するための結合式論理回路および同期レジスタ１１８Ａ、１１８Ｂを含む。セキュリティシステム論理部は、また、図１のコンパレータ１０２、動作禁止システム１０３、ならびにデータ経路１０５、１０７および１０８の一態様を実現するための、結合式論理回路１１８Ｃ、１１８Ｄならびにデータ経路１１８Ｅ、１１８Ｆおよび１１８Ｇをそれぞれ含む。ここで、結合式論理および同期レジスタは、任意の形態かつ技術のものとすることができることを認識すべきである。
セキュリティシステムデータレジスタ部１１３は、以下にさらに説明する、識別子コードレジスタ１１９Ａ、シードレジスタ１１９Ｂおよびアクセスキーレジスタ１１９Ｃを含む。セキュリティシステムに使用する追加のデータレジスタは、セキュリティシステムデータレジスタ部１１３内および／またはセキュリティシステム論理部１１２内、またはその他の場所に配置することができる。
【００２４】
ここで、図３はプロセッサコア用の１つの可能なアーキテクチャを示すにすぎないことを理解すべきである。プロセッサコアは、このアーキテクチャに限定されるものではない。任意にその他の適当なアーキテクチャを使用することもできる。
照合識別子１０１を読み出し、次いでソフトウエアを修正して、プログラム識別子９８を照合識別子１０１と一致させることによって、セキュリティシステム１００を不正変更および／または無効化する試みがされることが予想される。また、照合識別子１０１を変更して、プログラム識別子９８に一致させる試みもあるかもしれない。したがって、照合識別子を、通常のユーザーから「隠す」ことが望ましい。
【００２５】
結果的に、照合識別子１０１は、セキュリシステムの外部から、直接アクセスが不可能であり、かつ直接変更も不可能とするのが望ましい。「直接アクセス不可能」とは、照合識別子１０１が記憶されている可能性のあるアドレスを指定する読出し命令を単に実行することによっては、読出し不可能であることを意味する。しかしながら、照合識別子１０１は、例えば、読出し動作を含む所定の動作順序を実行することによって、間接的にアクセス可能である。この事前設定された動作順序を秘密にするのが望ましい場合がある。「直接変更不可能」とは、照合識別子１０１が記憶されている可能性のあるアドレスを指定する書込み命令を単に実行するだけでは、変更不可能であることを意味する。しかしながら、照合識別子１０１は、それに限定はされないが、例えば、書込み動作を含む事前設定された動作順序を実行することによって、間接的に変更可能である。さらに、態様によっては、照合識別子１０１は、いかなる外部端子からもアクセス不可能である。
ここで認識すべきは、データ経路１０４、１０５、１０７は、互いに分離した状態で示してあるが、経路の１つまたは２つ以上を互いに組み合せることができることである。また、上記の論理規則（logic convention）は、論理規則の１つにすぎず、その他の論理規則を使用することもできることを認識すべきである。
【００２６】
態様によっては、事前設定された動作順序が実行される場合にのみ、プログラム識別子９８および照合識別子１０１が、コンパレータ１０２に供給され、かつ／または互いに比較される。これによって、セキュリティシステム１００を不正変更および／または無効化するのをより困難にすることができる。事前設定された動作順序は、例えば、例えば合同検査アクセスグループ（Joint Test Access Group）（ＪＴＡＧ）操作の一部としてよく実施されるような、事前設定された命令順序および／またはレジスタ上での事前設定された動作順序である。この特有の事前設定された動作順序は、検査順序と呼ばれる。この検査順序を秘密にするのが望ましい場合がある。また、セル電話をリセットすることなしに、照合識別子１０１とプログラム識別子９８とを比較することのできる回数を制限するのが望ましいこともある。例えば、態様によっては、セキュリシステム１００は、電力投入またはリセット後に、プログラム識別子と照合識別子とを一回だけ比較することを許可することがある。引き続き比較が試みられる場合には、コンパレータ１０２は、一致する識別子を受け取らなかったことを意味する出力信号を生成し、それに応答して、動作禁止システムが、電話の動作特性を動作禁止にする信号を生成する。
【００２７】
態様によっては、エミュレータが起動されている場合には、セキュリティシステムが動作禁止にされる。このことによって、エミュレータを使用して、セキュリティシステム１００を不正変更および／または無効化するのに使用することのできる情報を発見することがより困難になる。このことを達成するには多くの方法があることは明白である。１つの方法について、図５を参照して以下に説明する。
さらに、一致する識別子が受け取られない場合には、疑似ランダムな非機能的挙動を開始し、かつ／またはセル電話の動作特性が、所定の持続時間、すなわち操作前に設定される（すなわち、事前設定される）か、または操作中に（すなわち動的に）決定される持続時間の後にだけ、動作禁止とされるように遅延を含める方法によって、動作特性を動作禁止にするのが望ましいことがある。
【００２８】
遅延を導入することによって、セキュリティシステム１００を不正変更および／または無効化するのに使用できる、セキュリティシステムを実装する方法に関する情報の発見をさらに困難にすることができる。また、これによって、特定のセル電話に使用されている照合識別子を「推定」（すなわち、試行錯誤によって照合識別子を特定）するのに必要な時間が増加する。そして、これによって、セキュリティシステムを不正変更および／または無効化することがより困難となる。例えば、遅延が４秒であり、照合識別子が３２ビットディジタルコードである場合には、照合識別子を推定するのに要する時間は、次式のように５４４年となる。
４秒×２３２＝５４４年                    式（１）
【００２９】
ここで認識すべきは、照合識別子に使用するビット数を変更することによって、照合識別子を推定するのに要する時間が変わることである。例えば、遅延が４秒であり、照合識別子が８ビットだけに減少すると、照合識別子を推定するのに必要な時間は、次のように１７分にまで減少する。
４秒×２８＝１７分                        式（２）
態様によっては、１つまたは２つ以上の無規則に生成した、不使用のディジタルコードが、システムメモリのソフトウエアに埋め込まれて、その結果、類似のメーカーおよびモデルのセル電話間において、プログラム識別子とＩＭＥＩコードが、ソフトウエアにおける唯一の差異ではなくなる。
【００３０】
図４は、セル電話の動作中に照合識別子１０１を生成するための一態様を示す。この態様においては、各プロセッサコアは、識別子コード１２０を備えている。この識別子コード１２０は、各プロセッサコアによって変ってもよいが、すべてのプロセッサコアが、固有の識別子コード１２０を有することが必要条件ではない。
識別子コード１２０は、通常、不揮発性のレジスタまたは記憶場所（本明細書においては、識別子コードレジスタと呼ぶ）に記憶される。例えば、識別子コード１２０は、プロセッサコアの物理的ネットリストの一部（例えば、プロセッサコアがプロセッサメモリを含む場合には、それのＲＯＭ部分内）とするか、または（プロセッサコアがそれを含む場合には）プロセッサコアの一回のみプログラム可能な部分の一部とすることもできる。
【００３１】
識別子コード１２０は、暗号化モジュール１２２に供給される。１つまたは２つ以上の他のコード１２４を、暗号化モジュール１２２に供給してもよい。このような他のコード１２４としては、それに限定はされないが、ＩＭＥＩコード９６、セル電話のその他の構成要素に関連する１つまたは２つ以上の識別子コード１２６、プロセッサによって実行された１つまたは２つ以上の命令を表わすデータ（例えば、それに限定はされないが、少なくとも１つの操作コード（op code）１２８、少なくとも１つのアドレス１３０、および少なくとも１つのデータワード１３２の少なくとも１つを示すデータ）、またはそれらの任意の組合せがある。別の可能なコードは、特定の時間間隔において（すべての操作コード、すべてのアドレス、およびすべてのデータワードを含む）プロセッサが実行する命令のすべてに応じて生成することができる。
【００３２】
暗号化モジュール１２２は、暗号化戦略に従って、コード１２０、１２４をシードとして使用して、照合識別子（これはデータ経路１２３上に出力される）を生成する。態様によっては、暗号化モジュール１２２は、疑似乱数発生器の形態であるが、この暗号化モジュールは、それに限定されるものではない。本明細書において使用する上では、「暗号化戦略」という用語には、任意の方法で生成される、任意の種類の暗号化戦略を含む。この暗号化戦略は、事前設定して不変とすることができるが、それに限定されない。暗号化戦略は、一般的に、ベースバンドプロセッサ６０の設計者もしくはセル電話の製造業者、またはその任意の組合せによるか、またはそのために設定されることになる。さらに、暗号化戦略は、それに限定はされないが、ルール、プロセス、ファンクション、公式、方程式、線形フィードバックシフトレジスタ、ルックアップテーブル、マッピング、その他、またはそれらの任意の組合せを含む、任意の形態で実現することができる。
【００３３】
態様によっては、照合識別子は、本明細書では検索順序と呼ぶ事前設定された命令順序を実行しない限り、生成されない。
セキュリティシステム１００を不正変更および／または無効化するのをさらに難しくするために、この態様では、制御モジュール１３４をさらに含み、この制御モジュール１３４は、（ライン１３６上で）リセット信号、および（ライン１３８上で）書込み／読出し信号を受け取り、制御信号を（ライン１４０上で）暗号化モジュール１２２に供給し、この制御信号が、リセットまたは電源投入後に照合識別子１０１を生成することのできる回数を制限する。
【００３４】
識別子コード１２０を読み取ることによって、セキュリティシステム１００を不正変更および／または無効化する試みがされる可能性があることが予想される。したがって、照合識別子と同様に、識別子コード１２０は、通常のユーザーには隠しておくのが好ましい。その結果として、識別子コードは、実行されているプログラムによって直接アクセスが可能ではなく、かつ直接変更が可能ではないのが好ましい。これによって、セキュリティシステム１００を不正変更および／または無効化するのがより困難となる。態様によっては、識別子コード１２０は、プロセッサコアのアドレスマップ内の非公共アドレス内に記憶され、それによって識別子コードを「隠す」（すなわち、発見をより難しくする）ことを容易にする。
しかしながら、上述のように、セル電話製造業者は、特定のセル電話に関連して使用するためのソフトウエアが、その特定のセル電話の照合識別子と一致するプログラム識別子を有することを保証するために対策を講じることが期待される。結果として、電話製造業者は、セル電話のプロセッサコア内部に埋め込まれている識別子コードにアクセスする必要がある場合がある。
【００３５】
したがって、例えば、本明細書ではアクセス順序と呼ぶ、事前設定された命令または操作の順序を使用して、識別子コードに間接アクセス可能とすることが望ましいことがある。このアクセス順序には、アクセスキー（すなわち、アクセスコード）を供給することが必要となることがある。ここで留意すべきことは、アクセス順序およびキーは、顧客専用にする（すなわち、各電話製造業者によって異なる）ことができることである。いくつかの態様では、識別子コードにアクセスできる以前に、特定のレジスタ（単数または複数）および／またはアドレス（単数または複数）に所定の値または値の列を書き込むことが要求される。このことによって、システムを不正変更および／または無効化することが、さらに難しくなる。デフォールト値（所定の値が、レジスタまたはアドレスに書き込まれない場合に受け取る値）はダミー値とすることができる。態様によっては、識別子コードは、暗号化された形態（これは、照合識別子を生成するのに使用されるものとは異なる暗号化戦略を使用する）でのみ、アクセス可能にされる。
【００３６】
しかしながら、ここで認識すべきことは、（暗号化されているか、またはされていない）識別子コードへの（間接的、またはそうではない）アクセスを許可するセキュリティシステムは、識別子コードへのアクセスをまったく与えないシステムほど安全ではない場合があることである。結果的に、いくつかの態様では、識別子コードを、プロセッサコアの外部から完全にアクセス不可能とすることができる。
図５は、動作禁止システム１０３（図２）の一態様を示す。この態様においては、動作禁止システム１０３は、ウォッチドッグタイマー回路１５０の形態である。ウォッチドッグタイマー回路は、一種の監督回路であり、マイクロプロセッサ利用回路に一般的に使用されている。ウォッチドッグタイマー回路の目的は、マイクロプロセッサが望ましくない動作をしているかどうかの判定をしやすくすることである。これは、マイクロプロセッサに望ましくない動作をさせる、様々な状況が発生しうることから、重要である。これらには、（１）命令を混乱させ、かつ／またはマイクロプロセッサを不適当なアドレスにジャンプさせる、グリッチおよび／またはハードウエア故障、（２）無限ループなどのソフトウエアエラーがある。ウォッチドッグタイマー回路は、通常、マイクロプロッセが望ましくない動作をしていないことを、ウォッチドッグタイマー回路に保証するための信号を時折アサートすることを、マイクロプロセッサに対して要求する。マイクロプロセッサが、要求どおりに信号をアサートしない場合には、ウォッチドッグタイマー回路は、マイクロプロセッサの動作順序を中断するために、リセットまたはその他の動作を開始する。
【００３７】
ウォッチドッグタイマー回路１５０は、クロック１５２およびカウンタ１５４を有する。このクロック１５２はクロック信号を生成し、このクロック信号が、カウンタ１５４上のクロック入力に供給される。カウンタ１５４は、他の３つの入力（リフレッシュ、リフレッシュ動作禁止、およびウォッチドッグ動作禁止）と１つの出力（タイムアウト）とを有する。クロック入力は、信号ライン１５６上で、クロック信号を受け取る。リフレッシュ入力は、信号ライン１５８上で、（プロセッサコアによって駆動される）ウォッチドッグリフレッシュ信号を受け取る。リフレッシュ動作禁止入力は、信号ライン１６０上で、コンパレータ出力信号を受け取る。 ウォッチドッグ動作禁止入力は、信号ライン１６２上で、（プロセッサコアによって駆動される）エミュレータ起動信号を受け取る。タイムアウト信号は、ライン１６４上に出力される。
【００３８】
動作は次のとおりである。カウンタ１５４が、クロック信号上でクロックパルスを数える。この計数が、（所定時間間隔または持続時間に対応する）所定数に達すると、回路がタイムアウト信号をアサートして、この信号が、リセットまたはその他の動作を開始して、プロセッサコアの動作順序を中断する。態様によっては、所定計数は、リセットおよび／または電源投入後、約４秒に対応させることができる。リフレッシュ入力がアサートされると、リフレッシュ動作禁止入力もアサートされない限り、カウンタ１５４がリセットされる。しかしながら、コンパレータ１０２が一致する識別子を受け取っていないことを、コンパレータ出力信号が示す限り、リフレッシュは動作禁止にされる。すなわち、カウンタ１５４が所定数に達する以前にコンパレータ１０２が一致する識別子を受け取らない限り、ウォッチドッグタイマー回路１５０は、タイムアウト信号をアサートする。
【００３９】
エミュレータ起動信号が、ウォッチドッグ動作禁止入力に供給されるので、ウォッチドッグタイマー回路１５０は、エミュレータが起動状態であれば、動作禁止にされる。必要条件ではないが、この配設によって、エミュレータを使用して、セキュリティシステム１００を不正変更および／または無効化することのできる情報を発見することが、さらに難しくなる。
ここで理解すべきことは、別の態様においては、動作禁止システム１０３は、ウォッチドッグタイマー回路１５０の形態であっても、そうでなくてもよいことである。さらに、その他の態様では、リセットまたは電源投入後の所定持続時間内にセル電話を、動作禁止にすることも、しないこともできる。
図６は、図２のセキュリティシステムの一態様を実現するのに使用する方法／特徴を示す図である。この態様においては、照合識別子は、図４に関して上述したように、識別子コードおよびシードに基づいている。識別子コードは、アクセスキーでアクセス順序を使用して（シードに基づく暗号化形態において）間接的にアクセス可能である。図６に提示および／または説明する方法／特徴のすべてが、すべての態様に使用されるわけではないことを理解すべきである。また、いくつかの方法／特徴はプロセッサコア内部にあるとともに、そうではないものもあることを認識すべきである。
【００４０】
ここで図６を参照すると、１７０で示すように、識別子コード、シードＡ、シードＢ、およびアクセスキーが生成される。乱数発生器を使用してもよいが、それは必須要件ではない。識別子コードおよび／またはシードを、プロセッサコア毎に変えることが望ましいことがある。しかしながら、すべてのプロセッサコアが、固有の識別子コードおよび／またはシードを有することは必要条件ではない。シードおよび／またはアクセスキーは、顧客専用にする（すなわち、各電話製造業者によって異なる）ことができる。
【００４１】
１７２に示すように、識別子コード、シード（単数または複数）、およびアクセスキーが、プロセッサコア中に埋め込まれる。これは、様々な方法で実施することができる。１つの方法は、プロセスコアを構成する、物理的データ／ネットリスト内に定義を埋め込む方法である。単一のレチクルマスク（reticle mask）を使用する場合には、異なる識別子コードおよびシードの数は、レチクル上に配置することのできるダイの数、例えば８または１２、によって決まることがある。異なる識別子コードの数が少ないほど、シードの便益は大きくなることに留意されたい。一定間隔、かつ／またはマスク改訂が生成される度に、識別子コードおよび／またはシードを更新するのが望ましい場合がある。識別子コードおよび／またはシードの定義を、それが必要条件ではないが、単一金属層上で実現して、そのような改訂を容易にすることができる。
【００４２】
第２の方法は、プロセッサコアを製造後に、プロセッサコア中に定義を埋め込む方法である。これは、プロセッサコアが１つまたは２つ以上の種類のプログラム可能要素、例えば、それに限定はされないが、プログラム可能ヒューズ（電気またはレーザ）、プログラム可能リンク、一回だけプログラム可能なＦＬＡＳＨメモリもしくはレジスタ、ＥＥＰＲＯＭ，およびそれらの組合せを有する場合に可能である。ヒューズは、一般に、「溶断」しない限りインピーダンスが低い。プログラム可能リンクは、一般に、プログラムされていない限り、インピーダンスが高い。消去可能または再プログラム可能要素を使用する場合には、識別子を消去および／または再プログラムするのを難しくするのが望ましい場合がある。さらに、識別子コードをアクセス可能にすべきかどうかを示す、追加の、一回だけプログラム可能なコードを含めるのが望ましいことがある。識別子コードがアクセス可能でない場合には、識別子コードのデータベースを維持して、ソフトウエアに対する更新を行う能力を保持するようにするのが望ましいことがある。この対策は、例えば、プロセッサコアの製造者または電話製造者によって（すなわち、それによって、またはそれらの代理で）実行することができる。
【００４３】
１７４に示すように、セル電話製造者は、プロセッサコアへのアクセスキーを含む、アクセス順序を供給する。適当なアクセス順序およびアクセスキーが供給されていない場合には、プロセッサコアは、１７６で示すように、暗号化戦略ＭおよびシードＡを使用して識別子コードを暗号化し、暗号化識別子コードをレジスタ１７８に記憶させる。次いで、暗号化された識別子コードは、パラレルポートまたはシリアルリンク（例えば、ＪＴＡＧまたは類似のもの）を介してプロセッサコアから出力される。
【００４４】
セキュリティシステムを不正変更および／または無効化するのをさらに難しくするために、アクセス順序と関連して以下（およびその他の）対策の１つまたは２つ以上を講じることができる。
（１）ブートプログラムから実行していない場合には、アクセス順序を動作禁止にできるようにする。
（２）シード、アクセスキー、および識別子コードを、プロセッサコア内部の記憶場所から読み取るが、バスを使用せずに読み出し、バスはすべてゼロに駆動する。
（３）一連の書込みおよび／または読出しは、特定のレジスタ（単数または複数）および／またはアドレス（単数または複数）に／から実行しなくてはならない。
（４）アクセスキーは、識別子コードにアクセスできる以前に、どれかのレジスタまたはアドレスに書き込まなくてはならない。
（５）プロセッサコアに記憶されたアクセスキーを、アクセス順序の一部として供給されたものと比較して、それらが等しい場合に、あるサイクル数に対して、フラグを設定する。
【００４５】
（６）アクセス順序における動作が、適切な順序で、あるいはあるサイクル数内で実行されない場合に、アクセスレジスタ内にゼロを記憶する。
（７）あるサイクル数の後に、フラグおよびレジスタをリセットして、それによって識別子コードにアクセスしようとするさらなる試みを禁止する。
（８）リセットの後に、１つのアクセス順序だけを実行可能にする。
（９）適切なキーがアクセス順序中に供給されない場合には、識別子コード（暗号化されたもの、または暗号化されていないもの）は、アクセスレジスタ内に記憶されない。その代わりに、乱数または疑似乱数コードがアクセスレジスタ内に記憶される。
（１０）アクセスレジスタ内の識別子コード（暗号化あり、またはなし）の読出し中に、メモリ出力上の値を変更するために、オンボード記憶場所（例えば、ＲＯＭ）へのダミー読出しアクセスを実行する。
【００４６】
いくつかの態様においては、パラレルポートを介して有効な識別子コードを得るために、以下の３つの条件を満足しなくてはならない。それは、
（１）アクセス順序を形成する命令は、プロセッサコア上のメモリ（例えば、ＲＯＭまたはＳＲＡＭのいずれでも利用可能なもの）からフェッチしなくてはならない、
（２）事前設定された動作順序を、あるクロックサイクル数内に実行しなくてはならない、および
（３）割込みを動作禁止にしなくてはならない、ことである。
【００４７】
ここで、セル電話の他の構成要素の識別子コードから生成されるシードコードを使用することによって、暗号化された識別子コードは、セル電話内のその他の構成要素にさらに依存するようにすることができることに留意されたい。そのようなコードを生成する１つの順序が以下のようなものである。１つまたは２つ以上の他の構成要素から識別子コードを読み出し、シードコードを生成する。このシードコードをシードレジスタに書き込む。上記のように識別子コードを読み出し、この場合に、暗号化された識別子コードは、プロセッサコアの識別子コードと１つまたは２つ以上の他の構成要素の識別子コード（単数または複数）との組合せとなる。
１８０に示すように、セル電話製造業者は、（プロセッサコアが使用する暗号化戦略Ｍに対応する）解読戦略ＭとシードＡ（および暗号化に使用された、その他任意のコード）とを用いて暗号化された識別子コードを解読して、識別子コードを得る。１８２において、識別子コードを、（プロセッサコア内で照合識別子を生成するのに使用されるものに対応する）暗号化戦略ＮとシードＢ（およびその他任意の望ましいコード）とを使用して暗号化して、（電話の動作中に）プロセッサコア内に生成しようとする照合識別子に一致するプログラム識別子を生成する。次いで、プログラム識別子を、１８４に示すように、システムメモリ内のソフトウエア中に埋め込む。
【００４８】
この態様においては、照合識別子の生成を開始するために、事前設定された動作順序を実行しなくてはならない。この事前設定された動作順序を、本明細書においては、「検査順序」と呼ぶ。この態様においては、検索順序を実行するための命令は、プロセッサメモリ（例えば、リセットまたは電力投入時に実行される、ブートプログラム（図３））内に記憶される。プログラム識別子と照合識別子との比較を開始するためには、事前設定された動作順序も実行しなくてはならない。この事前設定された動作順序を、本明細書では検査順序と呼ぶ。この態様においては、検査順序を実行する命令は、システムメモリのソフトウエア内に埋め込まれている。
【００４９】
検索順序は、１８６で示すように、セル電話の動作中（例えば、リセットまたは電源投入時）に実行されて、照合識別子の生成が開始される。１８８で示すように、プロセッサコアは、暗号化戦略ＮとシードＢ（およびプロセッサコアに供給されるその他任意のコード）とを使用して、照合識別子コードを暗号化して、照合識別子を生成し、この照合識別子がレジスタ１９０内に記憶される。態様によっては、この検索順序は、リセットの後に一度だけ実行し、かつ／またはアクセス順序に対して上述したような１つまたは２つ以上の対策を組み込むことができる。
次いで、検査順序を実行して、１９２に示すように、プログラム識別子と照合識別子との比較を開始する。プログラム識別子と照合識別子とが互いに一致しない場合には、１９４で示すように、セル電話の動作特性を動作禁止にする禁止信号が生成される。
【００５０】
上述のように、図６の態様は、様々な対策を含む。これらの対策のすべてが、すべての状況において使用されるわけではない。ここで、通常、アクセス順序の定義、アクセスキー、検査順序、暗号、任意のレジスタの場所、およびセキュリティシステムに使用される任意の記憶場所は、できる限り秘密にするのが望ましいことに留意されたい。
態様によっては、事前設定された命令順序は、プロセッサコアの正常命令セットからの命令によって構成される。これらの命令は、ソフトウエアのその他の場所で頻繁に使用される命令であってもよいし、そうでなくてもよい。
図７は、セキュリティシステム２０４のパラメータ用に確保されたアドレススペースを含む、ＲＯＭ２０２を備えるプロセッサメモリ２００を示す。ＲＯＭ２０２は、５２０のアドレスを有する。５１１より上のアドレスは、識別子コード、シード、およびアクセスキー用に確保されている。ＲＯＭ２０２は、１０個のアドレスビットａｄｄｒ０〜９によってアドレス指定される。９個の下位アドレスビットａｄｄｒ０〜８は、アドレス復号からの９個のビットが供給される。最上位ビットａｄｄｒ９には、セキュリティシステム論理２０６からライン２０７上のビットが供給される。確保されたアドレスは、セキュリティシステム論理２０６が、最上位アドレスビットａｄｄｒ９をアサートする場合にのみ、アクセス可能である。
【００５１】
ＲＯＭ２０２からの３２ビット出力は、セキュリティシステム論理２０６、およびマルチプレクサ２０８上の２つの３２ビット入力の１つに供給される。セキュリティシステム論理２０６には、さらに、アドレス復号から４ビット、データバスから３２ビットが供給される。セキュリティシステム論理２０６は、マルチプレクサ２０８上の第２の３２ビット入力に３２ビット信号を供給して、マルチプレクサ選択ライン２０９を駆動する。マルチプレクサ２０８は、３２ビット信号を出力する。
動作は次のとおりである。セキュリティシステム論理２０６が、適当な順序が供給されたと判定すると、セキュリティシステム論理２０６は、ａｄｄｒ９およびマルチプレクサ選択ライン２０９をアサートし、ＲＯＭ２０２内に確保されたアドレスを、マルチプレクサ２０８からアクセスおよび出力を可能とする。適当な順序が供給されていない場合には、セキュリティシステム論理２０６は、ａｄｄｒ９をアサートしない。その代わりに、セキュリティシステム論理２０６は、乱数または疑似乱数コードを供給し、これが次いでマルチプレクサ２０８によって出力される。
【００５２】
「〜に応じて」という用語を使用するときには、「少なくとも〜に応じて」を意味し、２つ以上のものに応答することを除外するものではない。
セキュリティシステムを、セル電話に使用するベースバンドプロセッサに関して説明したが、本発明は、そのような態様または使用に限定されるものではない。むしろ、その他の態様は、それに限定はされないが、ＰＤＡ（portable digital assistant）を含む、任意の電子デバイスに関連して使用することが可能である。
様々な態様を示して説明したが、当業者であれば、本発明はこのような態様に限定されるものではなく、これらの態様は例証としてのみ示したものであり、本発明の主旨と範囲から逸脱することなく様々な変更および修正を加えることができることを、理解するであろう。
【図面の簡単な説明】
【００５３】
【図１】セル電話およびセルラー電話ネットワークを含む、移動通信システムの一態様を示すブロック図である。
【図２】本発明の一態様によるセキュリティシステムを備えるプロセッサコアを含む、図１のセル電話で使用することのできるベースバンドプロセッサの一部のブロック図である。
【図３】図２のプロセッサコアの１つのアーキテクチャを示すブロック図である。
【図４】図２のセキュリティシステムに使用する照合識別子を生成するための一態様のブロック図である。
【図５】図２のセキュリティシステムに使用する動作禁止システムの一態様のブロック図である。
【図６Ａ】図２のセキュリティシステムの一態様を実現するのに使用する一方法／特徴を示す図である。
【図６Ｂ】図２のセキュリティシステムの一態様を実現するのに使用する一方法／特徴を示す図である。
【図７】図２のセキュリティシステムの一態様の、一部分を示すブロック図である。
【図１】
2005524919.tif 000003
【図２】
2005524919.tif 000004
【図３】
2005524919.tif 000005
【図４】
2005524919.tif 000006
【図５】
2005524919.tif 000007
【図６Ａ】
2005524919.tif 000008
【図６Ｂ】
2005524919.tif 000009
【図７】
2005524919.tif 000010
【国際調査報告】
2005524919.tif 000011
2005524919.tif 000012