IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 学校法人早稲田大学の特許一覧

<>
  • 特許-チップ固有乱数発生装置 図1
  • 特許-チップ固有乱数発生装置 図2
  • 特許-チップ固有乱数発生装置 図3
  • 特許-チップ固有乱数発生装置 図4
  • 特許-チップ固有乱数発生装置 図5
  • 特許-チップ固有乱数発生装置 図6
  • 特許-チップ固有乱数発生装置 図7
  • 特許-チップ固有乱数発生装置 図8
  • 特許-チップ固有乱数発生装置 図9
  • 特許-チップ固有乱数発生装置 図10
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-10-22
(45)【発行日】2024-10-30
(54)【発明の名称】チップ固有乱数発生装置
(51)【国際特許分類】
   H04L 9/10 20060101AFI20241023BHJP
   G09C 1/00 20060101ALI20241023BHJP
【FI】
H04L9/10 Z
G09C1/00 650B
【請求項の数】 10
(21)【出願番号】P 2021016161
(22)【出願日】2021-02-03
(65)【公開番号】P2022119136
(43)【公開日】2022-08-16
【審査請求日】2024-01-31
(73)【特許権者】
【識別番号】899000068
【氏名又は名称】学校法人早稲田大学
(74)【代理人】
【識別番号】100215371
【弁理士】
【氏名又は名称】古茂田 道夫
(72)【発明者】
【氏名】篠原 尋史
(72)【発明者】
【氏名】李 根
(72)【発明者】
【氏名】劉 昆洋
【審査官】行田 悦資
(56)【参考文献】
【文献】特表2012-509039(JP,A)
【文献】再公表特許第2012/001796(JP,A1)
【文献】特表2014-522134(JP,A)
【文献】特開平08-335399(JP,A)
【文献】米国特許出願公開第2016/0149712(US,A1)
【文献】JELOKA, S. et al,A sequence dependent challenge-response PUF using 28nm SRAM 6T bit cell,2017 Symposium on VLSI Circuits,IEEE,2017年06月05日,pp.1-2,[DOI:10.23919/VLSIC.2017.8008504]
【文献】ALHEYASAT, A. et al.,Bit-Cell Selection Analysis for Embedded SRAM-Based PUF,2020 IEEE International Symposium on Circuits and Systems (ISCAS),IEEE,2020年12月12日,pp.1-4,[DOI:10.1109/ISCAS45731.2020.9180780]
【文献】VIJAYAKUMAR, A. et al.,Machine learning resistant strong PUF: Possible or a pipe dream?,2016 IEEE International Symposium on Hardware Oriented Security and Trust (HOST),IEEE,2016年05月03日,pp.19-24,[DOI:10.1109/HST.2016.7495550]
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/10
G09C 1/00
(57)【特許請求の範囲】
【請求項1】
集積回路チップに搭載されるチップ固有乱数発生装置であって、
複数のチャレンジ入力端子と、
上記チャレンジ入力端子の下流側に接続され、複数のルックアップテーブルが並列に配置されている第1ルックアップテーブル部と、
上記第1ルックアップテーブル部の下流側に接続され、レスポンス出力を生成する出力部と
を備え、
上記ルックアップテーブルが、複数の入力端子及び複数の出力端子を有するとともに、チップ固有乱数を発生する複数のPUFにより、上記入力端子に入力される信号を符号変換して上記出力端子に出力するチップ固有乱数発生装置。
【請求項2】
上記第1ルックアップテーブル部及び上記出力部の間に接続され、複数の上記ルックアップテーブルがさらに並列に配置されている第2ルックアップテーブル部を備え、
上記第1ルックアップテーブル部の1のルックアップテーブルの複数の出力端子が、上記第2ルックアップテーブル部の複数のルックアップテーブルの入力端子に接続されている請求項1に記載のチップ固有乱数発生装置。
【請求項3】
上記チャレンジ入力端子と、上記第1ルックアップテーブル部との間に配置されるフィードバック部を備え、
上記フィードバック部が、上記出力部へ入力される第1信号と、上記チャレンジ入力端子から入力される第2信号との論理演算を行い、その結果を上記第1ルックアップテーブル部に入力する請求項1又は請求項2に記載のチップ固有乱数発生装置。
【請求項4】
上記フィードバック部が、上記第1信号のうち異なるルックアップテーブルに起因する論理演算結果を、上記第1ルックアップテーブル部の1のルックアップテーブルの入力端子に入力するよう構成されている請求項3に記載のチップ固有乱数発生装置。
【請求項5】
上記フィードバック部が、上記第1信号のうち1のルックアップテーブルに起因する論理演算結果を、上記第1ルックアップテーブル部の全てのルックアップテーブルの入力端子に入力するよう構成されている請求項3又は請求項4に記載のチップ固有乱数発生装置。
【請求項6】
上記フィードバック部への上記第1信号の入力及び上記第2信号の入力が、同期して更新される請求項3、請求項4又は請求項5に記載のチップ固有乱数発生装置。
【請求項7】
上記チャレンジ入力端子から上記出力部の出力に至る経路中に、現在の論理入力により決定される第1出力回路と、上記第1出力回路の過去の出力履歴により決定される第2出力回路と、上記第1出力回路及び上記第2出力回路の出力の論理演算を行う論理演算回路とを有し、
上記出力部のレスポンス出力が、上記論理演算回路の出力により決定される請求項1から請求項6のいずれか1項に記載のチップ固有乱数発生装置。
【請求項8】
少なくとも1つの上記ルックアップテーブルが、
上記ルックアップテーブルの入力端子と同数の入力端子及び上記ルックアップテーブルの出力端子より多数の出力端子を有するルックアップテーブル本体と、
上記ルックアップテーブル本体の出力から上記ルックアップテーブルの出力端子と同数の出力を生成する出力制御回路と
を有する請求項1から請求項7のいずれか1項に記載のチップ固有乱数発生装置。
【請求項9】
上記PUFが、ビットセルから構成されており、
上記ビットセルが、互いに逆極性のデータを保持可能なラッチ回路を有し、上記ラッチ回路が、第1CMOSインバータと第2CMOSインバータとを含み、
上記ビットセルが、上記第1CMOSインバータ及び第2CMOSインバータを構成するMOSトランジスタの一部にホットエレクトロンの注入又はBTIによる安定化回路を有する請求項1から請求項8のいずれか1項に記載のチップ固有乱数発生装置。
【請求項10】
PUFが生成するチップ固有乱数を安定化する乱数安定化部を備え、
上記乱数安定化部が、不安定と検出されたPUFが発生するチップ固有乱数をマスクする乱数マスク回路を有する請求項1から請求項9のいずれか1項に記載のチップ固有乱数発生装置。

【発明の詳細な説明】
【技術分野】
【0001】
本発明は、チップ固有乱数発生装置に関する。
【背景技術】
【0002】
IoT(Internet of Things)の進展とともにモノに対するセキュリティの課題が高まっている。例えば不揮発メモリにパスワードを書きこむ方法では読み取りや改ざんを容易に行うことができる。これに対し、PUF(Physically Unclonable Function:物理複製困難関数)を用いた半導体チップの認証方法が注目されている。
【0003】
PUFは半導体の製造バラつき等を利用して、チップ固有の論理値を出力する。PUFを用いた回路としては、例えば図10に示すアービターPUF100が公知である(例えば特開2020-188345号公報参照)。アービターPUF100では、2本の多段遅延回路101がn段の直列接続された経路を構成し、各ステージについて2本の多段遅延回路101を、入力C(C、C、・・・、Cn)により選択回路102で切替えた2つの経路を用意する。この2つの経路のうち、例えばどちらが先着するかをアービター103が判定し、アービターPUF100の出力(レスポンス)が決まる。
【0004】
アービターPUF100では、2本の多段遅延回路101は、設計値上は等しい遅延値を持つように設計される。しかし、実際に製造されると製造ばらつきにより2本の多段遅延回路101は異なる遅延値を有することとなる。例えばDelay1AとDelay1Bとのいずれが遅くなるかは半導体チップごとに異なり、かつ制御することはできない。そこで、半導体チップの製造後に、この半導体チップに入力C(チャレンジ入力)を与えたときのレスポンス出力Rを予め多数取得し、例えばこの半導体チップを使用するサーバに、この半導体チップの固有の論理値として(例えば半導体チップの製造番号と紐付して)格納しておく。上記サーバは、この半導体チップにチャレンジ入力Cを送信すると、どのようなレスポンス出力Rが返信されてくるか、予め分かっているので、例えば認証のための暗号化キーが通信されることはなく、秘匿性が高められる。
【0005】
しかし、アービターPUF100の2つの経路の総遅延時間は、各ステージの遅延の線形和となるため、数百程度のCRP(Challenge Response Pair:チャレンジとレスポンスとの組)の機械学習で出力が予測できるという機械学習攻撃に対する脆弱性がある。
【0006】
この脆弱性を解消する方法として、例えば1つのチャレンジ入力ごとに1つのPUFを準備する方法が考えられる。この手法では、各チャレンジ入力に対して独立にレスポンスが変化し得るため、上述のサーバにはチャレンジ入力ごとにレスポンス出力が格納されて使用される(例えば特開2019-121885号公報参照)。
【0007】
しかし、このような構成にあってはPUFの数が非常に多くなるため、集積回路チップの低コスト化や低消費電力化に不利である。
【先行技術文献】
【特許文献】
【0008】
【文献】特開2020-188345号公報
【文献】特開2019-121885号公報
【発明の概要】
【発明が解決しようとする課題】
【0009】
本発明は、以上のような事情に基づいてなされたものであり、低コスト化及び低消費電力化が可能であり、かつ機械学習攻撃に対する耐性が高いチップ固有乱数発生装置を提供することを目的とする。
【課題を解決するための手段】
【0010】
本発明の一態様に係るチップ固有乱数発生装置は、集積回路チップに搭載されるチップ固有乱数発生装置であって、複数のチャレンジ入力端子と、上記チャレンジ入力端子の下流側に接続され、複数のルックアップテーブルが並列に配置されている第1ルックアップテーブル部と、上記第1ルックアップテーブル部の下流側に接続され、レスポンス出力を生成する出力部とを備え、上記ルックアップテーブルが、複数の入力端子及び複数の出力端子を有するとともに、チップ固有乱数を発生する複数のPUFにより、上記入力端子に入力される信号を符号変換して上記出力端子に出力する。
【0011】
当該チップ固有乱数発生装置は、複数のチャレンジ入力端子の下流側に、複数のルックアップテーブルが並列に配されている。個々のルックアップテーブルは、複数のPUFにより、上記入力端子に入力される信号を符号変換するので、出力の不規則性が高く、有限のCRPからその出力を機械学習により予測することが困難である。従って、当該チップ固有乱数発生装置は、機械学習攻撃に対する耐性が高い。また、複数のチャレンジ入力端子に対して分割してルックアップテーブルを設けるので、ルックアップテーブル全体の規模が比較的小さく、集積回路チップの低コスト化と低消費電力化とに有利である。
【0012】
上記第1ルックアップテーブル部及び上記出力部の間に接続され、複数の上記ルックアップテーブルがさらに並列に配置されている第2ルックアップテーブル部を備え、上記第1ルックアップテーブル部の1のルックアップテーブルの複数の出力端子が、上記第2ルックアップテーブル部の複数のルックアップテーブルの入力端子に接続されているとよい。このように第2ルックアップテーブル部を備え、上記第1ルックアップテーブル部の1のルックアップテーブルの複数の出力端子を上記第2ルックアップテーブル部の複数のルックアップテーブルの入力端子に接続することで、有限のCRPからその出力を機械学習により予測することをさらに困難なものとすることができる。従って、機械学習攻撃に対する耐性をさらに高めることができる。
【0013】
上記チャレンジ入力端子と、上記第1ルックアップテーブル部との間に配置されるフィードバック部を備え、上記フィードバック部が、上記出力部へ入力される第1信号と、上記チャレンジ入力端子から入力される第2信号との論理演算を行い、その結果を上記第1ルックアップテーブル部に入力するとよい。このようにフィードバック部を設けることで、ルックアップテーブルの入出力端子数や個数を増やすことなくチャレンジ入力数やレスポンス数を増やしたり、機械学習攻撃に対する耐性をさらに高めたりすることができる。
【0014】
上記フィードバック部が、上記第1信号のうち異なるルックアップテーブルに起因する論理演算結果を、上記第1ルックアップテーブル部の1のルックアップテーブルの入力端子に入力するよう構成されているとよい。このように上記第1信号のうち異なるルックアップテーブルに起因する論理演算結果を、上記第1ルックアップテーブル部の1のルックアップテーブルの入力端子に入力することで、有限のCRPからその出力を機械学習により予測することをさらに困難なものとすることができる。従って、機械学習攻撃に対する耐性をさらに高めることができる。
【0015】
上記フィードバック部が、上記第1信号のうち1のルックアップテーブルに起因する論理演算結果を、上記第1ルックアップテーブル部の全てのルックアップテーブルの入力端子に入力するよう構成されているとよい。このように上記第1信号のうち1のルックアップテーブルに起因する論理演算結果を、上記第1ルックアップテーブル部の全てのルックアップテーブルの入力端子に入力することで、有限のCRPからその出力を機械学習により予測することをさらに困難なものとすることができる。従って、機械学習攻撃に対する耐性をさらに高めることができる。
【0016】
上記フィードバック部への上記第1信号の入力及び上記第2信号の入力が、同期して更新されるとよい。このように上記フィードバック部への上記第1信号の入力及び上記第2信号の入力を同期して更新することで、当該チップ固有乱数発生装置の出力が不安定となることを抑止ができる。
【0017】
上記チャレンジ入力端子から上記出力部の出力に至る経路中に、上記チャレンジ入力端子から上記出力端子に至る経路中に、現在の論理入力により決定される第1出力回路と、上記第1出力回路の過去の出力履歴により決定される第2出力回路と、上記第1出力回路及び上記第2出力回路の出力の論理演算を行う論理演算回路とを有し、上記出力部のレスポンス出力が、上記論理演算回路の出力により決定されるとよい。このように現在の論理入力により決定される第1出力と、上記第1出力の過去の履歴により決定される第2出力との論理演算により上記出力部のレスポンス出力が決定されるように構成することで、ルックアップテーブルの入出力端子数や個数を増やすことなく、機械学習攻撃に対する耐性をさらに高めることができる。
【0018】
少なくとも1つの上記ルックアップテーブルが、上記ルックアップテーブルの入力端子と同数の入力端子及び上記ルックアップテーブルの出力端子より多数の出力端子を有するルックアップテーブル本体と、上記ルックアップテーブル本体の出力から上記ルックアップテーブルの出力端子と同数の出力を生成する出力制御回路とを有するとよい。PUFにより決まる出力は、製造バラつき等を利用しているため、例えば電源投入ごとに出力が異なりレスポンス出力が不安定となるといった場合が生じ得る。これに対し、上記ルックアップテーブルの入力端子と同数の入力端子及び上記ルックアップテーブルの出力端子より多数の出力端子を有するルックアップテーブル本体を有することで、ルックアップテーブルに冗長な出力を設け、出力制御回路により、これらの出力から安定度の高い出力を選択的に利用し、レスポンス出力を安定化させることができる。また、上述の構成により、上記ルックアップテーブル本体の多数の出力の論理演算で上記ルックアップテーブルの出力を生成することを可能とし、機械学習攻撃に対する耐性をさらに高めることができる。
【0019】
上記PUFが、ビットセルから構成されており、上記ビットセルが、互いに逆極性のデータを保持可能なラッチ回路を有し、上記ラッチ回路が、第1CMOSインバータと第2CMOSインバータとを含み、上記ビットセルが、上記第1CMOSインバータ及び第2CMOSインバータを構成するMOSトランジスタの一部にホットエレクトロンの注入又はBTIによる安定化回路を有するとよい。このようにPUFをいわゆるSRAMのビットセルで構成し、ホットエレクトロンの注入又はBTIによる安定化回路を有することで、レスポンス出力を安定化させることができる。
【0020】
PUFが生成するチップ固有乱数を安定化する乱数安定化部を備え、上記乱数安定化部が、不安定と検出されたPUFが発生するチップ固有乱数をマスクする乱数マスク回路を有するとよい。このように不安定と検出されたPUFが発生するチップ固有乱数をマスクする構成を有することで、レスポンス出力を安定化させることができる。
【発明の効果】
【0021】
本発明のチップ固有乱数発生装置は、低コスト化及び低消費電力化が可能であり、かつ機械学習攻撃に対する耐性が高い。
【図面の簡単な説明】
【0022】
図1図1は、本発明の一実施形態に係るチップ固有乱数発生装置を示す模式的構成図である。
図2図2は、図1のルックアップテーブルの構成の一実施形態を示す模式的構成図である。
図3図3は、図2のビットセルの構成の一実施形態を示す模式的構成図である。
図4図4は、図3のビットセルの構成とは異なる実施形態のビットセルの構成を示す模式的構成図である。
図5図5は、図2とは異なるルックアップテーブルの構成の実施形態を示す模式的構成図である。
図6図6は、図5のビットセルの構成の一実施形態を示す模式的構成図である。
図7図7は、図2及び図5とは異なるルックアップテーブルの構成の実施形態を示す模式的構成図である。
図8図8は、図1とは異なるフィードバック部の構成の実施形態を示す模式的構成図である。
図9図9は、図1とは異なる実施形態に係るチップ固有乱数発生装置を示す模式的構成図である。
図10図10は、従来のチップ固有乱数発生装置を示す模式的構成図である。
【発明を実施するための形態】
【0023】
[第1実施形態]
以下、本発明の第1の実施形態に係るチップ固有乱数発生装置について、適宜図面を参照しつつ説明する。
【0024】
図1に示すチップ固有乱数発生装置1は、集積回路チップに搭載されるチップ固有乱数発生装置である。上記集積回路チップは、典型的には半導体チップであるが、PUFを搭載可能であれば、半導体チップに限定されるものではない。
【0025】
当該チップ固有乱数発生装置1は、複数のチャレンジ入力端子10と、チャレンジ入力端子10の下流側に接続される第1ルックアップテーブル部20と、第1ルックアップテーブル部20の下流側に接続される出力部30と、チャレンジ入力端子10と第1ルックアップテーブル部20との間に配置されるフィードバック部40とを備える。
【0026】
<チャレンジ入力端子>
チャレンジ入力端子10は、集積回路チップ外部から送信されてくるチャレンジ入力Cを当該チップ固有乱数発生装置1へ入力するための端子である。
【0027】
チャレンジ入力端子10の端子数(チャレンジ入力Ciのビット幅)の下限としては、9が好ましく、16がより好ましく、20がさらに好ましい。一方、チャレンジ入力端子10の端子数の上限としては、256が好ましく、128がより好ましく、49がさらに好ましく、25が特に好ましい。チャレンジ入力端子10の端子数が上記下限未満であると、機械学習攻撃に対する耐性が低下するおそれがある。逆に、チャレンジ入力端子10の端子数が上記上限を超えると、例えば当該チップ固有乱数発生装置1を利用するサーバ上に当該チップ固有乱数発生装置1をモデル化するために必要となる記憶領域が大きくなり過ぎるおそれがある。なお、チャレンジ入力端子10の端子数が多いほど機械学習攻撃に対する耐性は高まる傾向にあるが、当該チップ固有乱数発生装置1は、チャレンジ入力端子10の端子数が上記上限以下であっても、チャレンジ入力端子10の端子数が100程度である従来のチップ固有乱数発生装置と同等の機械学習攻撃に対する耐性を得ることが可能である。
【0028】
チャレンジ入力端子10の端子数は、後述するルックアップテーブル21への分割のし易さから、n(n:2以上の自然数)であるとよい。つまり、チャレンジ入力端子10の端子数は、9、16、25又は36とすることが特に好ましい。以下、チャレンジ入力端子10の端子数が9である場合を例にとり説明するが、当該チップ固有乱数発生装置1のチャレンジ入力端子10の端子数が9に限定されることを意味するものではない。
【0029】
<第1ルックアップテーブル部>
第1ルックアップテーブル部20には、複数のルックアップテーブル21が並列に配置されている。ルックアップテーブル21は、複数の入力端子21a及び複数の出力端子21bを有する。
【0030】
複数のルックアップテーブル21の入力端子21aの端子数の合計は、チャレンジ入力端子10の端子数と等しい。また、各チャレンジ入力端子10は、いずれかのルックアップテーブル21の入力端子21aと1対1で接続されている。また、入力端子21aの端子数は、各ルックアップテーブル21間で等しいことが好ましく、さらにルックアップテーブル21の数と等しいことがさらに好ましい。当該チップ固有乱数発生装置1では、このように複数のチャレンジ入力端子10に対して分割してルックアップテーブル21を設けるので、ルックアップテーブル21全体の規模が比較的小さい。このため、ルックアップテーブル21のデータをすべて記憶して当該チップ固有乱数発生装置1をモデル化することもできる。つまり、半導体チップ側に十分に多数のCRPが用意されている場合であっても、その全てを利用することができる。
【0031】
ルックアップテーブル21の出力端子21bの端子数は、入力端子21aと同数である必要はないが、ハードウェアの利用効率と機械学習攻撃に対する耐性との観点から、入力端子21aと同数であることが好ましい。
【0032】
つまり、チャレンジ入力端子10の端子数が9である場合、第1ルックアップテーブル部20は、3つの入力端子21a及び3つの出力端子21bを有する3つのルックアップテーブル21を有することが好ましい。以下、この構成を前提に説明するが、複数のルックアップテーブル21の構成は、これに限定されるものではない。
【0033】
ルックアップテーブル21は、チップ固有乱数を発生する複数のPUFにより、入力端子21aに入力される信号を符号変換して出力端子21bに出力する。当該チップ固有乱数発生装置1では、図2に示すように、PUFがSRAMのビットセル21cから構成されている。ビットセル21cは、電源投入時に、又はPUFデータ出現動作時に、そのビットセル21cを構成するトランジスタのばらつきにより0又は1の論理値を保持する。このため、ビットセル21cが保持する論理値は、予測不可能なチップ固有の値となる。
【0034】
ビットセル21cの個数は、ルックアップテーブル21の入力端子21aの端子数をk及び出力端子数21bの端子数をmとするとき、m×2個とするとよい。ビットセル21cの個数を2個とすることで、全ての入力及び出力に対して、独立してチップ固有乱数を発生することができる。3つの入力端子21a及び3つの出力端子21bを有するルックアップテーブル21では、図2に示すように、ビットセル21cの個数は、24(=3×2)であることが好ましい。
【0035】
また、ルックアップテーブル21は、ローデコーダ21dと、カラムデコーダ21eと、センスアンプ21fとを有する。入力端子21aは3入力であり、図2では、A、A、Aで示されている。また、出力端子21bは3出力であり、図2では、DQ、DQ、DQで示されている。24個のビットセル21cは、4列2行の8個のビットセル21cが、出力端子21bの3出力それぞれに対応して3群設けられている。A、A、Aのうち、A及びAの2入力がローデコーダ21dに入力され、WL~WLのいずれかのワードラインが選択される。これにより4列の中から1列が選択される。また、Aの1入力がカラムデコーダ21eに入力され、BL又はBLのいずれかのビットラインが選択される。これらの組み合わせにより各出力に対して1つのビットセル21cが選択される。選択されたビットセル21cの記憶する論理値(0又は1)は、センスアンプ21fにより読みだされ、対応する出力DQ(i=0、1、2)へ出力される。なお、CSBはチップセレクト信号(Bは信号がローアクティブであることを意味している)であり、CSBが0である場合にビットセル21cの論理の読み出しが行われる。これらは公知のSRAMの構成である。
【0036】
(ホットエレクトロンの注入によるビットセルの安定化)
ビットセル21cとして、例えば公知の6トランジスタ型のセルを用いてもよいが、図3に示すように、ビットセル21cが、互いに逆極性のデータを保持可能なラッチ回路50を有し、ラッチ回路50が、第1CMOSインバータ51と第2CMOSインバータ52とを含み、ビットセル21cが、第1CMOSインバータ51及び第2CMOSインバータ52を構成するMOSトランジスタの一部にホットエレクトロンの注入による安定化回路53を有する構成としてもよい。
【0037】
具体的には、安定化回路53は、第1CMOSインバータ51を構成するPMOS51aと並列に接続される第1PMOS53aと、第2CMOSインバータ52を構成するPMOS52aと並列に接続される第2PMOS53bとを有する。第1PMOS53a及び第2PMOS53bのゲート電位は共通信号VPGにより制御されている。
【0038】
安定化回路53は、通常の動作時は共通信号VPGを電源電位として、第1PMOS53a及び第2PMOS53bをオフ状態で使用する。一方、当該チップ固有乱数発生装置1が搭載されている集積回路チップの出荷前のテスト時又はバーンイン試験時には共通信号VPGを接地電位とし、第1PMOS53a及び第2PMOS53bをオン状態で行う。仮にビットセル21cが、その製造ばらつきにより第1CMOSインバータ51の電位Vが電源電位、第2CMOSインバータ52の電位Vが接地電位となる傾向にあるとする。この状態において、第1PMOS53a及び第2PMOS53bをオン状態とすると、第1CMOSインバータ51を構成するNMOS51bが飽和領域で動作することとなり、ホットエレクトロンが注入される。ホットエレクトロンが注入されると、第1CMOSインバータ51を構成するNMOS51bの閾値電圧が増大し、このNMOS51bがオン状態となり難くなるから、第1CMOSインバータ51の電位Vは、電源電位でさらに安定する。つまり、ビットセル21cの出力が安定する。逆に、第1CMOSインバータ51の電位Vが接地電位、第2CMOSインバータ52の電位Vが電源電位となる場合は、同様の理由で第2CMOSインバータ52を構成するNMOS52bの閾値電圧が増大し、第2CMOSインバータ52の電位Vは、電源電位でさらに安定する。
【0039】
このように安定化回路53が第1CMOSインバータ51及び第2CMOSインバータ52を構成するMOSトランジスタの一部にホットエレクトロンを注入することで、第1CMOSインバータ51と第2CMOSインバータ52との間の製造バラつきの差を増大させることができる。ビットセル21cが保持する論理値は、上述のように、第1CMOSインバータ51と第2CMOSインバータ52との製造バラつきにより決まる。第1CMOSインバータ51と第2CMOSインバータ52との間の製造バラつきの差が小さい場合、例えば周囲の温度や電圧といったような環境の変化等で保持する論理値が変わってしまうという不安定な現象(ビットエラー)が生じ得る。ビットエラーが生じると、CRPで不一致が生じるから、さらにCRPを追加した再判定や予め不安定なチャレンジ入力Ciを記憶してそれを使用しない等の処置を行う必要が生じ、CRPの損失が生じる。従って、この安定化回路53によりレスポンス出力Rを安定化させ、ビットエラー率を低減することができる。つまり、CRP損失を低減させ、効率的な認証を行うことができるようになるので、サーバ側の負担も低減できる。
【0040】
なお、ビットセル21cは、図3に示すように、第1CMOSインバータ51の出力とビットラインBLとの間及び第2CMOSインバータ52の出力とビットラインの反転BLBとの間にそれぞれ設けられ、ワードラインWLによりゲート電位が制御されているパストランジスタ54を有する。このパストランジスタ54によりワードラインWLで選択された列に属するビットセル21cが保持する論理値がBL又はBLのいずれかのビットラインに出力される状態となる。公知の6トランジスタ型のビットセルは、第1CMOSインバータ51(2トランジスタ)、第2CMOSインバータ52(2トランジスタ)及び2つのパストランジスタ54により構成される。
【0041】
安定化回路53の構成は、図3に示す構成に限定されるものではなく、例えば図4に示すように、安定化回路55として、第1CMOSインバータ51を構成するPMOS51aと並列に接続される第1NMOS55aと、第2CMOSインバータ52を構成するPMOS52aと並列に接続される第2NMOS55bとを有する構成を採用することもできる。この安定化回路55では、予めPUFが記憶している値を反転させる。その後、VNDを接地電位とし、VNGを第1NMOS55a及び第2NMOS55bの閾値電圧又はそれより若干高い程度の電圧(例えば1.0V)とする。この状態でVに高電圧(例えば3.3V)を印加する。そうすると、論理が1であるCMOSインバータを構成するNMOSに飽和電流が流れ、ホットキャリアが注入される。なお、PUFが記憶している値を反転させる方法としては、例えば後述するBTIによるビットセルの安定化で用いられる図5の構成を採用することができる。
【0042】
(BTIによるビットセルの安定化)
また、ビットセルの動作を安定化させる手段として、BTI(Bias Temperature Instability)を用いることもできる。図5にビットセル21gがBTIによる安定化回路56を有する場合のルックアップテーブル22の構成例を示す。BTIを用いる場合、図5に示すように、例えば同一の列に属する8個のビットセル21gで安定化回路56を共有することができる。この場合、個々のビットセル21gは、例えば公知の6トランジスタ型のセル(図6参照)を用いることができる。なお、図5に示すルックアップテーブル22において、ビットセル21g及び安定化回路56以外の構成要素は、図2に示すルックアップテーブル21と同様である。また、図6に示すビットセル21gの構成要素は、図3に示すビットセル21cと同様である。このため、これらの詳細説明を省略する。
【0043】
BTIによる安定化回路56は、センスアンプ21fにより読みだされたビットセル21gの論理値を反転させる書込用CMOSインバータ56aと、書込用CMOSインバータ56aの出力論理値を、読みだしたビットセル21gに書き込む書込用ドライバ56bとを有する。
【0044】
以下、動作原理について、仮にビットセル21gが、その製造ばらつきにより第1CMOSインバータ51の電位Vが電源電位、第2CMOSインバータ52の電位Vが接地電位となる傾向にあるとして説明する。なお、逆の電位で安定する傾向にある場合についても、同様である。
【0045】
第1CMOSインバータ51の電位Vが電源電位であるから、第1CMOSインバータ51のPMOS51aがオン状態にあり、第2CMOSインバータ52の電位Vが接地電位であるから、第2CMOSインバータ52のNMOS52bがオン状態にある。ここで、安定化回路56を動作させる、すなわち入力WEBをアクティブとすると、反転論理を書き込むから、逆に第1CMOSインバータ51のNMOS51bがオン状態となり、第2CMOSインバータ52のPMOS52bもオン状態となる。BTIは、オン状態のトランジスタに作用するので、第1CMOSインバータ51のNMOS51b及び第2CMOSインバータ52のPMOS52bの閾値電圧が上昇する。この結果、第1CMOSインバータ51の電位Vが電源電位で、第2CMOSインバータ52の電位Vは接地電位で、より安定する。このBTIによるビットセル21gの安定化は、ホットエレクトロンの注入によるビットセル21cの安定化と同様に、当該チップ固有乱数発生装置1が搭載されている集積回路チップの出荷前のテスト時又はバーンイン試験時に行うことができる。
【0046】
安定化回路56の構成は、図5に示す構成に限定されるものではなく、例えば書込用CMOSインバータ56aを省略して、集積回路チップの外部からビットセル21gの論理値を読み出し、その反転論理を書込用ドライバ56bにより書き込んでもよい。
【0047】
このようにBTIを用いても、安定化回路56によりレスポンス出力Rを安定化させ、ビットエラー率を低減することができる。つまり、CRP損失を低減させ、効率的な認証を行うことができるようになるので、サーバ側の負担も低減できる。
【0048】
(出力制御回路によるビットセルの安定化)
図7に示すルックアップテーブル23のように、ルックアップテーブル本体23aと、出力制御回路23bとを有する構成を用いて、ビットセル21cの動作を安定化させることもできる。
【0049】
ルックアップテーブル本体23aは、ルックアップテーブル23の入力端子23cと同数の入力端子及びルックアップテーブル23の出力端子23dより多数の出力端子を有する。当該チップ固有乱数発生装置1では、ルックアップテーブル23の入力端子23c及び出力端子23dがともに3端子である場合を想定しているので、ルックアップテーブル本体23aの入力端子数は3である。一方、ルックアップテーブル本体23aの出力端子数は4以上となる。以降、ルックアップテーブル本体23aの出力端子数が4である場合を例にとり説明するが、ルックアップテーブル本体23aの出力端子数は4に限定されるものではない。
【0050】
ルックアップテーブル本体23aは、出力端子数が4となる以外は、例えば図2に示すルックアップテーブル21と同様に構成することができる。ルックアップテーブル本体23aは、図2に示すルックアップテーブル21より出力端子数が1つ多いので、1カラム分(図2の破線部分)が並列に追加されることとなる。上述の点を除き構成が同様であるので、詳細説明を省略する。
【0051】
出力制御回路23bは、ルックアップテーブル本体23aの出力からルックアップテーブル23の出力端子23dと同数の出力を生成する。
【0052】
図7に出力制御回路23bの構成例を示している。この出力制御回路23bでは、出力端子23dの各出力DQ(i=0、1、2)は、CN、CRにより制御されている。ルックアップテーブル本体23aの4つの出力をDO(j=0~3)として、出力DQを例にとり、さらに詳説すると、(CN、CR)=(0、0)である場合、出力DQは0でマスクされる。
【0053】
(CN、CR)=(1、0)又は(0、1)である場合は、それぞれDO、DOが選択される。例えばDOを出力する場合が通常の状態であるとすると、通常の状態では不安定な出力を示す現象が認められる場合、これをDOに差し替えることで安定性を向上させることができる。PUFにより決まる出力は、上述のように製造バラつき等を利用しているため、例えば電源投入ごとに出力が異なりレスポンス出力が不安定となるといった場合が生じ得る。これに対し、ルックアップテーブル23の入力端子23cと同数の入力端子及びルックアップテーブル23の出力端子23dより多数の出力端子を有するルックアップテーブル本体23aを有することで、ルックアップテーブル23に冗長な出力を設け、出力制御回路23bにより、これらの出力から安定度の高い出力を選択的に利用し、レスポンス出力を安定化させることができる。
【0054】
また、(CN、CR)=(1、1)とすると、ルックアップテーブル本体23aの出力を論理演算した結果(ここではDOとDOとの排他的論理和)をルックアップテーブル23の出力端子23d(ここではDQ)に出力する。このようにルックアップテーブル本体23aの出力の論理演算結果を出力することで、機械学習攻撃に対する耐性を高めることができる。
【0055】
さらに、例えば(CN、CR)=(1、0)、(0、1)、(1、1)を動的に、あるいは周期的に切り替えてもよい。これにより、あたかも異なるPUFを有するルックアップテーブルのように振る舞わせることができるので、機械学習攻撃で構築しなければならないモデルが複雑になる。また、フィードバックを繰り返すうちに以前と同一のルックアップテーブル入力値が偶然出現した場合等に発生する周期性による乱数性の低下を抑止することができる。従って、機械学習攻撃に対する耐性を高めることができる。
【0056】
(その他)
PUFが生成するチップ固有乱数を安定化する乱数安定化部を備え、上記乱数安定化部が、不安定と検出されたPUFが発生するチップ固有乱数をマスクする乱数マスク回路を有してもよい。
【0057】
ルックアップテーブル21内で不安定な出力を示すビットセル21cが検出されている場合において、ルックアップテーブル21の入力端子21aに、このビットセル21cを選択する入力が入力された場合、このビットセル21cの出力をその論地値にかかわらず論理値0又は1に固定する。このように不安定と検出されたPUFが発生するチップ固有乱数をマスクする構成を有することで、レスポンス出力Rを安定化させることができる。
【0058】
具体的構成として、例えばルックアップテーブル21の各ビットセル21cに対応したシャドーメモリ(不揮発性メモリ)を用意し、不安定であることが検出されたビットセル21cのメモリ値を0、他のビットセル21cのメモリ値を1とする。各ビットセル21cの選択とともに、上記シャドーメモリの該当するメモリ値も選択し、両者の論理積(AND)をルックアップテーブル21の出力とする。このように構成することで、不安定なビットセル21cの出力を0に固定することができる。
【0059】
不安定なビットセル21cの検出は、例えば当該チップ固有乱数発生装置1が搭載されている集積回路チップの出荷前に、温度や電源電圧条件を変えてテストを行い不安定性を判定してもよいし、安定性検出回路を搭載して、CRPの不一致から例えばAI等を利用して検出してもよい。
【0060】
以上、ビットセル21cの安定化を図る手段についていくつか述べたが、2以上の手段を同一のルックアップテーブル21に対して同時に使用してもよい。また、異なるルックアップテーブル21に対して異なる手段を実装することを妨げない。
【0061】
<出力部>
出力部30は、図1に示すようにレスポンス出力Rを生成する。出力部30は、出力部30への現在の論理入力により決定される第1レスポンス出力回路31と、第1レスポンス出力回路31の過去の出力履歴により決定される第2レスポンス出力回路32と、第1レスポンス出力回路31及び第2レスポンス出力回路32の出力の論理演算を行う論理演算回路33とを有する。出力部30のレスポンス出力Rは、論理演算回路33の出力により決定される。つまり、当該チップ固有乱数発生装置1は、チャレンジ入力端子10から出力部30の出力に至る経路中に、現在の論理入力により決定される第1出力回路(第1レスポンス出力回路31)と、上記第1出力回路の過去の出力履歴により決定される第2出力回路(第2レスポンス出力回路32)と、上記第1出力回路及び上記第2出力回路の出力の論理演算を行う論理演算回路33とを有している。
【0062】
第1レスポンス出力回路31は、組み合わせ論理により実現されている。第1レスポンス出力回路31の組み合わせ論理は、任意に設定できるが、例えば図1に示すように第1ルックアップテーブル部20の出力端子21bの全ビットについて排他的論理和を演算する論理回路とすることができる。排他的論理和は、ランダムな入力に対して0と1とを出力する確率が等しいので、機械学習攻撃に対する耐性を高め易い。
【0063】
第2レスポンス出力回路32の出力は、第1レスポンス出力回路31の出力のみでは決定されず、この第1レスポンス出力回路31の過去の履歴に依存する。図7では、第2レスポンス出力回路32として、第1レスポンス出力回路31の出力の1(又は0)の数を数えるカウンタ回路を用い、その最下位ビット(LSB)を出力としている。つまり、第1レスポンス出力回路31の出力が1(又は0)となるたびに第2レスポンス出力回路32の出力は反転し、第1レスポンス出力回路31の出力が1(又は0)であっても第2レスポンス出力回路32の出力は0にも1にもなり得る。
【0064】
なお、第2レスポンス出力回路32は、第1レスポンス出力回路31の過去の出力履歴により決定される論理回路であれば、カウンタ回路に限定されるものではなく、例えばシフトレジスタ回路等を用いてもよい。例えば最上位ビットから入力されるシフトレジスタ回路を用いる場合、例えば最下位ビットを用いてもよいし、下位2ビットの排他的論理和を用いてもよい。また、第2レスポンス出力回路32として、新たな一連のCRP生成動作の都度、履歴をリセットする構成又は履歴をリセットしない構成を採用可能であるが、履歴をリセットしない構成が好ましい。
【0065】
論理演算回路33の論理は、任意に決定できるが、例えば第1レスポンス出力回路31と同様に、排他的論理和を演算する組み合わせ回路とすることができる。
【0066】
このように現在の論理入力により決定される第1レスポンス出力と、上記第1レスポンス出力の過去の履歴により決定される第2レスポンス出力との論理演算により出力部30のレスポンス出力Rを決定することで、あたかも異なるPUFを有するルックアップテーブルのように振る舞わせることができるので、機械学習攻撃で構築しなければならないモデルが複雑になる。従って、機械学習攻撃に対する耐性をさらに高めることができる。
【0067】
特に第2レスポンス出力回路32として履歴をリセットしない構成では、同じチャレンジ入力Ciに対しても過去の履歴により異なるレスポンス出力Rを発生させることができる。従来のチップ固有乱数発生装置では、同じチャレンジ入力Ciに対して同じレスポンス出力Rが発生するため、通信経路の盗聴等によりレスポンス出力Rが知られると、なりすましに用いられるおそれがある。このため、従来のチップ固有乱数発生装置では、原則としてCRPは使い捨てされ、1度しか使用されない。これに対し、同じチャレンジ入力Ciに対して異なるレスポンス出力Rが得られる場合、同じチャレンジ入力Ciが繰り返し使用されても、レスポンス出力Rを予測することは困難である。従って、第2レスポンス出力回路32として履歴をリセットしない構成を採用することで、過去に使用したチャレンジ入力Ciを繰り返し使用できる認証システムの構築が可能となる。すなわち膨大なCRPを準備する必要がなく、ひいては機械学習攻撃に対する耐性を維持しつつ、当該チップ固有乱数発生装置1の低コスト化及び低消費電力化が可能となる。
【0068】
<フィードバック部>
フィードバック部40は、出力部30へ入力される第1信号40aと、チャレンジ入力端子10から入力される第2信号40bとの論理演算を行い、その結果を第1ルックアップテーブル部20に入力する。このようにフィードバック部40を設けることで、ルックアップテーブル21の規模(入出力端子数及び個数)を増やすことなく、機械学習攻撃に対する耐性をさらに高めることができる。また、フィードバック部40を有することで、複数のビット幅を持つチャレンジ入力Ciを時分割して入力できるので、ルックアップテーブル21の規模を増やすことなくチャレンジ入力数を増やすことができる。さらに、同一のチャレンジ入力Ciを維持してもフィードバックと出力を繰り返すことでレスポンス数を増やすことができる。このように1組のチャレンジ入力Ciで多数のレスポンス出力Rを得ることで、認証に要するCRP数が少なくなるため、高スループット化及び低エネルギー化を図ることができる。
【0069】
上記論理演算は、第1論理演算回路40cで行われる。上記論理演算としては、特に限定されないが、例えば第1信号40aと第2信号40bとの各ビット単位での排他的論理和を用いることができる。なお、上記論理演算は、演算される論理式が動的に変わるものであってもよい。例えば1回目の論理演算では第1信号40aの入力が存在しないような場合があるが、このように第1信号40aの入力が存在しないタイミングでは正転出力とし、第1信号40aの入力が存在するタイミングでは反転出力とするといったように、論理の生成過程を複雑化することで機械学習攻撃に対する耐性をさらに高められる。
【0070】
また、フィードバック部40への第1信号40aの入力及び第2信号40bの入力は、同期して更新されるとよい。具体的には、チャレンジ入力端子10から入力される第2信号40bの変化タイミングに同期するクロックにより値が更新される順序回路(フリップフロップ)を設け、この順序回路に第1信号40a論理値又は第1ルックアップテーブル部20に入力する論理値を記憶させるとよい。なお、第1ルックアップテーブル部20に入力する論理値を記憶させる場合は、その論理値の変化により第1ルックアップテーブル部20を経て第1信号40aへ速やかに変化が伝達されることになるので、実質的に第1信号40aの入力は、第2信号40bの入力に同期して更新されることとなる。
【0071】
このようにフィードバック部40への第1信号40aの入力及び第2信号40bの入力を同期して更新することで、当該チップ固有乱数発生装置1の出力が不安定となることを抑止ができる。
【0072】
図1で、第1ルックアップテーブル部20の3つのルックアップテーブル21を、チャレンジ入力端子10のC~Cを入力とする下位ルックアップテーブル21x、チャレンジ入力端子10のC~Cを入力とする中位ルックアップテーブル21y、チャレンジ入力端子10のC~Cを入力とする上位ルックアップテーブル21zとすると、下位ルックアップテーブル21xの入力は、第1ビットには、下位ルックアップテーブル21xの第1ビットがフィードバックされ、第2ビットには、中位ルックアップテーブル21yの第1ビットがフィードバックされ、第3ビットには、上位ルックアップテーブル21zの第1ビットがフィードバックされて論理演算がなされている。中位ルックアップテーブル21y及び上位ルックアップテーブル21zも同様の構成をとっている。
【0073】
このようにフィードバック部40が、第1信号40aのうち異なるルックアップテーブル21に起因する論理演算結果を、第1ルックアップテーブル部20の1のルックアップテーブル21の入力端子21aに入力するよう構成されているとよい。第1信号40aのうち異なるルックアップテーブル21に起因する論理演算結果を、第1ルックアップテーブル部20の1のルックアップテーブル21の入力端子21aに入力することで、有限のCRPからその出力を機械学習により予測することをさらに困難なものとすることができる。従って、機械学習攻撃に対する耐性をさらに高めることができる。
【0074】
逆に、下位ルックアップテーブル21xの出力は、第1ビットが下位ルックアップテーブル21xの第1ビットにフィードバックされ、第2ビットが中位ルックアップテーブル21yの第1ビットにフィードバックされ、第3ビットが上位ルックアップテーブル21zの第1ビットにフィードバックされて論理演算がなされている。中位ルックアップテーブル21y及び上位ルックアップテーブル21zも同様の構成をとっている。
【0075】
このようにフィードバック部40が、第1信号40aのうち1のルックアップテーブル21に起因する論理演算結果を、第1ルックアップテーブル部20の全てのルックアップテーブル21の入力端子21aに入力するよう構成されているとよい。第1信号40aのうち1のルックアップテーブル21に起因する論理演算結果を、第1ルックアップテーブル部20の全てのルックアップテーブル21の入力端子21aに入力することで、有限のCRPからその出力を機械学習により予測することをさらに困難なものとすることができる。従って、機械学習攻撃に対する耐性をさらに高めることができる。
【0076】
機械学習攻撃に対する耐性をさらに高めるため、図8のようにフィードバック部41を構成してもよい。フィードバック部41は、第1信号40aを入力とする第2論理演算回路40dをさらに有し、第1信号40aのうち異なるルックアップテーブル21に起因する論理演算結果を、第1ルックアップテーブル部20の1のルックアップテーブル21の1の入力端子21aに入力するよう構成されている。
【0077】
下位ルックアップテーブル21x、中位ルックアップテーブル21y及び上位ルックアップテーブル21zを添え字i(i=x、y、z)、各ルックアップテーブル21の各ビットを添え字j(j=1、2、3)で表し、第2論理演算回路40dの出力bijは、各ルックアップテーブル21の出力をDQijとするとき、例えば
x1=EXOR(DQ11、DQ21、DQ31
x2=EXOR(DQ12、DQ22、DQ32
x3=EXOR(DQ13、DQ23、DQ33
y1=EXOR(DQ11、DQ23、DQ32
y2=EXOR(DQ12、DQ21、DQ33
y3=EXOR(DQ13、DQ22、DQ31
z1=EXOR(DQ11、DQ22、DQ33
z2=EXOR(DQ12、DQ23、DQ31
z3=EXOR(DQ13、DQ21、DQ32
とすることができる。
【0078】
<利点>
当該チップ固有乱数発生装置1は、複数のチャレンジ入力端子10の下流側に、複数のルックアップテーブル21が並列に配されている。個々のルックアップテーブル21は、複数のPUFにより、入力端子21aに入力される信号を符号変換するので、出力の不規則性が高く、有限のCRPからその出力を機械学習により予測することが困難である。従って、当該チップ固有乱数発生装置1は、機械学習攻撃に対する耐性が高い。また、複数のチャレンジ入力端子10に対して分割してルックアップテーブル21を設けるので、ルックアップテーブル21全体の規模が比較的小さく、集積回路チップの低コスト化と低消費電力化とに有利である。
【0079】
[第2実施形態]
以下、本発明の第2の実施形態に係るチップ固有乱数発生装置について、適宜図面を参照しつつ説明する。
【0080】
図9に示すチップ固有乱数発生装置2は、集積回路チップに搭載されるチップ固有乱数発生装置である。当該チップ固有乱数発生装置2は、複数のチャレンジ入力端子10と、チャレンジ入力端子10の下流側に接続される第1ルックアップテーブル部20と、第1ルックアップテーブル部20の下流側に接続される出力部30と、チャレンジ入力端子10と第1ルックアップテーブル部20との間に配置されるフィードバック部40と、第1ルックアップテーブル部20及び出力部30の間に接続される第2ルックアップテーブル部60とを備える。第1ルックアップテーブル部20には、複数のルックアップテーブル21が並列に配置されており、ルックアップテーブル21が、複数の入力端子21a及び複数の出力端子21bを有するとともに、チップ固有乱数を発生する複数のPUFにより、入力端子21aに入力される信号を符号変換して出力端子21bに出力する。また、出力部30は、レスポンス出力Rを生成する。
【0081】
第1ルックアップテーブル部20、出力部30及びフィードバック部40は、第1実施形態と同様に構成できるので、同一符号を付し詳説を省略する。以下、主に第2ルックアップテーブル部60について説明する。また、第1実施形態と同様に、チャレンジ入力端子10の端子数が9であり、第1ルックアップテーブル部20が、3つの入力端子21a及び3つの出力端子21bを有する3つのルックアップテーブル21を有する場合を例にとり説明するが、当該チップ固有乱数発生装置2は、この構成に限定されることを意味するものではない。
【0082】
第2ルックアップテーブル部60は、複数のルックアップテーブル61が並列に配置されている。第2ルックアップテーブル部60を構成する複数のルックアップテーブル61の入力端子61aの端子数の合計は、第1ルックアップテーブル部20を構成する複数のルックアップテーブル21の入力端子21aの端子数の合計と等しい。
【0083】
各ルックアップテーブル61は、第1ルックアップテーブル21と同様に構成することができる。ここでは、第2ルックアップテーブル部60が、3つの入力端子61a及び3つの出力端子61bを有する3つのルックアップテーブル61を有する場合を例にとり説明するが、当該チップ固有乱数発生装置2は、この構成に限定されることを意味するものではない。
【0084】
図9に示すチップ固有乱数発生装置2では、第1ルックアップテーブル部20の下位ルックアップテーブル21xの3ビットの出力は、それぞれ第2ルックアップテーブル部60を構成する3つのルックアップテーブル61の第1ビットへ入力されている。同様に、第1ルックアップテーブル部20の中位ルックアップテーブル21yの3ビットの出力は、それぞれ第2ルックアップテーブル部60を構成する3つのルックアップテーブル61の第2ビットへ入力され、第1ルックアップテーブル部20の上位ルックアップテーブル21zの3ビットの出力は、それぞれ第2ルックアップテーブル部60を構成する3つのルックアップテーブル61の第3ビットへ入力されている。
【0085】
このように第1ルックアップテーブル部20の1のルックアップテーブル21の複数の出力端子21bが、第2ルックアップテーブル部60の複数のルックアップテーブル61の入力端子61aに接続されているとよい。
【0086】
<利点>
当該チップ固有乱数発生装置2は、第2ルックアップテーブル部60を備え、第1ルックアップテーブル部20の1のルックアップテーブル21の複数の出力端子21bを第2ルックアップテーブル部60の複数のルックアップテーブル61の入力端子61aに接続することで、有限のCRPからその出力を機械学習により予測することをさらに困難なものとすることができる。従って、当該チップ固有乱数発生装置2は、機械学習攻撃に対する耐性をさらに高めることができる。
【0087】
[その他の実施形態]
上記実施形態は、本発明の構成を限定するものではない。従って、上記実施形態は、本明細書の記載及び技術常識に基づいて上記実施形態各部の構成要素の省略、置換又は追加が可能であり、それらは全て本発明の範囲に属するものと解釈されるべきである。
【0088】
上記実施形態では、PUFがSRAMのビットセルから構成されている場合を説明したが、PUFとして他の構成を採用することもできる。PUFとして、例えば不揮発メモリPUF、直列NAND PUF、グリッジPUF、アービターPUF、リングオシレータPUF、バタフライPUF等のPUFを使用することもできる。
【0089】
上記実施形態では、出力部が1ビットのレスポンスを出力する場合を説明したが、複数のレスポンスを出力する構成とすることもできる。この場合、例えば上述の実施形態であれば、3つの異なるルックアップテーブルの3ビットの出力端子から1ビットずつを排他的に選択して演算(例えば排他的論理和)した3ビットの出力をレスポンス出力とすることができる。レスポンス出力を多ビット化することで、レスポンス効率を高められ、認証時間の短縮や、消費電力の削減を図ることができる。
【0090】
上記実施形態では、1層又は2層のルックアップテーブル部を備える場合を説明したが、3層以上のルックアップテーブルを備えてもよい。また、2層目以降のルックアップテーブルの出力端子数を入力端子数よりも少なくすることで所望のビット数のレスポンス出力を得てもよい。この場合、ルックアップテーブル部は、出力部の一部を兼ねる。このように多層化することで、機械学習攻撃に対する耐性をさらに高めることができる。
【0091】
上記実施形態では、出力部が現在の論理入力により決定される第1レスポンス出力回路と、上記第1レスポンス出力の過去の出力履歴により決定される第2レスポンス出力回路と、上記第1レスポンス出力回路及び上記第2レスポンス出力回路の出力の論理演算を行う論理演算回路とを有する場合を説明したが、出力部は、第1レスポンス出力回路のみにより構成されてもよい。この場合、出力部の出力は、現在の論理入力のみにより決定される。
【0092】
上記実施形態では、フィードバック部を備える場合を説明したが、フィードバック部は必須の構成要件ではない。フィードバック部を備えないチップ固有乱数発生装置も本発明の意図するところである。
【0093】
上記第2実施形態では、フィードバック部の出力部へ入力される第1信号、つまり第2ルックアップテーブル部の出力信号と、チャレンジ入力端子から入力される第2信号との論理演算を行い、その結果を第1ルックアップテーブル部に入力する場合を示した。この構成に代えて、第1信号を第1ルックアップテーブル部の出力信号とすることもできる。また、第1信号が第2ルックアップテーブル部の出力信号である場合において、上記第2信号を第2ルックアップテーブル部の出力信号とし、上記第1信号と上記第2信号との論理演算の結果を第2ルックアップテーブル部に入力する構成とすることもできる。
【0094】
上記実施形態では、出力部が第1レスポンス出力回路、第2レスポンス出力回路及び論理演算回路を有している場合を説明したが、これらの回路は、チャレンジ入力端子から出力端子に至る経路中の任意の位置、例えば第1ルックアップテーブル部の入力端子側、出力制御回路の出力側等に配置されていてもよい。このような位置に配置される場合であっても、出力部のレスポンス出力は上記論理演算回路の出力により決定されるので、同様の効果を奏する。
【産業上の利用可能性】
【0095】
以上説明したように、本発明のチップ固有乱数発生装置は、低コスト化及び低消費電力化が可能であり、かつ機械学習攻撃に対する耐性が高い。
【符号の説明】
【0096】
1、2 チップ固有乱数発生装置
10 チャレンジ入力端子
20 第1ルックアップテーブル部
21、22、23 ルックアップテーブル
21a、23c 入力端子
21b、23d 出力端子
21c、21g ビットセル
21d ローデコーダ
21e カラムデコーダ
21f センスアンプ
21x 下位ルックアップテーブル
21y 中位ルックアップテーブル
21z 上位ルックアップテーブル
23a ルックアップテーブル本体
23b 出力制御回路
30 出力部
31 第1レスポンス出力回路
32 第2レスポンス出力回路
33 論理演算回路
40、41 フィードバック部
40a 第1信号
40b 第2信号
40c 第1論理演算回路
40d 第2論理演算回路
50 ラッチ回路
51 第1CMOSインバータ
51a PMOS
51b NMOS
52 第2CMOSインバータ
52a PMOS
52b NMOS
53 安定化回路
53a 第1PMOS
53b 第2PMOS
54 パストランジスタ
55 安定化回路
55a 第1NMOS
55b 第2NMOS
56 安定化回路
56a 書込用CMOSインバータ
56b 書込用ドライバ
60 第2ルックアップテーブル部
61 ルックアップテーブル
61a 入力端子
61b 出力端子
100 アービターPUF
101 多段遅延回路
102 選択回路
103 アービター
Ci チャレンジ入力
R レスポンス出力
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10