JP5333669B2 - 個体別情報生成装置及び個体別情報生成方法 - Google Patents

個体別情報生成装置及び個体別情報生成方法 Download PDF

Info

Publication number
JP5333669B2
JP5333669B2 JP2012522401A JP2012522401A JP5333669B2 JP 5333669 B2 JP5333669 B2 JP 5333669B2 JP 2012522401 A JP2012522401 A JP 2012522401A JP 2012522401 A JP2012522401 A JP 2012522401A JP 5333669 B2 JP5333669 B2 JP 5333669B2
Authority
JP
Japan
Prior art keywords
output
individual
random number
specific information
circuit
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.)
Expired - Fee Related
Application number
JP2012522401A
Other languages
English (en)
Other versions
JPWO2012001796A1 (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
Publication of JPWO2012001796A1 publication Critical patent/JPWO2012001796A1/ja
Application granted granted Critical
Publication of JP5333669B2 publication Critical patent/JP5333669B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/582Pseudo-random number generators
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/58Random or pseudo-random number generators
    • G06F7/588Random number generators, i.e. based on natural stochastic processes
    • 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/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0866Generation of secret information including derivation or calculation of cryptographic keys or passwords involving user or device identifiers, e.g. serial number, physical or biometrical information, DNA, hand-signature or measurable physical characteristics
    • 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
    • H04L9/00Cryptographic mechanisms or cryptographic arrangements for secret or secure communications; Network security protocols
    • H04L9/08Key distribution or management, e.g. generation, sharing or updating, of cryptographic keys or passwords
    • H04L9/0861Generation of secret information including derivation or calculation of cryptographic keys or passwords
    • H04L9/0869Generation of secret information including derivation or calculation of cryptographic keys or passwords involving random numbers or seeds

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Signal Processing (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Storage Device Security (AREA)

Description

本明細書で議論される実施態様は、デバイス毎に固有でありデバイス間では互いに異なっている個体別情報を生成する技術に関する。
近年、プリンタカートリッジや、電池等のバッテリー、ゲーム機のカートリッジといった製品に関して、正規品の製造メーカとは異なる製造メーカによるクローン品が多く見られるようになっている。クローン品とは、正規品の内部構造の分析や正規品の内部に存在するICチップの解析等の結果を用いて製造された、正規品と同等の機能を有する製品である。これらのクローン品の中には、正規品を製造する正規メーカの知的財産等の権利を侵害するケースも多く、クローン対策技術が強く求められている。
上記したようなクローン品の防止方法として、正規品へ認証機能を付与することが行われている。この認証機能を実現する有効な手段のひとつがPUF(Physically Unclonable Function:物理的クローン作製不能機能)であり、上記に挙げたような、クローン品への対策が必要な製品に対して、PUF回路が組み込まれる。
PUFは、ある同一の入力に対して、PUFが実装されたデバイス毎に異なる出力を返す関数である。但し、デバイス毎に異なる値を出力するような関数を個別に設定する必要はなく、同一の回路がこの関数を実現する。つまり、PUF回路は、デバイス内の信号遅延や素子特性などの物理特性のわずかな違いを利用することで、その出力をデバイス毎に全く異なる値とする。従って、この出力はデバイス固有の値(「個体別情報」と称することとする)となる。
理想的なPUF回路は、デバイス上に実装するとそのデバイスでは常に同一の個体別情報を出力する(再現性)一方、異なるデバイス上に実装されたPUF間では全く異なる個体別情報を出力する(差異性)。このようなデバイスにおけるPUFの出力情報は、人における、「指紋」のような生体情報に喩えることができる。指紋は、同一人であれば年をとっても不変である(再現性)一方、別人の間では全く異なる(差異性)という、理想的なPUFの出力情報と同様の性質を有している。
また、同一の回路構成のPUF回路が、このような理想的な再現性と差異性と兼ね備えていれば、攻撃者が回路を分解し、内部を解析したところで、クローンチップを生成することはできない。
このPUFは、識別情報(ID)の生成や暗号鍵の生成にも用いられる。
多くの電子デバイス製品では、個々に固有のIDを必要とする。従来は、多くの場合において、それぞれのデバイス毎に異なる値をIDとして書き込む作業が製造段階で行われていた。このIDの生成にPUFを用いると、この書き込み作業のコストを低減させることができる。
また、暗号機能を含む製品はPUFを用いると安全性が向上する。具体例として、情報記録用の集積回路をカードに組み組んだスマートカードがある。また、通信の秘匿を保証するために、携帯電話に使用されるSIM(Subscriber Identification Module)カードや無線インターネット接続の端末などにも暗号機能が必須である。これらの機器での暗号化に使用する暗号鍵の生成に用いる乱数を、PUFを使用して生成するようにすれば、暗号鍵が攻撃者に解析される危険性が大幅に低下し、安全性が向上する。
このPUFの基本的な回路構成例として、ここでは、アービタ(Arbiter )PUFとバタフライ(Butterfly )型PUFとについて、まず説明する。
なお、本明細書における以下の説明では、電位の異なる2値の論理レベルにおけるハイ・レベルを値「1」と表現し、ロー・レベルを値「0」と表現することとする。
まずアービタPUFについて説明する。図1は、アービタ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に与えるためのものである。
図1の構成において、例えば、セレクタ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は、回路遅延を利用してPUFを実現する回路である。
アービタ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を実装した電子デバイスの個体別情報として利用することができる。
以上のように、図1のアービタPUF10は、D型フリップフロップ回路12に状態変化を生じさせるエッジ信号をそのクロック端子に入力すると共に、このエッジ信号と論理上は同位相としたエッジ信号をそのデータ入力端子に入力するように構成されている。そして、このD型フリップフロップ回路12の出力端子から出力される信号が、アービタPUF10の出力となるように構成されている。
また、前述したように、このアービタPUF10は、チャレンジCha[n−1:0]の値によって、立ち上がりエッジ信号についての、セレクタ11を経由する経路を変更することができる。従って、チャレンジCha[n−1:0]の値を変更すると、異なる出力Rの値が得られる。この出力を「レスポンス」と称することとする。
そこで、特定のデバイスに実装したアービタPUF10におけるチャレンジCha[n−1:0]とレスポンスRとの関係を予め調べて記録しておく。このようにすることで、その後に検査対象のデバイスのアービタPUF10のチャレンジCha[n−1:0]とレスポンスRとの関係を調べて上述の記録内容と照合すれば、検査対象のデバイスが特定のデバイスであるか否かの認証を行うことができる。
次にバタフライ型PUFについて説明する。バタフライ型PUFは、RSラッチ回路のメタステーブルを利用してPUFを実現するものである。
まず、メタステーブルについて、図2A及び図2Bを用いて説明する。
図2Aには、RSラッチ回路の回路構成例が図解されている。このRSラッチ回路は、NAND(否定論理積)回路21及び22を用いて構成されている。
このRSラッチ回路の入力は負論理である。なお、図面においては、負論理の信号を信号名の上にオーバーバーを付すことで表現しているが、本明細書においては、負論理の信号を“#”で表記するものとする。従って、例えば、図2AのRSラッチ回路のセット入力は“#S”と表記し、リセット入力は“#R”と表記する。
NAND回路21の2つの入力には、それぞれ、セット入力“#S”と、NAND回路22の出力とが入力される。また、NAND回路22の2つの入力には、それぞれ、リセット入力“#R”と、NAND回路21の出力とが入力される。また、NAND回路21の出力がRSラッチ回路の出力Qとなる。なお、NAND回路22の出力からは、出力“#Q”が出力される。
図2Bは、この図2AのRSラッチ回路の真理値表である。なお、この真理値表においては、セット入力S及びリセット入力Rを正論理で表記している。
真理値表からも分かるように、図2Aの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となる。
図2AのRSラッチ回路は、以上の入力の組み合わせのいずれかであれば、出力の論理は安定している。ところが、このRSラッチ回路は、入力S=1且つ入力R=1のときには、Q=“#Q”=1となってしまう。つまり、この場合には、本来は反対の論理を示すはずであるQの論理値と“#Q”の論理値とが、揃って「1」となってしまう。このとき、このRSラッチ回路の出力は、どちらも、中間電位の不安定な状態となっている。このような、デジタル回路としては異常である不安定な状態が、メタステーブル(metastable)と呼ばれている。一般的には、このようなメタステーブルの状態を回避するために、RSラッチ回路に対するS=1且つR=1の入力は禁止される。
次に、このようなRSラッチ回路のメタステーブルを利用するバタフライ型PUFについて説明する。図3は、このバタフライ型PUFの回路構成例である。
このバタフライ型PUF20は、図2AのRSラッチ回路のセット入力“#S”及びリセット入力“#R”の両方に同一の値Aを入力するように構成したものである。ここで、このバタフライ型PUF20の出力である、RSラッチ回路の出力Q及び出力“#Q”を、それぞれ、B及びCとする。つまり、このバタフライ型PUF20は、RSラッチ回路に対しメタステーブル状態とする入力を与えると共に、このRSラッチ回路の出力端子から出力される信号を、このバタフライ型PUF20の出力とするように構成した回路である。
このバタフライ型PUF20は、入力A=0のときは、出力B及び出力Cはどちらも1となり、この状態で出力の値は安定している。ところが、ここで、値Aを0から1に変化させると、出力Bが1であって出力Cが0である状態と、出力Bが0であって出力Cが1である状態とが生じて、出力が不定となる。これは、RSラッチ回路がメタステーブルの状態に置かれており、その出力が不確定の状態になっているためである。バタフライ型PUF20は、この不確定性を利用したPUFである。
このバタフライ型PUF20の出力は2値(0と1)のどちらかの値をとる。しかしながら、バタフライ型PUF20をデバイスに実装すると、常に0を出力するもの、及び、常に1を出力するものと、出力が0と1とで定まらないもの、すなわち乱数を出力するものとの3つの態様のものが得られ、この出力の態様には再現性がある。そこで、このバタフライ型PUF20をデバイスに複数実装し、その各々から得られる出力を、バタフライ型PUF20を実装したデバイスについての個体別情報として利用することができる。
次に図4について説明する。図4は、背景技術である個体別情報生成装置を図解したものである。
この個体別情報生成装置30は、電子デバイスであるデバイス1に、図3に図解したバタフライ型PUF20を複数(n個)実装して構成されている。
この個体別情報生成装置30では、n個実装されたバタフライ型PUF20から、どれを選択するかが、前述したチャレンジに相当する。図4は、このチャレンジによって、「ラッチ0」から「ラッチ5」までの計6個のバタフライ型PUF20が選択された状態を表現している。この6個のバタフライ型PUF20の各々の出力RES[5:0]は2値の値(0または1)をとるので、これらの値を並べて6ビットのビット列を形成する。このビット列が前述したレスポンス(特徴値)となり、デバイス1の個体別情報として利用することができる。なお、この個体別情報生成装置30がとり得る個体別情報のパターン数は、計6個のバタフライ型PUF20を選択するので、2の6乗パターン、すなわち64パターンである。
但し、前述したように、バタフライ型PUF20は乱数を出力する場合がある。図4は、計6個のバタフライ型PUF20のうち「ラッチ2」及び「ラッチ3」が乱数を出力している場合を表現している。このような乱数を出力するバタフライ型PUF20がチャレンジによる選択に含まれてしまうと、デバイス1で不変であるはずのレスポンスが異なる値となることがあり、再現性が失われてしまうため、PUFとして利用できなくなってしまう。
この点に関し、個体別情報生成装置30に符号誤り訂正回路を備えるという技術が知られている。この技術では、チャレンジによって選択されたバタフライ型PUF20の出力を並べて構成したビット列をこの符号誤り訂正回路に入力し、その出力を個体別情報生成装置30のレスポンスとするように構成する。つまり、バタフライ型PUF20から上述のようにして生成されるビット列に含まれる乱数を符号誤り訂正回路で補正して、デバイス1では、同一のチャレンジに対して常に同一のレスポンスが得られるようにする。この技術では、このようにして、個体別情報生成装置30の出力の再現性を確保している。
なお、図4の個体別情報生成装置30において、バタフライ型PUF20を、図1のアービタPUF10に置き換えて構成することも可能である。
アービタPUF10も、その出力は2値(0と1)のどちらかの値をとるが、データ入力端子Dとクロック入力端子CLKとへの立ち上がりエッジ信号の到着の時間差が極めて小さい場合には、出力が乱数となる場合がある。つまり、アービタPUF10も、バタフライ型PUF20と同様、ある特定の入力に対しての出力が一義的には定まらずに個々に所定の一定の出力値(0又は1)若しくは乱数の出力値を出力するデジタル回路なのである。従って、アービタPUF10の出力から生成したビット列に対する符号誤り訂正回路による補正は、再現性を確保する効果を奏する。
この他の背景技術として、電子デバイスの物理特性の違いを利用して乱数を生成する技術が幾つか知られている。そのひとつに、デジタル入力値に対して一義的に決定されないデジタル出力値を得ると共に、このデジタル出力値における「0」と「1」の出現頻度を均等にするという乱数生成の技術がある。
特許第3604674号公報
ジェ・ダブリュ・リー(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月
図4の個体別情報生成装置30において、前述したように符号誤り訂正回路を備えても、個体別情報の再現性の確保ができない場合がある。例えば、バタフライ型PUF20を128個実装して個体別情報生成装置30を構成した場合を考える。この場合において、乱数を出力してしまうバタフライ型PUF20の個数が約10個を超えると、符号誤り訂正回路だけでは、バタフライ型PUF20の出力を並べて構成したビット列の値の違いを吸収しきれないことがある。つまり、この場合には、同一のデバイス1であるのに同一のチャレンジに対し異なるレスポンスを出力してしまうことになり、再現性がないため、PUFとしては使用できない。
また、図4の個体別情報生成装置30において、前述したように符号誤り訂正回路を備えることは、個体別情報生成装置30の実装コストを上昇させるという問題もある。
本発明は上述した事情に鑑みてなされたものであり、少ない回路規模で良好な再現性及び差異性を有する個体別情報の生成を可能にすることである。
本明細書で後述する個体別情報生成装置のひとつに、個体別情報を生成するというものがある。この個体別情報生成装置は、複数のデジタル回路と、乱数判定部と、個体別情報生成部とを有する。ここで、この複数のデジタル回路は同一の回路構成からなる。各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力する。なお、この各々のデジタル回路には順序が予め定義されている。また、乱数判定部は、出力値が乱数であるか一定であるかを、当該複数のデジタル回路の各々について判定する。そして、個体別情報生成部は、当該複数のデジタル回路のうち出力値が一定であると乱数判定部により判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて、当該個体別情報を生成する。
また、本明細書で後述する個体別情報生成方法のひとつに、個体別情報を生成するというものがある。この方法は、まず、複数のデジタル回路から出力される出力値が、乱数であるか一定であるかの判定を、当該複数のデジタル回路の各々について行う。この複数のデジタル回路は、同一の回路構成からなり、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力する。なお、各々のデジタル回路には順序が予め定義されている。そして、この方法では、上述した個体別情報の生成を、この複数のデジタル回路のうち出力値が一定であると判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて行う。
本明細書で後述する個体別情報生成装置は、少ない回路規模で良好な再現性及び差異性を有する個体別情報の生成を行うことができる。
アービタPUFの回路構成例である。 RSラッチ回路の回路構成例である。 図2AのRSラッチ回路の真理値表である。 バタフライ型PUFの回路構成例である。 背景技術の個体別情報生成装置である。 個体別情報生成装置の第一の例である。 乱数判定部の回路構成の第一の例である。 図5の個体別情報生成部の動作を説明する図である。 個体別情報生成装置の第二の例である。 図8の個体別情報生成部の動作を説明する図である。 図8の個体別情報生成装置の乱数判定部及び出力変換部の具体的な回路構成の第一の例である。 第一変換回路の回路構成の第一の例である。 第一変換回路の回路構成の第二の例である。 図8の個体別情報生成装置の乱数判定部及び出力変換部の具体的な回路構成の第二の例である。 第二変換回路の回路構成の第一の例である。 第二変換回路の回路構成の第二の例である。 図8の個体別情報生成装置の乱数判定部及び出力変換部の具体的な回路構成の第三の例である。 図10の回路構成のバタフライ型PUFからアービタPUFへの置換を説明する図である。 図12の回路構成のバタフライ型PUFからアービタPUFへの置換を説明する図である。 図14の回路構成のバタフライ型PUFからアービタPUFへの置換を説明する図である。 個体別情報生成装置の第三の例である。 図18の個体別情報生成装置におけるエントロピー圧縮部の動作を説明する図である。 図18の回路構成のバタフライ型PUFからアービタPUFへの置換を説明する図である。 個体別情報生成装置の第四の例である。 乱数判定部の回路構成の第二の例である。 図21の個体別情報生成装置における個体別情報生成部の動作を説明する図である。 図21の回路構成のバタフライ型PUFからアービタPUFへの置換を説明する図である。 図21の個体別情報生成装置の変形例である。 個体別情報生成装置を備えた暗号化装置の構成例である。 個体別情報生成装置を備えた認証対象装置の構成例である。 認証装置の構成例である。
まず図5について説明する。図5は、個体別情報生成装置の第一の例を図解したものである。
この個体別情報生成装置100は、電子デバイスであるデバイス1に、バタフライ型PUF20と乱数判定部40とを複数(n個)実装し、更に、個体別情報生成部50を実装して構成されている。
バタフライ型PUF20は図3のものと同一の構成であり、RSラッチ回路に対しメタステーブル状態とする入力を与えると共に、このRSラッチ回路の出力端子から出力される信号を、このバタフライ型PUF20の出力とするように構成した回路である。なお、この、同一の回路構成であるn個のバタフライ型PUF20の各々には順序が予め定義されている。
この個体別情報生成装置100も、n個実装されたバタフライ型PUF20から、どれを選択するかが、前述したチャレンジに相当する。図5は、このチャレンジによって、計6個のバタフライ型PUF20が選択された状態を表現している。
乱数判定部40は、バタフライ型PUF20の各々について、その出力値が乱数であるか一定であるかを判定する。
個体別情報生成部50は、バタフライ型PUF20のうち出力値が一定であると乱数判定部40により判定されたものの各々に定義されている順序の情報に基づいて、デバイス1の個体別情報を生成する。
次に、この乱数判定部40及び個体別情報生成部50の動作について、更に説明する。
まず図6について説明する。図6には乱数判定部40の回路構成の第一の例が図解されている。
図6において、乱数判定部40は、AND回路41、NOT回路42及び44、D型フリップフロップ回路43及び46、OR回路45、及びExOR回路47を備えて構成されている。
AND回路41は2入力の論理積回路である。このAND回路41の一方の入力には、バタフライ型PUF20の出力が入力され、他方の入力にはNOT(否定)回路44の出力が接続されている。AND回路41の出力はNOT回路42の入力と接続されており、NOT回路42の出力は、D型フリップフロップ回路43のデータ入力に接続されている。このD型フリップフロップ回路(以下、「D−FF」と略す)43の出力は、NOT回路44の入力に接続されている。
OR回路45は2入力の論理和回路である。このOR回路45の一方の入力には、バタフライ型PUF20の出力が入力され、他方の入力にはD−FF46の出力が接続されている。このOR回路45の出力は、D−FF46のデータ入力に接続されている。
ExOR回路47は2入力の排他的論理和回路である。このExOR回路47の一方の入力にはNOT回路44の出力が接続されており、他方の入力にはD−FF46の出力が接続されている。このExOR回路47の出力が、この乱数判定部40の出力となる。
なお、D−FF43及び46は、初期化時にはリセットされて出力は0とされる。
まず、バタフライ型PUF20の出力が常に0の場合における乱数判定部40の動作を説明する。
このとき、AND回路41の出力は0になるから、NOT回路42の作用によってD−FF43には1が入力される。すると、D−FF43の出力も1となるから、NOT回路44の出力は0となる。
ところで、D−FF46は初期化されているのでその出力は0である。従って、このとき、OR回路45の2つの入力は共に0であるから、その出力は0になる。この出力がD−FF46に入力されるので、D−FF46の出力も依然として0のままとなる。
従って、ExOR回路47の2つの入力は共に0であるから、その出力は0となる。
次に、バタフライ型PUF20の出力が常に1の場合における乱数判定部40の動作を説明する。
まず、D−FF43は初期化されているのでその出力は0である。従って、このとき、AND回路41の2つの入力は共に1であるから、その出力は1になる。すると、NOT回路42の作用によってD−FF43には0が入力される。すると、D−FF43の出力も0となるから、NOT回路44の出力は1となる。
一方、このとき、OR回路45の出力は1になり、この出力がD−FF46に入力されるので、D−FF46の出力も1となる。
従って、ExOR回路47の2つの入力は共に1であるから、その出力は0となる。
次に、バタフライ型PUF20の出力が乱数の場合(出力が0と1とのどちらにも定まらない場合)における乱数判定部40の動作を説明する。
前述したように、0に初期化されているD−FF43は、バタフライ型PUF20の出力が0になると、その出力が1となり、従って、NOT回路44の出力は0となる。その後、バタフライ型PUF20の出力が1になっても、AND回路41の出力は0のままであるから、D−FF43の出力は1が保持され、従って、NOT回路44の出力は0のまま保持される。
一方、0に初期化されているD−FF46は、バタフライ型PUF20の出力が1になると、その出力が1となる。その後、バタフライ型PUF20の出力が0になっても、OR回路45の出力は1のままであるから、D−FF43の出力は1が保持される。
従って、バタフライ型PUF20の出力が乱数である場合(出力が0と1とのどちらにも定まらない場合)には、ExOR回路47の2つの入力は、一方が0となり他方が1となるので、その出力は1となる。
以上のように、乱数判定部40は、バタフライ型PUF20が常に0及び1のどちらか一方のみを出力し続ける場合には、その出力値が0となり、バタフライ型PUF20が乱数を出力する場合には、その出力値が1となる。乱数判定部40は、このようにして、バタフライ型PUF20の出力が乱数の出力値であるか一定の出力値であるかを判定する。
次に、この個体別情報生成部50のより具体的な動作内容について説明する。
図5の個体別情報生成部50は、バタフライ型PUF20のうち出力値が一定であると乱数判定部40により判定されたものの当該出力を、その順序の情報に従って並べることで、デバイス1の個体別情報を生成する。このとき、個体別情報生成部50は、バタフライ型PUF20のうち出力値が乱数であると乱数判定部40により判定されたものについては、その出力(すなわち乱数の出力値)を廃棄し、個体別情報の生成には使用しない。
この個体別情報生成部50の動作について、図7を用いて更に説明する。
図7に図解されている「ラッチ0」から「ラッチ5」までの計6個のバタフライ型PUF20は、チャレンジによって選択されたものであり、選択されたそれらについて定義されていた前述の順序を「ラッチ0」から「ラッチ5」までの番号で示している。ここで、計6個のバタフライ型PUF20のうちの「ラッチ2」及び「ラッチ3」が乱数の出力値を出力している場合を図6は表現している。
乱数判定部40は、計6個のバタフライ型PUF20のうちの「ラッチ2」及び「ラッチ3」が乱数の出力値を出力しており、その他は一定の出力値を出力しているとの判定を下し、その判定結果を個体別情報生成部50に伝える。すると、個体別情報生成部50は、「ラッチ2」及び「ラッチ3」の出力を廃棄し、「ラッチ0」、「ラッチ1」、「ラッチ4」、「ラッチ5」の各出力を、この順序に従って並べてビット列を生成し、デバイス1の個体別情報として出力する。
個体別情報生成装置100は、個体別情報生成部50が上述した動作を行うことでデバイス1の個体別情報を生成して出力することができるようになる。
なお、図5の個体別情報生成装置100において、バタフライ型PUF20を、図1のアービタPUF10に置き換えて構成することも可能である。前述したように、アービタPUF10は、D型フリップフロップ回路12に状態変化を生じさせるエッジ信号をそのクロック端子に入力すると共に、このエッジ信号と論理上は同位相としたエッジ信号をそのデータ入力端子に入力するように構成されている。そして、このD型フリップフロップ回路12の出力端子から出力される信号が、アービタPUF10の出力となるように構成されている。更には、バタフライ型PUF20を、同様の動作を行う他のデジタル回路、すなわち、ある特定の入力に対しての出力が一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力する他のデジタル回路に置き換えて構成することも可能である。
次に図8について説明する。図8は、個体別情報生成装置の第二の例を図解したものである。
図8の個体別情報生成装置200は、電子デバイスであるデバイス1に実装されている。この個体別情報生成装置200は、図5に図解した個体別情報生成装置100に対し、バタフライ型PUF20及び乱数判定部40の出力を出力変換部60に入力し、その出力を個体別情報生成部50に入力するという変更を加えたものである。
図5の個体別情報生成装置100による個体別情報の生成では、計6個のバタフライ型PUF20のうちの2個の出力を廃棄するため、とり得る個体別情報のパターン数が、2の4乗パターン、すなわち、16パターンと少なくなってしまう。とり得る個体別情報のパターン数が少ないと、異なるデバイス間で個体別情報が同一となる可能性が高くなる。このことはすなわち、前述した差異性が低いということであり、PUFとしての利用範囲が限定される。
そこで、個体別情報生成装置200では、個体別情報生成部50が、前述の第一の例の動作に加え、出力値が乱数であると乱数判定部40により判定されたバタフライ型PUF20の各々に定義されている順序の情報にも基づいて、デバイス1の個体別情報を生成する。
出力変換部60は、バタフライ型PUF20のうち出力値が乱数であると乱数判定部40により判定されたものの当該出力を、一定の所定値に変換する。このとき、個体別情報生成部50は、バタフライ型PUF20のうち、出力値が一定であると乱数判定部40により判定されたものの当該出力と、出力変換部60が出力を変換したものの当該変換後の当該所定値とを並べて個体別情報を生成する。なお、各出力を並べる際には、バタフライ型PUF20の各々に定義されている順序の情報に従って各出力を並べる。
この個体別情報生成部50の動作について、図9を用いて更に説明する。
図9に図解されている「ラッチ0」から「ラッチ5」までの計6個のバタフライ型PUF20は、チャレンジによって選択されたものであり、選択されたそれらについて定義されていた前述の順序を「ラッチ0」から「ラッチ5」までの番号で示している。ここで、計6個のバタフライ型PUF20のうちの「ラッチ2」及び「ラッチ3」が乱数の出力値を出力している場合を図9は表現している。
乱数判定部40は、計6個のバタフライ型PUF20のうちの「ラッチ2」及び「ラッチ3」が乱数の出力値を出力しており、その他は一定の出力値を出力しているとの判定を下し、その判定結果を出力変換部60に伝える。すると、出力変換部60は、「ラッチ2」及び「ラッチ3」が出力する乱数の出力値を、一定の所定値に変換し、この変換後の所定値を「ラッチ2」及び「ラッチ3」の出力として個体別情報生成部50へ出力する。個体別情報生成部50は、「ラッチ0」から「ラッチ5」の各出力を、この順序に従って並べてビット列を生成し、デバイス1の個体別情報として出力する。
このように、個体別情報生成装置200では、チャレンジにより選択された「ラッチ」のうち乱数の出力値を出力しているものの順序情報を、個体別情報の生成に利用するという特徴を有している。この特徴を有する個体別情報生成装置200では、とり得る個体別情報のパターン数が、「ラッチ」が乱数の出力値を出力するかどうかに依存せず、実装する「ラッチ」の個数にほぼ見合ったパターン数を持つことができる。より具体的には、「ラッチ」の個数をN個とすると、個体別情報は2のN乗通りのパターン数をとり得る。従って、前述した差異性の低下が抑制される。
次に、図8の乱数判定部40及び出力変換部60の具体的な回路構成について説明する。
まず図10について説明する。図10は、図8の個体別情報生成装置200の乱数判定部40及び出力変換部60の具体的な回路構成の第一の例を図解したものである。
図10は、バタフライ型PUF20の出力を第一変換回路70に入力し、この第一変換回路70の出力を個体別情報生成部50に入力するというものである。
第一変換回路70は、図8における乱数判定部40と出力変換部60との各々が行う動作を兼ね備えている。すなわち、第一変換回路70は、バタフライ型PUF20の出力値が乱数であるか一定であるかを判定すると共に、出力値が乱数であると判定されたものの当該出力値を一定の所定値「1」に変換するように動作する。
ここで図11A及び図11Bについて説明する。図11A及び図11Bは、それぞれ、第一変換回路70の回路構成の第一の例及び第二の例である。
まず、図11Aの第一の例について説明する。
図11Aにおいて、第一変換回路70は、OR回路71とD−FF72とを備えて構成されている。
2入力の論理和回路であるOR回路71の一方の入力には、バタフライ型PUF20の出力が入力され、他方の入力にはD−FF72の出力が接続されている。OR回路71の出力はD−FF72の入力と接続されており、D−FF72の出力が、この第一変換回路70の出力となる。なお、D−FF72は、初期化時にはリセットされて出力は0とされる。
バタフライ型PUF20の出力が常に0の場合、D−FF72は0に初期化されている。従って、OR回路71の2つの入力は共に0であるから、その出力は0になる。この出力がD−FF72に入力されるので、D−FF72の出力も依然として0のままとなる。従って、この場合の第一変換回路70の出力は0となる。
一方、バタフライ型PUF20の出力がわずかの期間でも1になると、OR回路71の出力は1になり、この出力がD−FF72に入力されるので、D−FF72の出力も1となる。その後は、バタフライ型PUF20の出力が0になっても、D−FF72の出力が1であるために、OR回路71の出力は1のままであるから、D−FF72の出力は1が保持される。従って、バタフライ型PUF20の出力が常に1の場合とバタフライ型PUF20の出力値が乱数の場合(出力が0と1とのどちらにも定まらない場合)とのどちらの場合も、第一変換回路70の出力は1となる。
このように、図11Aの第一変換回路70は、バタフライ型PUF20の出力が常に0の場合と常に1の場合には、その出力をそのまま自身の出力とし、バタフライ型PUF20の出力値が乱数の場合には、その出力を一定の所定値「1」に変換して出力する。
次に、図11Bの第二の例について説明する。
図11Bにおいて、第一変換回路70は、NOT回路73及び76と、AND回路74と、D−FF75とを備えて構成されている。
NOT回路73の入力にはバタフライ型PUF20の出力が入力されている。NOT回路73の出力は、2入力の論理積回路であるAND回路74の一方の入力に接続されており、AND回路74の他方の入力には、D−FF75の出力が接続されている。AND回路74の出力はD−FF75の入力と接続されており、D−FF75の出力は、NOT回路76の入力にも接続されている。このNOT回路76の出力が、この第一変換回路70の出力となる。なお、D−FF75は、初期化時にはリセットされて出力は1とされる。
バタフライ型PUF20の出力が常に0の場合、NOT回路73の作用によってAND回路74の一方の入力には1が常に入力される。また、このとき、D−FF72は1に初期化されているので、AND回路74の他方の入力にも1が入力されている。従って、このとき、AND回路74の出力は1になり、この出力がD−FF75に入力されるので、D−FF75の出力は1が保持される。従って、NOT回路76の作用により、この場合の第一変換回路70の出力は0となる。
一方、バタフライ型PUF20の出力がわずかの期間でも1になると、NOT回路73の作用によってAND回路74の一方の入力には0が入力されるので、AND回路74の出力は0になる。この出力がD−FF75に入力されるので、D−FF75の出力も0となる。その後は、バタフライ型PUF20の出力が0になってNOT回路73の作用によりAND回路74の一方の入力に1が入力されても、その他方の入力が0のままであるため、AND回路74の出力は0であり、D−FF75の出力は0が保持される。従って、NOT回路76の作用により、バタフライ型PUF20の出力が常に1の場合とバタフライ型PUF20の出力値が乱数の場合(出力が0と1とのどちらにも定まらない場合)とのどちらの場合も、第一変換回路70の出力は1となる。
このように、図11Bの第一変換回路70も、バタフライ型PUF20の出力が常に0の場合と常に1の場合には、その出力をそのまま自身の出力とし、バタフライ型PUF20の出力値が乱数の場合には、その出力を一定の所定値「1」に変換して出力する。
次に図12について説明する。図12は、図8の個体別情報生成装置200の乱数判定部40及び出力変換部60の具体的な回路構成の第二の例を図解したものである。
図12は、バタフライ型PUF20の出力を第二変換回路80に入力し、この第二変換回路80の出力を個体別情報生成部50に入力するというものである。
第二変換回路80は、図10の第一変換回路70と同様に、図8における乱数判定部40と出力変換部60との各々が行う動作を兼ね備えている。但し、第二変換回路80は、バタフライ型PUF20の出力値が乱数であるか一定であるかを判定すると共に、出力値が乱数であると判定されたものの当該出力を一定の所定値「0」に変換するように動作する。
ここで図13A及び図13Bについて説明する。図13A及び図13Bは、それぞれ、第二変換回路80の回路構成の第一の例及び第二の例である。
まず、図13Aの第一の例について説明する。
図13Aにおいて、第二変換回路80は、AND回路81とD−FF82とを備えて構成されている。
2入力の論理積回路であるAND回路81の一方の入力には、バタフライ型PUF20の出力が入力され、他方の入力にはD−FF82の出力が接続されている。AND回路81の出力はD−FF82の入力と接続されており、D−FF82の出力が、この第二変換回路80の出力となる。なお、D−FF82は、初期化時にはリセットされて出力は1とされる。
バタフライ型PUF20の出力が常に1の場合、D−FF82は1に初期化されている。従って、AND回路81の2つの入力は共に1であるから、その出力は1になる。この出力がD−FF82に入力されるので、D−FF82の出力も依然として1のままとなる。従って、この場合の第二変換回路80の出力は1となる。
一方、バタフライ型PUF20の出力がわずかの期間でも0になると、AND回路81の出力は0になり、この出力がD−FF82に入力されるので、D−FF82の出力も0となる。その後は、バタフライ型PUF20の出力が1になっても、D−FF82の出力が0であるために、AND回路81の出力は0のままであるから、D−FF82の出力は0が保持される。従って、バタフライ型PUF20の出力が常に0の場合とバタフライ型PUF20の出力値が乱数の場合(出力が0と1とのどちらにも定まらない場合)とのどちらの場合も、第二変換回路80の出力は0となる。
このように、図13Aの第二変換回路80は、バタフライ型PUF20の出力が常に0の場合と常に1の場合には、その出力をそのまま自身の出力とし、バタフライ型PUF20の出力値が乱数の場合には、その出力値を一定の所定値「0」に変換して出力する。
次に、図13Bの第二の例について説明する。
図13Bにおいて、第二変換回路80は、AND回路83と、NOT回路84及び86と、D−FF85とを備えて構成されている。
2入力の論理積回路であるAND回路83の一方の入力には、バタフライ型PUF20の出力が入力され、他方の入力にはNOT回路86の出力が接続されている。AND回路83の出力はNOT回路84の入力に接続されており、このNOT回路84の出力がD−FF85の入力と接続されている。D−FF85の出力は、NOT回路86の入力に接続されており、このNOT回路86の出力が、この第二変換回路80の出力となる。なお、D−FF85は、初期化時にはリセットされて出力は0とされる。
バタフライ型PUF20の出力が常に1の場合、AND回路83の一方の入力には1が常に入力される。また、このとき、D−FF85は0に初期化されているので、NOT回路86の作用によってAND回路83の他方の入力にも1が入力されている。従って、このとき、AND回路83の出力は1になり、NOT回路84の出力は0になる。このNOT回路84の出力がD−FF75に入力されるので、D−FF72の出力は0が保持される。従って、NOT回路86の作用により、この場合の第二変換回路80の出力は1となる。
一方、バタフライ型PUF20の出力がわずかの期間でも0になると、AND回路83の一方の入力には0が入力されるので、AND回路83の出力は0になり、NOT回路84の出力は1になる。このNOT回路84の出力がD−FF85に入力されるので、D−FF85の出力も1となり、NOT回路86の出力は0となる。その後にバタフライ型PUF20の出力が1になってAND回路83の一方の入力に0が入力されても、その他方の入力が0のままであるため、AND回路83の出力は0であり、NOT回路84の出力は1のままであるから、D−FF85の出力は1が保持される。従って、NOT回路86の作用により、バタフライ型PUF20の出力が常に0の場合とバタフライ型PUF20の出力値が乱数の場合(出力が0と1とのどちらにも定まらない場合)とのどちらの場合も、第二変換回路80の出力は0となる。
このように、図13Bの第二変換回路80も、バタフライ型PUF20の出力が常に0の場合と常に1の場合には、その出力をそのまま自身の出力とし、バタフライ型PUF20の出力値が乱数の場合には、その出力を一定の所定値「0」に変換して出力する。
次に図14について説明する。図14は、図8の個体別情報生成装置200の乱数判定部40及び出力変換部60の具体的な回路構成の第三の例を図解したものである。
この図14の例は、出力変換部60が、出力値が乱数であると乱数判定部40により判定されたバタフライ型PUF20の出力を、当該バタフライ型PUF20に予め定義されている順序を表す番号に応じた値に変換するように構成したものである。
図14の回路構成は、バタフライ型PUF20の出力を第一変換回路70と第二変換回路80とのどちらか一方に入力して、その出力を個体別情報生成部50に入力するように構成されている。
第一変換回路70は、図10のものと同様のものであり、バタフライ型PUF20の出力値が乱数であるか一定であるかを判定すると共に、出力値が乱数であると判定されたものの当該出力を一定の所定値「1」に変換するように動作する。従って、図11A及び図11Bに示した回路構成のものを、図14の第一変換回路70として使用することができる。
第二変換回路80も、図12のものと同様のものであり、バタフライ型PUF20の出力値が乱数であるか一定であるかを判定すると共に、出力値が乱数であると判定されたものの当該出力を一定の所定値「0」に変換するように動作する。従って、図13A及び図13Bに示した回路構成のものを、図14の第二変換回路80として使用することができる。
図14において、バタフライ型PUF20に接続されるものが第一変換回路70と第二変換回路80とのどちらであるかは、バタフライ型PUF20に予め定義されていた順序を表す番号によって定められている。より具体的には、予め定義されていた順序を表す番号が奇数であるバタフライ型PUF20には、第一変換回路70が接続されており、予め定義されていた順序を表す番号が偶数であるバタフライ型PUF20には、第二変換回路80が接続されている。つまり、図14の構成では、出力変換部60は、出力値が乱数であると乱数判定部40により判定されたバタフライ型PUF20に予め定義されている順序の番号が奇数である場合には、バタフライ型PUF20の出力を1に設定する。また、出力変換部60は、出力値が乱数であると乱数判定部40により判定されたバタフライ型PUF20に予め定義されている順序の番号が偶数である場合には、バタフライ型PUF20の出力を0に設定する。
なお、図8の個体別情報生成装置200において、バタフライ型PUF20を、図1のアービタPUF10に置き換えて構成することも可能である。図15、図16、及び図17は、それぞれ、図10、図12、及び、図14の各図に図解した回路構成におけるバタフライ型PUF20をアービタPUF10に置換したものである。このように、バタフライ型PUF20のアービタPUF10へ置き換える際には他の回路構成の変更は不要であり、容易に行うことができる。
次に図18について説明する。図18は、個体別情報生成装置の第三の例を図解したものである。
図18の個体別情報生成装置300は、電子デバイスであるデバイス1に実装されている。この個体別情報生成装置300は、バタフライ型PUF20の各々の出力を乱数判定部40にひとつずつ入力して、その各々の出力をエントロピー圧縮部90に入力し、このエントロピー圧縮部90の出力を個体別情報生成部50に入力する第一の構成を有している。更に、この個体別情報生成装置300は、図5の個体別情報生成装置100を組み合わせた構成も含んでいる。より具体的には、個体別情報生成装置300は、このための構成として、個体別情報生成部50が、バタフライ型PUF20の各々の出力を、乱数判定部40の各々の出力を用いて選択して、デバイス1の個体別情報の生成を行う第二の構成を備えている。
まず、個体別情報生成装置300における上述の第一の構成について説明する。
図18における乱数判定部40としては、図6に図解したものを使用する。従って、乱数判定部40は、バタフライ型PUF20が常に0及び1のどちらか一方のみを出力し続ける場合には、その出力値が0となり、バタフライ型PUF20が乱数の出力値を出力する場合には、その出力値が1となる。このようにして、乱数判定部40は、バタフライ型PUF20のうち出力値が一定であると判定したものに、2値情報の一方の値0を割り当てると共に、バタフライ型PUF20のうち出力値が乱数であると判定したものに当該2値情報の他方の値1を割り当てる。
図18におけるエントロピー圧縮部90の動作について、図19を用いて説明する。
エントロピー圧縮部90は、まず、前処理として、バタフライ型PUF20の各々に対し乱数判定部40が割り当てた値を、バタフライ型PUF20の各々に対して予め定義されている順序の情報に従って並べてビット列を生成する。続いて、エントロピー圧縮部90は、このようにして並べられて得られたビット列に対してエントロピー圧縮を行い、得られた値を出力する。
なお、本実施形態では、エントロピー圧縮部90として、得られたビット列に対するハッシュ関数値を得る回路を使用する。より具体的には、この回路として、米国連邦情報処理標準(Federal Information Processing Standards/FIPS)に採用されているハッシュ関数であるSHA−256によるハッシュ関数値を得る回路を用いる。従って、このエントロピー圧縮部90の出力は256ビットのビット列となる。
なお、エントロピー圧縮に使用する関数として、ハッシュ関数の代わりに、LFSR(線形フィードバックシフトレジスタ)や、FUZZY EXTRACTORなどの関数を用いてもよい。
ところで、バタフライ型PUF20の個数をN個とし、そのうちのT個が乱数の出力値を出力しているとすると、エントロピー圧縮部90が前述のようにして並べるビット列は、 NT 通りのパターンが得られる。従って、このエントロピー圧縮部90から出力される256ビットの出力値のうち、 NT ビット通りに相当するビットのエントロピーを個体別情報として使用可能である。そこで、個体別情報生成部50は、エントロピー圧縮部90の出力から、 NT ビット通りに相当するビット列を抽出し、得られたビット列を、デバイス1の個体別情報として出力する。
なお、個体別情報生成部50は、上述したエントロピー圧縮部90から出力される256ビットのハッシュ値をそのままデバイス1の個体別情報として出力するようにしてもよい。
また、前述したように、個体別情報生成装置300は、個体別情報の生成を行う第二の構成として、図5の個体別情報生成装置100の構成を備えている。そこで、図18の個体別情報生成部50を、図5の個体別情報生成部50と同一の機能を有するように構成する。つまり、バタフライ型PUF20のうち出力値が一定であると乱数判定部40により判定されたものの当該出力を、その順序の情報に従って並べることで、デバイス1の個体別情報を生成するように構成する。このとき、バタフライ型PUF20のうち出力値が乱数であると乱数判定部40により判定されたものについては、その出力(すなわち乱数の出力値)を廃棄し、個体別情報の生成には使用しないようにする。そして、この個体別情報生成部50が、上述したようにして生成した第一の個体別情報と、エントロピー圧縮部90の出力から前述のようにして生成した第二の個体別情報とを並べたものを、デバイス1の個体別情報として出力するようにしてもよい。
バタフライ型PUF20の個数をN個とし、そのうちのT個が乱数の出力値を出力しているとすると、上述の第一の個体別情報は、2N-T 通りのパターンが得られる。また、このとき、上述の第二の個体別情報は、前述したように、 NT 通りのパターンが得られる。従って、個体別情報生成部50が、前述のようにして第一の個体別情報と第二の個体別情報とを並べてデバイス1の個体別情報を生成する場合には、2N-T × NT 通りの個体別情報のパターンを得ることができるようになる。
なお、図18の個体別情報生成装置300において、バタフライ型PUF20を、図1のアービタPUF10に置き換えて構成することも可能である。図20は、図18の各図に図解した回路構成におけるバタフライ型PUF20をアービタPUF10に置換したものである。このように、バタフライ型PUF20のアービタPUF10へ置き換える際には他の回路構成の変更は不要であり、容易に行うことができる。
次に図21について説明する。図21は、個体別情報生成装置の第四の例を図解したものである。
図21の個体別情報生成装置400は、電子デバイスであるデバイス1に実装されている。この個体別情報生成装置400は、バタフライ型PUF20の各々の出力を乱数判定部40にひとつずつ入力して、その各々の出力を個体別情報生成部50に入力する構成を有している。
ここで図22について説明する。図22には乱数判定部40の回路構成の第二の例が図解されている。この第二の例は、図21の個体別情報生成装置400に使用するものである。
この図22に図解した乱数判定部40の回路構成の第二の例を、図6の第一の例と比較すると、第一の例におけるExOR回路47への2つの入力がそのまま乱数判定部40の出力とされており、ExOR回路47が削除されている点が異なっている。従って、バタフライ型PUF20の出力が常に0の場合には、NOT回路44の出力は0となり、D−FF46の出力も0となる。また、バタフライ型PUF20の出力が常に1の場合には、NOT回路44の出力は1となり、D−FF46の出力は1となる。更に、バタフライ型PUF20の出力値が乱数の場合(出力が0と1とのどちらにも定まらない場合)には、NOT回路44の出力は0となり、D−FF43の出力は1となる。
図22の乱数判定部40は、NOT回路44が出力するビットとD−FF46が出力するビットとを並べてビット列を構成して出力する。従って、この乱数判定部40は、2値出力であるバタフライ型PUF20の出力が常に0の場合にはビット列「00」を出力し、バタフライ型PUF20の出力が常に1の場合にはビット列「11」を出力する。また、この乱数判定部40は、バタフライ型PUF20の出力値が乱数の場合にはビット列「10」を出力する。つまり、乱数判定部40は、出力変換部60としての機能も備えている。すなわち、乱数判定部40は、バタフライ型PUF20のうち出力値が乱数であると判定した当該出力を第一ビット列「10」に変換する。また、乱数判定部40は、バタフライ型PUF20のうち出力値が一定であると判定したものについての当該出力も変換する。この変換では、当該出力が0である場合には第一ビット列とは異なる第二ビット列「00」に変換し、当該出力が1である場合には第一ビット列及び第二ビット列のどちらとも異なる第三ビット列「11」に変換する。
図21の個体別情報生成部50の動作を、図23を用いて説明する。個体別情報生成部50は、上述のようにしてビット列に変換されたバタフライ型PUF20の各々の出力を、バタフライ型PUF20の各々に定義されている順序の情報に従って並べて、デバイス1の個体別情報を生成する。従って、個体別情報の生成に用いたバタフライ型PUF20の個数がN個である場合には、2Nビットの個体別情報が生成される。
図21の個体別情報生成装置400は、以上のようにして、バタフライ型PUF20の出力が、常に0である場合、常に1である場合、及び乱数の出力値である場合の各場合に応じて、3つの異なる値を割り当ててデバイス1の個体別情報を生成する。従って、個体別情報として多くのパターンを得ることができる。
なお、図21の個体別情報生成装置400において、バタフライ型PUF20を、図1のアービタPUF10に置き換えて構成することも可能である。図24は、図21の各図に図解した回路構成におけるバタフライ型PUF20をアービタPUF10に置換したものである。このように、バタフライ型PUF20のアービタPUF10へ置き換える際には他の回路構成の変更は不要であり、容易に行うことができる。
また、図21及び図24の個体別情報生成装置400において、図25に図解するように、乱数判定部40(出力変換部60)と個体別情報生成部50との間に、図18の個体別情報生成装置300におけるものと同様のエントロピー圧縮部90を追加してもよい。このエントロピー圧縮部90は、出力変換部60によりビット列に変換されたバタフライ型PUF20(若しくはアービタPUF10)の各々の出力を、前述の順序の情報に従って並べて得られる値に対してエントロピー圧縮を行う。なお、個体別情報生成部50は、このように構成する場合には、エントロピー圧縮部90によりエントロピー圧縮されて得られた値に基づいて、デバイス1の個体別情報を生成する、
次に、これまでに説明した個体別情報生成装置30、100、200、300、及び400の各々により生成される個体別情報のパターン数についての定量的な見積もり例について説明する。
なお、ここでは、見積もりの前提として、デバイス1にバタフライ型PUF20を128個実装し、そのうちのT個のバタフライ型PUF20が乱数の出力値を出力するものとし、T=8とT=32の場合についての個体別情報のパターン数見積もりを行うこととする。
図4の個体別情報生成装置30(但し、符号誤り訂正回路を備えた場合)では、T=8のとき、一定の出力値を出力するバタフライ型PUF20は120個存在するので、パターン数は2120 通りとなる。また、T=32の場合は、乱数の出力値を出力するバタフライ型PUF20の個数が約10個を超えているため、PUFとして使用することができない。
図5の個体別情報生成装置100では、T=8のとき、一定の出力値を出力するバタフライ型PUF20は120個存在し、乱数の出力値を出力するバタフライ型PUF20の出力は廃棄する。従って、この個体別情報生成装置100により生成される個体別情報のパターン数は2120 通りとなる。また、T=32のときは、一定の出力値を出力するバタフライ型PUF20は96個存在し、乱数の出力値を出力するバタフライ型PUF20の出力は廃棄する。従って、この個体別情報生成装置100により生成される個体別情報のパターン数は296通りとなる。
図8の個体別情報生成装置200では、出力値が乱数であると乱数判定部40により判定されたバタフライ型PUF20の各々に定義されている順序の情報にも基づいて、デバイス1の個体別情報を生成する。従って、T=8のときとT=32のときとのどちらの場合でも、個体別情報生成装置200により生成される個体別情報のパターン数は2128 通りとなる。
図18の個体別情報生成装置300により生成される個体別情報のパターン数は、前述したように、2N-T × NT 通りであるから、T=8のときは2160 通りとなり、T=32のときは2196 通りとなる。また、図21の個体別情報生成装置400により生成される個体別情報のパターン数も、この個体別情報生成装置300と同様のパターン数となる。
なお、以上までに説明した個体別情報生成装置30、100、200、300、及び400を、ハードウェアで構成する代わりに、演算処理装置と当該演算処理装置で実行されるソフトウェアとの組み合わせで構成することも可能である。
次に、図5、図8、図18、及び図21で各々図解した個体別情報生成装置100、200、300、及び400を用いた電子機器について説明する。
まず図26について説明する。図26は、暗号化装置の構成例を図解したものである。
この暗号化装置500は、個体別情報生成装置100、200、300、及び400のいずれかを用いて構成されている。なお、以下の説明では、一例として、図5の個体別情報生成装置100を暗号化装置500が用いる場合を説明する。
暗号化装置500は、個体別情報生成装置100、CPU510、暗号演算器520、ROM530、及びRAM540を備えて構成されている。なお、これらの各構成要素はバスライン550にいずれも接続されており、CPU510による管理の下で各種のデータを相互に授受することができるように構成されている。
個体別情報生成装置100は、電子デバイスであるデバイス1に実装されている。
CPU(Central Processing Unit )510は、この暗号化装置500の各構成要素の動作を管理する中央演算部である。
暗号演算器520は、各種の情報の暗号化処理や、暗号化されているデータの復号処理を行う。なお、本実施形態では、暗号演算器520は、公開鍵コプロセッサ521と共通鍵コプロセッサ522とを備えている。ここで、公開鍵コプロセッサ521は、代表的な公開鍵暗号方式であるRSA暗号や楕円曲線暗号等を用いて暗号化及び復号の処理を行う。また、共通鍵コプロセッサ522は、代表的な共通鍵暗号方式であるAES暗号等を用いて暗号化及び復号の処理を行う。なお、暗号演算器520を暗号化装置500に備える代わりに、暗号演算器520により行われる暗号化及び復号の処理を、CPU510に行わせるように構成してもよい。
ROM(Read Only Memory)530には、CPU510により実行される制御プログラムや、暗号演算器520が暗号化や復号の処理において使用する固有のパラメータが予め格納されている不揮発性半導体メモリである。CPU510は、暗号化装置500への電力供給が開始されたときに、この制御プログラムをROM530から読み出してその実行を開始することで、暗号化装置500の各構成要素の動作管理を行えるようになる。
RAM(Random Access Memory)540は、CPU510や暗号演算器520が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
この暗号化装置500において、暗号演算器520は、個体別情報生成装置100が生成した個体別情報を暗号鍵として用いて、情報の暗号化処理を行う。また、この暗号化処理において暗号鍵として用いられた個体別情報は、その後に暗号演算器520が暗号化情報に対して行う復号処理にも使用する。
なお、個体別情報生成装置100で生成される個体別情報を暗号鍵の生成に用いる際に、生成された個体別情報のエントロピーを更に向上させるための後処理(Post Processing )を行ってもよい。このために行われる後処理の一例として、線形フィードバックシフトレジスタ(LFSR)の使用を挙げることができる。LFSRは、排他的論理和回路で帰還をかけたシフトレジスタによって構成されるカウンタであり、個体別情報のエントロピーを向上させることができる。従って、LFSRから出力されるデータ列を用いて暗号鍵の生成を行うようにすることで、よりランダム性の高い暗号鍵を生成することが可能になる。なお、LFSRは、専用のハードウェアを構成して用いるようにしてもよく、また、CPU510を用いてソフトウェアにより実現するようにしてもよい。
次に、個体別情報生成装置100、200、300、若しくは400を用いた認証システムについて説明する。この認証システムは、認証対象装置が正規のものであるか否かの認証を、認証装置が行うシステムである。
まず図27について説明する。図27は、この認証システムに用いられる認証対象装置の構成例を図解したものである。
この認証対象装置600は、個体別情報生成装置100、200、300、及び400のいずれかを用いて構成されている。なお、以下の説明では、一例として、図5の個体別情報生成装置100を認証対象装置600が用いる場合を説明する。
認証対象装置600は、個体別情報生成装置100、CPU610、通信部620、ROM630、及びRAM640を備えて構成されている。なお、これらの各構成要素はバスライン650にいずれも接続されており、CPU610による管理の下で各種のデータを相互に授受することができるように構成されている。
個体別情報生成装置100は、電子デバイスであるデバイス1に実装されており、個体別情報を、この認証対象装置600のものとして生成する。
CPU610は、この認証対象装置600の各構成要素の動作を管理する中央演算部である。
通信部620は、各種のデータの送受信を行って、後述する認証装置との間で各種の情報の授受を行う。
ROM630には、CPU610により実行される制御プログラムが予め格納されている不揮発性半導体メモリである。CPU610は、認証対象装置600への電力供給が開始されたときに、この制御プログラムをROM630から読み出してその実行を開始することで、認証対象装置600の各構成要素の動作管理を行えるようになる。
RAM640は、CPU610が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
次に図28について説明する。図28は、前述の認証システムに用いられる認証装置の構成例を図解したものである。
この認証装置700は、CPU710、通信部720、認証処理部730、ROM740、及びRAM750を備えて構成されている。なお、これらの各構成要素はバスライン760にいずれも接続されており、CPU710による管理の下で各種のデータを相互に授受することができるように構成されている。
CPU710は、この認証装置700の各構成要素の動作を管理する中央演算部である。
通信部720は、図27の認証対象装置600との間で通信を行って、各種の情報の授受を行う。
認証処理部730は、認証対象装置600に対する認証処理を、後述するようにして行う。なお、認証処理部730を認証装置700に備える代わりに、認証処理部730により行われる認証処理を、CPU710に行わせることに構成してもよい。
ROM740には、CPU710により実行される制御プログラムや、認証処理部730が認証処理に用いる正規の認証対象装置600についての個体別情報が予め格納されている不揮発性半導体メモリである。CPU710は、認証装置700への電力供給が開始されたときに、この制御プログラムをROM740から読み出してその実行を開始することで、認証装置700の各構成要素の動作管理を行えるようになる。
RAM750は、CPU710や認証処理部730が各種の処理を行う際に、必要に応じて作業用記憶領域として使用する揮発性半導体メモリである。
次に、前述した認証システムによる認証動作について説明する。
まず、認証動作に先立ち、認証装置700のROM740には、正規の認証対象装置600が備えている個体別情報生成装置100が有する個体別情報生成部50が生成する個体別情報を、予め記録させておく。
認証装置700の認証処理部730が認証処理を開始すると、まず、通信部720に指示を与えて、個体別情報の送付要求を、認証対象装置600へ宛てて送信させる処理が行われる。
認証対象装置600のCPU610は、この送付要求を通信部620が受信したことを検出すると、個体別情報生成装置100に所定の指示を与えて個体別情報を生成させる処理が行われる。次に、CPU610は、通信部620に指示を与えて、生成された個体別情報を認証装置700へ宛てて送信させる処理が行われる。
認証装置700の認証処理部730は、認証対象装置600から送信された個体別情報を通信部720が受信すると、この個体別情報が、ROM740に予め記録されていた正規の認証対象装置600のものと一致するか否かを判定する処理を行う。ここで、両者の個体別情報が一致するとの判定結果が得られたときには、個体別情報の送信元の認証対象装置600が正規のものであるとの認証結果を得る。
なお、上述の認証動作において、ROM740に、正規の認証対象装置600が備えている個体別情報生成装置100が有する個体別情報生成部50が生成する個体別情報として、前述した「チャレンジ」と「レスポンス」との関係を複数組記録しておいてもよい。
この場合には、認証装置700の認証処理部730が、個体別情報の送付要求に、ROM740に「レスポンス」との関係が記録されている各「チャレンジ」の情報を添付して通信部720に送信させるようにする。一方、認証対象装置600のCPU610は、この送付要求に添付されていた各「チャレンジ」の情報を個体別情報生成装置100に与え、各「チャレンジ」の情報についての「レスポンス」の情報を個体別情報生成部50により生成させる。そして、CPU610は、生成された各「レスポンス」の情報を認証装置700へ宛てて通信部620に送信させる処理を行うようにする。このとき、認証装置700の認証処理部730は、通信部720で受信した各「レスポンス」の情報が、ROM740に記録されていた正規の認証対象装置600におけるものと全て一致するか否かを判定する処理を行う。ここで、両者の「レスポンス」の情報が全て一致するとの判定結果が得られたときには、「レスポンス」の送信元の認証対象装置600が正規のものであるとの認証結果を得る。前述の認証システムにおける認証動作を、以上のようにして行ってもよい。
1 デバイス
10 アービタPUF
11、11−0a、11−0b、11−1a、11−1b、11−2a、
11−2b、11−(n−1)a、11−(n−1)b1 セレクタ
12、43、46、72、75、82、85 D型フリップフロップ回路
20 バタフライ型PUF
21、22 NAND回路
30、100、200、300、400 個体別情報生成装置
40 乱数判定部
41、74、81、83 AND回路
42、44、73、76、84、86 NOT回路
45、71 OR回路
47 ExOR回路
50 個体別情報生成部
60 出力変換部
70 第一変換回路
80 第二変換回路
90 エントロピー圧縮部
500 暗号化装置
510、610、710 CPU
520 暗号演算器
521 公開鍵コプロセッサ
522 共通鍵コプロセッサ
530、630、740 ROM
540、640、750 RAM
550、650、760 バスライン
600 認証対象装置
620、720 通信部
700 認証装置
730 認証処理部

Claims (10)

  1. 個体別情報を生成する装置であって、
    同一の回路構成からなる複数のデジタル回路であって、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力し、且つ、各々のデジタル回路の順序が予め定義されている複数のデジタル回路と、
    出力値が乱数であるか一定であるかを、該複数のデジタル回路の各々について判定する乱数判定部と、
    該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて、該個体別情報を生成する個体別情報生成部と、
    を有することを特徴とする個体別情報生成装置。
  2. 該個体別情報生成部は、更に、該複数のデジタル回路のうち出力値が乱数であると該乱数判定部により判定されたデジタル回路の各々に定義されている順序の情報に基づいて、該個体別情報を生成することを特徴とする請求項1に記載の個体別情報生成装置。
  3. 該複数のデジタル回路のうち出力値が乱数であると該乱数判定部により判定されたデジタル回路の該出力を一定の所定値に変換する出力変換部を更に有し、
    該個体別情報生成部は、該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路の該出力値と、該複数のデジタル回路のうち該出力変換部が出力を変換したデジタル回路の該変換後の所定値とを、該複数のデジタル回路の各々に定義されている順序の情報に従って並べて、該個体別情報を生成する、
    ことを特徴とする請求項2に記載の個体別情報生成装置。
  4. 該出力変換部は、出力値が乱数であると該乱数判定部により判定されたデジタル回路の該出力値を、該デジタル回路に定義されている順序を表す番号に応じた値に変換することを特徴とする請求項3に記載の個体別情報生成装置。
  5. 該複数のデジタル回路の出力値は2値であり、
    該乱数判定部は、該複数のデジタル回路のうち出力値が一定であると判定したデジタル回路に2値情報の一方の値を割り当てると共に、該複数のデジタル回路のうち出力が乱数であると判定したデジタル回路に該2値情報の他方の値を割り当て、
    該個体別情報生成部は、該複数のデジタル回路の各々に対し該乱数判定部が割り当てた値を該デジタル回路の順序の情報に従って並べて得られるビット列に基づいて該個体別情報を生成する、
    ことを特徴とする請求項2に記載の個体別情報生成装置。
  6. 該個体別情報生成部は、該複数のデジタル回路の各々に対し該乱数判定部が割り当てた値を該デジタル回路の順序の情報に従って並べて得られるビット列に対してエントロピー圧縮を行い、該エントロピー圧縮によって得られる値に基づいて、該個体別情報を生成することを特徴とする請求項5に記載の個体別情報生成装置。
  7. 該複数のデジタル回路の出力値は2値であり、
    該複数のデジタル回路のうち出力値が乱数であると該乱数判定部により判定されたデジタル回路の該出力値を第一ビット列に変換すると共に、該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路についての該出力値を、該出力値が2値のうちの一方の値である場合には該第一ビット列とは異なる第二ビット列に変換し、該出力値が該2値のうちの他方の値である場合には該第一ビット列及び該第二ビット列のどちらとも異なる第三ビット列に変換する出力変換部を更に有し、
    該個体別情報生成部は、該出力変換部によりビット列に変換された該複数のデジタル回路の各々の出力値を、該複数のデジタル回路の各々に定義されている順序の情報に従って並べて得られる値に基づいて、該個体別情報を生成する、
    ことを特徴とする請求項2に記載の個体別情報生成装置。
  8. 請求項1から7のうちのいずれか一項に記載の個体別情報生成装置と、
    該個体別情報生成装置が生成した個体別情報を暗号鍵として用いて、情報の暗号化処理を行う暗号化処理部と、
    を有することを特徴とする暗号化装置。
  9. 個体別情報を生成する方法であって、
    同一の回路構成からなる複数のデジタル回路であって、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力し、且つ、各々のデジタル回路の順序が予め定義されている該複数のデジタル回路から出力される出力値が乱数であるか一定であるかを、該複数のデジタル回路の各々について判定し、
    該複数のデジタル回路のうち出力値が一定であると判定されたデジタル回路に定義されている順序の情報と出力値とに基づいて、該個体別情報を生成する、
    ことを特徴とする個体別情報生成方法。
  10. 認証対象装置が正規のものであるか否かの認証を行う認証方法であって、
    正規の認証対象装置は、該認証対象装置の個体別情報を生成する個体別情報生成装置を備えており、
    該個体別情報生成装置は、
    同一の回路構成からなる複数のデジタル回路であって、各々のデジタル回路は特定の入力に対しての出力がデジタル回路間では一義的には定まらずに個々に所定の一定の出力値若しくは乱数の出力値を出力し、且つ、各々のデジタル回路の順序が予め定義されている複数のデジタル回路と、
    出力値が乱数であるか一定であるかを、該複数のデジタル回路の各々について判定する乱数判定部と、
    該複数のデジタル回路のうち出力値が一定であると該乱数判定部により判定されたデジタル回路に定義されている順序の情報出力値とに基づいて、該個体別情報を生成する個体別情報生成部と、
    を有しており、
    該認証方法は、
    該認証対象装置から受信した個体別情報が、予め記録されている情報である、該正規の認証対象装置が備えている個体別情報生成装置が有する個体別情報生成部が生成する個体別情報と一致するか否かの判定を行い、
    個体別情報が一致するとの判定結果が得られたときに、該認証対象装置が正規のものであるとの認証結果を得る、
    ことを特徴とする認証方法。
JP2012522401A 2010-06-30 2010-06-30 個体別情報生成装置及び個体別情報生成方法 Expired - Fee Related JP5333669B2 (ja)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2010/061211 WO2012001796A1 (ja) 2010-06-30 2010-06-30 個体別情報生成装置及び個体別情報生成方法

Publications (2)

Publication Number Publication Date
JPWO2012001796A1 JPWO2012001796A1 (ja) 2013-08-22
JP5333669B2 true JP5333669B2 (ja) 2013-11-06

Family

ID=45401551

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2012522401A Expired - Fee Related JP5333669B2 (ja) 2010-06-30 2010-06-30 個体別情報生成装置及び個体別情報生成方法

Country Status (4)

Country Link
US (1) US9021001B2 (ja)
EP (1) EP2590355A4 (ja)
JP (1) JP5333669B2 (ja)
WO (1) WO2012001796A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2014072827A (ja) * 2012-10-01 2014-04-21 Fujitsu Semiconductor Ltd 論理回路、コード発生回路、半導体装置、認証装置、コード発生方法および認証方法
JP5956313B2 (ja) * 2012-11-13 2016-07-27 ルネサスエレクトロニクス株式会社 認証回路
US10044513B2 (en) 2013-09-02 2018-08-07 Samsung Electronics Co., Ltd. Security device having physical unclonable function
US11303461B2 (en) 2013-09-02 2022-04-12 Samsung Electronics Co., Ltd. Security device having physical unclonable function
JP6167876B2 (ja) 2013-11-28 2017-07-26 富士通株式会社 電子回路、電子機器及び認証システム
KR102186475B1 (ko) * 2013-12-31 2020-12-03 주식회사 아이씨티케이 홀딩스 랜덤한 디지털 값을 생성하는 장치 및 방법
US9672342B2 (en) 2014-05-05 2017-06-06 Analog Devices, Inc. System and device binding metadata with hardware intrinsic properties
US10432409B2 (en) 2014-05-05 2019-10-01 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
US9946858B2 (en) * 2014-05-05 2018-04-17 Analog Devices, Inc. Authentication system and device including physical unclonable function and threshold cryptography
DE102014215467A1 (de) * 2014-08-05 2016-02-04 Siemens Aktiengesellschaft Erzeugen eines Identifizierers für eine Schaltung
US10805093B2 (en) * 2014-10-13 2020-10-13 Intrinsic-Id B.V. Cryptographic device comprising a physical unclonable function
JP2016171452A (ja) * 2015-03-12 2016-09-23 富士通株式会社 電子回路、認証装置及び認証システム
JP6419614B2 (ja) * 2015-03-17 2018-11-07 株式会社東芝 データ生成装置および認証システム
US9967094B2 (en) * 2015-08-25 2018-05-08 Nxp Usa, Inc. Data processing system with secure key generation
US11258599B2 (en) 2016-08-04 2022-02-22 Macronix International Co., Ltd. Stable physically unclonable function
US10855477B2 (en) 2016-08-04 2020-12-01 Macronix International Co., Ltd. Non-volatile memory with physical unclonable function and random number generator
US10715340B2 (en) 2016-08-04 2020-07-14 Macronix International Co., Ltd. Non-volatile memory with security key storage
US10911229B2 (en) 2016-08-04 2021-02-02 Macronix International Co., Ltd. Unchangeable physical unclonable function in non-volatile memory
US10680809B2 (en) 2016-08-04 2020-06-09 Macronix International Co., Ltd. Physical unclonable function for security key
US10425235B2 (en) 2017-06-02 2019-09-24 Analog Devices, Inc. Device and system with global tamper resistance
US10958452B2 (en) 2017-06-06 2021-03-23 Analog Devices, Inc. System and device including reconfigurable physical unclonable functions and threshold cryptography
US11151290B2 (en) * 2018-09-17 2021-10-19 Analog Devices, Inc. Tamper-resistant component networks
CN114329646B (zh) * 2020-09-28 2024-08-20 京东方科技集团股份有限公司 数字指纹生成器及数字指纹生成方法
US11380379B2 (en) 2020-11-02 2022-07-05 Macronix International Co., Ltd. PUF applications in memories

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2008056612A1 (fr) * 2006-11-06 2008-05-15 Panasonic Corporation Appareil de sécurité d'informations
JP2009517910A (ja) * 2005-11-29 2009-04-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Pufsを使用した物理的な共有秘密及び周辺の証明

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3604674B2 (ja) 2001-09-26 2004-12-22 株式会社東芝 乱数生成回路
EP1803060B1 (en) * 2004-10-15 2008-07-09 Nxp B.V. Integrated circuit with a true random number generator
EP1846866B1 (en) * 2005-02-02 2015-01-07 Intrinsic ID B.V. Method, apparatus, device, system, program, for calibrating
EP2027664A4 (en) * 2006-06-09 2016-08-17 Symantec Internat METHOD AND DEVICE FOR AUTHENTICATING UNDER THE PRIVACY SECURITY USING EASY TO USE EQUIPMENT
EP2053543A1 (en) 2006-11-06 2009-04-29 Panasonic Corporation Authenticator
US8468186B2 (en) * 2009-08-05 2013-06-18 Verayo, Inc. Combination of values from a pseudo-random source

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2009517910A (ja) * 2005-11-29 2009-04-30 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Pufsを使用した物理的な共有秘密及び周辺の証明
WO2008056612A1 (fr) * 2006-11-06 2008-05-15 Panasonic Corporation Appareil de sécurité d'informations

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
JPN6010043191; Eric Simpson: 'Runtime Intellectual Property Protection on Programmable Platforms' online , 20070430, p.9-12 *
JPN6010043193; Mehrdad Majzoobi et al: 'Lightweight Secure PUFs' Proceedings of the 2008 IEEE/ACM International Conference on Computer-Aided Design , 200811, p.670-673, IEEE *

Also Published As

Publication number Publication date
EP2590355A1 (en) 2013-05-08
EP2590355A4 (en) 2017-04-19
WO2012001796A1 (ja) 2012-01-05
US9021001B2 (en) 2015-04-28
JPWO2012001796A1 (ja) 2013-08-22
US20130138710A1 (en) 2013-05-30

Similar Documents

Publication Publication Date Title
JP5333669B2 (ja) 個体別情報生成装置及び個体別情報生成方法
JP5831202B2 (ja) 個体別情報生成装置及び個体別情報生成方法
US8782396B2 (en) Authentication with physical unclonable functions
Merli et al. Side-channel analysis of PUFs and fuzzy extractors
CA2971212C (en) Reliability enhancement methods for physically unclonable function bitstring generation
US20170295027A1 (en) Apparatus and Method for Processing Authentication Information
JP5857726B2 (ja) 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
US8316235B2 (en) Method and device for manipulation-proof transmission of data
CA3011279A1 (en) A privacy-preserving, mutual puf-based authentication protocol
US11245680B2 (en) Garbled circuit for device authentication
US20160267266A1 (en) Electronic circuit, authentication system, and authentication method
US20120290845A1 (en) Soft message signing
Delavar et al. A ring oscillator-based PUF with enhanced challenge-response pairs
Hemavathy et al. Arbiter puf—a review of design, composition, and security aspects
CN113158200A (zh) 使用挑战-响应协议执行认证的集成电路和使用其的方法
JP5831203B2 (ja) 個体別情報生成装置、暗号化装置、認証システム、及び個体別情報生成方法
JP5870675B2 (ja) 温度センサ、暗号化装置、暗号化方法、及び個体別情報生成装置
Liu et al. A novel security key generation method for SRAM PUF based on Fourier analysis
Aysu et al. A design method for remote integrity checking of complex PCBs
Plusquellic et al. Privacy-preserving authentication protocols for iot devices using the sirf puf
Cambou Password manager combining hashing functions and ternary PUFs
Wisiol et al. Why attackers lose: Design and security analysis of arbitrarily large XOR arbiter PUFs
Narasimhan et al. Bio‐PUF‐MAC authenticated encryption for iris biometrics
Habib et al. A comprehensive set of schemes for PUF response generation
Gao et al. A challenge obfuscation method for thwarting model building attacks on PUFs

Legal Events

Date Code Title Description
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: 20130702

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130715

R150 Certificate of patent or registration of utility model

Ref document number: 5333669

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

LAPS Cancellation because of no payment of annual fees