(57)【要約】  コンピューティングシステムの耐障害性とセキュリティを向上させるシステムは、一連のセキュリティ攻撃の少なくとも一つに対してコンピューティングシステムを監視するためにシステムクロックを具備し、セキュリティ攻撃の検出後、システムクロックからセキュアクロックにシステムを切り替える。
2005513604.tif 000002
【特許請求の範囲】
【請求項１】
システムクロックからのクロック信号と関連して動作するシステムのセキュリティを向上させる方法であって、
前記システムの故障を検出するため前記システムを監視し、
故障の検出時に、前記システムを、前記システムクロックからのクロック信号と関連した動作から、セキュアクロックからのセキュアクロック信号と関連した動作へ切り替える、方法。
【請求項２】
前記システムを前記セキュアクロックからの前記セキュアクロック信号と関連した動作へ切り替えるとき、クロック信号が、ハイ状態からロー状態への、または、ロー状態からハイ状態への論理的閾値と交差しない短い遷移をもつことを防止する、請求項１に記載の方法。
【請求項３】
前記システムクロックの前記クロック信号から前記セキュアクロックの前記セキュアクロック信号へ切り替えるとき、前記クロック信号が延長されたロー状態時間をもつ、請求項１に記載の方法。
【請求項４】
前記システムクロックから、および、前記少なくとも一つのセキュアクロックからのクロック信号を一つに多重化し、
故障の検出時に、前記システムを動作させるため前記多重化されたクロック信号のうちの一つを選択する、請求項１に記載の方法。
【請求項５】
クロック信号の間で切り替えるとき、切り替え元のクロック信号がロー状態へ遷移するまで待機する、請求項１に記載の方法。
【請求項６】
システムクロックからのクロック信号と関連して動作するシステムのセキュリティを向上させる装置であって、
セキュアクロック信号を発生するセキュアクロックと、
故障を検出するため前記システムを監視するように構成されたクロックモニタ回路と、
前記クロックモニタ回路、前記クロック信号および前記セキュアクロック信号に動作的に接続されたクロックスイッチング回路と、
を含み、
前記クロックスイッチング回路は、故障の検出時に、前記システムを、前記システムクロックからのクロック信号と関連した動作から、セキュアクロックからのセキュアクロック信号と関連した動作へ切り替えるように構成されている、装置。
【請求項７】
セキュアクロック信号をもつ複数のセキュアクロックをさらに含み、
前記クロックスイッチング回路は、複数のセキュアクロック信号に動作的に接続され、前記セキュアクロック信号のうちの一つと関連して動作するように前記システムを切り替える、請求項６に記載の装置。
【請求項８】
前記セキュアクロックはリング発振器を含む、請求項６に記載の装置。
【請求項９】
前記クロックモニタ回路は検出された故障の停止を検出するように構成され、
前記クロックスイッチング回路は、前記故障の停止の検出時に、前記システムクロックから再びクロック信号と関連して動作するよう前記システムを切り替えるようにさらに構成されている、請求項６に記載の装置。
【請求項１０】
前記クロックモニタ回路は、前記システムクロックからの過周波数クロック信号と不足周波数クロック信号のうちの一方と関連した故障を検出するため前記システムを監視するように構成され、
前記クロックスイッチング回路は、前記システムの過周波数クロッキングと不足周波数クロッキングを防止するため、セキュアクロックからのセキュアクロック信号と関連して動作するよう前記システムを切り替えるように構成されている、請求項６に記載の装置。
【請求項１１】
前記クロックモニタ回路は分周器および遅延線を含み、
前記分周器および遅延線は、前記システムクロックからの過周波数および不足周波数クロック信号を検出するように構成されている、請求項１０に記載の装置。
【請求項１２】
プロセッサと、
前記プロセッサの動作用のシステムクロック信号を発生するクロックと、
セキュアクロック信号をさらに発生するセキュアクロックと、
故障を検出するため特定用途向け集積回路を監視するように構成されたクロックモニタ回路と、
前記クロックモニタ回路、前記クロック信号および前記セキュアクロック信号に動作的に接続されたクロックスイッチング回路と、
を含み、
前記クロックスイッチング回路は、故障の検出時に、前記システムを、システムクロック信号と関連した動作から、前記セキュアクロック信号と関連した動作へ切り替えるように構成されている、特定用途向け集積回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、広くコンピューティングシステムのセキュリティに関する。特に、本発明は、コンピューティングシステムの一部であり、外部クロックによって駆動されるセキュアリング特定用途向け集積回路（ＡＳＩＣ）に関する。
【背景技術】
【０００２】
コンピュータ及びコンピューティングシステムは、日常生活に組み込まれる形で徐々に普及している。このようなシステムは、広範囲のアプリケーション、並びに、家庭電化製品から、携帯電話機およびハンドヘルドプランナのような個人用通信装置まで多岐に亘る製品に使用される。このような技術の一つの特定の、かつ、高まりつつある用途は、金融取引の分野である。
【０００３】
例えば、殆どの人は、現金または小切手よりもむしろ、クレジットまたは銀行カードを携行し、このクレジットまたは銀行カードは口座と関連し、符号化された磁気ストリップ部を含む。この磁気ストリップ部は、カード保有者口座と関連したカード保有者情報を収容する。使用中に、カード保有者は、例えば、商品またはサービスの代金を支払うために、カード保有者の口座にアクセスする目的でこのカードをベンダに提示する。ベンダは、符号化された磁気ストリップ部から情報を読み取るカード読み取り機にそのカードを通し、取引を完了させるためその情報を使用する。
【０００４】
金銭取引およびその他のアプリケーションの際にコンピューティングシステムの自動化および使用を促進することは、集積回路技術の分野においてなされた進歩である。集積回路技術は、最近数十年間にかなり進歩し、そのコストおよび利用可能性によって多数のアプリケーションおよびシステムの自動化が容易に実現できるまでになった。今日の集積回路は、数十万個の論理ゲートを形成する数百万個のトランジスタを収容し、多種多様なアプリケーションおよび機能に合わせて容易に構成し調整することができる。したがって、集積回路製造元は、現在、特定用途向け集積回路（ＡＳＩＣ）と呼ばれるものを提供する。
【０００５】
金融アプリケーションおよびシステムの範囲内で、ＡＳＩＣデバイスは、クレジッドカードまたは銀行カードの磁気ストリップ部から必要な情報を読み取るために使用される。情報が読み取られると、ＡＳＩＣは、カード保有者の口座にアクセスするためさらに情報を送信する動作が可能であり、取引をさらに処理し、ベンダは支払を受け取ることができる。このため、このようなシステムのＡＳＩＣデバイスは、システムの動作の背後にある「頭脳」の一部であり、したがって、カード保有者の機密性のある口座情報を知っている。
【０００６】
予想できるように、金融取引が行われると、犯罪要素が付随することになる。特に、カード読み取り機が伴うクレジットカードと銀行カードの取引の場合、カード保有者口座の機密性のある情報を割り出すため、不法行為が企てられ、その結果として、口座から金銭を取得するため、または、口座の購買力を使用するため、口座が不正にアクセスされる。たびたび、このような不法行為は、これらのシステム内のＡＳＩＣデバイスの動作に集中する。ＡＳＩＣデバイスは、口座情報へのアクセスを試みる際に有利に利用されるある種の動作的特性を備えている。
【０００７】
より詳細には、ＡＳＩＣデバイスは、ＡＳＩＣデバイスにその機能を実行させる動作ルーチンを順次に進める外部クロック信号を使用して殆どの集積回路と同じように動作する。そのため、ＡＳＩＣデバイスは、特定の周波数で動作するクロックから外れるように設計される。しかし、殆どのＡＳＩＣデバイスは、そのＡＳＩＣデバイスが本来動作するように設計されたクロック周波数よりも多少上下するクロック周波数をもつクロックに接続されたときでも動作する。ＡＳＩＣデバイス内の動作を進める「過周波数」または「不足周波数」を加えることにより、ＡＳＩＣデバイスによって行われた過去の取引に関連したデータを取り出すことを目的とするような操作を用いて、ＡＳＩＣデバイスの一部の機能を突き止めることが可能である、と判断された。したがって、各個人は、ＡＳＩＣデバイスのクロック信号を操作することによって、不法目的で他人の口座の情報を取得することが可能である。よって、カード読み取り機を使用する金融取引は、たびたび、それらの機械に組み込まれたＡＳＩＣデバイスの動作特性が原因となって、多少「非セキュア」である。
【０００８】
したがって、よりセキュアなコンピューティングシステム、特に、金融取引を実施する際に用いるためのよりセキュアなシステムの必要性がある。
【０００９】
より詳細には、過去の金融取引と関連しているような機密性のあるデータの入手を防止するため、ＡＳＩＣデバイスの動作を突き止めるべく使用されたＡＳＩＣデバイスの過周波数または不足周波数クロッキングを防止するセキュアクロックとの間のクリーンスイッチングが技術的に必要である。
【発明の開示】
【発明が解決しようとする課題】
【００１０】
本発明は、特定用途向け集積回路（ＡＳＩＣ）の動作を検証するためにその特定用途向け集積回路を介したシステムへの不正アクセスを防止すると共に、そこに収容されたデータの入手を防止する装置、プログラムプロダクト、および、方法を提供することによって、従来技術と関連した上記の問題およびその他の問題を対象とする。このようにすることによって、セキュア環境が提供される。その結果として、人々は、金融取引を実施するとき、特定用途向け集積回路を使用する可能性が高くなる。
【課題を解決するための手段】
【００１１】
本発明の一つの具体的な実施形態において、ＡＳＩＣのシステムクロックは監視される。その他の条件も監視してよい。一実施形態では、二つのクロックモニタがクロックセキュリティ攻撃を阻止するための統合されたセキュリティソリューションを提供する。各クロックモニタは、クロックモニタリング回路とセキュアクロックとを含む。個々のクロックモニタのそれぞれは、冗長性によって全体的な保護を向上させるセキュリティ機構を提供するため一つに統合される。一実施形態では、クロックモニタは、過周波数または不足周波数クロック信号を見つけるためＡＳＩＣへのクロック入力を監視する。過周波数若しくは不足周波数クロック信号、または、その他のセキュリティ攻撃がＡＳＩＣへの入力に現れたならば、クロックモニタの一方は、警報信号をシステムクロックへ伝え、次に、システムクロックは、内部生成されたセキュアクロックに切り替わり、従来の外部クロック入力ではなく、クロックモニタと関連したそれぞれのセキュアクロックを使用する。冗長なクロックモニタは、クロックモニタの一方が使用不能状態でも、セキュリティが保たれることを保証する。
【００１２】
本発明を特色付ける上記の効果および特徴とその他の効果および特徴は、本文書に添付され、そのさらなる部分を形成する請求の範囲に記載されている。しかし、本発明と、本発明の使用によって達成される効果および目的とをよりよく理解するために、本発明の典型的な実施形態が記載されている図面と以下の記述的事項を参考にすべきである。
【００１３】
明細書に組み込まれ、明細書の一部を構成する添付図面は、本発明の実施形態を図解するものであり、以下の本発明の一般的な記述と一体となって、本発明の原理を説明するために役立つ。
【発明を実施するための最良の形態】
【００１４】
図面を参照すると、同じ番号は様々な図面を通じて類似した部品を示し、図１は、本発明の一実施形態に係る一つの可能な特定用途向け集積回路装置（ＡＳＩＣ）１０のブロック図である。図示されたＡＳＩＣ  １０は、金融口座データのような機密性のあるデータが外部に露出することを防止する高速暗号アプリケーション用のセキュリティプロセッサとして用いられる。図示されたＡＳＩＣ  １０の実施形態はフィリップスセミコンダクターから市販されている製品により構成されるが、当業者は、類似部品からなり、類似したコマンドを実行する他の構成が、様々なアプリケーションにおいて同一の若しくは類似の機能を提供するために使用できることがわかるであろう。したがって、本発明を支えるＡＳＩＣ環境は、説明されている実施形態に示されたものと異なっていても構わない。
【００１５】
図１に示されるようなＡＳＩＣ  １０は、金融アプリケーションを含む多数のアプリケーションで使用可能なセキュア・アーキテクチャに基づいている。ＡＳＩＣ  １０は、ハイレベル・データ・リンク・コントローラ（ＨＤＬＣ）４６、複数のフィリップセミコンダクターの１６５５０ＵＡＲＴＳ（ＵＡＲＴ  Ａ−Ｄ）４８と、フィリップセミコンダクターのＩ２Ｃポート（Ｉ２Ｃ）４４とを介してＡＳＩＣ  １０の外部にある装置との相互接続を設ける。本実施形態で説明されたものとは異なる他の相互接続手法を本発明と共に利用してもよい。図示されたシステムは、プロセッサ２０との付加的な相互接続を提供する周辺機器を取り外し、または、付加することによりカスタマイズ可能である。これは、セキュア周辺機器２２および非セキュア周辺機器２４を包含することによって図１に示されている。セキュア周辺機器と非セキュア周辺機器の例は、クレジットカード取引用のキーパッドとテーププリンタである。
【００１６】
図示されるように、ＡＳＩＣ  １０は、内蔵プロセッサ２０と、リード・オンリー・メモリ（ＲＯＭ）６６と、内部スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）６８と、ＳＲＡＭコントローラ（ＳＤＲＡＭ／ＥＢＩＵ）７０と、複数のスタティック・デバイス・コントローラ（ＳＤＣ）７６と、割込コントローラ（ＩＮＴＣＬ）３６と、システムクロック１２内の内部位相ロックループと、複数のＵＡＲＴＳ（ＵＡＲＴ  Ａ−Ｄ）４８と、リアルタイム・セコンド・カウンタ（ＲＴＳＣ）１８と、複数のシステムタイマ６０と、ＨＤＬコントローラ（ＨＤＬＣ）４６と、Ｉ２Ｃポートコントローラ（Ｉ２Ｃ）４４と、セキュア周辺機器２２と、非セキュア周辺機器２４と、汎用入力／出力（ＧＰＩＯ）３８と、を含む。外部装置用のダイナミック・メモリ・アクセス（ＤＭＡ）７２サポートがさらに設けられる。その上、システムクロック１２と、水晶発振器１４と、電源管理ユニット（ＰＭＵ）４０と、デュアル状態遷移ロジック３４と、アービタ３２と、デバイス・セレクタ（ＤＳＥＬ）６２を含むアドレスデコーダと、アドバンスト・システム・バス（ＡＳＢ）サブシステム２８と、ＶＬＳＩ周辺バス（ＶＰＢ）サブシステム２６との間のブリッジ（ＡＳＢ２ＶＰＢ）５２と、グローバルコンフィギュレーション・デバイス・レジスタ（ＧＤＣＲ）５４が設けられる。スタティック・デバイス・インタフェース８０用の電子バス・インタフェース・ユニット（ＥＢＩＵ）７４と、ＳＲＡＭコントローラＳＤＲＡＭ／ＥＢＩＵ７０に接続された非同期ダイナミック・ランダム・アクセス・メモリ（ＳＤＲＡＭ）インタフェース７８も設けられる。
【００１７】
さらに図示されるように、この実施形態は、内蔵プロセッサ２０として、市販されているフィリップスセミコンダクターのＡＲＭ７２０Ｔを使用する。このプロセッサには、８Ｋバイトキャッシュのようなキャッシュメモリと、メモリ管理ユニット（ＭＭＵ）と、書き込みバッファと、プロセッサの動作用のアドバンスト・システム・バス（ＡＳＢ）インタフェースと、が含まれるが、これらに限定されない。
【００１８】
ＡＳＩＣ１０に関して記載した様々の部品は、上記の全ての部品を含むか、含まないか、または、より多くの部品を含むＡＳＩＣ構造に対して一般的である。本発明は、以下でより詳細に説明されるように、複数のクロックモニタ１６が設けられているＡＳＩＣ装置またはその他の装置用のシステムクロック１２のセキュア動作を対象にする。
【００１９】
プロセッサ２０は、アドバンスト・システム・バス（ＡＳＢ）サブシステム２８及び／又は超大規模集積（ＶＬＳＩ）周辺バス（ＶＰＢ）サブシステム２６を利用する内部バス構造を介して、様々の上記デバイスに接続される。ＡＳＢサブシステム２８は、アービタと、アドレスデコーダと、ＡＳＩＣの外部にあるメモリへのインタフェースと、ＡＳＩＣ内の他のバスへのブリッジとの間を接続する。図１に示されるように、この機能は、アービタ３２と、アドレスデコーダ６２と、例外ベクトルテーブル５０と、メモリ管理ユニット（ＭＭＵ）３０と、トリプルデータ暗号標準エンジン（ＤＥＳ／３ＤＥＳ）６４と、リード・オンリー・メモリ（ＲＯＭ）６６と、スタティック・ランダム・アクセス・メモリ（ＳＲＡＭ）６８と、スタティック・メモリ・コントローラ（ＳＤＲＡＭ／ＥＢＩＵ）７０と、ダイレクト・メモリ・アクセス・コントローラ（ＤＭＡ）７２と、によって提供される。動作中、ＡＳＢサブシステム２８は、一般的に、セキュア状態と非セキュア状態の二つの状態をもつ。ＡＳＢ２８の状態は、プロセッサ２０によってバスの制御権が与えられた所定のデバイス内のコントローラに依存する。したがって、ＡＳＢは、内部デバイスおよび外部デバイスの両方とプロセッサ２０との間にセキュア相互接続と非セキュア相互接続の両方を設ける。
【００２０】
ＶＰＢサブシステム２６は、ＡＳＢサブシステム２８とＶＰＢサブシステム２６との間にあるブリッジ（ＡＳＢ２ＶＰＢ）５２と、以下で詳述される複数のクロックモニタ１６と、割込コントローラ（ＩＮＴＣＴＬ）３６と、複数のシステムタイマ６０と、リアルタイム・セコンド・カウンタ（ＲＳＴＣ）１８と、キーパッドのようなセキュア周辺機器２２と、モデムのような装置を接続する複数のＵＡＲＴＳ（ＵＡＲＴ  Ａ−Ｄ）４８と、ハイレベル・データ・リンク・コントローラ（ＨＤＬＣ）４６と、フィリップスのＩ２Ｃバスインタフェース（Ｉ２Ｃ）４４と、プリンタのような非セキュア周辺機器２４と、汎用入力／出力（ＧＰＩＯ）３８と、乱数発生器（ＲＮＧ）４２と、グローバルコンフィギュレーション・デバイス・レジスタ（ＧＤＣＲ）５４と、電源管理ユニット（ＰＭＵ）４０と、以下で詳述されるシステムクロック１２と、により構成される。ＶＰＢサブシステム２６は、一般的に、セキュア状態と非セキュア状態の二つの状態をもつ。したがって、ＶＰＢサブシステム２６の状態は、バスの制御権が与えられた所定のデバイス内のコントローラに依存する。
【００２１】
選択されたデバイスと、使用されたバスのために利用可能な状態と、ＡＳＩＣ１０の構造に特有であるアーキテクチャと、を使用して、様々のデバイスとプロセッサとの間のセキュア通信および非セキュア通信の両方の方法が提供される。例えば、プロセッサ２０は、前述したように、セキュア形式／非セキュア形式でクレジットカードを使用する金融取引において、キーボードおよびテーププリンタと通信することができる。したがって、ＡＳＩＣ  １０は、本発明の特徴によって提供される機能に加えて、多数のセキュリティ機能を提供する。
【００２２】
ＡＳＩＣ  １０のアーキテクチャはある程度のセキュリティを提供するが、ＡＳＩＣ  １０は、依然として、多数の一般的なセキュリティ攻撃を受けやすい。例えば、ＡＳＩＣ  １０によって実施された取引のセキュリティは、依然として、過周波数クロッキングまたは不足周波数クロッキングによって、内部状態に関する情報を提供する。本発明は、ＡＳＩＣ  １０を多数の一般的なセキュリティ攻撃から保護するため、複数のクロックモニタ１６およびシステムクロックを与えることによって、このこと、および、その他の問題に対処する。より詳しく説明すると、開示された実施形態および残りの図に示された本発明の実施形態は、ＡＳＩＣ  １０の過周波数または不足周波数クロッキングを含むセキュリティ攻撃を対象にする。しかし、当業者は、本発明が、セキュアクロックへ切り替えることが望ましいその他のタイプのセキュリティ攻撃に容易に適応することがわかるであろう。
【００２３】
前述のように、クロックは、ＡＳＩＣ１０に機能を実行させる動作ルーチンを介してＡＳＩＣ１０の処理を進めるために用いられる。過周波数または不足周波数クロック信号を加えることにより、ＡＳＩＣを用いて実施された取引と関連した秘密データが突き止められる。本発明は、ＡＳＩＣ  １０からのセキュア状態で秘密状態の金融および口座情報の不正アクセスを阻止することを対象にする。ＡＳＩＣ  １０が過周波数または不足周波数でクロッキングされることを防止するため、高周波および低周波モニタリングが、本発明のこの具体的な実施形態に従って複数のクロックモニタ１６内で行われる。高周波数および低周波数モニタリングは本発明のこの具体的な実施形態の一部として与えられるが、その他の保護機能のホストは、当業者によって認められるように、クロックモニタ１６に組み込んでもよい。
【００２４】
ＡＳＩＣが過周波数または不足周波数でクロッキングされるセキュリティ攻撃では、人はＡＳＩＣの動作を観察し、過周波数または不足周波数クロッキングに応答するＡＳＩＣの種々の出力を記録し、ＡＳＩＣの動作を突き止める。次に、本発明およびＡＳＩＣ  １０の過周波数または不足周波数検出機能の詳細について説明すると、図２は図１の一部分の機能ブロック図であり、本発明の特徴を示している。図２に示されるように、水晶発振器１４は、二つのクロックモニタ１６Ａおよび１６Ｂとシステムクロック１２と共に、以下の説明でクロックスイッチング回路またはクロックスイッチ１００と称するものを構成する。システムクロック１２は、位相ロックループ（ＰＬＬ）１０２、マルチプレクサ１０４およびクリーンスイッチングロジック１０６をさらに含む。
【００２５】
クロックスイッチ１００は以下の通り機能する。水晶発振器１４は、システムクロック１２内にあるＰＬＬ  １０２に供給される基本周波数で発振し、ＰＬＬ１０２はその基本周波数からシステムクロック信号１０８を発生する。システムクロック信号１０８は、同様にシステムクロック１２内にあるマルチプレクサ１０４と、各クロックモニタ１６Ａ、１６Ｂに供給される。各クロックモニタ１６Ａ、１６Ｂは、セキュアクロック信号ＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）のそれぞれを生成するセキュアクロックを含み、セキュアクロック信号は、また、システムクロック１２内にあるマルチプレクサ１０４へ供給される。各クロックモニタ１６Ａ、１６Ｂは、各クロックモニタ内のパラメータセットに基づいて、過周波数状態および不足周波数状態に関して、システムクロック信号１０８を監視するように構成された回路を含む。
【００２６】
クロックモニタ１６Ａと１６Ｂのどちらもクロック信号の過周波数状態または不足周波数状態を検出しない場合、マルチプレクサは、ＡＳＩＣ  １０内のプロセッサ２０によって使用されるセキュアクロック１１４としてシステムクロック信号１０８を出力する。しかし、クロックモニタ１６Ａ、１６Ｂの一方または両方によって過周波数または不足周波数状態が検出された場合、クロックモニタ１６Ａ、１６Ｂは、クリーンスイッチングロジック１０６へのセキュリティ保証ロジッククロック信号（ＳＡＬ＿ＣＬＫ１，ＳＡＬ＿ＣＬＫ２）のそれぞれをアサートし、次に、クリーンスイッチングロジック１０６は、マルチプレクサ１０４を、システムクロック信号１０８の出力から、過周波数または不足周波数状態を最初に検出したクロックモニタ１６Ａ、１６Ｂに対するそれぞれのセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）とＳＥＣ＿ＣＬＫ２（１１０Ｂ）の出力へ切り替える。両方のクロックモニタが過周波数または不足周波数状態を同時に検出する場合、クリーンスイッチングロジック１０６は、クロックモニタ１６Ａからのセキュアクロック信号ＳＥＣ＿ＣＬＫ１（１１０Ａ）をシステムクロック信号１１４として出力させる。クロックモニタ１６Ａ、１６Ｂが、過周波数または不足周波数状態はもはや存在しない、と判定すると、セキュアクロック信号１１４は、元のシステムクロック信号１０８となるように切り替えられる。
【００２７】
それぞれのクロックモニタ１６Ａ、１６Ｂから生成されたリセット信号ＲＥＳＥＴ＿１（１１６Ａ）、ＲＥＳＥＴ＿２（１１６Ｂ）は、電源がクロックスイッチ１００へ供給されたとき、既知の論理状態を与える。これは、リセット信号ＲＥＳＥＴ＿１（１１６Ａ）、ＲＥＳＥＴ＿２（１１６Ｂ）がアサートされたとき、クロックスイッチ内で実施される。
【００２８】
クリーンスイッチングロジック１０６は、システムクロック信号１０８とセキュアクロック信号ＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）との間の切り替えがクロックモニタ１６Ａ、１６Ｂ内で生成されるときに、セキュアクロック１１４によって駆動されるデバイスのクロック要求の変化に適応するため設けられる。本発明の目的のため、クロック信号１１４が以下の二つの基準を満たすならば、スイッチングは「クリーン」であるとみなされる。第一に、クロック信号１１４は、「グリッチ」、すなわち、ハイ状態からロー状態への、または、ロー状態からハイ状態へのいずれかの論理的な閾値と交差しない短い遷移をもつべきではない。第二に、クロック信号１１４がロー状態へ遷移するとき、クロック信号１１４は、所定の時間（ロー状態時間）に亘ってロー状態を維持しなければならない。同様に、クロック信号１１４は、ハイ状態へ遷移するとき、所定の時間（ハイ状態時間）に亘ってハイ状態を維持しなければならない。ロー状態時間およびハイ状態時間には、クロック信号１１４の上側および下側周波数を制限するため、最小値および最大値がある。さらに、本特許で説明されるマルチプレクサ１０４は、一定クロックデューティサイクルを維持しなければならない状況での使用が一般に意図されていない。なぜならば、クロック間での切り替えの際に、クリーンスイッチングロジック１０６は、切り替えられるべきクロックがロー状態になるまで待機し、次に、後続のクロックがロー状態になった直後に後続のクロックに切り替わるからであり、このことは後述の図に詳細に説明されている。この結果として、一般的に、単一のクロックのロー状態時間よりも長い複合ロー状態時間が得られる。さらに、例示された実施形態に記載されているロジックは、フィリップスセミコンダクタのＡＲＭ７２０Ｔ型プロセッサ２０と共に使用するため、具体的に選択され、適応させられた。使用されるクリーンスイッチングロジック１０６は、本発明の原理に従って、同様に種々のその他の装置と共に機能するように容易に適応できる。
【００２９】
また、当業者は、これが本発明のクロックスイッチ機能を実施するための実現可能な唯一のコンフィギュレーションではないことを容易に認めるであろう。当業者は、さらに、各クロックモニタが、一実施形態において説明したように単なる過周波数および不足周波数の監視というよりもむしろ、一般的に入手可能な回路を用いて、故障およびセキュリティ攻撃基準を監視するため構成可能であることを認めるであろう。その上、当業者は、付加的なクロックモニタが使用可能であること、ならびに、２個のクロックモニタが冗長性を与える本発明のこの具体的な実施形態が、付加的なクリーンスイッチングロジックおよび多重化を伴うとき、さらなる冗長動作のための付加的なクロックモニタを組み込むように拡張可能であること、を容易に認めるであろう。最後に、当業者は、クリーンスイッチングロジックが種々のクロック要求をもつ様々の装置またはプロセッサと共に機能するように容易に適応されることを認めるであろう。
【００３０】
図３を参照すると、図２に示されたクロックスイッチ１００の機能ブロック図に対する一つの実現可能な回路が例示されている。これは、本発明の原理によるクロックスイッチ１００を実現するための唯一の実現可能な回路ではない。図３を詳しく参照すると、図示された回路は、以下の下位回路、即ち、ネガティブエッジスイッチ１（２０２）と、ネガティブエッジスイッチ２（２０４）と、発振器クロックマルチプレクサ２０６と、システムクロックセレクタ２０８と、セキュアクロックセレクタ２１０と、により構成される。ネガティブエッジスイッチ１（２０２）およびネガティブエッジスイッチ２（２０４）は図４により詳細に示されている。発振器クロックマルチプレクサ２０６は、図５Ａおよび５Ｂにより詳細に示され、セキュアクロックセレクタ２１０は図６により詳細に示されている。システムクロックセレクタ（２０８）は図７に示されている。以下、これらの下位回路の各々の基本機能および動作は、それぞれの図と組み合わせて説明される。
【００３１】
次に、図３に示された回路の基本動作を説明する。図３に示された回路の動作は、二つのシナリオを考察することによって最も巧く説明される。第１のシナリオでは、過周波数または不足周波数状態が何れのクロックモニタ１６Ａ、１６Ｂによっても検出されなかったとき、クロック信号１１４がシステムクロック信号１０８によって供給される。第２のシナリオでは、過周波数または不足周波数状態、或いは、システム内のある種の他の故障またはセキュリティ違反がクロックモニタ１６Ａ、１６Ｂの一方または両方によって検出されたとき、セキュリティクロックが、クロックモニタ１６Ａ、１６Ｂによって発生されたセキュリティクロック信号ＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の一方によって供給される。
【００３２】
第１のシナリオでは、パワーオンシーケンスが完了した後、信号ＲＥＳＥＴ１（１１６Ａ）およびＲＥＳＥＴ２（１１６Ｂ）は偽である。クロックモニタ１６Ａ、１６Ｂはどちらも未だ過周波数または不足周波数状態を検出していないので、信号ＳＡＬ＿ＣＬＫ１（１１２Ａ）およびＳＡＬ＿ＣＬＫ２（１１２Ｂ）はローである。システムクロック１２は、システムクロック信号１０８がセキュアクロック１１４として出力されることを可能にする。
【００３３】
第２のシナリオでは、クロックモニタ１６Ａ、１６Ｂの一方または両方は、過周波数または不足周波数状態を含むセキュリティ攻撃のような故障を検出し、モニタは、それぞれのＳＡＬ＿ＣＬＫ１（１１２Ａ）信号またはＳＡＬ＿ＣＬＫ２（１１２Ｂ）信号をハイ状態にすることにより、それぞれの信号をアサートしている。この状況で、過周波数または不足周波数状態を最初に検出したクロックモニタ１６Ａ、１６Ｂと関連したセキュアクロック信号ＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）は、セキュアクロック１１４として出力されるであろう。残っている方のクロックモニタ１６Ａ、１６Ｂも、過周波数または不足周波数状態のような故障を検出し、その対応したＳＡＬ＿ＣＬＫ１（１１２Ａ）信号またはＳＡＬ＿ＣＬＫ２（１１２Ｂ）信号をアサートしているならば、２番目のクロックモニタからの信号は、原則的に使用されないであろう。しかし、最初のクロックモニタが過周波数または不足周波数状態を検出しなくなり、その対応したＳＡＬ＿ＣＬＫ１（１１２Ａ）信号またはＳＡＬ＿ＣＬＫ２（１１２Ｂ）信号をデアサートする場合、過周波数または不足周波数状態を２番目または最後に検出したクロックモニタ１６Ａ、１６Ｂと関連したセキュアクロック信号ＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）がセキュアクロック１１４として出力されるであろう。両方のクロックモニタが過周波数状態または不足周波数状態を同時に検出したときのための対策も用意される。この状況では、システムクロック１２は、デフォルトとして第１のクロックモニタ１６Ａになり、そのセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）がセキュアクロック信号１１４として使用される。最後に、両方のクロックモニタ１６Ａ、１６Ｂが過周波数または不足周波数状態を検出しなくなり、それぞれのＳＡＬ＿ＣＬＫ１（１１２Ａ）信号およびＳＡＬ＿ＣＬＫ２（１１２Ｂ）信号をアサートしなくなると、システムクロック１２は、再度、クロック信号１１４としてシステムクロック信号１０８を出力する。
【００３４】
したがって、システムクロック１２は、プロセッサ２０が、過周波数または不足周波数セキュリティ攻撃中に、クロックモニタ１６Ａ、１６ＢのセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の一方を使用して動作することを可能にする。これにより、プロセッサ２０は、プロセッサに動作ルーチンを進めさせるため使用されるシステムクロック信号１０８の操作を無効にできる。このようにすることによって、システムクロック１２は、秘密情報を消去するためプロセッサ用のセキュアクロックを提供することにより、ＡＳＩＣ  １０にセキュリティを追加する。
【００３５】
本発明のこの具体的な実施形態において、システムクロック信号１０８から、クロックモニタ１６Ａ、１６Ｂ内のセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の何れかへの切り替えは、「クリーン」でなくてもよい。なぜならば、クロックモニタ１６Ａ、１６Ｂは、同時のリセット（ＲＥＳＥＴ１，ＲＥＳＥＴ２）を供給するからである。この同時のリセットは、図３に示された論理ゲート２１２、２１６を介して、クロックスイッチ１００に加えられる。しかし、クロックモニタ１６Ａ、１６Ｂ内のセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の何れかから、元のシステムクロック１０８へ切り替えるとき、遷移は、この開示された本発明におけるフィリップスセミコンダクタのＡＲＭ７２０Ｔ型プロセッサ２０によって要求されるように、グリッチ、余分なエッジ、または、狭いパルスを含むことなく、「クリーン」でなければならない。ここに開示された実施形態は、この「クリーン」スイッチングを提供する。当業者には明らかであるように、本発明の実施形態が、システムクロックからセキュアクロックへ移るとき、クリーンスイッチングロジックに同時のリセットを供給しないクロックモニタを用いて実施されるならば、クリーンスイッチングロジックは、そのシナリオでも同様にクリーンスイッチングに適応するように容易に変更できる。
【００３６】
さらに、前述したように、この具体的な実施形態では、低周波数最小値が破られない限り、システムクロック信号１０８、または、クロックモニタ１６Ａ、１６ＢのセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）のロー状態時間に制限はない。本発明の開示された実施形態は、システムクロック信号１０８とセキュアクロック信号ＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）との間に最大ハイ状態時間を要求するデバイスと共に使用されることが望ましいならば、適合するかもしれない。従来の回路を使用するクロック信号の最小ロー状態時間または最大ハイ状態時間を与えるため、クリーンスイッチングロジック１０６を変更する方法は、当業者に明らかであろう。
【００３７】
例示されたクリーンスイッチングロジック１０６は、マルチプレクサ１０４が、システムクロック信号１０８が停止した場合でも、何れかのセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）からシステムクロック信号１０８へ切り替わることを可能にする。すなわち、本発明の開示された実施形態は、システムクロック信号１０８が失われた場合に、代替的なクロック信号を準備しない。しかし、クリーンスイッチングロジック１０６は、システムクロックが停止しても、望ましい場合には、プロセッサ２０にセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の一方を供給するように適応させることができる。
【００３８】
最後に、上記のクロックモニタ１６Ａ、１６Ｂは、過周波数状態または不足周波数状態を判定する従来の回路を利用する。さらに、当業者は、後述されるような種々の一般的な故障若しくはセキュリティ攻撃を監視するため同じ機能または同様の機能を提供する様々の回路を容易に実現できるであろう。クロックモニタ１６Ａ、１６Ｂは機能ブロック図として表され、システムクロック信号１０８が許容範囲外であることを検出し、プロセッサ２０に代替的なセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）を使用させるため、システムクロック１２がどのように構成できるかを示している。
【００３９】
次に残りの図を重点的に取り扱うと、図示された回路は、本発明のクリーンスイッチングロジックが以下で説明する本発明の具体的な実施形態でどのように実現されているかを詳細に表している。図４は、図３に示されたネガティブエッジスイッチ１（２０２）とネガティブエッジスイッチ２（２０４）の両方のため使用される論理回路を示す。当業者が気付くように、文字「Ｎ」は、前述のクロックモニタ１６Ａ、１６Ｂを具体的に参照する。ネガティブエッジスイッチ２０２、２０４は、クロックモニタ１６Ａ、１６ＢからのＳＡＬ＿ＣＬＫ＿Ｎ信号１１２Ａ、１１２Ｂの負側へ進むエッジを検出するため機能し、同時にＳＥＣ＿ＣＬＫ  ４０４によって駆動される。ネガティブエッジスイッチ２０２、２０４は、次に、検出されたネガティブエッジを、それぞれ信号ＮＥＧ＿ＥＤＧ＿ＳＷＮ  ３０２、３０４として出力し、それらの信号は以下の図面の後続の回路によって使用される。ネガティブエッジスイッチ２０２、２０４は、同期したバージョンのＳＡＬ＿ＣＬＫ＿Ｎ信号１１２Ａ、１１２Ｂを生成し、それらをＳＷＩＴＣＨ＿ＣＬＫＮ＿ＳＹＮＣ  ３０６、３０８として出力する。これは、過周波数または不足周波数状態のような故障またはセキュリティ攻撃がクロックモニタ１６Ａ、１６Ｂの一方によって検出された後、システムクロック信号１０８からセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の一方へ切り替えるとき、クリーンスイッチングを行うために必要な信号を同期させる第１のステップである。
【００４０】
図５Ａを参照すると、図示された論理回路は、図３に示された発振器クロックマルチプレクサ２０６の一部を表す。発振器クロックマルチプレクサ論理回路は、ネガティブエッジスイッチ２０２、２０４からＳＷＩＴＣＨ＿ＣＬＫ１＿ＳＹＮＣ  ３０６およびＳＷＩＴＣＨ＿ＣＬＫ２＿ＳＹＮＣ  ３０８を取得し、セキュアクロック信号ＳＥＣ＿ＣＬＫ  ４０４として、ＳＥＣ＿ＣＬＫ１（１１０Ａ）を使用するか、または、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）を使用するかを決定する。図示されるように、信号ＵＳＥ＿ＣＬＫ１（４０２）およびＵＳＥ＿ＣＬＫ２（４０４）が発生され、クロックマルチプレクサ４１０に、過周波数または不足周波数状態を検出したクロックモニタ１６Ａ、１６Ｂのための対応したクロック１１０Ａ、１１０Ｂを選択させる。これは、過周波数または不足周波数状態が検出された後、システムクロック信号１０８からセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の一方へ切り替えるとき、クリーンスイッチングを行うために必要な信号を同期させる第２のステップである。
【００４１】
次に図５Ｂを参照すると、図示された論理回路は、図５Ａに示されたクロックマルチプレクサ４１０のための後述の機能を実行する。当業者は、上記のマルチプレクサ機能を実行するため様々の回路が使用できること、ならびに、図５Ｂに示された論理回路はそのような回路の一例に過ぎないことを認めるであろう。
【００４２】
次に図６を参照すると、図３に示されたセキュアクロックセレクタ２１０のための論理回路が示されている。セキュアクロックセレクタ２１０の入力は、ネガティブエッジスイッチ２０２、２０４のＮＥＧ＿ＥＤＧ＿ＳＷ１信号３０２およびＮＥＧ＿ＥＤＧ＿ＳＷ２信号３０４と、セキュアクロックマルチプレクサ２０６のＳＥＣ＿ＣＬＫ信号４０４と、図３に示されるように論理ゲート２１２によってＳＡＬ＿ＣＬＫ１（１１０Ａ）およびＳＡＬ＿ＣＬＫ２（１１０Ｂ）から得られたＳＷＩＴＣＨ信号５０２と、から得られる。かくして、ＳＷＩＴＣＨ信号５０２のアサートの後、セキュアクロックセレクタ２１０は、過周波数または不足周波数状態が検出されたとき、ＵＳＥ＿ＳＥＣ＿ＣＬＫ  ５０４を出力する。これは、システムクロック信号１０８から、クロックモニタ１６Ａ、１６Ｂで見つかったセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の一方へ、クリーンスイッチングを行うために必要な信号を同期させる第３のステップである。
【００４３】
最後に、図５Ａに示されたクロックマルチプレクサ４１０によって生成されたＳＥＣ＿ＣＬＫ信号４０４と、図６に示されたセキュアクロックセレクタ２１０によって生成されたＵＳＥ＿ＳＥＣ＿ＣＬＫ信号５０４は、図３の論理回路２１４で合成され、同様に図３に示された論理ゲート２１８に、セキュアクロック１１４として、過周波数または不足周波数状態を検出したクロックモニタ１６Ａ、１６ＢのそれぞれのセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）を出力させる。この場合も同様に、これによって、プロセッサ２０は、過周波数または不足周波数セキュリティ攻撃中に、クロックモニタ１６Ａ、１６ＢのセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の一方を使用して動作し、動作ルーチンを進める際にシステムクロック信号１０８の操作を無効にできる。
【００４４】
次に図７を参照すると、図３に示されたシステムクロックセレクタ２０８のための論理回路が図示されている。システムクロックセレクタ２０８は、故障またはセキュリティ攻撃がクロックモニタ１６Ａ、１６Ｂによって検出されなくなった後、プロセッサ２０が、クロックモニタ１６Ａ、１６ＢのセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の一方と組み合わされた動作から、システムクロック信号１０８と組み合わされた動作へ移行するときに、「クリーン」スイッチングを行うため作用する。このシステムクロックセレクタ２０８は、その入力として、図４に示されたネガティブエッジスイッチ２０２、２０４からのＮＥＧ＿ＥＤＧＥ＿ＳＷ１（３０２）信号およびＮＥＧ＿ＥＤＧＥ＿ＳＷ２（３０４）信号と、図３に示された論理ゲート２１２によってＳＡＬ＿ＣＬＫ１（１１０Ａ）およびＳＡＬ＿ＣＬＫ２（１１０Ｂ）から得られたＳＷＩＴＣＨ信号５０２と、同様に論理ゲート２１２によってＲＥＳＥＴ＿１信号およびＲＥＳＥＴ＿２信号から得られたＲＥＳＥＴ＿Ｎ信号６０２と、図５Ａおよび５Ｂに示されたＳＥＣ＿ＣＬＫ信号４０４と、を取得する。図７に示されるように、３ビットグレイカウンタ６００は、最後のスイッチのネガティブエッジが入力：ＳＷＩＴＣＨ  ５０２、ＮＥＧ＿ＥＤＧＥ＿ＳＷ２（３０４）、ＮＥＧ＿ＥＤＧＥ＿ＳＷ１（３０２）、およびＲＥＳＥＴ＿Ｎ  ６０２から予想されるまで、リセットされたままである。３ビットグレイカウンタ６００は、次に、カウントを開始し、２進カウント１で第１のフリップフロップ６０６を動作させ、２進カウント３で第２のフリップフロップ６０４を動作させる。システムクロック信号１０８が作動しているとき、フリップフロップ６０４、６０６はクロッキングされる。次に、フリップフロップ６０４、６０６は、第３のフリップフロップ６０８をクロッキングし、第３のフリップフロップ６０８はＵＳＥ＿ＳＹＳ＿ＣＬＫ信号６１０をアサートする。これにより、ＳＷＩＴＣＨ信号５０２がデアサートされ、信号ＮＥＧ＿ＥＤＧＥ＿ＳＷ１（３０２）とＮＥＧ＿ＥＤＧＥ＿ＳＷ２（３０４）の何れかのネガティブエッジが検出された後に、システムクロック信号１０８の立ち上がりエッジでＵＳＥ＿ＳＹＳ＿ＣＬＫ  ６１０がイネーブル状態になる。ＵＳＥ＿ＳＹＳ＿ＣＬＫ  ６１０は、次に、図３に示されるようなＳＷＩＴＣＨ信号５０２から得られたＳＷＩＴＣＨ＿Ｎ信号２１８、および、システムクロック信号１０８と論理ゲート２１６で合成される。論理ゲート２１６は、次に、システムクロック信号１０８で論理ゲート２１８を駆動し、図３に示されるように、それはセキュアクロック信号１１４として出力される。これは、過周波数または不足周波数が検出されなくなった後、クロックモニタ１６Ａ、１６ＢのセキュアクロックＳＥＣ＿ＣＬＫ１（１１０Ａ）、ＳＥＣ＿ＣＬＫ２（１１０Ｂ）の一方の動作から、システムクロック信号１０８へ切り替える際に、プロセッサ２０にクリアスイッチングを設ける。尚、前述したように、たとえシステムクロック信号１０８が動作していなくても、図２および３に示されたセキュアクロック１１４は、３ビットグレイカウンタ６００がタイムアウトし���後、システムクロック信号１０８へ切り替えられることに注意する必要がある。
【００４５】
本発明は、その実施形態の記載によって説明され、実施形態はかなり詳細に記述されているが、出願人は、請求項に記載された事項の範囲をこのような詳細に限定し、或いは、多少でも制限することを意図しない。さらなる効果および変更は、当業者にとって容易にわかるであろう。したがって、最広義の意味において本発明は、装置および方法を表す具体的な詳細や、図示され解説された実施形態に限定されない。よって、出願人の全体的な発明の概念の精神または範囲から逸脱することなく、このような詳細から新しい展開をなすことができる。
【図面の簡単な説明】
【００４６】
【図１】本発明の実施形態を具体化するシステムのブロック図である。
【図２】本発明の原理に従って機能するクロックの機能ブロック図である。
【図３】図１および２に示されたシステムに図解されているクロック機能の一実施形態の回路図である。
【図４】図１、２および３に示されたシステムで利用されるネガティブエッジスイッチの一実施形態の回路図である。
【図５Ａ】図１、２および３に示されたシステムで利用される発振器クロックマルチプレクサの一実施形態の回路図の一部分である。
【図５Ｂ】図１、２および３に示されたシステムで利用されるマルチプレクサの一実施形態の回路図の別の部分である。
【図６】図１、２および３に示されたシステムで利用されるセキュアクロックセレクタの一実施形態の回路図である。
【図７】図１、２および３に示されたシステムで利用されるシステムクロックセレクタの一実施形態の回路図である。
【図１】
2005513604.tif 000003
【図２】
2005513604.tif 000004
【図３】
2005513604.tif 000005
【図４】
2005513604.tif 000006
【図５Ａ】
2005513604.tif 000007
【図５Ｂ】
2005513604.tif 000008
【図６】
2005513604.tif 000009
【図７】
2005513604.tif 000010
【国際調査報告】
2005513604.tif 000011
2005513604.tif 000012
2005513604.tif 000013