(57)【特許請求の範囲】
【請求項１】
クロック信号に従って動作する機能回路から前記クロック信号を取り込んで、その異常高速状態を検知する高速クロック検知回路であって、
前記異常高速状態に対応するクロック周期以上の遅延時間が設定された遅延回路と、
前記クロック信号に従ってディレイフリップフロップ動作し、自身の出力信号が反転帰還入力される第１フリップフロップ回路と、
前記クロック信号に従ってディレイフリップフロップ動作し、自身の出力信号が前記遅延回路を介して反転帰還入力される第２フリップフロップ回路と、
前記第１フリップフロップ回路の出力信号と前記第２フリップフロップ回路の出力信号との差分を検知し、前記差分の発生に応じて前記異常高速状態を表す高速クロック検知信号を前記機能回路に供給する検出結果出力回路と、
を含むことを特徴とする高速クロック検知回路。
【請求項２】
前記検出結果出力回路は、前記差分の発生をカウントし、そのカウント値が所定閾値に達した場合に前記高速クロック検知信号を出力することを特徴とする請求項１記載の高速クロック検知回路。
【請求項３】
前記検出結果出力回路は、前記所定閾値が設定されるカウント閾値設定レジスタを含み、前記カウント閾値設定レジスタの内容を前記機能回路から変更自在とする手段をさらに含むことを特徴とする請求項２記載の高速クロック検知回路。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、クロック周波数に従って動作するＬＳＩ等の回路装置に備えられ、クロック周波数が高速化する異常を検知する高速クロック検知回路に関する。
【背景技術】
【０００２】
金融システムに使用される決済端末等の装置には高いセキュリティが要求される。かかる装置に使用されるＬＳＩは企業内部や外部からの攻撃によって、不正にデータを変えられたりデータを盗まれたりするハッキングの危険に晒されている。ＬＳＩに対する攻撃には様々の方法があるが、１つの方法としては、ＬＳＩの外部クロックを意図的に速くして当該ＬＳＩに備えられるＣＰＵを誤動作させる攻撃がある。そこで、このような攻撃に対してＬＳＩが誤動作しないように、規定周波数以外のクロック周波数を検知するクロック検知回路が求められる。
【０００３】
図１は、従来のクロック検知回路例の概要を示している。この例では、外部から攻撃され難くするためにリングオシレータによって基準クロックが生成されている。この基準クロックでカウント動作をするカウンタＡとＣＰＵクロックでカウント動作をするカウンタＢでそれぞれカウントアップが行われ、カウンタのオーバーフロー信号やカウント値を用いて基準クロックとの比率が監視され、ＣＰＵクロックの周波数が高速クロックの高周波であるかどうかが検知される。
【０００４】
しかしながら、図１に示される例では、高速クロックを検知する際にカウンタがオーバーフローを起こすまでの一定間隔で監視及び検知を行っていたため、一時的な高速クロック、例えば数パルス〜数百パルス数の高速クロックによる攻撃を検知できなかった。
【０００５】
特許文献１は、クロック信号の周期が制限値を超えたことを検出して誤動作を防止することのできる半導体試験装置を開示している。そこで、かかるクロック検知回路をハッキング防止のためにＬＳＩに組み込むことにより、一時的な高速クロックによる攻撃を検知することが考えられる。
【特許文献１】特開平７−１５１８３９号公報
【発明の開示】
【発明が解決しようとする課題】
【０００６】
しかしながら、特許文献１に開示されている技術では、検知したいクロック信号の周期に制約が課せられるという問題がある。特許文献１に開示されている技術は、基準となる所定のパルス幅を有するとともにクロック信号のパルス幅だけ遅延した遅延信号の波形と、クロック信号の波形との論理積を直接とることにより検出信号を発生する構成であり、クロック信号のパルス幅を固定的なものとして扱っている。すなわち、クロック信号の周期が変動すると共にパルス幅が変動するような場合、例えばデューティ比が固定であってクロックの高速化につれてパルス幅が小さくなるような場合が想定されていない。例えば、パルス幅が１５ｎｓｅｃに設定されると１５ｎｓｅｃ以下のパルス周期は全て異常と検知されてしまうことになる。
【０００７】
本発明は以上の問題に鑑みて考案されたものであり、その目的は、任意の周期を閾値として高速クロック信号を検知することができる高速クロック検知回路を提供することである。
【課題を解決するための手段】
【０００８】
本発明による高速クロック検知回路は、クロック信号に従って動作する機能回路から該クロック信号を取り込んで、その異常高速状態を検知する高速クロック検知回路であって、該異常高速状態に対応する周期以上の遅延時間が設定された遅延回路と、該クロック信号に従ってディレイフリップフロップ動作し、自身の出力信号が反転帰還入力される第１フリップフロップ回路と、該クロック信号に従ってディレイフリップフロップ動作し、自身の出力信号が該遅延回路を介して反転帰還入力される第２フリップフロップ回路と、該第１フリップフロップ回路の出力信号と該第２フリップフロップ回路の出力信号との差分を検知し、該差分の発生に応じて該異常高速状態を表す高速クロック検知信号を該機能回路に供給する検出結果出力回路と、を含むことを特徴とする。
【発明の効果】
【０００９】
本発明による高速クロック検知回路によれば、パルス幅如何に関わらず、任意の周期を閾値として高速クロックを検知することができる。
【発明を実施するための最良の形態】
【００１０】
本発明の実施例について添付の図面を参照しつつ詳細に説明する。
＜第１の実施例＞
図２は、本発明の第１の実施例を示し、高速クロック検知回路の構成を示している。高速クロック検知回路１００は、大きく３つの回路部に分かれ、通常ループバック回路部２０と、遅延ループバック回路部３０と、検知結果出力回路部１０とから構成される。
【００１１】
通常ループバック回路部２０は、Ｄ（ディレイ）型のフリップフロップ回路２１と反転回路２２とを含み、フリップフロップ回路２１の出力信号（Ｆ／Ｆ−１値）を反転回路２２により反転し、得られる反転信号を単純にループバックさせて通常ループバック信号としてフリップフロップ回路２１へ帰還入力している。また、フリップフロップ回路２１のクロック端子には外部から入力されるＣＰＵクロック信号が供給される。
【００１２】
遅延ループバック回路部３０は、Ｄ型のフリップフロップ回路３１と反転回路３２と遅延回路３３とを含み、フリップフロップ回路３１の出力信号（Ｆ／Ｆ−２値）を反転回路３２により反転し、得られる反転信号を遅延回路３３により遅延させた上でループバックさせて遅延ループバック信号としてフリップフロップ回路３１へ帰還入力している。また、フリップフロップ回路３１のクロック端子には外部から入力されるＣＰＵクロック信号が供給される。
【００１３】
遅延回路３３はバッファ等のディレイ素子により実現される。遅延回路３３の遅延量ＴDはディレイ素子の構成如何により任意に設定可能であり、高速とみなされる異常動作周波数の閾値を与える。遅延量ＴDは、通常、ＣＰＵの最大動作周波数に相当する周期ＴCよりやや大きめの遅延量に設定される。例えば、ＣＰＵの最大動作周波数５０ＭＨｚとすると、これに相当する周期ＴCは２０ｎｓｅｃである。そこで、最大動作周波数に対するマージンを確保して異常動作周波数を４８ＭＨｚとすると、遅延回路３３の遅延量ＴDは２１ｎｓｅｃの遅延量に設定される。もちろん、異常動作周波数を最大動作周波数と同じか、もしくは最大動作周波数より少し速い周波数まで許容する場合も考えられることから、遅延量ＴDは、最大動作周波数の周期ＴCよりも低く設定しても、同じに設定しても、高く設定しても良い。さらには、異常動作周波数がＣＰＵの最大動作周波数とは直接関係のない任意の基準により決定されて遅延量ＴDが設定されてもよい。
【００１４】
検知結果出力回路部１０は、Ｄ型のフリップフロップ回路１１と、排他的論理和回路１２と、論理和回路１３とを含む。排他的論理和回路１２は、通常ループパック回路部２０からの反転信号と、遅延ループパック回路３０からの反転信号との排他的論理和（ＥＸ−ＯＲ値）を論理和回路１３の一方に入力する。論理和回路１３の出力信号はフリップフロップ回路１１に入力される。フリップフロップ回路１１の出力信号は高速クロック検知信号として出力されると共に論理和回路１３の他方に入力される。フリップフロップ回路１１のクロック端子には、外部から入力されるＣＰＵクロック信号が供給されてもよいし、制御回路から供給される別の制御クロック信号であってもよい。
【００１５】
図３は、本発明による高速クロック検知回路がコンピュータシステムに適用された場合の例を示している。ここで、コンピュータシステムは、所望の機能を奏する機能回路として、ＣＰＵ２００と、メモリ５００と、機能モジュールや入出力モジュール等の周辺回路６００と、制御回路３００とから構成され、これら各部がバス４００を介して相互に接続される。制御回路３００は、例えば内部のリングオシレータクロックなどによりＣＰＵクロック信号とは異なるクロックで動作し、外部入力クロックを基にしてＣＰＵクロック信号を生成し、ＣＰＵ２００に対して該ＣＰＵクロック信号を供給すると共に電源ＯＮ／ＯＦＦの制御を行う。高速クロック検知回路１００は、該ＣＰＵクロック信号を取り込むと共に、高速クロックの検知に応じて、高速クロック検知信号を制御回路３００に供給する。ＣＰＵクロック信号は、外部入力されるクロックを基にして生成されるために、外部の不正動作または異常動作により正常な周波数範囲から逸脱して異常な高周波になる可能性がある。
【００１６】
図４は、第１の実施例における高速クロック検知回路の動作タイミングを示している。本図を参照すると、ＣＰＵクロック信号と、通常ループバック信号と、通常ループバック回路におけるＦ／Ｆ−１値と、遅延ループバック信号と、遅延ループバック回路におけるＦ／Ｆ−２値と、排他的論理和回路におけるＥＸ−ＯＲ値と、高速クロック検知信号（Ｆ／Ｆ−３値）の各々が横軸を時間軸として示されている。この横軸において、ＣＰＵクロック信号の周期がＴCで示され、且つそのクロックタイミングがｔ１〜ｔｎ（ｎは正数）で示されている。
【００１７】
タイミングｔ１〜ｔ３の期間において、通常ループバック信号とＦ／Ｆ−１値とは、ＣＰＵクロック信号のクロックに応じて、互いに交互に反転するパルス波形を呈する。例えば、タイミングｔ２において、遅延ループバック信号の値は“０”から“１に変化するのに反して、Ｆ／Ｆ−１値は“１”から“０”に変化する。
【００１８】
一方、遅延ループバック信号は、通常ループバック信号に比べて、遅延回路による遅延時間ＴD分だけ遅れたパルス波形を呈する。しかし、遅延時間ＴDがＣＰＵクロック信号の周期ＴCがよりも短い限り、遅延ループバック信号の立ち下がりは、ＣＰＵクロック信号の次のクロックパルスの立ち上がりより前に発生する。例えば、タイミングｔ２において、遅延ループバック信号の値は既に“０”である。よって、タイミングｔ２におけるクロックパルスの立ち上がりに応じて、遅延ループバック回路におけるフリップフロップ回路の出力信号のＦ／Ｆ−２値は“１”から“０”に変化する。
【００１９】
この時点では、Ｆ／Ｆ−１値及びＦ／Ｆ−２値が共に“０”であり、それらの反転信号の値は共に“１”となり差分が無いことから、排他的論理和回路の出力信号のＥＸ−ＯＲ値は“０”となる。タイミングｔ３において、ＣＰＵクロック信号のクロックパルスに応じて、ＥＸ−ＯＲ値“０”が検知結果出力回路部におけるフリップフロップ回路により保持されて、高速クロック検知信号（Ｆ／Ｆ−３値）“０”が出力される。これはＣＰＵクロック信号が正常であることを表している。
【００２０】
タイミングｔ４の冒頭において外部からの攻撃が発生し、ＣＰＵクロック信号の周期ＴCが以前よりも短くなり、遅延時間ＴD未満になったとする。この場合、通常ループバック信号とＦ／Ｆ−１値とは、周期が短くなったＣＰＵクロック信号のクロックに応じて、以前と同様に互いに交互に反転するパルス波形を呈する。例えば、タイミングｔ５においてＦ／Ｆ−１値は“１”から“０”に変化する。
【００２１】
しかし、遅延ループバック信号について見ると、遅延時間ＴDがＣＰＵクロック信号の周期ＴCよりも長いことから、遅延ループバック信号の立ち下がりは、ＣＰＵクロック信号の次のクロックパルスの立ち上がりよりも後ろに遅れる。例えば、タイミングｔ５において、遅延ループバック信号の値は未だに“１”である。よって、タイミングｔ５におけるクロックパルスの立ち上がりに応じて、遅延ループバック回路におけるフリップフロップ回路の出力信号のＦ／Ｆ−２値は“１”のままである。
【００２２】
この時点で、Ｆ／Ｆ−１値が“０”であるのに反してＦ／Ｆ−２値は“１”であり、それらの反転信号の値は互いに異なり差分が発生したことから、排他的論理和回路の出力信号のＥＸ−ＯＲ値は“１”となる。タイミングｔ６において、ＣＰＵクロック信号のクロックパルスに応じて、ＥＸ−ＯＲ値“１”が検知結果出力回路部におけるフリップフロップ回路により保持されて、高速クロック検知信号（Ｆ／Ｆ−３値）“１”が出力される。これはＣＰＵクロック信号が異常であることを表している。
【００２３】
タイミングｔ１１以降において、外部からの攻撃が止み、ＣＰＵクロック信号の周期ＴCが旧に復したとしても、その後は高速クロック検知信号（Ｆ／Ｆ−３値）は“１”を出力する。異常を表す高速クロック検知信号に応じて、制御回路がＣＰＵのクロックや電源を停止する等の処置を行うことができる。
【００２４】
以上の第１の実施例において、高速クロック検知回路１００は、高速クロックが入力された場合、クロックをカウントすることなく即座に高速クロックが入力されたことを検知することができる。そのため、少パルスの高速クロックによる攻撃に対しても、これを検知することができる。また、リングオシレータやカウンタ回路を必要とせずに３つのフリップフロップ回路と数個の論理ゲートのみで構成しているため、ＬＳＩのチップ面積を大きくすることもなく且つＬＳＩのチップコストを下げることができる。
【００２５】
高速クロックであると判定する閾値は、遅延回路における遅延量によって設定することができる。該遅延量は高速クロック周波数に対応する周期を与えればよく、当該高速クロックのパルス幅を特に顧慮する必要がない。また、該遅延量によって精確に正常と異常との境が判定されるために、検知誤差のためのマージンを過大に考慮する必要がない。
＜第２の実施例＞
図５は、本発明の第２の実施例を示し、高速クロック検知回路の構成を示している。高速クロック検知回路１００は、通常ループバック回路部２０と、遅延ループバック回路部３０と、検知結果出力回路部１０とから構成される。第２の実施例における通常ループバック回路部２０及び遅延ループバック回路部３０は、第１の実施例におけると同一の構成を備える。
【００２６】
第２の実施例では、検知結果出力回路部１０の構成が第１の実施例の場合とは異なる。検知結果出力回路部１０は、排他的論理和回路１２と、複数のフリップフロップ回路により実現され得るカウンタ１４とを含む。排他的論理和回路１２は、通常ループパック回路部２０からの反転信号と、遅延ループパック回路３０からの反転信号との排他的論理和（ＥＸ−ＯＲ値）をカウンタ１４に入力する。カウンタ１４は、ＣＰＵクロック信号に同期して排他的論理和（ＥＸ−ＯＲ値）が“１”となる状態をカウントし、そのカウント値がカウント閾値を超えた時に初めて高速クロック検知信号を出力する。該カウント閾値は予め適切な値に調整される。これによりノイズ等による高速クロック誤検知が回避される。
【００２７】
図６は、第２の実施例における高速クロック検知回路の動作タイミングを示している。前提として上記したカウント閾値を３とする。タイミングｔ１〜ｔ５に至る動作は第１の実施例と同様である。すなわち、タイミングｔ５以前においては、排他的論理和回路のＥＸ−ＯＲ値が“０”を維持していることから、カウンタ値は“０”のままである。
【００２８】
タイミングｔ５において、高速クロックを検知したことから排他的論理和回路の出力信号のＥＸ−ＯＲ値は“１”となる。そして、タイミングｔ６において、ＣＰＵクロック信号のクロックパルスに応じて、カウンタがこのＥＸ−ＯＲ値“１”を取り込み、カウント値を１とする。次いで、タイミングｔ７において、カウンタは、引き続き維持されているＥＸ−ＯＲ値“１”を取り込み、カウント値を２とする。
【００２９】
タイミングｔ１０において、カウント値がカウント閾値“３”に達したことから、高速クロック検知信号が“１”となり、以後カウンタによって保持される。
【００３０】
以上の第２の実施例において、ノイズを原因とする高速クロック誤検出が回避されている。第１の実施例では、外部入力クロックにノイズ等により瞬間的に高速クロックが入力された状態になってしまうと誤検知してしまう可能性があった。しかし、第２の実施例では、検知結果出力回路部で一定回数カウントアップした場合にのみ高速クロック検知信号を出力するため、外部入力クロックに瞬間的にノイズが乗った場合等においても、誤りのない高速クロック検知ができる。
＜第３の実施例＞
図７は、本発明の第３実施例を示し、高速クロック検知回路の構成を示している。高速クロック検知回路１００は、通常ループバック回路部２０と、遅延ループバック回路部３０と、検知結果出力回路部１０とから構成されと共に、カウント閾値設定レジスタ４１及びバスインタフェース４２をさらに含む。第３の実施例における通常ループバック回路部２０及び遅延ループバック回路部３０は、第１及び第２の実施例におけると同一の構成を備える。
【００３１】
第３の実施例における検知結果出力回路部１０は、第２の実施例における構成に加えて、カウント閾値設定レジスタ４１を参照してカウント閾値を変更する機能を備える。カウント閾値設定レジスタ４１の内容は、バスインタフェース４２を介して制御回路（図２参照）におけるソフトウエアの実行より設定される。カウンタ１４は、カウント閾値設定レジスタ４１に設定されたカウント閾値に従って、第２の実施例の場合と同様にして高速クロック検知信号を出力する。
【００３２】
以上の第３の実施例において、カウント閾値がソフトウエアから変更可能にされている。第２の実施例ではノイズ等によって誤検知しないようにカウンタを設けていたが、ノイズの影響度合いとセキュリティ確保を両立するのに最適なカウント閾値に調整することは容易ではない。しかし、第３の実施例においては、カウント閾値がソフトウエアから変更可能にされたことで、最適なカウント閾値の調整を柔軟に行うことが可能である。
【産業上の利用可能性】
【００３３】
本発明による高速クロック検知回路は、決済端末の如くセキュリティが要求される装置に使用されるＬＳＩのみならず、外部からのハッキング行為が想定される多様なＬＳＩに搭載することができる。
【図面の簡単な説明】
【００３４】
【図１】従来の高速クロック検知回路の概要を示す概要図である。
【図２】本発明の第１の実施例を示し、高速クロック検知回路の構成を示すブロック図である。
【図３】本発明による高速クロック検知回路がコンピュータシステムに適用された場合の例を示すブロック図である。
【図４】第１の実施例における高速クロック検知回路の動作タイミングを示すタイムチャートである。
【図５】本発明の第２の実施例を示し、高速クロック検知回路の構成を示すブロック図である。
【図６】第２の実施例における高速クロック検知回路の動作タイミングを示すタイムチャートである。
【図７】本発明の第３の実施例を示し、高速クロック検知回路の構成を示すブロック図である。
【符号の説明】
【００３５】
１０  検知結果出力回路部
１１、２１、３１  フリップフロップ回路
１２  排他的論理和回路
１３  論理和回路
２０  通常ループバック回路部
２２、３２  反転回路
３０  遅延ループバック回路部
３３  遅延回路
４１  カウント閾値設定レジスタ
４２  バスインタフェース
１００  高速クロック検知回路
２００  ＣＰＵ
３００  制御回路
４００  バス
５００  メモリ
６００  周辺回路
【図１】
0004388571.tif 000002
【図２】
0004388571.tif 000003
【図３】
0004388571.tif 000004
【図４】
0004388571.tif 000005
【図５】
0004388571.tif 000006
【図６】
0004388571.tif 000007
【図７】
0004388571.tif 000008