JP5857726B2 - 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置 - Google Patents

温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置 Download PDF

Info

Publication number
JP5857726B2
JP5857726B2 JP2011279001A JP2011279001A JP5857726B2 JP 5857726 B2 JP5857726 B2 JP 5857726B2 JP 2011279001 A JP2011279001 A JP 2011279001A JP 2011279001 A JP2011279001 A JP 2011279001A JP 5857726 B2 JP5857726 B2 JP 5857726B2
Authority
JP
Japan
Prior art keywords
value
output
encryption
circuit
unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
JP2011279001A
Other languages
English (en)
Other versions
JP2013131868A (ja
Inventor
大 山本
大 山本
隆夫 落合
隆夫 落合
武仲 正彦
正彦 武仲
伊藤 孝一
孝一 伊藤
一男 ▲崎▼山
一男 ▲崎▼山
貢 岩本
貢 岩本
和夫 太田
和夫 太田
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Fujitsu Ltd
Original Assignee
Fujitsu Ltd
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Fujitsu Ltd filed Critical Fujitsu Ltd
Priority to JP2011279001A priority Critical patent/JP5857726B2/ja
Publication of JP2013131868A publication Critical patent/JP2013131868A/ja
Application granted granted Critical
Publication of JP5857726B2 publication Critical patent/JP5857726B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Description

本明細書で議論される実施態様は、温度の検出技術に関する。
近年、プリンタカートリッジや、電池等のバッテリー、ゲーム機のカートリッジといった製品に関して、正規品の製造メーカとは異なる製造メーカによるクローン品が多く見られるようになっている。クローン品とは、正規品の内部構造の分析や正規品の内部に存在するIC(集積回路)チップの解析等の結果を用いて製造された、正規品と同等の機能を有する製品である。これらのクローン品の中には、正規品を製造する正規メーカの知的財産等の権利を侵害するケースも多く、クローン対策技術が強く求められている。
このようなクローン品を防止する手法として、正規品へ認証機能を付与することが行われている。この認証機能を実現する有効な手段のひとつがPUF(Physically Unclonable Function:物理的クローン作製不能機能)である。詳細は後述するが、PUFから生成される秘密情報は、顕微鏡での観察による解析では特定できない。従って、上記に挙げたようなクローン品への対策が必要な製品に対してPUFを組み込んで、PUFで秘密情報を生成することで認証機能を実現することは、クローン品への対策としての有効性が高い。
PUFは、ある同一の入力に対して、PUFが実装された電子デバイス毎に異なる出力を返す関数である。但し、デバイス毎に異なる値を出力するような関数を個別に設定する必要はなく、同一の回路(顕微鏡での解析を行っても、見た目は同一であって、その出力値が特定できない)がこの関数を実現する。つまり、PUFは、デバイス内の信号遅延や素子特性などの物理特性のわずかな違いを利用することで、その出力をデバイス毎に全く異なる値とする。従って、この出力はデバイス固有の値(「個体別情報」と称することとする)となる。
理想的なPUFは、デバイス上に実装するとそのデバイスでは常に同一の個体別情報を出力する(再現性)一方、異なるデバイス上に実装されたPUF間では全く異なる個体別情報を出力する(ユニーク性)。このようなデバイスにおけるPUFの出力情報は、人における、「指紋」のような生体情報に喩えることができる。指紋は、同一人であれば年をとっても不変である(再現性)一方、別人の間では全く異なる(ユニーク性)という、理想的なPUFの出力情報と同様の性質を有している。
また、同一の回路構成のPUFが、このような理想的な再現性とユニーク性と兼ね備えていれば、攻撃者が回路を分解し、内部を解析したところで、クローンチップを生成することはできない。
このPUFは、識別情報(ID)の生成や暗号鍵の生成にも用いられる。従って、PUFを用いて認証機能を実現することが可能である。
多くの電子デバイス製品では、個々に固有のIDを必要とする。従来は、多くの場合において、それぞれのデバイス毎に異なる値をIDとして不揮発性メモリに書き込む作業が製造段階で行われていた。このIDの生成にPUFを用いると、セキュアにIDをICチップ内に格納しておけるだけでなく、この書き込み作業のコストを低減させることもできる。
また、暗号機能を含む製品はPUFを用いると安全性が向上する。具体例として、情報記録用の集積回路をカードに組み組んだスマートカードがある。また、通信の秘匿を保証するために、携帯電話に使用されるSIM(Subscriber Identification Module)カードや無線インターネット接続の端末などにも暗号機能が必須である。これらの機器での暗号化に使用する暗号鍵の生成にPUFを使用するようにすれば、暗号鍵が攻撃者に解析される危険性が大幅に低下し、安全性が向上する。
次に、PUFの基本的な回路構成例を幾つか説明する。
なお、本明細書における以下の説明では、電位の異なる2値の論理レベルにおけるハイ・レベルを値「1」と表現し、ロー・レベルを値「0」と表現することとする。
広く知られているPUFは、大きく分けて、遅延型PUFとメタスタビリティ(metastability )型PUFとの2つに分類することができる。ここでは、メタスタビリティ型PUFについて説明する。
メタスタビリティ型PUFは、デジタル回路の不定状態を利用するPUFである。メタスタビリティ型PUFに分類されるPUFの例として、バタフライ型PUF及びSRAM−PUFが知られている。
まずSRAM−PUFについて説明する。
SRAM(Static Random Access Memory )への電力供給を開始した直後のメモリセルの初期値は、デバイスに依存した複雑な内部状態から決定されるため、ランダムな値となる。SRAM−PUFは、この初期値のばらつきを利用する。SRAM−PUFでは、メモリセル・アドレスがチャレンジに相当し、そのメモリセル・アドレスで特定されるメモリセルの初期値がレスポンスに相当し、後述するバタフライ型PUFのラッチ部分が、SRAM−PUFのメモリセルに相当する。
次にバタフライ型PUFについて説明する。バタフライ型PUFは、RSラッチ回路のメタステーブルを利用してPUFを実現するものである。
まず、メタステーブルについて、図1A及び図1Bを用いて説明する。
図1Aには、RSラッチ回路の構成例が図解されている。このRSラッチ回路は、NAND(否定論理積)回路11及び12を用いて構成されている。
このRSラッチ回路の入力は負論理である。なお、図面においては、負論理の信号を信号名の上にオーバーバーを付すことで表現しているが、本明細書においては、負論理の信号を“#”で表記するものとする。従って、例えば、図1AのRSラッチ回路のセット入力は“#S”と表記し、リセット入力は“#R”と表記する。
NAND回路11の2つの入力には、それぞれ、セット入力“#S”と、NAND回路12の出力とが入力される。また、NAND回路12の2つの入力には、それぞれ、リセット入力“#R”と、NAND回路11の出力とが入力される。また、NAND回路11の出力がRSラッチ回路の出力Qとなる。なお、NAND回路12からは、出力“#Q”が出力される。
図1Bは、この図1AのRSラッチ回路の真理値表である。なお、この真理値表においては、セット入力S及びリセット入力Rを正論理で表記している。
真理値表からも分かるように、図1AのRSラッチ回路は、入力S=0且つ入力R=0のときには、出力値はそのまま保持されるので、Q=Qとなり、“#Q”=“#Q”となる。また、このRSラッチ回路は、入力S=0且つ入力R=1のときには出力値はリセットされて、Q=0となり、“#Q”=1となる。更に、このRSラッチ回路は、入力S=1且つ入力R=0のときには出力値はセットされて、Q=1、“#Q”=0となる。
図1AのRSラッチ回路は、以上の入力の組み合わせのいずれかであれば、出力の論理は安定している。ところが、このRSラッチ回路は、入力S=1且つ入力R=1のときには、Q=“#Q”=1となってしまう。つまり、この場合には、本来は反対の論理を示すはずであるQの論理値と“#Q”の論理値とが、揃って「1」となってしまう。このとき、このRSラッチ回路の出力は、どちらも、中間電位の不安定な状態となっている。このような、デジタル回路としては異常である不安定な状態が、メタステーブル(metastable)と呼ばれている。一般的には、このようなメタステーブルの状態を回避するために、RSラッチ回路に対するS=1且つR=1の入力は禁止される。
次に、このようなRSラッチ回路のメタステーブルを利用するバタフライ型PUFについて説明する。図2は、このバタフライ型PUFの構成例である。
このバタフライ型PUF10は、図1AのRSラッチ回路のセット入力“#S”及びリセット入力“#R”の両方に同一の値Aを入力するように構成したものである。ここで、このバタフライ型PUF10の出力である、RSラッチ回路の出力Q及び出力“#Q”を、それぞれ、B及びCとする。つまり、このバタフライ型PUF10は、RSラッチ回路に対しメタステーブル状態とする入力を与えると共に、このRSラッチ回路の出力端子から出力される信号を、このバタフライ型PUF10の出力とするように構成した回路である。
このバタフライ型PUF10は、入力A=0のときは、出力B及び出力Cはどちらも1となり、この状態で出力の値は安定している。ところが、ここで、値Aを0から1に変化させると、出力Bが1であって出力Cが0である状態と、出力Bが0であって出力Cが1である状態とが生じて、出力が不定となる。これは、RSラッチ回路がメタステーブルの状態に置かれており、その出力が不確定の状態になっているためである。バタフライ型PUF10は、この不確定性を利用したPUFである。
このバタフライ型PUF10の出力は2値(0と1)のどちらかの値をとる。しかしながら、バタフライ型PUF10をデバイスに実装すると、常に0を出力するもの、及び、常に1を出力するものと、出力が0と1とで定まらないもの、すなわち乱数を出力するものとの3つの態様のものが得られ、この出力の態様には再現性がある。そこで、このバタフライ型PUF10をデバイスに複数実装し、その各々から得られる出力を、バタフライ型PUF10を実装したデバイスについての個体別情報として利用することができる。
次に図3について説明する。図3は、背景技術である個体別情報生成装置を図解したものである。
この個体別情報生成装置20は、電子デバイスであるデバイス1に、n個のPUF21を実装して構成されている。なお、図3では、PUF21−1、21−2、21−3、21−4、21−5、及び21−6の各々に、図2に図解したバタフライ型PUF10を描いているが、これに限定されるものではない。PUF21としては、例えば遅延型PUF及びメタスタビリティ型PUFのいずれでもよい。
この個体別情報生成装置20では、n個実装されたPUF21から、どれを選択するかが、前述したチャレンジに相当する。図3は、このチャレンジによって、PUF21−1、21−2、21−3、21−4、21−5、及び21−6が選択された状態を表現している。この6個のPUF21各々の出力RES[5:0]は2値の値(0または1)をとるので、これらの値を並べて6ビットのビット列を形成する。このビット列がレスポンスとなり、デバイス1の個体別情報として利用することができる。なお、この個体別情報生成装置20がとり得る個体別情報のパターン数は、計6個のPUF21を選択するので、2の6乗パターン、すなわち64パターンである。
但し、前述したように、PUF21は乱数を出力する場合がある。図3は、計6個のPUF21のうち、PUF21−3及び21−4が乱数を出力している場合を表現している。このような乱数を出力するPUF21がチャレンジによる選択に含まれてしまうと、デバイス1で不変であるはずのレスポンスが異なる値となることがあり、再現性が失われてしまうため、デバイス1の個体別情報として利用できなくなってしまう。
この点に関し、個体別情報生成装置20に符号誤り訂正回路を備えるという技術が知られている。この技術では、チャレンジによって選択されたPUF21の出力を並べて構成したビット列をこの符号誤り訂正回路に入力し、その出力を個体別情報生成装置20のレスポンスとするように構成する。つまり、PUF21から上述のようにして生成されるビット列に含まれる乱数を符号誤り訂正回路で補正して、デバイス1では、同一のチャレンジに対して常に同一のレスポンスが得られるようにする。この技術では、このようにして、個体別情報生成装置20の出力の再現性を確保している。
この他の背景技術として、電子デバイスの物理特性の違いを利用して乱数を生成する技術が幾つか知られている。そのひとつに、デジタル入力値に対して一義的に決定されないデジタル出力値を得ると共に、このデジタル出力値における「0」と「1」の出現頻度を均等にするという乱数生成の技術がある。
ところで、PUFの使用例のひとつに、前述したように、情報の暗号化に使用する暗号鍵の生成がある。これは、PUFの特徴のひとつである、解析の困難性を活用するものである。ところが、近年、暗号機能に対して、「フォールト攻撃」という手法が問題となっている。次に、このフォールト攻撃について説明する。
セキュリティシステムの基盤技術として、様々な方式の暗号化が利用されている。この暗号化の方式は、公開鍵方式と共通鍵方式に大別される。
公開鍵暗号方式とは、暗号化と復号とで異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式とは、暗号化と復号とで同一の鍵(共通鍵)を用いる方式であり、この共通鍵を送信者及び受信者を除く第三者には公開しない秘密の情報とすることで安全性を保つ方式である。
フォールト攻撃では、このような方式による暗号化機能が実装された装置に対して過電圧、高温、低温等のストレスを与えて装置内部のデータ値に異常(Fault )を発生させる。そして、その際の異常な出力値を利用して、装置内部に格納されている秘密情報(前述した秘密鍵や共通鍵)を入手し、この秘密情報を用いて、秘匿した情報の解読を行う。
このフォールト攻撃は現実の脅威として知られている。例えば、電子商取引で広く用いられているOpenSSLでは、公開鍵暗号方式のひとつであるRSA暗号が用いられている。このOpenSSLをFPGA(Field-Programmable Gate Array )上に実装した環境に対するフォールト攻撃が成功して、RSA暗号の秘密情報を解読したという報告がなされている。
この他の背景技術として、アクティブ回路とスタティック回路とにより構成されている出力回路におけるアクティブ回路の動作によって生じる電源変動が及ぼすスタティック回路の出力への影響を防止するという技術が知られている。
特許第3604674号公報 特開平10−51295号公報
ジェ・ダブリュ・リー(Jae W. Lee)、他5名、「ア・テクニック・トウ・ビルド・ア・シークレット・キー・イン・インテグレーテッド・サーキッツ・ウイズ・アイデンティフィケーション・アンド・オーセンティケーション・アプリケーションズ(A technique to build a secret key in integrated circuits with identification and authentication applications)」、アイ・イー・イー・イー・ブイ・エル・エス・アイ・サーキッツ・シンポジウム(IEEE VLSI Circuits Symposium)、2004年6月 サンディープ・エス・クマール(Sandeep S. Kumar)、他4名、「エクステンド・アブストラクト:ザ・バタフライ・ピー・ユー・エフ・プロテクティング・アイ・ピー・オン・エブリイ・エフ・ピー・ジー・エイ(Extend Abstract: The Butterfly PUF: Protecting IP on every FPGA)」、アイ・イー・イー・イー・インターナショナル・ワークショップ・オン・ハードウェアオリエンテッド・セキュリティ・アンド・トラスト(IEEE International Workshop on Hardware-Oriented Security and Trust - HOST)、2008年 ジー・エドワード・ソ(G. Edward. Suh)、他1名、「フィジカル・アンクローナブル・ファンクションズ・フォー・デバイス・オーセンティケーション・アンド・シークレット・キー・ジェネレーション(Physical Unclonable Functions for Device Authentication and Secret Key Generation)」、デザイン・オートメーション・カンファレンス(Design Automation Conference)、2007年6月 ダイスケ・スズキ(Daisuke Suzuki)、他1名、「ザ・グリッチ・ピー・ユー・エフ:ア・ニュー・ディレイ・ピー・ユー・エフ・アーキテクチュア・エクスプロイティング・グリッチ・シェープス(The Glitch PUF: A New Delay-PUF Architecture Exploiting Glitch Shapes)」、クリプトグラフィック・ハードウェア・アンド・エンベデッド・システムズ・2010(Cryptographic Hardware and Embedded Systems - CHES 2010)、レクチャー・ノーツ・イン・コンピュータ・サイエンス(Lecture Notes in Computer Science - LNCS)、2010年、第6225巻(Volume 6225)、p. 366-382 アンドレア・ペレグリニ(Andrea Pellegrini)、他2名、「フォールト・ベースド・アタック・オブ・アールエスエイ・オーセンティケーション(Fault-Based Attack of RSA Authentication)」、デザイン・オートメーション・アンド・テスト・イン・ユーロップ・2010(Design, Automation and Test in Europe - DATE 2010)、2010年
前述したように、フォールト攻撃は、暗号化処理装置に意図的に異常を発生させることによって、装置内部に格納されている秘密情報を入手する攻撃である。PUFを用いて生成した秘密情報は、解析困難ではあるが、この秘密情報を用いて処理を行っている暗号機能に対してフォールト攻撃が行われた場合には、秘密情報が攻撃者に入手されてしまう可能性がある。そこで、暗号機能へのフォールト攻撃に対する対策が求められている。その対策のひとつに、装置の環境温度を監視して装置への温度ストレスの有無を検出するというものがある。
また、クローン対策としてPUFが使用される製品例として前述したもののうちのひとつである電池は、発火事故を防止する安全上の観点から、温度の監視を行う場合がある。また、電池のクローン品には正規品に対して性能が劣っているものがあり、異常発熱による発火事故も懸念されており、温度監視が法律によって要求されている場合もある。
このように、PUFが使用される場面において、併せて温度監視が求められる場合がある。温度監視に使用される温度センサはPUFとは全く異なるデバイスであるため、従来は、PUFと温度センサとは個別に実装されていた。特に、PUFは、一般的にはデジタル回路で構成されるのに対し、温度センサは一般的にはアナログ回路で構成されていた。アナログ回路はプロセスの微細化による小型化の恩恵を受けにくいと言われているため、デジタル回路であるPUFがプロセスの微細化に伴って小型化されても温度センサはそれほど小型化されず、全体としての実装コストの低下は抑制されてしまう。
上述した問題に鑑み、本明細書で後述する温度センサは、デジタル回路を用いて周囲温度の検知を行えるようにする。
本明細書で後述する温度センサのひとつに、メタスタビリティ型PUF回路、頻度検出部、記憶部、及び温度判定部を備えるというものがある。ここで、頻度検出部は、メタスタビリティ型PUF回路が所定値を出力する頻度を検出する。記憶部には、周囲温度を示す値とメタスタビリティ型PUF回路が所定値を出力する頻度との関係を表したデータが予め記憶されている。そして、温度判定部は、頻度検出部により検出された頻度と記憶部に記憶されているデータとに基づいて、周囲温度を示す値を得る
また、本明細書で後述する暗号化装置のひとつに、上述した温度センサと共に、出力値生成回路、暗号鍵生成部、暗号化処理部、及び暗号化処理制御部を備えるというものがある。ここで、出力値生成回路は、入力値に対して生成される出力値が一義的には定まらずに一定の値若しくは不定の値を出力する回路である。暗号鍵生成部は、出力値生成回路の出力値に基づいて暗号鍵を生成する。暗号化処理部は、暗号鍵生成部により生成された暗号鍵を用いて情報の暗号化処理を行う。そして、暗号化処理制御部は、温度判定部により得られた値が所定範囲外である場合に、暗号化処理部を制御して暗号化処理の実行を禁止する。
また、本明細書で後述する個体別情報生成装置のひとつに、上述した温度センサと共に、出力値生成回路、個体別情報生成部、及び個体別情報出力制御部を備えるというものがある。ここで、出力値生成回路は、入力値に対して生成される出力値が一義的には定まらずに一定の値若しくは不定の値を出力する。個体別情報生成部は、出力値生成回路の出力値に基づいて個体別情報を生成する。そして、個体別情報出力制御部は、温度判定部により得られた値が所定範囲外である場合に、個体別情報生成部により生成される個体別情報の出力を禁止する。
本明細書で後述する温度センサは、周囲温度の検知がデジタル回路で行えるという効果を奏する。
RSラッチ回路の構成例である。 図1AのRSラッチ回路の真理値表である。 バタフライ型PUFの構成例である。 背景技術の個体別情報生成装置である。 暗号化装置の一実施例の機能ブロック図である。 個体別情報生成装置の一実施例の機能ブロック図である。 個体別情報生成装置を備えた暗号化装置の構成例である。 個体別情報生成装置の構成の第一の例である。 ID判定回路の具体的構成例である。 温度判定シーケンサ431による周囲温度の判定の手法を説明する図(その1)である。 温度判定シーケンサ431による周囲温度の判定の手法を説明する図(その2)である。 テンプレート情報の例である。 個体別情報生成装置の構成の第二の例である。 個体別情報生成装置の構成の第三の例である。 暗号化処理システムの一実施例の構成図である。
まず図4について説明する。図4は、暗号化装置の一実施例の機能ブロック図である。
図4において、暗号化装置110は温度センサ100を備えている。この温度センサ100は、メタスタビリティ型PUF回路101、頻度検出部102、記憶部103、及び温度判定部104を備えている。
メタスタビリティ型PUF回路101は、前述したように、デジタル回路の不定状態を利用するPUFであり、より具体的には、例えば、前述したバタフライ型PUFやSRAM−PUFなどである。
頻度検出部102は、メタスタビリティ型PUF回路101が所定値を出力する頻度を検出する。
記憶部103には、周囲温度とメタスタビリティ型PUF回路101が上記の所定値を出力する頻度との関係を表したデータが予め記憶されている。
温度判定部104は、頻度検出部102により検出された頻度と記憶部103に記憶されているデータとに基づいて、周囲温度を判定する。
詳細は後述するが、メタスタビリティ型PUF回路101が、所定値を出力する頻度は、周囲温度に対して単調に変化する。そこで、上述したようにすることで、デジタル回路であるメタスタビリティ型PUFを用いて周囲温度の検知を行うことができるようになる。
暗号化装置110は、以上のように構成されている温度センサ100と共に、出力値生成回路111、暗号鍵生成部112、暗号化処理部113、及び暗号化処理制御部114を備えている。
出力値生成回路111は、入力値に対して生成される出力値が一義的には定まらずに一定の値若しくは不定の値を出力する回路であり、より具体的には、例えば前述した各種のPUFである。
暗号鍵生成部112は、出力値生成回路111の出力値に基づいて暗号鍵を生成する。
暗号化処理部113は、暗号鍵生成部112により生成された暗号鍵を用いて情報の暗号化処理を行う。
暗号化処理制御部114は、温度センサ100の温度判定部104により判定された周囲温度が所定範囲外である場合に、暗号化処理部113を制御して暗号化処理の実行を禁止する。
このような構成を備えている暗号化装置110は、周囲温度を所定範囲外とするような温度ストレスを検知して暗号化処理の実行を禁止することで、温度ストレスによる前述のフォールト攻撃を防護することができる。
なお、温度センサ100のメタスタビリティ型PUF回路101を、出力値生成回路111として共用し、暗号鍵生成部112が、メタスタビリティ型PUF回路101の出力値に基づいて暗号鍵を生成するようにしてもよい。
また、暗号鍵生成部112は、温度判定部104により判定された周囲温度が所定範囲外である場合には、暗号鍵の出力を禁止するようにしてもよい。このようにすることで、フォールト攻撃に対する防護が更に強化される。
また、図4において破線により表したように、暗号化装置110が、更に、通信ネットワークを介して不図示のサーバ装置とデータの授受を行う通信部115を備えるように構成してもよい。なお、このように構成する場合には、温度センサ100の記憶部103は、当該サーバ装置に配置するようにする。このようにして、暗号化装置110を構成する他の構成要素とは物理的に離れている別の場所に記憶部103を配置するように構成することで、顕微鏡等での記憶部103の観察による解析に基づいた暗号解読の可能性を低減することができる。
なお、出力値生成回路111は、記憶部103に記憶されているデータを通信部115が受け取らない場合には、出力値の生成動作を停止させるようにしてもよい。このようにすることで、暗号解読のための攻撃に対する防護が更に強化される。
次に図5について説明する。図5は、個体別情報生成装置の一実施例の機能ブロック図である。
図5において、個体別情報生成装置120は、電子デバイスであるデバイス1に実装されて構成されており、デバイス1についての個体別情報を生成する。
個体別情報生成装置120は温度センサ100を備えている。この温度センサ100は、図4の暗号化装置110が備えているものと同様に構成されており、メタスタビリティ型PUF回路101、頻度検出部102、記憶部103、及び温度判定部104を備えている。
また、個体別情報生成装置120は、温度センサ100と共に、出力値生成回路121、個体別情報生成部122、及び個体別情報生成制御部123を備えている。
出力値生成回路121は、図4の暗号化装置110が備えている出力値生成回路111と同様の、入力値に対して生成される出力値が一義的には定まらずに一定の値若しくは不定の値を出力する回路であり、より具体的には、例えば前述した各種のPUFである。
個体別情報生成部122は、出力値生成回路121の出力値に基づいて個体別情報を生成する。
個体別情報生成制御部123は、温度センサ100の温度判定部104により判定された周囲温度が所定範囲外である場合に、個体別情報生成部122により生成される個体別情報の出力を禁止する。
このような構成を備えている個体別情報生成装置120は、周囲温度を所定範囲外とするような温度ストレスを検知して個体別情報の出力を禁止する。従って、この個体別情報を暗号鍵として用いて情報の暗号化処理を行う暗号化装置が個体別情報生成装置120に設けられていても、この暗号化装置に対する温度ストレスによる前述のフォールト攻撃を防護することができる。
なお、温度センサ100のメタスタビリティ型PUF回路101を、出力値生成回路121として共用し、個体別情報生成部122が、メタスタビリティ型PUF回路101の出力値に基づいて個体別情報を生成するようにしてもよい。
次に、暗号化装置110及び個体別情報生成装置120の具体的な構成について説明する。
まず図6について説明する。図6は、個体別情報生成装置120を備えた暗号化装置110の構成例を図解したものである。
暗号化装置110は、個体別情報生成装置120、CPU210、暗号演算器220、ROM230、RAM240、及び通信インタフェース部250を備えて構成されている。なお、これらの各構成要素はバスライン260にいずれも接続されており、CPU210による管理の下で各種のデータを相互に授受することができるように構成されている。
個体別情報生成装置120は、半導体集積回路であるチップ200に実装されており、このチップ200についての個体別情報を生成する。この個体別情報生成装置120の具体的な構成については後述する。
CPU(Central Processing Unit )210は、暗号化装置110の各構成要素の動作を管理する中央演算部であり、図4における暗号化処理制御部114の機能の提供も行う。
暗号演算器220は、各種の情報の暗号化処理や、暗号化されているデータの復号処理を行うものであり、図4における暗号化処理部113の一例である。なお、本実施形態では、暗号演算器220は、公開鍵コプロセッサ221と共通鍵コプロセッサ222とを備えている。ここで、公開鍵コプロセッサ221は、代表的な公開鍵暗号方式であるRSA暗号や楕円曲線暗号等を用いて暗号化及び復号の処理を行う。また、共通鍵コプロセッサ222は、代表的な共通鍵暗号方式であるAES暗号等を用いて暗号化及び復号の処理を行う。なお、暗号演算器220を暗号化装置110に備える代わりに、暗号演算器220により行われる暗号化及び復号の処理を、CPU210に行わせるように構成してもよい。
ROM(Read Only Memory)230には、CPU210により実行される制御プログラムや、暗号演算器220が暗号化や復号の処理において使用する固有のパラメータが予め格納されている不揮発性半導体メモリである。CPU210は、暗号化装置110への電力供給が開始されたときに、この制御プログラムをROM230から読み出してその実行を開始することで、暗号化装置110の各構成要素の動作管理を行えるようになる。
RAM(Random Access Memory)240は、CPU210や暗号演算器220が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
通信インタフェース部250は、サーバ装置300と通信ネットワーク310を介してデータの授受を行うものであり、図4における通信部115の一例である。つまり、通信インタフェース部250は、前述した温度センサ100の記憶部103がサーバ装置300に配置される場合に使用するものである。従って、記憶部103がチップ200上に配置される場合には、通信インタフェース部250は不要である。
この暗号化装置110において、暗号演算器220は、個体別情報生成装置120が出力値生成回路111の出力値に基づいて生成した個体別情報を暗号鍵として用いて、情報の暗号化処理を行う。なお、この暗号化処理において暗号鍵として用いられた個体別情報は、この暗号化情報に対して行う復号処理にも使用される。
なお、個体別情報生成装置120で生成される個体別情報を暗号鍵の生成に用いる際に、生成された個体別情報のエントロピを更に向上させるための後処理(Post Processing )を行ってもよい。このために行われる後処理の一例として、線形フィードバックシフトレジスタ(LFSR)の使用を挙げることができる。LFSRは、排他的論理和回路で帰還をかけたシフトレジスタによって構成されるカウンタであり、個体別情報のエントロピを向上させることができる。従って、LFSRから出力されるデータ列を用いて暗号鍵の生成を行うようにすることで、よりランダム性の高い暗号鍵を生成することが可能になる。なお、LFSRは、専用のハードウェアを構成して用いるようにしてもよく、また、CPU210を用いてソフトウェアにより実現するようにしてもよい。
次に図7について説明する。図7は、個体別情報生成装置120の構成の第一の例を図解したものであり、前述したメタスタビリティ型PUFの一例であるバタフライ型PUFを用いて個体別情報の生成を行うものである。
図7の個体別情報生成装置120は、バタフライ型PUF部410、オシレータ401、セレクタ402、PUF出力部420、及び温度検出部430を備えている。
バタフライ型PUF部410は、図4における出力値生成回路111及び図5における出力値生成回路121の一例であり、バタフライ型PUFを含むラッチ411を複数個備えている。なお、ここでは、個体別情報生成装置120に与えられたチャレンジによって、128個のラッチ411が選択されたものとする。
オシレータ401は、ラッチ411に与えるクロック信号を生成する。生成されたクロック信号は、ラッチ411内のバタフライ型PUFへの入力信号(図2における入力Aに相当する信号)となる。
セレクタ402は、ID判定回路421からの選択信号に基づいて、チャレンジによって選択された128個のラッチ411の出力からサイクリックに1つずつ出力を選択してPUF出力部420へ入力する。また、セレクタ402は、温度判定シーケンサ431からの選択信号に基づいて、128個のラッチ411の出力から出力を1つ選択してレジスタ433に格納させる。
次にPUF出力部420について説明する。PUF出力部420は、図5における個体別情報生成部122の一例であり、バタフライ型PUF部410の出力値に基づいて個体別情報を生成する。なお、前述したように、図6の暗号化装置110においては、PUF出力部420が生成した個体別情報を暗号鍵として用いるので、このPUF出力部420は、図4における暗号鍵生成部112の一例ともいえる。
PUF出力部420は、ID判定回路421、シフトレジスタ422、及びエントロピ圧縮部423を備えている。
ID判定回路421は、セレクタ402によって選択されたラッチ411の出力に基づいて所定の数値を出力する回路である。図3の個体別情報生成装置20では、符号誤り訂正回路を用いて出力の再現性を確保することを説明したが、本実施例では、このID判定回路421を用いることで、ラッチ411の出力が乱数であっても、個体別情報生成装置120の出力の再現性が確保される。
本実施例では、ID判定回路421に入力されるラッチ411の出力値が一定の値(固定値)「0」である場合には、ID判定回路421は数値「00」を出力するようにする。また、ID判定回路421に入力されるラッチ411の出力値が固定値「1」である場合には、ID判定回路421は数値「11」を出力するようにする。
更に、ID判定回路421に入力されるラッチ411の出力値が「0」と「1」との両方の値をとる不定値である場合(すなわち、ラッチ411の出力値が乱数である場合)には、ID判定回路421は数値「10」若しくは「01」を出力するようにする。但し、ここで、ラッチ411の出力値が「1」である頻度が「0」である頻度よりも高い場合(すなわち、出力値が「1」である頻度が50パーセントよりも高い場合)には、ID判定回路421は数値「10」を出力するようにする。また、ラッチ411の出力値が「1」である頻度が「0」である頻度よりも低い場合(すなわち、出力値が「0」である頻度が50パーセントよりも高い場合)には、ID判定回路421は数値「01」を出力するようにする。
電源電圧及び周囲温度が一定の条件の下では、ラッチ411の出力値が乱数である場合に、そのラッチ411が出力する各値の出力頻度は、個々のラッチ411においてほぼ一定であり、再現性を有している。従って、このようにして、ラッチ411の出力値が「1」である頻度に応じて、ID判定回路421が、数値「10」若しくは「01」を出力するようにすることで、前述したような符号誤り訂正回路による個体別情報の再現性の確保が必須のものではなくなる。
ここで図8について説明する。図8は、ID判定回路421の具体的構成例を図解したものである。
図8のID判定回路421は、セレクタ402によって選択されたラッチ411からの連続する1023ビット分の出力値が全て「0」である場合には「00」を出力し、当該連続する1023ビット分の出力値が全て「1」である場合には「11」を出力する。また、このID判定回路421は、当該1023ビット分の出力値のうち、値が「0」である個数が512個以上である場合(すなわち、出力値の50パーセント以上が「0」の場合)には、「01」を出力する。更に、このID判定回路421は、当該1023ビット分の出力値のうち、値が「1」である個数が512個以上である場合(すなわち、出力値の50パーセント以上が「1」の場合)には、「10」を出力する。
このID判定回路421は、ビット数変換器501、加算器502、レジスタ503、リダクション演算回路504及び506、AND(論理積)回路505及び508、NOT(否定)回路507、及びOR(論理和)回路509を備えて構成されている。
ビット数変換器501は、ラッチ411から出力される1ビットの出力値を10ビットのデータに変換する変換器であり、当該1ビットの出力値を最下位ビットの値とし、当該最下位ビットに上位9ビット分の「0」を付加して得られるデータを出力する。
加算器502は、ビット数変換器501から出力される10ビットのデータを、レジスタ503に格納されている10ビットのデータに加算し、その加算結果を出力する。
レジスタ503は、加算器502から出力される10ビットの加算結果が格納される。従って、ビット数変換器501、加算器502、及びレジスタ503により、セレクタ402によって選択されたラッチ411から出力される出力値が「1」であった個数を計数するカウンタ回路が構成されている。この個数が512個以上1023個以下の場合には、レジスタ503に格納される10ビットのデータのうちの最上位のビットの値が「1」となり、この個数が0個以上511個以下の場合には、当該最上位のビットの値が「0」となる。この最上位のビットの値が、ID判定回路421からの2ビットの出力のうちの上位ビットの出力(ID[1])として導き出されると共に、AND回路505及び508各々への入力の1つとされる。
なお、レジスタ503は、セレクタ402によって選択されたラッチ411から1023ビット分の値の出力を受け取る度に、格納されている全てのビットの値が「0」にリセットされる。また、このリセットの度に、セレクタ402には選択信号が送られて、ラッチ411の出力の選択が次のものに切り替えられる。
リダクション演算回路504及び506は、どちらも、レジスタ503に格納されている10ビットのデータに対するリダクション演算を行う回路である。但し、リダクション演算回路504は、当該10ビットのデータに対して論理積のリダクション演算を行うのに対し、リダクション演算回路506は、当該10ビットのデータに対して論理和のリダクション演算を行う。従って、リダクション演算回路504は、当該10ビットのデータの全ての値が「1」である場合にのみ値「1」を出力し、当該10ビットのデータのうちで少なくとも1ビットの値が「0」である場合には値「0」を出力する。一方、リダクション演算回路506は、当該10ビットのデータのうちで少なくとも1ビットの値が「1」である場合には値「1」を出力し、当該10ビットのデータの全ての値が「0」である場合にのみ値「0」を出力する。
AND回路505には、リダクション演算回路504の出力と、レジスタ503に格納されている10ビットのデータのうちの前述した最上位のビットの値とが入力される。従って、AND回路505は、選択されたラッチ411から出力される出力値が「1」であった個数が1023個の場合にのみ(すなわち、当該出力値が全て「1」であった場合にのみ)値「1」を出力し、その他の場合には値「0」を出力する。
一方、AND回路508には、リダクション演算回路506の出力と、レジスタ503に格納されている10ビットのデータのうちの前述した最上位のビットの値をNOT回路507によって反転した値とが入力される。従って、AND回路508は、選択されたラッチ411から出力される出力値が「1」であった個数が1個以上511個以下の場合には値「1」を出力する。そして、その他の場合、すなわち、選択されたラッチ411から出力される出力値が「1」であった個数が0個、若しくは、512個以上1023個以下の場合には、AND回路508は値「0」を出力する。
OR回路509には、AND回路505及び508各々の出力が入力される。従って、OR回路509は、AND回路505及び508の出力のうちの少なくとも一方の値が「1」のとき、すなわち、選択されたラッチ411の出力値が「1」であった個数が1個以上511個以下の場合若しくは1023個の場合に、値「1」を出力する。一方、この他の場合、すなわち、選択されたラッチ411の出力値が「1」であった個数が0個の場合若しくは512個以上1022個以下の場合に、OR回路509は値「0」を出力する。このOR回路509の出力が、ID判定回路421からの2ビットの出力のうちの下位ビットの出力(ID[0])として導き出される。
以上の動作をまとめると、選択されたラッチ411からの1023ビット分の出力値のうちで値が「1」の個数が0個である場合(すなわち、当該出力値が全て「0」であった場合)には、ID判定回路421の出力は、上位ビット・下位ビット共に「0」となる。また、この1023ビット分の出力値のうちで値が「1」の個数が1023個である場合(すなわち、当該出力値が全て「1」であった場合)には、ID判定回路421の出力は、上位ビット・下位ビット共に「1」となる。更に、この1023ビット分の出力値のうちで値が「1」の個数が1個以上511個以下である場合(すなわち、当該出力値の50パーセント以上が「0」の場合)には、ID判定回路421の出力は、上位ビットが「0」となり、下位ビットが「1」となる。そして、この1023ビット分の出力値のうちで値が「1」の個数が512個以上1022個以下である場合(すなわち、出力値の50パーセント以上が「1」の場合)には、ID判定回路421の出力は、上位ビットが「1」となり、下位ビットが「0」となる。
なお、ID判定回路421を図8の構成例のようなハードウェアのみで構成する代わりに、ID判定回路421の機能を演算処理装置で実現させるプログラム(ソフトウェア)を作成し、当該プログラムを当該演算処理装置で実行させるようにして構成してもよい。
図7の説明に戻る。
シフトレジスタ422には、バタフライ型PUF部410の128個のラッチ411の出力のうちの1つが順にセレクタ402により選択されてID判定回路421に入力されたときにID判定回路421から出力される2ビットの数値が順次格納される。
エントロピ圧縮部423は、シフトレジスタ422に並べられた256(128×2)ビットのビット列に対してエントロピ圧縮を行い、得られた値を、個体別情報(レスポンス)の生成結果として出力する。
シフトレジスタ422に格納された値をそのままレスポンスとして使用すると、128個のラッチ411のセレクタ402による選択順序と、シフトレジスタ422に格納されているビット列の並び順とが1対1対応してしまう。従って、この対応関係を推測されてしまうと、チャレンジ(ラッチ411の選択)に対するレスポンスの値が推測できてしまう可能性がある。エントロピ圧縮部423は、この推測を困難なものとするためのものである。
エントロピ圧縮部423としては、例えば一方向性関数回路を使用する。一方向性関数回路は、入力が一意であれば、出力が一意に定まるが、出力から入力を求めることは非常に困難な関数である。なお、本実施例では、エントロピ圧縮部423として、入力されたビット列に対するハッシュ関数値を得る回路を用いる。より具体的には、この回路として、米国連邦情報処理基準(Federal Information Processing Standard/FIPS)に採用されているハッシュ関数であるSHA−256によるハッシュ関数値を得る回路を用いる。このエントロピ圧縮部423を用いることで、レスポンスからチャレンジを推測することが極めて困難なものとなり、安全性が向上する。
図7の個体別情報生成装置120では、以上のようにして個体別情報が生成される。
次に温度検出部430について説明する。温度検出部430は、温度判定シーケンサ431と、不揮発性メモリ432と、レジスタ433とを備えている。
温度判定シーケンサ431は、レジスタ433に格納されているラッチ411の出力と、不揮発性メモリ432に記憶されているデータとに基づいて、この個体別情報生成装置120が実装されているチップ200の周囲温度を判定する。ここで、この周囲温度の判定結果が所定の温度範囲外である場合には、暗号化処理停止信号を出力する。この暗号化処理停止信号がCPU210により受信されると、CPU210は、暗号演算器220を制御して、暗号演算器220による暗号化処理の実行を禁止する。また、この暗号化処理停止信号はエントロピ圧縮部423にも送られ、エントロピ圧縮部423は、暗号化処理停止信号を受信した場合には、個体別情報の出力を中止する。
不揮発性メモリ432は、後述するテンプレート情報を記憶しておくものである。なお、テンプレート情報の漏出によって個体別情報生成装置120が生成する個体別情報が推定されることの防止のために、不揮発性メモリ432は耐タンパ性を有しているものを用いることが好ましい。
レジスタ433は、ラッチ411から出力されるビット列のうち、温度判定シーケンサ431からの選択信号に基づきセレクタ402によって選択されたものを格納する。
ここで、温度検出部430による周囲温度の判定の手法について、図9A及び図9Bを用いて説明する。
図2のバタフライ型PUF10では、入力Aが0から1へと変化させる立ち上がりのタイミングにおいて、出力B及びCの値を変化させて0若しくは1とする。従って、入力Aとしてクロック信号をバタフライ型PUF10に印加すると、出力B及びCとしてビット列が出力される。従って、クロック信号をバタフライ型PUF10に例えば200万サイクル入力すれば、200万ビットのビット列がバタフライ型PUF10から出力される。
ここで、この200万ビットのビット列を、図9Aに図解するように、1024ビットを1区間とする計2048区間(kukan1,kukan2,…,kukan2048)のビット列に分割する。そして、この区間毎の1024ビットのビット列において、値が1であるビットの個数を計数し、値が1であるビットがビット列に含まれている頻度を各区間について算出する。図9Bは、バタフライ型PUF10が形成されている半導体チップの周囲温度を25℃(室温)とした場合と85℃とした場合とにおける、この算出結果をプロットしたグラフの一例である。
発明者は、十数個の半導体チップ(FPGA:Field-Programmable Gate Array )を使用して上述の実験を行った。この実験の結果、複数個のバタフライ型PUF10を単一の半導体チップに形成した場合であっても、その半導体チップの周囲温度によって、上記の算出結果から得られるグラフの傾向が異なることが判明した。
すなわち、図9Bのグラフを得たバタフライ型PUF10では、周囲温度が上昇すると、出力ビット列中に含まれる1の割合が増加することが分かった。また、その一方で、バタフライ型PUF10には、周囲温度が上昇すると、出力ビット列中に含まれる1の割合が減少するものや、周囲温度の変化に対して出力ビット列中に含まれる1の割合がほとんど変化しないものが存在することも分かった。
そこで、図7の温度判定シーケンサ431は、バタフライ型PUF部410のラッチ411が出力するビット列における所定値「1」の頻度が周囲温度に応じて変化することを利用し、この頻度から周囲温度の推定を行う。より具体的には、温度判定シーケンサ431は、以下に説明するようにして、チップ200の周囲温度を推定する。
まず、チップ200に形成されているバタフライ型PUF部410の各ラッチ411について、チップ200の周囲温度と、値が1であるビットが出力ビット列に含まれている頻度についての前述した区間の平均値(平均頻度)との関係をチップ200毎について求める。次に、求められた関係から、各チップ200について、周囲温度に対する平均頻度の変化が単調増加若しくは単調減少しているラッチ411を選択する。そして、選択されたラッチ411についての上述した関係を表しているテンプレート情報を生成して不揮発性メモリ432に記憶させておく。図10のテーブルは、このテンプレート情報の例であり、異なるチップ200(「チップA」及び「チップB」)についてのものであり、それぞれ選択された2つのラッチ411についての周囲温度と頻度との関係がテーブル形式で示されている。
周囲温度の検出時には、温度判定シーケンサ431は、まず、セレクタ402に選択信号を出力して、不揮発性メモリ432に記憶されている上述のテンプレート情報で上述の関係が表されているラッチ411の出力を選択させる。すると、選択されたラッチ411の出力であるビット列が、セレクタ402を介してレジスタ433に送られる。レジスタ433は、オシレータ401で生成されたクロック信号に同期しているこのビット列を格納する。
なお、本実施例では、レジスタ433に格納するビット列のビット数を、前述した1区間のビット列に相当する1024ビットとするが、このビット数でなくてもよい。
次に、温度判定シーケンサ431は、レジスタ433に格納されているビット列を読み出して、そのビット列において値が1であるビットの個数を計数する。そして、そのビット列のビット数に対する当該個数の割合を、値が1であるビットがビット列に含まれている頻度として算出する。ここで、温度判定シーケンサ431は、不揮発性メモリ432に記憶されている上述のテンプレート情報を参照してこの頻度に対応付けられている周囲温度を読み出し、読み出された周囲温度を、チップ200の周囲温度の判定結果とする。
なお、温度判定シーケンサ431は、頻度の算出を、ラッチ411が出力するビット列の他の区間でも行い、各区間について算出された頻度の平均値に基づいて周囲温度の判定を行うようにしてもよい。また、この場合に、算出された頻度に対応付けられている周囲温度をテンプレート情報から区間毎に求め、得られた周囲温度の下限値から上限値までの範囲を、チップ200の周囲温度の検出結果としてもよい。
次に図11について説明する。図11は、個体別情報生成装置120の構成の第二の例を図解したものであり、前述したメタスタビリティ型PUFの一例であるバタフライ型PUFを用いて個体別情報の生成を行うものである。
図11に図解した第二の例は、図7に示した第一の例とは、不揮発性メモリ432を備えていない点が相違している。ここでは、この相違点に関して説明する。
図11の個体別情報生成装置120では、前述のテンプレート情報が、サーバ装置300の有している不図示の記憶装置に記憶されている。温度判定シーケンサ431は、テンプレート情報を参照する場合には、通信インタフェース部250及び通信ネットワーク310を介してサーバ装置300に問い合わせを行って、テンプレート情報を取得する。
個体別情報生成装置120を図11のように構成することで、テンプレート情報の個体別情報生成装置120からの漏出が防止され、また、不揮発性メモリ432が不要となるので、個体別情報生成装置120の小型化が可能になる。
なお、温度判定シーケンサ431は、サーバ装置300からテンプレート情報を取得することができなかった場合には、例えばオシレータ401の動作を停止させて、バタフライ型PUF部410の各ラッチ411の動作を停止させるようにしてもよい。
次に図12について説明する。図12は、個体別情報生成装置120の構成の第三の例を図解したものであり、前述したメタスタビリティ型PUFの一例であるSRAM−PUFを用いて個体別情報の生成を行うものである。
図12の個体別情報生成装置120は、SRAM−PUF部440、セレクタ402、PUF出力部420、及び温度検出部430を備えている。つまり、この第三の例は、図13に示した第一の例とは、バタフライ型PUF部410と、バタフライ型PUF部410のラッチ411に与えるクロック信号を生成するオシレータ401との代わりに、SRAM−PUF部440を備えている点が相違している。
SRAM−PUF部440は、前述したように、メタスタビリティ型PUFの一例であり、SRAMへの電力供給を開始した直後のメモリセルの初期値のばらつきを利用したPUFである。ここでは、個体別情報生成装置120に与えられたチャレンジによって、SRAM−PUF部440が備えている多数のSRAMメモリセル441のうちから128個が選択されたものとする。
セレクタ402は、チャレンジによって選択された128個のSRAMメモリセル441の出力からサイクリックに1つずつ出力を選択してPUF出力部420へ入力する。また、セレクタ402は、温度判定シーケンサ431からの選択信号に基づいて、SRAMメモリセル441のうちの1つを選択し、その格納内容を読み出させてレジスタ433に格納させる。
PUF出力部420及び温度検出部430は、図7の第一の例が備えているものと同様のものである。
図12の個体別情報生成装置120では、SRAM−PUF部440への電力の供給及び停止が繰り返されることで、電力供給時の初期値がSRAMメモリセル441から順次得られる。ID判定回路421は、セレクタ402によって選択されたSRAMメモリセル441からの連続する1023ビット分の初期値が全て「0」である場合には「00」を出力し、当該連続する1023ビット分の初期値が全て「1」である場合には「11」を出力する。また、このID判定回路421は、当該1023ビット分の初期値のうち、値が「0」である個数が512個以上である場合(すなわち、出力値の50パーセント以上が「0」の場合)には、「01」を出力する。更に、このID判定回路421は、当該1023ビット分の初期値のうち、値が「1」である個数が512個以上である場合(すなわち、出力値の50パーセント以上が「1」の場合)には、「10」を出力する。
シフトレジスタ422には、SRAM−PUF部440の128個のSRAMメモリセル441の出力のうちの1つが順にセレクタ402により選択されてID判定回路421に入力されたときにID判定回路421から出力される2ビットの数値が順次格納される。
エントロピ圧縮部423は、シフトレジスタ422に並べられた256(128×2)ビットのビット列に対してエントロピ圧縮を行い、得られた値を、個体別情報(レスポンス)の生成結果として出力する。
温度判定シーケンサ431は、レジスタ433に格納されているラッチ411の出力と、不揮発性メモリ432に記憶されているデータとに基づいて、この個体別情報生成装置120が実装されているチップ200の周囲温度を判定する。ここで、この周囲温度の判定結果が所定の温度範囲外である場合には、暗号化処理停止信号を出力する。この暗号化処理停止信号がCPU210により受信されると、CPU210は、暗号演算器220を制御して、暗号演算器220による暗号化処理の実行を禁止する。また、この暗号化処理停止信号はエントロピ圧縮部423にも送られ、エントロピ圧縮部423は、暗号化処理停止信号を受信した場合には、個体別情報の出力を中止する。
この温度判定シーケンサ431による周囲温度の判定の手法も、図7の第一の例のものと同様である。
すなわち、SRAMメモリセル441の各々について、チップ200の周囲温度と、値が1であるビットが出力ビット列に含まれている頻度についての前述した区間の平均値(平均頻度)との関係をチップ200毎について求める。次に、求められた関係から、各チップ200について、周囲温度に対する平均頻度の変化が単調増加若しくは単調減少しているSRAMメモリセル441を選択する。そして、選択されたラッチ411についての上述した関係を表しているテンプレート情報を生成して不揮発性メモリ432に記憶させておく。
温度判定シーケンサ431は、周囲温度の検出時には、まず、セレクタ402に選択信号を出力して、不揮発性メモリ432に記憶されている上述のテンプレート情報で上述の関係が表されているSRAMメモリセル441を選択させる。すると、選択されたSRAMメモリセル441の内容が、セレクタ402を介してレジスタ433に送られる。レジスタ433は、SRAM−PUF部440への電力の供給及び停止の繰り返しに同期しているこのビット列を格納する。温度判定シーケンサ431は、レジスタ433に格納されているビット列を読み出して、そのビット列において値が1であるビットの個数を計数する。そして、そのビット列のビット数に対する当該個数の割合を、値が1であるビットがビット列に含まれている頻度として算出する。ここで、温度判定シーケンサ431は、不揮発性メモリ432に記憶されている上述のテンプレート情報を参照してこの頻度に対応付けられている周囲温度を読み出し、読み出された周囲温度を、チップ200の周囲温度の判定結果とする。
なお、図12に図解した個体別情報生成装置120の構成を変形して、図11に図解した第二の例のように構成してもよい。すなわち、前述したテンプレート情報を、サーバ装置300の有している記憶装置に記憶させておくようにしてもよい。このように構成する場合には、温度判定シーケンサ431は、テンプレート情報を参照するときは、第二の例の場合と同様に、通信インタフェース部250及び通信ネットワーク310を介してサーバ装置300に問い合わせを行えばよい。
なお、今までに説明した個体別情報生成装置120の構成の第一の例から第三の例は、いずれも、同じPUFを個体別情報の生成と温度検出とに共用するように構成されている。すなわち、チップ200の周囲温度が所定の温度範囲外であることがPUFを用いて検出された場合には、個体別情報生成装置120は、個体別情報の出力を中止すると共に、暗号化処理の実行停止を指示する信号を出力するようにしていた。ここで、チップ200の周囲温度が所定の温度範囲外であることが検出された場合には、更に、PUFそのものの動作を停止させるようにしてもよい。また、上述の信号を受信したCPU210は、暗号演算器220による暗号化処理の実行を禁止させる制御を行うと共に、以降の個体別情報生成装置120からの出力を全て無効として使用しないようにして、安全性の更なる向上を目指してもよい。
また、上述したように同じPUFを個体別情報の生成と温度検出とに共用する代わりに、個体別情報の生成と温度検出とに別々のPUFを実装するようにしてもよい。すなわち、図13に図解した暗号化処理システム600の構成のように、温度検出装置610と個体別情報生成装置620との各々に専用のPUFを実装するようにしてもよい。
図13の構成では、温度検出装置610が、自らが有しているPUFを用いて周囲温度の検出を行い、周囲温度が所定の温度範囲外であることが検出された場合には、個体別情報生成装置620及び暗号化装置630に停止信号を出力する。個体別情報生成装置620は、自らが有しているPUFを用いて個体別情報の生成を行うが、上述した停止信号を受け取った場合には、個体別情報の生成を中止する。また、暗号化装置630は、個体別情報生成装置620により生成される個体別情報を用いて情報の暗号化処理を行うが、上述した停止信号を受け取った場合には、この暗号化処理の実行を中止する。
このように、個体別情報の生成と温度検出とに別々のPUFを実装することで、各々の機能に適した特性を有しているPUFを使用できるようになるので、各機能の性能が向上する。PUFを用いて行う温度測定では、温度変化に対して敏感なPUFを使用することが好ましい。一方、個体別情報の生成では、周囲温度の変化によらず安定した個体別情報を生成する必要があるため、この生成に使用するPUFは、温度変化に対して影響が少ない方が好ましい。従って、個体別情報の生成用のPUFと、温度測定用のPUFとを兼用せずに専用のものとすることで、2つの機能の各々について性能の向上が期待できる。
なお、以上までに説明した、PUFを用いた温度検出を、電圧の検出に応用することができる。すなわち、周囲温度が一定の環境において、動作させるために印加する電圧と所定値(例えば1)を出力する頻度とが単調に変化する関係を有しているPUFを用いることで、周囲温度が一定の環境での電圧の検出を行うことも可能である。
1 デバイス
10 バタフライ型PUF
11、12 NAND回路
20、120、620 個体別情報生成装置
21、21−1、21−2、21−3、21−4、21−5、21−6 PUF
100 温度センサ
101 メタスタビリティ型PUF回路
102 頻度検出部
103 記憶部
104 温度判定部
110、630 暗号化装置
111、121 出力値生成回路
112 暗号鍵生成部
113 暗号化処理部
114 暗号化処理制御部
115 通信部
122 個体別情報生成部
123 個体別情報生成制御部
200 チップ
210 CPU
220 暗号演算器
221 公開鍵コプロセッサ
222 共通鍵コプロセッサ
230 ROM
240 RAM
250 通信インタフェース部
260 バスライン
300 サーバ装置
310 通信ネットワーク
401 オシレータ
402 セレクタ
410 バタフライ型PUF部
411 ラッチ
420 PUF出力部
421 ID判定回路
422 シフトレジスタ
423 エントロピ圧縮部
430 温度検出部
431 温度判定シーケンサ
432 不揮発性メモリ
433 レジスタ
440 SRAM−PUF部
441 SRAMメモリセル
501 ビット数変換器
502 加算器
503 レジスタ
504、506 リダクション演算回路
505、508 AND回路
507 NOT回路
509 OR回路
600 暗号化処理システム
610 温度検出装置

Claims (10)

  1. メタスタビリティ型PUF回路、
    前記メタスタビリティ型PUF回路が所定値を出力する頻度を検出する頻度検出部、
    周囲温度を示す値と前記メタスタビリティ型PUF回路が前記所定値を出力する頻度との関係を表したデータが予め記憶されている記憶部、及び
    前記頻度検出部により検出された頻度と前記記憶部に記憶されているデータとに基づいて、周囲温度を示す値を得る温度判定部、
    を備える温度センサ。
  2. メタスタビリティ型PUF回路と、
    前記メタスタビリティ型PUF回路が所定値を出力する頻度を検出する頻度検出部と、
    周囲温度を示す値と前記メタスタビリティ型PUF回路が前記所定値を出力する頻度との関係を表したデータが予め記憶されている記憶部と、
    前記頻度検出部により検出された頻度と前記記憶部に記憶されているデータとに基づいて、周囲温度を示す値を得る温度判定部と、
    を備える温度センサ、
    入力値に対して生成される出力値が一義的には定まらずに一定の値若しくは不定の値を出力する出力値生成回路、
    前記出力値生成回路の出力値に基づいて暗号鍵を生成する暗号鍵生成部、
    前記暗号鍵生成部により生成された暗号鍵を用いて情報の暗号化処理を行う暗号化処理部、及び
    前記温度判定部により得られた値が所定範囲外である場合に、前記暗号化処理部を制御して前記暗号化処理の実行を禁止する暗号化処理制御部、
    を備える暗号化装置。
  3. 前記メタスタビリティ型PUF回路が、前記出力値生成回路として共用されている請求項2に記載の暗号化装置。
  4. 前記暗号鍵生成部は、前記温度判定部により得られた値が所定範囲外である場合には、前記暗号鍵の出力を禁止する請求項2又は3に記載の暗号化装置。
  5. 通信ネットワークを介してサーバ装置とデータの授受を行う通信部を更に備え、
    前記記憶部が、前記サーバ装置に配置されている、
    請求項2又は3に記載の暗号化装置。
  6. 前記出力値生成回路は、前記記憶部に記憶されているデータを前記通信部が受け取らない場合には、前記出力値の生成動作を停止する請求項5に記載の暗号化装置。
  7. メタスタビリティ型PUF回路が所定値を出力する頻度を検出し、
    周囲温度を示す値と前記メタスタビリティ型PUF回路が前記所定値を出力する頻度との関係を表したデータが予め記憶されている記憶部に記憶されている該データと、前記検出された頻度とに基づいて、周囲温度を示す値を獲得し、
    入力値に対しての出力値が一義的には定まらずに一定の値若しくは不定の値を出力するデジタル回路の出力値に基づいて暗号鍵を生成し、
    前記暗号鍵を用いて情報の暗号化処理を行い、
    前記周囲温度を示す値獲得により獲得されたが所定範囲内である場合には、前記暗号鍵を用いて情報の暗号化処理を行い、該が該所定範囲外である場合には、該暗号化処理の実行を禁止する、
    暗号化方法。
  8. 前記デジタル回路が、前記頻度の検出がされるメタスタビリティ型PUF回路である請求項7に記載の暗号化方法。
  9. 請求項1に記載の温度センサ、
    入力値に対して生成される出力値が一義的には定まらずに一定の値若しくは不定の値を出力する出力値生成回路、
    前記出力値生成回路の出力値に基づいて個体別情報を生成する個体別情報生成部、及び
    前記温度判定部により得られた値が所定範囲外である場合に、前記個体別情報生成部により生成される個体別情報の出力を禁止する個体別情報出力制御部、
    を備える個体別情報生成装置。
  10. 前記メタスタビリティ型PUF回路が、前記出力値生成回路として共用されている請求項9に記載の個体別情報生成装置。
JP2011279001A 2011-12-20 2011-12-20 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置 Active JP5857726B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2011279001A JP5857726B2 (ja) 2011-12-20 2011-12-20 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2011279001A JP5857726B2 (ja) 2011-12-20 2011-12-20 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置

Publications (2)

Publication Number Publication Date
JP2013131868A JP2013131868A (ja) 2013-07-04
JP5857726B2 true JP5857726B2 (ja) 2016-02-10

Family

ID=48909123

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2011279001A Active JP5857726B2 (ja) 2011-12-20 2011-12-20 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置

Country Status (1)

Country Link
JP (1) JP5857726B2 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875418A (zh) * 2017-05-12 2018-11-23 中芯国际集成电路制造(上海)有限公司 Puf特征值的生成方法和具有puf的器件

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9489504B2 (en) * 2013-10-03 2016-11-08 Qualcomm Incorporated Physically unclonable function pattern matching for device identification
US9224030B2 (en) * 2014-01-10 2015-12-29 Qualcomm Incorporated Sensor identification
CN107038130B (zh) 2016-02-03 2024-05-28 渡边有希子 半导体装置以及半导体晶片的认证方法
JP6393375B2 (ja) 2016-07-15 2018-09-19 渡辺 浩志 電子装置のネットワーク、電子装置及びその検査工程
US10785022B2 (en) 2016-09-13 2020-09-22 Hiroshi Watanabe Network without abuse of a private key
US10581841B2 (en) 2017-02-13 2020-03-03 Zentel Japan Corporation Authenticated network
US10706177B2 (en) 2017-02-13 2020-07-07 Hiroshi Watanabe Apparatus and method for chip identification and preventing malicious manipulation of physical addresses by incorporating a physical network with a logical network
JP6724829B2 (ja) 2017-03-16 2020-07-15 株式会社デンソー 制御装置
US10693636B2 (en) 2017-03-17 2020-06-23 Guigen Xia Authenticated network
US11516028B2 (en) 2019-12-24 2022-11-29 CERA Licensing Limited Temperature sensing physical unclonable function (PUF) authentication system
GB201919297D0 (en) 2019-12-24 2020-02-05 Aronson Bill Temperature sensing physical unclonable function (puf) authenication system

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6246970B1 (en) * 1998-07-10 2001-06-12 Silverbrook Research Pty Ltd Method for making a chip tamper-resistant
EP2081170A1 (en) * 2006-11-06 2009-07-22 Panasonic Corporation Information security apparatus
EP2191410B1 (en) * 2007-08-22 2014-10-08 Intrinsic ID B.V. Identification of devices using physically unclonable functions
US20090276232A1 (en) * 2008-05-02 2009-11-05 Goodnow Kenneth J Warranty monitoring and enforcement for integrated circuit
JP2011526113A (ja) * 2008-06-27 2011-09-29 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ アイテムの真正性、完全性、及び/又は物理的状態を検証するための装置、システム、及び方法
EP2211289A1 (en) * 2009-01-22 2010-07-28 Robert Bosch GmbH Method and control device for protecting a sensor against manipulation
JP5387144B2 (ja) * 2009-06-01 2014-01-15 ソニー株式会社 誤動作発生攻撃検出回路および集積回路
CN102783028B (zh) * 2010-01-15 2016-02-03 三菱电机株式会社 比特列生成装置以及比特列生成方法

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108875418A (zh) * 2017-05-12 2018-11-23 中芯国际集成电路制造(上海)有限公司 Puf特征值的生成方法和具有puf的器件

Also Published As

Publication number Publication date
JP2013131868A (ja) 2013-07-04

Similar Documents

Publication Publication Date Title
JP5857726B2 (ja) 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
JP5333669B2 (ja) 個体別情報生成装置及び個体別情報生成方法
CN111095963B (zh) 用于安全测距的方法和装置
US9911010B2 (en) Secure field-programmable gate array (FPGA) architecture
Armknecht et al. A formalization of the security features of physical functions
JP5831202B2 (ja) 個体別情報生成装置及び個体別情報生成方法
KR101723006B1 (ko) 물리적 복제 방지 기능 기반 키 생성 시스템을 이용하는 디바이스 인증
Becker et al. Active and passive side-channel attacks on delay based PUF designs
KR101252707B1 (ko) 통신 장치에 대한 비허가 액세스를 검출하고 이러한 비허가 액세스에 대한 정보를 보안적으로 통신하기 위한 방법 및 장치
CN109417466B (zh) 机密密钥估算方法与装置
EP1497863A2 (en) Authentication of integrated circuits
Tawalbeh et al. Lightweight crypto and security
Giri et al. Efficient biometric and password based mutual authentication for consumer USB mass storage devices
US11368319B2 (en) Integrated circuit performing authentication using challenge-response protocol and method of using the integrated circuit
WO2003065169A9 (en) Access system utilizing multiple factor identification and authentication
Lounis et al. Lessons learned: Analysis of PUF-based authentication protocols for IoT
JP5870675B2 (ja) 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
Konigsmark et al. System-of-PUFs: Multilevel security for embedded systems
Giri et al. A novel and efficient session spanning biometric and password based three-factor authentication protocol for consumer USB mass storage devices
Gui et al. Security vulnerabilities of smart meters in smart grid
Ulitzsch et al. A post-quantum secure subscription concealed identifier for 6G
US11133930B2 (en) Security credentials
Aysu et al. A design method for remote integrity checking of complex PCBs
Dubrova Energy-efficient cryptographic primitives
KR101373576B1 (ko) Des 암호화 시스템

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20141112

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20141212

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150421

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150428

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20150623

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20151117

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151130

R150 Certificate of patent or registration of utility model

Ref document number: 5857726

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150