(57)【特許請求の範囲】
【請求項１】
メインＣＰＵと複数のサブＣＰＵとを含むマルチＣＰＵシステムの情報処理装置であって、
前記メインＣＰＵは、
前記複数のサブＣＰＵのうちの第１サブＣＰＵへ、前記複数のサブＣＰＵのうちの少なくとも１つのサブＣＰＵのプログラムを更新するプログラム更新用データを一部分ずつ順次送信する送信手段を備え、
前記第１サブＣＰＵは、
前記送信手段によって送信される前記プログラム更新用データの一部である署名データを受信すると、当該署名データを復号化して、更新するプログラムの本文データの一部を含む署名元データを取得する取得手段と、
前記取得手段によって取得した署名元データに含まれるＣＰＵ指定識別子が示すサブＣＰＵが前記第１サブＣＰＵとは異なる第２サブＣＰＵであれば、該第２サブＣＰＵへ、前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データを認証しつつ転送する転送手段と
を備えることを特徴とする情報処理装置。
【請求項２】
前記第１サブＣＰＵは、
前記取得手段によって取得した署名元データを不揮発メモリに格納する格納手段をさらに備えることを特徴とする請求項１に記載の情報処理装置。
【請求項３】
前記第２サブＣＰＵは、
前記転送手段によって転送されたデータを認証しつつ所定の領域へ書き込むことにより、プログラムを更新する更新手段を備え、
前記転送手段は、前記更新手段によって、転送した前記プログラム更新用データのうち前記署名データ以降のデータの更新が正常に終了すると、さらに、前記不揮発メモリに格納した前記署名元データに含まれる前記本文データの一部を前記第２サブＣＰＵへ転送することを特徴とする請求項２に記載の情報処理装置。
【請求項４】
前記第１サブＣＰＵは、
前記ＣＰＵ指定識別子が示すサブＣＰＵが前記第１サブＣＰＵであれば、前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データを認証しつつ前記不揮発メモリへ書き込み、前記プログラム更新用データのうち前記署名データ以降のデータの更新が正常に終了すると、さらに、前記不揮発メモリに格納した前記署名元データに含まれる前記本文データの一部を前記不揮発メモリへ書き込むことにより、プログラムを更新する手段をさらに備えることを特徴とする請求項３に記載の情報処理装置。
【請求項５】
前記第１サブＣＰＵは、
前記ＣＰＵ指定識別子が示すサブＣＰＵが存在しない場合は、プログラムを更新する処理をエラー終了することを特徴とする請求項１乃至４の何れか１項に記載の情報処理装置。
【請求項６】
前記取得手段によって取得した前記署名元データには、前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データを認証するための認証値が含まれることを特徴とする請求項１乃至５の何れか１項に記載の情報処理装置。
【請求項７】
前記署名元データのデータ長は、メッセージ復元型の署名を復元可能なデータ長以下であることを特徴とする請求項１乃至６の何れか１項に記載の情報処理装置。
【請求項８】
前記複数のサブＣＰＵのそれぞれは、更新用の自身のプログラムを復号化するための復号対称鍵を予め記憶しており、
前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データは、対応するサブＣＰＵの前記復号対称鍵と同じ暗号鍵で暗号化されていることを特徴とする請求項１乃至７の何れか１項に記載の情報処理装置。
【請求項９】
前記署名データは、非対称鍵を用いるＩＳＯ９７９６−２署名アルゴリズムによって暗号化されていることを特徴とする請求項１乃至８の何れか１項に記載の情報処理装置。
【請求項１０】
前記複数のサブＣＰＵは、データの認証に失敗すると、プログラムを更新する処理をエラー終了することを特徴とする請求項１乃至９の何れか１項に記載の情報処理装置。
【請求項１１】
メインＣＰＵと複数のサブＣＰＵとを含むマルチＣＰＵシステムの情報処理装置の制御方法であって、
前記メインＣＰＵにおいて、
送信手段が、前記複数のサブＣＰＵのうちの第１サブＣＰＵへ、前記複数のサブＣＰＵのうちの少なくとも１つのサブＣＰＵのプログラムを更新するプログラム更新用データを一部分ずつ順次送信する送信工程を実行し、
前記第１サブＣＰＵにおいて、
取得手段が、前記送信工程で送信される前記プログラム更新用データの一部である署名データを受信すると、当該署名データを復号化して、更新するプログラムの本文データの一部を含む署名元データを取得する取得工程と、
転送手段が、前記取得工程で取得した署名元データに含まれるＣＰＵ指定識別子が示すサブＣＰＵが前記第１サブＣＰＵとは異なる第２サブＣＰＵであれば、該第２サブＣＰＵへ、前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データを認証しつつ転送する転送工程と
を実行することを特徴とする情報処理装置の制御方法。
【請求項１２】
請求項１１に記載の情報処理装置の制御方法における各工程をコンピュータに実行させるためのプログラム。
【請求項１３】
第１層制御部と第２層制御部と第３層制御部とを含む情報処理装置であって、
前記第１層制御部は、
前記第２層制御部へ、前記第２層制御部及び前記第３層制御部のうちの少なくとも１つのプログラムを更新するプログラム更新用データを一部分ずつ順次送信する送信手段を備え、
前記第２層制御部は、
前記送信手段によって送信される前記プログラム更新用データの一部である署名データを受信すると、当該署名データを復号化して、更新するプログラムの本文データの一部を含む署名元データを取得する取得手段と、
前記取得手段によって取得した署名元データに含まれる識別子が前記第３層制御部であれば、該第３層制御部へ、前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データを認証しつつ転送する転送手段と
を備えることを特徴とする情報処理装置。
【請求項１４】
前記第２層制御部は、
前記取得手段によって取得した署名元データを不揮発メモリに格納する格納手段をさらに備えることを特徴とする請求項１３に記載の情報処理装置。
【請求項１５】
前記第３層制御部は、
前記転送手段によって転送されたデータを認証しつつ所定の領域へ書き込むことにより、プログラムを更新する更新手段を備え、
前記転送手段は、前記更新手段によって、転送した前記プログラム更新用データのうち前記署名データ以降のデータの更新が正常に終了すると、さらに、前記不揮発メモリに格納した前記署名元データに含まれる前記本文データの一部を前記第３層制御部へ転送することを特徴とする請求項１４に記載の情報処理装置。
【請求項１６】
複数の制御手段を含む情報処理装置であって、
第１の制御手段は、
複数の制御手段のうち少なくとも１つの制御手段のプログラムを更新するプログラム更新用データを受信する第１の受信手段と、
前記プログラム更新用データから署名データを復号化して署名元データを取得し、前記署名データを認証する認証手段と、を備え、
第２の制御手段は、
前記第１の制御手段によって認証された前記プログラム更新用データを受信する第２の受信手段と、
前記署名データを認証することなく、プログラムを更新する更新手段と、を備え、
前記第１の制御手段は、
前記取得した署名元データを不揮発メモリに格納する格納手段をさらに備え、
前記第２の受信手段は、前記更新手段によって、受信した前記プログラム更新用データのうち前記署名データ以降のデータの更新が正常に終了すると、さらに、前記不揮発メモリに格納された前記署名元データに含まれる、更新するプログラムの本文データの一部を前記第１の制御手段から受信することを特徴とする情報処理装置。
【請求項１７】
前記第１の制御手段は、
前記第１の制御手段のプログラムを更新する場合には、前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データを認証しつつ前記不揮発メモリへ書き込み、前記プログラム更新用データのうち前記署名データ以降のデータの更新が正常に終了すると、さらに、前記不揮発メモリに格納した前記署名元データに含まれる前記本文データの一部を前記不揮発メモリへ書き込むことにより、プログラムを更新する手段をさらに備えることを特徴とする請求項１６に記載の情報処理装置。
【請求項１８】
前記第２の受信手段によって受信した前記署名元データには、前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データを認証するための認証値が含まれることを特徴とする請求項１７に記載の情報処理装置。
【請求項１９】
前記署名元データのデータ長は、メッセージ復元型の署名を復元可能なデータ長以下であることを特徴とする請求項１６乃至１８の何れか１項に記載の情報処理装置。
【請求項２０】
前記第１の制御手段及び前記第２の制御手段のそれぞれは、更新用の自身のプログラムを復号化するための復号対称鍵を予め記憶しており、
前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データは、対応する制御手段の前記復号対称鍵と同じ暗号鍵で暗号化されていることを特徴とする請求項１６に記載の情報処理装置。
【請求項２１】
複数の制御手段を含む情報処理装置の制御方法であって、
第１の制御手段において、
第１の受信手段が、複数の制御手段のうち少なくとも１つの制御手段のプログラムを更新するプログラム更新用データを受信する第１の受信工程と、
認証手段が、前記プログラム更新用データから署名データを復号化して署名元データを取得し、前記署名データを認証する認証工程と、を実行し、
第２の制御手段において、
第２の受信手段が、前記第１の制御手段によって認証された前記プログラム更新用データを受信する第２の受信工程と、
更新手段が、前記署名データを認証することなく、プログラムを更新する更新工程と、を実行し、
前記第１の制御手段において、さらに、
格納手段が、前記取得した署名元データを不揮発メモリに格納する格納工程を実行し、
前記第２の制御手段において、さらに、
前記第２の受信手段が、前記更新工程で、受信した前記プログラム更新用データのうち前記署名データ以降のデータの更新が正常に終了すると、さらに、前記不揮発メモリに格納された前記署名元データに含まれる、更新するプログラムの本文データの一部を前記第１の制御手段から受信する工程をさらに実行することを特徴とする情報処理装置の制御方法。
【請求項２２】
請求項２１に記載の情報処理装置の制御方法における各工程をコンピュータに実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置、その制御方法及びプログラムに関する。
【背景技術】
【０００２】
特許文献１には、複数のＣＰＵを有するマルチＣＰＵにおいて、各々のＣＰＵのプログラムを更新する技術が提案されている。具体的には、プログラム更新用データの中に、ＣＰＵ識別子を含むデータを含めて対称鍵暗号によって暗号化し、ＭＡＣ認証値を付加した当該暗号化データがマルチＣＰＵへ送出される。マルチＣＰＵでは、秘密鍵を用いて復号化・検証した上で、各ＣＰＵのプログラム更新作業が行われる。
【先行技術文献】
【特許文献】
【０００３】
【特許文献１】特開２００６−１７８５４４号公報
【発明の概要】
【発明が解決しようとする課題】
【０００４】
しかしながら、上記従来技術には以下に記載する問題がある。上記従来技術では、プログラム更新用データの純正性を確認するために、送信先のＣＰＵの内部に格納された秘密鍵と、対称アルゴリズム暗号を用いた確認方法が用いられている。したがって、送信先のＣＰＵに格納された秘密鍵と認証アルゴリズムをリバースエンジニアリング等によって読み出すことによって、秘密鍵と認証アルゴリズムを暴露することが可能である。悪意ある第三者は暴露した秘密鍵と認証アルゴリズムを用いて、改竄したプログラム更新用データを作成してマルチＣＰＵシステムに送信し、マルチＣＰＵシステムを誤動作させることができ、セキュリティ上の懸念があった。
【０００５】
一般的には、データの純正性を確認する能力を向上させるためには、例えばＲＳＡ−ＰＳＳ等を使った署名技術を用いた方法がある。この方法は、予めシステムには存在しないＲＳＡ秘密鍵と純正性を確認する対象データを入力して作成したデジタル署名とを対にしてシステムに送る。その後、システム内に格納した公開鍵を用いて署名を検証し、署名対象データの純正性を確認する上で検証した署名を用いる方法である。しかし、この方法では、以下の問題がある。
１．全てのデータをマルチＣＰＵが受け取った後でないとデータの純正性を確認できない。
２．全てのデータをバッファリングするＲＡＭが無い場合には、プログラム更新用データを送信する以前にプログラム更新用データを送信するＣＰＵ指定値を検証するためにＣＰＵ指定値だけについての署名が必要となる。
このような問題により、マルチＣＰＵシステムのハードウェア又はファームウェアが肥大化してしまう。
【０００６】
本発明は、上述の問題に鑑みて成されたものであり、プログラム更新機能を有するマルチＣＰＵシステムにおいて、プログラム更新用データのサイズの増大を抑制しつつ、不正なプログラム更新用データの不揮発メモリへの更新を防止する仕組みを提供することを目的とする。
【課題を解決するための手段】
【０００７】
本発明は、メインＣＰＵと複数のサブＣＰＵとを含むマルチＣＰＵシステムの情報処理装置であって、前記メインＣＰＵは、前記複数のサブＣＰＵのうちの第１サブＣＰＵへ、前記複数のサブＣＰＵのうちの少なくとも１つのサブＣＰＵのプログラムを更新するプログラム更新用データを一部分ずつ順次送信する送信手段を備え、前記第１サブＣＰＵは、前記送信手段によって送信される前記プログラム更新用データの一部である署名データを受信すると、当該署名データを復号化して、更新するプログラムの本文データの一部を含む署名元データを取得する取得手段と、
前記取得手段によって取得した署名元データに含まれるＣＰＵ指定識別子が示すサブＣＰＵが前記第１サブＣＰＵとは異なる第２サブＣＰＵであれば、該第２サブＣＰＵへ、前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データを認証しつつ転送する転送手段とを備えることを特徴とする。
【０００８】
また、本発明は、例えば、第１層制御部と第２層制御部と第３層制御部とを含む情報処理装置であって、前記第１層制御部は、前記第２層制御部へ、前記第２層制御部及び前記第３層制御部のうちの少なくとも１つのプログラムを更新するプログラム更新用データを一部分ずつ順次送信する送信手段を備え、前記第２層制御部は、前記送信手段によって送信される前記プログラム更新用データの一部である署名データを受信すると、当該署名データを復号化して、更新するプログラムの本文データの一部を含む署名元データを取得する取得手段と、前記取得手段によって取得した署名元データに含まれる識別子が前記第３層制御部であれば、該第３層制御部へ、前記プログラム更新用データのうち前記署名データ以降のデータであって、前記本文データの他の部分を含む該データを認証しつつ転送する転送手段とを備えることを特徴とする。
【０００９】
本発明は、複数の制御手段を含む情報処理装置であって、第１の制御手段は、複数の制御手段のうち少なくとも１つの制御手段のプログラムを更新するプログラム更新用データを受信する第１の受信手段と、前記プログラム更新用データから署名データを復号化して署名元データを取得し、前記署名データを認証する認証手段と、を備え、第２の制御手段は、前記第１の制御手段によって認証された前記プログラム更新用データを受信する第２の受信手段と、前記署名データを認証することなく、プログラムを更新する更新手段と、を備え、前記第１の制御手段は、前記取得した署名元データを不揮発メモリに格納する格納手段をさらに備え、前記第２の受信手段は、前記更新手段によって、受信した前記プログラム更新用データのうち前記署名データ以降のデータの更新が正常に終了すると、さらに、前記不揮発メモリに格納された前記署名元データに含まれる、更新するプログラムの本文データの一部を前記第１の制御手段から受信する。
【発明の効果】
【００１０】
本発明によれば、プログラム更新機能を有するマルチＣＰＵシステムにおいて、プログラム更新用データのサイズの増大を抑制しつつ、不正なプログラム更新用データの不揮発メモリへの更新を防止することができる。
【図面の簡単な説明】
【００１１】
【図１】第１の実施形態に係る情報処理装置のブロック図。
【図２】第１の実施形態に係るサブＣＰＵの不揮発メモリ内ブロック図。
【図３】第１の実施形態に係るプログラム更新用データの構造図。
【図４】第１の実施形態に係るプログラム更新作業フローチャート。
【図５】第２の実施形態に係るプログラム更新用データの構造図。
【図６】第２の実施形態に係るプログラム更新作業フローチャート。
【発明を実施するための形態】
【００１２】
以下、添付図面を参照して本発明の実施形態を詳しく説明する。なお、以下の実施形態は特許請求の範囲に係る本発明を限定するものでなく、また本実施形態で説明されている特徴の組み合わせの全てが本発明の解決手段に必須のものとは限らない。
【００１３】
＜第１の実施形態＞
＜情報処理装置の構成＞
以下では、図１乃至図４を参照して、本発明の第１の実施形態について説明する。まず、図１を参照して、本実施形態に係るプログラム更新機能を有する情報処理装置の構成について説明する。本情報処理装置は、マルチＣＰＵシステムを有する。
【００１４】
１０１はプログラム更新用データ出力装置である。１０２はプログラム更新用データ出力装置１０１に接続されたプログラム更新機能を有するマルチＣＰＵシステムのコントローラＣＰＵボード１０２である。１０３はプログラム更新機能を有するマルチＣＰＵシステムにおけるサブＣＰＵボードシステム１０３である。サブＣＰＵボードシステム１０３には、サブＣＰＵボード１０４と、サブＣＰＵボード１０５とが含まれて構成される。
【００１５】
サブＣＰＵボード１０４は、シリアル通信制御部Ａ１１２によってコントローラＣＰＵボード１０２のシリアル通信制御部１０８に接続され、サブＣＰＵボード１０５とシリアル通信制御部Ｂ１１１によって接続されるサブＣＰＵボードである。サブＣＰＵボード１０４は、サブＣＰＵ１０９、ＲＡＭ１１０、シリアル通信制御部１１１、シリアル通信制御部１１２、不揮発メモリ１１３、及び署名検証処理部１１４を備える。不揮発メモリ１１３は、サブＣＰＵ１０９とサブＣＰＵ１０９の制御プログラムとを格納する。ＲＡＭ１１０は、サブＣＰＵ１０９が処理を行う際に使用される。署名検証処理部１１４は、プログラム更新用データに含まれる署名の検証処理を行う。シリアル通信制御部Ｂ１１１は、サブＣＰＵボード１０５と通信を行う。
【００１６】
サブＣＰＵボード１０５は、シリアル通信制御部１１７によってサブＣＰＵボード１０４のシリアル通信制御部Ｂ１１１に接続されたサブＣＰＵボードである。サブＣＰＵボード１０５は、サブＣＰＵ１１５、ＲＡＭ１１６、シリアル通信制御部１１７、及び不揮発メモリ１１８を備える。不揮発メモリ１１８は、サブＣＰＵ１１５の制御プログラムを格納する。ＲＡＭ１１６は、サブＣＰＵ１１５が処理を行う際に使用される。
【００１７】
＜不揮発メモリの内容＞
次に、図２を参照して、本実施形態のプログラム更新機能を有するマルチＣＰＵシステムにおけるサブＣＰＵ用の制御プログラムを格納する不揮発メモリ１１３、１１８の内容について説明する。
【００１８】
不揮発メモリ１１３は、書き換え可能なブロック２０２と、書き換え不可能なブロック２０３とに分けて使用される。不揮発メモリ１１３の書き換え可能なブロック２０２には、サブＣＰＵ１０９用の動作プログラム２０４が格納される。また、不揮発メモリ１１３の書き換え不可能なブロック２０３には、ＣＰＵ指定チェック番号２０６と、ＲＳＡ公開鍵２０７と、復号用対称鍵２０８と、運用プログラム２０９とが格納されている。ＣＰＵ指定チェック番号２０６は、サブＣＰＵ１０９用に割り振られる固有の識別子である。ＲＳＡ公開鍵２０７は、署名を検証するための鍵データである。復号用対称鍵２０８は、サブＣＰＵ１０９向けの鍵データである。運用プログラム２０９は、プログラム更新作業を実施するための制御プログラムである。
【００１９】
不揮発メモリ１１８は、書き換え可能なブロック２１２と書き換え不可能なブロック２１３とに分けられる。不揮発メモリ１１８の書き換え可能なブロック２１２には、サブＣＰＵ１１５用の動作プログラム２１４が格納される。不揮発メモリ１１８の書き換え不可能なブロック２１３には、サブＣＰＵ１１５用に割り振られたＣＰＵ指定チェック番号２１５と、サブＣＰＵ１１５向けの復号用対称鍵２１６と、プログラム更新作業を実施するための運用プログラム２１７とが格納される。
【００２０】
＜プログラム更新用データ＞
次に、図３を参照して、本実施形態に係るプログラム更新用データのデータ構造について説明する。３０１はプログラム更新用データである。プログラム更新用データ３０１は、署名データ３０２と、本文復号データ生成用のデータ（初期ベクタ）３０３とを含む。さらに、プログラム更新用データ３０１は、プログラム更新用データを送信するサブＣＰＵの書き換え不可能なブロックに格納された、プログラム更新用本文データ（１〜Ｎ−ｍ）３０４〜３０５を含む。プログラム更新用本文データ（１〜Ｎ−ｍ）３０４〜３０５は、対応するサブＣＰＵの復号用対称鍵データと同じ暗号鍵で暗号化されている。ｍについては後で説明する。
【００２１】
３１１は、署名データ３０２を作成する際に用いられたデータであり、署名データ３０２を復号化すると得られる署名元データである。署名元データ３１１は、サブＣＰＵ１０９の不揮発メモリ１１３の書き換え不可能なブロック２０３に格納された公開鍵２０７と対になる秘密鍵と共に、ＩＳＯ９７９６−２署名アルゴリズムで生成される。署名元データ３１１には、ＣＰＵ指定識別子３１２、サイズ情報３１３、認証値データ３１４、プログラム更新用本文データ（Ｎ−ｍ＋１〜Ｎ）３１５〜３１６、及び認証値データ３１７が含まれる。サイズ情報３１３は、プログラム更新用本文データのサイズ情報を示す。認証値データ３１４は、サブＣＰＵ１０９がサブＣＰＵ１１５に送信するデータ３０３，３０４，３０５，３１５，３１６，３１７を検証するためのデータである。プログラム更新用本文データ（Ｎ−ｍ＋１〜Ｎ）３１５〜３１６は、プログラム更新用本文データＮ−ｍ３０５をサブＣＰＵ１１５に送信した後に、サブＣＰＵ１１５に送信されるデータである。認証値データ３１７は、サブＣＰＵがプログラム更新用データの正しさを認証するためのデータである。
【００２２】
認証値データ３１４、３１７は、必要な検証安全レベルに応じてＨＡＳＨ、ＣＢＣモードの暗号ＭＡＣ、ＣＲＣ、チェックサム等を用いる。ＩＳＯ９７９６−２署名は、暗号化に用いるＲＳＡ鍵長、ハッシュ関数、ソルト長、又はトレイル長によって復元可能な元データの長さが決まる。ｍは署名元データ３１１が復元可能な元データサイズ以下になるような０以上の整数として定義することができ、ｍを大きくすることでプログラム更新用データ３０１のデータサイズを小さくすることができる。
【００２３】
＜更新手順＞
次に、図４を参照して、本実施形態のプログラム更新機能を有するマルチＣＰＵシステムの処理手順について説明する。マルチＣＰＵシステムのプログラム更新は、プログラム更新用データ３０１をプログラム更新用データ出力装置１０１からコントローラＣＰＵ（メインＣＰＵ）１０６に送信することによって開始される。
【００２４】
コントローラＣＰＵ（メインＣＰＵ、第１層制御部）１０６は、プログラム更新用データ出力装置１０１の送信した、プログラム更新用データ３０１を通信制御部１０７によって受信する。プログラム更新用データ３０１を受信すると、Ｓ４０１で、コントローラＣＰＵ１０６は、サブＣＰＵ１０９（第２層制御部）にＣＰＵ指定チェック番号を指定した、更新作業の開始コマンドをシリアル通信で送信する。このＣＰＵ指定チェック番号は、プログラム更新用データ３０１の最初に、更に平文でデータを追加することで定義可能である。サブＣＰＵ１０９は、指示されたＣＰＵ指定チェック番号を記憶する。Ｓ４０２で、コントローラＣＰＵ１０６は、サブＣＰＵ１０９にプログラム更新用データ３０１を一部分ずつシリアル通信制御部１０８を使って順次送信する。
【００２５】
サブＣＰＵ１０９は、予め定められたデータ長だけプログラム更新用データ３０１を受信してメモリ１１０に格納する。ここでは、署名データ３０２が受信される。署名データ３０２は、図３に示すように、プログラム更新用データ３０１の先頭のデータ部分である。即ち、ここでは、サブＣＰＵ１０９は、まずプログラム更新用データ３０１の中の署名データ３０２の部分のみを受信することになる。その後、Ｓ４０３で、サブＣＰＵ１０９は、取得手段として機能する署名検証処理部１１４に公開鍵２０７と署名データ３０２とを入力して、署名データ３０２の検証と、署名元データ３１１の復元・取得を行う。ここで、公開鍵２０７は、サブＣＰＵ１０９が含まれるサブＣＰＵボード１０４に備えられた不揮発メモリ１１３に予め格納されている。復元された署名元データ３１１は、不揮発メモリ１１３へ格納される。
【００２６】
続いて、Ｓ４０４で、サブＣＰＵ１０９は、署名元データ３１１に含まれるＣＰＵ指定識別子３１２から更新対象のサブＣＰＵを特定する。具体的には、サブＣＰＵ１０９は、Ｓ４０１で受信したＣＰＵ指定チェック番号と、署名元データ３１１の中のＣＰＵ指定識別子３１２とを比較する。比較の結果、一致しない場合にはＳ４１４に進み、サブＣＰＵ１０９は、コントローラＣＰＵ１０６にエラーを報知することにより、マルチＣＰＵシステムのプログラム更新作業をエラー終了させる。
【００２７】
Ｓ４０４の比較の結果、一致していればＳ４０５に進み、サブＣＰＵ１０９は、ＣＰＵ指定識別子３１２に一致するサブＣＰＵがシステム内に存在するか否かを判定する。存在しない場合にはＳ４１４に進み、サブＣＰＵ１０９は、コントローラＣＰＵ１０６にエラーを報知することにより、マルチＣＰＵシステムのプログラム更新作業をエラー終了させる。
【００２８】
Ｓ４０５の存在確認に成功した場合にはＳ４０６に進み、サブＣＰＵ１０９は、コントローラＣＰＵ１０６からのプログラム更新用データ３０１、即ち署名データ以降のデータの受信を継続する。即ち、プログラム更新用データ３０１に含まれる本文復号データ生成用データ３０２、プログラム更新用本文データ３０４〜３０５の受信を継続する。例えば、サブＣＰＵ１１５（第３層制御部）のＣＰＵ指定識別子がＣＰＵ指定識別子３１２と一致する場合には、Ｓ４０６で、サブＣＰＵ１０９は、プログラム更新用データを受信するたびに、当該データをサブＣＰＵ１１５へ転送する。なお、サブＣＰＵ１０９が指定されている場合は、当該データをサブＣＰＵ１１５へ転送する代わりに、自身の不揮発メモリ１１３へのプログラム更新作業へ移行することとなる。さらに、サブＣＰＵ１０９は、送信データに対して認証計算を繰り返し行う。即ち、サブＣＰＵ１０９は、これらの受信データをＲＡＭ１１０等に一旦全てのデータを格納して検証する必要がなく、受信した順にデータを都度使用することができ、メモリ資源を節約することができる。この認証計算はＳＨＡ−２５６などのＨＡＳＨ計算であってもよい。また、プログラム更新用データ３０１の署名元データ３１１の中に格納される認証値データ３１４と同一のアルゴリズムで計算される必要がある。
【００２９】
次に、Ｓ４０７で、サブＣＰＵ１１５は、プログラム更新用本文データを受信するたびに、不揮発メモリ１１８内の書き換え不可能なブロック２１３に格納されたデータを用いて、平文のプログラム更新用本文データ（１〜Ｎ−ｍ）を算出する。ブロック２１３に格納されたデータとは、復号用の対称鍵２１６と、本文復号データ生成用データ３０３、及びプログラム更新用本文データ（１〜Ｎ−ｍ）３０４〜３０５を含む。さらに、サブＣＰＵ１１５は、データを算出するたびに、動作制御プログラムを格納する不揮発メモリ１１８の中の書き換え可能ブロック２１２に書き込みを行い、動作プログラム２１４を取得（復号化）する。つまり、本実施形態によれば、サブＣＰＵ１１５においても、一旦全てのデータをＲＡＭ１１６等へ格納して、全てのデータを受信した後に検証する必要が無く、受信した順に所定の領域（不揮発メモリ１１８）へ書込みを行うことができる。よって、メモリ資源を節約することができる。
【００３０】
Ｓ４０８で、サブＣＰＵ１０９は、プログラム更新用本文データＮ−ｍ３０５まで送信し終わったか否かを判定する。終わった場合はＳ４０９に進み、サブＣＰＵ１０９は、Ｓ４０３で取得した署名元データ３１１に格納された、プログラム更新用本文データ（Ｎ−ｍ＋１〜Ｎ）３１５〜３１６と、認証値データ３１７とを認証計算に追加し、最終的な認証計算値を取得する。続いて、Ｓ４１０で、サブＣＰＵ１０９は、最終的な認証チェック値と、Ｓ４０３で取得した署名元データ３１１に格納されている、サブＣＰＵ１０９用の認証値データ３１４とを比較してサブＣＰＵ１１５に送信するデータの認証を行う。認証チェック値と認証値データ３１４とが一致しない場合はＳ４１４に進み、サブＣＰＵ１０９は、コントローラＣＰＵ１０６にエラーを報知して、マルチＣＰＵシステムのプログラム更新作業をエラー終了させる。一方、認証チェック値と認証値データ３１４とが一致する場合はＳ４１１に進み、サブＣＰＵ１０９は、Ｓ４０３で取得した署名元データ３１１に含まれる、残りのプログラム更新用本文データ（Ｎ−ｍ＋１〜Ｎ）３１５〜３１６をサブＣＰＵ１１５に送信する。
【００３１】
その後、サブＣＰＵ１１５は、残りのプログラム更新用本文データを受信するたびに、不揮発メモリ１１８内の書き換え不可能なブロック２１３に格納された、復号用の対称鍵２１７を用いて、平文のプログラム更新用本文データを算出する。さらに、サブＣＰＵ１１５は、データを算出するたびに、不揮発メモリ１１８の中の書き換え可能ブロック２１２に算出したデータを書き込み、動作プログラム２１４を取得（復号化）する。
【００３２】
次に、Ｓ４１２で、サブＣＰＵ１１５は、全てのプログラム更新用本文データを受信すると、受信した認証値データ３１７を用いて、受信したデータ又は不揮発メモリ１１８の書き換え可能なブロック２１３に書き込んだプログラム更新用データを認証する。さらに、サブＣＰＵ１１５は、認証に成功したか否かを判定する。認証に成功するとＳ４１３に進み、サブＣＰＵ１１５は、プログラム更新作業を正常終了させる。
【００３３】
一方、認証に失敗した場合にはＳ４１４に進み、サブＣＰＵ１１５は、プログラム更新作業をエラー終了させる。この場合、プログラム更新作業をエラー終了させるために、一部のプログラム更新用データを実際には不揮発メモリ１１８に書き込まず、ＲＡＭ１１６にバッファしておいて、その後に認証が成功した場合に不揮発メモリ１１８に書き込んでもよい。最後に、サブＣＰＵ１０９は、コントローラＣＰＵ１０６に書き込み結果を報知して、マルチＣＰＵシステムのプログラム更新作業は終了する。
【００３４】
上述したように、本実施形態によれば、マルチＣＰＵシステム内で署名処理を行うために必要な記憶メモリは、署名データとプログラム更新用データを一度に記憶するだけの量ではなく、署名データを処理・記憶する分だけである。したがって、マルチＣＰＵシステムの必要なメモリ容量の増大を防ぐことができる。また、ｍを大きくとることによって、プログラム更新用データの増大も防ぐことができる。また、プログラム更新用データに対して小さなＲＡＭしか持てないマルチＣＰＵシステムにおいても、データの増大を抑制することができ、本発明を適用することができる。さらに、１つの署名検証処理部しか持たずに、プログラム更新作業を行うＣＰＵ指定データとプログラム更新用データの純正性を非対称鍵を用いた安全性の高い署名アルゴリズムを用いてプログラム更新作業を行うことができる。なお、当該署名アルゴリズムによって署名されるデータはプログラム更新に必要なデータの一部であるため、処理負荷を低下させメモリ資源を効率的に使用することができる。なお、必要なデータのうちの他の部分については、上記署名アルゴリズムは用いられないものの、それらのデータのみでは意味のないデータとなってしまうため、プログラム更新用データの全体に対しての安全性を確保することができる。
【００３５】
以上説明したように、本実施形態によれば、マルチＣＰＵシステムやプログラム更新用データを確保するための記憶領域の増大を抑制することができる。さらに、プログラム更新機能を有するマルチＣＰＵシステムにおいて、プログラム更新用データをマルチＣＰＵシステムによって認証することができる。不正であれば更新作業を行わず、プログラム更新機能を有するマルチＣＰＵシステムの信頼性についての問題点を解決し、不正なプログラム更新用データによる不揮発メモリの更新を防止し、誤動作を防ぐことのできるマルチＣＰＵシステムを構築しうる。
【００３６】
また、本実施形態によれば、プログラム更新用データのデータ長を低減することができ、たくさんの小さなサブＣＰＵを含むマルチＣＰＵシステムであってもデータ長の増加を抑制することができる。さらに、本実施形態に係る情報処理装置は、プログラム更新作業を行う各々のサブＣＰＵで署名検証を行う場合であっても、署名検証を行うサブＣＰＵの数だけ署名検証器を必要とすることなく署名検証を実施することができる。
【００３７】
＜第２の実施形態＞
以下では、図５及び図６を参照して、本発明の第２の実施形態について説明する。本発明の第２の実施形態は、複数のサブＣＰＵに対して同時にプログラム更新作業を行う場合について説明する。図１に示すマルチＣＰＵシステムと、図２に示す不揮発メモリ１１３，不揮発メモリ１１８の内容については本実施形態も同様であるため説明を省略する。
【００３８】
＜プログラム更新用データ＞
まず、図５を参照して、本実施形態のプログラム更新用データのデータ構造について説明する。５０１はプログラム更新用データである。プログラム更新用データ５０１は、署名データ５０２とサブＣＰＵ１用本文復号データ生成用のデータ（初期ベクタ）５０３と、サブＣＰＵ１用プログラム更新用本文データ（１〜Ｎ−ｍ）５０４〜５０５とを含む。さらに、プログラム更新用データ５０１は、サブＣＰＵ２用本文復号データ生成用データ（初期ベクタ）５０６と、サブＣＰＵ１用プログラム更新用本文データ（１〜Ｌ−ｋ）５０７〜５０８とを含む。
【００３９】
サブＣＰＵ１用プログラム更新用本文データ（１〜Ｎ−ｍ）５０４〜５０５は、サブＣＰＵ１０９の書き換え不可能なブロック２０３に格納され、復号用対称鍵２０８と同じ暗号鍵で暗号化されている。サブＣＰＵ１用プログラム更新用本文データ（１〜Ｌ−ｋ）５０７〜５０８は、サブＣＰＵ２の書き換え不可能なブロック２１３に格納され、復号用対称鍵データ２１６と同じ暗号鍵で暗号化されている。ｍとｋについては後で説明する。
【００４０】
５１１は、署名データ５０２を作成する際に用いられたデータであり、署名データ５０２を復号化すると得られる署名元データである。署名元データ５１１は、サブＣＰＵ１０９の不揮発メモリ１１３内の書き換え不可能なブロック２０３に格納された公開鍵２０７と対になる秘密鍵と共にＩＳＯ９７９６−２署名アルゴリズムに入力されデータである。署名元データ５１１には、ＣＰＵ指定識別子５１２、プログラム更新用本文データのサイズ情報５１３と、サブＣＰＵ１０９がプログラム更新に利用するデータ５０３〜５０５，５１５〜５１７とが含まれる。さらに、署名元データ５１１には、サブＣＰＵ１１５に送信するデータ５０６〜５０８，５１８〜５２０の認証値データ５１４と、サブＣＰＵ１用プログラム更新用本文データ（Ｎ−ｍ＋１〜Ｎ）５１５〜５１６と、サブＣＰＵ１用認証データ５１７とが含まれる。サブＣＰＵ１用プログラム更新用本文データ（Ｎ−ｍ＋１〜Ｎ）５１５〜５１６は、サブＣＰＵ１０９がサブＣＰＵ１用プログラム更新用本文データＮ−ｍを用いてプログラム更新作業を行った後に使用される。サブＣＰＵ１用認証データ５１７は、サブＣＰＵ１０９がサブＣＰＵ１のプログラム更新作業を認証するためのデータである。
【００４１】
さらに、署名元データ５１１には、サブＣＰＵ２用プログラム更新用本文データ（Ｌ−ｋ＋１〜Ｌ）５１８〜５１９と、サブＣＰＵ２がプログラム更新用データを認証するためのサブＣＰＵ２用認証値データ５２０とが含まれる。サブＣＰＵ２用プログラム更新用本文データ（Ｌ−ｋ＋１〜Ｌ）５１８〜５１９は、サブＣＰＵ１０９がサブＣＰＵ２プログラム更新用データＬ−ｋ５０８をサブＣＰＵ１１５に送信した後に、サブＣＰＵ１１５へ送信される。複数のＣＰＵを指定する際のＣＰＵ指定識別子５１２は、”０１＋０２”等のアスキー文字による接続等で指定することが可能である。また、その場合のサイズ情報５１３も”６５５３６＋２０４８”等のアスキー文字による接続等で指定することが可能である。
【００４２】
認証値データ１及び認証値データ２は、必要な検証安全性レベルに応じてＨＡＳＨ、ＣＢＣモードの暗号ＭＡＣ、ＣＲＣ、チェックサム等を用い、またサブＣＰＵ毎に個別の認証アルゴリズムを用いてもよい。ＩＳＯ９７９６−２署名は、データ長が暗号化に用いるＲＳＡ鍵長、ハッシュ関数、ソルト長、トレイル長によって復元可能な元データの長さが決まる。つまり、署名元データ３１１のデータ長は、メッセージ復元型の署名を復元可能なデータ長以下となる。ｍとｋは署名元データ５１１が復元可能な元データサイズ以下になるような０以上の整数として定義することができ、ｍ＋ｋを大きくすることでプログラム更新用データ５０１のデータサイズを小さくすることができる。また、一度にプログラム更新するサブＣＰＵの種類が増えてしまった場合には、ｍ＝ｋ＝０として、各々のサブＣＰＵに対する認証値データ２を短くすることで、多くのサブＣＰＵのプログラム更新作業を一度に行うことができる。
【００４３】
＜更新手順＞
次に、図６を参照して、本実施形態のプログラム更新機能を有するマルチＣＰＵシステムの更新手順について説明する。マルチＣＰＵシステムのプログラム更新は、プログラム更新用データ５０１をプログラム更新用データ出力装置１０１からコントローラＣＰＵ１０６に送信することによって開始される。
【００４４】
コントローラＣＰＵ１０６は、プログラム更新用データ出力装置１０１の送信した、プログラム更新用データ５０１を通信制御部１０７によって受信する。プログラム更新用データ５０１を受信すると、Ｓ６０１で、コントローラＣＰＵ１０６は、サブＣＰＵ１０９にＣＰＵ指定チェック番号を指定した、更新作業の開始コマンドをシリアル通信制御部１０８によりシリアル通信で送信する。このＣＰＵ指定チェック番号は、プログラム更新用データ３０１の最初に、更に平文でデータを追加することで定義可能である。サブＣＰＵ１０９は、指定されたＣＰＵ指定チェック番号を記憶する。Ｓ６０２において、コントローラＣＰＵ１０６は、サブＣＰＵ１０９にプログラム更新用データ５０１をシリアル通信制御部１０８を使って送信する。
【００４５】
サブＣＰＵ１０９は、予め定められた署名のデータ長だけプログラム更新用データ５０１を受信してメモリ１１０に格納する。その後、Ｓ６０３で、サブＣＰＵ１０９は、署名検証処理部１１４に公開鍵２０７と署名データ５０２とを入力して、署名データ５０２の検証と、署名元データ５１１の復元・取得を行う。続いて、Ｓ６０４で、サブＣＰＵ１０９は、Ｓ６０１で受信したＣＰＵ指定チェック番号と、署名元データ５１１の中のＣＰＵ指定識別子５１２とを比較する。比較の結果、一致しない場合にはＳ６２０に進み、サブＣＰＵ１０９は、コントローラＣＰＵ１０６にエラーを報知することにより、マルチＣＰＵシステムのプログラム更新作業をエラー終了させる。
【００４６】
Ｓ６０４の一致比較に成功した場合にはＳ６０５に進み、サブＣＰＵ１０９は、ＣＰＵ指定識別子５１２に一致するサブＣＰＵがシステム内に存在するか否かを判定する。存在しない場合にはＳ６２０に進み、サブＣＰＵ１０９は、コントローラＣＰＵ１０６にエラーを報知して、マルチＣＰＵシステムのプログラム更新作業をエラー終了させる。一方、Ｓ６０５の存在確認に成功した場合にはＳ６０６に進み、サブＣＰＵ１０９は、仮にサブＣＰＵ１０９と、サブＣＰＵ１１５のＣＰＵ指定識別子がＣＰＵ指定識別子５１２と一致する場合には、自己のプログラム更新作業を開始する。
【００４７】
Ｓ６０６で、サブＣＰＵ１０９は、コントローラＣＰＵ１０６からのプログラム更新用データ５０１の受信を継続する。さらに、サブＣＰＵ１０９は、受信したプログラム更新用データ５０１のサブＣＰＵ１用本文復号データ生成用データ５０３と、サブＣＰＵ１用プログラム更新用本文データ（１〜Ｎ−ｍ）５０４〜５０５とについて復号化前に認証計算を繰り返し行う。この認証計算はＳＨＡ−２５６などのＨＡＳＨ計算でよく、プログラム更新用データ５０１の署名元データ５１１の中に格納される認証値データ５１４と同一のアルゴリズムで計算される必要がある。
【００４８】
続いて、Ｓ６０７で、サブＣＰＵ１０９は、書き換え不可能なブロック２０３に格納された復号用の対称鍵２０８と、受信したサブＣＰＵ１用本文復号データ生成用データ５０３とを用いてデータの復号化を行う。具体的には、サブＣＰＵ１０９は、平文のサブＣＰＵ１用プログラム更新用本文データ（１〜Ｎ−ｍ）５０４〜５０５を復号化し、不揮発メモリ１１３の中の書き換え可能ブロック２０２に書き込みを行い動作プログラム２０４にする。
【００４９】
Ｓ６０８で、サブＣＰＵ１０９は、プログラム更新用本文データＮ−ｍ５０５まで送信し終わったか否かを判定する。終了していればＳ６０９に進み、サブＣＰＵ１０９は、コントローラＣＰＵ１０６から受信したプログラム更新用データをサブＣＰＵ１１５へ送信し、送信するデータに対して認証値計算を行う。ここで、サブＣＰＵ１０９は、サブＣＰＵ２用本文復号データ生成用データ５０６以降の部分から、データを受信する都度サブＣＰＵ１１５へ送信する。
【００５０】
Ｓ６１０で、サブＣＰＵ１１５は、プログラム更新用本文データを受信する度に、平文のサブＣＰＵ２用プログラム更新用本文データ（１〜Ｌ−ｋ）を算出する。その際、サブＣＰＵ１１５は、書き換え不可能なブロック２１３に格納された、復号用の対称鍵２１６と、サブＣＰＵ２用本文復号データ生成用データ５０６と、サブＣＰＵ２用プログラム更新用本文データ（１〜Ｌ−ｋ）５０７〜５０８とを用いる。さらに、サブＣＰＵ１１５は、算出したデータを、不揮発メモリ１１８の中の書き換え可能ブロック２１２に書き込むことにより、動作プログラム２１４にする。
【００５１】
次に、Ｓ６１１で、サブＣＰＵ１０９は、プログラム更新用本文データＬ−ｋ５０８まで送信したか否かを判定する。送信が終了するとＳ６１２に進み、サブＣＰＵ１１５は、Ｓ６０３で取得した署名元データ５１１に格納された、プログラム更新用本文データ（Ｎ−ｍ＋１〜Ｌ）５１５〜５１９と、サブＣＰＵ２用認証データ５２０とを認証計算し最終的な認証計算値を取得する。
【００５２】
続いて、Ｓ６１３で、サブＣＰＵ１０９は、最終的な認証チェック値と、Ｓ６０３で取得した署名元データ５１１に格納された、サブＣＰＵ１０９用の認証データ５１４とを比較してプログラム更新用データの認証を行う。認証チェック値と認証データ５１４が一致しない場合にはＳ６２０に進み、サブＣＰＵ１０９は、コントローラＣＰＵ１０６にエラーを報知して、マルチＣＰＵシステムのプログラム更新作業をエラー終了させる。
【００５３】
一方、認証チェック値と認証データ５１４が一致する場合にはＳ６１４に進み、サブＣＰＵ１０９は、Ｓ６０３で取得した署名元データ５１１に格納されたデータをサブＣＰＵ１１５に送信する。具体的には、残りのサブＣＰＵ２用のプログラム更新用本文データ（Ｌ−ｋ＋１〜Ｌ）５１８〜５１９と、サブＣＰＵ２用認証値データ５２０とをサブＣＰＵ１１５に送信する。サブＣＰＵ１１５は、プログラム更新用本文データを受信する度に、不揮発メモリ１１８内の書き換え不可能なブロック２１３に格納された、復号用の対称鍵２１７を用いて、平文のプログラム更新用本文データを算出する。算出する度に、サブＣＰＵ１１５は、不揮発メモリ１１８の中の書き換え可能ブロック２１２に書き込みを行い動作プログラム２１４にする。
【００５４】
Ｓ６１５で、サブＣＰＵ１１５は、全てのサブＣＰＵ２用プログラム更新用本文データを受信すると、受信した認証値データ５２０を用いて、受信したデータ又は不揮発メモリ１１８の書き換え可能なブロック２１３に書き込んだ動作プログラム２１４を認証する。認証に成功した場合にはＳ６１６に進み、サブＣＰＵ１１５は、サブＣＰＵ１１５のプログラム更新作業を正常終了させる。また、サブＣＰＵ１１５は、認証に失敗した場合にはプログラム更新作業をエラー終了させる。この場合、プログラム更新作業をエラー終了させるために、一部のプログラム更新用データを実際には不揮発メモリ１１８に書き込まず、ＲＡＭ１１６にバッファしておいて、認証が成功した場合に不揮発メモリ１１８に書き込んでもよい。
【００５５】
次に、Ｓ６１７で、サブＣＰＵ１０９は、Ｓ６０３で取得した署名元データ５１１に格納された、残りのサブＣＰＵ１１５用プログラム更新用本文データ（Ｎ−ｍ＋１〜Ｎ）５１５〜５１６を、サブＣＰＵ１用復号対称鍵２０８を使って復号化する。さらに、サブＣＰＵ１０９は、不揮発メモリ１１３内の書き換え可能ブロック２０２に書き込み、動作プログラム２０４とする。
【００５６】
Ｓ６１８で、サブＣＰＵ１０９は、不揮発メモリ１１３の書き換え可能なブロック２０２に書き込んだ動作プログラム２０４と、サブＣＰＵ１用認証データ５１７とを用いて認証を実行する。認証に失敗した場合にはＳ６２０に進み、サブＣＰＵ１０９は、プログラム更新作業をエラー終了させる。一方、認証に成功した場合にはＳ６１９に進み、サブＣＰＵ１０９は、プログラム更新作業を正常終了させる。この場合、プログラム更新作業をエラー終了させるために、一部のプログラム更新用データを実際には不揮発メモリ１１３に書き込まず、ＲＡＭ１１０にバッファしておいて、認証が成功した場合に不揮発メモリ１１３に書き込んでもよい。
【００５７】
最後に、Ｓ６２１で、サブＣＰＵ１０９は、コントローラＣＰＵ１０６に書き込み結果を報知して、マルチＣＰＵシステムのプログラム更新作業を終了する。
【００５８】
以上説明したように、本実施形態によれば、マルチＣＰＵシステム内で署名処理を行うために、最大でも署名データ分だけのデータ量を記憶する領域の増加で済み、プログラム更新用データを一度に全てバッファリングした上で署名検証を行う必要がない。よって、マルチＣＰＵシステムのメモリの増大を防ぐことができる。また、プログラム更新用データに対して小さなＲＡＭしか持てないマルチＣＰＵシステムにおいても、データを大きく増大させることがない。加えて、１つの署名検証処理部しか持たずに、プログラム更新作業を行うＣＰＵ指定データとプログラム更新用データの純正性を非対称鍵を用いた安全性の高い署名アルゴリズムを用いてプログラム更新作業を行うことができる。
【００５９】
＜その他の実施形態＞
また、本発明は、以下の処理を実行することによっても実現される。即ち、上述した実施形態の機能を実現するソフトウェア（プログラム）を、ネットワーク又は各種記憶媒体を介してシステム或いは装置に供給し、そのシステム或いは装置のコンピュータ（又はＣＰＵやＭＰＵ等）がプログラムを読み出して実行する処理である。
【符号の説明】
【００６０】
１０１：プログラム更新用データ出力装置、１０２：コントローラＣＰＵボード、１０３：サブＣＰＵシステム、１０４：サブＣＰＵ１ボード、１０５：サブＣＰＵ２ボード、１０６：コントローラＣＰＵ、１０９：サブＣＰＵ１、１１３：サブＣＰＵ１の不揮発メモリ１、１１４：署名検証処理部、１１５：サブＣＰＵ２、１１７：サブＣＰＵ２の不揮発メモリ２
【図１】
0006436794.tif 000002
【図２】
0006436794.tif 000003
【図３】
0006436794.tif 000004
【図４】
0006436794.tif 000005
【図５】
0006436794.tif 000006
【図６】
0006436794.tif 000007