WO2003107193A1 - 半導体集積回路装置、データ記憶検証装置およびデータ記憶検証方法 - Google Patents

半導体集積回路装置、データ記憶検証装置およびデータ記憶検証方法 Download PDF

Info

Publication number
WO2003107193A1
WO2003107193A1 PCT/JP2003/007541 JP0307541W WO03107193A1 WO 2003107193 A1 WO2003107193 A1 WO 2003107193A1 JP 0307541 W JP0307541 W JP 0307541W WO 03107193 A1 WO03107193 A1 WO 03107193A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
data
integrated circuit
semiconductor integrated
stored
Prior art date
Application number
PCT/JP2003/007541
Other languages
English (en)
French (fr)
Inventor
勝博 中井
難波 剛
平野 雄久
智明 手塚
Original Assignee
松下電器産業株式会社
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 松下電器産業株式会社 filed Critical 松下電器産業株式会社
Priority to JP2004513943A priority Critical patent/JP4041491B2/ja
Priority to US10/517,258 priority patent/US20050223241A1/en
Publication of WO2003107193A1 publication Critical patent/WO2003107193A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/57Certifying or maintaining trusted computer platforms, e.g. secure boots or power-downs, version controls, system software checks, secure updates or assessing vulnerabilities
    • G06F21/572Secure firmware programming, e.g. of basic input output system [BIOS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/50Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems
    • G06F21/51Monitoring users, programs or devices to maintain the integrity of platforms, e.g. of processors, firmware or operating systems at application loading time, e.g. accepting, rejecting, starting or inhibiting executable software based on integrity or source reliability

Definitions

  • the rewrite program which is confidential information that the user does not want to leak to a third party, can be downloaded using communication means such as a network. It is possible to confirm whether or not it was possible while maintaining confidentiality.
  • the data storage verification method according to claim 38 of the present invention is the data storage verification method according to claim 35, wherein the fifth step is performed in the third area.
  • FIG. 3 is a diagram showing a semiconductor integrated circuit device according to a second embodiment of the present invention.
  • FIG. 4 is a flowchart showing an operation of the semiconductor integrated circuit device according to the second embodiment of the present invention.
  • the semiconductor integrated circuit device is designed such that when a rewrite program that is confidential information not to be leaked to a third party is input to the rewritable RAM 108, Out of the externally readable area 103 and the externally readable area 104 provided in I08, the data for checking is stored in the externally readable area 103 and the data for checking is stored. After it is determined that the result is correct, the program of the confidential information is stored in the externally unreadable area 104, so that the rewriting program that stores the confidential information that is not to be leaked to a third party is stored in the RAM I. 08 It is possible to check manufacturing defects and the path to input.
  • reference numeral 500 denotes a semiconductor integrated circuit device which is obtained by downloading an encrypted rewrite program
  • 501 denotes a control microcomputer
  • 503 denotes a pre-encrypted program.
  • the semiconductor integrated circuit 507 stores a decryption circuit (decryption means) 502 for decrypting the encrypted rewrite program and a rewrite program decrypted by the decryption circuit 502.
  • a rewritable RAM (second storage means) 504 and an arithmetic processing circuit (arithmetic processing unit) 505 which operates in accordance with the control procedure of the decrypted program and processes the content data 506 It is composed of
  • the encrypted rewrite program from the memory 503 is decrypted by the decryption circuit 502 (step S 601), and the decrypted rewrite program is input to the RAM 504 (step S 602). .
  • one of the rewrite programs stored in RAM504 is input to the RAM 504 (step S 602).
  • a signal for notifying whether the data is correct is output to the outside of the semiconductor integrated circuit 507 (step S604).
  • the contents of the program to be executed are made into a program such as a memory check, and the memory check is executed. If the result of the check is obtained, it is determined whether the program is correctly stored in the RAM 504. Can be performed more reliably. Also, as shown in Fig.
  • the RAM 906 As described above, by configuring the RAM 906 as described above, it is possible to confirm whether or not the rewrite program stored in the RAM 906 has been correctly stored, and that the rewrite program can be correctly stored. If not, it is possible to obtain information on the location that has not been correctly stored.
  • the RAM I is decrypted through the decryption circuit 1105 under the control of the control microcomputer 1103 under the control of the control microcomputer 1103.
  • the operation of the arithmetic processing circuit 110 is started.
  • the switching circuits 1 1 1 and 2 are connected so as to be in the first mode.
  • the arithmetic processing circuit 111 operates according to the execution step of the rewrite program developed in the RAM I 106. In this rewrite program, transfer control to the data check program in ROM 1 1 1 5 There is such a program, which executes this.
  • the connection switching circuit 1112 is switched so as to be in the second mode.
  • a2600, a2601, a2602, a2603, and a2604 indicate memory addresses
  • a2600 indicates a start address in the RAMI 106
  • a2604 indicates an end address
  • a 2601 indicates the address of a place located just half of the total capacity of RAMI 106.
  • a 2602 indicates the address of a location that is located at about half of the capacity represented by the address a 2601 and the end address a 2604.
  • a 2603 indicates an address located just half of the capacity represented by the address a 2602 and the end address a 2604.
  • the semiconductor integrated circuit 1509 includes a decryption circuit (decryption means) 1502 for decrypting the encrypted rewrite program, and a decryption circuit 1
  • the RAM (second storage means) 1504 for storing the rewritten program decrypted in 502 and operates according to the control procedure of the decrypted program to process the content data 1508 It comprises an arithmetic processing circuit (operation processing unit) 1505 to be performed and an encryption circuit 1506 for encrypting the rewrite program stored in the RAM I504 again.
  • the configuration up to this point is the same as that of the semiconductor integrated circuit device 1401 in FIG.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Storage Device Security (AREA)

Abstract

DSPやCPUなどの演算処理ユニットのプログラムを外部からダウンロードする半導体集積回路装置(100)において、半導体集積回路(109)内にダウンロードした、第三者に漏洩したくない機密情報である書き換えプログラムを、その機密を保持しながら該書き換えプログラムが正しくダウンロードできたか否かの確認を可能とする半導体集積回路装置を提供する。ダウンロードした書き換えプログラムの内容を検証する回路、及び/またはダウンロードした書き換えプログラムの内容を検証するプログラムを備える。

Description

明 細 書 半導体集積回路装置, デー夕記憶検証装置およびデー夕記憶検証方法 技術分野
本発明は半導体集積回路装置, データ記憶検証装置およびデータ記憶検証方法 に関するものであり、 特に、 内容が第三者へ漏洩したくない機密情報であるプロ グラムの保護、 すなわちその機密性を維持しながら、 ダウンロードが確実に実行 できたか否かを容易に確認できるようにしたものに関する。 背景技術
D S P (Digital Signal Processor) や C P Uなどの演算処理ュニットを含む半 導体集積回路において、 演算処理ユニットのプログラムは、 コスト面やプロダラ ムの機密性を保つという点においては R OMとしてプログラムを格納することが 有利となる。 しかしながら、 R OMなどの書き換え不可能な手段でプログラムを 保持した場合、 仕様変更やプログラム自身の不具合に柔軟な対応が取りにくい。 このような回路の開発における容易さなどの点から、 プログラムを半導体集積回 路内部に格納する手段を、 RAMなどの書き換え可能な手段として所有すること がある。 このような構成を持つ回路においては、 D S Pや C P Uのような信号処 理 ·機器の制御を担う演算処理ュニットなどに必要なプログラムを事前に書き換 え可能な RAMなどの指定領域にダウンロードする必要があった。 なお、 本明細 書において、 ダウンロードとは、 データやプログラムを、 半導体集積回路の内部 にロードする、 ことを意味するものとする。
しかし、 D S Pや C P Uなどの演算処理ュニットのプログラムを外部から RA Mにダウンロードする半導体集積回路においては、 プログラムを半導体集積回路 内部に R OMで持っている場合よりもプログラムの内容が第三者に漏洩する危険 が高いという欠点を有していた。
例えば、 半導体集積回路外部に保持するプログラムが、 著作権保護を目的とし て策定されたウォーターマーク (電子透かし) を検出するためのプログラムのよ うな場合、 プログラムの内容が悪意を持った第三者に漏洩したことによって、 著 作権保護のための仕組みを無効化される恐れがあるため、 プログラム自身を保護 する必要がある。
この場合、 半導体集積回路内にダウンロードするプログラムを予め暗号化させ て、 該半導体集積回路内で復号化させることにより、 プログラム自身を保護する ことが考えられる。
しかしながら、 この予め暗号化したデータ、 及び非暗号化デ一夕も含めて半導 体集積回路内の書き換え可能な領域にダウンロードしたプログラムデータが正し く格納できたか否かを、 機密性を保持しながら確認することは困難である。 本発明はこのような問題を解決するためになされたものであり、 機密性を要す るプログラムデ一夕を外部に漏らすことなく、 正しくダウン口一ドできたか否か を確認できる半導体集積回路装置, データ記憶検証装置およびデータ記憶検証方 法を提供することを目的とする。 発明の開示
上記問題を解決するために、 本発明の請求の範囲第 1項に記載の半導体集積回 路装置は、 半導体集積回路内の演算処理ユニットにコンテンツを処理する動作を させるためのプログラムを、 書き換え可能に格納する第 2の格納手段を半導体集 積回路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処 理ユニットにコンテンツを処理する動作をさせるための、 書き換え用である書き 換えプログラムを格納する第 1の格納手段を用いて書き換えを行うようにした半 導体集積回路装置において、 上記第 2の格納手段は、 該半導体集積回路外部から 読出しが可能な外部読出し可能領域と、 読出しが不可能な外部読出し不可能領域 とを有するものであり、 上記第 2の格納手段の外部読出し可能領域に任意のデー 夕を入力格納したのち、 該デ一夕を該半導体集積回路の外部に読出して、 該任意 のデータが上記入力した通りのデータであるかを確認し、 そののち、 上記第 1の 格納手段からの上記書き換えプログラムを、 上記第 2の格納手段の外部読出し不 可能領域に格納するようにしたものである。
これにより、 例えばダミーデータなどを、 上記第 2の格納手段の読み出し可能 な領域に書き込んで、 該書き込んだダミ一データを読み出してチェックをするこ とにより、 半導体集積回路内に正しく上記書き換えプログラムが格納されたかど うかを、 該書き換えプロダラムの機密性を保持しながら確認することができる。 また、 本発明の請求の範囲第 2項に記載の半導体集積回路装置は、 半導体集積 回路内の演算処理ュニットにコンテンツを処理する動作をさせるためのプロダラ ムを、 書き換え可能に格納する第 2の格納手段を半導体集積回路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処理ュニットにコンテン ッを処理する動作をさせるための、 書き換え用である書き換えプログラムを格納 する第 1の格納手段を用いて書き換えを行うようにした半導体集積回路装置にお いて、 上記第 2の格納手段に格納された上記書き換えプログラムの特定部分のみ を読み出すように制御する制御回路を備えたものである。
これにより、 上記第 2の格納手段に格納された特定部分のみを読み出して、 該 特定部分を検証することにより、 上記書き換えプログラムが半導体集積回路内に 正しくダウンロードできたか否かを、 該書き換えプログラムの機密性を保持しな がら確認することができる。
また、 本発明の請求の範囲第 3項に記載の半導体集積回路装置は、 請求の範囲 第 2項に記載の半導体集積回路装置において、 上記制御回路は、 上記第 2の格納 手段の特定のァドレスにある書き換えプログラムのみを読み出すように制御する ものとしたものである。
これにより、 上記第 2の格納手段の特定のアドレスのみを読み出して、 該特定 のアドレスのデータを検証することにより、 上記書き換えプログラムが半導体集 積回路内に正しくダウンロードできたか否かを、 該書き換えプログラムの機密性 を保持しながら確認することができる。
また、 本発明の請求の範囲第 4項に記載の半導体集積回路装置は、 請求の範囲 第 2項に記載の半導体集積回路装置において、 上記制御回路は、 上記第 2の格納 手段に格納した書き換えプログラムの特定のビットのみを読み出すように制御す るものとしたものである。
これにより、 上記第 2の格納手段の特定のビットのみを読み出して、 該特定の ビットのみを検証することにより、 上記書き換えプログラムが半導体集積回路内 に正しくダウンロードできたか否かを、 狭書き換えプログラムの機密性を保持し ながら確認することができる。
また、 本発明の請求の範囲第 5項に記載の半導体集積回路装置は、 半導体集積 回路内の演算処理ュニットにコンテンツを処理する動作をさせるためのプロダラ ムを、 書き換え可能に格納する第 2の格納手段を半導体集積回路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処理ュニッ卜にコンテン ッを処理する動作をさせるための、 書き換え用である書き換えプログラムを格納 する第 1の格納手段を用いて書き換えを行うようにした半導体集積回路装置にお いて、 上記書き換えプログラムは、 書き換え後に該プログラムの一部を実行する プログラムを含んだものであり、 上記第 2の格納手段に格納した上記書き換えプ ログラムの一部を実行するものである。
これにより、 第三者に漏洩したくない機密情報である書き換えプログラムが半 導体集積回路内に正しくダウンロードできたか否かを、 該書き換えプログラムの 機密性を保持しながら確認することができる。
また、 本発明の請求の範囲第 6項に記載の半導体集積回路装置は、 請求の範囲 第 5項に記載の半導体集積回路装置において、 上記実行する書き換えプログラム の一部は、 非連続なプログラム領域を順次実行するものである。
これにより、 例えば、 上記第 2の格納手段に格納された上記書き換えプロダラ ムの先頭プログラムと最終プログラムとを実行した場合、 該書き換えプログラム が最後まで正しく格納できたかを、 該書き換えプログラムの機密性を保持しなが ら確認することができる。
また、 本発明の請求の範囲第 7項に記載の半導体集積回路装置は、 半導体集積 回路内の演算処理ュニットにコンテンツを処理する動作をさせるためのプロダラ ムを、 書き換え可能に格納する第 2の格納手段を半導体集積回路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処理ユニットにコンテン ッを処理する動作をさせるための、 書き換え用である書き換えプログラムを格納 する第 1の格納手段を用いて書き換えを行うようにした半導体集積回路装置にお いて、 上記半導体集積回路内に、 上記第 1の格納手段から上記第 2の格納手段に 転送される上記書き換えプログラムを監視する転送監視手段を備えたものである。 これにより、 第三者に漏洩したくない機密情報である書き換えプログラムが半 導体集積回路内に正しくダウンロードできたか否かを、 該書き換えプログラムの 機密性を保持しながら確認することができる。
また、 本発明の請求の範囲第 8項に記載の半導体集積回路装置は、 半導体集積 回路内の演算処理ュニットにコンテンツを処理する動作をさせるためのプロダラ ムを、 書き換え可能に格納する第 2の格納手段を半導体集積回路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処理ュニットにコンテン ッを処理する動作をさせるための、 書き換え用である書き換えプログラムを格納 する第 1の格納手段を用いて書き換えを行うようにした半導体集積回路装置にお いて、 上記書き換えプログラムは、 プログラムの正誤の判定を行うチェックプロ グラムが含まれたものであり、 上記半導体集積回路内に、 上記演算処理ユニット のワークメモリと、 上記第 2の格納手段または上記ワークメモリと、 上記演算処 理ュニットのプログラム入力またはデータ入力との接続を切り替える接続切り替 え手段とを備え、 上記第 2の格納手段に格納された上記書き換えプログラムから 抽出した上記チェックプログラムを上記ワークメモリに格納し、 該ワークメモリ に格納したチェックプログラムにより、 上記演算処理ユニットを動作させ、 上記 書き換えプログラムの正誤チェックを行うものである。
これにより、 接続切り換え手段にて演算処理ュニットのプログラム入力または データ入力を切り替えて、 上記書き換えプログラムのデータを取り込んで、 例え ば該書き換えプログラムデ一夕のチェックサムなどをとつて、 予め決めておいた 値と比較することが可能になるので、 第三者に漏洩したくない機密情報である書 き換えプログラムが半導体集積回路内に正しくダウンロードできたか否かを、 該 書き換えプログラムの機密を保持しながら確認することができる。
また、 本発明の請求の範囲第 9項に記載の半導体集積回路装置は、 請求の範囲 第 8項に記載の半導体集積回路装置において、 上記第 2の格納手段は、 上記書き 換えプログラムを格納するとともに、 該書き換えプログラムのうち、 ある決めら れたかたまりから所定の法則に従い一意に得られるデータを格納するものとした ものである。
これにより、 第三者に漏洩したくない機密情報である書き換えプログラムが半 導体集積回路内に正しくダウンロードできたか否かを、 該書き換えプログラムの 機密性を保持しながら確認することができるとともに、 上記第 2の格納手段に正 しく格納できなかった場合、 正しく格納できていない場所の情報を得ることがで きる。
また、 本発明の請求の範囲第 1 0項に記載の半導体集積回路装置は、 請求の範 囲第 9項に記載の半導体集積回路装置において、 上記一意に得られるデ一夕を、 上記プログラムの正誤チェックをするためのチェックコードとして使用するもの である。
これにより、 第三者に漏洩したくない機密情報である書き換えプログラムが半 導体集積回路内に正しくダウンロードできたか否かを、 該書き換えプログラムの 機密性を保持しながら確認することができるとともに、 上記第 2の格納手段に正 しく格納できなかった場合、 正しく格納できていない場所の情報を得ることがで きる。
また、 本発明の請求の範囲第 1 1項に記載の半導体集積回路装置は、 請求の範 囲第 8項に記載の半導体集積回路装置において、 上記第 2の格納手段は、 その構 成を、 上記書き換えプログラムが格納されていない領域を順次 2分割した構成と し、 該 2分割した各々の領域に同じプログラムデ一夕を格納するものであり、 上 記チェックプログラムは、 上記 2分割した両領域の各々に格納された同じプログ ラムデータを比較して正誤を判定するプログラムと、 前回の判定結果が正しいと 判定されたときに、 前回 2分割した領域の一方の領域を、 プログラムが格納され ていない領域としてさらに 2分割し、 該分割した領域の各々に同じプログラムデ 一夕を格納する動作を繰り返すプログラムとを有し、 上記第 2の格納手段に格納 すべきプログラムすべてを順次格納するものである。
これにより、 第三者に漏洩したくない機密情報である書き換えプログラムが半 導体集積回路内に正しくダウンロードできたか否かを、 該書き換えプログラムの 機密性を保持しながら確認することができるとともに、 上記第 2の格納手段に正 しく格納できなかった場合、 正しく格納できていない場所の情報を得ることがで きる。
また、 本発明の請求の範囲第 1 2項に記載の半導体集積回路装置は、 請求の範 囲第 1 1項に記載の半導体集積回路装置において、 上記第 2の格納手段は、 該第 2の格納手段の上記書き換えプログラムが格納されていない領域を順次 2分割し た各々の領域に、 上記書き換えプログラムデータと、 該プログラムデ一夕から所 定の法則に従い一意に得られるデータとを格納するものとしたものである。
これにより、 例えば、 第 2の格納手段の前段に復号化回路を備えて、 該復号化 回路の不具合により出力が固定値になり、 排他的論理和をとつてもデータが一致 し、 上記第 2の格納手段に格納した書き換えプログラムが正しく格納できたか否 かの確認が困難になる場合においても、 第 2の格納手段に格納した書き換えプロ グラムの誤りを容易に見つけ出すことができる。
また、 本発明の請求の範囲第 1 3項に記載の半導体集積回路装置は、 請求の範 囲第 1 2項に記載の半導体集積回路装置において、上記一意に得られるデ一夕が、 該プログラムデータの反転データであるものとしたものである。
これにより、 例えば、 第 2の格納手段の前段に復号化回路を備えて、 該復号化 回路の不具合により出力が固定値になり、 排他的論理和をとつてもデータが一致 し、 上記第 2の格納手段に格納した書き換えプログラムが正しく格納できたか否 かの確認が困難になる場合においても、 第 2の格納手段に格納した書き換えプロ グラムの誤りを容易に見つけ出すことができる。
また、 本発明の請求の範囲第 1 4項に記載の半導体集積回路装置は、 請求の範 囲第 8項ないし第 1 3項のいずれかに記載の半導体集積回路装置において、 上記 チェックプログラムを予め格納した R OM (Read Only Memory) を備え、 上記 R OMにより上記演算処理ュニットを動作させて、 上記書き換えプログラムの正 誤チェックを行うものである。
これにより、 上記チェックプログラムの転送誤り等により、 チェックプロダラ ムが機能しなくなるのを防ぎ、 上記第 2の格納手段に上記書き換えプログラムが 正しく格納できたか否かを確認するチェックプログラムを安定的に提供すること ができる効果がある。
また、 本発明の請求の範囲第 1 5項に記載の半導体集積回路装置は、 請求の範 囲第 1項ないし第 1 4項のいずれかに記載の半導体集積回路装置において、 上記 半導体集積回路内に、 暗号化された書き換えプログラムを復号する復号ィヒ手段を 備え、 上記第 1の格納手段に格納された書き換えプログラムが予め暗号化されて いる場合、 上記復号化手段は、 該暗号化プログラムを復号化し、 上記第 2の格納 手段に復号化した上記書き換えプログラムを格納するものである。
これにより、 第三者に漏洩したくない機密情報であり、 また、 予め暗号化され ている書き換えプログラムが半導体集積回路内に正しくダウンロードできたか否 かを、 該書き換えプログラムの機密性を保持しながら確認することができる。 また、 本発明の請求の範囲第 1 6項に記載の半導体集積回路装置は、 半導体集 積回路内の演算処理ュニットにコンテンツを処理する動作をさせるためのプログ ラムを、 書き換え可能に格納する第 2の格納手段を半導体集積回路内に有し、 該 第 2の格納手段に格納されたプログラムに対し、 上記演算処理ユニットにコンテ ンッを処理する動作をさせるための、 書き換え用である、 予め暗号化された書き 換えプログラムを格納する第 1の格納手段を用いて書き換えを行うようにした半 導体集積回路装置において、 上記半導体集積回路内に、 上記第 1の格納手段から の上記暗号化された書き換えプログラムを復号化し、 該復号化した書き換えプロ グラムを上記第 2の格納手段に転送する復号化手段と、 上記第 2の格納手段に格 納した書き換えプログラムを再度暗号化する暗号化手段とを備え、 上記暗号化手 段で暗号化された書き換えプログラムと上記第 1の格納手段に保持している暗号 化された書き換えプログラムとを比較するものである。
これにより、 第三者に漏洩したくない機密情報であり、 また、 予め暗号化され ている書き換えプログラムが半導体集積回路内に正しくダウン口一ドできたか否 かを、 該書き換えプログラムの機密性を保持しながら確認することができる。 また、 本発明の請求の範囲第 1 7項に記載の半導体集積回路装置は、 請求の範 囲第 1 1項ないし第 1 3項、 及び第 1 6項のいずれかに記載の半導体集積回路装 置において、 上記第 2の格納手段にデータが正しく格納されていない場合、 不良 箇所を検出し、 上記第 1の格納手段に保持した書き換えプログラムを修正可能と したものである。
これにより、 第 2の格納手段において正しく格納できなかった箇所を使用しな いように書き換えプログラムを修正して書き込むので、 メモリを有効に活用する ことができる。 また、 本発明の請求の範囲第 1 8項に記載の半導体集積回路装置は、 請求の範 囲第 1項ないし第 1 7項のいずれかに記載の半導体集積回路装置において、 当該 半導体集積回路装置外部に保持した書き換えプログラムを、 上記半導体集積回路 内にダウンロード可能としたものである。
これにより、 書き換えプログラムを半導体集積回路装置外部に有する場合にお いても、 ネットワーク等の通信手段を用いてダウン口一ドでき、 第三者に漏洩し たくない機密情報である書き換えプログラムが正しく格納できたか否かを、 機密 性を保持しながら確認することができる。
また、 本発明の請求の範囲第 1 9項に記載のデータ記憶検証装置は、 任意のデ 一夕を外部からアクセス可能な領域に記憶させる手段と、 前記任意のデータを外 部に出力し、 正しく記憶されたか否かを判定する手段と、 正しく記憶されたと判 定された場合は、 機密データを外部からアクセス不可能な領域に記憶させる手段 とを備えた、 ことを特徴とするものである。
これにより、 例えばダミーデータなどを、 上記外部からアクセス可能な領域に 書き込んで、該書き込んだダミーデ一夕を読み出してチェックをすることにより、 外部からアクセス不可能な領域に正しく上記機密デ一夕が格納されたかどうかを、 該機密データの機密性を保持しながら確認することができる。
また、 本発明の請求の範囲第 2 0項に記載のデ一夕記憶検証装置は、 機密デ一 夕を外部からアクセス不可能な領域に記憶させる手段と、 前記機密データの特定 部分を外部に出力する手段とを備えた、 ことを特徴とするものである。
これにより、 外部からアクセス不可能な領域に格納された機密データの特定部 分のみを読み出して、 該特定部分を検証することにより、 上記機密データが正し くダウン口一ドできたか否かを、 該機密データの機密性を保持しながら確認する ことができる。
また、 本発明の請求の範囲第 2 1項に記載のデータ記憶検証装置は、 プロダラ ムを含んだ機密データを外部からアクセス不可能な領域に記憶させる手段と、 前 記記憶されたプログラムを実行させ、 結果を外部に出力する手段とを備えた、 こ とを特徴とするものである。
これにより、 外部からアクセス不可能な領域に格納された機密データに含まれ ているプログラムを実行し、 その実行結果を外部に出力して、 該実行結果を検証 することにより、 上記機密デ一夕が正しくダウンロードできたか否かを、 該機密 データの機密性を保持しながら確認することができる。
また、 本発明の請求の範囲第 2 2項に記載のデータ記憶検証装置は、 検査プロ グラムと機密プログラムとを含む機密データを外部からアクセス不可能な領域に 記憶させる第 1の手段と、 前記検査プログラムを実行させ、 結果を外部に出力す る第 2の手段と、 前記第 2の手段の終了後、 前記機密プログラムを実行させる第 3の手段とを備えた、 ことを特徴とするものである。
これにより、 外部からアクセス不可能な領域に格納された機密データに含まれ ているプログラムを実行し、 その実行結果を外部に出力して、 該実行結果を検証 することにより、 上記機密データが正しくダウンロードできたか否かを、 該機密 デ一夕の機密性を保持しながらより確実に確認することができる。
また、 本発明の請求の範囲第 2 3項に記載のデータ記憶検証装置は、 機密デー 夕を外部からアクセス不可能な領域に記憶させる手段と、 前記記憶させると同時 に前記機密データを用いて所定の演算を行う手段と、 前記演算の結果を外部に出 力する手段とを備えた、 ことを特徴とするものである。
これにより、機密データを外部からアクセス不可能な領域に格納するとともに、 その機密データを用いて所定の演算を行い、 その演算結果を外部に出力して、 該 演算結果を検証することにより、 上記機密デ一夕が正しくダウンロードできたか 否かを、 該機密データの機密性を保持しながら確認することができる。
また、 本発明の請求の範囲第 2 4項に記載のデータ記憶検証装置は、 機密デー 夕を外部からアクセス不可能な第 1の領域に記憶させる第 4の手段と、 機密デー 夕の一部であり、 前記第 1の領域に記憶されている検査プログラムを第 2の領域 に記憶させる第 5の手段と、 前記第 2の領域に記憶されている検査プログラムを 実行して、 前記第 1の領域の機密データの正当性を検査する第 6の手段とを備え た、 ことを特徴とするものである。
これにより、 機密データを外部からアクセス不可能な第 1の領域に格納すると ともに、 その機密データの一部である検査プログラムを第 2の領域に格納し、 こ の検査プログラムを用いて検査を行い、 その検査結果を外部に出力して、 第 1の 領域の機密データの正当性を検証することにより、 上記機密データが正しくダウ ンロードできたか否かを、 該機密データの機密性を保持しながら確認することが できる。
また、 本発明の請求の範囲第 2 5項に記載のデータ記憶検証装置は、 請求項 2 4記載のデータ記憶検証装置において、 前記第 6の手段の終了後に前記第 1の領 域の命令に制御を移す第 7の手段をさらに備えた、ことを特徴とするものである。 これにより、 前記機密データが正しくダウンロードできたか否かを、 該機密デ 一夕の機密性を保持しながら確認した後に、 本来の機密データに含まれる命令の 実行に移ることができる。
また、 本発明の請求の範囲第 2 6項に記載のデータ記憶検証装置は、 請求項 2 4記載のデ一夕記憶検証装置において、 前記第 5の手段は、 前記第 1の領域に記 憶されている機密データ内に存在する命令により前記検査プログラムの記憶を実 行する、 ことを特徴とするものである。
これにより、 前記機密データが正しくダウンロードできたか否かを、 該機密デ —夕の機密性を保持しながら確認するための検査プログラムの格納を、 機密デ一 夕内に存在する命令により行うことができる。
また、 本発明の請求の範囲第 2 7項に記載のデータ記憶検証装置は、 請求項 2 4記載のデ一タ記憶検証装置において、 前記第 5の手段は、 第 3の領域に前記第 4の手段による記憶の実行以前に記憶された命令により前記検査プログラムの記 憶を実行する、 ことを特徴とするものである。
これにより、 前記機密データが正しくダウンロードできたか否かを、 該機密デ —夕の機密性を保持しながら確認するための検査プログラムの格納を、 機密デー 夕を格納するより前に格納した命令により行うことができる。
また、 本発明の請求の範囲第 2 8項に記載のデータ記憶検証装置は、 機密デー タを復号する手段と、 前記復号されたデータを外部からアクセス不可能な領域に 記' I意させる手段と、 前記記憶されたデータを暗号化する手段と、 前記暗号化され たデータと前記機密データとを比較して前記記憶されたデータが正しく記憶され たか否かを判定する手段とを備えた、 ことを特徴とするものである。
これにより、 いったん復号して外部からアクセス不可能な領域に格納した機密 データを暗号化して、 予め暗号化されている元の機密データと比較することで、 前記機密デ一夕が正しくダウンロードできたか否かを、 該機密データの機密性を 保持しながら確認することができる。
また、 本発明の請求の範囲第 2 9項に記載のデ一夕記憶検証装置は、 機密プロ グラムを外部からアクセス不可能な領域に記憶させる手段と、 前記記憶されたプ ログラムを読み出す手段と、 前記読み出されたプログラムを命令単位で正当性を 判定する手段と、 正当でないと判定された場合は、 正当な命令を再度前記外部か らアクセス不可能な領域において空いている領域に記憶させる手段と、 前記再度 記憶された命令の次の命令を正当でないと判定されたアドレスの次のアドレスに ジャンプする命令を記憶させる手段と、 正当でないと判定された領域には、 前記 再度記憶された命令のアドレスにジャンプする命令を記憶させる手段とを備えた、 ことを特徴とするものである。
これにより、 機密プログラムを外部からアクセス不可能な領域に格納し、 その 格納したプログラムを読み出し命令単位で正当性を判定し、 正当でないと判定さ れた命令に対しては外部からアクセス不可能な領域の空き領域に格納した正当な 命令にジャンプすることにより、 機密プログラムを格納する際にその一部に正し く格納できていない命令が含まれていても、 空き領域に格納した正しい命令に置 換してこれを実行することができる。
また、 本発明の請求の範囲第 3 0項に記載のデータ記憶検証方法は、 任意のデ 一夕を外部からアクセス可能な領域に記憶させる工程と、 前記任意のデータを外 部に出力し、 正しく記憶されたか否かを判定する工程と、 正しく記憶されたと判 定された場合は、 機密データを外部からアクセス不可能な領域に記憶させる工程 とを含む、 ことを特徴とするものである。
これにより、 例えばダミーデータなどを、 前記外部からアクセス可能な領域に 書き込んで、該書き込んだダミ一データを読み出してチェックをすることにより、 外部からアクセス不可能な領域に正しく前記機密データが格納されたかどうかを、 該機密データの機密性を保持しながら確認することができる。
また、 本発明の請求の範囲第 3 1項に記載のデータ記憶検証方法は、 機密デー 夕を外部からアクセス不可能な領域に記憶させる工程と、 前記機密デ一夕の特定 部分を外部に出力する工程とを含む、 ことを特徴とするものである。
これにより、 外部からアクセス不可能な領域に格納された機密データの特定部 分のみを読み出して、 該特定部分を検証することにより、 前記機密デ一夕が正し くダウン口一ドできたか否かを、 該機密データの機密性を保持しながら確認する ことができる。
また、 本発明の請求の範囲第 3 2項に記載のデータ記憶検証方法は、 プロダラ ムを含んだ機密デ一夕を外部からアクセス不可能な領域に記憶させる工程と、 前 記記憶されたプログラムを実行させ、 結果を外部に出力する工程とを含む、 こと を特徴とするものである。
これにより、 外部からアクセス不可能な領域に格納された機密データに含まれ ているプログラムを実行し、 その実行結果を外部に出力して、 該実行結果を検証 することにより、 前記機密データが正しくダウンロードできたか否かを、 該機密 データの機密性を保持しながら確認することができる。
また、 本発明の請求の範囲第 3 3項に記載のデータ記憶検証方法は、 検査プロ グラムと機密プログラムとを含む機密データを外部からアクセス不可能な領域に 記憶させる第 1の工程と、 前記検査プログラムを実行させ、 結果を外部に出力す る第 2の工程と、 前記第 2の工程の終了後、 前記機密プログラムを実行させる第 3の工程とを含む、 ことを特徴とするものである。
これにより、 外部からアクセス不可能な領域に格納された機密データに含まれ ているプログラムを実行し、 その実行結果を外部に出力して、 該実行結果を検証 することにより、 前記機密デ一夕が正しくダウンロードできたか否かを、 該機密 データの機密性を保持しながらより確実に確認することができる。
また、 本発明の請求の範囲第 3 4項に記載のデータ記憶検証方法は、 機密デー 夕を外部からアクセス不可能な領域に記憶させる工程と、 前記記憶させると同時 に前記機密データを用いて所定の演算を行う工程と、 前記演算の結果を外部に出 力する工程とを含む、 ことを特徴とするものである。
これにより、機密データを外部からアクセス不可能な領域に格納するとともに、 その機密データを用いて所定の演算を行い、 その演算結果を外部に出力して、 該 演算結果を検証することにより、 前記機密データが正しくダウンロードできたか 否かを、 該機密データの機密性を保持しながら確認することができる。
また、 本発明の請求の範囲第 3 5項に記載のデータ記憶検証方法は、 機密デー タを外部からアクセス不可能な第 1の領域に記憶させる第 4の工程と、 機密デ一 夕の一部であり、 前記第 1の領域に記憶されている検査プログラムを第 2の領域 に記憶させる第 5の工程と、 前記第 2の領域に記憶されている検査プログラムを 実行して、前記第 1の領域の機密デ一夕の正当性を検査する第 6の工程とを含む、 ことを特徴とするものである。
これにより、 機密データを外部からアクセス不可能な第 1の領域に格納すると ともに、 その機密デ一夕の一部である検査プログラムを第 2の領域に格納し、 こ の検査プログラムを用いて検査を行い、 その検查結果を外部に出力して、 第 1の 領域の機密デ一夕の正当性を検証することにより、 前記機密データが正しくダウ ンロードできたか否かを、 該機密データの機密性を保持しながら確認することが できる。
また、 本発明の請求の範囲第 3 6項に記載のデータ記憶検証方法は、 請求項 3 5記載のデ一夕記憶検証方法において、 前記第 6の工程の終了後に前記第 1の領 域の命令に制御を移す第 7の工程をさらに含む、 ことを特徴とするものである。 これにより、 前記機密データが正しくダウンロードできたか否かを、 該機密デ 一夕の機密性を保持しながら確認した後に、 本来の機密デ一夕に含まれる命令の 実行に移ることができる。
また、 本発明の請求の範囲第 3 7項に記載のデータ記憶検証方法は、 請求項 3 5記載のデータ記憶検証方法において、 前記第 5の工程は、 前記第 1の領域に記 憶されている機密データ内に存在する命令により前記検査プログラムの記憶を実 行する、 ことを特徵とするものである。
これにより、 前記機密データが正しくダウン口一ドできたか否かを、 該機密デ 一夕の機密性を保持しながら確認するための検査プログラムの格納を、 機密デー 夕内に存在する命令により行うことができる。
また、 本発明の請求の範囲第 3 8項に記載のデータ記憶検証方法は、 請求項 3 5記載のデータ記憶検証方法において、 前記第 5の工程は、 前記第 3の領域に前 記第 4の工程による記憶の実行以前に記憶された命令により前記検査プログラム の記憶を実行する、 ことを特徴とするものである。
これにより、 前記機密データが正しくダウンロードできたか否かを、 該機密デ 一夕の機密性を保持しながら確認するための検査プログラムの格納を、 機密デー 夕を格納するより前に格納した命令により行うことができる。
また、 本発明の請求の範囲第 3 9項に記載のデ一夕記憶検証方法は、 機密デ一 タを復号する工程と、 前記復号されたデータを外部からアクセス不可能な領域に 記憶させる工程と、 前記記憶されたデータを暗号化する工程と、 前記暗号化され たデータと前記機密データとを比較して前記記憶されたデータが正しく記憶され たか否かを判定する工程とを含む、 ことを特徴とするものである。
これにより、 いったん復号して外部からアクセス不可能な領域に格納した機密 データを暗号化して、 予め暗号化されている元の機密データと比較することで、 前記機密データが正しくダウン口一ドできたか否かを、 該機密データの機密性を 保持しながら確認することができる。
また、 本発明の請求の範囲第 4 0項に記載のデータ記憶検証方法は、 機密プロ グラムを外部からアクセス不可能な領域に記憶させる工程と、 前記記憶されたプ ログラムを読み出す工程と、 前記読み出されたプログラムを命令単位で正当性を 判定する工程と、 正当でないと判定された場合は、 正当な命令を再度前記外部か らアクセス不可能な領域において空いている領域に記憶させる工程と、 前記再度 記憶された命令の次の命令を正当でないと判定されたァドレスの次のァドレスに ジャンプする命令を記憶させる工程と、 正当でないと判定された領域には、 前記 再度記憶された命令のアドレスにジャンプする命令を記憶させる工程とを含む、 ことを特徴とするものである。
これにより、 機密プログラムを外部からアクセス不可能な領域に格納し、 その 格納したプログラムを読み出し命令単位で正当性を判定し、 正当でないと判定さ れた命令に対しては外部からアクセス不可能な領域の空き領域に格納した正当な 命令にジャンプすることにより、 機密プログラムを格納する際にその一部に正し く格納できていない命令が含まれていても、 空き領域に格納した正しい命令に置 換してこれを実行することができる。 図面の簡単な説明
第 1図は、 本発明の実施の形態 1における半導体集積回路装置を示す図 第 2図は、 本発明の実施の形態 1における半導体集積回路装置の動作を示すフ 口一チヤ一卜
第 3図は、 本発明の実施の形態 2における半導体集積回路装置を示す図 第 4図は、 本発明の実施の形態 2における半導体集積回路装置の動作を示すフ ローチヤ—卜
第 5図は、 本発明の実施の形態 3における半導体集積回路装置を示す図 第 6図は、 本発明の実施の形態 3における半導体集積回路装置を示す図 第 7図は、 本発明の実施の形態 3における半導体集積回路の実行プログラムの 一例を示す図
第 8図は、 本発明の実施の形態 4における半導体集積回路装置を示す図 第 9図は、 本発明の実施の形態 5における半導体集積回路装置を示すブロック 構成図
第 1 0図は、 本発明の実施の形態 5における半導体集積回路装置の RAM (第 2の格納手段) の構成の一例を示す構成図
第 1 1図は、 本発明の実施の形態 6における半導体集積回路装置を示すブロッ ク構成図
第 1 2図は、 本発明の実施の形態 6における半導体集積回路装置の RAM (第 2の格納手段) 1 1 0 6の構成の一例を示す図
第 1 3図は、 本発明の実施の形態 6におけるメモリ 1 1 0 2内のデ一夕配置を 示す概念図
第 1 4図は、 本発明の実施の形態 7における半導体集積回路装置を示すプロッ ク構成図
第 1 5図は、 本発明の実施の形態 8における半導体集積回路装置を示すプロッ ク構成図
第 1 6図は、 本発明の実施の形態 8における半導体集積回路装置の動作を示す フローチヤ一卜
第 1 7図は、 本発明の実施の形態 8における半導体集積回路装置のプログラム の修正を行う一例を示した図 発明を実施するための最良の形態
以下、 本発明の実施の形態について、 図を用いて説明する。
(実施の形態 1 )
第 1図は、 本発明の実施の形態 1に係る半導体集積回路装置を示す図であり、 暗号化された書き換えプログラムをダウンロードする例を示す。
図において、 1 0 0は、 暗号化された書き換えプログラムをダウンロードして なる半導体集積回路装置であり、 例えば 1 0 5は制御用マイコン、 1 0 1はあら かじめ暗号化された書き換えプログラムが格納されているメモリ (第 1の格納手 段) である。 半導体集積回路 1 0 9は、 暗号化された書き換えプログラムを復号 化するための復号化回路 (復号化手段) 1 0 2と、 書き換え可能な RAM (第 2 の格納手段) 1 0 8と、 復号化されたプログラムの制御手順に従って動作し、 コ ンテンッデータ 1 0 7の処理を行う演算処理回路 (演算処理ュニット) 1 0 6と から構成される。 なお、 書き換えプログラムは例えばこれを変更することで演算 処理回路 1 0 6に異なる機能を実現させるものである。
また、 本発明の実施の形態 1に係る半導体集積回路装置において、 書き換え可 能な RAM I 0 8は、 半導体集積回路 1 0 9の外部から読み出し可能な外部読出 し可能領域 1 0 3と、 半導体集積回路 1 0 9の外部から読み出し不可能な外部読 出し不可能領域 1 0 4とから構成される。 この外部読出し不可能領域 1 0 4は、 例えば、 外部からのアドレスバスは外部読出し可能領域 1 0 3と同様外部読出し 不可能領域 1 0 4に接続するが、 外部にデータを読み出す場合はデータバスは外 部読出し不可能領域 1 0 4には接続しないスィッチを設けること等で実現できる。 以上のように構成された半導体集積回路装置 1 0 0について、 第 2図のフロー チャートを用いてその動作を説明する。
制御用マイコン 1 0 5の制御にしたがい、 暗号化されていないデータを書き換 え可能な RAM 1 0 8の外部読出し可能領域 1 0 3に入力する (ステップ S 2 0 1 )。次に、外部読出し可能領域 1 0 3に入力したデータが正しいかを半導体集積 回路 1 0 9外部に読み出して制御用マイコン 1 0 5等でチェックする (ステップ S 2 0 2 ) oステップ S 2 0 2でチェックした結果が正しい場合は、制御用マイコ ン 1 0 5の制御にしたがいメモリ 1 0 1の暗号化された書き換えプログラムを復 号化回路 1 0 2に入力し(ステップ S 2 0 3 )、復号化回路 1 0 2は、暗号化され た書き換えプログラムを復号する (ステップ S 2 0 4 )。次に、 ステップ S 2 0 4 で復号化された書き換えプログラムを書き換え可能な RAM I 0 8の外部読出し 不可能領域 1 0 4に入力する (ステップ S 2 0 5 )。以上の処理により、第三者に 漏洩したくない書き換えプログラムの機密性を保ちながら、 該書き換えプロダラ ムが正しく格納されているか否かをチェックすることができる。
これは、 上述のように暗号化されていないデータを外部から書き込み正しく読 み出せたことは、これらを実行する回路に故障が生じていないと考えられるので、 書き換えプログラムを外部読出し不可能領域 1 0 4に格納する際にもこれを支障 なく行えていると考えられるからである。
なお、 書き換え可能な RAM I 0 9の外部読出し可能領域 1 0 3に格納するデ —夕は、 半導体集積回路装置の内部、 及び外部のどちらに用意してもよく、 チェ ック用のデータであればよい。
以上のような、 本発明の実施の形態 1に係る半導体集積回路装置は、 第三者に 漏洩したくない機密情報である書き換えプログラムを書き換え可能な RAM 1 0 8に入力する場合に、 該 RAM I 0 8に設けた外部読出し可能領域 1 0 3、 及び 外部読出し不可能領域 1 0 4のうち、 外部読み出し可能領域 1 0 3にチェック用 のデ一夕を格納し、 該デ一夕のチェックの結果が正しいと判定された後、 外部読 出し不可能領域 1 0 4に該機密情報のプログラムを格納することにより、 第三者 に漏洩したくない機密情報である書き換えプログラムを格納した RAM I 0 8の 製造上の欠陥、 及び入力するまでの経路のチェックをすることができる。
(実施の形態 2 )
本発明の実施の形態 2に係る半導体集積回路装置は、 第三者に漏洩したくない 機密情報である書き換えプログラムの機密性を保ちながら、 該書き換えプロダラ ムが半導体集積回路内の書き換え可能な RAMに正しく格納されているかを確認 するために、 格納した書き換えプログラムの特定部分のみを半導体集積回路に読 み出すように制御する制御回路を備えたものである。 第 3図は、 本発明の実施の形態 2に係る半導体集積回路装置を示す図であり、 暗号化された書き換えプログラムをダウンロードする例を示す。
図において、 3 0 0は、 暗号化された書き換えプログラムをダウン口一ドして なる半導体集積回路装置であり、 3 0 1は制御用マイコン、 3 0 3はあらかじめ 暗号化された書き換えプログラムを格納しているメモリ (第 1の格納手段) であ る。 半導体集積回路 3 0 8は、 暗号ィ匕された書き換えプログラムを復号化するた めの復号化回路 (復号化手段) 3 0 2と、 復号化回路 3 0 2で復号した書き換え プログラムを格納するための書き換え可能な RAM (第 2の格納手段) 3 0 4と、 復号化されたプログラムの制御手順に従って動作し、 コンテンツデータ 3 0 7の 処理を行う演算処理回路 (演算処理ユニット) 3 0 5と、 RAM 3 0 4に格納さ れた書き換えプログラムのうち特定アドレスのみ出力するように制御する制御回 路 3 0 6とから構成される。 制御回路 3 0 6は RAM 3 0 4の特定のアドレスの みを外部に読み出す機能を有する。
次に、 以上のように構成された半導体集積回路装置 3 0 0について、 第 4図の フローチャートを用いて動作を説明する。
暗号化された書き換えプログラムを格納するメモリ 3 0 3からの該書き換えプ ログラムを復号化回路 3 0 2で復号し(ステップ S 4 0 1 )、該復号化した書き換 えプログラムを RAM 3 0 4に入力する (ステップ S 4 0 2 )。次に、制御回路 3 0 6力 ^ら、 RAM 3 0 4に格納されている書き換えプログラムの特定アドレスの 読み出しを行い(ステップ S 4 0 3 )、該特定アドレスのプログラムを半導体集積 回路 3 0 8外部に読み出してチェックする (ステップ S 4 0 4 )。
以上のような本発明の実施の形態 2に係る半導体集積回路装置は、 書き換えプ ログラムを RAM 3 0 4に格納した後、 特定のアドレスのみを半導体集積回路外 部に読み出すように制御する制御回路を備え、 該読み出された特定ァドレスをチ エックすることにより、 第三者に漏洩したくない機密情報である書き換えプログ ラムが RAM 3 0 4に正しく格納されたかどうかを、 該書き換えプログラムの機 密性を保持しながら判断することができる。
これは、 外部に読み出したのが特定アドレスであっても、 それが正しい値であ れば、書き換えプログラム全体が正しく格納されていると考えられるからである。 なお、 本実施の形態 2では特定アドレスのみを読み出し可能としたが、 特定ビ ットのみを半導体集積回路外部に読み出すように制御し、 該読み出した特定ビッ トをチェックしても、 書き換えプログラムが RAMに格納されたかどうか判断す ることができる。
(実施の形態 3 )
本発明の実施の形態 3に係る半導体集積回路装置は、 第三者に漏洩したくない 機密情報の書き換えプログラムが半導体集積回路内の書き換え可能な RAMに正 しく格納されているかを判断するために、 該半導体集積回路の RAMに格納した 書き換えプログラムの一部を実行するものである。
第 5図は、 本発明の実施の形態 3に係る半導体集積回路装置を示す図であり、 暗号ィ匕された書き換えプログラムをダウンロードする例を示す。
図において、 5 0 0は、 暗号ィ匕された書き換えプログラムをダウンロードして ' なる半導体集積回路装置であって、 5 0 1は制御用マイコン、 5 0 3は、 あらか じめ暗号化された書き換えプログラムを格納しているメモリ (第 1の格納手段) である。 半導体集積回路 5 0 7は、 暗号化された書き換えプログラムを復号化す るための復号化回路 (復号化手段) 5 0 2と、 復号化回路 5 0 2で復号化された 書き換えプログラムを格納するための書き換え可能な RAM (第 2の格納手段) 5 0 4と、 復号化されたプログラムの制御手順に従って動作し、 コンテンツデー 夕 5 0 6の処理を行う演算処理回路 (演算処理ュニット) 5 0 5とから構成され る。
本実施の形態 3において、 上記あらかじめ暗号化された書き換えプログラムに は、 ダウンロード後に該書き換えプログラムの一部を実行するプログラム (チェ ックプログラム) が含まれているものとする。 また、 チェックプログラムは復号 化の際に書換えプログラムに揷入されてもよい。
次に、 以上のように構成された半導体集積回路 5 0 0について、 第 6図のフロ —チャートを用いてその動作を説明する。
メモリ 5 0 3からの暗号化した書き換えプログラムを復号化回路 5 0 2で復号 し(ステップ S 6 0 1 )、該復号した書き換えプログラムを RAM 5 0 4に入力す る (ステップ S 6 0 2 )。次に、 RAM 5 0 4に格納した書き換えプログラムの一 部を実行させ(ステップ S 6 0 3 )、正しいか否かが判断されたら、半導体集積回 路 5 0 7外部に正しいか否かを通知する信号を出力する (ステップ S 6 0 4 )。 このとき、 実行するプログラムの内容を例えばメモリチェックなどのプロダラ ムにし、 該メモリチェックを実行させ、 そのチェックの結果が得られたならば、 RAM 5 0 4に正しくプログラムが格納されているかの判断をより確実に行える。 また、 第 7図のように、 実行するプログラムの内容を、 J UM P命令などを実 行して非連続領域のプログラムを実行するプログラムにし、 例えば、 先頭プログ ラムでメモリチェックのプログラムのアドレス X Xに J UM Pする命令を実行す るとする。 そして、 先頭プログラムからメモリチェックのプログラムのアドレス X Xに J UM Pして、 メモリチェックを行うようにすることにより、 R AM 5 0 4に正しくプログラムが格納されているかの判断をより確実に行える。 また、 先 頭プログラムで最終プログラムのアドレス YYに J UMPする命令を実行すると する。そして先頭プログラムから最終プログラムのァドレス YYに J UM Pして、 該最終プログラムは、 該最終プログラムを実行後にアドレス 0 1に戻るようなプ ログラムにして、 その結果、 プログラムが正しく実行されたことを確認すること により、 書き換えプログラムが RAMの最後まで書きこまれているかどうかを判 断することができ、 特に、 復号化を 1つでも間違うと後段のデータに影響を及ぼ す暗号化方式においては、 書き換えプログラムが正しく格納されているかをより 一層確実に判断できる。
以上のような本発明の実施の形態 3に係る半導体集積回路装置は、 書き換えプ ログラムを RAM 5 0 4に格納した後、 該書き換えプログラムの一部を実行し、 正しく実行できた場合に信号を出力することによって、 書き換えプログラムが R AMに正しく格納できたかどうかを判断することができる。
また、 書き換えプログラムを格納した RAM 5 0 4から、 非連続なプログラム 領域を順次実行することにより、 書き換えプログラムが最後まで RAMに正しく 格納されたかを確認することが可能になり、 RAMに格納した書き換えプロダラ ムの正誤チェックを、 より確実に行うことができる。
(実施の形態 4 )
本発明の実施の形態 4に係る半導体集積回路装置は、 第三者に漏洩したくない 機密情報である書き換えプログラムが半導体集積回路内に正しく格納されている かを確認するために、 半導体集積回路内の RAMに書き換えプログラムを書き込 む際に、 転送データを監視する転送監視回路を備え、 転送されるデータ単位ごと の算術和をとつて結果を保持し、チェックサムなどをとるようにしたものである。 第 8図は、 本発明の実施の形態 4に係る半導体集積回路装置を示す図であり、 暗号化された書き換えプログラムを半導体集積回路内に格納する例を示す。
図において、 8 0 1は、 暗号ィ匕された書き換えプログラムをダウン口一ドして なる半導体集積回路装置であって、 8 0 2はあらかじめ暗号化された書き換えプ ログラムが格納されているメモリ (第 1の格納手段) であり、 8 0 3は制御用の マイコンである。 半導体集積回路 8 1 0は、 暗号化された書き換えプログラムを 復号化するための復号化回路 (復号化手段) 8 0 5と、 復号化回路 8 0 5で復号 化された書き換えプログラムを格納するための RAM (第 2の格納手段) 8 0 6 と、 復号化されたプログラムの制御手順に従って動作し、 コンテンツデ一タ 8 0 7の処理を行う演算処理回路 (演算処理ュニッ卜) 8 0 8と、 復号化回路 8 0 5 から転送されるデ一夕単位ごとの算術和をとる転送監視回路 (転送監視手段) 8 0 9とから構成される。
次に、 本発明の実施の形態 4に係る半導体集積回路装置の動作を説明する。 以上のように構成された半導体集積回路装置 8 0 1において、 あらかじめ暗号 化されメモリ 8 0 2に格納された書き換えプログラムを、 制御用マイコン 8 0 3 の制御のもと、 復号化回路 8 0 5をとおして復号しながら RAM 8 0 6に格納す る。 この時、 同時に、 デ一夕転送用のデータパスの一部である復号化回路 8 0 5 から RAM 8 0 6への信号線を転送監視回路 8 0 9が常に監視し、 転送されるデ —タ単位ごとの算術和をとつて結果を保持していく。 そして、 メモリ 8 0 2に格 納されたデ一夕のうちあらかじめ決められたデ一夕量の転送が終了した時点で、 転送監視回路 8 0 9に保持されている算術和のデータを読み出し、 制御用マイコ ン 8 0 3において、 あらかじめ計算しておいた正しく転送がおこなわれたときの データの算術和と比較し、 同じ値であれば転送が正しくおこなわれたと判断し、 その後、 本来実行すべき処理を行う。 もし、 この両者の値が異なっていれば、 正 しく転送がおこなわれなかったと判断し、 メモリ 8 0 2に入っているデータを再 度転送し直すなど、 しかるべき処置を施す。
以上のような本発明の実施の形態 4に係る半導体集積回路装置は、 書き換える ための書き換えプログラムの転送データを監視し、 転送されるデータ単位ごとの 算術和をとる転送監視回路を備え、 該転送監視回路でとった算術和と、 あらかじ め計算しておいた正しく転送が行われたときのデータの算術和とを比較するので、 第三者に漏洩したくない機密情報である書き換えプログラムを読み出すことなく、 正しくダウン口一ドされたか否かを判断することができる。
なお、 本実施の形態 4では、 データ転送監視回路を用いてチェックサムをとる 例を説明したが、 チェックサムの代わりに C R Cチェック回路、 E C Cチェック 回路など、 データのあるかたまり単位でビット誤りがあるか否かが判定できるも のであれば同様の効果を得ることができ、 特にこの監視方式を限定するものでは ない。
(実施の形態 5 )
本発明の実施の形態 5に係る半導体集積回路装置は、 第三者に漏洩したくない 機密情報である書き換えプログラムが、 半導体集積回路に正しく格納されている か否かを確認するために、 演算処理回路のワークメモリから該演算処理回路を動 作させることと、 RAMに格納されたプログラムデータを演算処理回路に入力さ せることとを可能にし、 演算処理回路にて、 チェックサムなどをとるようにした ものである。
第 9図は、 本発明の実施の形態 5に係る半導体集積回路装置を示す図であり、 暗号化された書き換えプログラムを半導体集積回路内に格納する例を示す。
図において、 9 0 1は、 暗号化された書き換えプログラムをもつ半導体集積回 路装置であって、 9 0 2はあらかじめ暗号化された書き換えプログラムが格納さ れているメモリ (第 1の格納手段) であり、 9 0 3は制御用のマイコンである。 半導体集積回路 9 1 5は、 暗号化された書き換えプログラムを復号化するための 復号化回路 (復号化手段) 9 0 5と、 復号化回路 9 0 5で復号化された書き換え プログラムを格納するための RAM (第 2の格納手段) 9 0 6と、 復号化された プログラムの制御手順に従って動作し、 コンテンツデータ 9 0 7の処理を行う演 算処理回路 (演算処理ュニット) 9 0 8と、 演算処理回路 9 0 8のワークメモリ 9 1 1と、 RAM 9 0 6、 及びワークメモリ 9 1 1のそれぞれを、 演算処理回路 9 0 8の命令プログラムを読み込むバス 9 1 3、 及びデ一夕を入出力するバス 9 1 4に接続できるように切り替える接続切り替え回路 (接続切り替え手段) 9 1 2とから構成されている。 また、 本実施の形態 5において、 R AM 9 0 6と演算 処理回路 9 0 8の命令プログラムを読み込むバス 9 1 3とが接続され、 ヮ一クメ モリ 9 1 1とデ一夕を入出力するバス 9 1 4とが接続される形態を第 1の形態と し、 また、 R AM 9 0 6とデータを入出力するパス 9 1 4とが接続され、 ワーク メモリ 9 1 1と演算処理回路 9 0 8の命令プログラムを読み込むバス 9 1 3とが 接続される形態を第 2の形態とし、 接続切り替え回路 9 1 2は、 上記第 1、 及び 第 2の形態のいずれかの形態に切り替えるものである。 通常の状態では、 上記第 1の形態を取るものとし、 これらの構成により、 演算処理回路 9 0 8は、 自分自 身の命令プログラムを読み込むバス 9 1 3とデ一夕を読み込むバス 9 1 4とは独 立しているいわゆるハーバードアーキテクチユアを取ることができ、 より高速に コンテンツデ一夕 9 0 7に対するデ一夕処理が実行できるものである。
次に、 本発明の実施の形態 5に係る半導体集積回路装置 9 0 1の動作を説明す る。
あらかじめ暗号化されメモリ 9 0 2に格納された書き換えプログラムを制御用 マイコン 9 0 3の制御のもと、 復号化回路 9 0 5をとおして復号しながら R AM 9 0 6に格納する。 その後、 演算処理回路 9 0 8の動作を開始する。 このとき演 算処理回路 9 0 8は、 R AM 9 0 6の中の書き換えプログラムに組み込まれた実 行ステツプに応じて動作する。
また、 この RAM 9 0 6に格納された書き換えプログラムの中に、 書き換えプ ログラムが R AM 9 0 6に正しく格納できたか否かをチェックするプログラム (チェックプログラム) を予め組み込んでおく。 本実施の形態 5では、 データを 入出力するバス 9 1 4上の RAM 9 0 6のデ一夕を読み込み、 たとえばチェック サムをとつてあらかじめ決められた値と比較することにより RAM 9 0 6に格納 されているデータが正しいことを判定するようなプログラムと、 正しいと判断さ れた後に接続切り替え回路 9 1 2を第 1の形態に戻すように切り替えるプロダラ ムとの上記 2つのプログラムをマシン語データとして組み込んでおき、 さらに、 該組み込んだマシン語データを直接ワークメモリ 9 1 1に展開するプログラムと、 上記マシン語データをワークメモリに展開した後、 接続切り替え回路 9 1 2を第 2の形態に切り替えるプログラムとを書き換えプログラムの中に予め組み込んで おく。
そして、 動作を開始した後、 まず、 上記予め組み込んでおいたマシン語デ一タ を直接ワークメモリ 9 1 1に展開するプログラムにより、 上記マシン語データで ある、 上記 RAM 9 0 6に格納されたプログラムが正しいか否かを判定するため の上記 2つのプログラムがワークメモリ 9 1 1に展開される。 その後、 上記接続 切り替え回路 9 1 2を第 2の形態に切り替えるプログラムによって、 接続切り替 え回路 9 1 2を第 2の形態に切り替える。 これにより、 ワークメモリ 9 1 1と、 演算処理回路 9 0 8の命令プログラムを読み込むバス 9 1 3とが接続されるため、 演算処理回路 9 0 8はワークメモリ 9 1 1に先ほど展開した上記 2つのプロダラ ムのうち、データを入出力するバス 9 1 4上の RAM 9 0 6のデ一夕を読み込み、 たとえばチェックサムをとつてあらかじめ決められた値と比較することにより R AM 9 0 6に格納されているデータが正しいことを判定するようなプログラムを 実行する。 これにより、 RAM 9 0 6に格納されている書き換えプログラムが正 しいと判定されれば、 上記ワークメモリ 9 1 1に展開した 2つのプログラムの残 りのプログラムである、 接続切り替え回路 9 1 2を第 1の形態に戻すように切り 替えるプログラムを実行することによって、 接続切り替え回路 9 1 2は第1の形 態に切り替えられ、 以後本来実行すべきプログラムを実行する。
次に、 RAM 9 0 6を第 1 0図のような構成にした例を説明する。
この RAM 9 0 6は、 第 1 0図に示すような論理的構成をとるものである。 a 2 4 0 0、 a 2 4 0 1、 a 2 4 0 2は、 メモリアドレスを示しており、 右上がり 余斗線ハッチをつけたァドレス a 2 4 0 0で始まり、 アドレス a 2 4 0 1で終わる 空間に書き換えプログラムを格納する。 また、 アドレス a 2 4 0 1で始まり、 ァ ドレス a 2 4 0 2で終わる空間には、 上記右上がり斜線ハッチをつけたアドレス a 2 4 0 0で始まりアドレス a 2 4 0 1で終わる空間に格納されたデ一夕の、 た とえばメモリァドレスごとなどのように、 あらかじめ決められた単位ごとに対す る、 たとえばパリティフラグを格納するものとする。 そして、 RAM 9 0 6に格納する書き換えプログラムの中にあらかじめ組み込 んでおくチェックプログラムとして、 データを入出力するバス 9 1 4上の RAM 9 0 6のデ一夕を読み込み、 該読み込んだデータの中の 1のビットが奇数個ある か偶数個あるかということを数えるいわゆるパリティ演算をおこなうプログラム と、 さらに前記読み込んだデータに対応するアドレス a 2 4 0 1から a 2 4 0 2 の空間に格納されているパリティフラグの情報を読み込んだ後に、 該パリティフ ラグの情報、 及び上記パリティ演算結果の両者を比較してメモリ 2 4 0 6に格納 された書き換えが正しいか否かを判断するプログラムと、 正しいと判断された後 に接続切り替え回路 9 1 2を第 1の形態に戻すように切り替えるプログラムとの 上記 3つのプログラムをマシン語データとして組み込んでおき、 さらに、 該組み 込んだマシン語デ一夕を直接ワークメモリ 9 1 1に展開するプログラムと、 上記 マシン語データをワークメモリに展開した後、 接続切り替え回路 9 1 2を第 2の 形態に切り替えるプログラムとを予め組み込んでおく。
動作を開始した後、 まず、 上記予め組み込んでおいたマシン語データを直接ヮ ークメモリ 9 1 1に展開するプログラムにより、 上記マシン語デ一夕である、 上 記 3つのプログラムがワークメモリ 9 1 1に展開される。 その後、 上記接続切り 替え回路 9 1 2を第 2の形態に切り替えるプログラムによって、 接続切り替え回 路 9 1 2を第 2の形態に切り替える。 これにより、 ワークメモリ 9 1 1と演算処 理回路 9 0 8の命令プログラムを読み込むバス 9 1 3とが接続されるため、 演算 処理回路 9 0 8はワークメモリ 9 1 1に先ほど展開した上記 3つのプログラムの うち、 データを入出力するバス 9 1 4上のメモリのデータを読み込み、 該読み込 んだデ一夕の中の 1のビットが奇数個あるか偶数個あるかということを数えるい わゆるパリティ演算をおこなうプログラムを実行し、 次に、 前記読み込んだデー 夕に対応するアドレス a 2 4 0 1から a 2 4 0 2の空間に格納されているパリテ ィフラグの情報を読み込んだ後に、 該パリティフラグの情報、 及び上記パリティ 演算結果の両者を比較して RAM 9 0 6に格納された書き換えプログラムが正し いか否かを判断するプログラムを実行する。 これにより正しいと判断されれば、 上記ワークメモリ 9 1 1に展開した 3つのプログラムの残りのプログラムである、 接続切り替え回路 9 1 2を第 1の形態に戻すように切り替えるプログラムによつ て、 接続切り替え回路 9 1 2は第 1の状態に切り替られ、 以後本来実行すべきプ ログラムを実行する。
このように、 RAM 9 0 6を上記構成にすることにより、 RAM 9 0 6に格納 した書き換えプログラムが正しく格納されたか否かを確認することができるとと もに、 書き換えプログラムが正しく格納できていない場合、 該正しく格納できて いない場所の情報を得ることができる。
なお、 R AM 9 0 6のアドレス a 2 4 0 1から a 2 4 0 2までの空間に入れる データは、 パリティフラグに限らず、 データのあるかたまりで正しいか否かが判 定できるものであればよく、 現在よく知られているものに C R Cチェックや E C Cチェックなどがあり、 これらを使用しても同様の効果が得られる。
以上のような本発明の実施の形態 5に係る半導体集積回路装置は、 RAM 9 0 6に格納された書き換えプログラムが正しく格納されているかを確認するための チェックプログラムを演算処理回路のワークメモリ 9 1 1に展開し、 接続切り替 え回路 9 1 2を切り替えて、 ワークメモリ 9 1 1からの命令を可能にし、 該ヮー クメモリ 9 1 1からの命令を受けた演算処理回路にて、 チェックサムなどをとる ことにより、 第三者に漏洩したくない機密情報である書き換えプログラムが R A M 9 0 6に正しく格納されているか否かを、 機密性を保持しながら確認すること ができる。
なお、 本発明の実施の形態 5に係る半導体集積回路装置では、 演算処理回路で チェックサムをとる例を説明したが、 チェックサムの代わりに C R Cチェック回 路、 E C Cチェック回路など、 データのあるかたまり単位でビットに誤りがある か否かが判定できるものであれば同様の効果を得ることができる。
(実施の形態 6 )
本発明の実施の形態 6に係る半導体集積回路装置は、 第三者に漏洩したくない 機密情報である書き換えプログラムが半導体集積回路に正しく格納されたか否か の確認を安定して行うために、 RAMに格納された書き換えプログラムが正しい か否かの確認をするためのチェックプログラムを予め R〇 Mに格納して、 該 R〇 Mに格納したチェックプログラムによって、 上記書き換えプログラムの確認動作 を行うものである。 第 1 1図は、本発明の実施の形態 6に係る半導体集積回路装置を示す図であり、 暗号化された書き換えプログラムを半導体集積回路内にダウンロードする例を示 す。
図において、 1 1 0 1は暗号化された書き換えプログラムをもつ半導体集積回 路装置であって、 1 1 0 2はあらかじめ暗号化された書き換えプログラムが格納 されているメモリ (第 1の格納手段) であり、 半導体集積回路 1 1 1 6は、 制御 用のマイコン 1 1 0 3と、 暗号化された書き換えプログラムを復号化するための 復号化回路 (復号化手段) 1 1 0 5と、 復号化回路 1 1 0 5で復号化した書き換 えプログラムを格納するための RAM (第 2の格納手段) 1 1 0 6と、 復号化し たプログラムの制御手順に従って動作し、 コンテンツデータ 1 1 0 7の処理を行 う演算処理回路 (演算処理ュニット) 1 1 0 8と、 演算処理回路 1 1 0 8のヮ一 クメモリ 1 1 1 1と、 RAM I 1 0 6、及びワークメモリ 1 1 1 1のそれぞれを、 演算処理回路 1 1 0 8の命令プログラムを読み込むバス 1 1 1 3、 及びデータを 入出力するバス 1 1 1 4に接続できるように切り替える接続切り替え回路 (接続 切り替え手段) 1 1 1 2と、 演算処理回路 1 1 0 8によって実行できる RAM I 1 0 6に展開された書き換えプログラムが正しいか否かを判定するためのプログ ラム (チェックプログラム) を格納した R OM 1 1 1 5とから構成され、 R OM 1 1 1 5は、 常に演算処理回路 1 1 0 8の命令プログラムを読み込むバス 1 1 1 3に接続される。 また、 接続切り替え回路 1 1 1 2によって切り替える第 1、 及 び第 2の形態は実施の形態 5と同様なので説明を省略する。 また、 実施の形態 5 と同様、 通常の状態では、 上記第 1の形態を取るものとする。
次に、 本発明の実施の形態 6に係る半導体集積回路装置の動作を説明する。 まず最初に、 あらかじめ暗号ィ匕されメモリ 1 1 0 2に格納された書き換えプロ グラムを制御用マイコン 1 1 0 3の制御のもと、 復号化回路 1 1 0 5をとおして 復号しながら RAM I 1 0 6に格納する。 その後、 演算処理回路 1 1 0 8の動作 を開始する。 この時、 切り替え回路 1 1 1 2は、 第 1の形態になるよう接続され ているものとする。 演算処理回路 1 1 0 8は、 RAM I 1 0 6の中に展開された 書き換えプログラムの実行ステップに応じて動作する。 この書き換えプログラム の中に、 R OM 1 1 1 5の中にあるデータチェック用のプログラムに制御を移す ようなプログラムがあり、 これを実行する。 そして、 演算処理回路 1108の実 行プログラムが ROM 1115に移った後、 接続切り替え回路 1112を第 2の 形態になるように切り替える。
これにより、 RAMI 106とデータを入出力するバス 1114とが接続され るため、 演算処理回路 1108は、 ROM1115に格納されている、 RAMI 106に展開された書き換えプログラムが正しいか否かを判断するプログラムに 従い、 RAMI 106のデ一夕を読み込み、 かつ正しいかどうかの判断をする。 正しいと判断されれば、 ROM1115に組み込まれている接続切り替え回路 1112を第 1の形態に戻すように切り替えるプログラムによって、 接続切り替 え回路 1112は第 1の状態に切り替られ、 以後本来実行すべきプログラムを実 行する。
なお、 RAMI 106に格納されている書き換えプログラムが正しいか否かを 確認する方法は、 ROM1115に実装されている方式によるが、 この方式には、 たとえばチェックサムなどが用いられる。 しかしながら、 必ずしも方式を限定す るものではなく、 デ一夕のある決められた固まり単位で正しいことが判定できれ ばよいことは言うまでもない。
次に、 RAMI 106を第 12図のような構成にした場合について説明する。 第 12図は、 本発明の実施の形態 6に係る半導体集積回路装置の RAMI 10 6の例を示したものである。
図において、 a 2600、 a 2601、 a 2602, a 2603, a 2604 は、 メモリアドレスを示しており、 a 2600は RAMI 106におけるスター トアドレスを示し、 a 2604はエンドアドレスを示す。 また、 右上がり斜線ハ ツチをつけて示すように、 a 2601は RAMI 106の全容量のちょうど半分 に位置する塲所のアドレスを示している。 また、 右下がり斜線をつけて示すよう に、 a 2602はアドレス a 2601とエンドアドレス a 2604とであらわさ れた容量のちようど半分に位置する場所のァドレスを示す。 同様に、 a 2603 はアドレス a 2602とエンドアドレス a 2604とであらわされる容量のちょ うど半分に位置するアドレスを示している。
以上のような RAM 1106を用いた半導体集積回路装置 1101の動作につ いて説明する。
まず最初に、 RAMI 106のアドレス a 2600から a 2601までの部分 にメモリ 1102から復号化回路 1105を通してデータをダウンロードする。 そのあと、 アドレス a 2601から a 2604までの領域にも、 RAMI 102 に格納されている先に展開したアドレス a 2600から a2601までのデ一夕 と全く同じデータを、 これも同様に復号化しながらダウンロードする。 この後、 接続切り替え回路 1112を切り替えて RAMI 106のデータを読み出す。 こ の読み出し時に、 アドレス a 2600からとアドレス a 2601からとのそれぞ れ等距離にあるものを順次アクセスし、 得られたデータのビットごとの排他的論 理和を取る。 暗号が正しく解け、 データパスに異常がなく、 つ、 RAMI 10 6の格納域ビットに異常がなければ、 この排他的論理和の結果は、 あるデータと 同じデ一夕との排他的論理和となるため、 0になる。 したがって、 この手順を準 次繰り返し、 各排他的論理和が 0であることを確かめれば、 メモリ 1102から 復号化回路 1105を通して RAMI 106に正しく展開できているという判断 ができる。 上記手順を残り領域の 1/2ずつ繰り返し実行することで、 RAMI 106には、 演算処理回路 1108のプログラムが復号化されてダウン口一ドさ れ、 同時に、 そのデータ内容が期待どおりであることが確かめられる。
このように、 RAMI 106を上記構成にすることにより、 何らかの不具合の ために、 上記手順のお他的論理和が 0とならない場合には、 RAMI 106に格 納されているデータに不具合があると判断できるとともに、 不具合発生アドレス も知ることができる。
なお、 メモリ 1102から RAM 1106に展開するデータ量は、 RAM 11 いが、 排他的論理和をとる上記方法においては、 1Z2が読み出し可能な最大デ —夕量であるので、 1/2とすることで書き込み効率を大きくとれる。
また、 本実施の形態 6において、 このように構成された RAMI 106を用い て、 データチェックプログラム ROM 1115に格納されたプログラムに基づい てデータチェックを行う例を説明したが、 データチェックプログラム ROM 11 15がない場合でも、 実施の形態 5のように、 ダウンロードするプログラムに予 めデ一夕チェックプログラムを組み込むようにすることにより同様の効果を得る ことができる。
次に、 メモリ 1102の構成を第 13図のような構成にした場合について説明 する。
第 13図は、 本発明の実施の形態 6に係る半導体集積回路装置におけるメモリ 1 102の例を示したものである。
図において、 a2710、 a 2711, a 2712, a 2713, a2714、 a 2715, a 2716, a 2717は、 メモリ 1102におけるアドレスを示 している。 アドレス a 2710は、 メモリ 1102のスタートアドレスを示し、 アドレス a 2717は、 メモリ 1102のエンドアドレスを示す。 また、 ァドレ ス a 2710とアドレス a 2711に囲まれた空間には、 第 12図で示した R A Ml 106のアドレス a 2600から& 2601に入るべきデータを暗号化して 格納する。 便宜上これを 「データ A」 と呼ぶ。 また、 アドレス a 2711とアド レス a 2712に囲まれた空間には、 復号化回路 1105によって復号化すると RAMI 106のアドレス a 2600から a 2601に入るべきデ一夕、即ち「デ —夕 A」を各ビットごとに反転したものが得られるようなデータが格納される。こ れを便宜上 「デ一夕 A '」 と呼ぶ。 同様に、 アドレス a 2712とアドレス a 2 713に囲まれた空間には、 RAMI 106のアドレス a2601から a260 2に入るべきデ一タを暗号化したものを格納し、 アドレス a 2713とアドレス a 2714に囲まれた空間には、 復号化回路 1105によって復号化すると R A Ml 106のアドレス a2601から a2602に入るべきデ一夕を各ビットご とに反転したものが得られるようなデ一夕が格納される。 これらを便宜上それぞ れ、 「データ B」 「データ B '」 と呼ぶ。 「データ C」 及び 「データ C '」 も同様 の対応である。 このような手順を繰り返し、 RAMI 106に格納すべき全ての プログラム及びその反転デ一夕を上記手順に従って、 暗号化してメモリ 1102 に格納する。
以上のように構成されたメモリ 1102、 及び RAMI 106を使った半導体 集積回路装置 1101の動作について説明する。
まず、 RAMI 106のアドレス a 2600から a 2601までの部分にメモ リ 1 1 0 2から復号化回路 1 1 0 5を通して 「デ一タ八」 をダウンロードする。 そのあと、 上記手順にて述べたメモリ 1 1 0 2に格納されている今ダウンロード したデータの反転デ一夕を暗号化したものである 「デ一夕 A '」 を、 これも同様 に復号化しながらダウンロードする。 この後、 接続切り替え回路 1 1 1 2を切り 替えて RAM I 1 0 6のデータを読み出す。 この読み出し時に、 アドレス a 2 6 0 0からとアドレス a 2 6 0 1からとのそれぞれ等距離にあるものを順次ァクセ スし、 得られたデータのビットごとの論理積を取る。 暗号が正しく解け、 データ パスに異常がなく、 かつ、 R AM I 1 0 6の格納域ビッ卜に異常がなければ、 こ の論理積の結果は、 あるデ一夕とその反転データとの論理積となるため、 0にな る。 したがって、 この手順を順次繰り返し、 各論理積が 0であることをたしかめ れば、 メモリ 1 1 0 2から復号化回路 1 1 0 5を通して RAM I 1 0 6に正しく 展開できているということになる。 メモリ 1 1 0 2には、 RAM I 1 0 6の各手 順における残りの領域の 1 Z 2ずつのデ一夕とその反転データが暗号化されて 「データ B」 「データ B '」 「デ一夕 C」 「デ一夕 C '」 などのように対になって 必要な量だけ格納されており、 上記手順を残り領域の 1 Z 2づっデータがなくな るまで繰り返し実行することで、 RAM I 1 0 6には、 演算処理回路 1 1 0 8の プログラムが復号化されてダウンロードされ、 同時に、 そのデ一夕内容が期待ど おりであることが、確かめられる。
これにより、 もしも何らかの不具合のために、 上記手順の論理積が 0とならな い場合に、 RAM I 1 0 6に格納されているデータに不具合があると判断できる とともに、不具合発生アドレスも知ることができる。 また、何らかの理由により、 復号化回路 1 1 0 5に不具合があり RAM I 1 0 6への出力が固定値になってい ても、 RAM 2 5 0 6に格納されているデ一夕を上記手順で論理積をとれば、 あ るデ一夕と同じデ一夕の論理積であるため、 0にはならない。 このことで、 正し くデータが格納されてはいないと判断できる。
なお、 メモリ 1 1 0 2から RAM I 1 0 6に展開するデータ量は、 該 RAM I 1 0 6の残り領域の 1 Z 2以下ずつであってもよいが、 論理積をとる上記方法に おいては R AM I 1 0 6の残り領域の 1 / 2が読み出し可能な最大データ量であ るので、 1 Z2とすることで書き込み効率を大きくとれる。 また、 本実施の形態 6において、 このように構成されたメモリ 1 1 0 2を用い て、 データチェックプログラム R OM 1 1 1 5に格納されたプログラムに基づい てデ一夕チェックを行う例を説明したが、 データチェックプログラム R OM 1 1 1 5がない場合でも、 実施の形態 5のように、 ダウンロードする書き換えプログ ラムに予めチェックプログラムを組み込むようにすることにより同様の効果を得 ることができる。
以上のような本発明の実施の形態 6に係る半導体集積回路装置は、 RAM I 1 0 6に格納されている書き換えプログラムが正しく格納されているか否かを確認 するためのチェックプログラムを R OM化したメモリ 1 1 1 5に格納したので、 チェックプログラムの転送や、 展開に誤りが発生しても、 RAM I 1 0 6に格納 された書き換えプログラムが正しく格納できたか否かの確認を、 容易に、 かつ、 安定して行うことができる。
また、 RAM I 1 0 6の書き換えプログラムが格納されていない領域を 2分割 した各々の領域に、 該書き換えプログラムが格納されていない領域の 1 / 2に相 当するプログラムデータと、 該 1 / 2の領域に読み出したプログラムデータと同 じデ一夕とを順次読み出し、 該読み出したそれぞれのデ一夕から排他的論理和を とる手順を繰り返し行うようにしたので、 RAM I 1 0 6に格納された書き換え プログラムが正しく格納されたかを確認することができるとともに、 書き換えプ ログラム力 SRAM 1 1 0 6に正しく格納できていない場合に、 RAM I 1 0 6に おける正しく格納できていない場所の情報を得ることができる。
また、 RAM I 1 0 6の書き換えプログラムが格納されていない領域を 2分割 した各々の領域に、 該書き換えプログラムが格納されていない領域の 1 / 2に相 当するプログラムデータと、 該 1 Z 2の領域に読み出したプログラムデータを反 転したデータとを順次読み出し、 該読み出したそれぞれのデータから論理積をと る手順を繰り返し行うようにしたので、 RAM I 1 0 6に格納された書き換えプ ログラムが正しく格納されたかを確認することができるとともに、 何らかの理由 により復号化回路 1 1 0 5の不具合で RAM I 1 0 6への出力が固定値になり、 排他的論理和をとつてもデータが一致し、 上記第 2の格納手段に格納した書き換 えプログラムが正しく格納できたか否かの確認が困難になる場合においても、 R AM I 1 0 6に格納したプログラムの正誤を正しく判別できる。
なお、 本発明の実施の形態 1〜6に係る半導体集積回路装置では、 予め暗号化 した書き換えプログラムを、 半導体集積回路内にダウンロードする例を説明した が、 暗号化されていない書き換えプログラムを半導体集積回路内にダウンロード しても同様の効果が得られるのはいうまでもない。
(実施の形態 7 )
本発明の実施の形態 7に係る半導体集積回路装置は、 予め暗号化された書き換 えプログラムをメモリに格納した半導体集積回路装置において、 第三者に漏洩し たくない機密情報である書き換えプログラムが正しく格納されたか否かを、 該書 き換えプログラムの機密性を保持しながら確認するために、 上記暗号化された書 き換えプログラムを復号して RAMに格納した後、 該書き換えプログラムを再度 暗号化し、 該再度暗号化したプログラムデータと、 上記予め暗号化されたプログ ラムデ一夕とを比較するようにしたものである。
第 1 4図は、 本発明の実施の形態 7に係る半導体集積回路装置の構成を示す図 である。
図において、 1 4 0 1は暗号化された書き換えプログラムをもつ半導体集積回 路装置であり、 1 4 0 2はあらかじめ暗号ィ匕された書き換えプログラムが格納さ れているメモリ (第 1の格納手段)であり、 1 4 0 3は制御用のマイコンである。 半導体集積回路 1 4 1 1は、 暗号化された書き換えプログラムを復号化するため の復号化回路 (復号化手段) 1 4 0 5と、 復号化回路で復号された書き換えプロ グラムを格納するための RAM (第 2の格納手段) 1 4 0 6と、 復号化されたプ ログラムの制御手順に従って動作し、 コンテンツデータ 1 4 0 7の処理を行う演 算処理回路 (演算処理ュニット) 1 4 0 8と、 上記 RAM 1 4 0 6に転送された データを再度暗号化する暗号化回路 (暗号化手段) 1 4 1 0とから構成される。 次に、以上のように構成された半導体集積回路装置 1 4 0 1の動作を説明する。 まず、 あらかじめ暗号化されメモリ 1 4 0 2に格納された書き換えプログラム を制御用マイコン 1 4 0 3の制御のもと、 復号化回路 1 4 0 5をとおして復号し ながら RAM 1 4 0 6に格納する。 そして、 メモリ 1 4 0 2に格納されたデータ のうち、 あらかじめ決められたデ一夕量の転送が終了した時点で、 今度は、 制御 用マイコン 1 4 0 3の制御のもと、 今復号化してメモリ 1 4 0 6に格納した書き 換えプログラムを読み出し、 暗号化回路 1 4 1 0を通して再度暗号化し、 該再度 暗号化したプログラムデ一夕とメモリ 1 4 0 2に格納されている予め暗号化した プログラムデータとを比較する。 この両者のデ一夕が一致すれば、 最初にメモリ 1 4 0 2から読み出し、 復号ィ匕回路 1 4 0 5にて復号化し、 RAM I 4 0 6に格 納した書き換えプログラムが、 正しいと判断できる。
以上のような、 本発明の実施の形態 7に係る半導体集積回路装置は、 予め暗号 化したプログラムを半導体集積回路 1 4 1 1にダウンロードする半導体集積回路 装置において、 暗号化した書き換えプログラムを復号化し、 RAM I 4 0 6に格 納した後、 暗号化回路 1 4 1 0で再度暗号化し、 予め暗号化した書き換えプログ ラムと再度暗号^ ^した書き換えプログラムとを比較するようにしたので、 第三者 に漏洩したくない機密情報の書き換えプログラムをそのまま外部に読み出すこと なく、 RAM I 4 0 6に格納した書き換えプログラムが正しく格納できたか否か を確認することができる。
(実施の形態 8 )
本発明の実施の形態 8に係る半導体集積回路装置は、 RAMに格納した書き換 えプログラムが正しくないと判定された場合、 該書き換えプログラムの修正箇所 を検出して書き換えプログラムを修正可能にしたものである。
以下、 本発明の実施の形態 8に係る半導体集積回路装置を、 第 1 5図、 第 1 6 図、 及び第 1 7図を用いて説明する。
第 1 5図は、 本発明の実施の形態 8に係る半導体集積回路装置の構成を示した 図であり、 実施の形態 7で説明した半導体集積回路装置において、 RAMに格納 されたプログラムが正しくないと判断された場合、 プログラムを修正可能とする 例を示したものである。
図において、 1 5 0 0は、 暗号化された書き換えプログラムをダウンロードし てなる半導体集積回路装置であって、 1 5 0 3はあらかじめ暗号化された書き換 えプログラムが格納されているメモリ (第 1の格納手段) であり、 1 5 0 1は制 御用のマイコンである。 半導体集積回路 1 5 0 9は、 暗号化された書き換えプロ グラムを復号ィ匕するための復号ィ匕回路 (復号化手段) 1 5 0 2と、 復号化回路 1 5 0 2で復号された書き換えプログラムを格納するための RAM (第 2の格納手 段) 1 5 0 4と、 復号化されたプログラムの制御手順に従って動作し、 コンテン ッデータ 1 5 0 8の処理を行う演算処理回路 (演算処理ュニット) 1 5 0 5と、 RAM I 5 0 4に格納された書き換えプログラムを再度暗号化する暗号化回路 1 5 0 6とから構成される。 ここまでの構成は第 1 4図の半導体集積回路装置 1 4 0 1と同じであるが、 半導体集積回路装置 1 5 0 0においては、 暗号化回路 1 5 0 6の出力 S 1 5 0 6とあらかじめ暗号ィ匕された書き換えプログラムが格納され ているメモリ 1 5 0 3の出力 S 1 5 0 3とを比較し、 RAM I 5 0 4に正しく格 納されなかった場所を検出する比較器 1 5 0 7を備えている。
以上のように構成された半導体集積回路装置 1 5 0 0について、 以下にその動 作を説明する。 第 1 6図は、 実施の形態 8に係る半導体回路 1 5 0 0の動作フ口 —を示す。
まず、 暗号化した書き換えプログラムを復号化回路 1 5 0 2で復号し (ステツ プ S 1 6 0 1 )、制御用マイコン 1 5 0 1にしたがい、復号化した書き換えプログ ラムを RAM I 5 0 4に入力する(ステップ S 1 6 0 2 )。ステップ S 1 6 0 2で RAM I 5 0 4に入力した書き換えプログラムを暗号化回路 1 5 0 6で再度、 暗 号化し(ステップ S 1 6 0 3 )、ステップ S 1 6 0 3で暗号化した書き換えプログ ラムとメモリ 1 5 0 3に保持している書き換えプログラムとを比較する (ステツ プ S 1 6 0 4)。ステップ S 1 6 0 4でのチェックで正しくない場合、制御用マイ コン 1 5 0 1に従って、 正しくない部分の RAMのビットを使用しないように書 き換えプログラムを修正する (ステップ S 1 6 0 5 )。そして、 ステップ S 1 6 0 5で修正したプログラムを復号化し(ステップ S 1 6 0 6 )、該復号化したプログ ラムを RAM I 5 0 4に入力する (ステップ S 1 6 0 7 )。
また、 ステップ S 1 6 0 5の書き換えプログラム修正の動作は、 例えば、 第 1 7図のように、 RAM I 5 0 4に格納された書き換えプログラムの正しくない部 分が、 例えばマシン語単位などあらかじめ決められた単位のアドレス XXからァ ドレス X X 'とすると、 アドレス XXからアドレス XX 'に格納されるべきデ一 夕を修正プログラムとしてアドレス Y Yからアドレス Y Y 'に格納するように する。 このとき、 修正プログラムに、 アドレス XXまで読み出したときにァドレ ス YYに J UMPする命令プログラムと、 次にアドレス YY 'まで読み出したと きにアドレス XX 'に J UM Pする命令プログラムとを組み込むように修正を 行えばよく、 このように修正を行うことにより、 RAM I 5 0 4に格納されたプ ログラムの読み出しを正常に行うことができる。
これにより、 上記方法によると、 修正プログラムを RAM I 5 0 4に入力した 後、 読み出してチェックすることにより RAM I 5 0 4内の欠陥のあるビットを 使わないようにできるため、 RAMの有効活用ができる。
なお、 本実施の形態 8では、 予め暗号化した書き換えプログラムを格納するメ モリ 1 5 0 3からの出力 S 1 5 0 3と復号した書き換えプログラムを再度暗号化 する暗号ィ匕回路 1 5 0 6からの出力 S 1 5 0 6とを比較した結果から、 RAM I 5 0 4に正しく格納できなかった場所を検出して、 書き換えプログラムを修正し たが、 上述した書き換えプログラムの修正は、 RAMの欠陥位置を検出できれば 可能であるので、 実施の形態 6で説明したメモリ、 及び RAMの構成により読み 出したデータの排他的論理和、 及び論理積をとつてデータをチェックする例にお いても適用可能である。
以上のような、 実施の形態 8に係る半導体集積回路装置は、 書き換えプロダラ ムが R A Mに正しく格納されたか否かを確認した結果、 R A Mに正しく格納され なかった場合に、 正しく書き込めていない R AMのビットを使用しないように書 き換えプログラムを修正して、 RAMにダウンロードするので、 RAMの一部の ビットが正しく生成できていなくても、 その他の部分に書き込んで、 書き換えプ ログラムを正しく動作させることができ、 RAMを有効に活用することができる。 なお、 本発明の実施の形態 1〜8の半導体集積回路装置では、 書き換えプログ ラムをメモリ (第 1の格納手段) に格納して、 半導体集積回路内にダウンロード したが、 半導体集積回路装置外部に書き換えプログラムを保持し、 例えば、 イン 夕一ネット等の通信手段を用いて、 半導体集積回路内にダウンロードしても同様 の効果を得ることができるのはいうまでもない。
また、 本発明の実施の形態 1〜 8では、 半導体集積回路装置を例にとって説明 したが、 半導体集積回路装置に相当するものが、 外部からアクセス不可能な領域 (格納手段) を有する半導体集積回路を搭載したシステムであってもよく、 該シ ステムのアクセス不可能な領域 (格納手段) に対し機密デ一夕のダウンロードが 成功したか否かを検証するデータ記憶検証装置 (方法) であってもよく、 同様の 効果を得ることができるのはいうまでもない。
また、 本発明の実施の形態 2〜 8の半導体集積回路装置では、 プログラムを格 納する RAMは外部からの読み出しが不可のものであることはいうまでもない。 産業上の利用可能性
以上のように、 本発明にかかる半導体集積回路装置, データ記憶検証装置およ びデ一夕記憶検証方法は、 機密性を要するプログラムデータを外部に漏らすこと なく、 正しく半導体集積回路内にダウン口一ドできたか否かを確認でき、 特に著 作権保護が必要なプログラム等のダウンロードが成功したか否かを確認するのに 適する。

Claims

請求 の範囲
1 . 半導体集積回路内の演算処理ュニットにコンテンツを処理する動作をさせ るためのプログラムを、 書き換え可能に格納する第 2の格納手段を半導体集積回 路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処理ュ ニットにコンテンツを処理する動作をさせるための、 書き換え用である書き換え プログラムを格納する第 1の格納手段を用いて書き換えを行うようにした半導体 集積回路装置において、
上記第 2の格納手段は、 該半導体集積回路外部から読出しが可能な外部読出し 可能領域と、 読出しが不可能な外部読出し不可能領域とを有するものであり、 上記第 2の格納手段の外部読出し可能領域に任意のデ一夕を入力格納したのち、 該デ一夕を該半導体集積回路の外部に読出して、 該任意のデータが上記入力した 通りのデータであるかを確認し、 そののち、 上記第 1の格納手段からの上記書き 換えプログラムを、 上記第 2の格納手段の外部読出し不可能領域に格納するよう にした、
ことを特徴とする半導体集積回路装置。
2 . 半導体集積回路内の演算処理ュニットにコンテンツを処理する動作をさせ るためのプログラムを、 書き換え可能に格納する第 2の格納手段を半導体集積回 路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処理ュ ニットにコンテンツを処理する動作をさせるための、 書き換え用である書き換え プログラムを格納する第 1の格納手段を用いて書き換えを行うようにした半導体 集積回路装置において、
上記第 2の格納手段に格納された上記書き換えプログラムの特定部分のみを読 み出すように制御する制御回路を備えた、
ことを特徴とする半導体集積回路装置。
3 . 請求の範囲第 2項に記載の半導体集積回路装置において、
上記制御回路は、 上記第 2の格納手段の特定のァドレスにある書き換えプログ ラムのみを読み出すように制御するものとした、
ことを特徴とする半導体集積回路装置。
4. 請求の範囲第 2項に記載の半導体集積回路装置において、 '
上記制御回路は、 上記第 2の格納手段に格納した書き換えプログラムの特定の ビットのみを読み出すように制御するものとした、
ことを特徴とする半導体集積回路装置。
5 . 半導体集積回路内の演算処理ュニッ卜にコンテンツを処理する動作をさせ るためのプログラムを、 書き換え可能に格納する第 2の格納手段を半導体集積回 路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処理ュ ニットにコンテンツを処理する動作をさせるための、 書き換え用である書き換え プログラムを格納する第 1の格納手段を用いて書き換えを行うようにした半導体 集積回路装置において、
上記書き換えプログラムは、 書き換え後に該プログラムの一部を実行するプロ グラムを含んだものであり、
上記第 2の格納手段に格納した上記書き換えプログラムの一部を実行する、 ことを特徴とする半導体集積回路装置。
6 . 請求の範囲第 5項に記載の半導体集積回路装置において、
上記実行する書き換えプログラムの一部は、 非連続なプログラム領域を順次実 行するものである、
ことを特徴とする半導体集積回路装置。
7 . 半導体集積回路内の演算処理ュニットにコンテンツを処理する動作をさせ るためのプログラムを、 書き換え可能に格納する第 2の格納手段を半導体集積回 路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処理ュ ニットにコンテンツを処理する動作をさせるための、 書き換え用である書き換え プログラムを格納する第 1の格納手段を用いて書き換えを行うようにした半導体 集積回路装置において、
上記半導体集積回路内に、 上記第 1の格納手段から上記第 2の格納手段に転送 される上記書き換えプログラムを監視する転送監視手段を備えた、
ことを特徴とする半導体集積回路装置。
8 . 半導体集積回路内の演算処理ュニットにコンテンツを処理する動作をさせ るためのプログラムを、 書き換え可能に格納する第 2の格納手段を半導体集積回 路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処理ュ ニットにコンテンツを処理する動作をさせるための、 書き換え用である書き換え プログラムを格納する第 1の格納手段を用いて書き換えを行うようにした半導体 集積回路装置において、
上記書き換えプログラムは、 プログラムの正誤の判定を行うチェックプロダラ ムが含まれたものであり、
上記半導体集積回路内に、 上記演算処理ュニッ卜のワークメモリと、 上記第 2の格納手段または上記ヮ一クメモリと、 上記演算処理ュニッ卜のプロ グラム入力またはデ一夕入力との接続を切り替える接続切り替え手段とを備え、 上記第 2の格納手段に格納された上記書き換えプログラムから抽出した上記チ エックプログラムを上記ワークメモリに格納し、 該ワークメモリに格納したチェ ックプログラムにより、 上記演算処理ユニットを動作させ、 上記書き換えプログ ラムの正誤チェックを行う、
ことを特徴とする半導体集積回路装置。
9 . 請求の範囲第 8項に記載の半導体集積回路装置において、
上記第 2の格納手段は、 上記書き換えプログラムを格納するとともに、 該書き 換えプログラムのうち、 ある決められたかたまりから所定の法則に従い一意に得 られるデータを格納するものとした、
ことを特徴とする半導体集積回路装置。
1 0 . 請求の範囲第 9項に記載の半導体集積回路装置において、
上記一意に得られるデータを、 上記プログラムの正誤チェックをするためのチ エックコードとして使用する、
ことを特徴とする半導体集積回路装置。
1 1 . 請求の範囲第 8項に記載の半導体集積回路装置において、
上記第 2の格納手段は、 その構成を、 上記書き換えプログラムが格納されてい ない領域を順次 2分割した構成とし、 該 2分割した各々の領域に同じプログラム デ一タを格納するものであり、
上記チェックプログラムは、 上記 2分割した両領域の各々に格納された同じプ ログラムデータを比較して正誤を判定するプログラムと、 前回の判定結果が正しいと判定されたときに、 前回 2分割した領域の一方の領 域を、 プログラムが格納されていない領域としてさらに 2分割し、 該分割した領 域の各々に同じプログラムデータを格納する動作を繰り返すプログラムとを有し、 上記第 2の格納手段に格納すべきプ口グラムすベてを順次格納する、
ことを特徴とする半導体集積回路装置。
1 2 . 請求の範囲第 1 1項に記載の半導体集積回路装置において、
上記第 2の格納手段は、 該第 2の格納手段の上記書き換えプログラムが格納さ れていない領域を順次 2分割した各々の領域に、 上記書き換えプログラムデータ と、 該プログラムデ一夕から所定の法則に従い一意に得られるデータとを格納す るものとした、
ことを特徴とする半導体集積回路装置。
1 3 . 請求の範囲第 1 2項に記載の半導体集積回路装置において、
上記一意に得られるデータが、 該プログラムデータの反転データである、 ことを特徴とする半導体集積回路装置。
1 4. 請求の範囲第 8項ないし 1 3のいずれかに記載の半導体集積回路装置に おいて、
上記チェックプログラムを予め格納した R OM (Read Only Memory) を備え、 上記 R OMにより上記演算処理ュニッ卜を動作させて、 上記書き換えプロダラ ムの正誤チェックを行う、
ことを特徴とした半導体集積回路装置。
1 5 . 請求の範囲第 1項ないし第 1 4項のいずれかに記載の半導体集積回路装 置において、
上記半導体集積回路内に、 暗号化された書き換えプログラムを復号する復号化 手段を備え、
上記第 1の格納手段に格納された書き換えプログラムが予め暗号化されている 場合、 上記復号化手段は、 該暗号化プログラムを復号化し、 上記第 2の格納手段 に復号化した上記書き換えプログラムを格納する、
ことを特徴とする半導体集積回路装置。
1 6. 半導体集積回路内の演算処理ュニッ卜にコンテンツを処理する動作をさ せるためのプログラムを、 書き換え可能 格納する第 2の格納手段を半導体集積 回路内に有し、 該第 2の格納手段に格納されたプログラムに対し、 上記演算処理 ユニットにコンテンツを処理する動作をさせるための、 書き換え用である、 予め 暗号化された書き換えプログラムを格納する第 1の格納手段を用いて書き換えを 行うようにした半導体集積回路装置において、
上記半導体集積回路内に、 上記第 1の格納手段からの上記暗号化された書き換 えプログラムを復号化し、 該復号化した書き換えプログラムを上記第 2の格納手 段に転送する復号化手段と、
上記第 2の格納手段に格納した書き換えプログラムを再度暗号化する暗号化手 段とを備え、
上記暗号化手段で暗号化された書き換えプログラムと上記第 1の格納手段に保 持している暗号化された書き換えプログラムとを比較する、
ことを特徴とする半導体集積回路装置。
1 7 . 請求の範囲第 1 1項ないし第 1 3項、 及び第 1 6項のいずれかに記載の 半導体集積回路装置において、
上記第 2の格納手段にデータが正しく格納されていない場合、 不良箇所を検出 し、 上記第 1の格納手段に保持した書き換えプログラムを修正可能とした、 ことを特徴とする半導体集積回路装置。
1 8 . 請求の範囲第 1項ないし第 1 7項のいずれかに記載の半導体集積回路装 置において、
当該半導体集積回路装置外部に保持した書き換えプログラムを、 上記半導体集 積回路内にダウンロード可能とした、
ことを特徴とする半導体集積回路装置。
1 9 . 任意のデ一夕を外部からアクセス可能な領域に記憶させる手段と、 前記任意のデ一夕を外部に出力し、正しく記憶されたか否かを判定する手段と、 正しく記憶されたと判定された場合は、 機密データを外部からアクセス不可能 な領域に記憶させる手段とを備えた、
ことを特徴とするデータ記憶検証装置。
2 0 . 機密デ一タを外部からアクセス不可能な領域に記憶させる手段と、 前記機密データの特定部分を外部に出力する手段とを備えた、
ことを特徴とするデータ記憶検証装置。
2 1 . プログラムを含んだ機密データを外部からアクセス不可能な領域に記憶 させる手段と、
前記記憶されたプログラムを実行させ、結果を外部に出力する手段とを備えた、 ことを特徴とするデータ記憶検証装置。
2 2 . 検査プログラムと機密プログラムとを含む機密データを外部からァクセ ス不可能な領域に記憶させる第 1の手段と、
前記検査プログラムを実行させ、 結果を外部に出力する第 2の手段と、 前記第 2の手段の終了後、 前記機密プログラムを実行させる第 3の手段とを備 えた、
ことを特徴とするデータ記憶検証装置。
2 3 . 機密デ一夕を外部からアクセス不可能な領域に記憶させる手段と、 前記記憶させると同時に前記機密データを用いて所定の演算を行う手段と、 前記演算の結果を外部に出力する手段とを備えた、
ことを特徴とするデータ記憶検証装置。
2 4. 機密データを外部からアクセス不可能な第 1の領域に記憶させる第 4の 手段と、
機密データの一部であり、 前記第 1の領域に記憶されている検査プログラムを 第 2の領域に記憶させる第 5の手段と、
前記第 2の領域に記憶されている検査プログラムを実行して、 前記第 1の領域 の機密デ一夕の正当性を検查する第 6の手段とを備えた、
ことを特徴とするデータ記憶検証装置。
2 5 . 請求項 2 4記載のデータ記憶検証装置において、
前記第 6の手段の終了後に前記第 1の領域の命令に制御を移す第 7の手段をさ らに備えた、
ことを特徴とするデータ記憶検証装置。
2 6 . 請求項 2 4記載のデータ記憶検証装置において、
前記第 5の手段は、 前記第 1の領域に記憶されている機密データ内に存在する 命令により前記検査プログラムの記憶を実行する、
ことを特徴とするデータ記憶検証装置。
2 7 . 請求項 2 4記載のデ一夕記憶検証装置において、
前記第 5の手段は、 第 3の領域に前記第 4の手段による記憶の実行以前に記憶 された命令により前記検査プログラムの記憶を実行する、
ことを特徴とするデ一夕記憶検証装置。
2 8 . 機密データを復号する手段と、
前記復号されたデ一夕を外部からアクセス不可能な領域に記憶させる手段と、 前記記憶されたデータを暗号化する手段と、
前記暗号化されたデータと前記機密デ一夕とを比較して前記記憶されたデータ が正しく記憶されたか否かを判定する手段とを備えた、
ことを特徴とするデータ記憶検証装置。
2 9 . 機密プログラムを外部からアクセス不可能な領域に記憶させる第 2 1の 手段と、
前記記憶されたプログラムを読み出す第 2 2の手段と、
前記読み出されたプログラムを命令単位で正当性を判定する第 2 3の手段と、 正当でないと判定された場合は、 正当な命令を再度前記外部からアクセス不可 能な領域において空いている領域に記億させる第 2 4の手段と、
前記再度記憶された命令の次の命令を正当でないと判定されたァドレスの次の アドレスにジャンプする命令を記憶させる第 2 5の手段と、
正当でないと判定された領域には、 前記再度記憶された命令のァドレスにジャ ンプする命令を記憶させる第 2 6の手段とを備えた、
ことを特徴とするデータ記憶検証装置。
3 0 . 任意のデータを外部からアクセス可能な領域に記憶させる工程と、 前記任意のデータを外部に出力し、正しく記憶されたか否かを判定する工程と、 正しく記憶されたと判定された場合は、 機密データを外部からアクセス不可能 な領域に記憶させる工程とを含む、
ことを特徴とするデータ記憶検証方法。
3 1 · 機密データを外部からアクセス不可能な領域に記憶させる工程と、 前記機密データの特定部分を外部に出力する工程とを含む、 ことを特徴とするデータ記憶検証方法。
3 2 . プログラムを含んだ機密データを外部からアクセス不可能な領域に記憶 させる工程と、
前記記憶されたプログラムを実行させ、 結果を外部に出力する工程とを含む、 ことを特徴とするデータ記憶検証方法。
3 3 . 検査プログラムと機密プログラムとを含む機密データを外部からァクセ ス不可能な領域に記憶させる第 1の工程と、
前記検査プログラムを実行させ、 結果を外部に出力する第 2の工程と、 前記第 2の工程の終了後、 前記機密プログラムを実行させる第 3の工程とを含 む、
ことを特徴とするデータ記憶検証方法。
3 4. 機密データを外部からアクセス不可能な領域に記憶させる工程と、 前記記憶させると同時に前記機密データを用いて所定の演算を行う工程と、 前記演算の結果を外部に出力する工程とを含む、
ことを特徴とするデータ記憶検証方法。
3 5 . 機密データを外部からアクセス不可能な第 1の領域に記憶させる第 4の 工程と、
機密データの一部であり、 前記第 1の領域に記憶されている検査プログラムを 第 2の領域に記憶させる第 5の工程と、
前記第 2の領域に記憶されている検査プログラムを実行して、 前記第 1の領域 の機密データの正当性を検查する第 6の工程とを含む、
ことを特徴とするデータ記憶検証方法。
3 6. 請求項 3 6記載のデータ記憶検証方法において、
前記第 6の工程の終了後に前記第 1の領域の命令に制御を移す第 7の工程をさ らに含む、
ことを特徴とするデータ記憶検証方法。
3 7 . 請求項 3 5記載のデータ記憶検証方法において、
前記第 5の工程は、 前記第 1の領域に記憶されている機密データ内に存在する 命令により前記検査プログラムの記憶を実行する、
ことを特徴とするデータ記憶検証方法。
3 8 . 請求項 3 5記載のデータ記憶検証方法において、
前記第 5の工程は、 前記第 3の領域に前記第 4の工程による記憶の実行以前に 記憶された命令により前記検査プログラムの記憶を実行する、
ことを特徴とするデータ記憶検証方法。
3 9 . 機密デ一夕を復号する工程と、
前記復号されたデータを外部からアクセス不可能な領域に記憶させる工程と、 前記記憶されたデータを暗号ィ匕する工程と、
前記暗号化されたデータと前記機密データとを比較して前記記憶されたデータ が正しく記憶されたか否かを判定する工程とを含む、
ことを特徴とするデータ記憶検証方法。
4 0 . 機密プログラムを外部からアクセス不可能な領域に記憶させる工程と、 前記記憶されたプログラムを読み出す工程と、
前記読み出されたプログラムを命令単位で正当性を判定する工程と、 正当でないと判定された場合は、 正当な命令を再度前記外部からアクセス不可 能な領域において空いている領域に記憶させる工程と、
前記再度記憶された命令の次の命令を正当でないと判定されたァドレスの次の ァドレスにジャンプする命令を記憶させる工程と、
正当でないと判定された領域には、 前記再度記憶された命令のアドレスにジャ ンプする命令を記憶させる工程とを含む、
ことを特徴とするデータ記憶検証方法。
PCT/JP2003/007541 2002-06-14 2003-06-13 半導体集積回路装置、データ記憶検証装置およびデータ記憶検証方法 WO2003107193A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2004513943A JP4041491B2 (ja) 2002-06-14 2003-06-13 半導体集積回路装置,データ記憶検証装置およびデータ記憶検証方法
US10/517,258 US20050223241A1 (en) 2002-06-14 2003-06-13 Semiconductor intergrated circuit device, data storage verification device, and data storage verification method

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002-174883 2002-06-14
JP2002174883 2002-06-14

Publications (1)

Publication Number Publication Date
WO2003107193A1 true WO2003107193A1 (ja) 2003-12-24

Family

ID=29727997

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/007541 WO2003107193A1 (ja) 2002-06-14 2003-06-13 半導体集積回路装置、データ記憶検証装置およびデータ記憶検証方法

Country Status (3)

Country Link
US (1) US20050223241A1 (ja)
JP (1) JP4041491B2 (ja)
WO (1) WO2003107193A1 (ja)

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007239673A (ja) * 2006-03-10 2007-09-20 Honda Motor Co Ltd 制御装置およびそのプログラム
JP2008009798A (ja) * 2006-06-30 2008-01-17 Matsushita Electric Ind Co Ltd ソフトウェア修正装置
JP2009123051A (ja) * 2007-11-16 2009-06-04 Ricoh Co Ltd 半導体集積回路、機密保護方法、機密保護プログラム及び記録媒体
JP2009194852A (ja) * 2008-02-18 2009-08-27 Ntt Software Corp 仕様適合性検証装置

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010049559A (ja) * 2008-08-22 2010-03-04 Toshiba Corp 記憶装置及び記録再生システム
GB201314231D0 (en) 2013-08-08 2013-09-25 Harwood William T Data Comparator Store
KR102078853B1 (ko) * 2013-11-27 2020-02-18 삼성전자 주식회사 메모리 시스템, 호스트 시스템 및 메모리 시스템에서의 라이트 동작 수행 방법

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6267800A (ja) * 1985-09-20 1987-03-27 Hitachi Ltd 半導体集積回路装置
JPS63186330A (ja) * 1987-01-28 1988-08-01 Anritsu Corp 電子機器
JPS63240629A (ja) * 1987-02-23 1988-10-06 シーメンス・ニクスドルフ・インフォーメーションズシステーム・アクチェンゲゼルシャフト プログラムを機密保護し且つ機密保護されたプログラムを保全制御する方法
JPH0566937A (ja) * 1991-02-12 1993-03-19 Oki Electric Ind Co Ltd データ処理装置及びその処理変更方法
JPH06259242A (ja) * 1993-03-03 1994-09-16 Hitachi Ltd 基本制御プログラムの修正方法および装置
JPH07105169A (ja) * 1993-10-06 1995-04-21 Nec Corp シングルチップマイクロコンピュータ
JPH1011279A (ja) * 1996-06-24 1998-01-16 Tamura Electric Works Ltd 電子機器
JPH11282756A (ja) * 1998-03-31 1999-10-15 Nakamichi Corp 秘密デ−タ管理方法
JP2000148502A (ja) * 1998-11-11 2000-05-30 Nec Corp ファームウェアデータの書込み方法

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5224160A (en) * 1987-02-23 1993-06-29 Siemens Nixdorf Informationssysteme Ag Process for securing and for checking the integrity of the secured programs
US5734819A (en) * 1994-10-12 1998-03-31 International Business Machines Corporation Method and apparatus for validating system operation
US6230267B1 (en) * 1997-05-15 2001-05-08 Mondex International Limited IC card transportation key set
US7000115B2 (en) * 2001-06-19 2006-02-14 International Business Machines Corporation Method and apparatus for uniquely and authoritatively identifying tangible objects
US6641050B2 (en) * 2001-11-06 2003-11-04 International Business Machines Corporation Secure credit card
JP3971941B2 (ja) * 2002-03-05 2007-09-05 三洋電機株式会社 データ記憶装置
US7299364B2 (en) * 2002-04-09 2007-11-20 The Regents Of The University Of Michigan Method and system to maintain application data secure and authentication token for use therein

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS6267800A (ja) * 1985-09-20 1987-03-27 Hitachi Ltd 半導体集積回路装置
JPS63186330A (ja) * 1987-01-28 1988-08-01 Anritsu Corp 電子機器
JPS63240629A (ja) * 1987-02-23 1988-10-06 シーメンス・ニクスドルフ・インフォーメーションズシステーム・アクチェンゲゼルシャフト プログラムを機密保護し且つ機密保護されたプログラムを保全制御する方法
JPH0566937A (ja) * 1991-02-12 1993-03-19 Oki Electric Ind Co Ltd データ処理装置及びその処理変更方法
JPH06259242A (ja) * 1993-03-03 1994-09-16 Hitachi Ltd 基本制御プログラムの修正方法および装置
JPH07105169A (ja) * 1993-10-06 1995-04-21 Nec Corp シングルチップマイクロコンピュータ
JPH1011279A (ja) * 1996-06-24 1998-01-16 Tamura Electric Works Ltd 電子機器
JPH11282756A (ja) * 1998-03-31 1999-10-15 Nakamichi Corp 秘密デ−タ管理方法
JP2000148502A (ja) * 1998-11-11 2000-05-30 Nec Corp ファームウェアデータの書込み方法

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2007239673A (ja) * 2006-03-10 2007-09-20 Honda Motor Co Ltd 制御装置およびそのプログラム
JP2008009798A (ja) * 2006-06-30 2008-01-17 Matsushita Electric Ind Co Ltd ソフトウェア修正装置
JP2009123051A (ja) * 2007-11-16 2009-06-04 Ricoh Co Ltd 半導体集積回路、機密保護方法、機密保護プログラム及び記録媒体
JP2009194852A (ja) * 2008-02-18 2009-08-27 Ntt Software Corp 仕様適合性検証装置

Also Published As

Publication number Publication date
JP4041491B2 (ja) 2008-01-30
US20050223241A1 (en) 2005-10-06
JPWO2003107193A1 (ja) 2005-10-20

Similar Documents

Publication Publication Date Title
US7461268B2 (en) E-fuses for storing security version data
JP2710754B2 (ja) チップ・カードのキーを保護する装置
JP5749257B2 (ja) データ検証方法
US20070083768A1 (en) Program loader operable to verify if load-destination information has been tampered with, processor including the program loader, data processing device including the processor, program loading method, and integrated circuit
JPWO2002057904A1 (ja) ダウンロード機能を有する制御装置
JPWO2012160760A1 (ja) 情報処理装置および情報処理方法
US11232194B2 (en) Method for executing a binary code of a secure function with a microprocessor
JP2007179317A (ja) マイクロコンピュータ、マイクロコンピュータに対するプログラム書込み方法、及び書込み処理システム
JP4791250B2 (ja) マイクロコンピュータおよびそのソフトウェア改竄防止方法
US11461476B2 (en) Method for executing a binary code of a function secured by a microprocessor
US8397081B2 (en) Device and method for securing software
WO2003107193A1 (ja) 半導体集積回路装置、データ記憶検証装置およびデータ記憶検証方法
KR101954439B1 (ko) 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
KR101988404B1 (ko) 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
JP2010165206A (ja) メモリコントローラおよび不揮発性記憶装置
US20050289409A1 (en) Parallel data bus
JP2006523870A (ja) 制御装置内のソフトウェアのデータ整合性を検査する方法
CN101609492A (zh) 嵌入式设备的加解密方法和系统
WO2021184712A1 (zh) 一种软件升级方法及装置
JP5986279B2 (ja) 半導体装置
CN113886899A (zh) 自动驾驶软件使用期限管理方法、装置、设备及介质
CN114297679B (zh) 一种镜像加密传输与升级的方法
JP2013222272A (ja) 半導体装置、機密データ管理システム、及び機密データ管理方法
WO2022176164A1 (ja) プログラム処理装置、プログラム処理方法、及び、プログラム
JP2004252852A (ja) 情報処理装置及び情報処理方法

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): CN JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE BG CH CY CZ DE DK EE ES FI FR GB GR HU IE IT LU MC NL PT RO SE SI SK TR

121 Ep: the epo has been informed by wipo that ep was designated in this application
WWE Wipo information: entry into national phase

Ref document number: 10517258

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2004513943

Country of ref document: JP

122 Ep: pct application non-entry in european phase