特許第6445570号(P6445570)IP Force 特許公報掲載プロジェクト 2015.5.11 β版

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

▶ 国立研究開発法人産業技術総合研究所の特許一覧
特許6445570デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム
<>
  • 特許6445570-デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム 図000002
  • 特許6445570-デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム 図000003
  • 特許6445570-デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム 図000004
  • 特許6445570-デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム 図000005
  • 特許6445570-デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム 図000006
  • 特許6445570-デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム 図000007
  • 特許6445570-デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム 図000008
  • 特許6445570-デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム 図000009
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】6445570
(24)【登録日】2018年12月7日
(45)【発行日】2018年12月26日
(54)【発明の名称】デバイス固有情報の誤り率制御方法とデバイス固有情報の誤り率制御プログラム
(51)【国際特許分類】
   H04L 9/10 20060101AFI20181217BHJP
   H04L 9/32 20060101ALI20181217BHJP
   G09C 1/00 20060101ALI20181217BHJP
【FI】
   H04L9/00 621Z
   H04L9/00 675A
   G09C1/00 640E
【請求項の数】8
【全頁数】17
(21)【出願番号】特願2016-545474(P2016-545474)
(86)(22)【出願日】2015年8月20日
(86)【国際出願番号】JP2015073433
(87)【国際公開番号】WO2016031682
(87)【国際公開日】20160303
【審査請求日】2017年2月9日
(31)【優先権主張番号】特願2014-175824(P2014-175824)
(32)【優先日】2014年8月29日
(33)【優先権主張国】JP
【国等の委託研究の成果に係る記載事項】(出願人による申告)平成26年度、独立行政法人科学技術振興機構戦略的創造研究推進事業(チーム型研究(CREST))委託研究「サイドチャネル攻撃への安全性評価手法の確立およびPUFデバイスの実装・評価とセキュリティシステムへの応用」、産業技術力強化法第19条の適用を受ける特許出願
(73)【特許権者】
【識別番号】301021533
【氏名又は名称】国立研究開発法人産業技術総合研究所
(74)【代理人】
【識別番号】110002066
【氏名又は名称】特許業務法人筒井国際特許事務所
(72)【発明者】
【氏名】堀 洋平
(72)【発明者】
【氏名】古原 和邦
(72)【発明者】
【氏名】片下 敏宏
(72)【発明者】
【氏名】松井 俊浩
【審査官】 金木 陽一
(56)【参考文献】
【文献】 米国特許出願公開第2011/0066670(US,A1)
【文献】 米国特許出願公開第2014/0201851(US,A1)
【文献】 欧州特許出願公開第2326043(EP,A1)
【文献】 ROSTAMI, M., et al.,Robust and Reverse-Engineering Resilient PUF Authentication and Key-Exchange by Substring Matching,IEEE Transactions on Emerging Topics in Computing,[online],2014年 5月 7日,Vol. 2, No. 1,pp. 37-49,[retrieved on 2018-04-05.] Retrieved from the Internet,URL,http://doi.org/10.1109/TETC.2014.2300635
(58)【調査した分野】(Int.Cl.,DB名)
H04L 9/10
G09C 1/00
H04L 9/32
(57)【特許請求の範囲】
【請求項1】
PUF搭載チップの真贋判定方法を決定するコンピュータが実行する、デバイス固有情報の誤り率制御方法であって、
i個(iは任意の自然数)の入力データを物理複製困難回路にそれぞれj回(jは任意の自然数)入力し、j個のレスポンスをj’個(j’は任意の自然数で、0<j’≦j)に加工し、各々の前記入力データと対応付けて予め記憶手段に記憶させる第1のステップと、
前記記憶手段に前記i個の入力データを入力して、それぞれ対応する前記j’個のレスポンスを前記記憶手段から読み出して各入力データに対して得られたj’個のレスポンスを連結し、連結したデータをさらにk’個繰り返して連結(k’は任意の自然数で0<k’≦k。但し、kは任意の自然数。なお、kは、前記i及び前記jが共に1のとき2以上となる。)し、得られたデータをさらに入力データの異なるi個分について連結することによって基準データを生成する第2のステップと、
前記物理複製困難回路に前記i個の入力データを各入力データにつきk回入力して、得られたk個のレスポンスをk’個に加工して得られたk’個の各レスポンスをj’回繰り返して連結し、さらにそのj’個分のレスポンスを全てのk’について連結し各入力データにつき(j’×k’)個分のレスポンスを得て、さらに各入力データにつき(j’×k’)個分のレスポンスを異なる入力データに対しても連結し(i×j’×k’)個分のレスポンスから成る合成出力データを生成する第3のステップと、
前記合成出力データが前記基準データと同一の範囲にあるか否かを判定する第4のステップと、
前記第4のステップにおける前記判定の結果、前記合成出力データの誤り率が予め設定した範囲内であるか否かを判断する第5のステップとを有し、
前記第5のステップにおいて、前記誤り率が前記予め設定した範囲内にないと判断された場合には、前記i、j、j’、k、k’のうち少なくとも一つを変更した上で、前記誤り率が前記予め設定した範囲内に入るまで前記第1から第5までのステップを繰り返し、
前記第5のステップにおいて、前記誤り率が前記予め設定した範囲内にあると判断された場合には、前記i、j、j’、k、k’をPUF搭載チップの真贋判定に用いるパラメータに決定し、
前記第1のステップにおける加工は、前記j個のレスポンスをj’個の部分集合に分割し、各部分集合内でレスポンスの各軸を代表する値を決定する処理であり、
前記第3のステップにおける加工は、前記k個のレスポンスをk’個の部分集合に分割し、各部分集合内でレスポンスの各軸を代表する値を決定する処理である、
デバイス固有情報の誤り率制御方法。
【請求項2】
前記第1のステップでは、前記j’が2以上の自然数である場合には、j’個のレスポンスを相互に相違する部分を示す情報に圧縮して前記記憶手段に記憶させる、請求項1に記載のデバイス固有情報の誤り率制御方法。
【請求項3】
前記i、j、kのうちいずれか一つ若しくは二つのみが定数1である、請求項1又は2
に記載のデバイス固有情報の誤り率制御方法。
【請求項4】
PUF搭載チップの真贋判定方法を決定するコンピュータが実行する、デバイス固有情報の誤り率制御方法であって、
物理複製困難回路への入力データを初期設定する第1のステップと、
i個(iは任意の自然数)の初期設定された前記入力データを前記物理複製困難回路にそれぞれj回(jは任意の自然数)入力し、j個のレスポンスをj’個(j’は任意の自然数で、0<j’≦j)に加工し、各々の前記入力データと対応付けて予め記憶手段に記憶させる第2のステップと、
前記記憶手段に前記i個の入力データを入力して、それぞれ対応する前記j’個のレスポンスを前記記憶手段から読み出して各入力データにつきj’個のレスポンスを連結し、連結したデータをさらにk’個繰り返し連結(k’は任意の自然数で、0<k’≦k。但し、kは任意の自然数。なお、kは、前記i及び前記jが共に1のとき2以上となる。)し各入力データにつき連結された(j’×k’)個分のレスポンスを得て、さらに、得られた前記レスポンスを異なる入力データについても連結することにより(i×j’×k’)個分の連結されたレスポンスを得ることによって基準データを生成する第3のステップと、
前記物理複製困難回路に前記i個の入力データを各入力データにつきk回入力して得られたk個のレスポンスをk’個に加工して得られたk’個のレスポンスを、各レスポンスにつきj’回繰り返して連結し、それをさらに全てのk’に対して連結した(j’×k’)個分の連結レスポンスを、さらに異なる入力データに対しても連結した(i×j’×k’)個分の連結レスポンスを得ることによって合成出力データを生成する第4のステップと、
前記合成出力データが前記基準データと同一の範囲にあるか否かを判定する第5のステップと、
前記第5のステップにおける前記判定の結果、前記合成出力データの誤り率が予め設定した範囲内であるか否かを判断する第6のステップとを有し、
前記第6のステップにおいて、前記誤り率が前記予め設定した範囲内にないと判断された場合には、前記入力データを変更した上で、前記誤り率が前記予め設定した範囲内に入るまで前記第1から第6までのステップを繰り返し、
前記第6のステップにおいて、前記誤り率が前記予め設定した範囲内にあると判断された場合には、前記入力データをPUF搭載チップの真贋判定に用いる入力データに決定し、
前記第2のステップにおける加工は、前記j個のレスポンスをj’個の部分集合に分割し、各部分集合内でレスポンスの各軸を代表する値を決定する処理であり、
前記第4のステップにおける加工は、前記k個のレスポンスをk’個の部分集合に分割し、各部分集合内でレスポンスの各軸を代表する値を決定する処理である、
デバイス固有情報の誤り率制御方法。
【請求項5】
PUF搭載チップの真贋判定方法を決定するコンピュータに、デバイス固有情報の誤り率を制御する装置として機能するように処理を実行させるデバイス固有情報の誤り率制御プログラムであって
i個(iは任意の自然数)の入力データを物理複製困難回路にそれぞれj回(jは任意の自然数)入力して、j個のレスポンスをj’個(j’は任意の自然数で、0<j’≦j)に加工し、各々の前記入力データと対応付けて予め記憶手段に記憶する第1の手順と、
前記記憶手段に前記i個の入力データを入力し、それぞれ対応する前記j’個のレスポンスを前記記憶手段から読み出し、各入力データにつきj’個のレスポンスを連結し、連結したデータをさらにk’個繰り返し連結(k’は任意の自然数で、0<k’≦k。但し、kは任意の自然数。なお、kは、前記i及び前記jが共に1のときは2以上となる。)し、各入力データにつき連結された(j’×k’)個分のレスポンスを得て、さらに、得られた前記レスポンスを異なる入力データについても連結することにより(i×j’×k’)個分の連結されたレスポンスを得ることによって基準データを生成する第2の手順と、
前記物理複製困難回路に前記i個の入力データを各入力データにつきk回入力し、得られたk個のレスポンスをk’個に加工して得られたk’個のレスポンスを、各レスポンスにつきj’回繰り返して連結し、それをさらに全てのk’に対して連結した(j’×k’)個分の連結レスポンスを、さらに異なる入力データに対しても連結した(i×j’×k’)個分の連結レスポンスを得ることによって合成出力データを生成する第3の手順と、
前記合成出力データが前記基準データと同一の範囲にあるか否かを判定する第4の手順と、
前記第4の手順における前記判定の結果、前記合成出力データの誤り率が予め設定した範囲内であるか否かを判断する第5の手順とを実行させ、
前記第5の手順において、前記誤り率が前記予め設定した範囲内にないと判断された場合には、前記i、j、j’、k、k’のうち少なくとも一つを変更した上で、前記誤り率が前記予め設定した範囲内に入るまで前記第1から第5までの手順を繰り返させ
前記第5の手順において、前記誤り率が前記予め設定した範囲内にあると判断された場合には、前記i、j、j’、k、k’をPUF搭載チップの真贋判定に用いるパラメータに決定し、
前記第1の手順における加工は、前記j個のレスポンスをj’個の部分集合に分割し、各部分集合内でレスポンスの各軸を代表する値を決定する処理であり、
前記第3の手順における加工は、前記k個のレスポンスをk’個の部分集合に分割し、各部分集合内でレスポンスの各軸を代表する値を決定する処理である、
デバイス固有情報の誤り率制御プログラム。
【請求項6】
前記第1の手順では、前記j’が2以上の自然数である場合には、j’個のレスポンスを相互に相違する部分を示す情報に圧縮して前記記憶手段に記憶する、請求項5に記載のデバイス固有情報の誤り率制御プログラム。
【請求項7】
前記i、j、kのうちいずれか一つ若しくは二つのみが定数1である、請求項5又は6
に記載のデバイス固有情報の誤り率制御プログラム。
【請求項8】
PUF搭載チップの真贋判定方法を決定するコンピュータに、デバイス固有情報の誤り率を制御する装置として機能するように処理を実行させるデバイス固有情報の誤り率制御プログラムであって、
物理複製困難回路への入力データを初期設定する第1の手順と、
i個(iは任意の自然数)の初期設定された前記入力データを前記物理複製困難回路にそれぞれj回(jは任意の自然数)入力し、j個のレスポンスをj’個(j’は任意の自然数で、0<j’≦j)に加工し、各々の前記入力データと対応付けて予め記憶手段に記憶させる第2の手順と、
前記記憶手段に前記i個の入力データを入力して、それぞれ対応する前記j’個のレスポンスを前記記憶手段から読み出し、各入力データにつきj’個のレスポンスを連結し、連結したデータをさらにk’個繰り返し連結(k’は任意の自然数で、0<k’≦k。但し、kは任意の自然数。なお、前記i及び前記jが共に1のときは2以上となる。)し、各入力データにつき連結された(j’×k’)個分のレスポンスを得て、さらに、得られた前記レスポンスを異なる入力データについても連結することにより(i×j’×k’)個分の連結されたレスポンスを得ることによって基準データを生成する第3の手順と、
前記物理複製困難回路に前記i個の入力データを各入力データにつきk回入力して、得られたk個のレスポンスをk’個に加工して得られたk’個のレスポンスを、各レスポンスにつきj’回繰り返して連結し、それをさらに全てのk’に対して連結した(j’×k’)個分の連結レスポンスを、さらに異なる入力データに対しても連結した(i×j’×k’)個分の連結レスポンスを得ることによって合成出力データを生成する第4の手順と、
前記合成出力データが前記基準データと同一の範囲にあるか否かを判定する第5の手順と、
前記第5の手順における前記判定の結果、前記合成出力データの誤り率が予め設定した範囲内であるか否かを判断する第6の手順とを実行させ、
前記第6の手順において、前記誤り率が前記予め設定した範囲内にないと判断された場合には、前記入力データを変更した上で、前記誤り率が前記予め設定した範囲内に入るまで前記第1から第6までの手順を繰り返させ
前記第6の手順において、前記誤り率が前記予め設定した範囲内にあると判断された場合には、前記入力データをPUF搭載チップの真贋判定に用いる入力データに決定し、
前記第2の手順における加工は、j個のレスポンスをj’個の部分集合に分割し、各部分集合内でレスポンスの各軸を代表する値を決定する処理であり、
前記第4の手順における加工は、k個のレスポンスをk’個の部分集合に分割し、各部分集合内でレスポンスの各軸を代表する値を決定する処理である、
デバイス固有情報の誤り率制御プログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、デバイス固有情報の誤り率を制御する技術に関するものである。
【背景技術】
【0002】
これまで、物理複製困難関数(Physically Unclonable Function:PUF)を利用したデバイス認証技術が種々考案されており、例えば以下の特許文献1には複数の物理的なトークンに対するチャレンジ・レスポンスを用いた認証方式が開示されている。
【0003】
また、特許文献2にはPUFの経年劣化情報を併せて記憶することにより認証を行う方式が開示されている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】特表2009−517910号公報
【特許文献2】特願2008−543060号公報
【発明の概要】
【発明が解決しようとする課題】
【0005】
PUFは複製困難なデバイス固有情報(デバイスID)を生成する技術として有望であるが、出力にプロセスのばらつきによるノイズが多く含まれるため、PUFの出力を用いて上記固有情報を生成する場合には、ある程度の誤り率が生じてしまう。ここで、誤り率を小さくすればするほど、必要となる回路の規模及びデータサイズが大きくなるという問題がある。
【0006】
また、上記誤り率は一般的に、対象とするアプリケーションによって設定され、例えば高セキュリティが求められる建物の入退室カードや軍事機器の部品等、偽物を本物と誤ることが許されない物においては、固有情報生成手順が複雑でデータサイズが大きくても誤り率は極力小さい値が求められる。
【0007】
一方、例えばアパートの入退室カードのような物においては、誤り率としてある程度小さい値が設定されれば足りる。
【0008】
ここで、上記のようにアプリケーションごとに設定される目標誤り率に合わせてPUFを製造することは、製造コストが増大するために現実的ではないという問題もある。
【0009】
本発明は、上記のような問題を解決するためになされたもので、デバイス固有情報の誤り率を制御することのできる方法及びプログラムを提供することを目的とする。
【課題を解決するための手段】
【0010】
上記課題を解決するため、本発明は、i個(iは任意の自然数)の入力データを物理複製困難回路にそれぞれj回(jは任意の自然数)入力し、j個のレスポンスをそのまま(j’=j)、あるいはj’個(0<j’<j)に加工(具体的には、例えばj個をj’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して各々の入力データと上記物理複製困難回路のIDと対応付けて予め記憶手段に記憶させる第1のステップと、記憶手段に上記物理複製困難回路のIDとi個の入力データを入力して、それぞれの入力データに対応するj’個のレスポンスを記憶手段から読み出して連結し、連結したデータをさらにk’個繰り返し連結(0<k’≦k、かつ、kは任意の自然数)することにより、各入力データにつき(j’×k’)個分のレスポンスを得る。
なお、上記において「軸」とは、上記レスポンスを構成する各成分を意味し、例えば3成分を有するレスポンスにおいては、x軸、y軸、及びz軸の3軸となる(以下同じ)。
そして、それらをi個の入力データ分についてさらに連結して(i×j’ ×k’)個分のレスポンスを得ることにより基準データを生成する第2のステップと、上記物理複製困難回路にi個の入力データをそれぞれk回入力して、i個の各々に対して得られたk個のレスポンスをk’=kとしてそのまま、あるいはk’個に加工(具体的には、例えばk個をk’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して、各入力データにつきk’個のレスポンスを生成し、その各レスポンスをj’個繰り返し連結し、j‘個のレスポンスをさらにk’個連結することにより(j’×k’)個分のレスポンスを得て、さらにそれをi個連結することにより(i×j’×k’)個分のレスポンスを得ることによって合成出力データを生成する第3のステップと、合成出力データが基準データと同一の範囲にあるか否かを判定する第4のステップと、第4のステップにおける判定の結果、合成出力データの誤り率が予め設定した範囲内であるか否かを判断する第5のステップとを有し、第5のステップにおいて、誤り率が予め設定した範囲内にないと判断された場合には、i、j、j’、k、k’のうち少なくとも一つを変更した上で、誤り率が予め設定した範囲内に入るまで第1から第5までのステップを繰り返すデバイス固有情報の誤り率制御方法を提供する。
【0011】
また、上記課題を解決するため、本発明は、物理複製困難回路への入力データを初期設定する第1のステップと、i個(iは任意の自然数)の初期設定された入力データを上記物理複製困難回路にそれぞれj回(jは任意の自然数)入力し、j個のレスポンスをそのまま(j’=j)、あるいはj’個(0<j’<j)に加工(具体的には、例えばj個をj’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して得られた、各入力データにつきj’個のレスポンスを、上記物理複製困難回路のIDとそれに対する各々の入力データと対応付けて予め記憶手段に記憶させる第2のステップと、記憶手段に上記物理複製困難回路のIDとi個の入力データを入力して、それぞれ対応するj’個のレスポンスを記憶手段から読み出して各入力データにつきj’個のレスポンスを連結し、連結したデータをさらにk’個繰り返して連結(ここで、0<k’≦k、かつ、kは任意の自然数)することにより得た、各入力データにつき(j’×k’)個分のレスポンスを、さらに入力データの異なるi個分について連結することによって得た(i×j’×k’)個分のレスポンスから成る基準データを生成する第3のステップと、上記物理複製困難回路にi個の入力データをそれぞれk回入力して、得られた各入力データにつきk個のレスポンスをk’=kとしてそのまま、あるいはk’個に加工(具体的には、例えばk個をk’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して、各入力データにつきk’個のレスポンスを生成し、そのk’個の各レスポンスをj’個繰り返し連結し得られたj’個分のレスポンスを、さらにk’個連結することにより(j’×k’)個分のレスポンスを得て、さらにそれをi個連結することにより得られた(i×j’×k’)個分のレスポンスを合成出力データとして生成する第4のステップと、合成出力データが基準データと同一の範囲にあるか否かを判定する第5のステップと、第5のステップにおける判定の結果、合成出力データの誤り率が予め設定した範囲内であるか否かを判断する第6のステップとを有し、第6のステップにおいて、誤り率が予め設定した範囲内にないと判断された場合には、入力データを変更した上で、誤り率が予め設定した範囲内に入るまで第1から第6までのステップを繰り返すデバイス固有情報の誤り率制御方法を提供する。
【0012】
また、上記課題を解決するため、本発明は、コンピュータに、i個(iは任意の自然数)の入力データを物理複製困難回路にそれぞれj回(jは任意の自然数)入力して、j個のレスポンスをそのまま(j’=j)、あるいはj’個(0<j’<j)に加工(具体的には、例えばj個をj’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して得られた、各入力データにつきj’個のレスポンスを各々の入力データと上記物理複製困難回路のIDと対応付けて予め記憶手段に記憶する第1の手順と、記憶手段に上記物理複製困難回路のIDとi個の入力データを入力し、それぞれ対応するj’個のレスポンスを記憶手段から読み出して各入力データに対してj’個のレスポンスを連結し、連結したデータをさらにk’個繰り返し連結(ここで、0<k’≦k、かつ、kは任意の自然数)し、各入力データに対して(j’×k’)個分のレスポンスを得て、それらをi個の異なる入力データについて連結することにより得た(i×j’×k’)個分のレスポンスから成る合成出力データを生成する第2の手順と、合成出力データが基準データと同一の範囲にあるか否かを判定する第3の手順と、第3の手順における判定の結果、合成出力データの誤り率が予め設定した範囲内であるか否かを判断する第4の手順とを実行させ、第4の手順において、誤り率が予め設定した範囲内にないと判断された場合には、i、j、j’、k、k’のうち少なくとも一つを変更した上で、誤り率が予め設定した範囲内に入るまで第1から第4までの手順を繰り返させるためのデバイス固有情報の誤り率制御プログラムを提供する。
【0013】
また、上記課題を解決するため、本発明は、コンピュータに、物理複製困難回路への入力データを初期設定する第1の手順と、i個(iは任意の自然数)の初期設定された入力データを上記物理複製困難回路にそれぞれj回(jは任意の自然数)入力し、j個のレスポンスをそのまま(j’=j)、あるいはj’個(0<j’<j)に加工(具体的には、例えばj個をj’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して得られた、各入力データにつきj’個のレスポンスを上記物理複製困難回路のIDと各々の入力データと対応付けて予め記憶手段に記憶させる第2の手順と、記憶手段に上記物理複製困難回路のIDとi個の入力データを入力して、それぞれ対応するj’個のレスポンスを記憶手段から読み出して各入力データにつきj’個のレスポンスを連結し、連結したデータをさらにk’個繰り返し連結(ここで、0<k’≦k,かつ、kは任意の自然数)し、各入力データに対して(j’×k’)個分のレスポンスを得て、それらを異なる入力データに対して連結することにより得た(i×j’×k’)個分のレスポンスから成る合成出力データを生成する第3の手順と、合成出力データが基準データと同一の範囲にあるか否かを判定する第4の手順と、第4の手順における判定の結果、合成出力データの誤り率が予め設定した範囲内であるか否かを判断する第5の手順とを実行させ、第5の手順において、誤り率が予め設定した範囲内にないと判断された場合には、入力データを変更した上で、誤り率が予め設定した範囲内に入るまで第1から第5までの手順を繰り返させるためのデバイス固有情報の誤り率制御プログラムを提供する。
【発明の効果】
【0014】
本発明によれば、デバイス固有情報の誤り率を制御することができる。
【図面の簡単な説明】
【0015】
図1】本発明の実施の形態に係る[1,1,1,k,k’]モードによるPUF搭載チップの真贋判定方法を示すフローチャートである。
図2図1に示された真贋判定方法を説明するための図である。
図3】本発明の実施の形態に係る[1,j,j’,1,1]モードによるPUF搭載チップの真贋判定方法を示すフローチャートである。
図4図3に示された真贋判定方法を説明するための図である。
図5】本発明の実施の形態に係る[1,j,j’,k,k’]モードによるPUF搭載チップの真贋判定方法を示すフローチャートである。
図6】本発明の実施の形態に係る[i,j,j’,k,k’]モードによるPUF搭載チップの真贋判定方法を示すフローチャートである。
図7】本発明の実施の形態に係る利用モードの確定方法を示すフローチャートである。
図8】本発明の実施の形態に係るチャレンジ(入力データ)の確定方法を示すフローチャートである。
【発明を実施するための形態】
【0016】
以下において、本発明の実施の形態を図面を参照しつつ詳しく説明する。なお、図中同一符号は同一又は相当部分を示す。
本発明に係るデバイス固有情報の誤り率制御方法の具体例として、第1から第4の実施の形態に係るPUF搭載チップの真贋判定方法について詳しく説明する。
【0017】
[第1の実施の形態]
図1及び図2を用いて、第1の実施の形態に係る[1,1,1,k,k’]モードによるPUF搭載チップの真贋判定方法を詳しく説明する。
【0018】
ここで、PUF搭載チップとは、PUFを組み込んだ半導体集積回路を意味するが、以下においても同様である。
【0019】
また、[1,1,1,k,k’]モードとは、PUF搭載チップの真贋判定で用いるモード(以下「利用モード」ともいう。)の一つであって、図2に示されるように、PUF搭載チップICに対して1つの入力データ(チャレンジ)を入力し、得られた1つの出力データ(レスポンス)をデータベースDBに登録すると共に、真贋判定時に上記PUF搭載チップICからのk個(本実施の形態においてkは2以上の自然数とする。)のレスポンスを用いるモードを意味する。
なお、上記データベースDBは、PUF搭載チップICから出力されたレスポンスを記憶する他の手段、例えばハードディスクやメモリ回路等であってもよく、以下の実施の形態においても同様である。
【0020】
図1は、本発明の実施の形態に係る[1,1,1,k,k’]モードによるPUF搭載チップの真贋判定方法を示すフローチャートである。
まずステップS1において、図2に示されるように、上記PUF搭載チップICへ1つのチャレンジを入力し、それに対する1つのレスポンスを、入力したチャレンジおよび上記PUF搭載チップICのIDと対応させてデータベースDBに登録する。
【0021】
以下判定時における手順として、最初にステップS2において、ステップS1で登録されたIDと1チャレンジをデータベースDBに入力する。なお、ステップS1で登録されたIDを一旦データベースDBに入力することによって、予め当該IDに関連付けて登録されたチャレンジのリストを当該データベースDB等から取得し、当該リストから1チャレンジを選択してDBに入力するようにしてもよい。
【0022】
そして、ステップS3において、データベースDBからステップS2で入力された1チャレンジに対応する1レスポンスを読み出し、それをk’個繰り返して連結することによって第1の基準データを生成する。
【0023】
次に、ステップS4において、PUF搭載チップICに上記の1チャレンジをk回入力し、得られたk個のレスポンスをk’=kとしてそのまま、あるいはk’個に加工(具体的には、例えばk個をk’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)し、それらを1つに連結することによって第1の合成出力データを生成する。
なお、上記において「軸」とは、上記レスポンスを構成する各成分を意味し、例えば3成分を有するレスポンスにおいては、x軸、y軸、及びz軸の3軸となる(以下同じ)。
【0024】
そして、ステップS5において、上記第1の合成出力データは第1の基準データに類似するか否か(具体的には、両者のハミング距離がしきい値以下であるか否か)を判定し、類似するものと判定された場合にはステップS6へ進んで当該PUF搭載チップICが本物であると判断されると共に、類似しないものと判定された場合にはステップS7へ進んで当該PUF搭載チップICが偽物であると判断される。
【0025】
以上のような第1の実施の形態に係る真贋判定方法によれば、上記kやk’の値を変えることによって上記ステップS5における判定での誤り率を制御することができる。
【0026】
また、本方法ではデータベースDBに1レスポンスのデータを登録すれば足りるため、データベースDBの小規模化を図ることができる。
【0027】
また、上記のような方法により生成された第1の合成出力データや第1の基準データは、暗号鍵やそれを生成するための元データとして利用することもできる。
【0028】
[第2の実施の形態]
図3及び図4を用いて、第2の実施の形態に係る[1,j,j’,1,1]モードによるPUF搭載チップの真贋判定方法を詳しく説明する。
【0029】
ここで、[1,j,j’,1,1]モードとは、図4に示されるように、PUF搭載チップICに対して1つの同じ入力データ(チャレンジ)をj回(本実施の形態においてjは2以上の自然数とする。)入力し、得られたj個のレスポンスをそのまま(j’=j)、あるいはj’個(0<j’<j)に加工(具体的には、例えばj個をj’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)してデータベースDBに登録すると共に、真贋判定時には上記PUF搭載チップICからの1レスポンスを用いる利用モードを意味する。
【0030】
図3は、本発明の実施の形態に係る[1,j,j’,1,1]モードによるPUF搭載チップの真贋判定方法を示すフローチャートである。
【0031】
まずステップS1において、図4に示されるように、上記PUF搭載チップICへ1つの同じチャレンジをj回入力し、それに対するj個のレスポンスをそのまま(j’=j)、あるいはj’個(0<j’<j)に加工(具体的には、例えばj個をj’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して、入力したチャレンジおよび上記PUF搭載チップICのIDと対応させてデータベースDBに登録する。
【0032】
以下判定時における手順として、最初にステップS2において、ステップS1で登録された上記PUF搭載チップICのIDと1チャレンジをデータベースDBに入力する。なお、上記PUF搭載チップICのIDを一旦DBに入力し、当該IDに関連付けて予め登録されたチャレンジのリストを当該データベースDB等から取得し、当該リストから選択した1チャレンジをDBに入力するようにしてもよい。
【0033】
そして、ステップS3において、データベースDBからステップS2で入力された1チャレンジに対応するj’個のレスポンスを読み出して連結し、第2の基準データを生成する。
【0034】
次に、ステップS4において、PUF搭載チップICに上記の1チャレンジを入力し、得られた1レスポンスをj’個繰り返して連結することによって第2の合成出力データを生成する。
【0035】
そして、ステップS5において、上記第2の合成出力データは第2の基準データに類似するか(具体的には、両者のハミング距離がしきい値以下であるか)否かを判定し、類似するものと判定された場合にはステップS6へ進んで当該PUF搭載チップICが本物であると判断されると共に、類似しないものと判定された場合にはステップS7へ進んで当該PUF搭載チップICが偽物であると判断される。
【0036】
以上のような第2の実施の形態に係る真贋判定方法によれば、上記jやj’の値を変えることによって上記ステップS5における判定での誤り率を制御することができる。
【0037】
また、判定時においてPUF搭載チップICから1レスポンスを得るだけで真贋判定を行うことができるため、判定に要する時間を短縮することができる。
【0038】
また、上記のような方法により生成された第2の合成出力データや第2の基準データは、暗号鍵やその元データとして利用することもできる。
【0039】
なお、第2の実施の形態に係る真贋判定方法においては、データベースDBにj’個のレスポンスを登録する必要があるが、かかるj’個のレスポンスは、相互に相違する部分を示す情報に圧縮して上記データベースDBに記憶させるようにすれば、必要なデータベースDBの規模を低減することができる。
【0040】
[第3の実施の形態]
図5を用いて、第3の実施の形態に係る[1,j,j’,k,k’]モードによるPUF搭載チップの真贋判定方法を詳しく説明する。
【0041】
ここで、[1,j,j’,k,k’]モードとは、PUF搭載チップICに対して1つの同じ入力データ(チャレンジ)をj回(本実施の形態においてjは2以上の自然数とする。)入力し、得られたj個のレスポンスをそのまま(j’=j)、あるいはj’個(0<j’<j)に加工(具体的には、例えばj個をj’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)してデータベースDBに登録すると共に、真贋判定時には上記PUF搭載チップICからのkレスポンス(本実施の形態においてkは2以上の自然数とする。)を用いる利用モードを意味する。
【0042】
図5は、本発明の実施の形態に係る[1,j,j’,k,k’]モードによるPUF搭載チップの真贋判定方法を示すフローチャートである。
【0043】
まずステップS1において、上記PUF搭載チップICへ1つの同じチャレンジをj回入力し、それに対するj個のレスポンスをそのまま(j’=j)、あるいはj’個(0<j’<j)に加工(具体的には、例えばj個をj’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して、入力したチャレンジおよび上記PUF搭載チップICのIDと対応させてデータベースDBに登録する。
【0044】
以下判定時における手順として、最初にステップS2において、上記PUF搭載チップICのIDとステップS1で登録された1チャレンジをデータベースDBに入力する。なお、一旦、上記PUF搭載チップICのIDをDBに入力し、当該IDに関連付けて予め登録されたチャレンジのリストを上記データベースDB等から取得し、当該リストから1チャレンジをDBに入力するようにしてもよい。
【0045】
そして、ステップS3において、データベースDBからステップS2で入力された1チャレンジに対応するj’個のレスポンスを読み出して連結し、連結したデータをさらにk’個繰り返し連結することによって、(j’×k’)個のレスポンスからなる第3の基準データを生成する。
【0046】
次に、ステップS4において、PUF搭載チップICに上記の1チャレンジをk回入力し、得られたkレスポンスをk’=kとしてそのまま、あるいはk’個に加工(具体的には、例えばk個をk’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して得られたk’個の各レスポンスをj’個繰り返し連結し、さらに、それらをk’個連結することによって、(k’×j’)個分のレスポンスからなる第3の合成出力データを生成する。
【0047】
そして、ステップS5において、上記第3の合成出力データは第3の基準データに類似するか(具体的には、両者のハミング距離がしきい値以下であるか)否かを判定し、類似するものと判定された場合にはステップS6へ進んで当該PUF搭載チップICが本物であると判断されると共に、類似しないものと判定された場合にはステップS7へ進んで当該PUF搭載チップICが偽物であると判断される。
【0048】
以上のような第3の実施の形態に係る真贋判定方法によれば、上記j、j’、k、k’の値を変えることによって上記ステップS5における判定での誤り率を制御することができる。
【0049】
本方法では、上記j、j’、k、k’を四つのパラメータとして独立に設定することによって上記誤り率を変更できるため、より高い精度で上記誤り率を制御することができる。
【0050】
また、上記のような方法により生成された第3の合成出力データや第3の基準データは、暗号鍵やそれを生成するための元データとして利用することもできる。
【0051】
なお、第3の実施の形態に係る真贋判定方法においては、データベースDBにj’個のレスポンスを登録する必要があるが、かかるj’個のレスポンスは、相互に相違する部分を示す情報に圧縮して上記データベースDBに記憶させるようにすれば、必要なデータベースDBの規模を低減することができる。
【0052】
[第4の実施の形態]
図6を用いて、第4の実施の形態に係る[i,j,j’,k,k’]モードによるPUF搭載チップの真贋判定方法を詳しく説明する。
【0053】
ここで、[i,j,j’,k,k’]モードとは、PUF搭載チップICに対してi個(本実施の形態においてiは2以上の自然数とする。)の異なる入力データ(チャレンジ)をそれぞれj回(本実施の形態においてjは2以上の自然数とする。)入力し、チャレンジ毎に得られたj個のレスポンスをそのまま(j’=j)、あるいはj’個(0<j’<j)に加工(具体的には、例えばj個をj’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して、データベースDBに登録すると共に、真贋判定時には上記PUF搭載チップICからのk個のレスポンス(本実施の形態においてkは2以上の自然数とする。)を用いる利用モードを意味する。
【0054】
図6は、本発明の実施の形態に係る[i,j,j’,k,k’]モードによるPUF搭載チップの真贋判定方法を示すフローチャートである。
【0055】
まずステップS1において、上記PUF搭載チップICへi個の異なるチャレンジをそれぞれj回入力し、各入力データに対して得られたj個のレスポンスをそのまま(j’=j)、あるいはj’個(0<j’<j)に加工(具体的には、例えばj個をj’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して得られたj’個のレスポンスを、入力したi個のチャレンジおよびそのPUF搭載チップICのIDと対応させてデータベースDBに登録する。
【0056】
以下判定時における手順として、最初にステップS2において、ステップS1で登録されたIDとi個のチャレンジをデータベースDBに入力する。なお、IDを一旦データベースDBに入力し、当該IDに関連付けて予め登録されたチャレンジのリストを当該データベースDB等から取得し、当該リストからi個のチャレンジを選択してDBに入力するようにしてもよい。
【0057】
そして、ステップS3において、データベースDBからステップS2で入力されたi個のチャレンジにそれぞれ対応するj’個のレスポンスを読み出して連結し、連結したデータをさらにk’回繰り返して連結して得られる、各チャレンジについての(j’×k’)個分のレスポンスを異なるチャレンジi個分について連結することによって得られる(i×j’×k’)個のレスポンスからなる第4の基準データを生成する。
【0058】
次に、ステップS4において、PUF搭載チップICに上記i個のチャレンジを各チャレンジに対してそれぞれk回入力し、得られたk個のレスポンスをk’=kとしてそのまま、あるいはk’個(0<k’<k)に加工(具体的には、例えばk個をk’個の部分集合に分割し、各部分集合内でレスポンスの各軸の値の最頻出値(最頻出値が複数ある場合にはそのいずれか)をその部分集合を代表するレスポンスのその軸の値と)して得られたk’個の各レスポンスをj’回繰り返して連結し、さらにそれをk’個分連結し、各チャレンジにつき(j’×k’)個分のレスポンスを得る。さらにそれらを、異なるレスポンス分に対して連結することにより(i×j’×k’)個分のレスポンスからなる第4の合成出力データを生成する。
【0059】
そして、ステップS5において、上記第4の合成出力データは第4の基準データに類似するか(具体的には、両者のハミング距離がしきい値以下であるか)否かを判定し、類似するものと判定された場合にはステップS6へ進んで当該PUF搭載チップICが本物であると判断されると共に、類似しないものと判定された場合にはステップS7へ進んで当該PUF搭載チップICが偽物であると判断される。
【0060】
以上のような第4の実施の形態に係る真贋判定方法によれば、上記i、j、j’、k、k’の値を変えることによって上記ステップS5における判定での誤り率を制御することができる。
【0061】
そして、上記i、j、j’、k、k’を五つの独立したパラメータとして設定することができるため、より高い精度で上記誤り率を制御することができる。
【0062】
また、上記と同様に、本方法により生成された第4の合成出力データは、暗号鍵やそれを生成するための元データとして利用することもできる。
【0063】
なお、上記第4の実施の形態に係る真贋判定方法においては、データベースDBに(i×j)個のレスポンスを登録する必要があるが、かかる(i×j)個のレスポンスは、相互に相違する部分を示す情報に圧縮して上記データベースDBに記憶させるようにすれば、必要なデータベースDBの規模を低減することができる。
【0064】
以上においては、[1,1,1,k,k’]モード、[1,j,j’,1,1]モード、[1,j,j’,k,k’]モード、及び[i,j,j’,k,k’]モードの4つの利用モードを順に説明したが、以下においては図7を参照しつつ利用モードの確定方法を説明する。
【0065】
まずステップS1において、利用モードとして初期モード[i0,j0,j’0,k0,k’0]を仮設定する。
【0066】
次に、ステップS2において、設定された利用モードで誤り率を測定する。
【0067】
次に、ステップS3において、ステップS2で測定された誤り率が所望の範囲内であるか否かを判定する。そして、所望の範囲内と判定された場合にはステップS4へ進んで利用モードを確定すると共に、所望の範囲内でないと判定された場合にはステップS5で新たな利用モードを設定してステップS2へ戻る。
【0068】
このような方法により、誤り率が所望の範囲内となる利用モードを確定することができる。
【0069】
上記のように、i、j、j’、k、及びk’を任意に設定することによって誤り率を制御することができるが、チャレンジを変更することによっても誤り率を制御することができる。
【0070】
ここで、図8を参照しつつチャレンジの確定方法を説明する。
【0071】
まずステップS1において、1チャレンジとして初期入力データC0を仮設定する。
【0072】
次に、ステップS2において、設定された入力データを用いて設定されたモードで誤り率を測定する。
【0073】
次に、ステップS3において、ステップS2で測定された誤り率が所望の範囲内であるか否かを判定する。そして、所望の範囲内と判定された場合にはステップS4へ進んでチャレンジ(入力データ)を確定すると共に、所望の範囲内でないと判定された場合にはステップS5で新たな入力データを設定してステップS2へ戻る。
【0074】
このような方法により、誤り率が所望の範囲内となるチャレンジを確定することができる。
【0075】
以上のような本発明の実施の形態に係るデバイス固有情報の誤り率制御方法は、以下のような応用分野に適用することができる。
【0076】
まず、PUF搭載チップICの真贋判定、ひいては本判定による偽造防止に有用である。上記実施の形態に係るデバイス固有情報の誤り率制御方法によれば、上記チップの製造後においても認証誤り率を制御することができるため、当該チップの経年劣化に応じて認証誤り率を変更することも可能となる。また、同一規格のPUFを利用しながら、当該チップの用途等に応じて誤り率を動的に変化させることができる。
【0077】
そして、上記チップをRFID(radio frequency identifier)化して貼り付けることにより、医薬品や食品、高級ブランド品等の真贋判定を実現することもできる。
【0078】
また、二者間で誤りのない暗号鍵等の秘密情報を共有することで、通信路上の情報の秘匿や、安全な認証システムが実現される。これにより、例えばICカードを用いた安全な電子決済や入退室管理、マルチメディアのコンテンツの保護等を実現することもできる。
【0079】
また、上記のデバイス固有情報の誤り率制御方法は、当該方法を示す図1、3、5〜8に示されたアルゴリズムをコンピュータプログラムに記述し、記述された本プログラム(デバイス固有情報の誤り率制御プログラム)をコンピュータに実行させることによっても実現される。
【0080】
以上より、本発明の実施の形態に係るデバイス固有情報の誤り率制御方法及びデバイス固有情報の誤り率制御プログラムによれば、上記チップの製造後に上記誤り率を制御することができるため、用途毎に目標とする誤り率を持った上記チップを個別に設計・製造することが不要となる。
【0081】
このことから、上記チップの製造コストを抑えつつ、所望の誤り率を持った本人認証システムや真贋判定システム、あるいは暗号鍵の生成を実現することができる。
【符号の説明】
【0082】
IC PUF搭載チップ
DB データベース
図1
図2
図3
図4
図5
図6
図7
図8