(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0027】
以下、本発明の好適な実施の形態について詳細に説明する。なお以下に説明する本実施形態は特許請求の範囲に記載された本発明の内容を不当に限定するものではなく、本実施形態で説明される構成の全てが本発明の解決手段として必須であるとは限らない。
【0028】
なお以下では、発振デバイスがリアルタイムクロック装置である場合を例に説明するが、これに限定されず、本発明は種々の発振デバイス(例えば温度補償型水晶発振器(TCXO)等の発振器)や、発振子を用いた物理量測定装置(例えば時間デジタル変換器)等にも適用できる。
【0029】
1.回路装置
例えば、外部デバイスであるCPUと、そのCPUに計時データを送信するリアルタイムクロック装置とを含むシステムを考える。このようなシステムでは、例えば基板に実装されたCPUを不正デバイスに取り替える、或いはCPUからの通信であるかのように偽装してリアルタイムクロック装置と通信を行う等のなりすましが想定される。或いは、基板に実装されたリアルタイムクロック装置を不正デバイスに取り替える、或いはリアルタイムクロック装置からの通信であるかのように偽装してCPUと通信を行う等のなりすましが想定される。
【0030】
このような不正行為が行われた場合、例えばリアルタイムクロック装置の計時データが不正な日時に書き替えられたり、或いは、不正な計時データがCPUに送信されたりする可能性がある。このような不正な通信が行われると、例えば過去の(既に無効であるはずの)電子署名を用いてCPUに誤った認証をさせる等のハッキングが行われる可能性がある。
【0031】
例えば、自動車等の移動体ではモバイル通信やブルートゥース(登録商標)通信、有線通信等の種々の通信を介して移動体の内部ネットワークと外部ネットワーク(又は外部デバイス)が通信を行う。このような通信を介して内部ネットワークがハッキングされ、上記のようなCPU或いはリアルタイムクロック装置のなりすましが行われるおそれがある。
【0032】
図1は、上記のような課題を解決できる本実施形態の回路装置、及び回路装置を含むシステムの構成例である。
図1のシステムは、外部デバイス200、回路装置100を含む。外部デバイス200は、処理部210、インターフェース部220を含む。回路装置100は、発振回路80、処理部10(処理回路)、記憶部25(メモリー)を含む。また回路装置100は、インターフェース部60(インターフェース回路)、計時部30を含むことができる。なお回路装置は
図1の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0033】
外部デバイス200は例えばSOC(System On Chip)である。或いはCPU、MPU等の処理装置であってもよい。回路装置100は、例えば集積回路装置により実現できる。例えば、
図1の回路装置100と発振子XTALを組み合わせることでリアルタイムクロック装置が構成される。なお、本実施形態は
図1の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加したりする等の種々の変形実施が可能である。
【0034】
発振回路80は、発振子XTALを用いて発振信号を生成する。処理部10は、発振回路80を制御する。記憶部25は、発振信号の発振周波数の温度補償データを記憶する。そして処理部10は、温度補償データに基づいて回路装置100の固有のPUF情報を生成する。
【0035】
温度補償は、発振信号の発振周波数の温度特性(温度依存性)をキャンセル(低減)し、温度変化に対して発振周波数が一定(略一定)になるように、発振周波数を制御することである。温度補償データは、その温度補償に用いるデータである。例えば、温度補償データは、発振回路に設けられたキャパシターアレイのスイッチを制御する制御データである。或いは、温度補償データは、制御データを生成するためのデータである。例えば、各温度に対応する制御データが記憶部25に記憶されており、測定された温度に対応する制御データによりキャパシターアレイを制御する。この制御データが温度補償データである。或いは、温度を変数とする近似多項式によりVCOの制御電圧を生成する場合、近似多項式の係数データが温度補償データである。温度補償データを記憶する記憶部25は、例えば不揮発性メモリー(例えば
図2等の不揮発性メモリー40)である。なお、これに限定されず、SRAM等のRAMや、レジスター、ヒューズ等であってもよい。
【0036】
回路装置100の固有のPUF情報は、個々の回路装置に対して固有に対応した情報である。即ち、その固有情報によって回路装置の個体、或いは回路装置の正当性(例えば純正品であるか否か、或いは想定した製品であるか否か)を識別できる情報である。PUF情報は、ハードウェア特性の個体ばらつきを利用して取得される、回路装置に固有のデータ(PUFコード)である。発振子XTALや発振回路80の発振特性(温度特性)には個体ばらつきがあるため、それを調整する温度補償データにも個体ばらつきが生じる。このため、温度補償データに基づいてPUF情報を生成できる。PUF情報は、温度補償データそのものであってもよいし、温度補償データに対して何らかの処理を行ったデータであってもよい。例えばPUF情報は、温度補償データから一部のデータを取り出したデータや、その取り出したデータを更に加工したデータであってもよい。なお、PUF情報は基本的に個体間で重複がない情報であると期待されるが、セキュリティーを維持できる範囲で重複が許されてもよい。
【0037】
PUF情報の用途は種々想定できる。例えば、PUF情報(又はそれに基づく情報)により外部デバイス200が回路装置100(リアルタイムクロック装置)を認証してもよいし、外部デバイス200から回路装置100が受信した情報とPUF情報により回路装置100が外部デバイス200を認証してもよい。
【0038】
本実施形態によれば、PUF情報はハードウェア特性の個体ばらつきを利用しているため、同じPUF情報を有する回路装置を複製できる可能性は非常に低い。このようなPUF情報を利用することで、複製等によるリアルタイムクロック装置のなりすましのおそれや、外部デバイスのなりすましのおそれを低減し、セキュリティーを向上できる。また、温度補償を行う発振デバイスは温度補償データを記憶しており、この温度補償データは個体ばらつきを有する。そのため、その温度補償データから回路装置に固有のPUF情報を生成することが可能である。
【0039】
また本実施形態では、PUF情報に基づく認証情報を外部デバイス200に出力するインターフェース部60を含む。
【0040】
認証情報は、通信しようとしている回路装置を認証して通信を許可するか否かを判断するための情報である。即ち、通信しようとしている回路装置が正当であるか否か(例えば純正品であるか否か、或いは想定した製品であるか否か)を判断するための情報である。認証情報は、PUF情報そのものであってもよいし、PUF情報に対して何らかの処理を行って生成した情報であってもよい。例えば認証情報のデータは、PUF情報にランダムデータ(例えば乱数データ)を付加したデータや、そのデータ又はPUF情報そのものを暗号化処理したデータであってもよい。
【0041】
外部デバイス200は、回路装置100のインターフェース部60から出力(送信)された認証情報を、インターフェース部220を介して受信する。そして、処理部210が、受信された認証情報に基づいて認証処理を行い、回路装置100を認証するか否か(回路装置100との通信を許可するか否か)を判断する。例えば、受信した認証情報と期待値とを比較することで認証処理を行う。認証に失敗した場合は、それ以後の回路装置100との通信を許可せず、認証に成功した場合は、回路装置100の初期設定や回路装置100との間のデータ通信等の通常の通信処理を許可する。
【0042】
本実施形態によれば、外部デバイス200が回路装置100を認証するための認証情報を、回路装置100から外部デバイス200へ出力できる。これにより、回路装置100(回路装置100を含むリアルタイムクロック装置)のなりすましのおそれを低減できる。即ち、認証情報を送信してきた(即ち外部デバイス200に接続されている)回路装置100が、通信すべきデバイスであるか否かを、外部デバイス200が認証情報により判断できる。これにより、例えば基板に実装されたリアルタイムクロック装置を不正デバイスに取り替える等の不正行為があった場合に、そのことを検出でき、セキュリティーを向上できる。
【0043】
また本実施形態では、回路装置100は、PUF情報に基づく暗号処理を行う暗号処理部(暗号処理回路)を含んでもよい。
【0044】
具体的には、暗号処理部(例えば
図4、
図5の暗号処理部14)が、PUF情報に基づく認証情報を暗号化し、インターフェース部60が、暗号化処理部により暗号化された認証情報を外部デバイス200に送信する。或いは、インターフェース部60が、PUF情報に基づく情報を外部デバイス200から受信し、暗号処理部が、受信した情報に基づく復号処理を行う。例えば
図6では、インターフェース部60が、外部デバイス200から暗号化されたPUF情報を受信し、暗号処理部14が、その暗号化されたPUF情報を復号する。
【0045】
暗号処理(暗号化、復号)としては、例えばAES(Advanced Encryption Standard)等の共通鍵暗号方式や、例えばRSA等の公開鍵暗号方式を用いることができる。なお、暗号処理部は例えば
図4等に示すように処理部10に含まれてもよいし、或いは、処理部10とは別の回路として設けられてもよい。
【0046】
このようにすれば、暗号化されていないデータ(例えば平文データ)を回路装置から外部デバイスへ又は外部デバイスから回路装置へ通信する場合に比べて、セキュリティーが破られる可能性を低減でき、システムのセキュリティーを向上できる。
【0047】
また本実施形態では、インターフェース部60は、外部デバイス200を認証するための外部デバイス認証情報を受信してもよい。そして、処理部10は、外部デバイス認証情報とPUF情報に基づいて外部デバイス200の認証処理を行ってもよい。
【0048】
例えば
図6では、インターフェース部60が、外部デバイス200からPUF情報を外部デバイス認証情報として受信し、処理部10が、そのPUF情報と、回路装置100が生成するPUF情報(期待値)とを比較し、一致するか否かを判定することにより認証を行う。例えば、回路装置100が生成するPUF情報を、予め外部デバイス200に記憶させておき、そのPUF情報を外部デバイス認証情報として回路装置100に送信させる。回路装置100は、送信されたPUF情報が、自分のPUF情報と一致した場合に、外部デバイス200との通信を許可する。
【0049】
本実施形態によれば、回路装置100が外部デバイス200を認証するための外部デバイス認証情報を、回路装置100が外部デバイス200から受信できる。これにより、外部デバイス200のなりすましのおそれを低減できる。即ち、外部デバイス認証情報を送信してきた(即ち回路装置100に接続されている)外部デバイス200が、通信すべきデバイスであるか否かを、回路装置100が外部デバイス認証情報により判断できる。これにより、例えば基板に実装された外部デバイス200を不正デバイスに取り替える、或いは外部デバイス200を偽装したデバイスから回路装置100に通信する等の不正行為のおそれを低減でき、それによってセキュリティーを向上できる。
【0050】
また本実施形態では、処理部10は、温度補償データから所与のビット数のデータを抽出して、PUF情報を生成する。
【0051】
即ち、処理部10は、温度補償データの全体のうち一部のデータに基づいてPUF情報を生成する。処理部10は、PUF情報として必要な数(所与のビット数)のビットを、温度補償データの所与の位置(アドレス)から抽出し、その抽出したビットを結合して所与のビット数のPUF情報を生成する。
【0052】
PUF情報としてユニーク性(個体間で重複がない(ほぼない)こと)を保つために必要なビット数よりも、温度補償データの方が大きい場合がある。本実施形態によれば、温度補償データから所与のビット数のデータを抽出することで、ユニーク性を維持しつつ少ないビット数のPUF情報を温度補償データから生成できる。
【0053】
また本実施形態では、発振回路80は、温度補償用の可変容量回路(例えば
図7の可変容量回路82)を有する。そして温度補償データは、可変容量回路の容量値を調整する調整用データである。
【0054】
例えば可変容量回路は、キャパシターアレイであり、そのキャパシターアレイのスイッチのオン及びオフを制御して容量値を調整するデータが温度補償データである。或いは、可変容量回路は、D/A変換回路と、そのD/A変換回路の出力電圧で容量値が制御される可変容量キャパシターであり、D/A変換回路に入力されるデータが温度補償データである。
【0055】
このように、発振回路80が、温度補償データにより容量値が調整される温度補償用の可変容量回路を有することで、温度補償が可能になる。そして、この可変容量回路を含む発振回路80や発振子XTALの個体ばらつきによって温度補償データがばらつくので、その温度補償データに基づいてPUF情報を生成することが可能になる。
【0056】
また本実施形態では、温度補償データは、複数の温度に対応する複数のアドレスの各アドレスに調整用データ(例えば
図8のDATA0〜DATA127)が格納されているデータである。そして、処理部10は、複数のアドレスの少なくとも2つのアドレスの調整用データを用いてPUF情報を生成する。
【0057】
即ち、温度補償を行う温度範囲の各温度に1アドレスが対応しており、そのアドレスに、対応する温度の調整用データが記憶されている。そして、温度センサーにより測定された温度に対応するアドレスの調整用データが読み出され、可変容量回路の容量値が調整されることで温度補償が行われる。
【0058】
本実施形態では、このような温度補償データのうち少なくとも2つのアドレス(2温度)の調整用データからPUF情報を生成する。温度補償データには個体ばらつきがあるが、1つのアドレス(1温度)の調整用データでは個体間で一致する可能性がある。そのため、2つのアドレス(2温度)以上の調整用データを用いることで、PUF情報が個体間で一致する可能性を下げることができる(PUF情報のユニーク性を向上できる)。
【0059】
また本実施形態では、少なくとも2つのアドレスは、複数のアドレスの低温度側のアドレス、高温度側のアドレス、低温度側のアドレス及び高温度側のアドレスの間のアドレスのうちの少なくとも2つのアドレスである。
【0060】
低温度側アドレスとは、温度補償を行う温度範囲のうち低温度側の温度に対応したアドレスである。具体的には、温度範囲の下限に対応するアドレス、或いはその下限付近の温度に対応する複数のアドレス(例えば2〜5個のアドレス)である。高温度側アドレスとは、温度補償を行う温度範囲のうち高温度側の温度に対応したアドレスである。具体的には、温度範囲の上限に対応するアドレス、或いはその上限付近の温度に対応する複数のアドレス(例えば2〜5個のアドレス)である。低温度側のアドレス及び高温度側のアドレスの間のアドレスは、低温度側の温度と高温度側の温度の間の温度に対応するアドレスである。例えば、温度補償を行う温度範囲の半分の温度に対応するアドレス、或いはその半分の温度付近の温度に対応する複数のアドレス(例えば2〜5個のアドレス)である。
【0061】
図9、
図10で後述するように、温度補償に関わる種々のパラメーターの固体ばらつきによって温度補償データにばらつきが生じるが、そのうち低温度側のアドレス、高温度側のアドレス、低温度側のアドレス及び高温度側のアドレスの間のアドレスの調整用データにばらつきが生じやすいと想定される。本実施形態によれば、これらのアドレスのうち少なくとも2つのアドレスの調整用データを用いてPUF情報を生成することで、PUF情報のユニーク性が向上すると期待できる。
【0062】
また本実施形態では、計時部30は、発振信号に基づいて、リアルタイムクロック情報である計時データを生成する。そしてインターフェース部60は、計時データを外部デバイス200に出力する。
【0063】
外部デバイス200は、インターフェース部220を介して計時データを受信し、処理部210が、その受信された計時データに基づく処理を行う。例えば、処理部210は、システムの主電源投入時に回路装置100(リアルタイムクロック装置)から計時データを読み出し、システム時間を初期化する。
【0064】
計時データは、リアルタイムクロック情報としての時間を表すデータである。即ち、計時部30がリアルタイムクロック情報として計測した時間のデータである。例えば、計時データは日時を示すデータであり、カレンダーデータ、時刻データを含むことができる。例えば、カレンダーデータは、年、月、週、日などのデータであり、時刻データは、時、分、秒などのデータである。例えば、計時部30は、発振信号を分周して1秒周期のクロック信号を生成し、そのクロック信号をカウントすることで時間を計測する。
【0065】
リアルタイムクロック装置は、システムの主電源がオフになった場合であっても、例えば電池等のバックアップ電源により動作し、計時(現実時間の計測)を続ける装置である。そして、主電源がオンになった際には、外部デバイス200がリアルタイムクロック装置の計時データを参照し、システムの時間を初期化する。例えば、外部デバイス200が電子署名によるデータ認証を行う場合、外部デバイス200は、ネットワーク等を介して送信されたデータに添付された電子署名の発行時間とシステム時間とを比較し、電子署名の検証を行う。このとき、システム時間が正しい時間に設定されている必要があるが、リアルタイムクロック装置のなりすましによってシステム時間が不正な時間に設定され、電子署名を正しく検証できなくなるおそれがある。
【0066】
この点、本実施形態によれば、外部デバイス200がリアルタイムクロック装置(回路装置100)を認証するための認証情報を、回路装置100から外部デバイス200へ出力できるので、リアルタイムクロック装置のなりすましのおそれを低減できる。これにより、リアルタイムクロック装置を含むシステムのセキュリティーを向上できる。
【0067】
なお、以上では本発明の手法をリアルタイムクロック装置に適用した場合を例に説明したが、本発明の手法を物理量測定装置に適用してもよい。
図13には、物理量測定装置の一例として時間デジタル変換器を示す。ここでは概要を説明し、詳細は後述する。
【0068】
図13に示す実施形態では、回路装置750は、発振信号に基づいて、時間デジタル変換を行う時間デジタル変換回路740を含む。そして、インターフェース部60は、時間デジタル変換に基づき生成された情報(例えば時間のデジタル値DQ)を外部デバイス200に出力する。
【0069】
時間デジタル変換器は、例えばTOF(Time Of Flight)方式の測距センサーに利用されており、測距センサーは、例えば車載デバイスが自動車の周囲の物体までの距離を検出するために利用される。例えば、このような測距技術はドライバーアシストや、自動運転の実現に用いられる。
【0070】
このような時間デジタル変換器(物理量測定装置)は、リアルタイムクロック装置と同様に、外部デバイス(例えばSOC)と通信を行うデバイスの一つである。即ち、リアルタイムクロック装置と同様になりすまし(例えば非純正品の使用)のおそれがある。本実施形態によれば、回路装置750(インターフェース部60)が外部デバイス200に認証情報を出力するので、外部デバイス200が時間デジタル変換器を認証でき、時間デジタル変換器のなりすましのおそれを低減できる。これにより、例えば正当な時間デジタル変換器の出力に基づいて車載デバイスが測距を行うことが可能になる。
【0071】
2.回路装置及びシステムの詳細な構成例
図2は、本実施形態の回路装置100及び回路装置100を含むシステムの第1の詳細な構成例である。なお、
図2では構成及び動作(処理)を模式的に図示している。また、インターフェース部60や発振回路80、計時部30は図示を省略している。
【0072】
第1の詳細な構成例では、回路装置100は、PUF情報DA1を認証情報として外部デバイス200に送信する。即ち、処理部10は、不揮発性メモリー40から温度補償データDA5を読み出し、その読み出した温度補償データDA5に基づいてPUF情報DA1を生成し、そのPUF情報DA1を外部デバイス200に送信する。
【0073】
また回路装置100は、不揮発性メモリー40に記憶された公開鍵DA2を外部デバイス200に送信する。公開鍵DA2は、例えばシステムの製造時(発振デバイス又は物理量測定装置を組み込んだ電子機器等の製造時)に不揮発性メモリー40に書き込まれる。
【0074】
外部デバイス200の処理部210は、受信したPUF情報DA1と公開鍵DA2に基づいて演算処理SA1(例えば復号処理)を行い、PUFコードDA3を生成する。例えば、公開鍵DA2は、回路装置100に固有のPUF情報DA1から、外部デバイス200が記憶している期待値DA4を復号できるように予め生成された鍵データである。この公開鍵DA2を使ってPUF情報DA1に復号処理(演算処理SA1)を行うことで、PUFコードDA3を生成する。
【0075】
処理部210は、生成されたPUFコードDA3と期待値DA4とを比較する処理SA2を行い、比較結果に基づいて認証処理を行う。即ち、PUFコードDA3と期待値DA4が一致した場合には認証成立と判定し、PUFコードDA3と期待値DA4が一致しなかった場合には認証不成立と判定する。
【0076】
図3は、本実施形態の回路装置100及び回路装置100を含むシステムの第2の詳細な構成例である。なお、
図3では構成及び動作(処理)を模式的に図示している。また、インターフェース部60や発振回路80、計時部30は図示を省略している。また、第1の詳細な構成例と同様の動作については適宜、説明を省略する。
【0077】
第2の詳細な構成例では、回路装置100の処理部10は、不揮発性メモリー40から読み出した温度補償データDB6に基づいてPUF情報DB2を生成し、そのPUF情報DB2と、乱数データ出力部13から出力される乱数データDB1とを組み合わせて認証情報を生成する処理SB1を行い、その認証情報を外部デバイス200に送信する。また、回路装置100は、不揮発性メモリー40に記憶された公開鍵DB3を外部デバイス200に送信する。
【0078】
外部デバイス200の処理部210は、受信した認証情報からPUF情報DB2を抽出する。処理部210は、抽出したPUF情報DB2と受信した公開鍵DB3に基づいて演算処理SB2(例えば復号処理)を行い、PUFコードDB4を生成する。処理部210は、生成されたPUFコードDB4と期待値DB5とを比較する処理SB3を行い、比較結果に基づいて認証処理を行う。
【0079】
図4は、本実施形態の回路装置100及び回路装置100を含むシステムの第3の詳細な構成例である。なお、
図4では構成及び動作(処理)を模式的に図示している。また、インターフェース部60や発振回路80、計時部30は図示を省略している。また、第1、第2の詳細な構成例と同様の動作については適宜、説明を省略する。
【0080】
第3の詳細な構成例では、回路装置100の処理部10は、不揮発性メモリー40から温度補償データDC6を読み出してPUF情報DC2を生成し、そのPUF情報DC2と、乱数データ出力部13から出力される乱数データDC1とを組み合わせる処理SC1を行う。そして、暗号処理部14が、処理SC1の出力データを暗号化し、処理部10が、暗号化されたデータを認証情報として外部デバイス200に送信する。例えば、暗号処理部14は、外部デバイス200と共通の共通鍵を用いてAES方式により暗号化を行う。また、回路装置100は、不揮発性メモリー40に記憶された公開鍵DC3を外部デバイス200に送信する。
【0081】
外部デバイス200の暗号処理部214は、受信した認証情報からPUF情報DC2を復号する。例えば、暗号処理部214は、回路装置100と共通の共通鍵を用いてAES方式により復号を行う。処理部210は、復号されたPUF情報DC2と受信した公開鍵DC3に基づいて演算処理SC2(例えば復号処理)を行い、PUFコードDC4を生成する。処理部210は、生成されたPUFコードDC4と期待値DC5とを比較する処理SC3を行い、比較結果に基づいて認証処理を行う。
【0082】
図5は、本実施形態の回路装置100及び回路装置100を含むシステムの第4の詳細な構成例である。なお、
図5では構成及び動作(処理)を模式的に図示している。また、インターフェース部60や発振回路80、計時部30は図示を省略している。また、第1〜第3の詳細な構成例と同様の動作については適宜、説明を省略する。
【0083】
第4の詳細な構成例では、外部デバイス200が回路装置100を認証する第1認証処理と、回路装置100が外部デバイス200を認証する第2認証処理とを行う。
【0084】
第1認証処理では、回路装置100の処理部10が、温度補償データDD6から生成したPUF情報DD2と、と乱数データDD1とを組み合わせる処理SD1を行い、暗号処理部14が、処理SD1の出力データを暗号化し、処理部10が、暗号化されたデータを認証情報として外部デバイス200に送信する。外部デバイス200の暗号処理部214は、受信した認証情報からPUF情報DD2を復号し、復号されたPUF情報DD2と期待値DD5とを比較する処理SD3を行い、比較結果に基づいて認証処理を行う。
【0085】
第2認証処理では、外部デバイス200の乱数データ出力部213が乱数データDD4を出力し、暗号処理部214が、その乱数データDD4を暗号化する。処理部210は、乱数データDD4が暗号化されたデータ(外部デバイス認証情報)と、平文の乱数データDD4とを回路装置100に送信する。回路装置100の暗号処理部14は、受信した、暗号化されたデータを復号して乱数データDD3を生成する。処理部10は、復号された乱数データDD3と、受信した平文の乱数データDD4(期待値)とを比較する処理SD2を行い、比較結果に基づいて認証処理を行う。
【0086】
図6は、本実施形態の回路装置100及び回路装置100を含むシステムの第5の詳細な構成例である。なお、
図6では構成及び動作(処理)を模式的に図示している。また、インターフェース部60や発振回路80、計時部30は図示を省略している。また、第1〜第4の詳細な構成例と同様の動作については適宜、説明を省略する。
【0087】
第5の詳細な構成例では、回路装置100が外部デバイス認証情報とPUF情報とに基づいて認証処理を行う。具体的には、外部デバイス200の暗号処理部214は、PUF情報DE2を暗号化し、処理部210は、暗号化されたPUF情報DE2を外部デバイス認証情報として回路装置100に送信する。回路装置100の暗号処理部14は、受信された外部デバイス認証情報からPUF情報DE2を復号する。処理部10は、PUF情報DE2と期待値DE5を比較する処理SE3を行い、比較結果に基づいて認証処理を行う。例えば、回路装置100の処理部10は、不揮発性メモリー40から読み出した温度補償データDE6に基づいて期待値DE5を生成する。PUF情報DE2と期待値DE5は、回路装置100に固有のPUF情報である。即ち、予め外部デバイス200と回路装置100で同一のPUF情報を共有しておき、その一致を判定することで認証を行う。
【0088】
なお、回路装置100が外部デバイス200を認証する手法はこれに限定されない。例えば第1〜第4の詳細な構成例で説明した外部デバイス200が回路装置100を認証する手法を逆方向に適用して、回路装置100が外部デバイス200を認証する手法として用いてもよい。
【0089】
3.認証情報の生成手法
温度補償データを固有情報として用いる場合において、固有情報から認証情報を生成する手法の詳細な例を説明する。
【0090】
図7は、本実施形態の回路装置100の第2の構成例及び発振回路の詳細な構成例である。回路装置100は、温度センサー5、不揮発性メモリー40、処理部10、発振回路80を含む。なお、
図7ではインターフェース部60、計時部30を省略している。
【0091】
発振回路80は、発振子XTALを駆動して(発振させて)発振信号OSCを生成する増幅回路81と、発振信号の発振周波数を調整する可変容量回路82とを含む。増幅回路81は、発振子XTALの一端に接続される第1のノードと、発振子のXTALの他端に接続される第2のノードを有する。可変容量回路82は、増幅回路81の第1のノード(又は第2のノード)に設けられており、キャパシターアレイで構成されている。具体的には、可変容量回路82は、一端が第1のノードに接続されるスイッチ素子SW1〜SWmと、一端がスイッチ素子SW1〜SWmの他端に接続されるキャパシターC1〜Cmと、を含む。mは2以上の整数である。キャパシターC1〜Cmの他端は基準電圧(例えば低電位側電源電圧)のノードに接続される。キャパシターC1〜Cmの容量値は、例えばバイナリー(2の累乗)で重み付けされている。スイッチ素子SW1〜SWmは、例えばトランジスターで構成される。
【0092】
温度センサー5は、回路装置100の温度(環境温度。回路装置100の基板の温度)を検出するセンサーである。具体的には、温度センサー5は、温度検出信号を出力するセンサー回路と、温度検出信号をA/D変換して温度検出データを出力するA/D変換回路とを含む。センサー回路は、例えばPN接合の順方向電圧の温度依存性に基づいて温度検出信号を生成する回路である。
【0093】
不揮発性メモリー40は、温度補償を行う温度範囲の各温度に対応した温度補償データを記憶している。そして、不揮発性メモリー40は、温度検出データに対応した温度の温度補償データを出力する。
【0094】
図8は、不揮発性メモリー40に記憶される温度補償データの例である。不揮発性メモリー40のアドレス0〜アドレス127の記憶領域に温度補償データDATA0〜DATA127(調整用データ)が記憶されている。1つのアドレスは、温度範囲の中の1つの温度に対応している。例えば、温度範囲を128等分した128点の温度に対してアドレス0〜アドレス127が対応している。温度補償データDATA0〜DATA127の各データは、第1〜第mのビットD1〜Dmからなるデータである。
【0095】
処理部10は、温度検出データを不揮発性メモリー40のアドレスにデコードして、そのアドレスの温度補償データを不揮発性メモリー40から読み出す。処理部10は、温度補償データのビットD1、D2、・・・、Dmに対応した制御信号を、可変容量回路82のスイッチ素子SW1、SW2、・・・、SWmに出力する。例えば、ビットDi=1の場合にはスイッチ素子SWiがオンになり、ビットDi=0の場合にはスイッチ素子SWiがオフになる。iは1以上でm以下の整数である。
【0096】
以上のようにして、温度補償データDATA0〜DATA127の中から検出温度に応じた温度補償データが選択され、その温度補償データによりキャパシターC1〜Cmの接続及び非接続が選択されることで、発振信号OSCの発振周波数が温度補償される。温度補償データDATA0〜DATA127は、発振信号OSCの発振周波数が温度に依らず一定(略一定を含む)となるように、発振デバイスや物理量測定装置の製造時に測定されたデータである。
【0097】
図9は、温度に対する可変容量回路82の容量値の特性例である。
図9では、温度に対応したアドレスを横軸としている。
【0098】
発振子XTALの発振周波数の温度特性は、温度に対して2次関数(略2次関数)の特性を有しており、それに対応して容量値の特性も2次関数(略2次関数)の特性となっている。
図9には、5つのサンプル(発振デバイス)での容量値の特性TS1〜TS5を例として図示している。この特性TS1〜TS5から分かるように、サンプル毎に容量値の特性が異なっていることがわかる。例えば、2次関数の極大値や、2次関数が極大値をとるアドレス、2次関数の各次の係数(例えば2次の係数は放物線の開き具合に関係する)が異なっている。
【0099】
本実施形態では、アドレス0〜127の温度補償データDATA0〜DATA127のうち、一部(1又は複数)のアドレスの温度補償データを不揮発性メモリー40から読み出し、その複数のアドレスの温度補償データで固有情報を生成する。例えば、1つのアドレスの温度補償データが10ビット(m=10)のデータであり、100ビットの固有情報を生成する場合、10個のアドレスから温度補償データを読み出して、その10個の温度補償データを結合して固有情報とする。例えば、10ビット×10個の温度補償データを固有情報のLSB側から順に並べて100ビットのデータとする。
【0100】
図10は、固有情報を生成する際のアドレス選択の例である。例1〜例6には、種々のパラメーターを変化させた際に、容量値の特性のばらつき(容量値の差)が出やすいアドレス領域を示している。本実施形態では、このような差が出やすいアドレス領域から温度補償データを選択し、固有情報を生成する。なお、以下ではアドレス0が温度範囲の最低温度に対応し、アドレス127が温度範囲の最高温度に対応する場合を例に説明する。
【0101】
例1に示すように、発振子の発振周波数の温度特性の2次係数をパラメーターとして変化させ、それ以外のパラメーターを固定した(と仮定した)場合、低温度側アドレスと高温度側アドレスの温度補償データのばらつきが大きくなると想定される。
【0102】
低温度側アドレスとは、アドレス0〜127のうち、低温度側の温度に対応したアドレスである。具体的には、アドレス0、或いはアドレス0付近の複数のアドレス(例えば2〜5個のアドレス)である。高温度側アドレスとは、アドレス0〜127のうち、高温度側の温度に対応したアドレスである。具体的には、アドレス127、或いはアドレス127付近の複数のアドレス(例えば2〜5個のアドレス)である。
【0103】
例2に示すように、発振子の発振周波数の温度特性の頂点温度(極大値をとる温度)をパラメーターとして変化させ、それ以外のパラメーターを固定した(と仮定した)場合、低温度側アドレスと高温度側アドレスの温度補償データのばらつきが大きくなると想定される。
【0104】
例3に示すように、摂氏25度(いわゆる室温)での発振子の発振周波数をパラメーターとして変化させ、それ以外のパラメーターを固定した(と仮定した)場合、中温度アドレスの温度補償データのばらつきが大きくなると想定される。
【0105】
中温度アドレスとは、アドレス0〜127のうち、低温度側アドレスと高温度側アドレスの間のアドレスである。具体的には、アドレス63、或いはアドレス63付近の複数のアドレス(例えば2〜5個のアドレス)である。
【0106】
例4に示すように、発振子の発振周波数を調整する調整回路の容量値の緩急特性をパラメーターとして変化させ、それ以外のパラメーターを固定した(と仮定した)場合、低温度側アドレスと高温度側アドレスの温度補償データのばらつきが大きくなると想定される。緩急特性とは、調整回路の容量値に対する発振周波数の特性であり、その特性の傾きは容量値変化に対する発振周波数変化(感度)を表す。
【0107】
例5に示すように、温度検出信号をA/D変換するA/D変換回路のA/D変換精度をパラメーターとして変化させ、それ以外のパラメーターを固定した(と仮定した)場合、低温度側アドレスと高温度側アドレスの温度補償データのばらつきが大きくなると想定される。
【0108】
例6に示すように、調整回路のキャパシターC1〜Cmの容量値ばらつきをパラメーターとして変化させ、それ以外のパラメーターを固定した(と仮定した)場合、低温度側アドレスと高温度側アドレスの温度補償データのばらつきが大きくなると想定される。
【0109】
以上の例1〜例6から、本実施形態では低温度側アドレス、高温度側アドレス、その間のアドレス(中温度アドレス)の温度補償データを固有情報として用いる。例えば、低温度側アドレス、高温度側アドレス、その間のアドレスのうち1つ、或いは望ましくは2つ以上を用いる。複数の温度領域から温度補償データを選択した方が、固有情報のユニーク性が高くなる(重複率が下がる)と期待できる。また、選択するアドレスの個数が多いほど固有情報のユニーク性が高くなると期待できる。
【0110】
4.回路装置の詳細な構成例
図11は、本実施形態の回路装置100の詳細な構成例である。回路装置100は、処理部10(処理回路)、メモリー21、不揮発性メモリー40(記憶部)、計時部30(計時回路)、温度センサー5を含む。また回路装置100は、電源制御部50(電源制御回路)、インターフェース部60(インターフェース回路)、割り込み制御部70(割り込み制御回路)、発振回路80、クロック信号出力制御部90(クロック信号出力回路)、端子TVBAT、TVOUT、TVDD、TEVIN、TSCL、TSDA、TIRQ、TFOUT、XI、XOを含む。なお、
図1等で説明した構成要素と同一の構成要素については同一の符号を付し、適宜説明を省略する。ここで、回路装置は
図11の構成に限定されず、その構成要素の一部を省略したり、他の構成要素を追加したりする等の種々の変形実施が可能である。
【0111】
端子TVBATには、バックアップ電源から供給されるバックアップ電源電圧VBATが入力される。端子TVDDには、主電源から供給される主電源電圧VDDが入力される。電源制御部50は、主電源電圧VDD又はバックアップ電源電圧VBATを選択し、その選択した電圧を電圧VOUT(回路装置100の内部電源電圧)として回路装置100の各部に供給する。具体的には、主電源電圧VDDが所与の電圧を超えている場合には主電源電圧VDDを選択し、主電源電圧VDDが所与の電圧を下回った場合にはバックアップ電源電圧VBATを選択する。例えば電源制御部50は、主電源電圧VDDと所与の電圧を比較するコンパレーターと、コンパレーターの出力に基づいてオン及びオフが制御されるアナログスイッチ回路とで構成される。
【0112】
処理部10は、回路装置100の各部を制御する制御部11と、イベント制御処理を行うイベント制御部12と、を含む。
【0113】
具体的には、イベント制御部12には、イベント(外部イベント)が発生したか否かを示す信号EVINが、回路装置100の外部から端子TEVINを介して入力される。イベント制御部12は、信号EVINが非アクティブからアクティブに変化した場合に、そのことを制御部11に通知する。制御部11は、その通知を受けた場合に、そのイベントのタイムスタンプ(計時データ)をメモリー21に書き込む。メモリー21は例えばSRAM等のRAMである。
【0114】
乱数データ出力部13は、固有情報に組み合わせるための乱数データを出力する。制御部11は、固有情報と乱数データを組み合わせて認証情報を生成し、暗号処理部14へ出力する。暗号処理部14は、認証情報を暗号化し、インターフェース部60へ出力する。
【0115】
発振回路80は、端子XIを介して発振子XTALの一端と接続され、端子XOを介して発振子XTALの他端と接続されており、発振子XTALを駆動して発振させる。発振回路80は、例えば
図7で説明した構成であるが、これに限定されない。例えば、温度補償を行わない場合には可変容量回路82が省略されてもよい。
【0116】
発振子XTALは、例えば水晶振動子等の圧電振動子である。或いは発振子XTALは共振器(電気機械的な共振子又は電気的な共振回路)であってもよい。発振子XTALとしては、圧電振動子、SAW(Surface Acoustic Wave)共振子、MEMS(Micro Electro Mechanical Systems)振動子等を採用できる。発振子XTALの基板材料としては、水晶、タンタル酸リチウム、ニオブ酸リチウム等の圧電単結晶や、ジルコン酸チタン酸鉛等の圧電セラミックス等の圧電材料、又はシリコン半導体材料等を用いることができる。発振子XTALの励振手段としては、圧電効果によるものを用いてもよいし、クーロン力による静電駆動を用いてもよい。
【0117】
計時部30は、発振回路80が生成した発振信号を分周して所定周波数(例えば1kHz)のクロック信号を生成する分周器31と、分周器31が生成したクロック信号を更に分周して1Hzのクロック信号を生成する分周器32と、その1Hzのクロック信号をカウントして計時データを生成する計時データ生成部33と、を含む。
【0118】
例えば、計時データ生成部33は、1Hzのクロック信号をカウントするカウンターと、そのカウンターのカウント値を計時データ(年、月、日、時、分、秒のデータ)に換算する換算部と、を含む。回路装置100(リアルタイムクロック装置)の最初の電源投入時に計時データの初期値がインターフェース部60を介して書き込まれ、その初期値から開始して1秒毎に計時データが更新されていく。
【0119】
クロック信号出力制御部90は、発振信号に基づく複数のクロック信号(各クロック信号は周波数が異なる)のいずれかを選択し、その選択したクロック信号をクロック信号FOUTとして端子TFOUTから回路装置100の外部へ出力する。また、クロック信号出力制御部90は、クロック信号FOUTを非アクティブ(非出力、停止)に設定することも可能である。
【0120】
インターフェース部60は、外部デバイスと回路装置100の間のデジタルインターフェース通信を行う。例えば、インターフェース部60は、I2C方式やSPI方式等のシリアルインターフェース通信を行う回路である。
図11ではI2C方式を用いる場合を図示しており、インターフェース部60は、端子TSCLから入力されるクロック信号SCLに基づいて端子TSDAを介してシリアルデータ信号SDAを入出力する。
【0121】
割り込み制御部70は、端子TIRQを介して外部デバイスに割り込み信号IRQを出力する制御を行う。例えば、イベント制御部12によりイベントの発生が検出された場合に、割り込み制御部70は割り込み信号IRQをアクティブにする。
【0122】
なお、上記の処理部10、計時部30、インターフェース部60、割り込み制御部70、クロック信号出力制御部90は、例えばゲートアレイ等のロジック回路で構成される。
【0123】
5.発振デバイス、物理量測定装置、電子機器、移動体
図12は、本実施形態の回路装置を含む発振デバイスの構成例である。発振デバイス400は、回路装置500と、発振子XTAL(振動子、振動片)と、を含む。また発振デバイス400は、回路装置500、発振子XTALが収容されるパッケージ410を含むことができる。なお発振デバイスは
図12の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0124】
発振デバイス400は例えばリアルタイムクロック装置や、或いはリアルタイムクロック機能を有さない発振器である。発振器は、例えばSPXO(Simple Packaged crystal Oscillator)、TCXO(Temperature Compensated crystal Oscillator)、OCXO(Oven Controlled crystal Oscillator)等である。リアルタイムクロック装置の場合、回路装置500は、例えば
図1、
図11の回路装置100に対応する。発振器の場合、回路装置500は、例えば発振回路80、処理部10、インターフェース部60を含む。また、回路装置500は、例えば温度センサー、A/D変換回路を含むことができる。
【0125】
パッケージ410は、例えばベース部412とリッド部414により構成される。ベース部412は、セラミック等の絶縁材料からなる例えば箱型等の部材であり、リッド部414は、ベース部412に接合される例えば平板状等の部材である。ベース部412の例えば底面には外部機器と接続するための外部接続端子(外部電極)が設けられている。ベース部412とリッド部414により形成される内部空間(キャビティー)に、回路装置500、発振子XTALが収容される。そしてリッド部414により密閉することで、回路装置500、発振子XTALがパッケージ410内に気密に封止される。回路装置500と発振子XTALは、パッケージ410内に実装される。そして発振子XTALの端子と、回路装置500(IC)の端子(パッド)は、パッケージ410の内部配線により電気的に接続される。
【0126】
図13は、本実施形態の回路装置を含む物理量測定装置の構成例である。なお、以下では物理量測定装置が時間デジタル変換器(TDC)である場合を例に説明するが、これに限定されず、物理量測定装置は発振子を用いて物理量を測定する装置(センサー)であればよい。例えば、ジャイロセンサー(振動ジャイロ)であってもよい。
【0127】
図13の物理量測定装置700は、発振子XTAL1、XTAL2、回路装置750を含む。回路装置750は、発振回路710、720、同期化回路730、時間デジタル変換回路740、処理部10、インターフェース部60を含む。なお物理量測定装置は
図13の構成に限定されず、これらの一部の構成要素(例えば同期化回路)を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。
【0128】
発振回路710は、発振子XTAL1を発振させて第1のクロック周波数f1の第1のクロック信号CK1を生成する。発振回路720は、発振子XTAL2を発振させて第2のクロック周波数f2の第2のクロック信号CK2を生成する。同期化回路730は、第1のクロック信号CK1と第2のクロック信号CK2の位相を所定周期毎に同期化する回路であり、例えばPLL回路である。時間デジタル変換回路740は、第1のクロック信号CK1と第2のクロック信号CK2の周波数差に対応する分解能で、第1の信号STA(スタート信号)と第2の信号STP(ストップ信号)の遷移タイミングの時間差をデジタル値DQに変換する。なお、時間デジタル変換回路740が、第1の信号STAを第1のクロック信号DK1に基づいて出力(自発)してもよい。処理部10は、回路装置100の各部の制御を行う。また、処理部10は、デジタル値DQ又は、デジタル値DQに基づいて生成されたデータをインターフェース部60を介して外部デバイスに出力する。また、処理部10は
図1等で説明した認証処理を行う。なお、回路装置750は、温度補償データが記憶される不揮発性メモリーを含んでもよく、処理部10は、その温度補償データに基づいてPUF情報を生成してもよい。例えばPUF情報に基づいて外部デバイスに認証情報を出力してもよい。
【0129】
図14は、本実施形態の回路装置を含む電子機器300の構成例である。この電子機器300は、回路装置500、水晶振動子等の発振子XTAL、アンテナANT、通信部510(通信装置)、処理部520(処理装置)を含む。また操作部530(操作装置)、表示部540(表示装置)、記憶部550(メモリー)を含むことができる。発振子XTALと回路装置500により発振デバイス400が構成される。なお電子機器300は
図14の構成に限定されず、これらの一部の構成要素を省略したり、他の構成要素を追加するなどの種々の変形実施が可能である。例えば、発振デバイス400ではなく物理量測定装置700を含んでもよい。
【0130】
図14の電子機器300としては、例えば、ECU(Electronic Control Unit)又はメーターパネル等の車載の電子装置や、デジタルカメラ又はビデオカメラ等の映像機器や、プリンターやプリンター複合機等の印刷機器を想定できる。或いは、GPS内蔵時計、生体情報測定機器(脈波計、歩数計等)又は頭部装着型表示装置等のウェアラブル機器や、スマートフォン、携帯電話機、携帯型ゲーム装置、ノートPC又はタブレットPC等の携帯情報端末(移動端末)や、コンテンツを配信するコンテンツ提供端末や、或いは基地局又はルーター等のネットワーク関連機器などの種々の機器を想定できる。
【0131】
通信部510(無線回路)は、アンテナANTを介して外部からデータを受信したり、外部にデータを送信する処理を行う。処理部520は、電子機器300の制御処理や、通信部510を介して送受信されるデータの種々のデジタル処理などを行う。この処理部520の機能は、例えばマイクロコンピューターなどのプロセッサーにより実現できる。操作部530は、ユーザーが入力操作を行うためのものであり、操作ボタンやタッチパネルディスプレイをなどにより実現できる。表示部540は、各種の情報を表示するものであり、液晶や有機ELなどのディスプレイにより実現できる。なお操作部530としてタッチパネルディスプレイを用いる場合には、このタッチパネルディスプレイが操作部530及び表示部540の機能を兼ねることになる。記憶部550は、データを記憶するものであり、その機能はRAMやROMなどの半導体メモリーやHDD(ハードディスクドライブ)などにより実現できる。
【0132】
図15は、本実施形態の回路装置を含む移動体の例を示す。本実施形態の回路装置(発振デバイス、物理量測定装置)は、例えば、車、飛行機、バイク、自転車、或いは船舶等の種々の移動体に組み込むことができる。移動体は、例えばエンジンやモーター等の駆動機構、ハンドルや舵等の操舵機構、各種の電子機器(車載機器)を備えて、地上や空や海上を移動する機器・装置である。
図15は移動体の具体例としての自動車600を概略的に示している。自動車600は、携帯無線通信等のモバイル通信を行う通信部610、ブルートゥース(登録商標)通信を通信部620、USB等の有線通信を行う通信部630、それら通信部と内部ネットワークのゲートウェイ処理を行うゲートウェイ装置640、内部ネットワークに接続される制御ユニット(制御装置)ECU1、ECU2を含む。制御ユニットECU1、ECU2は、例えばエンジン制御等の走行に関わるシステムの制御を行う制御ユニットや、ドアの開閉等のボディーに関わるシステムの制御を行う制御ユニットや、カーオーディオ等の情報処理を行う制御ユニット等である。制御ユニットECU1は、処理装置SOC1(外部デバイス)と、処理装置SOC1と通信するリアルタイムクロック装置RTC1を含む。リアルタイムクロック装置RTC1は回路装置501を含む。制御ユニットECU2は、処理装置SOC2(外部デバイス)と、処理装置SOC2と通信するリアルタイムクロック装置RTC2を含む。リアルタイムクロック装置RTC2は回路装置502を含む。回路装置501、502は、例えば
図1、
図11の回路装置100に対応する。なお、制御ユニットECU1、ECU2は、リアルタイムクロック装置以外の発振デバイスを含んでもよいし、或いは物理量測定装置(
図13の回路装置750)を含んでもよい。
【0133】
なお、上記のように本実施形態について詳細に説明したが、本発明の新規事項および効果から実体的に逸脱しない多くの変形が可能であることは当業者には容易に理解できるであろう。従って、このような変形例はすべて本発明の範囲に含まれるものとする。例えば、明細書又は図面において、少なくとも一度、より広義または同義な異なる用語と共に記載された用語は、明細書又は図面のいかなる箇所においても、その異なる用語に置き換えることができる。また本実施形態及び変形例の全ての組み合わせも、本発明の範囲に含まれる。また回路装置、発振デバイス、物理量測定装置、電子機器、移動体の構成・動作等も、本実施形態で説明したものに限定されず、種々の変形実施が可能である。