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

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

Info

Publication number
JP2013130434A
JP2013130434A JP2011279000A JP2011279000A JP2013130434A JP 2013130434 A JP2013130434 A JP 2013130434A JP 2011279000 A JP2011279000 A JP 2011279000A JP 2011279000 A JP2011279000 A JP 2011279000A JP 2013130434 A JP2013130434 A JP 2013130434A
Authority
JP
Japan
Prior art keywords
output value
output
puf
value
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.)
Granted
Application number
JP2011279000A
Other languages
English (en)
Other versions
JP5870675B2 (ja
Inventor
Masaru Yamamoto
大 山本
Takao Ochiai
隆夫 落合
Masahiko Takenaka
正彦 武仲
Koichi Ito
孝一 伊藤
一男 ▲崎▼山
Kazuo Sakiyama
Mitsugi Iwamoto
貢 岩本
Kazuo Ota
和夫 太田
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
University of Electro Communications NUC
Original Assignee
Fujitsu Ltd
University of Electro Communications NUC
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, University of Electro Communications NUC filed Critical Fujitsu Ltd
Priority to JP2011279000A priority Critical patent/JP5870675B2/ja
Publication of JP2013130434A publication Critical patent/JP2013130434A/ja
Application granted granted Critical
Publication of JP5870675B2 publication Critical patent/JP5870675B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G09EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
    • G09CCIPHERING OR DECIPHERING APPARATUS FOR CRYPTOGRAPHIC OR OTHER PURPOSES INVOLVING THE NEED FOR SECRECY
    • G09C1/00Apparatus or methods whereby a given sequence of signs, e.g. an intelligible text, is transformed into an unintelligible sequence of signs by transposing the signs or groups of signs or by replacing them by others according to a predetermined system
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/32Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials
    • H04L9/3271Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response
    • H04L9/3278Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols including means for verifying the identity or authority of a user of the system or for message authentication, e.g. authorization, entity authentication, data integrity or data verification, non-repudiation, key authentication or verification of credentials using challenge-response using physically unclonable functions [PUF]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L2209/00Additional information or applications relating to cryptographic mechanisms or cryptographic arrangements for secret or secure communication H04L9/00
    • H04L2209/12Details relating to cryptographic hardware or logic circuitry

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)

Abstract

【課題】デジタル回路を用いて周囲温度の検知を行えるようにする。
【解決手段】温度センサ100に、出力値生成回路101と、出力値判定部102と、記憶部103と、温度判定部104とを備える。出力値生成回路101は、入力値に対して生成される出力値が一義的には定まらずに一定の値若しくは不定の値を出力するデジタル回路である。出力値判定部102は、出力値生成回路101の出力値が一定であるか不定であるかを判定する。一方、記憶部103には、周囲温度と出力値生成回路101の出力値に関する情報との関係を表したデータが記憶されている。そして、温度判定部104は、出力値判定部101による判定結果と記憶部103に記憶されているデータとに基づいて、周囲温度を判定する。
【選択図】図10

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つに分類することができる。
図1に図解するように、遅延型PUF1は、nビットのデータ(PUFでは「チャレンジ」と称されている)の入力に対して、1ビットのデータの出力(PUFでは「レスポンス」と称されている)を返すデジタル回路である。従って、遅延型PUF1からmビットのレスポンスを得るためには、例えば、図2に表で表したように、互いに異なるnビットのチャレンジm個を1個の遅延型PUF1に入力すればよい。また、m個の遅延型PUF1の各々から得られる1ビットのレスポンスを並べてmビットのレスポンスを得るようにすることも、もちろん可能である。
この遅延型PUF1に分類されるPUFの例として、アービタ(Arbiter )PUF、グリッチ(Glitch)PUF、及びリングオシレータ(Ring Oscillator )PUFが知られている。以下、これらのPUFについて説明する。
まずアービタPUFについて説明する。アービタPUFは回路遅延を利用してPUFを実現するものである。
図3について説明する。図3は、アービタPUFの構成例を図解したものである。
このアービタPUF10は、計2n個の2入力1出力のセレクタ11−0a、11−0b、11−1a、11−1b、11−2a、11−2b、…、11−(n−1)a、及び11−(n−1)bと、D型フリップフロップ回路12と、を備えて構成されている。
なお、以下の説明では、特に区別する必要がない場合には、セレクタ11−0a、11−0b、11−1a、11−1b、11−2a、11−2b、…、11−(n−1)a、及び11−(n−1)bを総称して「セレクタ11」とする。
セレクタ11−1a及び11−1bは、その第一入力端子にセレクタ11−0aの出力端子が接続されており、その第二入力端子にセレクタ11−0bの出力端子が接続されている。また、セレクタ11−2a及び11−2bは、その第一入力端子にセレクタ11−1aの出力端子が接続されており、その第二入力端子にセレクタ11−1bの出力端子が接続されている。残りのセレクタ11も同様の接続がなされている。
なお、セレクタ11には値Cha[n−1:0]が入力される。この値Cha[n−1:0]は、セレクタ11の2つの入力端子のどちらに入力された信号を出力端子に出力するかの選択指示をセレクタ11に与えるためのものであり、このアービタPUF10に対するnビットのチャレンジの入力である。
図3の構成において、例えば、セレクタ11−1a及び11−1bには、そのどちらにもcha[1]が入力されている。セレクタ11−1aは、cha[1]=1のときには、第一入力端子に入力された信号を出力端子に出力し、cha[1]=0のときには、第二入力端子に入力された信号を出力端子に出力する動作を行うものとする。その一方、セレクタ11−1bは、cha[1]=1のときには、第二入力端子に入力された信号を出力端子に出力し、cha[1]=0のときには、第一入力端子に入力された信号を出力端子に出力する動作を行うものとする。また、他のセレクタ11についても同様の動作を行うものとする。
このアービタPUF10において、D型フリップフロップ回路12は「アービタ」と称される。このD型フリップフロップ回路12は、データ入力端子Dにセレクタ11−(n−1)aの出力端子が接続されており、クロック入力端子CLKにセレクタ11−(n−1)bの出力端子が接続されている。このD型フリップフロップ回路12の出力が、このアービタPUF10の出力Rとなる。なお、D型フリップフロップ回路12は、初期化時にはリセットされて出力は0とされる。
以上のように、このアービタPUF10は、計2n個のセレクタ11がn個ずつ直列に接続されてD型フリップフロップ回路12に接続される対称的な構成を有している。なお、セレクタ11相互間の接続、並びにセレクタ11−(n−1)a及び11−(n−1)bとD型フリップフロップ回路12との間の接続における配線長も、可能な限り、この対称性を保つように等しくしておくことが好ましい。
このアービタPUF10には、前述したチャレンジの入力の他に、D型フリップフロップ回路12のクロック端子に入力するとD型フリップフロップ回路12に状態変化を生じさせるエッジ信号が入力される。なお、本実施形態では、このエッジ信号を、論理レベルが0から1へと変化する立ち上がりエッジ信号とする。
アービタPUF10に入力された立ち上がりエッジ信号は、セレクタ11−0a及び11−0bの第一入力端子及び第二入力端子に入力される。すると、この立ち上がりエッジ信号は、チャレンジcha[n−1:0]の値に応じた経路でセレクタ11を経由して、アービタであるD型フリップフロップ回路12のデータ入力端子D及びクロック入力端子CLKに到着する。
このときのD型フリップフロップ回路12の出力は、データ入力端子Dとクロック入力端子CLKとのどちらに立ち上がりエッジ信号の0から1への変化点が先着したかによって決定し、この出力がアービタPUF10の出力Rとなる。つまり、この変化点がクロック入力端子CLKに先着すればアービタPUF10の出力Rは0となり、この変化点がデータ入力端子CLKに先着すればアービタPUF10の出力Rは1となる。
前述したように、このアービタPUF10は、計2n個のセレクタ11がn個ずつ直列に接続された対称的な構成を有している。また、前述したように、各素子間の配線長はほぼ等しく構成されている。従って、回路論理上は、D型フリップフロップ回路12のデータ入力端子Dとクロック入力端子CLKとへの立ち上がりエッジ信号の到着は同時であり、この両者に到着した立ち上がりエッジ信号は同位相のはずである。ところが、実際には、電子デバイスへの実装条件に起因するゲート遅延や配線遅延により、この両者への立ち上がりエッジ信号の到着が同時とならない場合がある。この到着時刻のずれの程度は、電子デバイス固有のものであるが、デバイス毎では異なるものとなる。つまり、この到着時刻のずれの程度は、前述したPUFの性質である、再現性とユニーク性とを兼ね備えており、アービタPUF10を実装した電子デバイスの個体別情報として利用することができる。
以上のように、図3のアービタPUF10は、D型フリップフロップ回路12に状態変化を生じさせるエッジ信号をそのクロック端子に入力すると共に、このエッジ信号と論理上は同位相としたエッジ信号をそのデータ入力端子に入力するように構成されている。そして、このD型フリップフロップ回路12の出力端子から出力される信号が、アービタPUF10の出力となるように構成されている。
また、前述したように、このアービタPUF10は、チャレンジCha[n−1:0]の値によって、立ち上がりエッジ信号についての、セレクタ11を経由する経路を変更することができる。従って、チャレンジCha[n−1:0]の値を変更すると、異なる出力Rの値が得られる。この出力Rが、チャレンジCha[n−1:0]に対してアービタPUF10が返すレスポンスとなる。
そこで、特定のデバイスに実装したアービタPUF10におけるチャレンジCha[n−1:0]とレスポンスRとの関係を予め調べて記録しておく。このようにすることで、その後に検査対象のデバイスのアービタPUF10のチャレンジCha[n−1:0]とレスポンスRとの関係を調べて上述の記録内容と照合すれば、検査対象のデバイスが特定のデバイスであるか否かの認証を行うことができる。
なお、アービタPUF10への同一のチャレンジに対してレスポンスを複数回生成した場合に、チャレンジの値によっては、D型フリップフロップ回路12への立ち上がりエッジ信号の到着の時間差が極めて小さいことがある。この場合には、2つの入力端子のうち先に到着する方が、時によって変化することもあり得るため、レスポンスの値が0若しくは1の両方をとる(乱数となる)こともある。
次にグリッチPUFについて説明する。
グリッチPUFは,論理回路を構成する各ゲートの入出力信号間の遅延関係によって発生する、「グリッチ」と呼ばれる現象を利用したPUFである。まず、このグリッチについて、図4A及び図4Bを用いて説明する。
図4Aに図解されている論理回路は、XOR(排他的論理和)回路21の出力がAND(論理積)回路の入力の1つに接続されて構成されている。この論理回路では、XOR回路21の2つの入力と、AND回路22の2つの入力のうちXOR回路21が接続されていない方の入力とに、それぞれ入力信号x1、x2、及びx3が入力され、XOR回路21から出力信号yが出力される。
この論理回路において、入力信号x1、x2、及びx3の論理レベルを0から1に変化させてみる。すると、このときの入力信号x1と入力信号x2との間での信号変化の時間差により、まず、XOR回路21の出力として、矩形状のパルス(グリッチ)が発生する。このグリッチが入力信号x3の信号変化よりも後にAND回路22へ到達した場合には、出力信号yとして、グリッチがAND回路22から出力される。一方、XOR回路21から出力されるグリッチが、入力信号x3の信号変化よりも先にAND回路22へ到達した場合には、出力信号yとして、グリッチがAND回路22から出力されることはない。
グリッチPUFは、この論理回路の特性を利用したPUFであり、入力信号x1、x2、及びx3がチャレンジに相当する。この論理回路は、半導体チップ毎に異なるゲート遅延、ゲートのドライブ能力、配線遅延等の要因により、同一の回路構成であっても、同一の入力に対して、その出力波形(過渡状態)に存在するグリッチの個数は異なってくる。そこで、出力されるグリッチの個数が偶数個の場合には、1ビットのレスポンス値として0を出力し、その個数が奇数個の場合には、1をレスポンスとする.
図5は、グリッチPUFの構成例を図解したものである。
このグリッチPUF20は、グリッチ発生回路23とグリッチ形状判定回路24とを備えて構成されている。ここで、グリッチ発生回路23は、例えば、AES暗号で使用されるSボックス(Substitution Box)回路であり、グリッチ形状判定回路24は、例えばトグルFF(Flip Flop)回路を用いる。
AES暗号のSボックス回路は8ビット入力・8ビット出力である.従って、最大で8ビットのレスポンスを同時に生成可能であるが、このうちの1つを選択することで,アービタPUFと同様に、1ビットのレスポンスを生成することができる。
なお、グリッチPUF20への同一のチャレンジに対してレスポンスを複数回生成した場合に、チャレンジの値によっては,グリッチ発生回路23内の信号変化の時間差が極めて小さいことがある。この場合には、2つの信号のうち先に伝搬する方の信号が、時によって変化することもあり得るため、レスポンスの値が0若しくは1の両方をとる(乱数となる)こともある。
次にリングオシレータPUFについて説明する。
リングオシレータPUFとは、インバータ回路を奇数個直列接続した「リングオシレータ」を利用したPUFである。図6は、リングオシレータPUFの構成例である。
リングオシレータPUF30は、n個のリングオシレータ31−1、31−2、…、31−n、2個のマルチプレクサ32−1及び32−2、2個のカウンタ33−1及び33−2、並びに比較器34を備えて構成されている。
リングオシレータ31−1、31−2、…、31−nは、いずれも同一個数のインバータ回路を直列接続して構成されているが、半導体チップ毎に、また同一チップにおいて、ゲート遅延や配線遅延のばらつきが存在するため、各々の発振周波数がわずかに異なる。そこで、リングオシレータ31−1、31−2、…、31−nの各々の出力信号(クロック信号)のうちで任意の2つの出力信号をマルチプレクサ32−1及び32−2により選択して、それぞれカウンタ33−1及び33−2に入力する。このときに、リングオシレータ31−1、31−2、…、31−nのうちのいずれの2つを選択するかを特定する入力、つまり、マルチプレクサ32−1及び32−2への選択指示を行う信号が、チャレンジに相当する。
カウンタ33−1及び33−2の各々に入力されるクロック信号は、周波数がわずかに異なるため、所定時間が経過した後のカウント値の大小関係は、選択された2つのオシレータの周波数の大小関係を表している。そこで、カウンタ33−1及び33−2の各々のカウント値の大小関係を比較器34により求め、この大小関係をビット情報に変換する。このビット情報をレスポンスとしたものがリングオシレータPUF30である。
なお、リングオシレータPUF30において、同一のチャレンジに対して,レスポンスを複数回生成した場合,チャレンジの値によっては、選択された2つのオシレータの周波数が極めて近い場合もある。そのため、時によって、カウンタ値の大小関係が入れ替わることもあり、結果としてレスポンスの値が0若しくは1の両方をとる(乱数となる)こともある。
次に、メタスタビリティ型PUFについて説明する。メタスタビリティ型PUFは、デジタル回路の不定状態を利用するPUFである。メタスタビリティ型PUFに分類されるPUFの例として、SRAM−PUF及びバタフライ型PUFが知られている。以下、これらのPUFについて説明する。
まずSRAM−PUFについて説明する。
SRAM(Static Random Access Memory )への電力供給を開始した直後のメモリセルの初期値は、デバイスに依存した複雑な内部状態から決定されるため、ランダムな値となる。SRAM−PUFは、この初期値のばらつきを利用する。SRAM−PUFでは、メモリセル・アドレスがチャレンジに相当し、そのメモリセル・アドレスで特定されるメモリセルの初期値がレスポンスに相当し、後述するバタフライ型PUFのラッチ部分が、SRAM−PUFのメモリセルに相当する。
次にバタフライ型PUFについて説明する。バタフライ型PUFは、RSラッチ回路のメタステーブルを利用してPUFを実現するものである。
まず、メタステーブルについて、図7A及び図7Bを用いて説明する。
図7Aには、RSラッチ回路の構成例が図解されている。このRSラッチ回路は、NAND(否定論理積)回路41及び42を用いて構成されている。
このRSラッチ回路の入力は負論理である。なお、図面においては、負論理の信号を信号名の上にオーバーバーを付すことで表現しているが、本明細書においては、負論理の信号を“#”で表記するものとする。従って、例えば、図7AのRSラッチ回路のセット入力は“#S”と表記し、リセット入力は“#R”と表記する。
NAND回路41の2つの入力には、それぞれ、セット入力“#S”と、NAND回路42の出力とが入力される。また、NAND回路42の2つの入力には、それぞれ、リセット入力“#R”と、NAND回路41の出力とが入力される。また、NAND回路41の出力がRSラッチ回路の出力Qとなる。なお、NAND回路42の出力からは、出力“#Q”が出力される。
図7Bは、この図7AのRSラッチ回路の真理値表である。なお、この真理値表においては、セット入力S及びリセット入力Rを正論理で表記している。
真理値表からも分かるように、図7Aの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となる。
図7AのRSラッチ回路は、以上の入力の組み合わせのいずれかであれば、出力の論理は安定している。ところが、このRSラッチ回路は、入力S=1且つ入力R=1のときには、Q=“#Q”=1となってしまう。つまり、この場合には、本来は反対の論理を示すはずであるQの論理値と“#Q”の論理値とが、揃って「1」となってしまう。このとき、このRSラッチ回路の出力は、どちらも、中間電位の不安定な状態となっている。このような、デジタル回路としては異常である不安定な状態が、メタステーブル(metastable)と呼ばれている。一般的には、このようなメタステーブルの状態を回避するために、RSラッチ回路に対するS=1且つR=1の入力は禁止される。
次に、このようなRSラッチ回路のメタステーブルを利用するバタフライ型PUFについて説明する。図8は、このバタフライ型PUFの構成例である。
このバタフライ型PUF40は、図7AのRSラッチ回路のセット入力“#S”及びリセット入力“#R”の両方に同一の値Aを入力するように構成したものである。ここで、このバタフライ型PUF40の出力である、RSラッチ回路の出力Q及び出力“#Q”を、それぞれ、B及びCとする。つまり、このバタフライ型PUF40は、RSラッチ回路に対しメタステーブル状態とする入力を与えると共に、このRSラッチ回路の出力端子から出力される信号を、このバタフライ型PUF40の出力とするように構成した回路である。
このバタフライ型PUF40は、入力A=0のときは、出力B及び出力Cはどちらも1となり、この状態で出力の値は安定している。ところが、ここで、値Aを0から1に変化させると、出力Bが1であって出力Cが0である状態と、出力Bが0であって出力Cが1である状態とが生じて、出力が不定となる。これは、RSラッチ回路がメタステーブルの状態に置かれており、その出力が不確定の状態になっているためである。バタフライ型PUF40は、この不確定性を利用したPUFである。
このバタフライ型PUF40の出力は2値(0と1)のどちらかの値をとる。しかしながら、バタフライ型PUF40をデバイスに実装すると、常に0を出力するもの、及び、常に1を出力するものと、出力が0と1とで定まらないもの、すなわち乱数を出力するものとの3つの態様のものが得られ、この出力の態様には再現性がある。そこで、このバタフライ型PUF40をデバイスに複数実装し、その各々から得られる出力を、バタフライ型PUF40を実装したデバイスについての個体別情報として利用することができる。
次に図9について説明する。図9は、背景技術である個体別情報生成装置を図解したものである。
この個体別情報生成装置50は、電子デバイスであるデバイス60に、n個のPUF51を実装して構成されている。なお、図9では、PUF51−1、51−2、51−3、51−4、51−5、及び51−6の各々に、図8に図解したバタフライ型PUF40を描いているが、これに限定されるものではない。PUF51としては、例えば、前述した遅延型PUF及びメタスタビリティ型PUFのいずれでもよい。
この個体別情報生成装置50では、n個実装されたPUF51から、どれを選択するかが、前述したチャレンジに相当する。図9は、このチャレンジによって、PUF51−1、51−2、51−3、51−4、51−5、及び51−6が選択された状態を表現している。この6個のPUF51の各々の出力RES[5:0]は2値の値(0または1)をとるので、これらの値を並べて6ビットのビット列を形成する。このビット列がレスポンスとなり、デバイス60の個体別情報として利用することができる。なお、この個体別情報生成装置50がとり得る個体別情報のパターン数は、計6個のPUF51を選択するので、2の6乗パターン、すなわち64パターンである。
但し、前述したように、PUF51は乱数を出力する場合がある。図9は、計6個のPUF51のうち、PUF51−3及び51−4が乱数を出力している場合を表現している。このような乱数を出力するPUF51がチャレンジによる選択に含まれてしまうと、デバイス60で不変であるはずのレスポンスが異なる値となることがあり、再現性が失われてしまうため、デバイス60の個体別情報として利用できなくなってしまう。
この点に関し、個体別情報生成装置50に符号誤り訂正回路を備えるという技術が知られている。この技術では、チャレンジによって選択されたPUF51の出力を並べて構成したビット列をこの符号誤り訂正回路に入力し、その出力を個体別情報生成装置50のレスポンスとするように構成する。つまり、PUF51から上述のようにして生成されるビット列に含まれる乱数を符号誤り訂正回路で補正して、デバイス60では、同一のチャレンジに対して常に同一のレスポンスが得られるようにする。この技術では、このようにして、個体別情報生成装置50の出力の再現性を確保している。
この他の背景技術として、電子デバイスの物理特性の違いを利用して乱数を生成する技術が幾つか知られている。そのひとつに、デジタル入力値に対して一義的に決定されないデジタル出力値を得ると共に、このデジタル出力値における「0」と「1」の出現頻度を均等にするという乱数生成の技術がある。
ところで、PUFの使用例のひとつに、前述したように、情報の暗号化に使用する暗号鍵の生成がある。これは、PUFの特徴のひとつである、解析の困難性を活用するものである。ところが、近年、暗号機能に対して、「フォールト攻撃」という手法が問題となっている。次に、このフォールト攻撃について説明する。
セキュリティシステムの基盤技術として、様々な方式の暗号化が利用されている。この暗号化の方式は、公開鍵方式と共通鍵方式に大別される。
公開鍵暗号方式とは、暗号化と復号とで異なる鍵を用いる方式であり、暗号化を行うための鍵(公開鍵)を公開する代わりに、暗号文を復号するための鍵(秘密鍵)を受信者のみの秘密情報とすることで安全性を保つ方式である。これに対し、共通鍵暗号方式とは、暗号化と復号とで同一の鍵(共通鍵)を用いる方式であり、この共通鍵を送信者及び受信者を除く第三者には公開しない秘密の情報とすることで安全性を保つ方式である。
フォールト攻撃では、このような方式による暗号化機能が実装された装置に対して過電圧、高温、低温等のストレスを与えて装置内部のデータ値に異常(Fault )を発生させる。そして、その際の異常な出力値を利用して、装置内部に格納されている秘密情報(前述した秘密鍵や共通鍵)を入手し、この秘密情報を用いて、秘匿した情報の解読を行う。
このフォールト攻撃は現実の脅威として知られている。例えば、電子商取引で広く用いられているOpenSSLでは、公開鍵暗号方式のひとつであるRSA暗号が用いられている。このOpenSSLをFPGA(Field-Programmable Gate Array )上に実装した環境に対するフォールト攻撃が成功して、RSA暗号の秘密情報を解読したという報告がなされている。
なお、この他の背景技術として、電子デバイスの物理特性の違いを利用して乱数を生成する技術が幾つか知られている。そのひとつに、デジタル入力値に対して一義的に決定されないデジタル出力値を得ると共に、このデジタル出力値における「0」と「1」の出現頻度を均等にするという乱数生成の技術がある。
また、この他の背景技術として、アクティブ回路とスタティック回路とにより構成されている出力回路におけるアクティブ回路の動作によって生じる電源変動が及ぼすスタティック回路の出力への影響を防止するという技術が知られている。
特許第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を説明する図である。 1個の遅延型PUFでmビットのレスポンスを得る手法を説明する図である。 アービタPUFの構成例である。 グリッチを説明する図(その1)である。 グリッチを説明する図(その2)である。 グリッチPUFの構成例である。 リングオシレータPUFの構成例である。 RSラッチ回路の構成例である。 図7AのRSラッチ回路の真理値表である。 バタフライ型PUFの構成例である。 背景技術の個体別情報生成装置である。 暗号化装置の一実施例の機能ブロック図である。 個体別情報生成装置の一実施例の機能ブロック図である。 個体別情報生成装置を備えた暗号化装置の構成例である。 個体別情報生成装置の構成の第一の例である。 ID判定回路の具体的構成例である。 周囲温度と乱数を出力するPUFの個数との関係を、実験により半導体チップ毎に求めたグラフの例である。 テンプレート情報の第一の例である。 個体別情報生成装置の構成の第二の例である。 個体別情報生成装置の構成の第三の例である。 個体別情報生成装置の構成の第四の例である。 テンプレート情報の第二の例である。 暗号化処理システムの一実施例の構成図である。
まず図10について説明する。図10は、暗号化装置の一実施例の機能ブロック図である。
図10において、暗号化装置110は温度センサ100を備えている。この温度センサ100は、出力値生成回路101、出力値判定部102、記憶部103、及び温度判定部104を備えている。
出力値生成回路101は、入力値に対して生成される出力値が一義的には定まらずに一定の値若しくは不定の値を出力するデジタル回路であり、より具体的には、例えば、前述した各種のPUFである。
出力値判定部102は、出力値生成回路101の出力値が一定であるか不定であるかを判定する。
記憶部103には、周囲温度と出力値生成回路101の出力値に関する情報との関係を表したデータが記憶されている。
温度判定部104は、出力値判定部102による判定結果と記憶部に記憶されているデータとに基づいて、周囲温度を判定する。
この温度センサ100は、出力値生成回路101として、例えば前述したメタスタビリティ型PUFを複数個備えるようにしてもよい。このように構成されている場合には、記憶部103には、周囲温度と、この複数個のメタスタビリティ型PUFのうちで出力値が不定であるものの個数との関係を表したデータが記憶されている。このように構成されている場合には、温度判定部104は、この複数個のメタスタビリティ型PUFのうちで出力値が不定であると出力値判定部102が判定したものの個数と、記憶部103に記憶されているデータとに基づいて、周囲温度を判定する。
詳細は後述するが、乱数を出力する(すなわち、出力値が不定である)PUFの個数は、周囲温度に対して単調に変化する。そこで、上述したようにすることで、デジタル回路であるメタスタビリティ型PUFを用いて周囲温度の検知を行うことができるようになる。
また、この温度センサ100は、出力値生成回路101として、例えば遅延型PUFを備えるようにしてもよい。このように構成されている場合には、記憶部103には、周囲温度とこの遅延型PUFの出力値が一定の値であるか不定の値であるかを表している情報との関係が、当該遅延型PUFへの入力値毎に記憶されている。このように構成されている場合には、温度判定部104は、この遅延型PUFの出力値が不定であると出力値判定部102が判定したときに当該遅延型PUFに入力されていた入力値と、記憶部103に記憶されているデータとに基づいて、周囲温度を判定する。より具体的には、温度判定部104は、例えば次のようにして周囲温度の判定を行う。
すなわち、温度判定部104は、遅延型PUFへの入力として定義されている複数個の入力値に対する、当該遅延型PUFの出力値を不定にすると出力値判定部102により判定された入力値の個数の割合を求める。また、温度判定部104は、記憶部103に記憶されているデータから、当該遅延型PUFへの入力として定義されている複数個の入力値に対する、当該遅延型PUFの出力値を不定とする入力値の個数の割合を、周囲温度毎に算出する。温度判定部104は、記憶部103の記録データから算出された周囲温度毎の割合から、出力値判定部102による判定に基づいて求められた前述の割合に近いものを特定し、特定された割合に対応する周囲温度を、その判定結果とする。このようにすることで、デジタル回路である遅延型PUFを用いて周囲温度の検知を行うことができる。
このように、上記の構成を有する温度センサ100によれば、デジタル回路である出力値生成回路101を用いて周囲温度を検知することができる。
暗号化装置110は、以上のように構成されている温度センサ100と共に、暗号鍵生成部111、暗号化処理部112、及び暗号化処理制御部113を備えている。
暗号鍵生成部111は、出力値生成回路101の出力値に基づいて暗号鍵を生成する。
暗号化処理部112は、暗号鍵生成部111により生成された暗号鍵を用いて情報の暗号化処理を行う。
暗号化処理制御部113は、温度判定部104により判定された周囲温度が所定範囲外である場合に、暗号化処理部112を制御して暗号化処理の実行を禁止する。
このような構成を備えている暗号化装置110は、周囲温度を所定範囲外とするような温度ストレスを検知して暗号化処理の実行を禁止することで、温度ストレスによる前述のフォールト攻撃を防護することができる。
なお、暗号鍵生成部111は、温度判定部104により判定された周囲温度が所定範囲外である場合には、暗号鍵の出力を禁止するようにしてもよい。このようにすることで、フォールト攻撃に対する防護が更に強化される。
また、図10において破線により表したように、暗号化装置110が、更に、通信ネットワークを介して不図示のサーバ装置とデータの授受を行う通信部114を備えるように構成してもよい。なお、このように構成する場合には、温度センサ100の記憶部103は、当該サーバ装置に配置するようにする。このようにして、暗号化装置110を構成する他の構成要素とは物理的に離れている別の場所に記憶部103を配置するように構成することで、顕微鏡等での記憶部103の観察による解析に基づいた暗号解読の可能性を低減することができる。
なお、出力値生成回路101は、記憶部103に記憶されているデータを通信部114が受け取らない場合には、出力値の生成動作を停止させるようにしてもよい。このようにすることで、暗号解読のための攻撃に対する防護が更に強化される。
次に図11について説明する。図11は、個体別情報生成装置の一実施例の機能ブロック図である。
図11において、個体別情報生成装置120は、電子デバイスであるデバイス60に実装されて構成されており、デバイス60についての個体別情報を生成する。
個体別情報生成装置120は温度センサ100を備えている。この温度センサ100は、図10の暗号化装置110が備えているものと同様に構成されており、出力値生成回路101、出力値判定部102、記憶部103、及び温度判定部104を備えている。
また、個体別情報生成装置120は、温度センサ100と共に、個体別情報生成部121及び個体別情報生成制御部122を備えている。
個体別情報生成部121は、出力値生成回路101の出力値に基づいて個体別情報を生成する。
個体別情報生成制御部122は、温度判定部104により判定された周囲温度が所定範囲外である場合に、個体別情報生成部121により生成される個体別情報の出力を禁止する。
このような構成を備えている個体別情報生成装置120は、周囲温度を所定範囲外とするような温度ストレスを検知して個体別情報の出力を禁止する。従って、この個体別情報を暗号鍵として用いて情報の暗号化処理を行う暗号化装置が個体別情報生成装置120に設けられていても、この暗号化装置に対する温度ストレスによる前述のフォールト攻撃を防護することができる。
次に、暗号化装置110及び個体別情報生成装置120の具体的な構成について説明する。
まず図12について説明する。図12は、個体別情報生成装置120を備えた暗号化装置110の構成例を図解したものである。
暗号化装置110は、個体別情報生成装置120、CPU210、暗号演算器220、ROM230、RAM240、及び通信インタフェース部250を備えて構成されている。なお、これらの各構成要素はバスライン260にいずれも接続されており、CPU210による管理の下で各種のデータを相互に授受することができるように構成されている。
個体別情報生成装置120は、半導体集積回路であるチップ200に実装されており、このチップ200についての個体別情報を生成する。この個体別情報生成装置120の具体的な構成については後述する。
CPU(Central Processing Unit )210は、暗号化装置110の各構成要素の動作を管理する中央演算部であり、図10における暗号化処理制御部113の機能の提供も行う。
暗号演算器220は、各種の情報の暗号化処理や、暗号化されているデータの復号処理を行うものであり、図10における暗号化処理部112の一例である。なお、本実施形態では、暗号演算器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を介してデータの授受を行うものであり、図10における通信部114の一例である。つまり、通信インタフェース部250は、前述した温度センサ100の記憶部103がサーバ装置300に配置される場合に使用するものである。従って、記憶部103がチップ200上に配置される場合には、通信インタフェース部250は不要である。
この暗号化装置110において、暗号演算器220は、個体別情報生成装置120が出力値生成回路101の出力値に基づいて生成した個体別情報を暗号鍵として用いて、情報の暗号化処理を行う。なお、この暗号化処理において暗号鍵として用いられた個体別情報は、この暗号化情報に対して行う復号処理にも使用される。
なお、個体別情報生成装置120で生成される個体別情報を暗号鍵の生成に用いる際に、生成された個体別情報のエントロピを更に向上させるための後処理(Post Processing )を行ってもよい。このために行われる後処理の一例として、線形フィードバックシフトレジスタ(LFSR)の使用を挙げることができる。LFSRは、排他的論理和回路で帰還をかけたシフトレジスタによって構成されるカウンタであり、個体別情報のエントロピを向上させることができる。従って、LFSRから出力されるデータ列を用いて暗号鍵の生成を行うようにすることで、よりランダム性の高い暗号鍵を生成することが可能になる。なお、LFSRは、専用のハードウェアを構成して用いるようにしてもよく、また、CPU210を用いてソフトウェアにより実現するようにしてもよい。
次に図13について説明する。図13は、個体別情報生成装置120の構成の第一の例を図解したものであり、前述したメタスタビリティ型PUFの一例であるバタフライ型PUFを用いて個体別情報の生成を行うものである。
図13の個体別情報生成装置120は、バタフライ型PUF部410、オシレータ401、セレクタ402、PUF出力部420、及び温度検出部430を備えている。
バタフライ型PUF部410は、図10及び図11における出力値生成回路101の一例であり、バタフライ型PUFを含むラッチ411を複数個備えている。なお、ここでは、個体別情報生成装置120に与えられたチャレンジによって、128個のラッチ411が選択されたものとする。
オシレータ401は、ラッチ411に与えるクロック信号を生成する。生成されたクロック信号は、ラッチ411内のバタフライ型PUFへの入力信号(図8における入力Aに相当する信号)となる。
セレクタ402は、チャレンジによって選択された128個のラッチ411の出力からサイクリックに1つずつ出力を選択してPUF出力部420へ入力する。
次にPUF出力部420について説明する。PUF出力部420は、図11における個体別情報生成部121の一例であり、バタフライ型PUF部410の出力値に基づいて個体別情報を生成する。なお、前述したように、図12の暗号化装置110においては、PUF出力部420が生成した個体別情報を暗号鍵として用いるので、このPUF出力部420は、図10における暗号鍵生成部111の一例ともいえる。
PUF出力部420は、ID判定回路421、シフトレジスタ422、及びエントロピ圧縮部423を備えている。
ID判定回路421は、セレクタ402によって選択されたラッチ411の出力に基づいて所定の数値を出力する回路である。図9の個体別情報生成装置50では、符号誤り訂正回路を用いて出力の再現性を確保することを説明したが、本実施例では、この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」を出力するようにすることで、前述したような符号誤り訂正回路による個体別情報の再現性の確保が必須のものではなくなる。
ここで図14について説明する。図14は、ID判定回路421の具体的構成例を図解したものである。
図14の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により、出力値生成回路101から出力される出力値が「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を図14の構成例のようなハードウェアのみで構成する代わりに、ID判定回路421の機能を演算処理装置で実現させるプログラム(ソフトウェア)を作成し、当該プログラムを当該演算処理装置で実行させるようにして構成してもよい。
図13の説明に戻る。
シフトレジスタ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を用いることで、レスポンスからチャレンジを推測することが極めて困難なものとなり、安全性が向上する。
図13の個体別情報生成装置120では、以上のようにして個体別情報が生成される。
次に温度検出部430について説明する。温度検出部430は、温度判定シーケンサ431と不揮発性メモリ432とを備えている。
温度判定シーケンサ431は、シフトレジスタ422に格納されている値と、不揮発性メモリ432に記憶されているデータとに基づいて、この個体別情報生成装置120が実装されているチップ200の周囲温度を判定する。ここで、この周囲温度の判定結果が所定の温度範囲外である場合には、暗号化処理停止信号を出力する。この暗号化処理停止信号がCPU210により受信されると、CPU210は、暗号演算器220を制御して、暗号演算器220による暗号化処理の実行を禁止する。また、この暗号化処理停止信号はエントロピ圧縮部423にも送られ、エントロピ圧縮部423は、暗号化処理停止信号を受信した場合には、個体別情報の出力を中止する。
不揮発性メモリ432は、後述するテンプレート情報を記憶しておくものである。なお、テンプレート情報の漏出によって個体別情報生成装置120が生成する個体別情報が推定されることの防止のために、不揮発性メモリ432は耐タンパ性を有しているものを用いることが好ましい。
ここで、温度検出部430による周囲温度の判定の手法について説明する。
まず図15について説明する。図15は、所定数個のPUFを形成した半導体チップについての、周囲温度と乱数を出力するPUFの個数との関係を、実験によりチップ毎に求めたグラフの一例である。なお、ここでは、PUFとして、バタフライ型PUFを使用した。
この図15より、電源電圧を一定とした場合には、乱数を出力するPUFの個数は、周囲温度に対してチップ毎にほぼ一定の傾きで単調に増加することが分かった。つまり、周囲温度が高くなると乱数を出力するPUFの個数が増加し、周囲温度が低くなると乱数を出力するPUFの個数が減少する。また、PUFを実装した半導体チップの個体毎に、グラフの直線の傾き及び切片が異なっていることも図15から分かった。つまり、チップによっては、周囲温度を低くしても多数のPUFが乱数を出力するものや、周囲温度の変化に対して乱数を出力するPUFの個数の変化の少ないものがある。これらは、十数個の実チップ(FPGA)を用いて行った実験により確かめられたものである。
温度判定シーケンサ431は、乱数を出力するPUFの個数が周囲温度に応じて単調増加するという上述の実験結果を利用して、以下に説明するようにして、チップ200の周囲温度を推定する。
まず、図15で図解したような、チップ200の周囲温度と乱数を出力するラッチ411の個数との関係をチップ200毎に予め実測し、この関係を表しているテンプレート情報を生成して不揮発性メモリ432に記憶させておく。図16のテーブルは、このテンプレート情報の第一の例であり、図15のグラフで表した、チップA及びチップBについてのものである。
周囲温度の検出時には、温度判定シーケンサ431は、まず、乱数を出力しているラッチ411の個数の計数を行う。そして、不揮発性メモリ432に記憶されている上述のテンプレート情報を参照してこの計数値に対応付けられている周囲温度を読み出し、読み出された周囲温度を、チップ200の周囲温度の判定結果とする。なお、温度判定シーケンサ431は、シフトレジスタ422に格納されている128個×2ビットの数値列に含まれている数値「10」若しくは「01」の個数を計数することによって、乱数を出力しているラッチ411の個数の計数を行う。
このようにして、PUFを用いて温度の検出を行うようにすることで、オンチップ実装が可能となる。この結果、従来のアナログ温度センサを使用した場合のように、物理的に切断されてフォールト攻撃検知が無効化される危険性が低減するので、安全性が向上する。
次に図17について説明する。図17は、個体別情報生成装置120の構成の第二の例を図解したものであり、前述したメタスタビリティ型PUFの一例であるバタフライ型PUFを用いて個体別情報の生成を行うものである。
図17に図解した第二の例は、図13に示した第一の例とは、不揮発性メモリ432を備えていない点が相違している。ここでは、この相違点に関して説明する。
図17の個体別情報生成装置120では、前述のテンプレート情報が、サーバ装置300の有している不図示の記憶装置に記憶されている。温度判定シーケンサ431は、テンプレート情報を参照する場合には、通信インタフェース部250及び通信ネットワーク310を介してサーバ装置300に問い合わせを行って、テンプレート情報を取得する。
個体別情報生成装置120を図17のように構成することで、テンプレート情報の個体別情報生成装置120からの漏出が防止され、また、不揮発性メモリ432が不要となるので、個体別情報生成装置120の小型化が可能になる。
なお、温度判定シーケンサ431は、サーバ装置300からテンプレート情報を取得することができなかった場合には、例えばオシレータ401の動作を停止させて、バタフライ型PUF部410の各ラッチ411の動作を停止させるようにしてもよい。
次に図18について説明する。図18は、個体別情報生成装置120の構成の第三の例を図解したものであり、前述したメタスタビリティ型PUFの一例であるSRAM−PUFを用いて個体別情報の生成を行うものである。
図18の個体別情報生成装置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へ入力する。
PUF出力部420及び温度検出部430は、図13の第一の例が備えているものと同様のものである。
図18の個体別情報生成装置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は、シフトレジスタ422に格納されている値と、不揮発性メモリ432に記憶されているデータとに基づいて、この個体別情報生成装置120が実装されているチップ200の周囲温度を判定する。ここで、この周囲温度の判定結果が所定の温度範囲外である場合には、暗号化処理停止信号を出力する。この暗号化処理停止信号がCPU210により受信されると、CPU210は、暗号演算器220を制御して、暗号演算器220による暗号化処理の実行を禁止する。また、この暗号化処理停止信号はエントロピ圧縮部423にも送られ、エントロピ圧縮部423は、暗号化処理停止信号を受信した場合には、個体別情報の出力を中止する。
この温度判定シーケンサ431による周囲温度の判定の手法も、図13の第一の例のものと同様である。すなわち、チップ200の周囲温度と乱数を出力するSRAMメモリセル441の個数との関係をチップ200毎に予め実測し、この関係を表しているテンプレート情報を生成して不揮発性メモリ432に記憶させておく。温度判定シーケンサ431は、周囲温度の検出時には、まず、乱数を出力しているSRAMメモリセル441の個数の計数を行う。そして、不揮発性メモリ432に記憶されている上述のテンプレート情報を参照してこの計数値に対応付けられている周囲温度を読み出し、読み出された周囲温度を、チップ200の周囲温度の判定結果とする。
なお、図18に図解した個体別情報生成装置120の構成を変形して、図17に図解した第二の例のように構成してもよい。すなわち、チップ200の周囲温度と乱数を出力するSRAMメモリセル441の個数との関係を表しているテンプレート情報を、サーバ装置300の有している記憶装置に記憶させておくようにしてもよい。このように構成する場合には、温度判定シーケンサ431は、テンプレート情報を参照するときは、第二の例の場合と同様に、通信インタフェース部250及び通信ネットワーク310を介してサーバ装置300に問い合わせを行えばよい。
次に図19について説明する。図19は、個体別情報生成装置120の構成の第四の例を図解したものであり、前述した遅延型PUFを用いて個体別情報の生成を行うものである。
図19の個体別情報生成装置120は、遅延型PUF部450、PUF出力部420、及び温度検出部430を備えている。つまり、この第四の例は、バタフライ型PUF部410、ラッチ411に与えるクロック信号を生成するオシレータ401、及びラッチ411の出力を選択するセレクタ402の代わりに、遅延型PUF部450を備えている点が、図13の第一の例と相違している。
遅延型PUF部450は遅延型PUF451を備えている。遅延型PUF451としては、例えば、前述したアービタPUF、グリッチPUF、及びリングオシレータPUFのいずれでもよい。
PUF出力部420は、図13の第一の例が備えているものと同様のものである。
図19の個体別情報生成装置120では、遅延型PUF451へ与えるチャレンジの内容を予め128通り遅延型PUF部450に用意しておく。遅延型PUF部450は、ID判定回路421から出力される前述した選択信号を受け取る度に、遅延型PUF451に与えられるチャレンジの選択がサイクリックに順次切り替えられる。
また、図19の個体別情報生成装置120では、チャレンジが1つ選択される毎に、そのチャレンジが1023回繰り返して遅延型PUF451に与えられることで、連続する1023ビット分の出力値が遅延型PUF451から出力される。ID判定回路421は、この遅延型PUF451からの連続する1023ビット分の出力値が全て「0」である場合には「00」を出力し、当該連続する1023ビット分の出力値が全て「1」である場合には「11」を出力する。また、このID判定回路421は、当該1023ビット分の出力値のうち、値が「0」である個数が512個以上である場合(すなわち、出力値の50パーセント以上が「0」の場合)には、「01」を出力する。更に、このID判定回路421は、当該1023ビット分の出力値のうち、値が「1」である個数が512個以上である場合(すなわち、出力値の50パーセント以上が「1」の場合)には、「10」を出力する。
シフトレジスタ422には、前述した128通りのチャレンジのうちの1つが1023回繰り返し遅延型PUF451に与えられたときにID判定回路421から出力される2ビットの数値が順次格納される。
エントロピ圧縮部423は、シフトレジスタ422に並べられた256(128×2)ビットのビット列に対してエントロピ圧縮を行い、得られた値を、個体別情報(レスポンス)の生成結果として出力する。
図19における温度検出部430は、温度判定シーケンサ431及び不揮発性メモリ432を備えている点では、図13の第一の例におけるものと同様であるが、温度判定シーケンサ431の動作及び不揮発性メモリ432の記憶内容が異なっている。
温度判定シーケンサ431は、シフトレジスタ422に格納されている値と、不揮発性メモリ432に記憶されているデータとに基づいて、この個体別情報生成装置120が実装されているチップ200の周囲温度を判定する。ここで、この周囲温度の判定結果が所定の温度範囲外である場合には、暗号化処理停止信号を出力する。この暗号化処理停止信号がCPU210により受信されると、CPU210は、暗号演算器220を制御して、暗号演算器220による暗号化処理の実行を禁止する。また、この暗号化処理停止信号はエントロピ圧縮部423にも送られ、エントロピ圧縮部423は、暗号化処理停止信号を受信した場合には、個体別情報の出力を中止する。
次に、図19の温度判定シーケンサ431による周囲温度の判定の手法について説明する。
まず図20について説明する。図20は、テンプレート情報の第二の例を表したものであり、図19の温度検出部430における不揮発性メモリ432に記憶されるものである。
図20のテーブルの各列の項目を説明する。
「チャレンジ番号」は、遅延型PUF部450に用意されている、遅延型PUF451へ与える128通りのチャレンジを識別する番号であり、「入力」は、「チャレンジ番号」で特定されるチャレンジの内容である。
「出力(1回目)」、「出力(2回目)」、…、「出力(1023回目)」は、「チャレンジ番号」で特定されるチャレンジを遅延型PUF451に繰り返し1023回与えたときにおける、遅延型PUF451の各回の出力値の実測結果である。なお、この図20の例では、チップ200の周囲温度を25℃としたときの結果を表している。
「ID(25℃で生成)」は、チップ200の周囲温度を25℃として上述の実測を行ったときのID判定回路421からの2ビットの出力である。
「出力種別(25℃)」は、チップ200の周囲温度を25℃として上述の実測を行ったときにおける遅延型PUF451の出力が一定の値(固定値)であったか不定の値(乱数)であったかを表している。図20の例では、遅延型PUF451の出力が固定値である場合には、この出力種別の値が「0」と記され、遅延型PUF451の出力が乱数である場合には、この出力種別の値が「1」と記されている。なお、この出力種別の値の決定は、ID判定回路421の出力(前述したID)に基づいて行うことができる。すなわち、図20のデータ例では、ID判定回路421の出力が「11」若しくは「00」である場合には、出力種別の値は「0」とされ、ID判定回路421の出力が「10」若しくは「01」である場合には、出力種別の値は「1」とされる。
「出力種別(35℃)」、…、「出力種別(85℃)」も同様であり、周囲温度を35℃、…、85℃として上述の実測を各々行ったときにおける遅延型PUF451の出力が一定の値(固定値)と不定の値(乱数)とのどちらであったかを示す値が記されている。
この図20のテーブルにおいて、テンプレート情報は、右端の「出力種別(25℃)」、「出力種別(35℃)」、…、「出力種別(85℃)」の各項目の値である。不揮発性メモリ432には、テンプレート情報として、予め行われた実測によって得られたチップ200の周囲温度とこれらの各値との関係を、チャレンジ番号毎に記憶させておく。
周囲温度の検出時には、温度判定シーケンサ431は、遅延型PUF部450に用意されている128通りの全てのチャレンジが遅延型PUF451へ与えられたときに、遅延型PUF451から乱数が出力されるチャレンジが何通りあるかを計数する。そして、この計数値を128で除算して、乱数が出力されるチャレンジについての全てのチャレンジに対する割合を算出する。その一方で、温度判定シーケンサ431は、不揮発性メモリ432に記憶されているテンプレート情報を参照して、チップ200の各周囲温度において、遅延型PUF451から乱数が出力されるチャレンジについての全てのチャレンジに対する割合を算出する。そして、この両者の算出結果を比較して、テンプレート情報から算出された割合のうち、周囲温度の検出時における割合に最も近いものを選択し、選択された割合に対応している周囲温度を、チップ200の周囲温度の判定結果とする。
なお、温度判定シーケンサ431は、シフトレジスタ422に格納されている128個×2ビットの数値列に含まれている数値「10」若しくは「01」の個数を計数することによって、遅延型PUF451から乱数が出力されるチャレンジの個数の計数を行う。
なお、図19に図解した個体別情報生成装置120の構成を変形して、図17に図解した第二の例のように構成してもよい。すなわち、遅延型PUF451についてのチャレンジと出力種別とについてのチップ200の周囲温度毎の関係を表しているテンプレート情報を、サーバ装置300の有している記憶装置に記憶させておくようにしてもよい。このように構成する場合には、温度判定シーケンサ431は、テンプレート情報を参照するときは、第二の例の場合と同様に、通信インタフェース部250及び通信ネットワーク310を介してサーバ装置300に問い合わせを行えばよい。
なお、今までに説明した個体別情報生成装置120の構成の第一の例から第四の例は、いずれも、同じPUFを個体別情報の生成と温度検出とに兼用するように構成されている。すなわち、チップ200の周囲温度が所定の温度範囲外であることがPUFを用いて検出された場合には、個体別情報生成装置120は、個体別情報の出力を中止すると共に、暗号化処理の実行停止を指示する信号を出力するようにしていた。ここで、チップ200の周囲温度が所定の温度範囲外であることが検出された場合には、更に、PUFそのものの動作を停止させるようにしてもよい。また、上述の信号を受信したCPU210は、暗号演算器220による暗号化処理の実行を禁止させる制御を行うと共に、以降の個体別情報生成装置120からの出力を全て無効として使用しないようにして、安全性の更なる向上を目指してもよい。
また、上述したように同じPUFを個体別情報の生成と温度検出とに兼用する代わりに、個体別情報の生成と温度検出とに別々のPUFを実装するようにしてもよい。すなわち、図21に図解した暗号化処理システム600の構成のように、温度検出装置610と個体別情報生成装置620との各々に専用のPUFを実装するようにしてもよい。
図21の構成では、温度検出装置610が、自らが有しているPUFを用いて周囲温度の検出を行い、周囲温度が所定の温度範囲外であることが検出された場合には、個体別情報生成装置620及び暗号化装置630に停止信号を出力する。個体別情報生成装置620は、自らが有しているPUFを用いて個体別情報の生成を行うが、上述した停止信号を受け取った場合には、個体別情報の生成を中止する。また、暗号化装置630は、個体別情報生成装置620により生成される個体別情報を用いて情報の暗号化処理を行うが、上述した停止信号を受け取った場合には、この暗号化処理の実行を中止する。
このように、個体別情報の生成と温度検出とに別々のPUFを実装することで、各々の機能に適した特性を有しているPUFを使用できるようになるので、各機能の性能が向上する。PUFを用いて行う温度測定では、温度変化に対して敏感なPUFを使用することが好ましい。一方、個体別情報の生成では、周囲温度の変化によらず安定した個体別情報を生成する必要があるため、この生成に使用するPUFは、温度変化に対して影響が少ない方が好ましい。従って、個体別情報の生成用のPUFと、温度測定用のPUFとを兼用せずに専用のものとすることで、2つの機能の各々について性能の向上が期待できる。
なお、以上までに説明した、PUFを用いた温度検出を、電圧の検出に応用することができる。すなわち、周囲温度が一定の環境では、PUFを動作させるために印加する電圧と、乱数を出力するメタスタビリティPUFの個数(遅延型PUFへのチャレンジ数)とは、ほぼ単調に変化する関係を有している。この関係を利用して、周囲温度が一定の環境での電圧の検出を、PUFを用いて行うことも可能である。
1、1−1、1−N、451 遅延型PUF
10 アービタPUF
11、11−0a、11−0b、11−1a、11−1b、11−2a、11−2b、11−(n−1)a、11−(n−1)b、402 セレクタ
12 D型フリップフロップ回路
20 グリッチPUF
21 XOR回路
22、505、508 AND回路
23 グリッチ発生回路
24 グリッチ形状判定回路
30 リングオシレータPUF
31−1、31−2、31−n リングオシレータ
32−1、32−2 マルチプレクサ
33−1、33−2 カウンタ
34 比較器
40、40−1、40−N バタフライ型PUF
41、42 NAND回路
50、120、620 個体別情報生成装置
51、51−1、51−2、51−3、51−4、51−5、51−6 PUF
60 デバイス
100 温度センサ
101 出力値生成回路
102 出力値判定部
103 記憶部
104 温度判定部
110、630 暗号化装置
111 暗号鍵生成部
112 暗号化処理部
113 暗号化処理制御部
114 通信部
121 個体別情報生成部
122 個体別情報生成制御部
200 チップ
210 CPU
220 暗号演算器
221 公開鍵コプロセッサ
222 共通鍵コプロセッサ
230 ROM
240 RAM
250 通信インタフェース部
260 バスライン
300 サーバ装置
310 通信ネットワーク
401 オシレータ
410 バタフライ型PUF部
411 ラッチ
420 PUF出力部
421 ID判定回路
422 シフトレジスタ
423 エントロピ圧縮部
430 温度検出部
431 温度判定シーケンサ
432 不揮発性メモリ
440 SRAM−PUF部
441 SRAMメモリセル
450 遅延型PUF部
501 ビット数変換器
502 加算器
503 レジスタ
504、506 リダクション演算回路
507 NOT回路
509 OR回路
600 暗号化処理システム
610 温度検出装置

Claims (10)

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

Priority Applications (1)

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

Applications Claiming Priority (1)

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

Publications (2)

Publication Number Publication Date
JP2013130434A true JP2013130434A (ja) 2013-07-04
JP5870675B2 JP5870675B2 (ja) 2016-03-01

Family

ID=48908108

Family Applications (1)

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

Country Status (1)

Country Link
JP (1) JP5870675B2 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3067875A1 (en) * 2015-03-12 2016-09-14 Fujitsu Limited Multi-frequencies puf based electronic circuit, authentication system, and authentication method
JP2017126849A (ja) * 2016-01-13 2017-07-20 Kddi株式会社 識別情報生成装置、識別情報生成方法及び識別情報生成プログラム
CN108709663A (zh) * 2018-05-18 2018-10-26 河海大学常州校区 一种基于全数字物理不可克隆技术的温度传感器
JP2019149792A (ja) * 2017-12-22 2019-09-05 ザ・ボーイング・カンパニーThe Boeing Company 集積回路の感温構成要素のためのオンチップ温度安定化のためのシステム及び方法
WO2022271110A1 (en) * 2021-06-24 2022-12-29 İsti̇nye Üni̇versi̇tesi̇ Sram based block ram puf system and method

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150451A (ja) * 2001-11-14 2003-05-23 Sharp Corp 半導体装置およびicカード
JP2006211343A (ja) * 2005-01-28 2006-08-10 Renesas Technology Corp 認証方式及び認証システム
JP2009151953A (ja) * 2007-12-18 2009-07-09 Mitsumi Electric Co Ltd 電池パック及び電子機器
JP2010170395A (ja) * 2009-01-23 2010-08-05 Sharp Corp 乱数発生装置、および、乱数発生方法
JP2011003107A (ja) * 2009-06-22 2011-01-06 Nec Infrontia Corp 半導体装置、情報不正取得防止方法、情報不正取得防止プログラムおよびプログラム記録媒体
WO2011117929A1 (ja) * 2010-03-26 2011-09-29 富士通株式会社 乱数生成器、暗号化装置、及び認証装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003150451A (ja) * 2001-11-14 2003-05-23 Sharp Corp 半導体装置およびicカード
JP2006211343A (ja) * 2005-01-28 2006-08-10 Renesas Technology Corp 認証方式及び認証システム
US20070192599A1 (en) * 2005-01-28 2007-08-16 Renesas Technology Corp. Authentication method and authentication system
JP2009151953A (ja) * 2007-12-18 2009-07-09 Mitsumi Electric Co Ltd 電池パック及び電子機器
JP2010170395A (ja) * 2009-01-23 2010-08-05 Sharp Corp 乱数発生装置、および、乱数発生方法
JP2011003107A (ja) * 2009-06-22 2011-01-06 Nec Infrontia Corp 半導体装置、情報不正取得防止方法、情報不正取得防止プログラムおよびプログラム記録媒体
WO2011117929A1 (ja) * 2010-03-26 2011-09-29 富士通株式会社 乱数生成器、暗号化装置、及び認証装置

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3067875A1 (en) * 2015-03-12 2016-09-14 Fujitsu Limited Multi-frequencies puf based electronic circuit, authentication system, and authentication method
JP2017126849A (ja) * 2016-01-13 2017-07-20 Kddi株式会社 識別情報生成装置、識別情報生成方法及び識別情報生成プログラム
JP2019149792A (ja) * 2017-12-22 2019-09-05 ザ・ボーイング・カンパニーThe Boeing Company 集積回路の感温構成要素のためのオンチップ温度安定化のためのシステム及び方法
JP7359542B2 (ja) 2017-12-22 2023-10-11 ザ・ボーイング・カンパニー 集積回路の感温構成要素のためのオンチップ温度安定化のためのシステム及び方法
CN108709663A (zh) * 2018-05-18 2018-10-26 河海大学常州校区 一种基于全数字物理不可克隆技术的温度传感器
WO2022271110A1 (en) * 2021-06-24 2022-12-29 İsti̇nye Üni̇versi̇tesi̇ Sram based block ram puf system and method

Also Published As

Publication number Publication date
JP5870675B2 (ja) 2016-03-01

Similar Documents

Publication Publication Date Title
JP5857726B2 (ja) 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
JP5831202B2 (ja) 個体別情報生成装置及び個体別情報生成方法
JP5333669B2 (ja) 個体別情報生成装置及び個体別情報生成方法
Majzoobi et al. Slender PUF protocol: A lightweight, robust, and secure authentication by substring matching
Armknecht et al. A formalization of the security features of physical functions
KR101723006B1 (ko) 물리적 복제 방지 기능 기반 키 생성 시스템을 이용하는 디바이스 인증
Guo et al. Recomputing with permuted operands: A concurrent error detection approach
EP2214117A2 (en) Authentication with physical unclonable functions
CA3011279A1 (en) A privacy-preserving, mutual puf-based authentication protocol
US9015218B2 (en) Random number generator, encryption device, and authentication device
JP5870675B2 (ja) 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
Banik et al. A differential fault attack on Grain-128a using MACs
Gu et al. A theoretical model to link uniqueness and min-entropy for PUF evaluations
Xu et al. Secure remote sensing and communication using digital PUFs
Sami et al. POCA: First power-on chip authentication in untrusted foundry and assembly
JP5831203B2 (ja) 個体別情報生成装置、暗号化装置、認証システム、及び個体別情報生成方法
Nassar et al. CaPUF: Cascaded PUF structure for machine learning resiliency
Aysu et al. A design method for remote integrity checking of complex PCBs
Cao et al. A fully digital physical unclonable function based temperature sensor for secure remote sensing
Tariguliyev et al. Reliability and security of arbiter‐based physical unclonable function circuits
Putra et al. First-Round and Last-Round Power Analysis Attack Against AES Devices
Plusquellic PUF-based authentication
Măluţan et al. Hermes, a proposed lightweight block cipher used for limited resource devices
Chhabra et al. Towards the enhancement of AES IP security using hardware obfuscation technique: A practical approach for secure data transmission in IoT
Yu et al. On designing PUF-based TRNGs with known answer tests

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

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20150929

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20150930

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20151127

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: 20151215

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20151228

R150 Certificate of patent or registration of utility model

Ref document number: 5870675

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150