(57)【特許請求の範囲】
【請求項１】
集積回路（ＩＣ）であって、当該集積回路（ＩＣ）は、前記ＩＣ全体にクロック信号を分配するように構成されているクロックツリー回路、および、保護回路を具備し、
当該保護回路は、
前記クロックツリー回路における複数のサンプリング点でサンプリングされた前記クロック信号の複数のインスタンスによってクロックされた複数の論理段を具備するシフトレジスタと、
前記クロックツリー回路における前記クロック信号の１または複数のインスタンスにおける異常に起因して起こる故障を検出するように構成された検出器であって、デスリガーディング（無視）期間、提供されたリセット信号に基づいて、初期化またはリセット後、所定数のクロックサイクル内における前記シフトレジスタからの所望の出力からの偏移を検出する、検出器と、
を具備する、
集積回路（ＩＣ）。
【請求項２】
前記論理段は、各フリップフロップ（ＦＦ）を含む、
請求項１に記載の集積回路。
【請求項３】
前記シフトレジスタは、論理値が交互のパターンを出力するように構成され、
前記検出器は、前記交互のパターンからの偏移を判定するように構成されている、
請求項１に記載の集積回路。
【請求項４】
前記保護回路は、前記シフトレジスタを初期化し、前記所望の出力を初めに生成するように構成されている、
請求項１に記載の集積回路。
【請求項５】
前記保護回路は、前記故障の検出に応じて、前記検出された故障に従って、警報を発する、または動作するように構成されている、
請求項１に記載の集積回路。
【請求項６】
クロックツリー回路を用いてクロック信号を集積回路（ＩＣ）全体に分配するステップ、
前記クロックツリー回路における複数の各サンプリング点において前記クロック信号の複数のインスタンスをサンプリングするステップ、
前記クロック信号の前記複数のインスタンスによってシフトレジスタの複数の論理段をクロックするステップ、および
前記シフトレジスタの出力を監視して前記クロックツリー回路における、前記クロック信号の１または複数のインスタンスにおける異常に起因して起こる故障を検出する検出器を用いるステップであって、デスリガーディング（無視）期間に、提供されたリセット信号に基づいて、初期化またはリセット後、所定数のクロックサイクル内における、前記シフトレジスタからの所望の出力からの偏移を検出するステップ
を具備する、方法。
【請求項７】
前記論理段は、各フリップフロップ（ＦＦ）を含む、
請求項６に記載の方法。
【請求項８】
前記論理段をクロックするステップは、論理値が交互のパターンを出力するステップを含み、
前記故障を検出するステップは、前記交互のパターンからの偏移を判定するステップを含む、
請求項６に記載の方法。
【請求項９】
前記偏移を判定するステップは、前記シフトレジスタを初期化し、前記所望の出力を初めに生成するステップを具備する
請求項６に記載の方法。
【請求項１０】
前記故障の検出に応じて、前記検出された故障に従って、警報を発する、または動作するステップを含む
請求項６に記載の方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、デジタル電子回路に関し、特に、クロックツリー回路における故障から保護する方法およびそのシステムに関するものである。
【背景技術】
【０００２】
様々な技術が、暗号回路など、安全な電子回路から情報をアクセス、分析、抽出するのに用いられている。故障注入とも呼ばれる、ある攻撃は、通常、例えば、信号線に物理的に接触する、または損傷を与えることによって、高出力レーザーまたは電磁パルスによって、或いは電源または他の外部インターフェースにグリッチを引き起こすことによって、回路の故障を引き起こすことを包む。上述の故障は、回路が敏感な情報を出力するのを招き、若しくは攻撃者が回路、または回路が保存した情報に侵入するのを助けることが予測されている。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
本発明はクロックツリー回路における故障から保護する方法およびそれを用いたＩＣを提供する。
【課題を解決するための手段】
【０００４】
本発明によれば、集積回路（ＩＣ）であって、当該集積回路（ＩＣ）は、前記ＩＣ全体にクロック信号を分配するように構成されているクロックツリー回路、および、保護回路を具備し、
当該保護回路は、前記クロックツリー回路における複数のサンプリング点でサンプリングされた前記クロック信号の複数のインスタンスによってクロックされた複数の論理段を具備するシフトレジスタと、前記クロックツリー回路における前記クロック信号の１または複数のインスタンスにおける異常に起因して起こる故障を検出するように構成された検出器であって、デスリガーディング（無視）期間、提供されたリセット信号に基づいて、初期化またはリセット後、所定数のクロックサイクル内における前記シフトレジスタからの所望の出力からの偏移を検出する、検出器と、を具備する、集積回路（ＩＣ）が提供される。
【０００５】
また本発明によれば、
クロックツリー回路を用いてクロック信号を集積回路（ＩＣ）全体に分配するステップ、
前記クロックツリー回路における複数の各サンプリング点において前記クロック信号の複数のインスタンスをサンプリングするステップ、
前記クロック信号の前記複数のインスタンスによってシフトレジスタの複数の論理段をクロックするステップ、および
前記シフトレジスタの出力を監視して前記クロックツリー回路における、前記クロック信号の１または複数のインスタンスにおける異常に起因して起こる故障を検出する検出器を用いるステップであって、デスリガーディング（無視）期間に、提供されたリセット信号に基づいて、初期化またはリセット後、所定数のクロックサイクル内における、前記シフトレジスタからの所望の出力からの偏移を検出するステップ
を具備する、方法が提供される。
【０００６】
ここに述べられる本発明の実施形態は、クロックツリー回路と保護回路を含む集積回路（ＩＣ）を提供する。クロックツリー回路は、クロック信号をＩＣ全体に分配するように構成される。保護回路は、クロックツリー回路の複数のサンプリング点でサンプリングされた、クロック信号の複数のインスタンス（事象）によってクロックされ、クロック信号の１つ以上のインスタンスの異常に応じて、クロックツリー回路の故障を検出するように構成される。
【０００７】
いくつかの実施形態では、保護回路は、クロック信号の各インスタンスによってクロックされた、論理段のカスケードを含み、検出器は、カスケードの出力が所望の出力から偏移するかを判定することによって故障を検出するように構成される。実施形態では、論理段は、各フリップフロック（ＦＦ）を含む。開示された実施形態では、論理段のカスケードは、論理値の交互パターンを出力するように構成され、検出器は、交互パターンから偏移を判定するように構成される。
【０００８】
実施形態では、検出器は、初期化後、所定の間隔内で起きたカスケードの出力の偏移を無視するように構成される。代替の実施形態では、保護回路は、カスケードの論理論を初期化し、所望の出力を初めに生成するように構成される。いくつかの実施形態では、故障の検出に応じて、保護回路は、検出された故障に従って警報を発する、または動作することができる。
【０００９】
また、本発明の実施形態に係る、クロックツリー回路を用いてクロック信号を集積回路（ＩＣ）全体に分配するステップを含む方法が提供される。クロック信号の複数のインスタンスは、クロックツリー回路の複数の各サンプリング点でサンプリングされる。保護回路は、クロック信号の複数のインスタンスによってクロックされる。クロックツリー回路の故障は、保護回路を用いて、クロック信号の１つ以上のインスタンスの異常に応じて、検出される。
【発明の効果】
【００１０】
本発明によれば、クロックツリー回路上の種々のフォールト攻撃を効果的かつ精度高く検出することができる。また、保護回路は面積が少なくてすむ。
【図面の簡単な説明】
【００１１】
【図１】本発明の実施形態に係る、クロックツリーの保護回路を含む集積回路（ＩＣ）を概略的に示したブロック図である。
【図２】本発明の実施形態に係る、クロックツリーの故障保護の方法を概略的に示したフローチャートである。
【発明を実施するための形態】
【００１２】
添付の図面とともに以下の本発明の様々な実施形態の詳細な説明を検討することで、本発明はより完全に理解できる。
ここで述べられる実施形態は、集積回路（ＩＣ）のクロックツリー回路の故障を検出する、改善された方法およびそのシステムを提供する。開示された実施形態において、ＩＣは、ＩＣ全体にクロック源から各ハードウェアユニットにクロック信号を分配するクロックツリー回路（以下、簡潔に「クロックツリー」とも呼ぶこともある）を含む。クロックツリー回路は、通常、ＩＣの大部分に跨る回路トレース、および増幅器、バッファ、ラッチ、および／またはインバーターなどの能動部品も含む。
【００１３】
いくつかのケースでは、クロックツリー回路は、例えば、ＩＣ機能を分析しようとするか、またはＩＣに保存された情報にアクセスしようとする、フォールト攻撃を受ける可能性がある。フォールト攻撃は、通常、ある恒久的な異常または一時的な異常をクロックツリー回路に与え、ＩＣをその保護機構を回避する異常な状態にさせようとする。以下の内容は、フォールト攻撃に焦点を当てた説明であるが、本発明の技術は、攻撃が原因でない故障を検出するのに用いられることもできる。
【００１４】
いくつかの実施形態では、ＩＣは、クロックツリー回路上でフォールト攻撃となり得る行為を検出および警告する保護回路を含む。保護回路は、クロックツリー回路上の複数のサンプリング点でサンプリングされた、クロック信号の複数のインスタンスによってクロックされ、クロック信号の１つ以上のインスタンスの異常を検出することによって、クロックツリー回路の故障を判定する。
【００１５】
例示的な実施形態では、例えば、シフトレジスタで構成された保護回路は、クロック入力がクロック信号の各インスタンスによってクロックされた、フリップフロップ（ＦＦ）段（ｓｔａｇｅ）のカスケードを含む。第１のフリップフロップ段は、第１のフリップフロップのネゲートされた（ｎｅｇａｔｅｄ）出力が第１のフリップフロップの入力にフィードバックする。正常な状態において、ＩＣの出力は、交互の“１０１０１０１０１０．．．”パターンである。このパターンからのどんな偏移も、フリップフロップ段の１つ以上のクロック入力における異常、即ち、クロック信号の１つ以上のサンプリングされたインスタンスにおける異常を示している。保護回路は、カスケードの出力が予期した“１０１０１０．．．”パターンから偏移するかを判定することによってクロックツリーの故障を検出する検出器を含む。代替の実施形態では、他の適切なパターン（例えば、疑似ランダムであるが予測可能なパターン）も用いることができる。
【００１６】
本発明の技術は、クロックツリー回路上の種々のフォールト攻撃を検出するのに非常に効果的かつ精度が高い。同時に、保護回路は、面積が小さく、実装し易い。
【００１７】
システム記述
図１は、本発明の実施形態に係る、クロックツリー回路の保護回路を含む集積回路（ＩＣ）２０を概略的に示したブロック図である。ＩＣ２０は、例えば、マイクロプロセッサ、メモリ装置、特定用途向けＩＣ（ＡＳＩＣ）、フィールドプログラマブルゲートアレイ（ＦＰＧＡ）、または他の適切なタイプのＩＣを含むことができる。
【００１８】
ＩＣ２０は、ＩＣ全体にクロック源２８から機能ハードウェア４０にクロック信号を分配するクロックツリー２４を含む。クロックツリー２４は、導電性トレース３２、および増幅器、バッファ、ラッチ、および／またはインバーターなどの能動部品３６も含む。ハードウェア４０は、必要に応じて、ＩＣ２０の領域上に分布される、任意の適切な数およびタイプの機能ユニットを含むことができる。よって、クロックツリー回路２４は、ＩＣ領域の大部分、またはＩＣ全体にまで跨ることができる。
【００１９】
クロックツリー回路の最初、クロック源は、ルートとも呼ばれる。ルートから機能ハードウェア４６に向けて、クロックツリー回路２４は、複数のブランチに分岐する。機能ハードウェア４０を駆動するブランチの先端は、リーフと呼ばれる。
【００２０】
図１の実施例は、明確にするために、単一のクロック信号および単一のクロックツリー回路に言及している。実際の集積回路は、しばしば複数のクロック信号を分配する複数のクロックツリー回路を含んでいる。本発明の技術は、このようなＩＣにも同様に用いられることができる。
【００２１】
クロックツリー回路故障保護
いくつかの実施形態では、ＩＣ２０は、クロックツリー回路２４の故障、例えば悪意のフォールト攻撃によって引き起こされた故障を検出する保護回路を更に含む。このような攻撃は、例えば、１つ以上の節点でクロックツリー回路を切断し、クロックツリー回路上の１つの、または複数の節点で電圧グリッチを注入し、クロックツリー回路上の１つの、または複数の節点で固定電圧を与えるか、または節点を接地するか、或いは、他の故障を招くどの操作も含むことができる。
【００２２】
本実施例では、ＩＣ２０の保護回路は、複数のカスケード（縦属）接続されたフリップフロップ（ＦＦ）段５２を含むシフトレジスタ４４、および検出器４８を含む。複数のサンプリングライン５６は、クロックツリー回路２４全体の複数の各々のサンプリング点からクロック信号の複数のインスタンスを抽出する。クロック信号の複数のインスタンスの各々は、シフトレジスタ４４の対応するＦＦに送られ、各々のＦＦ段５２のクロック入力を駆動する。ＦＦ段の数、およびクロック信号のインスタンスの数は、Ｎで示される。
【００２３】
言い換えれば、各ＦＦ段５２は、クロックツリー回路２４上の各々のサンプリング点から抽出された、クロック信号の各々のインスタンスによってクロックされる。クロック信号のインスタンスは、クロックツリー回路のルート、リーフ、または任意の中間ブランチでサンプリングされることができる。サンプリング点の数および位置は、例えばランダムに、或いはＩＣの特定のハードウェアユニットまたは機能を保護するために、必要に応じて選ぶことができる。
【００２４】
シフトレジスタ４４の第１のＦＦ段（図１の最も左の段）は、第１のフリップフロップのネゲートされた()出力が第１のフリップフロップの入力端子（Ｄ）にフィードバックする。各ＦＦ段の出力（Ｑ）は、次の段の入力端子（Ｄ）に印加されて次の段のFＦを駆動し、最後のＦＦ段の出力は、カスケード（シフトレジスタ４４）の出力となる。
【００２５】
正常な定常状態において、カスケードの出力信号は、クロック信号のレートで“１”と“０”とが交互する。定常状態は、ＦＦ段の初期段が予測不可能であるため、リセットまたは初期化後、通常、Ｎ番目のクロックサイクルが得られ、Ｎ番目のサイクルは、交互の“１０１０１０１０１０．．．”パターンを出力に伝送するために必要である。代替の実施形態では、ＦＦ段５２の初期状態は、所望のパターンに既に対応している既知の値にシステムの初期化で設定されることができる。本実施例では、偶数段のＦＦ段は、論理“０”にリセットされ、奇数段のＦＦ段は、論理“１”にリセットされることができる。
【００２６】
例えば、攻撃の結果により、故障がクロックツリー回路上の、ある１つの、または複数の節点で起きた場合、クロック信号の１つ以上のインスタンスは、ある異常を示す。例えばクロック信号の１つ以上のインスタンスが切断され（クロックツリー回路が切断されたことを示す可能性がある）、クロック信号の１つ以上のインスタンスが同一の固定電圧または接地で固定される、または過渡的なグリッチがクロック信号の１つ以上のインスタンスに現れる可能性がある。また、任意の他の適応する異常な状態がクロック信号の１つ以上のインスタンスに現れる可能性もある。
【００２７】
クロック信号のインスタンスに現れた異常は、シフトレジスタ４４による保護回路で各ＦＦ段５２をクロッキングする際に異常を起こす。その結果、シフトレジスタ４４の出力は、所望の“１０１０１０１０．．．”パターンから偏移する。
【００２８】
いくつかの実施形態では、検出器４８は、シフトレジスタ４４の出力をモニタし、所望の“１０１０１０１０．．．”パターンからの偏移をチェックする。検出器４８は、シフトレジスタ４４の出力が所望のパターンから合理的に偏移している間、リセットまたは初期化後、Ｎ番目のサイクルの初期の間隔を無視するために、通常、ＩＣリセット信号も提供される。
【００２９】
所望のパターンからの偏移の検出に応じて、検出器４８は、通常、故障警報（ｆａｕｌｔ ａｌｅｒｔ）を触発する。図示しないＩＣ保護回路は、故障警報に応じて種々の動作、例えば、ＩＣの一部をシャットダウンさせる、ＩＣから特定のデータを消去する、外部の警報を発する、または任意の他の適切な動作を取ることができる。
【００３０】
ＩＣ２０、特に図１に示されたシフトレジスタ４４による保護回路の部分の配置は、概念の明確さのためのみに表された例示的な配置である。代替の実施形態では、他の適切なＩＣおよび／または保護回路の配置も用いることができる。例えば、保護回路は、クロック信号の複数のインスタンスによってクロックされた、任意の他の適切な回路を含むことができ、その出力がクロックツリー回路の故障の有無を示している。保護回路の特定の設計によって、所望のパターンは他の適切なフォーマットを有することができる。例えば、前記パターンは、疑似ランダムであるが予測可能なパターンを含むことができる。
【００３１】
図２は、本発明の実施形態に係る、クロックツリー回路の故障保護の方法を概略的に示したフローチャートである。この方法は、まず、クロックサンプリングステップ６０において、クロックツリー回路２４上の複数のサンプリング点から複数のクロック信号のインスタンスを抽出する。クロッキングステップ６４では、抽出されたクロック信号のインスタンスは、シフトレジスタ４４の各々のＦＦ段５２のクロック入力を駆動する。
【００３２】
チェッキングステップ６８では、検出器４８は、シフトレジスタ４４の出力が所望の“１０１０１０１０．．．”パターンから偏移したかどうかをチェックする。偏移しない場合、本方法は、上述のステップ６０に戻る。警報検出ステップ７２では、偏移が現れた場合、検出器４８は、故障警報を発する。
【００３３】
本発明は、実施例の方法及び望ましい実施の形態によって記述されているが、本発明は開示された実施形態に限定されるものではない。逆に、当業者には自明の種々の変更及び同様の配置をカバーするものである。よって、添付の請求の範囲は、最も広義な解釈が与えられ、全てのこのような変更及び同様の配置を含むべきである。
【符号の説明】
【００３４】
２０  集積回路
２４  クロックツリー回路
２８  クロック源
３２  導電性トレース
３６  能動部品
４０  ハードウェア
４４  シフトレジスタ
４８  検出器
５２  フリップフロップ（ＦＦ）段
５６  サンプリングライン
【図１】
0006055857.tif 000002
【図２】
0006055857.tif 000003