JP5178500B2 - データ処理装置及びデータ処理方法 - Google Patents

データ処理装置及びデータ処理方法 Download PDF

Info

Publication number
JP5178500B2
JP5178500B2 JP2008333226A JP2008333226A JP5178500B2 JP 5178500 B2 JP5178500 B2 JP 5178500B2 JP 2008333226 A JP2008333226 A JP 2008333226A JP 2008333226 A JP2008333226 A JP 2008333226A JP 5178500 B2 JP5178500 B2 JP 5178500B2
Authority
JP
Japan
Prior art keywords
key
program
storage unit
unit
area
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.)
Active
Application number
JP2008333226A
Other languages
English (en)
Other versions
JP2010152852A (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.)
Mitsubishi Electric Corp
Original Assignee
Mitsubishi Electric Corp
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 Mitsubishi Electric Corp filed Critical Mitsubishi Electric Corp
Priority to JP2008333226A priority Critical patent/JP5178500B2/ja
Publication of JP2010152852A publication Critical patent/JP2010152852A/ja
Application granted granted Critical
Publication of JP5178500B2 publication Critical patent/JP5178500B2/ja
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)
  • Stored Programmes (AREA)

Description

本発明は、データ処理装置及びデータ処理方法に関するものである。本発明は、特に、メモリ容量が小さい組込み環境(組込みマイコン)においてプログラム更新(主に、オンデマンドプログラム更新)を安全に行う方式に関するものである。
従来のプログラム組込み装置では、限られたメモリ容量を効率的に利用するために、データ格納領域に更新データの格納領域を確保しプログラム更新を行うという処理方法がある(例えば、特許文献1参照)。
また、従来のプログラム組込み装置では、復号装置又は認証装置を備えて内蔵されているプログラムやデータの安全な更新を実現するための方法がある(例えば、特許文献2参照)。
特開2005−332301号公報 特開2004−259077号公報
従来のプログラム更新機能を備えたプログラム組込み装置では、更新データを装置へダウンロードする際に、その更新データが暗号化されていないために、ダウンロード処理中にデータを盗聴されたり、悪意のあるプログラムにすり替えられたり、という危険性があった。
また、従来のプログラム更新機能を備えたプログラム組込み装置では、その更新データが暗号化されていても、全ての装置において同一の秘密鍵であるというケースが多く、セキュリティ上の課題(脆弱性)があった。
従来のプログラム更新機能を備えたプログラム組込み装置では、全ての装置において同一の秘密鍵でないようにするために、それぞれに個別鍵を持たせようとすると、コストがかかる上に管理が煩雑になるという課題があった。
また、従来のプログラム更新機能を備えたプログラム組込み装置では、全ての装置において同一の秘密鍵でないようにするため、あるいは後々に鍵更新ができるようにするために、ID(識別子)ベース暗号等の公開鍵暗号を用いようとすると、組込み環境においてはプログラムサイズが大きいことから実装することが困難であった。
従来のプログラム組込み装置では、鍵更新ができない、あるいは容易に実施できないという課題があった。
本発明は、より高いセキュリティを備えた効率のよいシステムを提供することを目的とする。本発明は、そのために、例えば、メモリ容量が少ない組込み環境において、プログラム更新を安全に行う方法を提供することを目的とする。
本発明の一の態様に係るデータ処理装置は、
所定の方式で暗号化された鍵を復号する復号プログラムが予め保存された第1記憶領域と、空き領域である第2記憶領域とを有する記憶部と、
前記所定の方式で暗号化された鍵を外部装置から受信し、前記記憶部の第1記憶領域から前記復号プログラムを読み出して実行することにより、受信した鍵を復号し、復号した鍵を前記記憶部の第2記憶領域に保存する処理部と、
前記記憶部の第2記憶領域に保存された鍵に対応する鍵で暗号化された暗号データを前記外部装置から受信し、前記記憶部の第2記憶領域に保存された鍵により前記暗号データを復号して平文データを取得し、取得した平文データを前記記憶部の第1記憶領域の前記復号プログラムが保存された領域に上書き保存する復号部とを備え、
前記処理部は、前記記憶部の第1記憶領域に保存された平文データを用いて、所定の処理を行うことを特徴とする。
本発明の一の態様によれば、データ処理装置において、処理部が、所定の方式で暗号化された鍵を外部装置から受信し、記憶部の第1記憶領域から復号プログラムを読み出して実行することにより、受信した鍵を復号し、復号した鍵を前記記憶部の第2記憶領域に保存し、復号部が、前記記憶部の第2記憶領域に保存された鍵に対応する鍵で暗号化された暗号データを前記外部装置から受信し、前記記憶部の第2記憶領域に保存された鍵により前記暗号データを復号して平文データを取得し、取得した平文データを前記記憶部の第1記憶領域の前記復号プログラムが保存された領域に上書き保存することにより、例えば、安全でメモリ使用効率のよいプログラム(前記平文データに相当)更新処理が可能なプログラム組込み装置(前記データ処理装置に相当)を提供することができる。
以下、本発明の実施の形態について、図を用いて説明する。なお、下記実施の形態により本発明が限定されるものではない。即ち、本発明は以下の記述に限定されるものではなく、本発明の要旨を逸脱しない範囲において適宜変更可能である。
実施の形態1.
図1は、本実施の形態に係るシステムの構成例を示すブロック図である。
図1において、1つのプログラムローダ装置101(プログラム書込み装置)に対し、複数のプログラム組込み装置201が複数存在する。プログラム組込み装置201はデータ処理装置の一例であり、プログラムローダ装置101は外部装置の一例である。プログラムローダ装置101は、各プログラム組込み装置201の工場製造時の書込み工程において、あるいは、製品出荷後のプログラム書換え時において、各プログラム組込み装置201のプログラム格納領域にプログラムをロードする。即ち、各プログラム組込み装置201は、プログラムローダ装置101からプログラムをダウンロードする。プログラムローダ装置101は、プログラム組込み装置201と1対1に有線あるいは無線で接続して、書込み処理を実行する。各プログラム組込み装置201には、ID(識別子)が割り当てられているものとする(図中、ID_1、ID_2、ID_3、・・・、ID_Kと示している)。
図2は、本実施の形態に係るシステムの別の構成例を示すブロック図である。
図1では、プログラムローダ装置101と各プログラム組込み装置201とを1対1に接続して、書込み処理を実行する構成を示したが、図2のように、LAN(Local・Area・Network)等のネットワーク(バス型ネットワークを図示しているが、その他の形態のネットワークであってもよい)にプログラムローダ装置101と複数のプログラム組込み装置201とを接続して、書込み処理を効率的に実行するという構成をとることも可能である。有線に限らず、無線ネットワークでも実現することが可能である。
図3は、プログラム組込み装置201のハードウェア構成の一例を示す図である。
いずれのIDを持つプログラム組込み装置201も同様の構成をとるものとする。図3において、CPU220(Central・Processing・Unit)は、フロー制御を行う汎用CPUである。CPU220は処理部の一例である。CPU220にはその製造の過程でCPUごとに固有のID224が付される。ID224はCPU220に内蔵される内部メモリ210に格納されている。ID224は各プログラム組込み装置201に割り当てられるID(ID_1、ID_2、ID_3、・・・、ID_K)として使用することができる。外部メモリユニット221は、プログラム及びデータ(プログラムローダ装置101からダウンロードされるものも含む)が格納される書換え可能な半不揮発性メモリ(フラッシュメモリ等)である。I/F(インタフェース)ユニット223は、外部とのインタフェースをつかさどる。具体的にはプログラムローダ装置101とのI/Fの他にも、プログラム組込み装置201のアプリケーションに応じて、例えばカードI/F、無線(RF)I/F等を含むこともある。CPU220、外部メモリユニット221、I/Fユニット223はシステムバス211を介して互いに通信する。図3ではCPU220、外部メモリユニット221、I/Fユニット223が、別々の素子のイメージで書かれているが、1チップマイコンあるいはSoC(System・on・a・Chip)チップのように1つのパッケージにこれらの構成要素が組み込まれていても構わない。
次に、それぞれのプログラム組込み装置201に、プログラムローダ装置101から所定のアプリケーションプログラム(ダウンロードデータ)Pをダウンロードするプログラムダウンロード工程について説明する。
図4は、プログラムローダ装置101及びプログラム組込み装置201の構成を示すブロック図である。
図4において、プログラムローダ装置101は、記憶部102、鍵カプセル化部103、暗号化部104を備える。プログラム組込み装置201は、ID格納部202、記憶部203、処理部206、復号部208を備える。処理部206は、鍵デカプセル化部207を有する。記憶部203は、データ領域204、プログラム領域205を有する。データ領域204は第2記憶領域の一例であり、プログラム領域205は第1記憶領域の一例である。
図5は、プログラムダウンロード工程の手順を示す図である。
プログラムダウンロード工程の開始時には、プログラムローダ装置101の記憶部102にアプリケーションプログラムPが予め記憶されているものとする。また、プログラム組込み装置201のID格納部202にID224が予め格納されているものとする。
プログラムローダ装置101の鍵カプセル化部103は、プログラム組込み装置201のID格納部202からID224を読み出す。ここでは、このID224がID_Kであるとする。プログラムローダ装置101の鍵カプセル化部103は、読み出したID224に対応する鍵Kを新たに生成して記憶部102に保存する。そして、プログラムローダ装置101の鍵カプセル化部103は、記憶部102に保存した鍵Kに対してプログラム組込み装置201の公開鍵を用いた鍵カプセル化処理を行い、カプセル化された鍵K´をプログラム組込み装置201へ送信する(S101)。ID224がID_1、ID_2、ID_3、・・・であれば、プログラムローダ装置101は、同様に、ID_1に対応する鍵1、ID_2に対応する鍵2、ID_3に対応する鍵3、・・・をカプセル化した鍵1´、鍵2´、鍵3´、・・・をプログラム組込み装置201へ送信することになる。そのために、プログラムローダ装置101は、例えば記憶部102に予め各プログラム組込み装置201の公開鍵を記憶しているものとする。
プログラム組込み装置201の鍵デカプセル化部207は、カプセル化された鍵K´を受信し、受信した鍵K´に対してプログラム組込み装置201の秘密鍵を用いた鍵デカプセル化処理を実行して鍵Kを取得する。そして、プログラム組込み装置201の鍵デカプセル化部207は、取得した鍵Kを記憶部203のデータ領域204に保存する(S102)。プログラム組込み装置201は、例えば記憶部203のデータ領域204に予め自己の秘密鍵を記憶しているものとする。
プログラムローダ装置101の暗号化部104は、記憶部102に記憶されているアプリケーションプログラムPに対して鍵Kを用いた暗号化処理を行い、暗号化されたアプリケーションプログラムP´をプログラム組込み装置201へ送信する(S103)。ここで、鍵Kはデータの暗号化処理にも復号処理にも使用できるものとする。即ち、鍵Kは共通鍵とする。
プログラム組込み装置201の復号部208は、暗号化されたアプリケーションプログラムP´を受信し、受信したアプリケーションプログラムP´に対して鍵Kを用いた復号処理を実行してアプリケーションプログラムPを取得する(S104)。そして、プログラム組込み装置201の復号部208は、取得したアプリケーションプログラムPを記憶部203のプログラム領域205に保存する(S105)。
図5に示すように、S101〜S102の処理は鍵を共有するためのプロセス(ステップ1)であり、S103〜S105の処理はステップ1で共有した鍵を用いて暗号化通信によるデータダウンロードを実行するプロセス(ステップ2)である。ステップ1で共有した鍵を使用する限り、ステップ1を繰り返し行う必要はない。つまり、既に鍵を共有していて、その鍵を更新する必要がなければ、ステップ2のみでプログラムのダウンロード(アプリケーション更新)を安全に行うことができる。
図4に示したプログラム組込み装置201の構成において、ID格納部202は、図3に示した内部メモリ210に相当する。記憶部203は、図3に示した外部メモリユニット221に相当する。処理部206は、図3に示したCPU220に相当する。処理部206の鍵デカプセル化部207は、主にソフトウェアで実現される。具体的には、後述するように、鍵デカプセル化部207は、記憶部203のプログラム領域205に格納され、処理部206により読み出されて実行されるプログラムである(より正確にいえば、そのプログラムを実行したプロセスである)。復号部208は、ソフトウェア、ハードウェア、あるいは、ソフトウェアとハードウェアとの組み合わせで実現される。例えば、復号部208は、記憶部203の保護された領域(他のデータで上書き保存されない領域)等に格納され、処理部206により読み出されて実行されるプログラムであってもよいし、図3に示したシステムバス211に接続される暗号処理モジュール(回路)であってもよい。
以下、プログラム組込み装置201の動作について説明する。
図6は、プログラム組込み装置201による初期化手順を示すフローチャートである。
初期化手順の開始時には、記憶部203のプログラム領域205に、鍵デカプセル化部207に相当する鍵デカプセル化プログラムQ(復号プログラムの一例)が予め保存されている。鍵デカプセル化プログラムQは、所定の方式(ここでは、公開鍵暗号方式とするが、共通鍵暗号方式等、他の方式でもよい)で暗号化された鍵を復号するプログラムである。一方、記憶部203のデータ領域204は、空き領域である。
図6において、処理部206は、公開鍵暗号方式で(即ち、自己の公開鍵を用いて)暗号化された鍵K´をプログラムローダ装置101から受信する。そして、処理部206は、記憶部203のプログラム領域205から鍵デカプセル化プログラムQを読み出して実行することにより鍵デカプセル化部207を動作させる(S601)。鍵デカプセル化部207は、受信した鍵K´を復号し、復号した鍵Kを記憶部203のデータ領域204に保存する(S602)。
図7は、プログラム組込み装置201によるプログラムダウンロード手順を示すフローチャートである。
復号部208は、記憶部203のデータ領域204に鍵Kが保存されていれば(S701でYES)、プログラムローダ装置101に対し、アプリケーションプログラムPを鍵Kに対応する鍵(ここでは、鍵Kが共通鍵であるため、鍵Kに対応する鍵も鍵Kであるが、例えば鍵Kが公開鍵であれば、鍵Kに対応する鍵は秘密鍵となる)で暗号化して送信することを要求する。これにより、復号部208は、鍵Kで暗号化されたアプリケーションプログラムP´(暗号データの一例)をプログラムローダ装置101から受信する(S702)。そして、復号部208は、記憶部203のデータ領域204に保存された鍵KによりアプリケーションプログラムP´を復号してアプリケーションプログラムP(平文データの一例)を取得する(S703)。復号部208は、取得したアプリケーションプログラムPを記憶部203のプログラム領域205の鍵デカプセル化プログラムQが保存された領域に上書き保存する(S704)。このとき、アプリケーションプログラムPのサイズが鍵デカプセル化プログラムQのサイズより大きければ、記憶部203のプログラム領域205に、その分の空き領域(又は鍵デカプセル化プログラムQ以外のデータを記憶している領域)が必要であることはいうまでもない。記憶部203のプログラム領域205に保存されたアプリケーションプログラムPは、処理部206によって読み出され、実行され、所定の処理を行う。即ち、アプリケーションプログラムPは処理部206によって所定の処理を行うために用いられる。
一方、S701において、記憶部203のデータ領域204に鍵Kが保存されていなければ(S701でNO)、処理部206が、プログラムローダ装置101に対し、鍵Kを公開鍵暗号方式で暗号化して送信することを要求する。これにより、処理部206は、プログラム組込み装置201の公開鍵で暗号化された鍵K´をプログラムローダ装置101から受信する。そして、処理部206は、記憶部203のプログラム領域205から鍵デカプセル化プログラムQを読み出して実行することにより鍵デカプセル化部207を動作させる(S705)。鍵デカプセル化部207は、受信した鍵K´をプログラム組込み装置201の秘密鍵で復号し、復号した鍵Kを記憶部203のデータ領域204に保存する(S706)。その後、S701に戻る。
図8は、プログラム組込み装置201による初期化手順及びプログラムダウンロード手順での記憶部203内のデータ遷移を示す図である。
図6に示した初期化手順の開始時には、プログラム領域205の領域Aに、鍵デカプセル化部207に相当する鍵デカプセル化プログラムQ(図8の「鍵デカプセル」)が予め保存されている。また、プログラム領域205の領域Bに、復号部208に相当するプログラム(図8の「復号」)が予め保存されている。また、プログラム領域205の領域Cに、プログラムローダ装置101からデータを受信するためのプログラム(図8の「ダウンロード」)が予め保存されている。一方、データ領域204の領域Dは、空き領域である(P101)。データ領域204の領域D以外の領域は、空き領域であってもよいし、何らかのデータ(例えば、プログラム組込み装置201の秘密鍵)を保存していてもよい。
図6に示した初期化手順において、プログラム組込み装置201では、鍵デカプセル化処理により、鍵K(図8の「鍵」)が生成され、データ領域204の領域Dに出力される(P102)。鍵Kは、アプリケーションプログラムPをダウンロードする際に用いるものであるので、ダウンロード処理を行う前に生成されている必要がある。鍵Kが生成されれば、鍵デカプセル化プログラムQは不要になるため、図7に示したプログラムダウンロード手順において、アプリケーションプログラムP(図8の「アプリケーション」)は鍵デカプセル化プログラムQが格納されていた領域Aに上書き保存される(P103)。
図9は、プログラム組込み装置201によるプログラム更新手順での記憶部203内のデータ遷移を示す図である。
プログラム更新手順は、図7に示したプログラムダウンロード手順と同様である。復号部208は、記憶部203のデータ領域204に鍵Kが保存されていれば(S701でYES)、プログラムローダ装置101に対し、新たなアプリケーションプログラムPnを鍵Kに対応する鍵(ここでは、鍵Kが共通鍵であるため、鍵Kに対応する鍵も鍵Kであるが、例えば鍵Kが公開鍵であれば、鍵Kに対応する鍵は秘密鍵となる)で暗号化して送信することを要求する。これにより、復号部208は、鍵Kで暗号化された新たなアプリケーションプログラムPn´(暗号データの一例)をプログラムローダ装置101から受信する(S702)。そして、復号部208は、記憶部203のデータ領域204に保存された鍵KによりアプリケーションプログラムPn´を復号して新たなアプリケーションプログラムPn(平文データの一例)を取得する(S703)。復号部208は、取得したアプリケーションプログラムPnを記憶部203のプログラム領域205の古いアプリケーションプログラムPが保存された領域に上書き保存する(S704)。このとき、新たなアプリケーションプログラムPnのサイズが古いアプリケーションプログラムPのサイズより大きければ、記憶部203のプログラム領域205に、その分の空き領域(又は古いアプリケーションプログラムP以外のデータを記憶している領域)が必要であることはいうまでもない。記憶部203のプログラム領域205に保存された新たなアプリケーションプログラムPnは、処理部206によって読み出され、実行され、所定の処理を行う。即ち、新たなアプリケーションプログラムPnは処理部206によって所定の処理を行うために用いられる。
プログラム更新手順の開始時には、記憶部203内は図8のP103の状態になっている。アプリケーションプログラムPの更新が必要な場合、プログラム更新手順において、プログラム組込み装置201では、鍵Kが生成済であれば、鍵Kを用いてダウンロード処理が行われ、古いアプリケーションプログラムPが格納されていた領域Aに、新しいアプリケーションプログラムPn(図9の「更新されたアプリケーション」)が上書き保存される(P104)。
図10は、プログラム組込み装置201による鍵更新手順を示すフローチャートである。
復号部208は、アプリケーションプログラムPを記憶部203のプログラム領域205に保存した後(図7のS704)、記憶部203のデータ領域204に鍵Kが保存されており(S801でYES)、記憶部203のプログラム領域205にアプリケーションプログラムPが保存されていれば(S802でYES)、プログラムローダ装置101に対し、鍵デカプセル化プログラムQを鍵Kに対応する鍵(前述したように、ここでは、鍵Kである)で暗号化して送信することを要求する。これにより、復号部208は、鍵Kで暗号化された鍵デカプセル化プログラムQ´(暗号データの一例)をプログラムローダ装置101から受信する(S803)。そして、復号部208は、記憶部203のデータ領域204に保存された鍵Kにより鍵デカプセル化プログラムQ´を復号して鍵デカプセル化プログラムQを取得する(S804)。復号部208は、取得した鍵デカプセル化プログラムQを記憶部203のプログラム領域205のアプリケーションプログラムPが保存された領域に上書き保存する(S805)。このとき、鍵デカプセル化プログラムQのサイズがアプリケーションプログラムPのサイズより大きければ、記憶部203のプログラム領域205に、その分の空き領域(又はアプリケーションプログラムP以外のデータを記憶している領域)が必要であることはいうまでもない。ステップS805の後、処理部206は、公開鍵暗号方式で(即ち、自己の公開鍵を用いて)暗号化された新たな鍵Kn´をプログラムローダ装置101から受信する。そして、処理部206は、記憶部203のプログラム領域205から鍵デカプセル化プログラムQを読み出して実行することにより鍵デカプセル化部207を動作させる(S806)。鍵デカプセル化部207は、受信した鍵Kn´を復号し、復号した新たな鍵Knを記憶部203のデータ領域204に保存する(S807)。即ち、鍵デカプセル化部207は、新たな鍵Knで記憶部203のデータ領域204に保存されている古い鍵Kを更新する。
一方、S801において、記憶部203のデータ領域204に鍵Kが保存されていなければ(S801でNO)、処理部206が、プログラムローダ装置101に対し、鍵Kを公開鍵暗号方式で暗号化して送信することを要求する。これにより、処理部206は、プログラム組込み装置201の公開鍵で暗号化された鍵K´をプログラムローダ装置101から受信する。そして、処理部206は、記憶部203のプログラム領域205から鍵デカプセル化プログラムQを読み出して実行することにより鍵デカプセル化部207を動作させる(S808)。鍵デカプセル化部207は、受信した鍵K´をプログラム組込み装置201の秘密鍵で復号し、復号した鍵Kを記憶部203のデータ領域204に保存する(S809)。その後、S801に戻る。また、S802において、記憶部203のプログラム領域205にアプリケーションプログラムPが保存されていなければ(S802でNO)、S806に進む。
図11は、プログラム組込み装置201による鍵更新手順での記憶部203内のデータ遷移を示す図である。
図10に示した鍵更新手順の開始時には、記憶部203内は図8のP103の状態になっている。鍵の更新が必要な場合には、図10に示した鍵更新手順において、プログラム組込み装置201では、アプリケーションプログラムPをダウンロードするのと同じ要領で、鍵デカプセル化プログラムQ(図11の「鍵デカプセル」)がダウンロードされ、アプリケーションプログラムPが格納されていた領域Aに上書き保存される(P105)。その後、新しい鍵Kn(図11の「更新された鍵」)の導出が行われ、データ領域204の領域Dの鍵Kが更新される(P106)。
図12は、プログラム組込み装置201による別の鍵更新手順を示すフローチャートである。
復号部208は、アプリケーションプログラムPを記憶部203のプログラム領域205に保存した後(図7のS704)、記憶部203のデータ領域204に鍵Kが保存されていれば(S901でYES)、プログラムローダ装置101に対し、新たな鍵Knを鍵Kに対応する鍵(前述したように、ここでは、鍵Kである)で暗号化して送信することを要求する。これにより、復号部208は、鍵Kで暗号化された新たな鍵Kn´(暗号データの一例)をプログラムローダ装置101から受信する(S902)。そして、復号部208は、記憶部203のデータ領域204に保存された鍵Kにより鍵Kn´を復号して新たな鍵Kn(平文データの一例)を取得し、取得した新たな鍵Knを記憶部203のデータ領域204に保存する(S903)。即ち、鍵デカプセル化部207は、新たな鍵Knで記憶部203のデータ領域204に保存されている古い鍵Kを更新する。
一方、S901において、記憶部203のデータ領域204に鍵Kが保存されていなければ(S901でNO)、処理部206が、プログラムローダ装置101に対し、鍵Kを公開鍵暗号方式で暗号化して送信することを要求する。これにより、処理部206は、プログラム組込み装置201の公開鍵で暗号化された鍵K´をプログラムローダ装置101から受信する。そして、処理部206は、記憶部203のプログラム領域205から鍵デカプセル化プログラムQを読み出して実行することにより鍵デカプセル化部207を動作させる(S904)。鍵デカプセル化部207は、受信した鍵K´をプログラム組込み装置201の秘密鍵で復号し、復号した鍵Kを記憶部203のデータ領域204に保存する(S905)。その後、S901に戻る。
図13は、プログラム組込み装置201による別の鍵更新手順での記憶部203内のデータ遷移を示す図である。
図12に示した鍵更新手順の開始時には、記憶部203内は図8のP103の状態になっている。鍵の更新が必要な場合には、図12に示した鍵更新手順において、プログラム組込み装置201では、古い鍵Kを基にして復号処理を行って新しい鍵Kn(図13の「更新された鍵」)が生成され、データ領域204の領域Dの鍵Kが更新される(P107)。
上記のように、図12に示した鍵更新手順では、図10に示した鍵更新手順と異なり、鍵デカプセル化プログラムQの復帰を行わなくて済む。
以上説明したように、本実施の形態に係るデータ処理装置は、
プログラムを更新するためにプログラムダウンロード機能を備えた装置であり、ダウンロードに用いる鍵を生成する鍵共有プロセス(図5のステップ1)と、暗号化通信によるダウンロードを行うダウンロードプロセス(図5のステップ2)とを実行することを特徴とする。
前記データ処理装置は、
前記鍵共有プロセスによって、公開鍵暗号の仕組みを利用して、各装置が持つ固有のID情報を用いて、装置それぞれで異なる鍵を持つことが可能となることを特徴とする。
前記データ処理装置は、
前記鍵共有プロセスの完了後には、前記鍵共有プロセスを実行するプログラムを消去するか、あるいは、外部からダウンロードしたアプリケーションプログラムで上書きすることを特徴とする。
前記データ処理装置は、
前記鍵共有プロセスを実行して、前記ダウンロードプロセスで使用するのに有効な鍵を既に保持していれば、アプリケーションプログラムを動的に変更できることを特徴とする。
前記データ処理装置は、
前記ダウンロードプロセスで使用する有効な鍵を保持している限り、前記鍵共有プロセスを実行する必要がないことを特徴とする。
前記データ処理装置は、
前記鍵共有プロセスを実行するプログラムを、アプリケーションプログラムのダウンロードによって上書き消去した後に、アプリケーションプログラムのダウンロードと同様に鍵共有プロセスを実行するプログラムをダウンロードすることによって、再び鍵共有プロセスを復帰させて、鍵の更新を行うことができることを特徴とする。
前記データ処理装置は、
鍵を更新するときに、ダウンロードデータを復号するときに用いる復号部を利用することもまた可能であることを特徴とする。
上記のように、本実施の形態では、メモリ容量が少ない組込み環境において、プログラム更新を行うときに、初期状態において鍵デカプセル化モジュールのみをプログラム領域に展開し、鍵デカプセル化処理を実行して鍵を得た後に、その鍵を使用したセキュアダウンロード機能を用いて、鍵デカプセル化モジュールが配置されていた領域にアプリケーションプログラムを上書きするので、必要なプログラムサイズ(メモリ総容量)を大幅に小さくすることができる。
また、本実施の形態では、鍵デカプセル化モジュールの消失後に、再び鍵デカプセル化処理を実行する必要がある場合には、ダウンロード機能を用いて初期状態のプログラム(鍵デカプセル化プログラム)をアプリケーションプログラムの1つとして、同様にダウンロードできるので、鍵デカプセル化機能を復帰させることが可能である。復帰を行う前に、その機器上では鍵デカプセル化処理は少なくとも一度実行されているので、既に生成されてメモリに保存されている鍵を用いてダウンロードを実行する。ダウンロード機能により、必要に応じて、プログラムを動的に変更できる。
本実施の形態では、初回の鍵デカプセル化処理で導出された鍵を用いた暗号通信によって鍵の更新を行ってもよい。そうすることにより、同一鍵の使用の繰り返しを防ぐとともに簡易に鍵更新を実現することができる。
本実施の形態では、アプリケーションを動的に変更可能なことから、ハードウェア資源を有効利用することができる。
以上、メモリ容量が少ないプログラム組込み装置において、プログラム更新を安全に行うことができる方法を説明した。
また、メモリ容量が少ないプログラム組込み装置において、例えばIDベース暗号等の公開鍵暗号アルゴリズムを用いて、個々に持つIDを利用して鍵を導出する方法を説明した。
また、メモリ容量が少ないプログラム組込み装置において、鍵デカプセル化処理後に、鍵デカプセル化プログラムが格納された領域にアプリケーションプログラムをダウンロードして上書きすることができる方法を説明した。
また、メモリ容量が少ないプログラム組込み装置において、容易に鍵を更新することができる方法を説明した。
また、メモリ容量が少ないプログラム組込み装置において、鍵を更新する際に、消去した鍵デカプセル化プログラムを復帰することができる方法を説明した。
実施の形態1に係るシステムの構成例を示すブロック図である。 実施の形態1に係るシステムの別の構成例を示すブロック図である。 実施の形態1に係るデータ処理装置のハードウェア構成の一例を示す図である。 実施の形態1に係る外部装置及びデータ処理装置の構成を示すブロック図である。 実施の形態1に係るプログラムダウンロード工程の手順を示す図である。 実施の形態1に係るデータ処理装置による初期化手順を示すフローチャートである。 実施の形態1に係るデータ処理装置によるプログラムダウンロード手順を示すフローチャートである。 実施の形態1に係るデータ処理装置による初期化手順及びプログラムダウンロード手順での記憶部内のデータ遷移を示す図である。 実施の形態1に係るデータ処理装置によるプログラム更新手順での記憶部内のデータ遷移を示す図である。 実施の形態1に係るデータ処理装置による鍵更新手順を示すフローチャートである。 実施の形態1に係るデータ処理装置による鍵更新手順での記憶部内のデータ遷移を示す図である。 実施の形態1に係るデータ処理装置による別の鍵更新手順を示すフローチャートである。 実施の形態1に係るデータ処理装置による別の鍵更新手順での記憶部内のデータ遷移を示す図である。
符号の説明
101 プログラムローダ装置、102 記憶部、103 鍵カプセル化部、104 暗号化部、201 プログラム組込み装置、202 ID格納部、203 記憶部、204 データ領域、205 プログラム領域、206 処理部、207 鍵デカプセル化部、208 復号部、210 内部メモリ、211 システムバス、220 CPU、221 外部メモリユニット、223 I/Fユニット、224 ID。

Claims (3)

  1. 初期状態において、所定の方式で暗号化された鍵を復号する復号プログラムが保存され第1記憶領域と、鍵を保存するための領域である第2記憶領域とを有する記憶部と、
    前記所定の方式で暗号化された鍵を外部装置から受信し、前記記憶部の第1記憶領域から前記復号プログラムを読み出して実行することにより、受信した鍵を復号し、復号した鍵を前記記憶部の第2記憶領域に保存する処理部と、
    アプリケーションプログラムが前記記憶部の第2記憶領域に保存された鍵に対応する鍵で暗号化された暗号データを前記外部装置から受信し、前記記憶部の第2記憶領域に保存された鍵により当該暗号データを復号して前記アプリケーションプログラムを取得し、取得したアプリケーションプログラムを前記記憶部の第1記憶領域の前記復号プログラムが保存された領域に上書き保存する復号部とを備え、
    前記処理部は、前記記憶部の第1記憶領域に保存されたアプリケーションプログラム読み出して実行することにより、所定の処理を行い、
    前記復号部は、前記アプリケーションプログラムを前記記憶部の第1記憶領域に保存した後、前記復号プログラムが前記記憶部の第2記憶領域に保存された鍵に対応する鍵で暗号化された暗号データを前記外部装置から受信し、前記記憶部の第2記憶領域に保存された鍵により当該暗号データを復号して前記復号プログラムを取得し、取得した復号プログラムを前記記憶部の第1記憶領域の前記アプリケーションプログラムが保存された領域に上書き保存し、
    前記処理部は、前記所定の方式で暗号化された新たな鍵を前記外部装置から受信し、前記記憶部の第1記憶領域から前記復号プログラムを読み出して実行することにより、受信した新たな鍵を復号し、復号した新たな鍵で前記記憶部の第2記憶領域に保存した鍵を更新することを特徴とするデータ処理装置。
  2. 前記所定の方式は、公開鍵暗号方式であり、
    前記記憶部の第2記憶領域に保存される鍵及び当該鍵に対応する鍵は、共通鍵であることを特徴とする請求項1に記載のデータ処理装置。
  3. 初期状態において、所定の方式で暗号化された鍵を復号する復号プログラムが保存され第1記憶領域と、鍵を保存するための領域である第2記憶領域とを有する記憶部を用いるデータ処理方法であって、
    処理部が、前記所定の方式で暗号化された鍵を外部装置から受信し、前記記憶部の第1記憶領域から前記復号プログラムを読み出して実行することにより、受信した鍵を復号し、復号した鍵を前記記憶部の第2記憶領域に保存し、
    復号部が、アプリケーションプログラムが前記記憶部の第2記憶領域に保存された鍵に対応する鍵で暗号化された暗号データを前記外部装置から受信し、前記記憶部の第2記憶領域に保存された鍵により当該暗号データを復号して前記アプリケーションプログラムを取得し、取得したアプリケーションプログラムを前記記憶部の第1記憶領域の前記復号プログラムが保存された領域に上書き保存し、
    前記処理部が、前記記憶部の第1記憶領域に保存されたアプリケーションプログラム読み出して実行することにより、所定の処理を行い、
    前記復号部が、前記アプリケーションプログラムを前記記憶部の第1記憶領域に保存した後、前記復号プログラムが前記記憶部の第2記憶領域に保存された鍵に対応する鍵で暗号化された暗号データを前記外部装置から受信し、前記記憶部の第2記憶領域に保存された鍵により当該暗号データを復号して前記復号プログラムを取得し、取得した復号プログラムを前記記憶部の第1記憶領域の前記アプリケーションプログラムが保存された領域に上書き保存し、
    前記処理部が、前記所定の方式で暗号化された新たな鍵を前記外部装置から受信し、前記記憶部の第1記憶領域から前記復号プログラムを読み出して実行することにより、受信した新たな鍵を復号し、復号した新たな鍵で前記記憶部の第2記憶領域に保存した鍵を更新することを特徴とするデータ処理方法。
JP2008333226A 2008-12-26 2008-12-26 データ処理装置及びデータ処理方法 Active JP5178500B2 (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008333226A JP5178500B2 (ja) 2008-12-26 2008-12-26 データ処理装置及びデータ処理方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008333226A JP5178500B2 (ja) 2008-12-26 2008-12-26 データ処理装置及びデータ処理方法

Publications (2)

Publication Number Publication Date
JP2010152852A JP2010152852A (ja) 2010-07-08
JP5178500B2 true JP5178500B2 (ja) 2013-04-10

Family

ID=42571829

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008333226A Active JP5178500B2 (ja) 2008-12-26 2008-12-26 データ処理装置及びデータ処理方法

Country Status (1)

Country Link
JP (1) JP5178500B2 (ja)

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE3003998A1 (de) * 1980-02-04 1981-09-24 Licentia Patent-Verwaltungs-Gmbh, 6000 Frankfurt System zur ver- und entschluesselung von daten
JPS63220630A (ja) * 1987-03-10 1988-09-13 Matsushita Electric Ind Co Ltd 端末制御方式
JPS644139A (en) * 1987-06-26 1989-01-09 Nec Corp Encipherment system
US5144664A (en) * 1990-11-16 1992-09-01 General Instrument Corporation Apparatus and method for upgrading terminals to maintain a secure communication network
US6385723B1 (en) * 1997-05-15 2002-05-07 Mondex International Limited Key transformation unit for an IC card
JP2001265586A (ja) * 2000-03-15 2001-09-28 Yonezu Denki Kk ソフトウェアの使用範囲拡大方法
JPWO2002057904A1 (ja) * 2001-01-19 2004-05-27 富士通株式会社 ダウンロード機能を有する制御装置
JP4475894B2 (ja) * 2002-08-01 2010-06-09 パナソニック株式会社 暗号化データを復号して実行用メモリ空間に配置する装置、およびその方法

Also Published As

Publication number Publication date
JP2010152852A (ja) 2010-07-08

Similar Documents

Publication Publication Date Title
US20200034550A1 (en) System and method to protect data privacy of lightweight devices using blockchain and multi-party computation
US9251380B1 (en) Method and storage device for isolating and preventing access to processor and memory used in decryption of text
WO2010041442A1 (ja) 情報処理装置、方法、プログラム及び集積回路
JP6852009B2 (ja) 情報処理装置及び情報処理方法
CN112989356B (zh) 空白安全芯片烧录方法、系统、空白安全芯片及存储介质
CN109768862B (zh) 一种密钥管理方法、密钥调用方法及密码机
US20100296651A1 (en) Encryption apparatus and method therefor
TW200937248A (en) Secure software download
JP2008287519A (ja) データ暗号化伝送保存システム及びリムーバブルメディア
JP6473876B2 (ja) セキュアネットワーク通信方法
JPWO2005004382A1 (ja) 暗号処理装置
WO2019116922A1 (ja) 車載更新装置、プログラム及びプログラム又はデータの更新方法
CN111656345A (zh) 启用容器文件中加密的软件模块
KR20140109321A (ko) 암호화된 키를 생성하는 디바이스 및 암호화된 키를 수신기에 제공하는 방법
KR102645542B1 (ko) 차량 내부 네트워크 장치 및 방법
US20160253516A1 (en) Content encryption to produce multiply encrypted content
JP6888122B2 (ja) 半導体装置、更新データ提供方法、更新データ受取方法およびプログラム
JP6894469B2 (ja) 情報処理装置およびその制御プログラム
JP5178500B2 (ja) データ処理装置及びデータ処理方法
JP6348273B2 (ja) 情報処理システム
JPH104403A (ja) 暗号化装置、復号化装置およびその方法
KR20220000537A (ko) 차량 네트워크 기반의 데이터 송수신 시스템 및 그 방법
US12086585B2 (en) Program update system, vehicle control device, and program update method
US20190052610A1 (en) Apparatus and method for encapsulation of profile certificate private keys or other data
JP6987112B2 (ja) 集積回路

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20111024

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121015

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121023

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121116

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20130108

R150 Certificate of patent or registration of utility model

Ref document number: 5178500

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313111

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350