【解決手段】クロック判定装置は信号線とクロック判定部とを備える。信号線には、クロック信号が入力される。クロック信号の所定サイクル数分の周期によって構成される期間を単位期間TPと呼ぶ。クロック判定部は、クロック信号が、時間の経過とともに略不規則に変化する周期を有するランダムクロック信号CLaであるのか、略一定周期を有するレギュラークロック信号CLbであるのかの判定処理を、複数の単位期間TPにおけるクロック信号の波形同士の比較に基づいて行う。
前記第1基準値よりも大きな第2基準値よりも長い前記クロック信号の周期の、所定期間における数たる周期数が、回数基準値よりも多いか否かを判定する長周期判定部を更に備え、
前記クロック判定部は、
前記類似度が前記類似度基準値より低くても、前記周期数が前記回数基準値よりも多いと判定されたときには、前記クロック信号はレギュラークロック信号であると判定する、請求項2から請求項5のいずれか一つに記載のクロック判定装置。
前記第1基準値よりも小さな第2基準値よりも短い前記クロック信号の周期の、所定期間における数たる周期数が回数基準値よりも多いか否かを判定する短周期判定部を更に備え、
前記クロック判定部は、
前記類似度が前記類似度基準値より低くても、前記周期数が前記回数基準値よりも多いと判定されたときには、前記クロック信号はレギュラークロック信号であると判定する、請求項5に記載のクロック判定装置。
前記クロック判定部は、前記クロック信号に基づいて動作する処理装置が通常処理よりも秘匿性の高い秘密処理を行っているときのみ、前記判定処理を行う、請求項1から請求項11のいずれか一つに記載のクロック判定装置。
信号線に入力されるクロック信号の所定サイクル数分の周期によって構成される期間を単位期間と呼ぶと、前記クロック信号が、時間の経過とともに略不規則に変化する周期を有するランダムクロック信号であるのか、略一定周期を有するレギュラークロック信号であるのかの判定処理を、複数の単位期間における前記クロック信号の波形同士の比較に基づいて行う、クロック判定方法。
【発明を実施するための形態】
【0037】
第1の実施の形態.
図1は、情報処理装置10の構成の一例を概略的に示す図である。情報処理装置10は信号線L1を介してクロック生成装置20に接続されている。
【0038】
<クロック生成装置>
クロック生成装置20はクロック信号CL1を生成し、このクロック信号CL1を信号線L1に出力する。例えば、クロック生成装置20は水晶発振器、LC発振器、RC発振器、リング発振器、セラミック発振器またはMEMS(Micro Electro Mechanical Systems)発振器などの発振器を発振源として有している。例えば発振源としてMEMS発振器を採用するときには、その発信器からの出力信号の特性を良好にでき、また発振器のサイズを低減できる。
【0039】
クロック生成装置20は当該発振器によって出力される周期的な出力信号に基づいてクロック信号CL1を生成する。クロック生成装置20はクロック信号CL1としてランダムクロック信号CLaおよびレギュラークロック信号CLbを選択的に出力してもよい。ランダムクロック信号CLaとはその周期が時間の経過とともに略不規則に変動するクロック信号であり、レギュラークロック信号CLbとはその周期が略一定のクロック信号である。
【0040】
例えばクロック生成装置20は、上記発振器の出力信号を適宜に分周および/または逓倍して、レギュラークロック信号CLbを生成するPLL(Phase Locked Loop)回路を有している。
【0041】
また、例えばクロック生成装置20は特許文献1と同様にクロック変換機構を有している。このクロック変換機構は例えば乱数生成回路を有しており、この乱数生成回路には、上記発振器の出力信号が入力される。乱数生成回路は当該出力信号に基づいて乱数列を生成し、この乱数列をランダムクロック信号CLaとして出力する。
【0042】
さらにクロック生成装置20は、ランダムクロック信号CLaおよびレギュラークロック信号CLbを選択する選択部(例えばスイッチ)を有している。当該選択部には、PLL回路からレギュラークロック信号CLbが入力されるとともに、クロック変換機構からランダムクロック信号CLaが入力される。選択部は情報処理装置10からの要求に基づいてランダムクロック信号CLaおよびレギュラークロック信号CLbのいずれか一方を選択し、選択したクロック信号をクロック信号CL1として信号線L1に出力する。
【0043】
図2は、ランダムクロック信号CLaおよびレギュラークロック信号CLbの一例を概略的に示す図である。ランダムクロック信号CLaの周期は略不規則に変動している。このランダムクロック信号CLaの周期がとり得る許容範囲は予め設定される。例えばその許容範囲の下限Tminおよび上限Tmaxはそれぞれ10[ns]および60[ns]に設定される。ランダムクロック信号CLaの周期はこの許容範囲内で略不規則に変動する。
【0044】
図2の例では、ランダムクロック信号CLaのデューティも時間の経過とともに略不規則に変動している。このデューティの許容範囲も予め設定される。ただしここでは、その許容範囲の上限および下限が直接に設定されているのではなく、他のパラメータで間接的に設定される。より具体的には、ランダムクロック信号CLaがH(ハイ)をとる期間(パルス幅)の最小値THmin、および、ランダムクロック信号CLaがL(ロー)をとる期間(パルス間の隙間の幅)の最小値TLminが設定されることで、間接的にデューティの許容範囲が設定される。ここでは、これらの最小値THmin,TLminはいずれも例えば5[ns]に設定される。
【0045】
レギュラークロック信号CLbの周期およびデューティは
図2に例示するように時間の経過によらず略一定である。レギュラークロック信号CLbの周期およびデューティはそれぞれの上記許容範囲を満足するように設定される。
【0046】
<情報処理装置>
情報処理装置10は、クロック生成装置20から入力されたクロック信号CL1に基づいて動作する。
図1を参照して、情報処理装置10はクロック判定装置1と機能制御装置2と処理装置3とを備える。これらの装置は例えば樹脂等のパッケージ内に収納されてもよい。情報処理装置10は複数のダイで構成されてもよいし、一つのダイで構成されてもよい。ダイはウェハチップとも呼ばれる。
【0047】
<処理装置>
処理装置3は、信号線L1を介して入力されるクロック信号CL1に基づいて動作する。例えばこのクロック信号CL1はクロック判定装置1および機能制御装置2をこの順で介して処理装置3に入力される。
【0048】
処理装置3は例えばロジックIC(Integrated Circuit)である。この処理装置3は秘匿性が高い秘密情報を用いた秘密処理を行うことができる。秘密処理としては、暗号化処理および復号化処理を例示でき、秘密情報としては暗号キーおよび復号キーを例示できる。より具体的には、処理装置3は不図示の外部から第1暗号文を受け取り、この第1暗号文に対して所定のキー(復号キー)で復号化処理を行うことにより、第1平文を生成する。また処理装置3は、第2平文に対して所定のキー(暗号キー)で暗号化処理を行うことにより、第2暗号文を生成し、この第2暗号文を外部へと出力する。この暗号化処理および復号化処理で用いるアルゴリズムは特に限定される必要は無いものの、例えばAES(Advanced Encryption Standard)を採用できる。
【0049】
その他、秘密処理として認証処理も例示できる。より具体的には、処理装置3は外部から認証情報(例えばユーザ名、パスワードおよび生体情報などの情報)を受け取る。処理装置3はこの認証情報が、予め設定された登録情報と一致(あるいは類似)しているか否かを判定し、その判定結果に基づいて認証情報の正当性を判定する。このような認証処理においては、登録情報が秘密情報に相当する。
【0050】
また処理装置3は、秘密処理とは異なる通常処理を行うこともできる。通常処理は、秘密情報よりも秘匿性の低い情報を用いた処理である。通常処理は特に制限される必要は無いものの、例えば画像処理などの処理である。
【0051】
処理装置3は処理内容(通常処理か秘密処理か)に応じたクロック信号CL1をクロック生成装置20に要求する。より具体的な動作の一例として、処理装置3は通常処理を開始するときに、レギュラークロック信号CLbを要求する要求信号RD1をクロック生成装置20に出力する。クロック生成装置20はこの要求信号RD1を受け取ったときに、レギュラークロック信号CLbをクロック信号CL1として信号線L1に出力する。これにより、処理装置3は略規則的なタイミングで通常処理の各手順を行うことができる。レギュラークロック信号CLbの周期を短く設定すれば、高い処理速度で通常処理を実行できる。
【0052】
また処理装置3は秘密処理を開始するときには、クロック生成装置20にランダムクロック信号CLaを要求する要求信号RD2を出力する。クロック生成装置20はこの要求信号RD2を受け取ったときに、ランダムクロック信号CLaをクロック信号CL1として信号線L1に出力する。これにより、処理装置3は略不規則なタイミングで秘密処理の各手順を行うことができる。したがって、たとえ第三者が不正な攻撃(例えば電力解析攻撃または電磁波解析攻撃)を情報処理装置10に対して行っても、その各手順のタイミングを特定しにくいので秘密情報を取得しにくい。
【0053】
しかしながら、第三者がこのランダムクロック信号CLaを無効にすべく、別途に不正なクロック生成装置を用意することが考えられる。
図3は、情報処理装置10の構成の一例を概略的に示す図である。
図3の例では、信号線L1はクロック生成装置20と情報処理装置10との間において断線しており、信号線L1a,L1bが形成されている。信号線L1aは、断線された信号線L1のうちクロック生成装置20に接続された部分であり、信号線L1bは、断線された信号線L1のうち情報処理装置10に接続された部分である。信号線L1a,L1bは互いに離間しており、電気的に接続されていない。
【0054】
信号線L1bには、第三者によって不正クロック生成装置20’が接続されている。不正クロック生成装置20’は周期が略一定のクロック信号CL2を信号線L1bに出力する。つまり、情報処理装置10には正規のクロック信号CL1ではなく、不正なクロック信号CL2が入力される。よってこのとき、処理装置3は不正なクロック信号CL2に基づいて動作する。周期が略一定のクロック信号CL2に基づいて処理装置3が秘密処理を実行すれば、第三者による不正な攻撃によって秘密情報が漏洩しやすくなる。
【0055】
そこで
図1および
図3に例示するように、情報処理装置10には、クロック判定装置1が設けられている。
【0056】
なお以下では、信号線L1を介して情報処理装置10に入力されるクロック信号をクロック信号CL3とも呼ぶ。情報処理装置10に正規のクロック生成装置20が接続されるときには、クロック信号CL3は正規のクロック信号CL1であり、情報処理装置10に不正クロック生成装置20’が接続されるときには、クロック信号CL3は不正なクロック信号CL2である。
【0057】
<クロック判定装置>
クロック判定装置1には、信号線L1を介してクロック信号CL3が入力される。クロック判定装置1はこのクロック信号CL3が想定されたクロック信号であるのか、想定外のクロック信号であるのかを判定する。以下では、想定されたクロック信号を想定クロック信号とも呼び、想定外のクロック信号を想定外クロック信号とも呼ぶ。この例では、クロック生成装置20が出力するクロック信号CL1が想定クロック信号であり、不正クロック生成装置20’が出力するクロック信号CL2が想定外クロック信号である。
【0058】
以下では一例として、処理装置3が秘密処理を行っているときのクロック判定装置1の動作を説明する。処理装置3が秘密処理を行っているときには、想定クロック信号CL1はランダムクロック信号CLaである。この点を
図2において示すべく、ランダムクロック信号CLaの直下の括弧内において「クロック信号CL1」と記している。一方で、想定外クロック信号CL2は略一定周期のレギュラークロック信号CLbである。この点を
図2において示すべく、レギュラークロック信号CLbの直下の括弧内において「クロック信号CL2」と記している。ただしこの表記は、不正クロック生成装置20’からのクロック信号CL2の周期が、正規のクロック生成装置20からのレギュラークロック信号CLbの周期と一致することを示している訳ではない。第三者による不正なクロック信号CL2の周期は任意の値をとり得る。
【0059】
クロック判定装置1はこのクロック信号CL3が想定クロック信号CL1であるのか、想定外クロック信号CL2であるのかを判定する。言い換えれば、クロック判定装置1はクロック信号CL3がランダムクロック信号CLaであるのか、レギュラークロック信号CLbであるのかを判定する。
【0060】
図2では、想定クロック信号CL1および想定外クロック信号CL2のそれぞれにおいて単位期間TPが示されている。単位期間TPはクロック信号CL3の複数のサイクル数分の周期によって構成される期間であり、
図2の例では、単位期間TPは8サイクル分の周期によって構成される。また
図2では、連続する2つの単位期間TPとして、単位期間TP1,TP2が示されている。単位期間TP2は単位期間TP1の直後の単位期間TPである。単位期間TP1は8つの周期T11〜T18によって構成され、単位期間TP2は8つの周期T21〜T28によって構成されている。周期T11〜T18,T21〜T28の符号の末尾の数字は各単位期間TP内における周期の順番(位置)を示している。例えば、周期T13,T23はそれぞれ単位期間TP1,TP2内において3番目の周期である。
【0061】
図2の例では、想定クロック信号CL1の周期およびデューティは時間の経過とともに略不規則で変動するので、たとえ単位期間TP1,TP2のサイクル数が互いに等しくても、単位期間TP1,TP2における想定クロック信号CL1の波形は互いに相違する。つまり、クロック信号CL3が正規の想定クロック信号CL1であるときには、単位期間TP1におけるクロック信号CL3の波形は単位期間TP2におけるクロック信号CL3の波形と相違する。
【0062】
一方で、想定外クロック信号CL2の周期およびデューティは時間の経過に依らず略一定である。よって、単位期間TP1,TP2における想定外クロック信号CL2の波形は理想的には互いに一致する。つまり、クロック信号CL3が不正な想定外クロック信号CL2であるときには、単位期間TP1におけるクロック信号CL3の波形は理想的には単位期間TP2におけるクロック信号CL3の波形と一致する。
【0063】
そこで、クロック判定装置1は複数の単位期間TPにおけるクロック信号CL3の波形同士の比較に基づいて、クロック信号CL3が想定クロック信号CL1であるのか想定外クロック信号CL2であるのか(つまりランダムクロック信号CLaであるのかレギュラークロック信号CLbであるのか)の判定処理を行う。例えばクロック判定装置1は、複数の単位期間TPにおけるクロック信号CL3の波形が互いに不一致(または非類似)となるときに、クロック信号CL3を想定クロック信号CL1と判定し、複数の単位期間TPにおけるクロック信号CL3の波形が互いに一致(または類似)となるときに、クロック信号CL3を想定外クロック信号CL2と判定する。
【0064】
より具体的には、クロック判定装置1は特徴抽出部11と判定部12とを備えている。特徴抽出部11には、クロック信号CL3が入力される。特徴抽出部11は、所定のサイクル数を単位とした単位期間TP内のクロック信号CL3の波形の特徴をクロック信号CL3から抽出する。換言すれば、特徴抽出部11は各単位期間TPにおけるクロック信号CL3の波形に応じた情報を上記特徴として抽出し、その特徴を判定部12に出力する。この特徴の具体例については後に詳述する。
【0065】
判定部12は互いに異なる単位期間TPにおける特徴同士を比較して、クロック信号CL3が想定クロック信号CL1であるのか、想定外クロック信号CL2であるのかを判定する。より具体的には、判定部12は当該特徴が互いに不一致または非類似であると判定したときに、クロック信号CL3が想定クロック信号CL1(つまりランダムクロック信号CLa)であると判定する。一方で、判定部12は当該特徴が互いに一致あるいは類似すると判定したときに、クロック信号CL3が想定外クロック信号CL2(つまりレギュラークロック信号CLb)であると判定する。判定部12はその判定結果J2を機能制御装置2に出力する。この判定結果J2は電気信号のH/Lで示される。例えばクロック信号CL3が想定クロック信号CL1であるときに判定結果J2はLとなり、クロック信号CL3が想定外クロック信号CL2であるときに判定結果J2はHとなる。判定部12による判定処理の具体例についても後に詳述する。
【0066】
なお判定部12による判定結果J2がクロック信号CL3の判定結果を示すことから、判定部12は、クロック信号CL3が想定クロック信号CL1(ランダムクロック信号CLa)であるのか、想定外クロック信号CL2(レギュラークロック信号CLb)であるのかを判別するクロック判定部である、といえる。
【0067】
<機能制御装置>
機能制御装置2はクロック判定装置1の判定結果J2に応じて処理装置3の動作の許可/制限を切り替えることができる。具体的には、機能制御装置2はクロック信号CL3が想定クロック信号CL1であるときには、処理装置3の動作を許可する。これにより、処理装置3は正規の想定クロック信号CL1に基づいて秘密処理を行うことができる。想定クロック信号CL1の周期は略不規則に変化するので、たとえ第三者が処理装置3に対して攻撃を行っても秘密情報は漏洩しにくい。
【0068】
一方で、クロック信号CL3が想定外クロック信号CL2であるときには、機能制御装置2は処理装置3の動作を制限する。例えばクロック信号CL3がクロック判定装置1および機能制御装置2を介して処理装置3に入力される場合には、機能制御装置2はクロック信号CL3の処理装置3への出力を停止する。これにより、処理装置3の動作を停止することができる。あるいは、処理装置3がリセット端子を有している場合には、機能制御装置2は処理装置3へとリセット信号を出力してもよい。処理装置3はリセット信号が入力されたときに動作を初期化する。これにより、処理装置3の動作を実質的に停止させることができる。あるいは、処理装置3への電源の供給/遮断を切り替えるスイッチが設けられる場合には、機能制御装置2は当該スイッチを制御して、処理装置3への給電を遮断してもよい。
【0069】
以上のように、クロック判定装置1が不正な想定外クロック信号CL2を検出したときには、機能制御装置2が当該検出に応じて処理装置3の動作を制限する。したがって、第三者が信号線L1を断線して不正クロック生成装置20’を情報処理装置10に接続したとしても、そのとき、処理装置3の動作が制限される。よって、不正な第三者による秘密情報の取得を困難にすることができる。より一般的に言えば、不正な想定外クロック信号CL2に基づく処理装置3の動作を制限するので、不正な第三者が得られる利益を抑制できる。
【0070】
<ソフトウェアおよびハードウェア>
クロック判定装置1および機能制御装置2の機能は例えばソフトウェアで実現されてもよい。
図4は、当該機能をソフトウェアで実現するときの構成の一例を概略的に示している。
図4に例示するように、当該構成は例えば演算処理部101と記憶媒体102とを有している。演算処理部101は例えばCPU(Central Processing Unit)またはDSP(Digital Signal Processor)などの処理部である。記憶媒体102は、演算処理部101の作業領域を提供するRAM(Random Access Memory)102aおよびプログラムおよびデータなどが記憶されるROM(Read Only Memory)102bを有している。演算処理部101が記憶媒体102に記憶されたプログラムを読み出して実行することで、各種の機能が実現される。なお記憶媒体102は、RAM102aおよびROM102b以外の、コンピュータが読み取り可能な非一時的な記録媒体を備えてもよい。記憶媒体102は、例えば、小型のハードディスクドライブ及びSSD(Solid State Drive)などを備えてもよい。
【0071】
クロック判定装置1および機能制御装置2の各々の一部または全部は必ずしもソフトウェアで実現される必要はなく、ハードウェア回路で実現されてもよい。つまり、クロック判定装置1および機能制御装置2の各々は、ハードウェア、ソフトウェア、又はこれらの混在したもの等によって形成される回路群(=circuitry)により実現される。ハードウェア回路を用いるときには、例えば、論理回路等を含む専用の回路等の動作により機能を実現することができる。ハードウェア回路で構成された機能部は高い応答性を実現できる。
【0072】
<特徴の具体例>
特徴抽出部11は、各単位期間TPにおけるクロック信号CL3の波形に応じた情報(特徴)として、例えばクロック信号CL3の周期に関する周期情報をクロック信号CL3から抽出する。この周期情報は、単位期間TPにおけるクロック信号CL3の周期性を示すパラメータであればよいものの、ここではその一例として、単位期間TPにおける各周期の長さについてのパターン情報(後述)を採用する。つまり、特徴抽出部11は後述のパターン情報をクロック信号CL3に基づいて生成する。
【0073】
図5は、パターン情報の一例を表形式で示す図である。パターン情報とは、単位期間TPにおけるクロック信号CL3の各周期の長さを示す情報である。より具体的にはパターン情報は、単位期間TPにおける各周期が基準値Tref1よりも長いか短いかの情報を含む長短情報を、その周期の順番に沿って並べた情報である。
図5のパターン情報において、「0(零)」は周期が基準値Tref1よりも短いことを示し、「1」は周期が基準値Tref1よりも長いことを示している。この基準値Tref1は想定クロック信号CL1の周期の許容範囲(例えば10〜60[ns])内の値であって、例えば想定クロック信号CL1の周期の中央値(例えば30[ns])に設定される。ここでは、単位期間TPがクロック信号CL3の8サイクル分の期間で構成されているので、
図5の例では、パターン情報は8桁の数字列で構成されている。パターン情報の各桁の数字は、対応する周期の長短情報を示している。
【0074】
図5では、想定クロック信号CL1および想定外クロック信号CL2のそれぞれについて、単位期間TP1,TP2におけるパターン情報が示されている。
図5の例では、単位期間TP2における想定クロック信号CL1のパターン情報は(01001100)である。このパターン情報は周期T21,T23,T24,T27,T28が基準値Tref1よりも短く、周期T22,T25,T26が基準値Tref1よりも長いことを意味している。また
図5の例では、単位期間TP1における想定クロック信号CL1のパターン情報は(00101010)である。このパターン情報は周期T11,T12,T14,T16,T18が基準値Tref1よりも短く、周期T13,T15,T17が基準値Tref1よりも長いことを意味している。
【0075】
図5の例では、単位期間TP2における想定外クロック信号CL2のパターン情報は(11111111)であり、これは周期T21〜T28のいずれもが基準値Tref1よりも長いことを意味している。単位期間TP1における想定外クロック信号CL2のパターン情報は、単位期間TP2における想定外クロック信号CL2のパターン情報と同じである。なぜなら、想定外クロック信号CL2の周期は略一定であるので、通常は、そのパターン情報は単位期間TPによらず、全て同じ数値で構成されるからである。
【0076】
したがって、情報処理装置10に入力されるクロック信号CL3の単位期間TP1,TP2におけるパターン情報が互いに一致していれば、クロック信号CL3は想定外クロック信号CL2であるといえる。一方で、これらのパターン情報が互いに異なっていれば、クロック信号CL3は想定クロック信号CL1であるといえる。
【0077】
ノイズに鑑みて、パターン情報が完全に一致していなくても、ほぼ一致しているときには、クロック信号CL3を想定外クロック信号CL2であると判定してもよい。つまり、単位期間TP1,TP2におけるパターン情報同士の類似度を算出し、その類似度が類似度基準値よりも低いときに、クロック信号CL3が想定クロック信号CL1であると判定し、類似度が類似度基準値よりも高いときには、クロック信号CL3が想定外クロック信号CL2であると判定してもよい。
【0078】
この類似度の一例を説明するにあたって、周期組を導入する。ここでいう周期組とは、複数の単位期間TPにおいて同じ順番(位置)の周期によって構成される組である。例えば第1番目の周期組は周期T11,T21によって構成され、第2番目の周期組は周期T12,T22によって構成される。類似度としては、例えば、周期の長短情報が互いに一致する周期組の数(以下、一致数と呼ぶ)を採用できる。
図5の例では、同じ周期組に属する周期の長短情報が互いに一致していることを「○」で示し、長短情報が互いに一致していないことを「×」で示している。
【0079】
このような類似度は次のようにして算出される。クロック判定装置1は、複数の単位期間においてそれぞれ第n(xは1〜Nまでの自然数)番目の周期の長短情報が互いに一致する否かを、第1番目から第N番目までの周期について判断し、長短情報が互いに一致すると判断された周期の数を類似度として算出する。
【0080】
図5の想定クロック信号CL1については、1番目の周期組の周期T11,T21の長短情報が互いに一致し、4番目の周期組の周期T14,T24の長短情報が互いに一致し、5番目の周期組の周期T15,T25の長短情報が互いに一致し、8番目の周期組の周期T18,T28が互いに一致している。よって単位期間TP1,TP2におけるクロック信号CL1のパターン情報同士の類似度(ここでは一致数)は4である。
【0081】
一方で、
図5の想定外クロック信号CL2については、長短情報が全ての周期組において互いに一致する。よって単位期間TP1,TP2における想定外クロック信号CL2のパターン情報同士の類似度(ここでは一致数)は8である。
【0082】
そこで判定部12は、特徴抽出部11から入力されたパターン情報に基づいてクロック信号CL3の上記類似度を求め、その類似度が類似度基準値(例えば6)よりも高いか否かを判定する。判定部12はその類似度が類似度基準値よりも低いときに、クロック信号CL3は想定クロック信号CL1であると判定し、類似度が類似度基準値よりも高いときに、クロック信号CL3は想定外クロック信号CL2であると判定する。
【0083】
<クロック判定装置のより具体的な構成>
図6は、クロック判定装置1のより具体的な内部構成の一例を示す図であり、
図7は、クロック判定装置1の動作の一例を示すフローチャートである。まずステップS1にて、クロック判定装置1はクロック信号CL3の周期が基準値Tref1よりも長いか否かを示す長短情報L1[t]を生成する。
図6を参照して、特徴抽出部11は周期判定部13とパターン記憶部14とを有しており、周期判定部13が長短情報L1[t]を生成し、この長短情報L1[t]をパターン記憶部14に出力する。
図6の例では、周期判定部13は複数の遅延素子131と周期判定回路132と同期回路133とを有しており、これらが協働して長短情報L1[t]を生成する。
【0084】
複数の遅延素子131には、クロック信号CL3が入力される。複数の遅延素子131は互いに異なる遅延時間でクロック信号CL3を遅延させて、遅延後の信号を周期判定回路132に出力する。例えば遅延素子131はその遅延動作にクロック信号を必要としない遅延素子である。
【0085】
図6の例では、複数の遅延素子131は並んで配置されている。以下では、説明の便宜上、配置順序に応じた順番を導入する。第1番目の遅延素子131は当該配置順序において先頭に配置された遅延素子131を意味する。
【0086】
第x番目の遅延素子131の遅延時間は例えば所定時間Δt1とxとの積(Δt1・x)に設定される。つまり、隣り合う遅延素子131の二者の遅延時間の差が所定時間Δt1に設定される。この所定時間Δt1は想定クロック信号CL1のパルス幅の最小値THminおよびパルス間の幅の最小値TLminのうち小さい方の値以下に設定される。上述の例では最小値THmin,TLminはいずれも5[ns]に設定されているので、所定時間Δt1はこの5[ns]以下に設定される。より具体的な一例として所定時間Δt1は例えば3[ns]に設定される。遅延素子131の個数N1は、所定時間Δt1との積(Δt1・N1)が基準値Tref1(例えば30[ns])以上となるように設定される。ここでは、例えば積(Δt1・N1)が基準値Tref1と等しい30[ns]となるように、個数N1が10個に設定される。以下では、第x番目の遅延素子131の出力信号を信号D1[x]と呼ぶ。
【0087】
図8は、クロック信号CL3と、10個の遅延素子131からそれぞれ出力される信号D1[1]〜D1[10]との一例を示す図である。
図8の例では、クロック信号CL3が立ち上がる時点t10において、信号D1[10]〜D1[1]はそれぞれH,H,H,H,H,L,L,L,L,Lとなっている。
【0088】
さて、クロック信号CL3が立ち上がる時点t10を終期とした周期Tが基準値Tref1よりも長いといえるには、次の条件を満たす必要がある。即ち、その条件とは、時点t10から基準値Tref1よりも前の時点t1から、時点t10までの期間において、クロック信号CL3のH/Lの遷移回数が1以下となることである。
【0089】
図8の例では、信号D1[10]〜D1[6]はHであり、信号D1[5]〜D1[1]がLである。つまり、信号D1[6],D1[5]においてH/Lの変化が1回だけ生じている。これは、クロック信号CL3が時点t1から時点t10までの期間においてクロック信号CL3が1回遷移していることを示す。
【0090】
ところで、所定時間Δt1は上述のように最小値THmin,TLminよりも短く設定される。逆に言えば、パルス幅の最小値THminおよびパルス間の幅の最小値TLminは所定時間Δt1よりも長く設定される。よって、信号D1[10]〜D1[1]の信号パターンには、時点t1から時点t10までの期間におけるクロック信号CL3の遷移回数が適切に現れる。
【0091】
また、時点t1から時点t10までの期間においてクロック信号CL3が常にLであるときには、信号D1[10]〜D1[1]の全てがLとなる。つまり、当該期間におけるクロック信号CL3の遷移回数は零である。このときの周期Tも基準値Tref1より長い。
【0092】
以上のように、信号D1[10]〜D1[1]の信号パターンにおいてH/Lの遷移回数が1回以下であれば、その周期Tは基準値Tref1よりも長く、当該遷移回数が2回以上であれば、その周期Tは基準値Tref1よりも短いことになる。
図9は、周期Tが基準値Tref1よりも長いときの信号D1[10]〜D1[1]の信号パターンを示している。これらの信号パターンにおいて、H/Lの遷移回数は1回以下となっている。以下では、これらの信号パターンを基準パターンと呼ぶ。これら複数の基準パターンは、周期Tが基準値Tref1よりも長いときの信号パターンを網羅したパターン群である。具体的には、基準パターンは、個数N1(ここでは10個)と同じ桁数で構成されており、第1基準パターンから第9基準パターンにおいて、H/Lの遷移タイミングが一つずつずれている。第10基準パターンにおいては、全ての桁がLである。より一般的に説明すると、第m{mは1から(N1−1)までの自然数}基準パターンにおいて、第1桁から第m桁はLであり、第(m+1)桁から第(N1)桁はHである。また第(N1)基準パターンにおいて、全ての桁がLである。
【0093】
図6を参照して、周期判定回路132は信号D1[10]〜D1[1]の信号パターンが複数の基準パターンのいずれか一つに一致するか否かを判定し、その判定結果J1を同期回路133へと出力する。判定結果J1は電気信号のH/Lで示される。ここでは、信号パターンが基準パターンのいずれか一つに一致するときに、判定結果J1はHとなり、信号パターンが基準パターンの全てと相違するときにLとなるものとする。なお周期判定回路132は例えば論理回路によって構成され得る。
【0094】
同期回路133には、クロック信号CL3も入力される。同期回路133は例えばクロック信号CL3の立ち上りエッジを検出し、そのエッジが検出されたときの判定結果J1に応じて、そのエッジを終期とする周期Tの長短情報L1[t]をパターン記憶部14に出力する。具体的には、判定結果J1がHであるときには、長短情報L1[t]として「1」を出力し、判定結果J2がLであるときには長短情報L1[t]として「零(零)」を出力する。なおここでは主として、判定結果としてH/Lを用い、長短情報として「1」および「0(零)」を用いているものの、これらは二値情報という点で共通しており、「H」と「1」との間に特段の差異はない。「L」と「0(零)」も同様である。
【0095】
また当該エッジの検出時点において判定結果J1が変動し得ることに鑑みて、同期回路133は所定の安定期間に亘って判定結果J1が安定しているときに、その判定結果J1を長短情報L1[t]として出力するとよい。
【0096】
パターン記憶部14は長短情報L1[t]をそのまま判定部12に出力しつつ、この長短情報L1[t]を単位期間TPの分だけ記憶して、その単位期間TPの経過後に、これを長短情報L1[t−8]として判定部12に出力する。パターン記憶部14は例えばシフトレジスタ141を有している。シフトレジスタ141にはクロック信号CL3も入力される。シフトレジスタ141は、例えば単位期間TPのサイクル数(ここでは8)と同じ段数のフリップフロップ回路によって構成され得る。このようなシフトレジスタ141はクロック信号CL3の入力(例えば立ち上がりエッジ)の度に後段のフリップフロップ回路へとデータをシフトさせ、これにより、単位期間TPだけ前の長短情報L1[t−8]を出力する。長短情報L1[t],L1[t−8]はそれぞれ単位期間TP1,TP2において互いに同じ順番(位置)の周期の長短情報に相当する。
【0097】
図7を参照して、ステップS1の次のステップS2にて、判定部12は長短情報L1[t],L1[t−8]が互いに一致するか否かを判定する。
図6の例では、判定部12はEX−NOR(排他的否定論理和)部121を有しており、ステップS2の判定がこのEX−NOR部121によって実質的に行われる。EX−NOR部121はEX−NOR回路を有しており、長短情報L1[t],L1[t−8]が互いに一致するときに「1」を出力し、長短情報L1[t],L1[t−8]が互いに一致しないときに「0(零)」を出力する。以下では、EX−NOR部121が出力する情報を一致/不一致情報M1とも呼ぶ。
【0098】
図7を参照して、ステップS2において長短情報L1[t−8],L1[t]が互いに一致しないときには、判定部12は後述のステップS4を実行する。ステップS2において長短情報L1[t−8],L1[t]が互いに一致するときには、ステップS3にて、判定部12は値CT2をインクリメントし、後述のステップS4を実行する。この処理により、判定部12は長短情報L1[t−8],L1[t]が互いに一致する周期組の数(一致数)を値CT2として計数することができる。よって、単位期間TPごとの値CT2はその単位期間TPおよび直前の単位期間TPにおけるパターン情報同士の類似度を示す。
【0099】
図6の例では、判定部12はカウンタ123を有しており、このカウンタ123には、一致/不一致情報M1およびクロック信号CL3が入力される。カウンタ123はクロック信号CL3の周期(例えば立ち上がりエッジ)ごとに一致/不一致情報M1の値を積算して、その結果をカウント値CT2として出力する。つまりカウンタ123は長短情報L1[t−8],L1[t]が互いに一致しているときに、カウント値CT2をインクリメントする。判定部12は単位期間TPが経過するたびにカウンタ123のカウント値CT2を零に初期化する。
【0100】
図7を参照して、ステップS4にて、判定部12は単位期間TPが経過したか否かを判定し、単位期間TPが経過していないときには、周期判定部13が再びステップS1を実行し、単位期間TPが経過しているときには、ステップS5にて、判定部12はカウント値CT2(類似度)が類似度基準値(例えば6)よりも高いか否かを判定する。
図6の例では、判定部12はカウンタ122と比較回路124とを有しており、ステップS4,S5の判定が実質的にカウンタ122および比較回路124によって実行される。
【0101】
カウンタ122はクロック信号CL3のサイクル数をカウントし、そのカウント値CT1を比較回路124に出力する。例えばカウンタ122はクロック信号CL3の立ち上がりごとにカウント値CT1をインクリメントする。このカウンタ122のカウント量が単位期間TPのサイクル数と一致したときに、単位期間TPが経過したことになる。つまりカウンタ122は単位期間TPの経過を検出するタイマとして機能する。判定部12は単位期間TPが経過するたびにカウンタ122のカウント値CT1を初期化する。
【0102】
比較回路124には、カウンタ122からのカウント値CT1と、カウンタ123からのカウント値CT2とが入力される。比較回路124はカウンタ122のカウント量が単位期間TPのサイクル数と一致するときに、カウント値CT2(類似度)と類似度基準値との大小関係を比較し、その比較結果を判定結果J2として機能制御装置2に出力する。判定結果J2は電気信号のH/Lで示される。例えば類似度が類似度基準値よりも高いときに判定結果J2はHとなり、類似度が類似度基準値以下であるときに判定結果J2はLとなる。つまり、Hをとる判定結果J2はクロック信号CL3が不正な想定外クロック信号CL2であることを示し、Lをとる判定結果J2はクロック信号CL3が正規の想定クロック信号CL1であることを示す。
【0103】
ステップS5においてカウント値CT2(類似度)が類似度基準値以下であると判定したときには、ステップS7にて、判定部12は、単位期間TPを計時するためのタイマ(つまりカウント値CT1)、および、類似度(つまりカウント値CT2)を初期化して、周期判定部13が再びステップS1を実行する。ステップS5においてカウント値CT2(類似度)が類似度基準値よりも高いときには、ステップS6にて、機能制御装置2は処理装置3の動作を制限する。
【0104】
以上のように、クロック判定装置1はクロック信号CL3が想定外クロック信号CL2であるときに、それを検出することができる。しかも、クロック判定装置1によれば、複数の周期で構成された単位期間TP同士のクロック信号CL3の波形に応じた情報を比較して、クロック信号CL3が想定クロック信号CL1であるのか、想定外クロック信号CL2であるのかを判定している。
【0105】
ここで、クロック判定装置1とは異なって、クロック信号CL3における2つの周期を互いに比較する場合について考慮する。例えばクロック信号CL3のある周期の長さがその直前の周期と異なっているときに、クロック信号CL3を想定クロック信号CL1であると判定することが考えられる。しかしながら、たとえ想定外クロック信号CL2(レギュラークロック信号CLb)であっても、想定外クロック信号CL2の周期はノイズ等によって変動し得るので、2つの周期の長さに基づいた判定は精度が低い。
【0106】
これに対して、クロック判定装置1によれば、複数の周期で構成された単位期間TPにおけるクロック信号CL3の波形に応じた情報を互いに比較している。よって、クロック信号CL3がランダムクロック信号CLa(ここでは想定クロック信号CL1)であるのか、レギュラークロック信号CLb(ここでは想定外クロック信号CL2)であるのかをより高い精度で判定できる。
【0107】
また上述の例では、クロック信号CL3が想定外クロック信号CL2であると判定されたときには、処理装置3の動作が制限される。よって、第三者が想定クロック信号CL1の代わりに想定外クロック信号CL2を情報処理装置10に入力したとしても、第三者が得られる利益を低減することができる。
【0108】
また上述の例では、複数の遅延素子131を利用して各周期の長短判定を行っている。この遅延素子131の遅延時間の精度は所定時間Δt1よりも低ければよく、さほど高い必要はない。よって、低コストで遅延素子131を構成できる。また、遅延素子131はその遅延動作のためにクロック信号CL3とは別のクロック信号を必要としない。したがって、製造コストおよび回路規模を低減できる。
【0109】
なおクロック信号CL3が想定クロック信号CL1(ランダムクロック信号CLa)であっても、その類似度が偶然高くなることがある。このとき、判定部12はクロック信号CL3を想定外クロック信号CL2であると誤判定する可能性がある。この可能性を低くするには、例えば、単位期間TPを構成する周期の数(サイクル数)を多く設定したり、あるいは、類似度基準値を高く設定したりすることが有効である。より具体的には、想定クロック信号CL1の類似度が類似度基準値よりも高くなる確率は、(単位期間TPのサイクル数,類似度基準値)が(8,6)である場合、1/64であり、(10,8)である場合、1/256であり、(16,14)である場合、1/16384であり、(20,18)である場合、1/400万である。
【0110】
<クロック信号CL3のエッジ>
上述の例では、同期回路133はクロック信号CL3の立ち上がりエッジを検出しているので、基準パターン(
図9)として立ち上がりエッジに応じた信号パターンが採用された。しかるに、同期回路133は必ずしも立ち上がりエッジを検出する必要はなく、立ち下りエッジを検出してもよい。この場合、立ち下りエッジに応じた基準パターンが採用されればよい。具体的には、
図9の基準パターンにおいてH/Lを読み替えたものが、立ち下りエッジに応じた基準パターンとなる。より一般的に説明すると、第m基準パターンにおいて、第1桁から第m桁がHであり、第(m+1)桁から第(N1)桁がLである。また第(N1)基準パターンにおいて、全ての桁がHとなる。またこの場合、カウンタ122,123はクロック信号CL3の立ち下りに応じてカウント動作を行う。
【0111】
<想定クロック信号/想定外クロック信号>
上述の例では、処理装置3が秘密処理を実行しているときには、クロック生成装置20はランダムクロック信号CLaを出力する。よってこのとき、ランダムクロック信号CLaが想定クロック信号CL1である。また上述の例では、不正クロック生成装置20’がレギュラークロック信号CLbを出力するので、レギュラークロック信号CLbが想定外クロック信号CL2である。
【0112】
一方で、処理装置3が通常処理を実行しているときには、クロック生成装置20はレギュラークロック信号CLbを出力する。よってこのとき、レギュラークロック信号CLbが想定クロック信号CL1である。ここで、不正な第三者が不正クロック生成装置20’を利用して、ランダムクロック信号CLaを情報処理装置10に入力することを考える。この場合、ランダムクロック信号CLaが想定外クロック信号CL2となる。このような不正クロック生成装置20’からの想定外クロック信号CL2に基づいた動作は好ましくないので、クロック判定装置1はランダムクロック信号CLaを想定外クロック信号CL2として検出することが望ましい。
【0113】
つまり、想定クロック信号CL1および想定外クロック信号CL2の定義は処理装置3の処理内容に応じて異なる。そこで、クロック判定装置1は処理装置3の処理内容の情報を受け取り、当該情報に応じて、想定クロック信号CL1および想定外クロック信号CL2の定義を切り替えてもよい。例えば処理装置3からクロック生成装置20へ出力される要求信号RD1,RD2がクロック判定装置1の判定部12にも入力されてもよい(
図1も参照)。判定部12は処理装置3が秘密処理を行っているときには、判定結果J2をそのまま機能制御装置2に出力し、処理装置3が通常処理を行っているときには、判定結果J2のH/Lを反転させて機能制御装置2に出力する。
【0114】
これによれば、クロック判定装置1は処理装置3が秘密処理を行っているときには、レギュラークロック信号CLbを想定外クロック信号CL2として検出でき、処理装置3が通常処理を行っているときには、ランダムクロック信号CLaを想定外クロック信号CL2として検出できる。
【0115】
<判定処理の実施期間>
上記では通常処理におけるクロック信号CL3の判定処理について述べたが、通常処理において処理装置3の動作を制限する必要性が低い場合もある。つまり、秘密情報が漏洩する可能性を低減するためには、処理装置3が秘密処理を実行するときに、クロック信号の判定を行えばよく、通常処理において必ずしもクロック信号の判定を行う必要はない。よってこの場合には、クロック判定装置1は処理装置3が秘密処理を実行するときにクロック信号の判定を行い、処理装置3が通常処理を実行するときにクロック信号の判定を行わなくてもよい。言い換えれば、クロック判定装置1は処理装置3がランダムクロック信号CLaを要求しているときのみ、クロック信号の判定処理を行ってもよい。これによれば、必要性の高いときのみ判定を実行でき、不要な判定を回避することができる。
【0116】
また、秘密処理の実行中にクロック信号CL3が想定外クロック信号CL2であると判定されたときには、処理装置3は秘密処理を停止し、通常処理を行ってもよい。これによっても、秘密情報の漏洩を防止できるからである。
【0117】
なお以下では、代表的に処理装置3が秘密処理を行う場合について説明する。処理装置3が通常処理を行うときには、以下の説明において、想定クロック信号CL1および想定外クロック信号CL2をそれぞれレギュラークロック信号CLbおよびランダムクロック信号CLaと読み替えればよい。
【0118】
<複数の単位期間TP>
上述の例では、2つの単位期間TP1,TP2におけるクロック信号CL3の波形を互いに比較した。しかるに、3つ以上の単位期間TPのクロック信号CL3の波形を互いに比較してもよい。具体的には、クロック判定装置1は3つ以上の単位期間TPにおけるクロック信号CL3の波形同士の類似度を算出し、その類似度が類似度基準値よりも高いときに、クロック信号CL3が想定外クロック信号CL2であると判定し、その類似度が類似度基準値よりも低いときに、クロック信号CL3が想定クロック信号CL1であると判定してもよい。
【0119】
ここでは一例として、3つの単位期間TPにおいて同じ順番(位置)の周期の長短情報が一致する周期組の数(一致数)を、類似度として採用する。
図10は、連続する3つの単位期間TP1〜TP3におけるパターン情報の一例を示している。
【0120】
まず想定外クロック信号CL2について説明する。想定外クロック信号CL2の周期は略一定であるので、単位期間TP1〜TP3の各周期の長短情報は理想的には全て同じである。
図10の例では、長短情報は全て「1」である。よって単位期間TP1〜TP3内の全ての周期組の周期の長短情報は互いに一致している。したがって、3つの単位期間TP1〜TP3における類似度は2つの単位期間TP1,TP2における類似度(
図5)と同じく、8である。
【0121】
次に想定クロック信号CL1について説明する。想定クロック信号CL1の周期は略不規則に変動するので、単位期間TP1〜TP3の各周期は略不規則に「1」および「0(零)」のいずれか一方をとる。
図10の例では、単位期間TP1〜TP3内の第1番目の周期組の周期の長短情報が相互に一致しているものの、他の周期組においては、3つの周期の長短情報のいずれか1つは他の2つと相違している。よって、このとき類似度は1であり、
図5で示した類似度(=4)よりも低くなっている。これは、3つの単位期間TPにおいて同じ順番(位置)の周期の長短情報が互いに一致する確率が、2つの単位期間TPにおいて同じ順番(位置)の長短情報が互いに一致する確率よりも低くなるからである。
【0122】
以上のように、想定外クロック信号CL2については、3つの単位期間TPにおける類似度は2つの単位期間TPにおける類似度と同程度に高くなる一方で、想定クロック信号CL1については、3つの単位期間TPにおける類似度は2つの単位期間TPにおける類似度よりも低くなる確率が高い。つまり、想定外クロック信号CL2についての類似度を類似度基準値よりも高く維持しつつも、想定クロック信号CL1についての類似度が類似度基準値よりも高くなる確率を低減することができる。よって、クロック信号CL3を誤判定する可能性を低減することができる。換言すれば、クロック信号CL3の判定処理の精度を向上できる。
【0123】
しかも単位期間TPを構成する周期の数を増大する必要がないので、より速やかにクロック信号CL3の判定処理を実行できる。つまり、クロック信号CL3の判定は単位期間TPごとに行われるので、単位期間TPを構成する周期の数を増大すれば、クロック信号CL3の判定に要する時間が増大するのに対して、3以上の単位期間TPにおけるクロック信号CL3の波形を互いに比較すれば、単位期間TPを構成する周期の数を増大させる必要がないので、より速やかにクロック信号CL3の判定処理を実行できるのである。
【0124】
図11は、上記判定を行うクロック判定装置1Aの構成の一例を概略的に示している。クロック判定装置1Aはパターン記憶部14の構成およびEX−NOR部121の構成という点で、クロック判定装置1と相違する。
【0125】
パターン記憶部14はシフトレジスタ141のみならず、シフトレジスタ142も有している。シフトレジスタ142には、シフトレジスタ141から長短情報L1[t−8]が入力されるとともに、クロック信号CL3が入力される。シフトレジスタ142はシフトレジスタ141と同様の構成を有しており、長短情報L1[t−8]を単位期間TPだけ記憶し、単位期間TPの経過後に、これを長短情報L1[t−16]として判定部12(より具体的にはEX−NOR部121)に出力する。長短情報L1[t],L1[t−8],L1[t−16]は、3つの連続する単位期間TP1〜TP3において同じ順番(位置)の周期の長短情報に相当する。
【0126】
EX−NOR部121は長短情報L1[t],L1[t−8],L1[t−16]が互いに一致するときに、一致/不一致情報M1として「1」を出力し、長短情報L1[t],L1[t−8],L1[t−16]の1つが他の2つと相違するときに、一致/不一致情報M1として「0(零)」を出力する。つまり一致/不一致情報M1は単位期間TP3内の第n番目の周期の長短情報と、その直前の単位期間TP2内の第n番目の周期の長短情報と、その直前の単位期間TP1内の第n番目の周期の長短情報とが互いに一致するときに「1」となり、これ以外のときに「0(零)」となる。EX−NOR部121は例えば論理回路によって構成される。
【0127】
カウンタ123はクロック信号CL3に同期してカウント動作を行い、一致/不一致情報M1が「1」をとるときにカウント値CT2をインクリメントする。このカウント値CT2は3つの単位期間TPにおいて同じ順番(位置)の周期の長短情報が互いに一致する周期組の数(一致数)を示す。
【0128】
比較回路124は単位期間TPごとにカウント値CT2と類似度基準値とを比較し、その比較結果を判定結果J2として出力する。単位期間TPが経過したときのカウント値CT2は類似度を示すので、比較回路124は類似度と類似度基準値とを比較することになる。
【0129】
<パターン情報>
上述の例では、長短情報は周期が長いか短いかの二値情報である。これによれば、長短情報を簡易に生成することができる。しかるに、この長短情報は多値情報であっても構わない。例えば長短情報は周期が長いか普通か短いかを示す三値情報であってもよい。これによれば、想定クロック信号CL1において、複数の単位期間TPにおける同じ順番(位置)の周期の長短情報が互いに一致する確率が低減するので、クロック信号CL3を想定外クロック信号CL2と誤判定する可能性を低減できる。
【0130】
第2の実施の形態.
図12は、クロック判定装置1Bの構成の一例を概略的に示す図である。クロック判定装置1Bは逸脱判定部15およびクロック判定部18の有無という点で第1の実施の形態と相違する。
【0131】
特徴抽出部11および判定部12の動作は上述した通りである。ただしここでは、判定部12が出力する判定結果を判定結果J21と呼ぶ。
【0132】
逸脱判定部15は、クロック信号CL3の各周期が許容範囲内であるか否かを判定し、その判定結果をクロック判定部18に出力する。具体的には、逸脱判定部15は上限逸脱判定部16と下限逸脱判定部17とを備えている。
【0133】
上限逸脱判定部16は、クロック信号CL3の各周期が想定クロック信号CL1の許容範囲の上限Tmax(例えば60[ns])よりも長いか否かを判定し、その判定結果J22をクロック判定部18に出力する。判定結果J22は電気信号のH/Lで示される。例えば周期が上限Tmaxよりも長いときに判定結果J22はHとなり、周期が上限Tmaxよりも短いときに判定結果J22はLとなる。
【0134】
図13は、上限逸脱判定部16の具体的な内部構成の一例を概略的に示す図である。
図13の例では、上限逸脱判定部16は複数の遅延素子161と周期判定回路162と同期回路163とを有している。
【0135】
複数の遅延素子161には、クロック信号CL3が入力される。複数の遅延素子161は遅延素子131と同様に、互いに異なる遅延時間でクロック信号CL3を遅延させる。
図13の例では、複数の遅延素子161は並んで配置されている。以下では、説明の便宜上、配置順序に応じた順番を導入する。第1番目の遅延素子161は当該配置順序において先頭に配置された遅延素子161を意味する。
【0136】
第y番目の遅延素子161の遅延時間は例えば所定時間Δt2とyとの積(y・Δt1)に設定される。つまり、遅延素子161の相互間の遅延時間の差が所定時間Δt2に設定される。所定時間Δt2は所定時間Δt1と同様の条件で設定され、例えば3[ns]に設定される。遅延素子161の個数N2は、所定時間Δt2との積(Δt2・N2)が許容範囲の上限Tmax(例えば60[ns])以上となるように設定され、例えば20個に設定される。以下では、第y番目の遅延素子161の出力信号を信号D2[y]とも呼ぶ。なお、いくつかの遅延素子161の出力信号がいくつかの遅延素子131の出力信号と同一である場合には、これらが兼用されてもよい。例えば第1番目から第10番目までの遅延素子161の信号D2[1]〜D2[10]は、それぞれ第1番目から第10番目の遅延素子131の信号D1[1]〜D1[10]と同一であるので、これらが兼用されてもよい。これによれば、遅延素子の個数を低減できる。
【0137】
周期判定回路162には、20個の遅延素子161から信号D2[1]〜D2[20]が入力される。周期判定回路162には、周期が上限Tmaxよりも長くなるときの複数の基準パターンが予め格納されている。当該基準パターンは周期判定回路132の基準パターンと同様にして設定できるので、その具体例は省略する。周期判定回路162は信号D2[20]〜D2[1]の信号パターンが複数の基準パターンのいずれかと一致するか否かを判定し、その判定結果J12を同期回路163に出力する。判定結果J12は電気信号のH/Lで示される。例えば信号パターンが基準パターンのいずれかに一致したときに判定結果J12はHとなり、信号パターンが基準パターンのいずれにも一致しないときに判定結果J12はLとなる。
【0138】
同期回路163には、クロック信号CL3も入力される。同期回路163は同期回路133と同様に、例えばクロック信号CL3の立ち上がりエッジを検出し、その立ち上がりエッジの検出時点における周期判定回路162の判定結果J12を判定結果J22としてクロック判定部18に出力する。この判定結果J22は、検出した立ち上がりエッジを終期とする周期が上限Tmaxよりも長いときにHとなり、当該周期が上限Tmaxよりも短いときにLとなる。
【0139】
図12を参照して、下限逸脱判定部17は、クロック信号CL3の各周期が想定クロック信号CL1の許容範囲の下限Tmin(例えば10[nm])よりも短いか否かを判定し、その判定結果J23をクロック判定部18に出力する。判定結果J23は電気信号のH/Lで示される。例えば周期が下限Tminよりも短いときに判定結果J23はHとなり、周期が下限Tminよりも長いときに判定結果J23はLとなる。
【0140】
ただし、想定クロック信号CL1であっても、ノイズ等の影響によりその周期が瞬間的に下限Tminよりも短くなることはあり得る。つまり、クロック信号CL3の1つの周期のみが下限Tminを下回ったとしても、クロック信号CL3が想定外クロック信号CL2であると判定するのは早計である。そこで、下限逸脱判定部17は第1所定期間(例えば単位期間TP)において下限Tminよりも短い周期の数が所定の第1回数基準値よりも多いか否かを判定し、当該周期の数が第1回数基準値よりも多いときにクロック信号CL3の周期が下限Tminよりも短いと判定してもよい。第1回数基準値は例えば予め設定される。
【0141】
図14は、下限逸脱判定部17の具体的な内部構成の一例を概略的に示す図である。
図14の例では、下限逸脱判定部17は複数の遅延素子171と周期判定回路172と同期回路173とカウンタ174,175と比較回路176とを有している。
【0142】
複数の遅延素子171には、クロック信号CL3が入力される。複数の遅延素子171は遅延素子131,161と同様に、互いに異なる遅延時間でクロック信号CL3を遅延させる。
図14の例では、複数の遅延素子171は並んで配置されている。以下では説明の便宜上、配置順序に応じた順番を導入する。第1番目の遅延素子171は当該配置順序において先頭に配置された遅延素子171を意味する。
【0143】
第z番目の遅延素子171の遅延時間は所定時間Δt3とzとの積(z・Δt3)に設定される。言い換えれば、遅延素子171の相互間の遅延時間の差が所定時間Δt3に設定される。所定時間Δt3は所定時間Δt1,Δt2と同様の条件で設定されるものの、ここでは下限Tminより短い周期を検出することを想定しているので、所定時間Δt3は所定時間Δt1,Δt2よりも小さい値、例えば1[ns]に設定される。
【0144】
遅延素子171の個数N3は、所定時間Δt3との積(N3・Δt3)がクロック信号CL1の許容範囲の下限Tmin(例えば10[ns])以上となるように設定され、例えば10個に設定される。以下では、第z番目の遅延素子171の出力信号を信号D3[z]とも呼ぶ。なおいくつかの遅延素子171の出力信号がいくつかの遅延素子131(あるいは遅延素子161)の出力信号と同一である場合には、これらが兼用されてもよい。例えば第3番目、第6番目、第9番目の遅延素子171の信号D3[3],D3[6],D3[9]はそれぞれ第1番目から第3番目までの遅延素子131の信号D1[1]〜D1[3]と同一であるので、これらが兼用されてもよい。
【0145】
周期判定回路172には、10個の遅延素子171からそれぞれ信号D3[1]〜D3[10]が入力される。周期判定回路172には、周期が下限Tminよりも長くなるときの複数の基準パターンが予め格納されている。当該基準パターンは周期判定回路132の基準パターンと同様にして設定できるので、その具体例は省略する。周期判定回路172は信号D3[10]〜D3[1]の信号パターンが複数の基準パターンのいずれかと一致するか否かを判定し、その判定結果J13を同期回路173に出力する。判定結果J13は電気信号のH/Lで示される。例えば信号パターンが基準パターンのいずれかに一致したときには、周期は下限Tminよりも長いので、判定結果J13はLとなり、信号パターンが基準パターンのいずれにも一致しないときには、周期は下限Tminよりも短いので、判定結果J13はHとなる。
【0146】
同期回路173には、クロック信号CL3も入力される。同期回路173は同期回路133と同様に、例えばクロック信号CL3の立ち上がりエッジを検出し、その立ち上がりエッジの検出時点における周期判定回路172の判定結果J13をカウンタ175に出力する。
【0147】
カウンタ175には、クロック信号CL3も入力される。カウンタ175はカウンタ123と同様にクロック信号CL3と同期してカウント動作を行い、同期回路173からの判定結果J13がHとなる回数をカウントする。よって、カウンタ175のカウント値CT4は、下限Tminよりも短い周期の数を示している。カウンタ175はそのカウント値CT4を比較回路176に出力する。このカウント値CT4は第1所定期間が経過するたびに零に初期化される。
【0148】
カウンタ174には、クロック信号CL3が入力される。カウンタ174はカウンタ122と同様にクロック信号CL3のサイクル数をカウントし、そのカウント値CT3を比較回路176に出力する。このカウンタ174は第1所定期間の経過を検出するためのタイマとして機能する。ここでは、第1所定期間はクロック信号CL3の所定サイクル数で規定されている。第1所定期間は単位期間TPと同じであってもよく、異なっていてもよい。
【0149】
比較回路176はカウント値CT3に基づいて第1所定期間の経過を検出し、第1所定期間が経過したときのカウント値CT4と第1回数基準値とを比較する。そして比較回路176はその比較結果を判定結果J23としてクロック判定部18に出力する。第1所定期間が経過したときのカウント値CT4は第1所定期間内において下限Tminよりも短い周期の数を示している。判定結果J23は当該周期の数が第1回数基準値よりも多いときにHとなり、第1回数基準値よりも少ないときにLとなる。
【0150】
クロック判定部18は判定結果J21〜J23に基づいてクロック信号CL3が想定クロック信号CL1であるのか、想定外クロック信号CL2であるのかを判定する。具体的には、クロック判定部18は第1の実施の形態と同様に、複数の単位期間TPにおけるクロック信号CL3の波形が互いに一致(または類似)するときは、クロック信号CL3が想定外クロック信号CL2であると判定する。さらに、クロック判定部18はクロック信号CL3の周期が許容範囲外であるとき(つまり周期が上限Tmaxよりも長いとき、または周期が下限Tminよりも短いとき)にも、クロック信号CL3が想定外クロック信号CL2であると判定する。
【0151】
一方でクロック判定部18は、複数の単位期間TPにおけるクロック信号CL3の波形が互いに不一致(または非類似)であり、かつ、クロック信号CL3の周期が許容範囲内であるときに、クロック信号CL3が想定クロック信号CL1であると判定する。クロック判定部18はその判定結果J2を機能制御装置2に出力する。
【0152】
クロック判定部18は論理和回路群を有していてもよい。この論理和回路群には、判定結果J21〜J23が入力される。この論理和回路群は、判定結果J21〜J23の少なくともいずれか一つがHであるときに、Hとなる判定結果J2を出力し、判定結果J21〜J23の全てがLであるときに、Lとなる判定結果J2を出力する。
【0153】
以上のように第2の実施の形態によれば、複数の単位期間TPにおけるクロック信号CL3の波形が互いに一致(または類似)するときのみならず、クロック信号CL3の周期が許容範囲から逸脱しているときにも、クロック信号CL3が想定外クロック信号CL2であると判定される。よって、許容範囲外の周期を有するクロック信号CL3が入力されたときにも、処理装置3の動作を制限することができる。
【0154】
なおクロック信号CL3の周期が許容範囲から逸脱しているときには、処理装置3の処理内容によらず、クロック信号CL3が想定外クロック信号CL2であると判定できる。つまり処理装置3が秘密処理を行おうとも通常処理を行おうとも、クロック信号CL3の周期が許容範囲から逸脱しているときには、クロック信号CL3は想定外クロック信号CL2である。つまり、処理装置3が通常処理を行っているときには、判定部12が判定結果J2を反転させる一方で、逸脱判定部15は判定結果J22,J23を反転させない。
【0155】
第3の実施の形態.
不正な第三者によって採用される想定外クロック信号CL2の周期は未知であり、たまたま基準値Tref1と同程度の値を有している場合もあり得る。また、この想定外クロック信号CL2の周期は略一定であるものの実際にはわずかに変動している。よって、その変動によって想定外クロック信号CL2の各周期が基準値Tref1よりも長くなったり、短くなったりし得る。つまり、クロック信号CL3が想定外クロック信号CL2であっても、複数の単位期間TPの各周期の長短判定の結果がばらつき、結果として、複数の単位期間TPにおけるパターン情報が互いに非類似になり得る。このとき、クロック信号CL3は実際には想定外クロック信号CL2であるものの、想定クロック信号CL1であると誤判定される。
【0156】
そこで、第3の実施の形態では、クロック信号CL3が基準値Tref1と同程度の略一定周期を有する想定外クロック信号CL2であるときに、これを適切に検出することを企図する。
【0157】
図15は、クロック判定装置1Cの構成の一例を概略的に示す図である。クロック判定装置1Cはクロック判定部18および長周期判定部19の有無という点で第1の実施の形態と相違する。
【0158】
クロック判定装置1Cの各構成を説明する前に、まず、クロック信号の判定処理について概説する。クロック判定装置1Cは、複数の単位期間TPにおけるクロック信号CL3のパターン情報が互いに非類似であると判定したときに、直ちにクロック信号CL3が想定クロック信号CL1(ランダムクロック信号CLa)であると判定するのではなく、以下で説明する条件を更に満足するときに、クロック信号CL3が想定クロック信号CL1であると判定する。
【0159】
ここでは、想定外クロック信号CL2(レギュラークロック信号CLb)の周期の変動ばらつきが、想定クロック信号CL1の周期の変動ばらつきに比して小さいことに着目する。
図16は、ランダムクロック信号CLa(想定クロック信号CL1)およびレギュラークロック信号CLb(想定外クロック信号CL2)の一例を示す図である。
図16の例では、想定外クロック信号CL2の周期が基準値Tref1と同程度である。よって、想定外クロック信号CL2であるにもかかわらず、基準値Tref1を用いた周期の長短判定の結果はばらつき、複数の単位期間TPにおけるパターン情報は互いに非類似となる。
【0160】
しかるに、この想定外クロック信号CL2の周期は略一定であるので、基準値Tref1よりも大きくずれた値をとることはない。その一方で、想定クロック信号CL1の周期は許容範囲内で略不規則に変動しており、基準値Tref1よりも大きくずれた値をとることがある。例えば
図16では、周期T15の長さと基準値Tref1との差は比較的大きい。
【0161】
そこで第3の実施の形態では、基準値Tref1とは異なる基準値Tref2を導入する。基準値Tref1,Tref2の差は適宜に設定すればよいものの、通常想定される想定外クロック信号CL2の周期の変動ばらつきよりも大きく設定する。なお基準値Tref2は当然ながら想定クロック信号CL1の周期の許容範囲内の値に設定される。
【0162】
まず
図16に示すように基準値Tref2が基準値Tref1よりも大きいときについて説明する。基準値Tref2は例えば40[ns]に設定される。想定外クロック信号CL2の周期が基準値Tref1と同程度であるとき、その周期は
図16に示す通り、基準値Tref2よりも長くなることはない。一方で、想定クロック信号CL1の周期はその許容範囲で略不規則に変動するので、基準値Tref2よりも長くなることがある。例えば周期T15,T22などは基準値Tref2よりも長い。以下では、基準値Tref2よりも長い周期を長周期と呼ぶ。
【0163】
つまり、複数の単位期間TPにおけるパターン情報が互いに非類似であっても、長周期が存在していないときには、そのクロック信号CL3は想定外クロック信号CL2(レギュラークロック信号CLb)であると判定できる。なおノイズ等を鑑みて、第2所定期間における長周期の数(以下、長周期数とも呼ぶ)が第2回数基準値よりも多いときに、長周期が存在すると判定するとよい。第2所定期間および第2回数基準値は例えば予め設定される。第2所定期間は、その第2所定期間における想定クロック信号CL1の周期が基準値Tref2よりも長くなる確率が十分に高くなるように設定される。
【0164】
図17は、第3の実施の形態にかかる判定条件の一例を示す図である。
図17に示すように、クロック判定装置1Cはパターン情報が互いに非類似であり、かつ、第2所定期間において長周期が存在している(つまり第2所定期間において長周期数が第2回数基準値よりも多い)ときに、クロック信号CL3が想定クロック信号CL1であると判定する。一方で、クロック判定装置1Cはパターン情報が互いに非類似であっても、第2所定期間において長周期が存在していない(つまり第2所定期間における長周期数が第2回数基準値よりも少ないとき)ときには、クロック信号CL3が想定外クロック信号CL2であると判定する。
【0165】
またクロック判定装置1Cはパターン情報が互いに類似するときには、長周期数の多寡に関わらず、クロック信号CL3が想定外クロック信号CL2であると判定する。
【0166】
これによれば、たとえ基準値Tref1と同程度の略一定周期を有する想定外クロック信号CL2がクロック信号CL3として情報処理装置10に入力されたとしても、クロック判定装置1Cはそのクロック信号CL3が想定外クロック信号CL2であると適切に判定できる。以下、クロック判定装置1Cの内部構成の詳細な一例について説明する。
【0167】
図15の例では、クロック判定装置1Cはクロック判定部18と長周期判定部19とを有している。長周期判定部19は第2所定期間における長周期数が第2回数基準値よりも多いか否かをクロック信号CL3に基づいて判定し、その判定結果J24をクロック判定部18に出力する。判定結果J24は電気信号のH/Lで示される。例えば長周期数が第2回数基準値以上であるときに判定結果J24はLとなり、長周期数が第2回数基準値よりも少ないときに判定結果J24はHとなる。
【0168】
図15の例では、長周期判定部19は複数の遅延素子191と周期判定回路192と同期回路193とカウンタ194,195と比較回路196とを備えている。複数の遅延素子191には、クロック信号CL3が入力される。複数の遅延素子191は遅延素子131,161,171と同様に互いに異なる遅延時間でクロック信号CL3を遅延させる。
図15の例では、複数の遅延素子191は並んで配置されている。以下では、説明の便宜上、配置順序に応じた順番を導入する。第1番目の遅延素子191は当該配置順序において先頭に配置された遅延素子191を意味する。
【0169】
第w番目の遅延素子191の遅延時間は例えば所定時間Δt4とwとの積(w・Δt4)に設定される。つまり、遅延素子191の相互間の遅延時間の差が所定時間Δt4に設定される。所定時間Δt4は所定時間Δt1〜Δt3と同様の条件で設定され、例えば4[ns]に設定される。
【0170】
遅延素子191の個数N4は、所定時間Δt4との積(N4・Δt4)が基準値Tref2(例えば40[ns])以上となるように設定され、例えば10個に設定される。以下では、第w番目の遅延素子191の出力信号を信号D4[w]とも呼ぶ。なおいくつかの遅延素子191の出力信号がいくつかの遅延素子131(あるいは遅延素子161または遅延素子171)の出力信号と同一である場合には、これらが兼用されてもよい。
【0171】
周期判定回路192には、10個の遅延素子191から信号D4[1]〜D4[10]が入力される。周期判定回路192には、周期が基準値Tref2よりも長くなるときの複数の基準パターンが予め格納されている。当該基準パターンは周期判定回路132の基準パターンと同様にして設定できるので、その具体例は省略する。周期判定回路192は信号D4[10]〜D4[1]の信号パターンが複数の基準パターンのいずれかと一致するか否かを判定し、その判定結果J14を同期回路193に出力する。判定結果J14は電気信号のH/Lで示される。例えば信号パターンが基準パターンのいずれかに一致したときには、判定結果J14はHとなり、信号パターンが基準パターンのいずれにも一致しないときには、判定結果J14はLとなる。
【0172】
同期回路193には、クロック信号CL3も入力される。同期回路193は同期回路133と同様に、例えばクロック信号CL3の立ち上がりエッジを検出し、その立ち上がりエッジの検出時点における周期判定回路192の判定結果J14をカウンタ195に出力する。
【0173】
カウンタ195には、クロック信号CL3も入力される。カウンタ195はカウンタ123と同様にクロック信号CL3と同期してカウント動作を行い、判定結果J14がHとなる回数をカウントする。よって、カウンタ195のカウント値CT6は、基準値Tref2よりも長い長周期の数(長周期数)を示している。カウンタ195はそのカウント値CT6を比較回路196に出力する。カウント値CT6は第2所定期間ごとに零に初期化される。
【0174】
カウンタ194には、クロック信号CL3が入力される。カウンタ194はカウンタ122と同様にクロック信号CL3のサイクル数をカウントし、そのカウント値CT5を比較回路196に出力する。ここではカウンタ194は第2所定期間を計時するためのタイマとして機能する。第2所定期間はクロック信号CL3の所定サイクル数で規定される。カウンタ194は所定サイクル数(第2所定期間)ごとにカウント値CT5を零に初期化する。
【0175】
比較回路196はカウント値CT5に基づいて第2所定期間の経過を検出し、第2所定期間が経過したときのカウント値CT6(長周期数)と第2回数基準値とを比較する。そして比較回路196はその比較結果を判定結果J24としてクロック判定部18に出力する。判定結果J24はカウント値CT6が第2回数基準値以上であるときにLとなり、カウント値CT6が第2回数基準値よりも小さいときにHとなる。第2回数基準値は例えば1である。
【0176】
クロック判定部18は判定結果J21,J24に基づいてクロック信号CL3が想定クロック信号CL1であるのか、想定外クロック信号CL2であるのかを判定し、その判定結果J2を機能制御装置2に出力する。この判定条件は上述した通りである(
図17)。具体的には、クロック判定部18は判定結果J21,J24の両方がLであるときに、クロック信号CL3が想定クロック信号CL1であると判定し、判定結果J21,J24の少なくともいずれか一方がHであるときに、クロック信号CL3が想定外クロック信号CL2であると判定する。
【0177】
以上のように、クロック判定部18は単位期間TPにおけるパターン情報の類否判定(判定結果J21)のみならず、長周期の存否(判定結果J24)に基づいて、クロック信号CL3が想定クロック信号CL1であるのか、想定外クロック信号CL2であるのかを判定する。これにより、クロック信号CL3が基準値Tref1と同程度の略一定周期を有するクロック信号であっても、クロック判定装置1Cはクロック信号CL3が想定外クロック信号CL2であると適切に判定できる。
【0178】
<短周期判定部>
上述の例では、基準値Tref2を基準値Tref1よりも大きく設定した。しかしながら、基準値Tref1よりも小さく設定してもよい。基準値Tref2は基準値Tref1よりも小さく、例えば20[ns]に設定される。つまり、基準値Tref1と同程度の周期を有する想定外クロック信号CL2については、その周期が基準値Tref2よりも短くならない一方で、想定クロック信号CL1の周期の変動ばらつきは大きいので、その周期は基準値Tref2よりも短くなることがある。
【0179】
そこで、たとえ複数の単位期間TPにおけるパターン情報が互いに非類似であっても、基準値Tref2よりも短い短周期が存在しないときには、クロック信号CL3を想定外クロック信号CL2と判定するのである(
図17も参照)。なおノイズ等に鑑みて、第2所定期間における短周期の数(以下、短周期数とも呼ぶ)が第3回数基準値よりも多いときに、短周期が存在すると判定するとよい。
【0180】
図18は、クロック判定装置1Dの構成の一例を概略的に示す図である。このクロック判定装置1Dは、長周期判定部19に代えて短周期判定部19’が設けられているという点で、クロック判定装置1Cと相違する。
【0181】
短周期判定部19’は第2所定期間内における短周期数が第3回数基準値よりも多いか否かを判定する。短周期判定部19’の内部構成は長周期判定部19と同様である。ただし、短周期判定部19’の周期判定回路192は、信号D4[1]〜D4[10]の信号パターンが複数の基準パターンのいずれとも一致しないときに、判定結果J14として「H」を出力し、当該信号パターンが複数の基準パターンのいずれかと一致するときに、判定結果J14として「L」を出力する。
【0182】
これにより、短周期判定部19’の同期回路193は周期Tが基準値Tref2よりも短いときに「H」を出力し、周期Tが基準値Tref2よりも長いときに「L」を出力する。よって、短周期判定部19’のカウンタ195は、基準値Tref2よりも短い短周期の数(短周期数)をカウントする。短周期判定部19’の比較回路196は第2所定期間における短周期数(カウント値CT6)が第3回数基準値以上であるときに、判定結果J24として「H」を出力し、短周期数が第3回数基準値よりも少ないときに、判定結果J24として「L」を出力する。第3回数基準値は例えば1である。
【0183】
これによれば、クロック判定部18は単位期間TPにおけるパターン情報の類否判定(判定結果J21)のみならず、短周期の存否(判定結果J24)に基づいてクロック信号CL3が想定クロック信号CL1であるのか、想定外クロック信号CL2であるのかを判定する。これにより、クロック信号CL3が基準値Tref1と同程度の略一定周期を有するクロック信号であっても、クロック判定装置1Dはクロック信号CL3が想定外クロック信号CL2であると適切に判定できる。
【0184】
第4の実施の形態.
第1から第3の実施の形態で述べたクロック判定装置1は相互に組み合わせることができる。
図19は、クロック判定装置1Eの構成の一例を概略的に示す図である。クロック判定装置1Eは特徴抽出部11と判定部12と逸脱判定部15と長周期判定部19とクロック判定部18とを備えている。
【0185】
クロック判定部18には、判定部12、上限逸脱判定部16、下限逸脱判定部17および長周期判定部19から、それぞれ判定結果J21〜J24が入力される。このクロック判定部18は常に判定結果J21〜J24の全てを用いてクロック信号CL3の判定処理を行うのではなく、処理装置3の処理内容に応じた判定結果を用いてクロック信号CL3の判定処理を行う。
【0186】
より具体的には、クロック判定部18は処理装置3の処理の重要度(あるいは秘匿性、以下、同様)が高いほど、より多くの判定結果を用いてクロック信号CL3の判定処理を行う。そしてクロック判定部18はその判定結果J2を機能制御装置2に出力する。以下、具体的に説明する。
【0187】
図19の例では、クロック判定部18は判定部181と選択部182とを有している。判定部181には、判定結果J21〜J24が入力される。判定部181は判定結果J21〜J24の全てを用いてクロックの判定処理を行い、その判定結果J25を選択部182に出力する。判定結果J25は電気信号のH/Lで示される。例えばクロック信号CL3が想定クロック信号CL1であると判定されたときに判定結果J25はLとなり、クロック信号CL3が想定外クロック信号CL2であると判定されたときに判定結果J25はHとなる。
【0188】
図20は、判定部181による判定条件の一例を表形式で示す図である。判定部181は次の条件が成立するときにクロック信号CL3が想定クロック信号CL1であると判定する。即ち、判定部181は、複数の単位期間TPにおけるパターン情報が互いに非類似であり(判定結果J21がL)、第2所定期間において長周期(または短周期)が存在し(判定結果J24がL)、且つ、クロック信号CL3の周期が許容範囲内である(判定結果J22,J23の両方がL)ときに、クロック信号CL3が想定クロック信号CL1であると判定する。つまり、判定部181は判定結果J21〜J24の全てがLであるときに、クロック信号CL3が想定クロック信号CL1であると判定する。
【0189】
一方で、判定部181は次の3つの条件の少なくともいずれか一つが成立するときに、クロック信号CL3が想定外クロック信号CL2であると判定する。即ち第1条件は、複数の単位期間TPにおけるパターン情報が互いに類似すること(判定結果J21がH)である。第2条件は、複数の単位期間TPにおけるパターン情報が非類似、且つ、第2所定期間内に長周期(または短周期)が存在しないこと(判定結果J21,J24がそれぞれL,H)である。第3条件は、クロック信号CL3の周期が許容範囲外となること(判定結果J22または判定結果J23がH)である。要するに、判定部181は判定結果J21〜J24の少なくとも一つがHであるときに、クロック信号CL3が想定外クロック信号CL2であると判定する。
【0190】
選択部182には、判定部12からの判定結果J21と、判定部181からの判定結果J25と、処理装置3からの要求信号RD1,RD2とが入力される。要求信号RD1は処理装置3が通常処理を開始するときに出力され、要求信号RD2は処理装置3が秘密処理を開始するときに出力される。そこで、選択部182は要求信号RD1が入力されていたとき(つまり処理装置3が通常処理を行っているとき)には、判定結果J21を判定結果J2として機能制御装置2に出力する。また選択部182は要求信号RD2が入力されていたとき(つまり処理装置3が秘密処理を行っているとき)には、判定部181からの判定結果を判定結果J2として機能制御装置2に出力する。
【0191】
これによれば、より重要度が高い秘密処理の実行中には、より高い精度でクロック信号CL3の判定処理を実行でき、より重要度が低い通常処理の実行中には、より精度の低い精度で簡易にクロック信号CL3の判定処理を実行できる。つまり、処理の重要度に応じてクロック信号CL3の判定処理を実行できる。
【0192】
なお処理装置3の処理内容をその重要度で3つのレベルに分類し、そのレベルに応じて判定結果J21〜J24を用いてもよい。例えばクロック判定部18は処理装置3の処理内容のレベルが最も低いときには判定結果J21のみを用い、当該レベルが中ほどであるときには第2の実施の形態と同様に判定結果J21〜J23を用い、当該レベルが最も高いときには上述のように判定結果J21〜J24の全てを用いてもよい。
【0193】
第5の実施の形態.
第5の実施の形態では、基準値Tref1を可変とすることを企図する。
図21は、クロック判定装置1Fの構成の一例を概略的に示す図である。クロック判定装置1Fは、遅延素子131の個数および周期判定回路132の機能という点でクロック判定装置1と相違する。
【0194】
遅延素子131の個数N1は第1の実施の形態と同様に個数N1と所定時間Δt1との積(N1・Δt1)が基準値Tref1以上となるように設定される。ただし第5の実施の形態では、基準値Tref1を可変とすることを企図しているので、積(N1・Δt1)が基準値Tref1の可変範囲の最大値以上となるように、個数N1が設定される。ここでは一例として所定時間Δt1を3[ns]とし、個数N1を20個とする。
【0195】
周期判定回路132には、基準指定信号TD1が入力される。基準指定信号TD1は任意の装置(例えばクロック判定装置1F、機能制御装置2または処理装置3)によって生成される。基準指定信号TD1は基準値Tref1の値を指定する信号である。ここでは、基準指定信号TD1は基準値Tref1の値として、第1値Tref11および第2値Tref12のいずれか一方を指定する。ただし、基準値Tref1は所定時間Δt1の整数倍で指定される。例えば第1値Tref11は30(=10×3)[ns]であり、第2値Tref12は36(12×3)[ns]である。
【0196】
周期判定回路132には、指定可能な基準値Tref1ごとの基準パターン群が格納されている。
図22は、基準値Tref1が第1値Tref11(30[ns])であるときの基準パターン群と、基準値Tref1が第2値Tref11(36[ns])であるときの基準パターン群との一例を示す図である。
【0197】
基準値Tref1が第1値Tref11(30[ns])であるときには、
図9と同様に10個の信号D1[10]〜D1[1]の信号パターンに対応して、10個の基準パターンが格納される。基準値Tref1が第2値Tref12(36[ns])であるときには、12個の信号D1[12]〜D1[1]に対応して、12個の基準パターンが格納される。つまり、基準値Tref1がM・Δt[ns]であるときには、M個の信号D1[M]〜D1[1]の信号パターンに対応して、M個の基準パターンが格納される。
【0198】
周期判定回路132は、基準指定信号TD1に対応したM個の信号D1[M]〜D1[1]の信号パターンが、基準指定信号TD1に対応したM個の基準パターンのいずれか一つに一致するか否かを判定し、その判定結果J1を同期回路133に出力する。
【0199】
具体的には、周期判定回路132は、基準指定信号TD1が基準値Tref1を第1値Tref11に指定しているときには、信号D1[10]〜D1[1]の信号パターンが、第1値Tref11に対応した10個の基準パターンのいずれか一つと一致するか否かを判定する。当該信号パターンが当該基準パターンのいずれか一つと一致するときには、その周期は第1値Tref11よりも長いので、周期判定回路132は判定結果J1としてHを出力する。一方で、当該信号パターンが当該基準パターンのいずれとも一致しないときには、その周期は第1値Tref11よりも短いので、周期判定回路132は判定結果J1としてLを出力する。
【0200】
これによれば、クロック判定装置1Fは、第1値Tref11を用いた長短判定を利用してパターン情報を生成でき、このパターン情報の類否判定に基づいて、クロック信号CL3が想定クロック信号CL1であるのか、想定外クロック信号CL2であるのかを判定できる。
【0201】
また周期判定回路132は、基準指定信号TD1が基準値Tref1を第2値Tref12に指定しているときには、信号D1[12]〜D1[1]の信号パターンが、第2値Tref12に対応した12個の基準パターンのいずれか一つと一致するか否かを判定する。当該信号パターンが当該基準パターンのいずれか一つと一致するときには、その周期は第2値Tref12よりも長いので、周期判定回路132は判定結果J1としてHを出力する。一方で、当該信号パターンが当該基準パターンのいずれとも一致しないときには、その周期は第2値Tref12よりも短いので、周期判定回路132は判定結果J1としてLを出力する。
【0202】
これによれば、クロック判定装置1Fは、第2値Tref12を用いた長短判定を利用してパターン情報を生成でき、このパターン情報の類否判定に基づいて、クロック信号CL3が想定クロック信号CL1であるのか、想定外クロック信号CL2であるのかを判定できる。
【0203】
基準指定信号TD1としては、想定クロック信号CL1(ランダムクロック信号CLa)の平均周期を採用してもよい。例えばクロック生成部20が想定クロック信号CL1の平均周期を基準値Tref1に指定するように基準値指定信号TD1を出力してもよい。あるいは、処理装置3が、ランダムクロック信号CLaの平均周期をクロック生成装置20に要求する場合には、その要求信号を基準値指定信号TD1として周期判定回路132に入力してもよい。
【0204】
これによれば、クロック判定の精度を向上することができる。この点について次に詳述する。基準値Tref1が想定クロック信号CL1の平均周期から大きくずれると、長短判定の結果が偏りやすい。例えば基準値Tref1が平均周期よりも大きい場合、想定クロック信号CL1の周期は基準値Tref1よりも短くなる確率が高くなる。つまり、長短判定の結果としては短周期と判断される確率が高くなる。これにより、想定クロック信号CL1であるにもかかわらず、類似度(一致数)が高くなりやすく、想定外クロック信号CL2と誤判定されやすくなる。逆に言えば、基準値Tref1として平均周期を採用することで、このようなクロック判定の精度低下を回避することができる。
【0205】
また、基準指定信号TD1は、クロック信号CL3の判定処理を少なくとも1回行った後に、更新されることが望ましい。例えば判定部12が基準指定信号TD1を出力する場合、判定部12は、まず第1値Tref11を指定する基準指定信号TD1を周期判定回路132に出力する。これにより、判定部12は第1値Tref11を採用してクロック信号CL3の判定処理を行う。つまり、判定部12は、第1値Tref11に基づいた長短判定によって生成されるパターン情報が複数の単位期間TPにおいて互いに類似するか否かを判定して、クロック信号CL3の判定処理を行う。
【0206】
その後、判定部12は、第2値Tref12を指定する基準指定信号TD1を周期判定回路132に出力する。例えば判定部12は第1値Tref11を採用したクロック信号CL3の判定処理を所定回数だけ行ったときに、第2値Tref12を指定する基準指定信号TD1を出力する。これにより、判定部12は第2値Tref12を採用してクロック信号CL3の判定処理を行う。つまり、判定部12は、第2値Tref12に基づいた長短判定によって生成されるパターン情報が複数の単位期間TPにおいて互いに類似するか否かを判定して、クロック信号CL3の判定処理を行う。
【0207】
以上のように、クロック判定装置1Fによれば、長短判定に用いる基準値Tref1を異ならせて、クロック信号CL3の判定処理を行う。これにより、以下に説明するように判定処理の精度を向上できる。例えば第三者が第1値Tref11と同程度の略一定周期を有する想定外クロック信号CL2をクロック信号CL3として情報処理装置10に入力した場合を考慮する。この場合、第1値Tref11を用いた長短判定の結果がばらつくので、第1値Tref11を用いた判定処理では、クロック信号CL3が想定クロック信号CL1と誤判定され得る。しかるに、第2値Tref12を用いた長短判定の結果はばらつかないので、第2値Tref12を用いた判定処理によって、クロック信号CL3が想定外クロック信号CL2であると適切に判定される。以上のように、一旦は、クロック信号CL3が想定クロック信号CL1であると判定されても、その後の判定処理においてクロック信号CL3が想定外クロック信号CL2であると判定される。よって、クロック信号の判定処理の精度を向上できるのである。
【0208】
クロック判定装置1Fは、基準値Tref1を繰り返し更新することが望ましい。例えばクロック判定装置1Fは基準値Tref1を第1値から第K値まで順に更新した後に、再び第1値に更新することが望ましい。
【0209】
変形例.
図23は、クロック判定装置1Gの構成の一例を概略的に示す図である。クロック判定装置1Fは、EX−NOR部121に代えてAND部121aが設けられているという点で、クロック判定装置1と相違する。AND部121aには、長短情報L1[t−8],L1[t]が入力される。AND部121aはAND回路を有しており、長短情報L1[t−8],L1[t]の両方がHであるときに、一致/不一致情報M1として「1」をカウンタ123に出力し、長短情報L1[t−8],L1[t]の少なくともいずれか一方がLであるときに、一致/不一致情報M1として[0(零)」をカウンタ123に出力する。
【0210】
これによれば、単位期間TP1,TP2の同じ順番(位置)の周期が基準値Tref1よりも長いときに、カウント値CT2がインクリメントされる。クロック信号CL3が想定外クロック信号CL2(レギュラークロック信号CLb)であれば、その周期は略一定であるので、長短判定の結果は常に一定である。よって、クロック信号CL3の周期が基準値Tref1よりも長ければ、単位期間TPが経過したときのカウント値CT2は理想的には単位期間TPを構成するサイクル数(ここでは8)と一致する。そこで、比較回路124は単位期間TPごとのカウント値CT2が基準値(例えば6)よりも大きいか否かを判定する。カウント値CT2が基準値よりも大きいときには、クロック信号CL3が想定外クロック信号CL2(レギュラークロック信号CLb)であるとの判定結果J2が出力される。
【0211】
上述の例では、カウンタ123は長短情報L1[t−8],L1[t]の両方がHとなる数をカウントしているものの、長短情報L1[t−8],L1[t]の両方がLとなる数をカウントするカウンタが設けられてもよい。この場合、AND部121aは、長短情報L1[t−8],L1[t]の両方がLであるときに「1」を当該カウンタに出力し、長短情報L1[t−8],L1[t]の少なくともいずれか一方がHであるときに「0(零)」を当該カウンタに出力する。クロック信号CL3が基準値Tref1よりも短い想定外クロック信号CL2であるときには、当該カウンタのカウント値は理想的には単位期間TPのサイクル数(ここでは8)と一致する。そこで、比較回路124は単位期間TPの経過毎の当該カウント値が基準値(例えば6)よりも大きいか否かも判定する。当該カウント値が基準値よりも大きいときには、クロック信号CL3が想定外クロック信号CL2(レギュラークロック信号CLb)であるとの判定結果J2が出力される。
【0212】
なお上述の各種の形態では、想定外クロック信号として、不正クロック生成装置20’が生成するクロック信号CL2を例示した。しかしながら必ずしもこれに限らない。クロック生成装置20の誤動作等により、レギュラークロック信号CLbを出力すべき期間でランダムクロック信号CLaを出力したときでも、クロック判定装置1はそのランダムクロック信号CLaを想定外クロック信号として検出することができる。
【0213】
また上述の各種の形態では、ランダムクロック信号CLaの周期が略不規則に変動するので、周期の長短情報を用いた。しかるに、ランダムクロック信号CLaのデューティが略不規則に変わる場合には、デューティの長短情報を用いてもよい。つまり、特徴抽出部11は単位期間TPにおける各周期のデューティが基準値Drefよりも長いか否かを判断してもよい。つまり、デューティが基準値Drefよりも長いか否かを示すデューティ情報が出力される。上述の各種形態において、長短情報をデューティ情報に読み替えればよい。
【0214】
以上のように、情報処理装置10は詳細に説明されたが、上記した説明は、全ての局面において例示であって、この発明がそれに限定されるものではない。上述した各種実施の形態は、相互に矛盾しない限り組み合わせて適用可能である。そして、例示されていない無数の変形例が、この発明の範囲から外れることなく想定され得るものと解される。