(57)【要約】 【課題】  暗号化及び復号の対象となる更新対象のデータの範囲をフレキシブルに、かつ効率よく更新する。【解決手段】  暗号装置は、複数のブロックが挿入された平文の更新部分から、挿入された複数のブロックのうち、更新部分の直後のブロックの直前の平文までの暗号化対象部分を暗号化する。そして、暗号装置は、暗号化された暗号化対象部分を復号装置に送信する。【選択図】図２
2017167274.tif 000002
【特許請求の範囲】
【請求項１】
複数のブロックが挿入された平文の更新部分から、前記挿入された複数のブロックのうち、前記更新部分の直後のブロックの直前の平文までの暗号化対象部分を暗号化する暗号部と、
前記暗号化された暗号化対象部分を復号装置に送信する送信部と
を具備する、暗号装置。
【請求項２】
前記平文に前記複数のブロックを挿入するブロック挿入部をさらに具備する、請求項１記載の暗号装置。
【請求項３】
前記暗号化は、前記暗号化された暗号化対象部分の直前の暗号化されたブロックを初期化ベクトルとして行なわれる、請求項１記載の暗号装置。
【請求項４】
複数のブロックが挿入された平文の更新部分から、前記挿入された複数のブロックのうち、前記更新部分の直後のブロックの直前の平文までの暗号化された暗号化対象部分を受信する受信部と、
前記受信した暗号化対象部分を、前記複数のブロックが挿入された前記平文が暗号化された暗号化対象データのうち、更新対象となる暗号化対象データの更新部分に上書きする上書き部と
前記上書きされた暗号化対象データを復号する復号部と、
前記復号された暗号化対象データの平文から、前記挿入された複数のブロックを除去する除去部と
を具備する復号装置。
【請求項５】
前記復号は、前記復号された暗号化対象部分の直前の暗号化されたブロックを初期化ベクトルとして行なわれる、請求項４記載の復号装置。
【請求項６】
ブロックの大きさ以上の複数の未使用領域が設けられた平文の更新部分から、前記複数の未使用領域のうち、前記更新部分の直後の未使用領域の直前の平文までの暗号化対象部分を暗号化する暗号部と、
前記暗号化された暗号化対象部分を復号装置に送信する送信部と
を具備する、暗号装置。
【請求項７】
前記暗号化は、前記暗号化された暗号化対象部分の直前の暗号化されたブロックを初期化ベクトルとして行なわれる、請求項６記載の暗号装置。
【請求項８】
ブロックの大きさ以上の複数の未使用領域が設けられた平文の更新部分から、前記複数の未使用領域のうち、前記更新部分の直後の未使用領域の直前の平文までの暗号化された暗号化対象部分を受信する受信部と、
前記受信された暗号化対象部分を、前記複数の未使用領域が設けられた前記平文が暗号化された暗号化対象データのうち、更新対象となる暗号化対象データの更新部分に上書きする上書き部と、
前記上書きされた暗号化対象データを復号する復号部と
を具備する復号装置。
【請求項９】
前記復号は、前記復号された暗号化対象部分の直前の暗号化されたブロックを初期化ベクトルとして行なわれる、請求項８記載の復号装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、暗号装置及び復号装置に関する。
【背景技術】
【０００２】
ブロック連鎖暗号化方式［ＡＥＳ（Ａｄｖａｎｃｅｄ  Ｅｎｃｒｙｐｔｉｏｎ  Ｓｔａｎｄａｒｄ）のＣＢＣモード  （Ｃｉｐｈｅｒ  Ｂｌｏｃｋ  Ｃｈａｉｎｉｎｇ  Ｍｏｄｅ）］では、暗号化は暗号化対象となるブロックの前のブロックに依存する。したがって、全体の一部の更新部分（差分）の暗文をそのまま上書きしても正しく復号されず、平文に復号してから上書きする必要がある。
【０００３】
しかしながら、このような処理は、更新の際に、平文に戻す処理が必要となるために、処理効率が悪くなる。そのため、ＡＥＳ−ＣＢＣで暗号化されたデータの更新部分を含む部分を復号を行なわずに更新する技術がある。
【先行技術文献】
【特許文献】
【０００４】
【特許文献１】特許第３５１６５９１号公報
【発明の概要】
【発明が解決しようとする課題】
【０００５】
従来の暗号化データの部分的な更新は、対象となるデータをレコード長に区切り、暗号化及び復号処理を行なうものであるため、暗号化及び復号の対象となる更新対象のデータの範囲をフレキシブルに更新することができない。
【課題を解決するための手段】
【０００６】
実施形態によれば、暗号装置は、複数のブロックが挿入された平文の更新部分から、挿入された複数のブロックのうち、更新部分の直後のブロックの直前の平文までの暗号化対象部分を暗号化する。そして、暗号装置は、暗号化された暗号化対象部分を復号装置に送信する。
【図面の簡単な説明】
【０００７】
【図１】図１は、実施形態に係る暗号データ更新システムの構成を示す図である。
【図２】図２は、実施形態の暗号化処理を実施するためのサーバＳ（配信側）の構成を示す図である。
【図３】図３は、実施形態の復号処理を実施するためのセンサ装置ＳＤ（受信側）の構成を示す図である。
【図４】図４は、実施形態のサーバＳのＦＷ３１の通常時の立ち上げ処理を説明するためのフローチャートである。
【図５】図５は、実施形態のサーバＳにおけるセンサ装置ＳＤのＦＷ３２の更新時の暗号化処理を説明するためのフローチャートである。
【図６】図６は、実施形態のサーバＳにおけるセンサ装置ＳＤのＦＷ３２の更新部分の暗号化を説明するための図である。
【図７】図７は、実施形態のセンサ装置ＳＤにおける（暗号化された）センサ装置ＳＤのＦＷ５１の更新時の処理を説明するためのフローチャートである。
【図８】図８は、実施形態のセンサ装置ＳＤにおける（暗号化された）センサ装置ＳＤのＦＷ５１の更新時の復号処理を説明するためのフローチャートである。
【図９】図９は、実施形態のセンサ装置ＳＤのＦＷ５１の更新を説明するための図である。
【図１０】図１０は、実施形態のセンサ装置ＳＤのＦＷ５１の復号を説明するための図である。
【図１１】図１１は、未使用領域が設けられたＦＷのバイナリファイルを示す図である。
【図１２】図１２は、未使用領域が１６バイト以上の場合の更新後のＦＷのバイナリファイルを示す図である。
【図１３】図１３は、未使用領域が１６バイト未満の場合の更新後のＦＷのバイナリファイルを示す図である。
【発明を実施するための形態】
【０００８】
以下、実施の形態について、図面を参照して説明する。
１  実施形態の背景
近年のファームウエア（ＦＷ）はサイズが増加している。そのため、フィールドサーバのようなネットワークに接続された処理性能の低い機器についてＦＷをネットワーク経由で更新する場合、ＦＷを全て配信し更新するにはコストがかかる。よって、更新部分を配信して更新するのが望ましい。
【０００９】
これと共にＦＷを暗号化して技術漏えいを防ぐ動きがある。主記憶装置に暗号化したＦＷを保存し、ＦＷ利用時に外部から参照できないメモリ領域に展開して利用する。そのため、ＦＷを更新する際にも更新部分を暗号化して配信する必要がある。暗号化方式としては一般的にＡＥＳ−ＣＢＣが広く使われている。
【００１０】
ＡＥＳ−ＣＢＣで暗号化したＦＷを、ＦＷの更新部分のみを暗号化して更新する場合、受信側は、ＡＥＳ−ＣＢＣで暗号化したＦＷ及びＦＷの更新部分の双方を復号し、平文のＦＷに平文のＦＷの更新部分を上書きすることで更新できる。更新したＦＷは暗号化してから主記憶装置に保存する。しかし、この方法では処理コストがかかる。暗文のままＦＷの更新が可能であれば処理コストが削減できるが、ＡＥＳ−ＣＢＣは暗復号処理に直前のブロック（暗号ブロックサイズは１６バイト）を使用するため、単純に暗号化したＦＷの更新部分で上書きしても復号時に正しく復号できない。ここで、「ブロック」とは、ＡＥＳ−ＣＢＣにおいて暗号化対象となる平文の単位を意味する。
２  実施形態の概要
実施形態では、平文のＦＷを暗号化し、暗号化する側（送信側）にブロック（１６バイトのデータ）を挿入する装置（又は、機能）を設ける。また、暗文のＦＷを受信し、復号する側（受信側）に送信側が挿入したブロックを除去する装置（又は、機能）を追加する。
【００１１】
ＡＥＳ−ＣＢＣの特徴から、暗文のＦＷを上書きすることで復号結果が期待値と一致しない可能性のある部分は次の２か所に限定される。
【００１２】
Ａ．  ＦＷの更新部分の先頭のブロック
Ｂ．  ＦＷの更新部分の直後のブロック
実施形態では、上記Ａ、Ｂに対して、下記の対策を採用する。
【００１３】
Ａ．  ＦＷの更新部分の先頭のブロックの対策として、ＦＷの更新部分を暗号化する際に、更新部分の直前のブロックの暗文をｉｖ（ｉｎｉｔｉａｌｉｚａｔｉｏｎ  ｖｅｃｔｏｒ）として使用する。
【００１４】
Ｂ． ＦＷの更新差分の直後のブロックの対策として、ＦＷの更新部分の直後の1ブロックは正しく復号できないものとし、平文のＦＷにあらかじめブロックを挿入してから暗号化し、受信側では復号後に挿入したブロックを取り除く。ＦＷを更新する際に配信側で更新箇所から挿入したブロックの直前までを暗号化し、送信する。受信側は受信したＦＷを上書きした後に更新前同様に復号し、挿入したブロックを除去する。
３  実施形態
３−１  構成
図１は、実施形態に係る暗号データ更新システムの構成を示す図である。同図に示すように、ネットワークＮＷを介して、サーバＳ及びセンサ装置ＳＤ−１、ＳＤ−２、…、ＳＤ−ｎが接続されている。なお、実施形態において、センサ装置ＳＤ−１、ＳＤ−２、…、ＳＤ−ｎを区別して説明する必要がない場合には、ハイフンを省略して「センサ装置ＳＤ」として説明する。他の構成要素についても、区別して説明する必要がない場合には同様にハイフンを省略して説明する。
【００１５】
サーバＳは、実施形態のＦＷ暗号機能１を有する。ＦＷ暗号機能１は、実施形態の暗号化処理により暗号化されたＦＷの更新部分をネットワークＮＷを介して、センサ装置ＳＤ−１、ＳＤ−２、…、ＳＤ−ｎに送信する。
【００１６】
センサ装置ＳＤ−１、ＳＤ−２、…、ＳＤ−ｎは、実施形態のＦＷ復号機能２−１…２−Ｎをそれぞれ有する。ＦＷ復号機能２−１…２−Ｎは、ネットワークＮＷを介して送られたＦＷの更新部分を受信し、受信したＦＷの更新部分をセンサ装置ＳＤ−１、ＳＤ−２、…、ＳＤ−ｎのＦＷに上書きするとともに、実施形態の復号方法により復号する。
【００１７】
図２は、実施形態の暗号化処理を実施するためのサーバＳ（配信側）の構成を示す図である。
【００１８】
同図に示すように、サーバＳは、バス１１に接続された暗号／復号部２１、ブロック挿入回路２２、プロセッサ２３、受信機２４及び送信機２５を有する。また、バス１１には、フラッシュメモリ２６、ＳＲＡＭ（Ｓｔａｔｉｃ  Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）２７及びＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）２８が接続される。
【００１９】
暗号／復号部２１は、暗号化及び復号処理を行なうものであり、実施形態では、更新された部分を有する（暗号化された）センサ装置ＳＤのＦＷ３２の復号及びブロックが挿入された平文のＦＷの暗号化などを行なう。
【００２０】
ブロック挿入回路２２は、平文のＦＷに複数のブロックを挿入する回路である。  プロセッサ２３は、実施形態に係る暗号化処理などの他、サーバＳ全体の制御を司る。
【００２１】
受信機２４は、サーバＳの外部からのデータを受信する。実施形態では、例えば、コンピュータなどの何らかの開発環境で作成されたセンサ装置ＳＤのＦＷを受信する。
【００２２】
送信機２５は、サーバＳから外部へデータを送信する。実施形態では、例えば、暗号／復号部２１によって（暗号化された）センサ装置ＳＤのＦＷ３２の暗号化対象部分をネットワークＮＷを介してセンサ装置ＳＤ−１、ＳＤ−２、…、ＳＤ−ｎに配信する。
【００２３】
フラッシュメモリ２６には、（暗号化された）サーバＳのＦＷ３１及び（暗号化された）センサ装置ＳＤのＦＷ３２が格納される。フラッシュメモリ２６に（暗号化された）サーバＳのＦＷ３１、センサ装置ＳＤのＦＷ３２が格納されているのは、サーバＳの外部に対してのＦＷの技術漏洩を防止するためである。
【００２４】
また、フラッシュメモリ２６に格納された（暗号化された）センサ装置ＳＤのＦＷ３２には、後述するブロックが挿入されているものとする。
【００２５】
ＳＲＡＭ２７には、（展開された）サーバＳのＦＷ３３及び（展開された）センサ装置ＳＤのＦＷ３４が格納される。（展開された）サーバＳのＦＷ３３は、ブートプログラム３５を実行するプロセッサ２３によって、（暗号化された）サーバＳのＦＷ３１が、暗号／復号部２１を使用することによって復号され、ＳＲＡＭ２７に展開されたものである。
【００２６】
（展開された）センサ装置ＳＤのＦＷ３４は、（展開された）サーバＳのＦＷ３３を実行するプロセッサ２３によって、（暗号化された）センサ装置ＳＤのＦＷ３２が、暗号／復号部２１を使用することによって復号され、ＳＲＡＭ２７に展開されたものである。
【００２７】
（展開された）サーバＳのＦＷ３３及び（展開された）センサ装置ＳＤのＦＷ３４は、ＳＲＡＭ２７のアクセス制限された（メモリ保護された）領域に展開される。
【００２８】
ＲＯＭ２８には、ブートプログラム３５が格納される。
【００２９】
（展開された）サーバＳのＦＷ３３は、暗号／復号部２１、ブロック挿入回路２２及びプロセッサ２３と協働して動作し、実施形態の暗号化処理を実現する。
【００３０】
ブートプログラム３５は、サーバＳの電源投入時に、フラッシュメモリ２６に格納された（暗号化された）サーバＳのＦＷ３１を暗号／復号部２１を使用して復号し、この復号されたサーバＳのＦＷ３１をＳＲＡＭ２７に展開する。そして、この（展開された）サーバＳのＦＷ３３を起動する。
【００３１】
図３は、実施形態の復号処理を実施するためのセンサ装置ＳＤ（受信側）の構成を示す図である。
【００３２】
同図に示すように、センサ装置ＳＤは、バス４０に接続された暗号／復号部４１、ブロック除去回路４２、プロセッサ４３、受信機４４及び送信機４５を有する。また、バス４０には、フラッシュメモリ４６、ＳＲＡＭ４７及びＲＯＭ４８が接続される。
【００３３】
暗号／復号部４１は、暗号化及び復号処理を行なうものであり、実施形態では、更新された部分を有する（暗号化された）センサ装置ＳＤのＦＷ５１の復号などを行なう。
【００３４】
ブロック除去回路４２は、ブロックが挿入された平文のＦＷからブロックを除去する回路である。  プロセッサ４３は、実施形態に係る復号処理の他、センサ装置ＳＤ全体の制御を司る。
【００３５】
受信機４４は、センサ装置ＳＤの外部からのデータを受信する。実施形態では、例えば、（暗号化された）センサ装置ＳＤのＦＷの更新部分をネットワークＮＷを介してサーバＳから受信する。送信機４５は、センサ装置ＳＤから外部へデータを送信する。実施形態では、例えば、送信機４５は、ネットワークＮＷを介してサーバＳにデータを送信する。
【００３６】
フラッシュメモリ４６には、（暗号化された）センサ装置ＳＤのＦＷ５１が格納される。フラッシュメモリ４６に（暗号化された）センサ装置ＳＤのＦＷ５１が格納されているのは、センサ装置ＳＤの外部に対してのＦＷの技術漏洩を防止するためである。
【００３７】
ＳＲＡＭ４７には、暗号／復号部４１によって復号されたセンサ装置ＳＤのＦＷ５１の展開されたセンサ装置ＳＤのＦＷ５２が格納される。（展開された）センサ装置ＳＤのＦＷ５２は、ＳＲＡＭ４７のアクセス制限された（メモリ保護された）領域に展開される。
【００３８】
ＲＯＭ４８には、ブートプログラム５３が格納される。
【００３９】
（展開された）センサ装置ＳＤのＦＷ５２は、暗号／復号部４１、ブロック除去回路４２及びプロセッサ４３と協働して動作し、センサ装置ＳＤの全体的な制御を行なう。
【００４０】
（展開された）センサ装置ＳＤのＦＷ５２は、フラッシュメモリ４６に格納された（暗号化された）センサ装置ＳＤのＦＷ５１が、ブートプログラム５３を実行するプロセッサ４３によって暗号／復号部４１により復号され、ＳＲＡＭ４７に展開されたものである。
【００４１】
ブートプログラム５３は、センサ装置ＳＤの電源投入時に、フラッシュメモリ４６に格納された（暗号化された）センサ装置ＳＤのＦＷ５１を暗号／復号部４１を使用して復号し、この復号されたセンサ装置ＳＤのＦＷをＳＲＡＭ２７に展開する。そして、この（展開された）センサ装置ＳＤのＦＷ５２を起動する。
【００４２】
（展開された）センサ装置ＳＤのＦＷ５２は、センサ装置ＳＤにおける実施形態の暗号化対象部分の（暗号化された）センサ装置ＳＤのＦＷ５１への上書き処理、復号されたＦＷ５１のブロック除去処理などを行なう。
３−２  動作
３−２−１  サーバＳの通常時のＦＷ３１の立ち上げ処理
図４は、実施形態の（暗号化された）サーバＳのＦＷ３１の通常時の立ち上げ処理を説明するためのフローチャートである。
【００４３】
サーバＳの電源が投入されると（Ｓ１）、ブートプログラム３５が起動する（Ｓ２）。
【００４４】
次に、ブートプログラム３５が（暗号化された）サーバＳのＦＷ３１をＳＲＡＭ２７に転送する（Ｓ３）。
【００４５】
ブートプログラム３５は、暗号／復号部２１を使用して、転送された（暗号化された）サーバＳのＦＷ３１を復号する（Ｓ４）。そして、ブートプログラム３５は、復号されたサーバＳのＦＷ３１をＳＲＡＭ２７に展開して格納する（Ｓ５）。その後、（展開された）サーバＳのＦＷ３３が実行され、各種処理に使用される（Ｓ６）。
３−２−２  サーバＳにおけるセンサ装置ＳＤのＦＷ３２の更新時の暗号化処理
図５は、実施形態のサーバＳにおけるセンサ装置ＳＤのＦＷ３２の更新時の暗号化処理を説明するためのフローチャートである。図６は、実施形態のサーバＳにおけるセンサ装置ＳＤのＦＷ３２の更新部分の暗号化を説明するための図である。
【００４６】
サーバＳのＦＷ３１は、（暗号化された）センサ装置ＳＤのＦＷ３２の変更イベントがあるか否かを判断する（Ｓ１１）。実施形態では、センサ装置ＳＤのＦＷ３２が変更されたか否かのイベントは、受信機２４によって新たな（暗号化された）センサ装置ＳＤのＦＷ３２を受信した場合である。
【００４７】
Ｓ１１において、（暗号化された）センサ装置ＳＤのＦＷ３２の変更イベントがあると判断された場合には、サーバＳのＦＷ３１は、（暗号化された）センサ装置ＳＤのＦＷ３２をＳＲＡＭ２７に転送する（Ｓ１２）。
【００４８】
サーバＳのＦＷ３１は、暗号／復号部２１を使用して、転送されてきた（暗号化された）センサ装置ＳＤのＦＷ３２を復号する（Ｓ１３）。  次に、サーバＳのＦＷ３１は、受信機２４で受信した新たな（暗号化された）センサ装置ＳＤのＦＷ５１を復号し（Ｓ１４）、新たな（復号された）センサ装置ＳＤのＦＷ５１にブロック挿入処理を行なう（Ｓ１５）。そして、Ｓ１３の結果と、Ｓ１５の結果とを比較することにより、サーバＳのＳＲＡＭ２７に格納されたセンサ装置ＳＤの（展開された）ＦＷ３４の更新部分を求める（Ｓ１６）。
【００４９】
ここで、ブロックの挿入方法には、他にも以下のブロック挿入方法が考えられる。
【００５０】
・  サーバＳのＦＷ３１を起動するブートプログラム３５にブロック挿入箇所を固定値でブロック挿入回路２２に指定する。例えば、ブロック（１６バイト）の倍数である。
【００５１】
・  サーバＳのＦＷ３１を起動するブートプログラム３５にブロック挿入間隔の設定値をブロック挿入回路２２に指定する。例えば、１００メガバイト毎である。
【００５２】
・  ブートプログラム３５が参照するブロック挿入箇所を列記したテーブルを設ける。ブートプログラム３５は、テーブルを参照して、ブロック挿入箇所をブロック挿入回路２２に指定する。例えば、１つ目のブロックは、１００メガバイトの箇所、２つ目のブロックは、３００メガバイトの箇所などである。
【００５３】
なお、実施形態のブロック挿入方法は上記方法に限られず、他のブロック挿入方法であっても良い。  
【００５４】
Ｓ１６において（展開された）センサ装置ＳＤのＦＷ３４の更新部分が求められた後、（展開された）センサ装置ＳＤのＦＷ３４の平文の更新部分（更新部分の最初のブロック）から更新部分の直後のブロックの直前の平文までを暗号化対象部分として、暗号化処理を行なう（Ｓ１７、図６のＰＢ−ＣＰ→ＥＢ−ＣＰ）。
【００５５】
この暗号化処理は、ＡＥＳ−ＣＢＣモードによる暗号化処理であり、初期化ベクトルｉｖとして、暗号化対象部分の直前の暗号化されたブロックが使用される（図６のｉｖ）。
【００５６】
その後、送信機１５は、（暗号化された）センサ装置ＳＤのＦＷ３２の暗号化対象部分をネットワークＮＷを介してセンサ装置ＳＤ−１、ＳＤ−２、…、ＳＤ−ｎに送信する（Ｓ１８）。
【００５７】
次に、次回の（暗号化された）センサ装置ＳＤのＦＷ３２の更新に備えて、（暗号化された）サーバＳのＦＷ３１は、センサ装置ＳＤに送信した暗号化対象部分を（暗号化された）センサ装置ＳＤのＦＷ３２の対応部分に上書きする（Ｓ１９）。
３−２−３  センサ装置ＳＤのＦＷ５１の更新時の処理
図７は、実施形態のセンサ装置ＳＤにおける（暗号化された）センサ装置ＳＤのＦＷ５１の更新時の処理を説明するためのフローチャートである。図９は、実施形態のセンサ装置ＳＤにおける（暗号化された）センサ装置ＳＤのＦＷ５１の更新を説明するための図である。
【００５８】
（展開された）センサ装置ＳＤのＦＷ５２は、サーバＳからセンサ装置ＳＤのＦＷ５１の暗号化対象部分を受信したか否かの判断を行なう（Ｓ２１）。暗号化対象部分を受信したと判断された場合、ブートプログラム５３は、受信した暗号化対象部分を、更新対象となる（暗号化された）センサ装置ＳＤのＦＷ５１の対応部分に上書きする（Ｓ２２、図９のＥＢ→ＥＢ−Ｃ）。
【００５９】
これにより、更新され、かつ（暗号化された）センサ装置ＳＤのＦＷ５１がフラッシュメモリ４６に格納される。その後、センサ装置ＳＤの再起動が行なわれる（Ｓ２３）。
３−２−４  センサ装置ＳＤのＦＷ５１の更新時の復号処理
図８は、実施形態のセンサ装置ＳＤにおける（暗号化された）センサ装置ＳＤのＦＷ５１の更新時の復号処理を説明するためのフローチャートである。図１０は、実施形態のセンサ装置ＳＤのＦＷ５１の復号を説明するための図である。
【００６０】
ブートプログラム５３は、センサ装置ＳＤの電源が投入されると（Ｓ３１）、（暗号化された）センサ装置ＳＤのＦＷ５１をＳＲＡＭ４７に転送する（Ｓ３２）。
【００６１】
ブートプログラム５３は、暗号／復号部４１を使用して、転送されてきたセンサ装置ＳＤのＦＷ５１を復号する（Ｓ３３、図１０のＥＢ−Ｃ→ＡＥＳ−ＣＢＣ復号）。そして、ブートプログラム５３は、ブロック除去回路４２を使用して、復号された平文のセンサ装置ＳＤのＦＷに挿入された複数のブロックを除去する（Ｓ３４、図１０のＰＢ−Ｃ→Ｐ−Ｃ）。
【００６２】
その後、ＳＲＡＭ４７にブロックが除去された平文のセンサ装置ＳＤのＦＷ５２を展開する（Ｓ３５）。（展開された）センサ装置ＳＤのＦＷ５２は、各種処理に使用される。
【００６３】
なお、上述の説明では（暗号化された）センサ装置ＳＤのＦＷ５１の上書き後に、センサ装置ＳＤの再起動を行なう場合について説明したが、これに限るものではない。例えば、センサ装置ＳＤは、毎日所定の時間に再起動を行ない、そのタイミングで上書きされたセンサ装置ＳＤのＦＷ５１を使用しても良い。
３−３  実施形態の効果
実施形態によれば、暗号化及び復号の対象となる更新対象のデータの範囲をフレキシブルに、かつ効率よく更新することができる。
４  他の実施形態及び変形例
４−１  他の実施形態（未使用領域の挿入）
上述の実施形態では、複数のブロックを挿入する場合について説明した。他の実施形態では、ＦＷの暗号化直前にブロック（例えば、１６バイト）を挿入する代わりに、ＦＷのバイナリ作成時に予め未使用のブロックの大きさ以上（例えば、１６バイト以上）の領域を点在させておく。
【００６４】
図１１は、未使用領域が設けられた更新前のＦＷのバイナリファイルを示す図である。図１２は、未使用領域が１６バイト以上の場合の更新後のＦＷのバイナリファイルを示す図である。図１３は、未使用領域が１６バイト未満の場合の更新後のＦＷのバイナリファイルを示す図である。
図１２に示すように、未使用領域が１６バイト以上の場合、図１１に示したＦＷ更新の際には、上書きした領域の直後に未使用領域（例えば、１６バイト）が存在するように上書きする。上書きした直後の未使用領域（図１２の未使用領域２）は正しく復号できないが、その後のＦＷ使用領域（図１２のＦＷ使用領域３）は正しく復号することができる。
また、図１３に示すように、未使用領域が１６バイト未満の場合、図１１に示したFWの更新の際には、次の未使用領域（図１３の未使用領域３）の直前まで上書きする（図１３の上書きした領域）。
【００６５】
このような構成を採用することにより、上述の実施形態に比べ、受信側で未使用領域が存在するため、ＦＷが消費するメモリ量は増えるが、受信側でブロックを除去する処理が不要となる。
４−２  ブロック、未使用領域の分布方法
上述のブロック及び未使用領域の分布方法には、以下の方法が考えられる。
・  均等に分布する
・  変更する可能性の高い部分は密に、低い部分は疎に分布する
変更する可能性の高い部分としては、新規実装の処理部分、処理が複雑など不具合が生じやすい部分、暫定的に実装された部分、処理性能が要求される部分、機能拡張が見込まれる部分などである。
【００６６】
変更する可能性の低い部分としては、過去の製品に使用した実績のある処理部分、ハードウェアインターフェイスの部分、検査し尽された部分、使いこまれた部分などである。
【００６７】
なお、上述の実施形態では、ＦＷの部分を更新する場合について説明したが、ＦＷの更新に限るものではない。実施形態は、暗号化されたデータの一部を更新する場合に適用することができる。
【００６８】
また、実施形態における処理は、ハードウェア及びソフトウェアの組み合わせにより行なう場合について説明したが、ハードウェアによる処理はソフトウェアによる処理により実現しても良いし、ソフトウェアによる処理はハードウェアによる処理により実現しても良い。また、実施形態における処理の一部又は全てをハードウェア又はソフトウェアによる処理に変更しても良い。
【００６９】
さらに、実施形態では、サーバＳにデータの配信機能を持たせ、センサ装置ＳＤに配信されたデータの更新機能を持たせる場合について説明したが、サーバＳ及びセンサ装置ＳＤが双方の機能を有していても良い。
【００７０】
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００７１】
Ｓ…サーバ、ＳＤ…センサ装置、２１、４１…暗号／復号部、２２…ブロック挿入回路、２３、４３…プロセッサ、３５、５３…ブートプログラム。
【図１】
2017167274.tif 000003
【図２】
2017167274.tif 000004
【図３】
2017167274.tif 000005
【図４】
2017167274.tif 000006
【図５】
2017167274.tif 000007
【図６】
2017167274.tif 000008
【図７】
2017167274.tif 000009
【図８】
2017167274.tif 000010
【図９】
2017167274.tif 000011
【図１０】
2017167274.tif 000012
【図１１】
2017167274.tif 000013
【図１２】
2017167274.tif 000014
【図１３】
2017167274.tif 000015