JP2006178544A - Data processor and program update method therefor - Google Patents

Data processor and program update method therefor Download PDF

Info

Publication number
JP2006178544A
JP2006178544A JP2004368525A JP2004368525A JP2006178544A JP 2006178544 A JP2006178544 A JP 2006178544A JP 2004368525 A JP2004368525 A JP 2004368525A JP 2004368525 A JP2004368525 A JP 2004368525A JP 2006178544 A JP2006178544 A JP 2006178544A
Authority
JP
Japan
Prior art keywords
program
cpu
data
program update
update data
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.)
Granted
Application number
JP2004368525A
Other languages
Japanese (ja)
Other versions
JP4054802B2 (en
JP2006178544A5 (en
Inventor
Hisashi Enomoto
寿 榎本
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.)
Canon Inc
Original Assignee
Canon Inc
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 Canon Inc filed Critical Canon Inc
Priority to JP2004368525A priority Critical patent/JP4054802B2/en
Publication of JP2006178544A publication Critical patent/JP2006178544A/en
Publication of JP2006178544A5 publication Critical patent/JP2006178544A5/ja
Application granted granted Critical
Publication of JP4054802B2 publication Critical patent/JP4054802B2/en
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Storage Device Security (AREA)

Abstract

<P>PROBLEM TO BE SOLVED: To solve the problem that if a transmitting destination and program updating data themselves are illicit by defect or breakage of the program update data, forgery thereof by a third person or the like, update of a program of a CPU with the program update data might cause malfunction of a system or make the system inoperative. <P>SOLUTION: This processor comprises a controller 102 receiving program update data containing an encrypted header and a program, which are supplied from the outside, and a SUBCPU 1 decoding and authenticating the header of the received program update data to specify a CPU that is a supply destination of the program, and supplying the encrypted program to the specified CPU. A SSUBCPU 2 that is the supply destination decodes and authenticates the encrypted program and updates the program of the CPU by use of the authenticated program. <P>COPYRIGHT: (C)2006,JPO&NCIPI

Description

本発明は、複数のCPUを有し、これら複数のCPUにより制御されるデータ処理装置及びそのプログラム更新方法に関するものである。   The present invention relates to a data processing apparatus having a plurality of CPUs and controlled by the plurality of CPUs, and a program updating method thereof.

複数のCPUを用いて処理を行うマルチCPU構成のコンピュータ機器において、各CPUで実行されるプログラムを更新するためにプログラム更新用データを外部から供給することにより、プログラムの更新を行う技術が提案されている(特許文献1)。これによれば、その供給されたプログラム更新用データがどのCPU用のプログラムであるかを判定し、その判定結果に基づいてその動作プログラムを更新する必要がある。このような更新対象のプログラムを実行するCPUを検知する方法として、マルチCPU全体を統括しているコントローラCPUが、そのプログラム更新用データに含まれているCPU識別子により、どのCPU用の更新用データであるかを判断し、その更新用データを対応するCPUに送信することが記載されている。具体的には、コントローラCPUは、プログラム更新データを供給する外部の更新データ出力装置から出力されたプログラム更新データの所定の位置に格納されているCPU指定番号と、そのCPU指定番号に対応するプログラム更新用データの本体アドレス情報とに基づいて、そのプログラム更新用データ本体を読み出し、その指定番号に対応するCPUに送信して、そのCPUのプログラムの更新作業を行っている。
特開2001−34543号公報
In a computer device having a multi-CPU configuration that performs processing using a plurality of CPUs, a technique for updating a program by supplying program update data from the outside in order to update a program executed by each CPU has been proposed. (Patent Document 1). According to this, it is necessary to determine which CPU program the supplied program update data is, and update the operation program based on the determination result. As a method of detecting a CPU that executes such a program to be updated, the controller CPU that controls the entire multi-CPU uses the CPU identifier included in the program update data to determine which CPU update data. It is described that the update data is transmitted to the corresponding CPU. Specifically, the controller CPU includes a CPU designation number stored in a predetermined position of program update data output from an external update data output device that supplies program update data, and a program corresponding to the CPU designation number. Based on the body address information of the update data, the program update data body is read out and transmitted to the CPU corresponding to the designated number to update the program of the CPU.
JP 2001-34543 A

しかしながら上記従来例では、そのCPU指定番号に基づいて、対応するCPUがどれであるかを判断しているため、プログラム更新用データに対する正当性の確認まではなされていない。このため例えば、プログラム更新用データの欠損或は破壊、又は第3者による捏造等によって、送信先及びプログラム更新用データそのものが不正となっている場合には、そのプログラム更新用データによりCPUのプログラムを更新すると、システムが誤動作したり動作不能になるという虞がある。   However, in the above conventional example, since the corresponding CPU is determined based on the CPU designation number, the validity of the program update data has not been confirmed. For this reason, for example, if the transmission destination and the program update data itself are illegal due to the loss or destruction of the program update data, or the forgery by a third party, the program of the CPU is updated with the program update data. Updating may cause the system to malfunction or become inoperable.

本発明は上記問題点に鑑みてなされたもので、外部より供給される、暗号化されたプログラム更新用データを復号して認証し、その認証したプログラムによりCPUにより実行されるプログラムを更新するデータ処理装置及びそのプログラム更新方法を提供することにある。   The present invention has been made in view of the above problems, and decrypts and authenticates encrypted program update data supplied from the outside, and updates the program executed by the CPU with the authenticated program. A processing apparatus and a program update method thereof are provided.

本発明の一態様に係るデータ処理装置は以下のような構成を備える。即ち、
互いにデータの送受信が可能な複数のCPUを有するデータ処理装置であって、
外部より供給される、暗号化されたヘッダ及びプログラムを含むプログラム更新用データを受信する受信手段と、
前記受信手段により受信された前記プログラム更新用データのヘッダを復号及び認証して前記プログラムの供給先のCPUを特定し、特定された前記CPUに前記暗号化されたプログラムを供給する供給手段とを有し、
前記供給先のCPUは、
前記供給手段により供給された前記暗号化されたプログラムを復号及び認証する復号認証手段と、
前記復号認証手段により認証されたプログラムを用いて当該CPUのプログラムを更新することを特徴とする。
A data processing apparatus according to an aspect of the present invention has the following configuration. That is,
A data processing apparatus having a plurality of CPUs capable of transmitting and receiving data to and from each other,
Receiving means for receiving program update data including an encrypted header and a program supplied from the outside;
Supply means for decrypting and authenticating the header of the program update data received by the receiving means to identify a CPU to which the program is supplied and supplying the encrypted program to the identified CPU; Have
The supply destination CPU is:
Decryption authentication means for decrypting and authenticating the encrypted program supplied by the supply means;
The program of the CPU is updated using the program authenticated by the decryption authentication means.

本発明の一態様に係るデータ処理装置におけるプログラム更新方法は以下のような工程を備える。即ち、
互いにデータの送受信が可能な複数のCPUを有するデータ処理装置におけるプログラム更新方法であって、
外部より供給される、暗号化されたヘッダ及びプログラムを含むプログラム更新用データを受信する受信工程と、
前記受信工程で受信された前記プログラム更新用データのヘッダを復号及び認証して前記プログラムの供給先のCPUを特定し、特定された前記CPUに前記暗号化されたプログラムを供給する供給工程とを有し、
前記供給工程により供給された前記暗号化されたプログラムを復号及び認証する復号認証工程と、
前記復号認証工程で認証されたプログラムを用いて当該CPUのプログラムを更新することを特徴とする。
A program update method in a data processing apparatus according to an aspect of the present invention includes the following steps. That is,
A program update method in a data processing apparatus having a plurality of CPUs capable of transmitting and receiving data to and from each other,
A receiving step of receiving program update data including an encrypted header and a program supplied from the outside;
A supply step of decrypting and authenticating the header of the program update data received in the reception step to identify a CPU to which the program is supplied, and supplying the encrypted program to the identified CPU; Have
A decryption authentication step for decrypting and authenticating the encrypted program supplied by the supply step;
The program of the CPU is updated using the program authenticated in the decryption authentication step.

本発明によれば、不正なプログラムによりCPUのプログラムが更新されることによる誤動作の発生や動作不良の発生を防止できるという効果がある。   According to the present invention, it is possible to prevent the occurrence of malfunctions and malfunctions caused by updating the CPU program by an unauthorized program.

以下、添付図面を参照して本発明の好適な実施の形態を詳しく説明する。   DESCRIPTION OF EMBODIMENTS Hereinafter, preferred embodiments of the present invention will be described in detail with reference to the accompanying drawings.

図1は、本発明の実施の形態に係るプログラム更新機能を有するマルチCPUシステムの構成を示すブロック図である。尚、このようなマルチCPUシステムは、例えばコンピュータ機器(PC)等のような情報処理装置、またはレーザビームプリンタやインクジェットプリンタなどの画像形成装置、通信装置、複写機、複写機能に通信機能等を備えた多機能複合機などの制御回路として採用される。   FIG. 1 is a block diagram showing a configuration of a multi-CPU system having a program update function according to an embodiment of the present invention. Such a multi-CPU system has an information processing apparatus such as a computer device (PC), an image forming apparatus such as a laser beam printer or an ink jet printer, a communication apparatus, a copying machine, a communication function in a copying function, and the like. It is used as a control circuit for multi-function multifunction devices.

図1において、プログラム更新用データ出力装置(以下、更新用データ出力装置)101は、マルチCPUシステムのCPUのプログラム更新用データを供給する。コントローラCPUボード102は、このマルチCPUシステムに供給されるプログラム更新用データの受信及び、その更新結果を報告する処理を行っている。このコントローラCPUボード102は更新用データ出力装置101と接続され、この更新用データ出力装置101から供給されるプログラム更新用データを受信し、このマルチCPUシステムを構成するSUBCPUボードの対応するSUBCPUに、そのプログラム更新用データを供給する。ここでは具体的には、コントローラCPUボード102に最も隣接しているSUBCPUボードシステム103のSUBCPUボード104のSUBCPU1(191)に、そのプログラム更新用データを供給する。   In FIG. 1, a program update data output device (hereinafter, update data output device) 101 supplies program update data for a CPU of a multi-CPU system. The controller CPU board 102 performs processing for receiving program update data supplied to the multi-CPU system and reporting the update result. The controller CPU board 102 is connected to the update data output device 101, receives the program update data supplied from the update data output device 101, and sends it to the corresponding SUBCPU of the SUBCPU board constituting the multi-CPU system. The program update data is supplied. Specifically, the program update data is supplied to the SUBCPU1 (191) of the SUBCPU board 104 of the SUBCPU board system 103 that is closest to the controller CPU board 102.

SUBCPUボードシステム103は、このマルチCPUシステムを構成している複数のSUBCPUボード104,105を有し、各SUBCPUボードによる制御処理を実行している。このSUBCPUボードシステム103は、コントローラCPUボード102から供給されるプログラム更新用データに従って、それぞれ対応するSUBCPUボード104,105において、SUBCPUの動作プログラムを更新することができる。尚、SUBCPUボード104は、シリアル通信制御部112によってコントローラCPU102との間でデータの送受信を行うことができ、シリアル通信制御部111によりSUBCPUボード105のシリアル通信制御部116との間でデータの送受信を行うことができる。尚、ここでは1つのSUBCPUボードシステム103のみを示しているが、これ以外のSUBCPUボードシステムが設けられていても良く、また1つのSUBCPUボードシステムは、1つ或はそれ以上のSUBCPUボードを有していても良い。   The SUBCPU board system 103 has a plurality of SUBCPU boards 104 and 105 constituting this multi-CPU system, and executes control processing by each SUBCPU board. The SUBCPU board system 103 can update the operation program of the SUBCPU in the corresponding SUBCPU boards 104 and 105 according to the program update data supplied from the controller CPU board 102. The SUBCPU board 104 can transmit / receive data to / from the controller CPU 102 by the serial communication control unit 112, and transmit / receive data to / from the serial communication control unit 116 of the SUBCPU board 105 by the serial communication control unit 111. It can be performed. Although only one SUBCPU board system 103 is shown here, other SUBCPU board systems may be provided, and one SUBCPU board system has one or more SUBCPU boards. You may do it.

以下、各部の構成を説明する。   Hereinafter, the configuration of each unit will be described.

コントローラCPUボード102は、このボード102全体の制御を司るコントローラCPU106、このCPU106により実行されるプログラムを記憶しているメモリ106a、更新用データ出力装置101との間でデータの送受信を行う通信制御部107、SUBCPUボードシステム103との間でのデータのやり取りを行うシリアル通信制御部108を備えている。   The controller CPU board 102 includes a controller CPU 106 that controls the entire board 102, a memory 106 a that stores programs executed by the CPU 106, and a communication control unit that transmits and receives data to and from the update data output device 101. 107, and a serial communication control unit 108 for exchanging data with the SUBCPU board system 103.

SUBCPUボード104は、このボード104全体の制御を司るSUBCPU1(109)、このSUBCPU1(109)により実行されるプログラムを記憶している不揮発メモリ113、SUBCPU1(109)による制御処理時に各種データを一時的に記憶するRAM110、コントローラCPUボード102との間でデータの送受信を行うシリアル通信制御部112、SUBCPUボード105との間でデータの送受信を行うシリアル通信制御部111を備えている。   The SUBCPU board 104 temporarily stores various data during the control processing by the SUBCPU1 (109), the SUBCPU1 (109) that controls the entire board 104, the non-volatile memory 113 that stores the program executed by the SUBCPU1 (109). A serial communication control unit 112 that transmits / receives data to / from the controller CPU board 102, and a serial communication control unit 111 that transmits / receives data to / from the SUBCPU board 105.

SUBCPUボード105も同様に、このボード105全体の制御を司るSUBCPU2(114)、このSUBCPU2(114)により実行される動作プログラムを記憶している不揮発メモリ117、SUBCPU2(114)による制御処理時に各種データを一時的に記憶するRAM115、SUBCPUボード104との間でデータの送受信を行うシリアル通信制御部116を備えている。   Similarly, the SUBCPU board 105 also has various data during control processing by the SUBCPU2 (114) that controls the entire board 105, the non-volatile memory 117 that stores an operation program executed by the SUBCPU2 (114), and the SUBCPU2 (114). Are temporarily stored, and a serial communication control unit 116 that transmits and receives data to and from the SUBCPU board 104 is provided.

図2は、本実施の形態に係るプログラム更新機能を有するマルチCPUシステムにおける不揮発メモリ113,117の内容を説明する図である。尚、この実施の形態では、不揮発メモリ113,117の基本データ構成は実質的に同一とする。   FIG. 2 is a diagram for explaining the contents of the nonvolatile memories 113 and 117 in the multi-CPU system having the program update function according to the present embodiment. In this embodiment, the basic data configurations of the nonvolatile memories 113 and 117 are substantially the same.

この不揮発メモリ113,117は、プログラム更新用データによって書き換え可能な書換え可能ブロック(第1記憶ブロック)202と、書き換え不可能なブロック(第2記憶ブロック)203とに分割されている。これは、例えば不揮発メモリとしてフラッシュメモリを使用している場合、各メモリ領域毎に書き換えの可能/不可能を予め設定しておくことにより、これら第1及び第2ブロックを設定することができる。書き変え可能な第1記憶ブロック202には、通常動作時に、そのSUBCPUボードのSUBCPUが実行する動作プログラム204と、この動作プログラム204のバージョン番号205が格納されている。   The nonvolatile memories 113 and 117 are divided into a rewritable block (first storage block) 202 that can be rewritten by program update data and a non-rewritable block (second storage block) 203. For example, when a flash memory is used as a non-volatile memory, the first and second blocks can be set by setting whether or not rewriting is possible for each memory area in advance. The rewritable first storage block 202 stores an operation program 204 executed by the SUBCPU of the SUBCPU board and a version number 205 of the operation program 204 during normal operation.

また書き換え不可能な第2記憶ブロック203には、この不揮発メモリに記憶されている動作プログラム204を実行するSUBCPUを識別するためのCPU指定番号206と、対象となる暗号化されたプログラムを復号及び認証するための復号・認証秘密キー207と、動作プログラム204を更新するための運用プログラム208とが格納されている。   The second storage block 203, which is not rewritable, decrypts the CPU designation number 206 for identifying the SUBCPU that executes the operation program 204 stored in the non-volatile memory, and the encrypted program to be processed. A decryption / authentication private key 207 for authentication and an operation program 208 for updating the operation program 204 are stored.

図3は、本実施の形態において、更新用データ出力装置101から供給されるプログラム更新用データの内容を説明する図である。   FIG. 3 is a diagram for explaining the contents of the program update data supplied from the update data output device 101 in the present embodiment.

図3において、301は、本実施の形態に係るマルチCPUシステムに供給される動作プログラム更新用データを示している。尚、この動作プログラム更新用データ301は、このマルチCPUシステムが備えているSUBCPUボードのSUBCPUを指定し、そのSUBCPUにより実行される動作プログラムの更新したい数(ここでは、N)の更新プログラムを含んでいる。   In FIG. 3, reference numeral 301 denotes operation program update data supplied to the multi-CPU system according to the present embodiment. The operation program update data 301 designates the SUBCPU of the SUBCPU board provided in the multi-CPU system, and includes the update programs (in this case, N) of update programs to be executed by the SUBCPU. It is out.

ヘッダ復号用データ302は、プログラムを更新するSUBCPUを指定するCPU指定番号を含むヘッダ303を復号する際に使用されるデータである。このヘッダ303は、このヘッダ復号用データ302と、SUBCPUボード104の不揮発メモリ113に記憶されている復号・認証秘密キー207(図2)、運用プログラム208によってSUBCPUボード104で復号され、認証データ0(304)と不揮発メモリ113に含まれる復号・認証秘密キー207と運用プログラム208とによってSUBCPUボード104で認証される。これによりSUBCPUボード104のSUBCPU1(109)は、この動作プログラム更新用データ301の送信先を特定することができる。   The header decoding data 302 is data used when decoding the header 303 including the CPU designation number that designates the SUBCPU that updates the program. The header 303 is decrypted by the SUBCPU board 104 by the header decryption data 302, the decryption / authentication secret key 207 (FIG. 2) stored in the nonvolatile memory 113 of the SUBCPU board 104, and the operation program 208. (304) and the decryption / authentication private key 207 and the operation program 208 included in the nonvolatile memory 113 are authenticated by the SUBCPU board 104. As a result, the SUBCPU 1 (109) of the SUBCPU board 104 can specify the transmission destination of the operation program update data 301.

尚、ここでは、ヘッダ303と、本文に相当するプログラム更新用データ1,2,〜N(306,308,310)とその認証データ1,2,〜N(307,309,311)とは、それぞれ別々(ヘッダ用、本文用)の復号用データによって暗号化されている。そして認証データ0(304)は、ヘッダの復号用データ302の他に、本文に相当するプログラムデータの一部を認証対象とすることにより、本文のプログラム更新用データとヘッダとがそれぞれ別々のアルゴリズム/秘密キーの場合でも、容易に全てのデータを認証できる構成となっている。   Here, the header 303, the program update data 1, 2, to N (306, 308, 310) corresponding to the main text and the authentication data 1, 2, to N (307, 309, 311) are: Each is encrypted with separate (for header and body) decryption data. The authentication data 0 (304) is obtained by using a part of the program data corresponding to the text in addition to the header decoding data 302, so that the program update data and the header have different algorithms. / Even in the case of a secret key, all data can be easily authenticated.

本文用の復号用データ305は、それ以降の暗号化されたプログラム更新用データ1〜N(306,308,310)、及びそれぞれに対応する暗号化された認証データ1〜N(307,309,311)を復号する際に使用されるデータである。またプログラム更新用データ1〜Nのそれぞれは、復号された後、その対応する認証データを用いて認証される。   The decryption data 305 for the text includes the subsequent encrypted program update data 1 to N (306, 308, 310) and the corresponding encrypted authentication data 1 to N (307, 309, 311) is data used for decoding. Each of the program update data 1 to N is decrypted and then authenticated using the corresponding authentication data.

図4は、本発明の実施の形態に係るマルチCPUシステムにおけるプログラム更新処理を説明するフローチャートである。この処理は、更新用データ出力装置101よりコントローラCPU106に対してプログラム更新作業指示及びプログラム更新用データが送信されることによって開始される。   FIG. 4 is a flowchart for explaining program update processing in the multi-CPU system according to the embodiment of the present invention. This process is started when the update data output device 101 transmits a program update work instruction and program update data to the controller CPU 106.

まずステップS401で、コントローラCPU106は、SUBCPU1(109)に対し、CPU指定番号を含むプログラム更新作業の開始を指示するコマンドを送信する。次にステップS402で、コントローラCPU106は、更新用データ出力装置101より受信したプログラム更新用データ301を、SUBCPUボード104のSUBCPU1(109)に送信する。これによりSUBCPU1(109)は、その受信したプログラム更新用データ301をRAM110に格納する。次にステップS403で、SUBCPU1(109)は、CPU指定番号を含むヘッダ303を、その認証データ0(304)とヘッダ復号用データ302を用いて復号してプレインテキスト化したヘッダ303を得て認証する。またこの際、本文の復号用データ305を用いて、ヘッダ303以外の本文を復号し、この本文に含まれるプログラムの更新指示コマンドに含まれるSUBCPUの指定番号を得る。   First, in step S401, the controller CPU 106 transmits a command for instructing the start of the program update work including the CPU designation number to the SUBCPU 1 (109). In step S <b> 402, the controller CPU 106 transmits the program update data 301 received from the update data output device 101 to the SUBCPU 1 (109) of the SUBCPU board 104. As a result, the SUBCPU 1 (109) stores the received program update data 301 in the RAM 110. In step S403, the SUBCPU 1 (109) decrypts the header 303 including the CPU designation number by using the authentication data 0 (304) and the header decoding data 302 to obtain a plain text header 303 and authenticates it. To do. At this time, the body decoding data 305 is used to decrypt the body other than the header 303, and the SUBCPU designated number included in the program update instruction command included in the body is obtained.

次にステップS404で、SUBCPU1(109)は、このプレインテキスト化したヘッダ303と、動作プログラムの更新指示コマンドに含まれるSUBCPUの指定番号とが一致するか否かを判定する。ここで一致しない場合、即ち、ヘッダと本文との整合性が取れていない場合はステップS406に進み、SUBCPU1(109)は、コントローラCPU106にエラーを通知して、一連のプログラム更新作業を終了させる。   In step S404, the SUBCPU1 (109) determines whether the plain text header 303 matches the SUBCPU designation number included in the update instruction command of the operation program. If they do not match, that is, if the header and the text are not consistent, the process proceeds to step S406, and the SUBCPU 1 (109) notifies the controller CPU 106 of an error and ends a series of program update operations.

一方ステップS404で、ヘッダと本文とでSUBCPUの指定番号が一致する場合はステップS405に進み、SUBCPU1(109)は、そのプレインテキスト化されたヘッダ303に含まれるCPUの指定番号が、不揮発メモリ117113の第2ブロック203に保存されたCPU指定番号206とが一致しているか否かを判断し、一致する場合、即ち、そのCPU指定番号に該当するSUBCPUが、このSUBCPUボードシステム103に含まれている場合はステップS407に進んで、その後のプログラム更新動作を継続するが、一致しない場合には、ステップS406に進み、コントローラCPU106にエラーを通知して一連のプログラム更新作業を終了させる。SUBCPU1は、不揮発メモリ117の第2ブロック203に保存されたCPU指定番号206は、SUBCPU2に対して、問い合わせる事で知る事ができる。尚、ここではSUBCPUボードは、104と105の2種類しか示されていないが、それ以上の場合には、このステップS405で、ヘッダ303に含まれるCPUの指定番号と、それだけ分の不揮発メモリ113の第2ブロック203に保存されたCPU指定番号206とが一致しているか否かを判断することはもちろんである。   On the other hand, if it is determined in step S404 that the SUBCPU designated number matches between the header and the body, the process proceeds to step S405, and the SUBCPU1 (109) indicates that the CPU designated number included in the plaintext header 303 is the nonvolatile memory 117113. It is determined whether or not the CPU designation number 206 stored in the second block 203 matches, and if they match, that is, the SUBCPU corresponding to the CPU designation number is included in the SUBCPU board system 103. If YES in step S407, the program update operation is continued. If they do not match, the process advances to step S406, an error is notified to the controller CPU 106, and the series of program update operations is terminated. The SUBCPU 1 can know the CPU designation number 206 stored in the second block 203 of the nonvolatile memory 117 by making an inquiry to the SUBCPU 2. Note that only two types of SUBCPU boards 104 and 105 are shown here, but in the case of more than that, in this step S405, the CPU designation number included in the header 303 and the corresponding non-volatile memory 113 are shown. Of course, it is determined whether or not the CPU designation number 206 stored in the second block 203 matches.

ステップS407では、SUBCPU1(109)は、SUBCPUの指定番号に該当するSUBCPUが搭載されているSUBCPUボードの不揮発メモリの書き換え可能ブロック202に格納されているバージョン番号205を取得する。これは各SUBCPUボードに搭載されているシリアル通信制御部を介して行われる。そして、そのバージョン番号205と、プログラム更新用データに含まれるバージョン番号とを比較し、SUBCPUの指定番号が一致し、且つ、バージョン番号が一致しないかどうか、即ち、同じバージョン番号であれば更新の必要がないため、バージョンが一致するかどうかを判定する。この条件を満足しない場合はステップS408に進み、コントローラCPU106にプログラム更新の必要が無い旨を通知して処理を終了する。   In step S407, the SUBCPU1 (109) acquires the version number 205 stored in the rewritable block 202 of the nonvolatile memory of the SUBCPU board on which the SUBCPU corresponding to the designated number of the SUBCPU is mounted. This is performed via a serial communication control unit mounted on each SUBCPU board. Then, the version number 205 is compared with the version number included in the program update data. If the SUBCPU designated number matches and the version number does not match, that is, if the version number is the same, the update number is updated. Since there is no need, it is determined whether the versions match. If this condition is not satisfied, the process proceeds to step S408, the controller CPU 106 is notified that there is no need to update the program, and the process is terminated.

一方ステップS407で、この条件が満足されるとステップS409に進み、SUBCPU1(109)は、SUBCPUの指定番号が示すSUBCPU(ここでは例えばSUBCPU2(114)とする)にプログラム更新作業を指示するコマンドを送信する。そして、そのSUBCPU2(114)に、その本文の復号用データ305〜認証データN(311)までを送信する。これによりCPU指定番号で示されるSUBCPUボードに、そのプログラム更新用データが送信されてプログラムが復号され、そのSUBCPUボードの動作プログラムが更新される。但し、ここでSUBCPUボード104だけが存在している場合には、SUBCPU1(109)がSUBCPUの指定番号に該当しなければ、ステップS409以降の処理が実行されることはないことはもちろんである。   On the other hand, if this condition is satisfied in step S407, the process proceeds to step S409, and the SUBCPU1 (109) issues a command for instructing the program update work to the SUBCPU indicated by the designated number of the SUBCPU (here, for example, SUBCPU2 (114)). Send. Then, the decryption data 305 to the authentication data N (311) of the text are transmitted to the SUBCPU 2 (114). As a result, the program update data is transmitted to the SUBCPU board indicated by the CPU designation number, the program is decoded, and the operation program of the SUBCPU board is updated. However, in the case where only the SUBCPU board 104 exists, it is needless to say that the processing after step S409 is not executed unless the SUBCPU1 (109) corresponds to the designated number of the SUBCPU.

ステップS409では、そのCPU指定番号に該当するSUBCPU2(114)が、そのプログラム更新用データを受信して、そのSUBCPUボード105のRAM115に格納する。そしてステップS410で、そのSUBCPU2(114)は、その本文の復号用データ305、暗号化されたプログラム更新用データ306、認証データ307と、そのボードの不揮発メモリ117に記憶されている復号・認証秘密キー207と運用プログラム208とを使用して、そのプログラム更新用データ306及び認証データ307を復号してプレインテキスト化されたプログラム更新用データ及び認証データを得る。そして、この復号されたプログラム更新用本文データを認証データを使って認証する。なお、このステップS410では、その指定されたSUBCPU2(114)は、プログラム更新用データ1(306)〜プログラム更新用データN(310)の全てに対して復号及び認証処理を実行する。   In step S409, the SUBCPU 2 (114) corresponding to the CPU designation number receives the program update data and stores it in the RAM 115 of the SUBCPU board 105. In step S410, the SUBCPU 2 (114) then decrypts the body data 305, the encrypted program update data 306, the authentication data 307, and the decryption / authentication secret stored in the nonvolatile memory 117 of the board. Using the key 207 and the operation program 208, the program update data 306 and the authentication data 307 are decrypted to obtain the program update data and the authentication data converted into plain text. The decrypted program update body data is authenticated using authentication data. In step S410, the designated SUBCPU2 (114) executes decryption and authentication processing on all of the program update data 1 (306) to program update data N (310).

次にステップS411で、そのSUBCPU2(114)は、ステップS410で復号したプログラム更新用データの認証に成功したかどうかを判定する。認証に失敗した場合はステップS406に進み、SUBCPU1(109)にエラーを通知してプログラム更新作業を終了する。これによりSUBCPU1(109)は、コントローラCPU106にエラーを通知してプログラム更新作業を終了する。   Next, in step S411, the SUBCPU2 (114) determines whether or not the program update data decrypted in step S410 has been successfully authenticated. If the authentication fails, the process proceeds to step S406, an error is notified to the SUBCPU1 (109), and the program update operation is terminated. As a result, the SUBCPU 1 (109) notifies the controller CPU 106 of the error and ends the program update operation.

一方、ステップS411で、プログラム更新用データの認証に成功した場合はステップS412に進み、SUBCPU2(114)は、そのプログラム更新用データを、そのSUBCPUボード105の不揮発メモリ117の書き換え可能な第1記憶ブロック202に書き込む。このとき、その動作プログラムのバージョン番号をバージョン番号205に記憶する。そしてステップS413で、その書き込み結果をSUBCPU1(109)に通知して、そのSUBCPUボード105のプログラム更新作業を終了する。   On the other hand, if the authentication of the program update data is successful in step S411, the process proceeds to step S412 and the SUBCPU2 (114) stores the program update data in the rewritable first memory of the nonvolatile memory 117 of the SUBCPU board 105. Write to block 202. At this time, the version number of the operation program is stored in the version number 205. In step S413, the SUBCPU 1 (109) is notified of the writing result, and the program update work for the SUBCPU board 105 is completed.

これによりSUBCPU1(109)は、コントローラCPU106に、そのプログラムの更新結果を通知する。またコントローラCPU106は、更新用データ出力装置101に対して、その更新結果を通知することにより、プログラム更新作業を終了する。   As a result, the SUBCPU 1 (109) notifies the controller CPU 106 of the update result of the program. Further, the controller CPU 106 notifies the update data output device 101 of the update result, thereby completing the program update operation.

以上説明したように本実施の形態1に係るマルチCPUシステムによれば、プログラム更新用データの破壊、改竄による不正な不揮発メモリの更新、別のCPU用のプログラム更新用データによる動作プログラムの更新といった事態の発生を防止できる。また、このような動作プログラムの誤った更新による、システムの誤動作や動作不良などの発生を防止できるという効果がある。   As described above, according to the multi-CPU system according to the first embodiment, the program update data is destroyed, the unauthorized nonvolatile memory is updated by falsification, the operation program is updated by the program update data for another CPU, etc. The occurrence of the situation can be prevented. Further, there is an effect that it is possible to prevent the occurrence of malfunction or malfunction of the system due to such erroneous update of the operation program.

[実施の形態2]
次に本発明の実施の形態2について説明する。前述の実施の形態1は、プリンタ等の電子機器に予め組み込まれ、各々のCPUの通信経路内の位置及び機能が決まっているマルチCPUシステムにおけるプログラム更新処理を念頭にして説明したが、この実施の形態2では、例えばパーソナルコンピュータ(PC)等の拡張ボードの様に、マルチCPUシステムにおいて、SUBCPUの通信経路内の位置及び機能が確定されていない場合での処理について説明する。尚、この実施の形態2に係るマルチCPUシステムのハードウェア構成は前述の実施の形態1の場合と同様であるため、その説明を省略する。
[Embodiment 2]
Next, a second embodiment of the present invention will be described. The first embodiment has been described with the program update processing in a multi-CPU system incorporated in advance in an electronic device such as a printer and the position and function of each CPU being determined in communication. In the second embodiment, processing in the case where the position and function in the communication path of the SUBCPU are not determined in a multi-CPU system, such as an expansion board such as a personal computer (PC), will be described. Note that the hardware configuration of the multi-CPU system according to the second embodiment is the same as that of the first embodiment, and a description thereof will be omitted.

図5は、本発明の実施の形態2に係るマルチCPUシステムにおけるプログラム更新処理を説明するフローチャートである。   FIG. 5 is a flowchart for explaining program update processing in the multi-CPU system according to the second embodiment of the present invention.

尚、この実施の形態2では、マルチCPUシステムにおけるプログラム更新用データ301において、SUBCPUの指定番号を含むヘッダ303及び認証データ0(304)は、ヘッダ復号用データ302とSUBCPU指定番号が示すSUBCPUの不揮発メモリの第2記憶ブロック203に含まれる復号・認証秘密キー207、運用プログラム208によって復号されて、プレインテキストが得られる。また、こうして復号されたヘッダ303は、その復号された認証データ0(304)と復号・認証秘密キー207と運用プログラム208とによって認証される。この処理は、更新用データ出力装置101よりコントローラCPU106に対してプログラム更新作業指示及びプログラム更新用データが送信されることによって開始される。   In the second embodiment, in the program update data 301 in the multi-CPU system, the header 303 including the SUBCPU designation number and the authentication data 0 (304) are the header decryption data 302 and the SUBCPU designation number indicated by the SUBCPU designation number. The plain text is obtained by decryption by the decryption / authentication private key 207 and the operation program 208 included in the second storage block 203 of the nonvolatile memory. The decrypted header 303 is authenticated by the decrypted authentication data 0 (304), the decryption / authentication private key 207, and the operation program 208. This process is started when the update data output device 101 transmits a program update work instruction and program update data to the controller CPU 106.

まずステップS501で、コントローラCPU106はその受信したプログラム更新作業指示に従ってSUBCPU1(109)に対して、プログラム更新作業の開始を指示する。またこれによりSUBCPU1(109)は、SUBCPU2(114)に対して、プログラム更新作業の開始を指示する。次にステップS502で、コントローラCPU106は、その受信した動作プログラム更新用データ301をSUBCPU1(109)に送信する。またSUBCPU1(106)も、その送られてきた動作プログラム更新用データ301をSUBCPU2(114)に送信する。そしてステップS503で、SUBCPU1(109)とSUBCPU2(114)は、その受信したプログラム更新用データ301のヘッダ303とヘッダ用認証データ0(304)とを復号してプレインテキストにした後、そのヘッダの認証を行う。   First, in step S501, the controller CPU 106 instructs the SUBCPU 1 (109) to start the program update work in accordance with the received program update work instruction. Accordingly, the SUBCPU1 (109) instructs the SUBCPU2 (114) to start the program update work. In step S502, the controller CPU 106 transmits the received operation program update data 301 to the SUBCPU1 (109). The SUBCPU1 (106) also transmits the received operation program update data 301 to the SUBCPU2 (114). In step S503, the SUBCPU1 (109) and the SUBCPU2 (114) decrypt the header 303 and the header authentication data 0 (304) of the received program update data 301 into plain text, Authenticate.

ステップS504では、SUBCPU1(109)及びSUBCPU2(114)は、そのプレインテキストとなったプログラム更新データのヘッダに含まれるCPUの指定番号と、各々のSUBCPUボードの不揮発メモリ112,113の書き換え不可能な第2記憶ブロック203に格納されたCPU指定番号206と一致するかどうかを判定する。一致する場合はステップS506に進み、その後のプログラム更新作業を続行するが、一致しない場合にはステップS505に進み、その後の各々のプログラム更新作業を終了させる。即ち、ステップS505で、SUBCPU1(109)はコントローラCPU106にエラーを通知して、SUBCPUシステム103によるプログラム更新作業が終了する。   In step S504, the SUBCPU1 (109) and the SUBCPU2 (114) cannot rewrite the CPU designation number included in the header of the program update data that is the plain text and the non-volatile memories 112 and 113 of the respective SUBCPU boards. It is determined whether or not the CPU designation number 206 stored in the second storage block 203 matches. If they match, the process proceeds to step S506, and the subsequent program update operation is continued. If they do not match, the process proceeds to step S505, and the subsequent program update operations are terminated. That is, in step S505, the SUBCPU 1 (109) notifies the controller CPU 106 of an error, and the program update operation by the SUBCPU system 103 is completed.

一方ステップS504で、SUBCPUの指定番号と、不揮発メモリに格納されたCPU指定番号206とが一致すると(ここではSUBCPU2(114)が該当するものとする)ステップS506に進み、暗号化された本文復号用データ305、プログラム更新用データ306,認証データ307と、不揮発メモリに記憶されている復号・認証秘密キー207と運用プログラム208によって、プログラム更新用データ306、認証データ307を復号してプレインテキスト化されたデータを取得する。そして、この復号したプログラム更新用データを認証データ307を使って認証する。そしてこれ以降、その指定されたSUBCPUは、ステップS506を繰り返し実行して、プログラム更新用データ1〜Nまでの全てについて復号及び認証を行う。   On the other hand, if the SUBCPU designation number matches the CPU designation number 206 stored in the non-volatile memory at step S504 (here, SUBCPU2 (114) corresponds), the process proceeds to step S506, where the encrypted text decryption is performed. Data 305, program update data 306, authentication data 307, and decryption / authentication private key 207 and operation program 208 stored in the non-volatile memory, the program update data 306 and authentication data 307 are decrypted into plain text. Get the data. The decrypted program update data is authenticated using authentication data 307. Thereafter, the designated SUBCPU repeatedly executes step S506 to perform decryption and authentication for all of the program update data 1 to N.

こうしてステップS507で、指定されたSUBCPU2(114)が、その認証に成功したかどうかを判定し、認証に失敗するとステップS5050に進み、その指定SUBCPU2(114)は、SUBCPU1(109)にエラーを通知してプログラム更新作業を終了する。これによりSUBCPU1(109)は、そのエラーをコントローラCPU106に通知してプログラム更新作業を終了する。   In step S507, the designated SUBCPU2 (114) determines whether or not the authentication is successful. If the authentication fails, the process proceeds to step S5050, and the designated SUBCPU2 (114) notifies the SUBCPU1 (109) of an error. Then, the program update work is finished. As a result, the SUBCPU 1 (109) notifies the controller CPU 106 of the error and ends the program update operation.

一方ステップS507で、プログラム更新用データの認証に成功した場合はステップS508に進み、そのSUBCPU2(114)は、プログラム更新用データを不揮発メモリ117の書き換え可能な第1記憶ブロック202の動作プログラム204に書き込む。このとき、その動作プログラムのバージョン番号をバージョン番号205に記憶する。そしてステップS510に進み、その書き込み結果をSUBCPU1(109)に通知して、プログラム更新作業を終了する。これによりSUBCPU1(109)は、コントローラCPU106に、その更新結果を通知する。また、更にコントローラCPU106は、更新用データ出力装置101に対して、その更新結果を通知することにより、プログラム更新作業を終了する。   On the other hand, if the program update data has been successfully authenticated in step S507, the process proceeds to step S508, and the SUBCPU 2 (114) transfers the program update data to the operation program 204 of the rewritable first storage block 202 in the nonvolatile memory 117. Write. At this time, the version number of the operation program is stored in the version number 205. In step S510, the write result is notified to the SUBCPU1 (109), and the program update operation is terminated. As a result, the SUBCPU1 (109) notifies the controller CPU106 of the update result. Further, the controller CPU 106 notifies the update data output device 101 of the update result, thereby ending the program update operation.

以上説明したように本実施の形態2によれば、マルチCPUシステムにおけるSUBCPUの配置に、より自由度を持たせることができ、このようなシステムにおいても前述の実施の形態1と同様に、プログラム更新用データの破壊、不正な改竄による動作プログラムの更新、別のCPU用の動作プログラムにより誤って更新する等の誤った動作プログラムの更新を防止できる。これにより、誤った動作プログラムが起動されることによるシステムの誤動作や動作不良の発生を防止できる。   As described above, according to the second embodiment, it is possible to give more freedom to the arrangement of SUBCPUs in a multi-CPU system, and in such a system as well as in the first embodiment, the program It is possible to prevent erroneous update of an operation program such as destruction of update data, update of an operation program due to unauthorized tampering, and update by an operation program for another CPU. As a result, it is possible to prevent the system from malfunctioning or malfunctioning due to the activation of an erroneous operation program.

[実施の形態3]
次に本発明の実施の形態3について説明する。この実施の形態3では、各々のSUBCPUのCPU番号の通信経路上の位置が既知である場合、1つのプログラム更新データで複数のCPU番号を持つSUBCPUの動作プログラムを更新する場合で説明する。尚、この実施の形態3に係るマルチCPUシステムのハードウェア構成及び不揮発メモリのデータ構成は前述の実施の形態1,2と同様であるためその説明を省略する。
[Embodiment 3]
Next, a third embodiment of the present invention will be described. In the third embodiment, a case will be described in which the position of each SUBCPU CPU number on the communication path is known and the operation program of the SUBCPU having a plurality of CPU numbers is updated by one program update data. Note that the hardware configuration of the multi-CPU system and the data configuration of the nonvolatile memory according to the third embodiment are the same as those of the first and second embodiments, and the description thereof is omitted.

図6は、本発明の実施の形態3に係るプログラム更新用データのデータ構成を説明する図である。   FIG. 6 is a diagram for explaining the data structure of program update data according to the third embodiment of the present invention.

この実施の形態3に係るプログラム更新用データ601は、SUBCPU1(109)用のプログラム更新用データ603と、SUBCPU2(114)用のプログラム更新用データ604、CPU指定番号及び指定番号のプログラム更新データが存在するデータ位置を示すヘッダ606と、このヘッダ606を復号するに必要なヘッダ復号用データ605と、復号されたヘッダ606を認証するに必要な認証データ0(607)が、前述の実施の形態に係るプログラム更新用データ301に追加されている。   The program update data 601 according to the third embodiment includes the program update data 603 for SUBCPU1 (109), the program update data 604 for SUBCPU2 (114), the CPU update number and the program update data of the specified number. The header 606 indicating the existing data position, the header decoding data 605 necessary for decrypting the header 606, and the authentication data 0 (607) necessary for authenticating the decrypted header 606 are the above-described embodiments. Is added to the program update data 301.

ここで、SUBCPU1(109)用のプログラム更新用データ603及びヘッダデータ602は、SUBCPU1(109)により復号・認証が可能な対称アルゴリズム及び秘密キーで暗号化されている。またSUBCPU2(114)用のプログラム更新用データ604は、SUBCPU2(114)によって復号・認証が可能な対称アルゴリズム及び秘密キーで暗号化されている。更に、ヘッダの認証データ607は、SUBCPU1(109)用のプログラム更新用データ603の少なくとも一部と、SUBCPU2(114)用のプログラム更新用データ604の少なくとも一部のデータを認証対象として構成されている。   Here, the program update data 603 and header data 602 for SUBCPU1 (109) are encrypted with a symmetric algorithm and a secret key that can be decrypted and authenticated by SUBCPU1 (109). The program update data 604 for SUBCPU2 (114) is encrypted with a symmetric algorithm and a secret key that can be decrypted and authenticated by SUBCPU2 (114). Further, the authentication data 607 in the header is constituted by subjecting at least a part of the program update data 603 for the SUBCPU1 (109) and at least a part of the program update data 604 for the SUBCPU2 (114) as authentication targets. Yes.

図7は、本実施の形態3に係るマルチCPUシステムにおけるプログラム更新処理を説明するフローチャートである。この処理は、更新用データ出力装置101よりコントローラCPU106に対してプログラム更新作業指示及びプログラム更新用データが送信されることによって開始される。   FIG. 7 is a flowchart for explaining program update processing in the multi-CPU system according to the third embodiment. This process is started when the update data output device 101 transmits a program update work instruction and program update data to the controller CPU 106.

ますステップS701で、コントローラCPU106は、更新用データ出力装置101よりの更新指示に応じて、SUBCPU1(109)にプログラムの更新を指示する。次にステップS702で、コントローラCPU106は、SUBCPU1(109)にプログラム更新用データ601を送信する。次にステップS703で、SUBCPU1(109)は、そのプログラム更新用データのヘッダデータ602を復号し、SUBCPU1(109)用のプログラム更新データ603の少なくとも一部、SUBCPU2(114)用のプログラム更新用データ604の少なくとも一部とともに認証する。次にステップS704では、ヘッダデータ602の認証に成功し、且つそのヘッダに含まれるCPU指定番号を示すSUBCPUが、SUBCPUシステム103の中に存在するか否かを判定する。存在する場合はステップS706に進むが、そうでない場合はステップS705に進み、SUBCPU1(109)はコントローラCPU106にエラーを通知して、プログラム処理を終了する。   In step S701, the controller CPU 106 instructs the SUBCPU 1 (109) to update the program in response to an update instruction from the update data output device 101. In step S702, the controller CPU 106 transmits program update data 601 to the SUBCPU 1 (109). In step S703, the SUBCPU1 (109) decrypts the header data 602 of the program update data, and at least a part of the program update data 603 for the SUBCPU1 (109), the program update data for the SUBCPU2 (114). Authenticate with at least a portion of 604. In step S <b> 704, it is determined whether or not the SUBCPU indicating the CPU designation number included in the header is successfully present in the SUBCPU system 103. If it exists, the process proceeds to step S706. If not, the process proceeds to step S705, and the SUBCPU1 (109) notifies the controller CPU 106 of an error and ends the program process.

一方、存在する場合はステップS706で、SUBCPU1(109)はヘッダで指定されているCPU指定番号のSUBCPU(ここではSUBCPU2(114)とする)にプログラムの更新を指示する。そしてステップS707で、SUBCPU1(109)は、そのヘッダで指定されているCPU指定番号とアドレス情報とに基づいて、SUBCPU2(114)にプログラム更新用データを送信する。次にステップS708で、SUBCPU1(109)からプログラム更新指示とプログラム更新用データを受信したSUBCPU2(114)は、その受信したプログラム更新データのヘッダと認証データとを復号して、プレインテキストのプログラム更新データ及びヘッダを取得する。そして認証データを使って、そのヘッダを認証する。   On the other hand, if it exists, in step S706, SUBCPU1 (109) instructs SUBCPU (here, SUBCPU2 (114)) of the CPU designation number designated in the header to update the program. In step S707, SUBCPU1 (109) transmits program update data to SUBCPU2 (114) based on the CPU designation number and address information designated in the header. In step S708, the SUBCPU 2 (114) that has received the program update instruction and the program update data from the SUBCPU 1 (109) decrypts the received program update data header and authentication data, and updates the plain text program. Get data and header. The authentication data is used to authenticate the header.

その結果、ステップS709で、SUBCPU2(114)は、その認証が成功し、且つプレインテキストとなったプログラム更新データのヘッダに含まれるCPU指定番号と、そのSUBCPUボード105の不揮発メモリ117の第2記憶ブロック203に格納されたCPU指定番号206とが一致するかを判定する。一致したときはステップS710に進むが、一致しない場合にはステップS715に進み、SUBCPU1(109)にエラーを通知してプログラム更新作業を終了させる。   As a result, in step S709, the SUBCPU 2 (114), the authentication is successful and the CPU designation number included in the header of the program update data that has become plain text, and the second storage in the non-volatile memory 117 of the SUBCPU board 105 It is determined whether the CPU designation number 206 stored in the block 203 matches. If they match, the process proceeds to step S710. If they do not match, the process proceeds to step S715, an error is notified to the SUBCPU1 (109), and the program update operation is terminated.

ステップS710では、SUBCPU2(114)は、そのプログラム更新データ604を復号して認証する。次にステップS711で、SUBCPU2(114)は、認証に成功したかどうかを判定し、成功した場合はステップS712に進むが、そうでない場合にはステップS715に進み、SUBCPU1(109)にエラーを通知してプログラム更新作業を終了する。   In step S710, the SUBCPU2 (114) decrypts and authenticates the program update data 604. In step S711, the SUBCPU2 (114) determines whether or not the authentication is successful. If successful, the process proceeds to step S712. If not, the process proceeds to step S715, and an error is notified to the SUBCPU1 (109). Then, the program update work is finished.

ステップS712では、SUBCPU2(114)は、プログラム更新データによって不揮発メモリ117の書き換え可能な第1記憶ブロック202の動作プログラム204を更新する。このとき、その動作プログラムのバージョン番号をバージョン番号205に記憶する。次にステップS713で、SUBCPU2(114)は、その更新作業の処理結果をSUBCPU1(109)に通知する。そしてステップS705で、SUBCPU1(109)は、そのSUBCPU2(114)からの更新結果をコントローラCPU106に通知する。   In step S712, the SUBCPU2 (114) updates the operation program 204 of the rewritable first storage block 202 of the nonvolatile memory 117 with the program update data. At this time, the version number of the operation program is stored in the version number 205. In step S713, the SUBCPU2 (114) notifies the processing result of the update work to the SUBCPU1 (109). In step S705, the SUBCPU1 (109) notifies the controller CPU 106 of the update result from the SUBCPU2 (114).

尚、ここではSUBCPUボードが2種類の場合で説明したが、それ以上のSUBCPUボードが含まれている場合であっても、ヘッダに含まれているCPU番号に応じてSUBCPU1(109)がSUBCPUを指定することにより、上述の実施の形態と同様にして、その指定されたSSUBCPUの動作プログラムが更新されることは言うまでもない。   Here, the case where there are two types of SUBCPU boards has been described. However, even if more SUBCPU boards are included, SUBCPU1 (109) selects SUBCPUs according to the CPU number included in the header. It goes without saying that, by designating, the designated SSUBCPU operation program is updated in the same manner as in the above-described embodiment.

上記説明したように本実施の形態3によれば、プログラム更新用データの破壊、不正な改竄による動作プログラムの更新、別のCPU用の動作プログラムで誤って更新するといった事態の発生を防止できる。これにより、不正なプログラム更新用データによる動作プログラムの更新に伴う、システムの誤動作やデータの破損などの発生を防止できるという効果がある。   As described above, according to the third embodiment, it is possible to prevent the occurrence of situations such as destruction of program update data, update of an operation program due to unauthorized tampering, and erroneous update with an operation program for another CPU. As a result, there is an effect that it is possible to prevent the occurrence of system malfunction or data corruption accompanying the update of the operation program by the illegal program update data.

[他の実施形態]
以上、本発明の実施の形態を詳述したが、本発明は、複数の機器から構成されるシステムに適用しても良いし、または一つの機器からなる装置に適用しても良い。
[Other Embodiments]
The embodiment of the present invention has been described in detail above. However, the present invention may be applied to a system composed of a plurality of devices or an apparatus composed of one device.

なお本発明は、前述した実施の形態の機能を実現するソフトウェアのプログラムを、システム或いは装置に直接或いは遠隔から供給し、そのシステム或いは装置のコンピュータが、その供給されたプログラムコードを読み出して実行することによっても達成される場合を含む。その場合、プログラムの機能を有していれば、その形態はプログラムである必要はない。従って、本発明の機能処理をコンピュータで実現するために、該コンピュータにインストールされるプログラムコード自体も本発明を実現するものである。つまり、本発明には、本発明の機能処理を実現するためのコンピュータプログラム自体も含まれる。その場合、プログラムの機能を有していれば、オブジェクトコード、インタプリタにより実行されるプログラム、OSに供給するスクリプトデータ等、プログラムの形態を問わない。   In the present invention, a software program that realizes the functions of the above-described embodiments is supplied directly or remotely to a system or apparatus, and the computer of the system or apparatus reads and executes the supplied program code. In some cases, it can be achieved by In that case, as long as it has the function of a program, the form does not need to be a program. Accordingly, since the functions of the present invention are implemented by computer, the program code installed in the computer also implements the present invention. That is, the present invention includes a computer program itself for realizing the functional processing of the present invention. In this case, the program may be in any form as long as it has a program function, such as an object code, a program executed by an interpreter, or script data supplied to the OS.

プログラムを供給するための記憶媒体としては、例えば、フロッピー(登録商標)ディスク、ハードディスク、光ディスク、光磁気ディスク、MO、CD−ROM、CD−R、CD−RW、磁気テープ、不揮発性のメモリカード、ROM、DVD(DVD−ROM,DVD−R)などがある。その他のプログラムの供給方法としては、クライアントコンピュータのブラウザを用いてインターネットのホームページに接続し、該ホームページから本発明のコンピュータプログラムそのもの、もしくは圧縮され自動インストール機能を含むファイルをハードディスク等の記憶媒体にダウンロードすることによっても供給できる。また本発明のプログラムを構成するプログラムコードを複数のファイルに分割し、それぞれのファイルを異なるホームページからダウンロードすることによっても実現可能である。つまり本発明の機能処理をコンピュータで実現するためのプログラムファイルを複数のユーザに対してダウンロードさせるWWWサーバも、本発明のクレームに含まれるものである。   As a storage medium for supplying the program, for example, floppy (registered trademark) disk, hard disk, optical disk, magneto-optical disk, MO, CD-ROM, CD-R, CD-RW, magnetic tape, nonvolatile memory card ROM, DVD (DVD-ROM, DVD-R) and the like. As another program supply method, a client computer browser is used to connect to an Internet homepage, and the computer program of the present invention itself or a compressed file including an automatic installation function is downloaded from the homepage to a storage medium such as a hard disk. Can also be supplied. It can also be realized by dividing the program code constituting the program of the present invention into a plurality of files and downloading each file from a different home page. That is, a WWW server that allows a plurality of users to download a program file for realizing the functional processing of the present invention on a computer is also included in the claims of the present invention.

また本発明のプログラムを暗号化してCD−ROM等の記憶媒体に格納してユーザに配布し、所定の条件を満足するユーザに対してインターネットを介してホームページから暗号化を解く鍵情報をダウンロードさせ、その鍵情報を使用することにより暗号化されたプログラムを実行してコンピュータにインストールさせて実現することも可能である。   In addition, the program of the present invention is encrypted, stored in a storage medium such as a CD-ROM, distributed to users, and a user who satisfies a predetermined condition downloads key information for decryption from a homepage via the Internet. It is also possible to execute the encrypted program by using the key information and install the program on a computer.

またコンピュータが、読み出したプログラムを実行することによって、前述した実施形態の機能が実現される他、そのプログラムの指示に基づき、コンピュータ上で稼動しているOSなどが、実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現され得る。   In addition to the functions of the above-described embodiments being realized by the computer executing the read program, the OS running on the computer based on the instruction of the program may be part of the actual processing or The functions of the above-described embodiment can also be realized by performing all the processing and performing the processing.

さらに、記録媒体から読み出されたプログラムが、コンピュータに挿入された機能拡張ボードやコンピュータに接続された機能拡張ユニットに備わるメモリに書き込まれた後、そのプログラムの指示に基づき、その機能拡張ボードや機能拡張ユニットに備わるCPUなどが実際の処理の一部または全部を行ない、その処理によっても前述した実施形態の機能が実現される。   Furthermore, after the program read from the recording medium is written in a memory provided in a function expansion board inserted into the computer or a function expansion unit connected to the computer, the function expansion board or The CPU or the like provided in the function expansion unit performs part or all of the actual processing, and the functions of the above-described embodiments are realized by the processing.

本発明の実施の形態に係るマルチCPUシステムの構成を説明するブロック図である。It is a block diagram explaining the structure of the multi CPU system which concerns on embodiment of this invention. 本発明の実施の形態に係るSUBCPUボードの不揮発メモリのデータ構成を説明する図である。It is a figure explaining the data structure of the non-volatile memory of the SUBCPU board which concerns on embodiment of this invention. 本発明の実施の形態1,2に係るプログラム更新用データの構成を説明する図である。It is a figure explaining the structure of the data for program update which concerns on Embodiment 1, 2 of this invention. 本発明の実施の形態1に係るマルチCPUシステムにおけるプログラム更新処理を説明するフローチャートである。It is a flowchart explaining the program update process in the multi-CPU system which concerns on Embodiment 1 of this invention. 本発明の実施の形態2に係るマルチCPUシステムにおけるプログラム更新処理を説明するフローチャートである。It is a flowchart explaining the program update process in the multi-CPU system which concerns on Embodiment 2 of this invention. 本発明の実施の形態3に係るプログラム更新用データの構成を説明する図である。It is a figure explaining the structure of the data for program update which concerns on Embodiment 3 of this invention. 本発明の実施の形態3に係るマルチCPUシステムにおけるプログラム更新処理を説明するフローチャートである。It is a flowchart explaining the program update process in the multi-CPU system which concerns on Embodiment 3 of this invention.

Claims (12)

互いにデータの送受信が可能な複数のCPUを有するデータ処理装置であって、
外部より供給される、暗号化されたヘッダ及びプログラムを含むプログラム更新用データを受信する受信手段と、
前記受信手段により受信された前記プログラム更新用データのヘッダを復号及び認証して前記プログラムの供給先のCPUを特定し、特定された前記CPUに前記暗号化されたプログラムを供給する供給手段とを有し、
前記供給先のCPUは、
前記供給手段により供給された前記暗号化されたプログラムを復号及び認証する復号認証手段と、
前記復号認証手段により認証されたプログラムを用いて当該CPUのプログラムを更新することを特徴とするデータ処理装置。
A data processing apparatus having a plurality of CPUs capable of transmitting and receiving data to and from each other,
Receiving means for receiving program update data including an encrypted header and a program supplied from the outside;
Supply means for decrypting and authenticating the header of the program update data received by the receiving means to identify a CPU to which the program is supplied and supplying the encrypted program to the identified CPU; Have
The supply destination CPU is:
Decryption authentication means for decrypting and authenticating the encrypted program supplied by the supply means;
A data processing apparatus, comprising: updating a program of the CPU using a program authenticated by the decryption authentication unit.
前記プログラム更新用データは、前記暗号化されたヘッダ及びプログラムのそれぞれの復号用及び認証用データを含むことを特徴とする請求項1に記載のデータ処理装置。   The data processing apparatus according to claim 1, wherein the program update data includes decryption data and authentication data of the encrypted header and the program, respectively. 前記複数のCPUは、前記プログラム更新用データを受信するための第1CPU、前記第1CPUから供給される前記プログラム更新用データの供給対象先となり得る複数のSUBCPUとを含み、前記供給先CPUは前記複数のSUBCPUのいずれかであることを特徴とする請求項1又は2に記載のデータ処理装置。   The plurality of CPUs include a first CPU for receiving the program update data, and a plurality of SUBCPUs that can be supply destinations of the program update data supplied from the first CPU. The data processing apparatus according to claim 1, wherein the data processing apparatus is one of a plurality of SUBCPUs. 前記複数のSUBCPUのそれぞれは、当該SUBCPUの識別番号、前記暗号化されたプログラム更新用データを復号及び認証するための復号認証秘密キーと、前記プログラム更新用データの復号及び認証を行うための運用プログラムを記憶するメモリを有することを特徴とする請求項3に記載のデータ処理装置。   Each of the plurality of SUBCPUs includes an identification number of the SUBCPU, a decryption authentication secret key for decrypting and authenticating the encrypted program update data, and an operation for performing decryption and authentication of the program update data. The data processing apparatus according to claim 3, further comprising a memory that stores a program. 前記複数のSUBCPUのそれぞれは、更に、更新したプログラムのバージョン情報を前記メモリに記憶することを特徴とする請求項4に記載のデータ処理装置。   The data processing apparatus according to claim 4, wherein each of the plurality of SUBCPUs further stores version information of an updated program in the memory. それぞれが少なくともCPU、メモリ及び通信回路を有し、それぞれ相互に通信可能な複数のCPU回路と、
外部より供給される、暗号化されたヘッダ及びプログラムを含むプログラム更新用データを受信して前記複数のCPU回路に供給するコントローラとを有し、
前記コントローラは、
前記プログラム更新用データに含まれる前記ヘッダを復号して、当該プログラム更新用データの供給先を特定して供給する手段を有し、
前記複数のCPU回路のそれぞれは、
前記プログラム更新用データを復号して認証する復号認証手段と、
前記復号認証手段により復号及び認証されたプログラムを前記メモリに格納する手段と、
を有することを特徴とするデータ処理装置。
A plurality of CPU circuits each having at least a CPU, a memory and a communication circuit, each capable of communicating with each other;
A controller for receiving program update data including an encrypted header and a program supplied from the outside and supplying the data to the plurality of CPU circuits;
The controller is
Means for decoding the header included in the program update data and specifying and supplying a supply destination of the program update data;
Each of the plurality of CPU circuits is
Decryption authentication means for decrypting and authenticating the program update data;
Means for storing in the memory a program decrypted and authenticated by the decryption authentication means;
A data processing apparatus comprising:
前記復号認証手段は、前記メモリに記憶されている認証コードに基づいて前記プログラム更新用データを認証することを特徴とする請求項6に記載のデータ処理装置。   The data processing apparatus according to claim 6, wherein the decryption authentication unit authenticates the program update data based on an authentication code stored in the memory. 互いにデータの送受信が可能な複数のCPUを有するデータ処理装置におけるプログラム更新方法であって、
外部より供給される、暗号化されたヘッダ及びプログラムを含むプログラム更新用データを受信する受信工程と、
前記受信工程で受信された前記プログラム更新用データのヘッダを復号及び認証して前記プログラムの供給先のCPUを特定し、特定された前記CPUに前記暗号化されたプログラムを供給する供給工程とを有し、
前記供給工程により供給された前記暗号化されたプログラムを復号及び認証する復号認証工程と、
前記復号認証工程で認証されたプログラムを用いて当該CPUのプログラムを更新することを特徴とするデータ処理装置におけるプログラム更新方法。
A program update method in a data processing apparatus having a plurality of CPUs capable of transmitting and receiving data to and from each other,
A receiving step of receiving program update data including an encrypted header and a program supplied from the outside;
A supply step of decrypting and authenticating the header of the program update data received in the reception step to identify a CPU to which the program is supplied, and supplying the encrypted program to the identified CPU; Have
A decryption authentication step for decrypting and authenticating the encrypted program supplied by the supply step;
A program update method in a data processing apparatus, wherein the program of the CPU is updated using the program authenticated in the decryption authentication step.
前記プログラム更新用データは、前記暗号化されたヘッダ及びプログラムのそれぞれの復号用及び認証用データを含むことを特徴とする請求項8に記載のプログラム更新方法。   9. The program update method according to claim 8, wherein the program update data includes decryption data and authentication data of the encrypted header and the program, respectively. 前記複数のSUBCPUのそれぞれは、更に、更新したプログラムのバージョン情報を前記メモリに記憶することを特徴とする請求項9に記載のプログラム更新方法。   The program update method according to claim 9, wherein each of the plurality of SUBCPUs further stores version information of the updated program in the memory. それぞれが少なくともCPU、メモリ及び通信回路を有し、それぞれ相互に通信可能な複数のCPU回路と、外部より供給される、暗号化されたヘッダ及びプログラムを含むプログラム更新用データを受信して前記複数のCPU回路に供給するコントローラとを有するデータ処理装置におけるプログラム更新方法であって、
前記プログラム更新用データに含まれる前記ヘッダを復号して、当該プログラム更新用データの供給先を特定して供給する工程と、
前記複数のCPU回路のそれぞれにおいて、前記プログラム更新用データを復号して認証する復号認証工程と、
前記復号認証工程により復号及び認証されたプログラムを前記メモリに格納する工程と、
を有することを特徴とするデータ処理装置におけるプログラム更新方法。
Each of the plurality of CPU circuits each having at least a CPU, a memory, and a communication circuit and capable of communicating with each other and receiving program update data including an encrypted header and a program supplied from outside A method for updating a program in a data processing apparatus having a controller for supplying to a CPU circuit of
Decrypting the header included in the program update data, identifying and supplying a supply destination of the program update data; and
In each of the plurality of CPU circuits, a decryption authentication step for decrypting and authenticating the program update data;
Storing the program decrypted and authenticated in the decryption authentication step in the memory;
A method for updating a program in a data processing apparatus.
前記復号認証工程は、前記メモリに記憶されている認証コードに基づいて前記プログラム更新用データを認証することを特徴とする請求項11に記載のプログラム更新方法。   12. The program update method according to claim 11, wherein the decryption authentication step authenticates the program update data based on an authentication code stored in the memory.
JP2004368525A 2004-12-20 2004-12-20 Data processing apparatus and program updating method thereof Expired - Fee Related JP4054802B2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2004368525A JP4054802B2 (en) 2004-12-20 2004-12-20 Data processing apparatus and program updating method thereof

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2004368525A JP4054802B2 (en) 2004-12-20 2004-12-20 Data processing apparatus and program updating method thereof

Publications (3)

Publication Number Publication Date
JP2006178544A true JP2006178544A (en) 2006-07-06
JP2006178544A5 JP2006178544A5 (en) 2007-01-11
JP4054802B2 JP4054802B2 (en) 2008-03-05

Family

ID=36732633

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004368525A Expired - Fee Related JP4054802B2 (en) 2004-12-20 2004-12-20 Data processing apparatus and program updating method thereof

Country Status (1)

Country Link
JP (1) JP4054802B2 (en)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186319A (en) * 2007-01-31 2008-08-14 Kyocera Mita Corp Electronic equipment, and electronic equipment control program
JP2011086240A (en) * 2009-10-19 2011-04-28 Yokogawa Electric Corp Verification device and software updating system for field equipment using the same
WO2011055804A1 (en) 2009-11-09 2011-05-12 Necインフロンティア株式会社 Handy terminal and payment method used for the handy terminal
JP2016139262A (en) * 2015-01-27 2016-08-04 キヤノン株式会社 Information processing device, control method of the same and program thereof
CN106020855A (en) * 2015-03-24 2016-10-12 日本电气株式会社 Multiple CPU system and method for upgrading CPU

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2008186319A (en) * 2007-01-31 2008-08-14 Kyocera Mita Corp Electronic equipment, and electronic equipment control program
JP2011086240A (en) * 2009-10-19 2011-04-28 Yokogawa Electric Corp Verification device and software updating system for field equipment using the same
WO2011055804A1 (en) 2009-11-09 2011-05-12 Necインフロンティア株式会社 Handy terminal and payment method used for the handy terminal
US10491395B2 (en) 2009-11-09 2019-11-26 Nec Platforms, Ltd. Handy terminal and payment method to be used in same
JP2016139262A (en) * 2015-01-27 2016-08-04 キヤノン株式会社 Information processing device, control method of the same and program thereof
CN106020855A (en) * 2015-03-24 2016-10-12 日本电气株式会社 Multiple CPU system and method for upgrading CPU
JP2016181117A (en) * 2015-03-24 2016-10-13 日本電気株式会社 Multi-cpu system and cpu upgrade method

Also Published As

Publication number Publication date
JP4054802B2 (en) 2008-03-05

Similar Documents

Publication Publication Date Title
JP5369502B2 (en) Device, management device, device management system, and program
JP6226709B2 (en) Image forming apparatus, control method therefor, and program
JP6399763B2 (en) Information processing apparatus and information processing method
JP6720581B2 (en) Information processing apparatus, information processing method, and information processing program
EP2028604A1 (en) File processing system and method, and file processing program
JP2008001089A (en) Printing program and printing apparatus
JP2009230399A (en) Firmware update system and firmware update program
JP2007102785A (en) Security method and system, and computer-readable storage medium storing the method
JP2009253783A (en) Mobile terminal, data protection method and program for data protection
JP4054802B2 (en) Data processing apparatus and program updating method thereof
JP2003058486A (en) Image forming device
JP2009301429A (en) Method and apparatus for detecting software falsification, and image processor
US7543153B2 (en) Digital signature generating apparatus, method, computer program and computer-readable storage medium
JP2008065678A (en) Control system of equipment, control apparatus, and protection method of program
JP2012160851A (en) Image forming apparatus
JP2005348250A (en) Image forming device, data encipher method, program, and recording medium
JP2006270645A (en) Information processing apparatus, information processing method, and information processing program
JP6436794B2 (en) Information processing apparatus, control method thereof, and program
JP2009169759A (en) Electronic equipment and information processing method
JP7313232B2 (en) Information processing device, its control method, and program
JPH1115668A (en) Data storage method/device
JP2007148492A (en) Method for detecting alteration of print job issuing program
JP5226383B2 (en) Microcomputer identification information management system and method
JP2006235791A (en) Image processor
JP2004320751A (en) Digital certificate management system, apparatus and method for digital certificate management, method for deciding update procedure and program

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20061117

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20070711

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070831

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20071030

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071210

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20101214

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Ref document number: 4054802

Country of ref document: JP

Free format text: JAPANESE INTERMEDIATE CODE: R150

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20111214

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20121214

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20131214

Year of fee payment: 6

LAPS Cancellation because of no payment of annual fees