【文献】
三城 昂平 ほか,PUFから生成した固有IDをトラストアンカーとする車載ECU向けセキュアビートの提案と実装評価,2018年 暗号と情報セキュリティシンポジウム(SCIS2018)予稿集 [USB],日本,一般社団法人電子情報通信学会,2018年 1月23日,2D1−3,p.1−8
【文献】
三城 昂平 ほか,鍵保管にPUFを用いた共通鍵暗号によるセキュアな遠隔リプログラミングシステムの実装評価,2017年 暗号と情報セキュリティシンポジウム(SCIS2017)予稿集 [USB],日本,電子情報通信学会,2017年 1月24日,2E3−6,p.1−7
【文献】
柴田 陽一 ほか,メカニズムベースPKI,コンピュータセキュリティシンポジウム2003,日本,社団法人情報処理学会,2003年10月29日,第2003巻,第15号,p.181−186
(58)【調査した分野】(Int.Cl.,DB名)
【発明を実施するための形態】
【0021】
<第1の実施形態>
以下、第1の実施形態に係る情報配信システムについて、
図1〜
図7を参照しながら説明する。
【0022】
(制御装置の製造工程の概要)
図1は、第1の実施形態に係る情報配信システムの全体構成を示す図である。
図1に示す情報配信システム1は、各地に設置された制御装置11を管理する。本実施形態に係る制御装置11は、発電プラントのガスタービンやボイラー等を制御する制御装置である。ただし、他の実施形態においてはこの態様に限定されず、制御装置11は、あらゆる装置、機器を制御対象とするものであってよい。
【0023】
図1に示すように、情報配信システム1は、情報配信装置10と、複数の制御装置11とを備えている。情報配信装置10と複数の制御装置11とは、インターネット回線等の広域通信網Nで通信可能に接続されている。
【0024】
情報配信装置10は、広域通信網Nを介して接続される複数の制御装置11(配信対象装置)に対し、暗号化したアップデートプログラムPdata(保護対象情報)を配信する。アップデートプログラムPdataとは、制御装置11が動作するための制御プログラムを更新するプログラムである。アップデートプログラムは、制御装置11の機能の充実、セキュリティ性向上等の観点から定期的または非定期的に配信される。
情報配信装置10は、第三者の盗聴によるノウハウ流出を防止するため、保護対象情報であるアップデートプログラムPdataを暗号化して送信する。
【0025】
制御装置11は、制御プログラムに従って動作することでガスタービン等を制御する制御装置である。制御装置11は、広域通信網Nを介して接続される情報配信装置10から暗号化されたアップデートプログラムを受信して、制御プログラムを更新する。
【0026】
(情報配信装置の機能構成)
図2は、第1の実施形態に係る情報配信装置の機能構成を示す図である。
図2に示すように、情報配信装置10は、CPU100と、通信インタフェース101と、記録媒体102とを備えている。
【0027】
CPU100は、予め用意された所定のプログラムに従って動作するプロセッサである。CPU100が当該プログラムに従って動作した場合に発揮される各種機能については後述する。
【0028】
通信インタフェース101は、広域通信網N(
図1)を介した通信を行うための通信モジュールである。なお、通信インタフェース101及び広域通信網Nを介した情報配信装置10と制御装置11との通信の態様は、有線接続に基づく態様であってもよいし、無線通信による基づく態様であってもよい。
【0029】
記録媒体102は、HDD(Hard Disk Drive)、SSD(Solid State Drive)等のいわゆる補助記憶装置であって、不揮発性メモリの一態様である。本実施形態に係る記録媒体102は、配信を行うアップデートプログラムPdataと、後述するPUF情報テーブルT1、時間テーブルT2とが記録されている。
【0030】
次に、CPU100の各種機能について詳しく説明する。
CPU100は、PUF情報取得部1001と、付加情報取得部1002と、暗号化処理部1003と、送信処理部1004として機能する。
PUF情報取得部1001は、PUF情報テーブルT1を参照して、配信対象とする一つの制御装置11のPUF(Physically Unclonable Function)情報を取得する。PUF情報とは、制御装置11に具備されるハードウェア(集積回路等)の製造工程で生じる物理的、電気的特性のばらつきに応じて固有に生成される情報であって、制御装置11の個体ごとに異なる情報である。
付加情報取得部1002は、予め記録された複数の付加情報のうちのいずれか一つを特定して取得する。ここで、付加情報とは、情報配信装置10が配信対象とする一つの制御装置11とは異なる他の制御装置11のPUF情報である。付加情報取得部1002は、後述する時間テーブルT2を参照して、複数の付加情報のうちのいずれか一つを特定する。
暗号化処理部1003は、PUF情報取得部1001によって取得されたPUF情報と、付加情報取得部1002によって取得された付加情報とに基づいて暗号鍵情報を取得するとともに、取得した暗号鍵情報に基づいてアップデートプログラムPdataを暗号化する。
送信処理部1004は、暗号化されたアップデートプログラムPdataを制御装置11に送信する。
【0031】
(PUF情報テーブル)
図3は、第1の実施形態に係るPUF情報テーブルを示す図である。
図3に示すように、記録媒体102に記録されるPUF情報テーブルT1には、「制御装置識別番号」と「PUF情報」とが関連付けて記録されている。
「制御装置識別番号」の列には、各地に設置された複数の制御装置11それぞれの個体識別番号(A01、A02、A03、・・)が記録される。個体識別番号は、例えば、製造番号などであってよい。
「PUF情報」の列には、制御装置11の出荷前の段階で、各制御装置11から読み取ったPUF情報(P01、P02、P03、・・)が記録される。
【0032】
(時間テーブル)
図4は、第1の実施形態に係る時間テーブルを示す図である。
図4に示すように、時間テーブルT2には、期間(Y1、Y2、・・)と制御装置識別番号(A01、A02、・・)とが関連付けて記録されている。
期間(Y1、Y2、・・)は、実際の年月日、時分等で特定される期間が記録される。期間(Y1、Y2、・・)は、時、日、週、月、年などのあらゆる単位で区分されるものであってよい。
制御装置識別番号(A01、A02、・・)は、
図3に示すPUF情報テーブルT1と同様の情報であって、制御装置11それぞれの個体識別番号(A01、A02、A03、・・)である。
【0033】
図4に示すように、時間テーブルT2は、アップデートプログラムPdataの配信対象とする制御装置11別に、制御装置識別番号(A01、A02、・・)が関連付けられている。
「配信対象:A01」の列には、“A01”以外の制御装置識別番号が記録される。「配信対象:A02」の列には、“A02”以外の制御装置識別番号が記録される。同様に、「配信対象:A03」の列には、“A03”以外の制御装置識別番号が記録される。他の列についても同様である。
【0034】
(制御装置の機能構成)
図5は、第1の実施形態に係る制御装置の機能構成を示す図である。
図5に示すように、制御装置11は、CPU110と、通信インタフェース111と、PUF情報出力部112と、RAM113と、記録媒体114とを備えている。
【0035】
CPU110は、予め用意された所定のプログラムに従って動作するプロセッサである。CPU110が当該プログラムに従って動作した場合に発揮される各種機能については後述する。
【0036】
通信インタフェース111は、広域通信網N(
図1)を介した通信を行うための通信モジュールである。
【0037】
PUF情報出力部112は、制御装置11に固有のPUF情報を出力する集積回路である。本実施形態において、PUF情報出力部112は、既知のPUF技術(例えば、SRAM_PUF、グリッチPUF等)が適用されてよい。また、本実施形態に係るPUF情報は、例えば、128ビットのデータ長を有するデータ列であるものとするが、他の実施形態においてはこの態様に限定されず、128ビットよりも長い、又は、短いデータ列であってもよい。
【0038】
RAM113は、情報を書き換え可能な揮発性メモリである。RAM17は、いわゆる主記憶装置であって、CPU110を動作させるためのプログラムが展開される。特に、本実施形態においては、RAM113には、ガスタービン等の制御装置として動作するための制御プログラム、及び、そのアップデートプログラムPdata等が展開される。
【0039】
記録媒体114は、フラッシュROMなどであって、情報を書き換え可能な不揮発性メモリである。記録媒体114には、出荷前の段階で、予め、他装置PUF情報テーブルUと、時間テーブルT2(
図4)とが記録される。
【0040】
次に、CPU110の各種機能について詳しく説明する。
CPU110は、付加情報読出処理部1101と、暗号鍵情報取得部1102と、復号処理部1103として機能する。
付加情報読出処理部1101は、予め複数の付加情報(他の制御装置11のPUF情報)が記録された記録媒体114から何れか一つの付加情報を特定して読み出す。本実施形態に係る付加情報読出処理部1101は、同じく、記録媒体114に記録された時間テーブルT2に基づいて何れか一つの付加情報を特定する。
暗号鍵情報取得部1102は、特定された付加情報(他の制御装置11のPUF情報)と、PUF情報出力部112が出力するPUF情報とに基づく暗号鍵情報を取得する。
復号処理部1103は、暗号鍵情報取得部1102によって取得された暗号鍵情報を用いて、情報配信装置10から配信されたアップデートプログラムPdataを復号する。
【0041】
(他装置PUF情報テーブル)
図6は、第1の実施形態に係る他装置PUF情報テーブルを示す図である。
図6に示すように、他装置PUF情報テーブルU(U1〜U3)には、それぞれ、制御装置11の制御装置識別番号とそのPUF情報とが関連付けられて記録される。
他装置PUF情報テーブルUは、複数の制御装置11それぞれにおいて、互いに異なる情報が記録される。具体的には、制御装置識別番号“A01”なる制御装置11の他装置PUF情報テーブルU1には、“A01”以外の制御装置11についてのPUF情報が記録される。また、制御装置識別番号“A02”なる制御装置11の他装置PUF情報テーブルU2には、“A02”以外の制御装置11についてのPUF情報が記録される。また、制御装置識別番号“A03”なる制御装置11の他装置PUF情報テーブルU3には、“A03”以外の制御装置11についてのPUF情報が記録される。
制御装置識別番号“A01”、“A02”、“A03”以外の制御装置11についても同様である。
【0042】
(処理フロー)
図7は、第1の実施形態に係る情報配信装置及び制御装置が実行する処理フローを示す図である。
図7に示す処理フローは、制御装置11に対し、情報配信装置10がアップデートプログラムを配信する際に実行される処理フローである。
【0043】
[情報配信装置の処理フロー]
まず、情報配信装置10の処理フロー(ステップS01〜S06)について説明する。
【0044】
情報配信装置10は、配信対象とする制御装置11に対しアップデート要求メッセージを配信する(ステップS01)。
【0045】
次に、情報配信装置10のPUF情報取得部1001は、記録媒体102に予め記録されているPUF情報テーブルT1(
図3)を参照して、配信対象とする制御装置11のPUF情報を取得する(ステップS02)。例えば、制御装置識別番号が“A01”の制御装置11を配信対象とする場合、PUF情報取得部1001は、PUF情報テーブルT1を参照して、“01001101・・・”なるPUF情報P1を取得する(
図3参照)。
【0046】
次に、情報配信装置10の付加情報取得部1002は、付加情報として、配信対象とする制御装置11以外の制御装置11のPUF情報のうちの一つを特定し、取得する(ステップS03)。
具体的には、まず、付加情報取得部1002は、記録媒体102に予め記録されている時間テーブルT2(
図4)を参照して、現在時刻及び配信対象に対応する制御装置識別番号(A01、A02、・・)を一つ特定する。例えば、現在時刻が期間Y1に属しており、かつ、制御装置識別番号が“A01”の制御装置11を配信対象としている場合、付加情報取得部1002は、時間テーブルT2を参照して、制御装置識別番号“A02”を特定する(
図4参照)。
続いて、付加情報取得部1002は、PUF情報テーブルT1(
図3)を参照し、時間テーブルT2を参照して特定した制御装置識別番号に対応するPUF情報を取得する。例えば、時間テーブルT2を参照して制御装置識別番号“A02”を特定した場合、更に、付加情報取得部1002は、PUF情報テーブルT1を参照して、“11011001・・・・”なるPUF情報P02を取得する(
図3参照)。
【0047】
次に、情報配信装置10の暗号化処理部1003は、ステップS02で取得されたPUF情報(以下、上記の例に倣い、PUF情報P01と表記する。)と、ステップS03で取得されたPUF情報(以下、上記の例に習い、PUF情報P02と表記する。)と、に基づく暗号鍵情報Eを取得する(ステップS04)。ここで、暗号鍵情報Eは、PUF情報P01とPUF情報P02とを単純に結合してなるデータ列であってもよいし、予め規定された論理演算により算出されたデータ列であってもよい。
【0048】
次に、暗号化処理部1003は、取得した暗号鍵情報Eを用いてアップデートプログラムPdataを暗号化する(ステップS05)。
以下、暗号鍵情報Eを用いて暗号化されたアップデートプログラムPdataを「暗号化アップデートプログラムenc(Pdata,E)」とも表記する。
【0049】
次に、情報配信装置10の送信処理部1004は、暗号化アップデートプログラムenc(Pdata,E)を配信対象とする制御装置11に配信する(ステップS06)。
【0050】
[制御装置の処理フロー]
次に、制御装置11の処理フロー(ステップS01a〜S07a)について説明する。
【0051】
制御装置11は、情報配信装置10からアップデート要求メッセージを受信する(ステップS01a)。
【0052】
アップデート要求メッセージを受信すると、制御装置11のCPU110は、PUF情報出力部112から出力されるPUF情報を取得する(ステップS02a)。
【0053】
次に、制御装置11の付加情報読出処理部1101は、記録媒体114を参照して、配信対象とする制御装置11以外の制御装置11のPUF情報のうちの一つを特定し、取得する(ステップS03a)。
具体的には、まず、付加情報読出処理部1101は、記録媒体114に予め記録されている時間テーブルT2(
図4)を参照して、現在時刻及び配信対象とする制御装置11(自装置)に対応する制御装置識別番号(A01、A02、・・)を一つ特定する。例えば、現在時刻が期間Y1に属しており、かつ、自装置の制御装置識別番号が“A01”であった場合、付加情報読出処理部1101は、時間テーブルT2を参照して、制御装置識別番号“A02”を特定する(
図4参照)。
続いて、付加情報読出処理部1101は、記録媒体114に予め記録されている他装置PUF情報テーブルU(
図6)を参照し、時間テーブルT2を参照して特定した制御装置識別番号に対応するPUF情報を取得する。例えば、自装置の制御装置識別番号が“A01”であって、かつ、時間テーブルT2を参照して制御装置識別番号“A02”を特定した場合、付加情報読出処理部1101は、他装置PUF情報テーブルU1を参照して、“11011001・・・・”なるPUF情報P02を取得する(
図6参照)。
【0054】
次に、制御装置11の暗号鍵情報取得部1102は、ステップS02aで取得されたPUF情報(以下、上記の例に倣い、PUF情報P01と表記する。)と、ステップS03aで取得されたPUF情報(以下、上記の例に習い、PUF情報P02と表記する。)と、に基づく暗号鍵情報Eを取得する(ステップS04a)。ここで取得される暗号鍵情報Eは、情報配信装置10がステップS04で取得する暗号鍵情報Eと同一のものとなる。
【0055】
暗号鍵情報Eを取得した後、制御装置11のCPU110は、情報配信装置10からの暗号化アップデートプログラムenc(Pdata,E)を待ち受ける(ステップS05a)。
続いて、CPU110は、情報配信装置10から配信される暗号化アップデートプログラムenc(Pdata,E)を受信する(ステップS06a)。
そして、CPU110は、暗号鍵情報Eで暗号化アップデートプログラムenc(Pdata,E)を復号し、RAM113に展開する(ステップS07a)。これにより、CPU110は、アップデートプログラムPdataを実行可能となる。
【0056】
(作用、効果)
以上のとおり、第1の実施形態に係る情報配信装置10は、上述したPUF情報取得部1001と、付加情報取得部1002と、暗号化処理部1003と、送信処理部1004とを備える態様とされる。そして、付加情報取得部1002は、時間に応じて特定する付加情報を変更する。具体的には、
図4の時間テーブルT2、及び、
図7のステップS03の処理で説明した処理によれば、アップデートプログラムPdataを配信する度に、異なる付加情報(他装置のPUF情報)が特定される。
このような態様によれば、アップデートのタイミングごとに異なる暗号鍵情報を用いて暗号化がなされるので、暗号鍵情報を解読されるリスクが低減される。
したがって、保護対象とする情報(アップデートプログラム)が流出するリスクを低減することができる。
【0057】
<第2の実施形態>
次に、第2の実施形態に係る情報配信システムについて、
図8〜
図14を参照しながら説明する。
【0058】
(情報配信装置の機能構成)
図8は、第2の実施形態に係る情報配信装置の機能構成を示す図である。
図8に示すように、第2の実施形態に係る情報配信装置10のCPU100は、第1の実施形態の機能の他に、更に、PUF情報更新処理部1005としての機能を有する。
【0059】
PUF情報更新処理部1005は、複数の制御装置11の各々から新たなPUF情報を受信して、予め記録されたPUF情報を更新する。
制御装置11の運用とともに生じる特性変動に起因し、制御装置11(PUF情報出力部112)が出力するPUF情報は、経時的に変化することが想定される。そこで、PUF情報更新処理部1005は、変化が生じたPUF情報を、「新たなPUF情報」として受信し、これを、PUF情報テーブルT1に逐次記録(更新)する。また、この際、PUF情報更新処理部1005は、変化が生じる前のPUF情報も、過去のPUF情報として、記録を残しておく。
【0060】
(PUF情報テーブル)
図9は、第2の実施形態に係るPUF情報テーブルを示す図である。
図9に示すように、記録媒体102に記録されるPUF情報テーブルT1には、「制御装置識別番号」と、「過去PUF情報」と、「PUF情報」とが関連付けて記録されている。
「過去PUF情報」は、各制御装置11が過去に出力していたPUF情報を示す情報であって、最新ではないPUF情報(現時点の制御装置11が出力しないPUF情報)である。
「PUF情報」は、各制御装置11が現時点で出力するPUF情報を示す情報であって、最新のPUF情報である。
「過去PUF情報」及び「PUF情報」は、更新時刻(t10、t11、・・)と共に記録されている。
図9に示す例では、制御装置識別番号“A01”の制御装置11については、各更新時刻t10(出荷前)、t11、t12に取得、更新された過去PUF情報と、最新の更新時刻t13に更新されたPUF情報とが記録される。また、制御装置識別番号“A02”の制御装置11については、各更新時刻t20(出荷前)、t21、t22に取得、更新された過去PUF情報と、最新の更新時刻t23に更新されたPUF情報とが記録される。また、制御装置識別番号“A03”の制御装置11については、各更新時刻t30(出荷前)、t31、t32に取得、更新された過去PUF情報と、最新の更新時刻t33に更新されたPUF情報とが記録される。他の制御装置11についても同様である。
図9に示す例では、各制御装置11の過去PUF情報の個数はいずれも同じ(3つ)としているが、実際には、過去PUF情報の個数は制御装置11ごとに異なる。これは、PUF情報が変化するタイミングや頻度が制御装置11ごとに異なることに起因する。
【0061】
なお、制御装置11が出力するPUF情報が変化し、新たなPUF情報に更新されると、直前のPUF情報は、過去PUF情報に分類される。
図9に示す例の場合、例えば、制御装置識別番号“A01”の制御装置11について、PUF情報の更新があった場合、更新時刻t13に関連付けられているPUF情報は、「過去PUF情報」に分類され、次の更新時刻t14で取得された新たなPUF情報が「PUF情報」に記録(更新)される。
【0062】
(時間テーブル)
図10は、第2の実施形態に係る時間テーブルを示す図である。
図10に示すように、時間テーブルT2には、期間(Y1、Y2、・・)と更新時刻(t10、t11、・・)とが関連付けて記録されている。
期間(Y1、Y2、・・)は、実際の年月日、時分等で特定される期間が記録される。
各更新時刻(t10、t11、・・)は、
図9のPUF情報テーブルT1において、制御装置11ごとにPUF情報が更新された時刻である。
【0063】
図10に示すように、時間テーブルT2は、アップデートプログラムPdataの配信対象とする制御装置11ごとに、複数の更新時刻が関連付けられている。具体的には、「配信対象:A01」の列には、制御装置識別番号“A01”なる制御装置11が出力していた過去PUF情報の各々の更新時刻(t10、t11、・・)が記録される。「配信対象:A02」の列には、制御装置識別番号“A02”なる制御装置11が出力していた過去PUF情報の各々の更新時刻(t20、t21、・・)が記録される。「配信対象:A03」の列には、制御装置識別番号“A03”なる制御装置11が出力していた過去PUF情報の各々の更新時刻(t30、t31、・・)が記録される。他の列についても同様である。
【0064】
(制御装置の機能構成)
図11は、第2の実施形態に係る制御装置の機能構成を示す図である。
図11に示すように、第2の実施形態に係る制御装置11のCPU110は、第1の実施形態の機能の他に、更に、過去PUF情報記録処理部1104、PUF情報送信処理部1105としての機能を有する。
【0065】
過去PUF情報記録処理部1104は、PUF情報出力部112から出力されるPUF情報が変化した場合に、変化する前のPUF情報を過去PUF情報として記録する。
具体的には、過去PUF情報記録処理部1104は、PUF情報出力部112から出力されるPUF情報を定期的に取得して、揮発性メモリ(例えば、RAM113)に一時記録する。その際、今回取得したPUF情報を、前回取得したPUF情報(前回、RAM113に一時記録したPUF情報)と対比して、互いに一致しているか否かを判定する。そして、互いに一致してなかった場合には、過去PUF情報記録処理部1104は、前回取得したPUF情報(RAM113に記録されたPUF情報)を、過去PUF情報として記録媒体114(過去PUF情報テーブルV)に記録する。
【0066】
PUF情報送信処理部1105は、PUF情報出力部112から出力されるPUF情報が変化した場合に、当該変化したPUF情報を送信する。
【0067】
(過去PUF情報テーブル)
図12は、第2の実施形態に係る過去PUF情報テーブルを示す図である。
図12に示すように、過去PUF情報テーブルV(V1〜V3)には、それぞれ、制御装置11のPUF情報の更新時刻と、その更新時刻以降にPUF情報出力部112が出力していたPUF情報(過去PUF情報)とが関連付けられて記録される。
過去PUF情報テーブルVは、PUF情報出力部112から出力されるPUF情報が変化したタイミングで、過去PUF情報記録処理部1104によって、逐次追加記録される。
【0068】
(第1の処理フロー)
図13は、第2の実施形態に係る情報配信装置及び制御装置が実行する第1の処理フローを示す図である。
図13に示す第1の処理フローは、制御装置11の運用中、一定の周期で繰り返し実行される。
【0069】
まず、制御装置11の過去PUF情報記録処理部1104は、PUF情報出力部112から出力されるPUF情報を定期的に取得する(ステップS11a)。
【0070】
過去PUF情報記録処理部1104は、前回、PUF情報出力部112から取得したPUF情報(RAM113に一時記録されたPUF情報)と、今回、PUF情報出力部112から取得したPUF情報とを比較し、一致しているか否かを判定する(ステップS12a)。
【0071】
前回のPUF情報と一致していた場合(ステップS12a:YES)、過去PUF情報記録処理部1104は、特段の処理を行うことなく終了する。この場合、過去PUF情報記録処理部1104は、一定時間経過後、再度、ステップS11aの処理を開始する。
【0072】
前回のPUF情報と一致していなかった場合(ステップS12a:NO)、回路の経時的な特性変動(劣化)等に伴い、PUF情報出力部112から出力されるPUF情報が変化したと判断される。そこで、過去PUF情報記録処理部1104は、前回取得したPUF情報(RAM113に一時記録されたPUF情報)を、記録媒体114の過去PUF情報テーブルVに追加記録する(ステップS13a)。この際、制御装置11は、前回取得したPUF情報を、前回の更新時刻と関連付けて記録する。
また、この際、過去PUF情報記録処理部1104は、次回に取得されるPUF情報との比較のために、今回取得したPUF情報をRAM113に一時記録しておく。
【0073】
次に、制御装置11のPUF情報送信処理部1105は、変化が生じた後の新たなPUF情報(ステップS11aで取得したPUF情報)を、変化が生じる直前のPUF情報で暗号化する(ステップS14a)。例えば、変化が生じた時刻が時刻txであったとすると、PUF情報送信処理部1105は、時刻tx以降に記録媒体102から新たに出力されるPUF情報を、時刻txの直前までに出力されていたPUF情報(RAM113に一時記録されたPUF情報)で暗号化する。
【0074】
PUF情報送信処理部1105は、暗号化されたPUF情報(以下、「暗号化PUF情報」とも記載する。)に、制御装置11自身の制御装置識別番号、更新時刻を示す情報を付して、情報配信装置10に送信する(ステップS15a)。
【0075】
情報配信装置10は、制御装置11から、暗号化PUF情報を受信する(ステップS11)。
【0076】
情報配信装置10のPUF情報更新処理部1005は、受信した暗号化PUF情報を復号する(ステップS12)。この際、PUF情報更新処理部1005は、PUF情報テーブルT1(
図9)を参照して、暗号化PUF情報を送信した制御装置11のPUF情報(つまり、変化する前の最新のPUF情報)で復号する。
【0077】
PUF情報更新処理部1005は、PUF情報テーブルT1のPUF情報を、ステップS12の復号処理で取得した新たなPUF情報に更新する(ステップS13)。さらに、PUF情報更新処理部1005は、PUF情報テーブルT1に記録されていた更新前のPUF情報を、過去PUF情報に分類する。
【0078】
次に、PUF情報更新処理部1005は、時間テーブルT2を更新する(ステップS14)。例えば、
図9に示すPUF情報テーブルT1の例では、制御装置識別番号“A01”なる制御装置11について、更新時刻t13に関連付けられたPUF情報が、新たに過去PUF情報に分類される。そこで、PUF情報更新処理部1005は、更新時刻t10、t11、t12に加え、更新時刻t13を時間テーブルT2の所定の期間(Y1、Y2、・・)の何れかに割り当てる。
次に、PUF情報更新処理部1005は、更新した時間テーブルT2を制御装置11に配信する(ステップS14)。これにより、情報配信装置10及び制御装置11それぞれが有する時間テーブルT2の同期が図られる。
なお、時間テーブルT2を配信する際、PUF情報更新処理部1005は、当該時間テーブルT2を、新たなPUF情報(現時点において制御装置11が出力するPUF情報)で暗号化してもよい。この場合、暗号化された時間テーブルT2は、制御装置11のPUF情報出力部112が出力するPUF情報によって復号可能である。
【0079】
制御装置11は、時間テーブルT2を受信して、記録媒体114に記録する(ステップS16a)。
【0080】
(第2の処理フロー)
図14は、第2の実施形態に係る情報配信装置及び制御装置が実行する第2の処理フローを示す図である。
図14に示す処理フローは、制御装置11に対し、情報配信装置10がアップデートプログラムを配信する際に実行される処理フローであり、実質的には、第1の実施形態(
図7)と同様の処理フローである。
第2の実施形態に係る情報配信装置10は、第1の実施形態のステップS03(
図7)の処理に替えて、ステップS03’の処理を実行する。また、第2の実施形態に係る制御装置11は、第1の実施形態のステップS03a(
図7)の処理に替えて、ステップS03a’の処理を実行する。
以下、ステップS03’及びステップS03a’の処理について詳しく説明する。
【0081】
情報配信装置10の付加情報取得部1002は、付加情報として、配信対象とする制御装置11の過去PUF情報のうちの一つを特定し、取得する(ステップS03’)。
具体的には、まず、付加情報取得部1002は、記録媒体102に予め記録されている時間テーブルT2(
図10)を参照して、現在時刻及び配信対象に対応する更新時刻(t10、t11、・・)を一つ特定する。例えば、現在時刻が期間Y2に属しており、かつ、制御装置識別番号が“A01”の制御装置11を配信対象としている場合、付加情報取得部1002は、時間テーブルT2を参照して、更新時刻“t11”を特定する(
図10参照)。
続いて、付加情報取得部1002は、PUF情報テーブルT1(
図9)を参照し、時間テーブルT2を参照して特定した更新時刻に対応するPUF情報を取得する。例えば、時間テーブルT2を参照して更新時刻“t11”を特定した場合、更に、付加情報取得部1002は、PUF情報テーブルT1を参照して、“01001101・・・・”なるPUF情報P01_t11を取得する(
図9参照)。
【0082】
また、制御装置11の付加情報読出処理部1101は、記録媒体114を参照して、配信対象とする制御装置11の過去PUF情報のうちの一つを特定し、取得する(ステップS03a’)。
具体的には、まず、付加情報読出処理部1101は、記録媒体114に予め記録されている時間テーブルT2(
図10)を参照して、現在時刻及び配信対象とする制御装置11(自装置)に対応する更新時刻(t10、t11、・・)を一つ特定する。例えば、現在時刻が期間Y2に属しており、かつ、自装置の制御装置識別番号が“A01”であった場合、付加情報読出処理部1101は、時間テーブルT2を参照して、更新時刻“t11”を特定する(
図10参照)。
続いて、付加情報読出処理部1101は、記録媒体114に予め記録されている過去PUF情報テーブルV(
図12)を参照し、時間テーブルT2を参照して特定した更新時刻に対応する過去PUF情報を取得する。例えば、自装置の制御装置識別番号が“A01”であって、かつ、時間テーブルT2を参照して更新時刻“t11”を特定した場合、付加情報読出処理部1101は、過去PUF情報テーブルV1を参照して、“01001101・・・・”なる過去PUF情報P01_t11を取得する(
図12参照)。
【0083】
図14に示す処理フローのうち、ステップS03’及びステップS3a’以外の処理については、第1の実施形態(
図7)と同様であるため、説明を省略する。
【0084】
(作用、効果)
以上のとおり、第2の実施形態に係る情報配信装置10は、制御装置11から新たなPUF情報を受信して、予め記録されたPUF情報を更新するPUF情報更新処理部1005を更に備える。
このようにすることで、制御装置11が出力するPUF情報が経時的に変化した場合であっても、当該変化後のPUF情報(新たなPUF情報)を含む暗号鍵情報でアップデートプログラムPdataを暗号化できる。
【0085】
また、第2の実施形態に係る制御装置11は、PUF情報出力部112から出力されるPUF情報が変化した場合に、当該変化したPUF情報を送信するPUF情報送信処理部1105を更に備える。
これにより、情報配信装置10は、制御装置11の新たなPUF情報を取得して更新することができる。
【0086】
また、第2の実施形態に係る制御装置11によれば、PUF情報送信処理部1105は、変化したPUF情報を、変化する前のPUF情報で暗号化して送信する(
図13のステップS14a参照)。
このようにすることで、変化したPUF情報を安全に送信することができるとともに、その都度、当該PUF情報を暗号化する暗号鍵情報が変更されるので、解読されるリスクを低減することができる。
【0087】
(他の実施形態)
以上、第1、第2の実施形態に係る情報配信システム1について詳細に説明したが、情報配信システム1の具体的な態様は、上述のものに限定されることはなく、要旨を逸脱しない範囲内において種々の設計変更等を加えることは可能である。
【0088】
例えば、第1、第2の実施形態に係る制御装置11は、情報配信装置10が取得する暗号鍵情報Eと同一の暗号鍵情報を取得するために、情報配信装置10と同一の時間テーブルT2を有するものとして説明したが、他の実施形態においてはこの態様に限定されない。
例えば、第1の実施形態の変形例に係る制御装置11は、記録媒体114(他装置PUF情報テーブルU)に記録されているPUF情報(P01、P02、P03、・・)のそれぞれを読み出して、当該PUF情報一つ一つに対応する複数の暗号鍵情報(暗号鍵情報E1、E2、E3、・・)を取得する。そして、制御装置11は、正しいアップデートプログラムPdataを復号できるまで、各暗号鍵情報E1、E2、E3、・・で、順番に、復号処理を試みてもよい。
【0089】
また、他の実施形態に係る情報配信システム1は、第1の実施形態と第2の実施形態とを組み合わせた態様であってもよい。
具体的には、情報配信装置10の付加情報取得部1002は、配信対象とする制御装置11以外の制御装置の過去PUF情報を付加情報として特定してもよい。例えば、制御装置識別番号“A01”なる制御装置11を配信対象とする場合において、付加情報取得部1002は、PUF情報テーブル(
図9)のうち、配信対象とは異なる、制御装置識別番号“A02”の制御装置11の過去PUF情報P02_t21等を特定してもよい。
これにより、付加情報の選択肢を更に増やすことができるため、一層、解読のリスクを低減することができる。
なお、この場合、各制御装置11は、自装置の過去PUF情報テーブルだけでなく、他の制御装置11の過去PUF情報テーブルを記録しておく必要がある。
【0090】
また、第1の実施形態、第2の実施形態に係る情報配信システム1は、一つのPUF情報に一つの付加情報(他装置のPUF情報、又は、過去PUF情報)を組み合わせて暗号鍵情報Eを取得するものとして説明したが、他の実施形態においてはこの態様に限定されない。
即ち、他の実施形態に係る情報配信装置10は、配信対象とする制御装置11のPUF情報に、二つ以上の付加情報を組み合わせて暗号鍵情報Eを取得してもよい。この場合、制御装置11も、同様に、自装置のPUF情報出力部112が出力するPUF情報に、上記と同等の二つ以上の付加情報を組み合わせて暗号鍵情報Eを取得するものとする。
このようにすることで、たとえば、予め記録されているn個のPUF情報のうちのm個を用いて暗号鍵情報Eを構築する場合、
nC
m通りという多数の暗号鍵情報Eの中から適宜選択できる。
このように、暗号鍵情報Eの数が異なることより、単に2つのPUF情報を用いた暗号化の複雑さに比べて、多数の暗号鍵情報Eによりセキュリティを向上できる。すなわち、付加情報の選択肢を更に増やすことができるため、より一層、解読のリスクを低減することができる。
【0091】
以上のとおり、本発明に係るいくつかの実施形態を説明したが、これら全ての実施形態は、例として提示したものであり、発明の範囲を限定することを意図していない。これらの実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で種々の省略、置き換え、変更を行うことができる。これらの実施形態及びその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれる。