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

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

Info

Publication number
JP4041491B2
JP4041491B2 JP2004513943A JP2004513943A JP4041491B2 JP 4041491 B2 JP4041491 B2 JP 4041491B2 JP 2004513943 A JP2004513943 A JP 2004513943A JP 2004513943 A JP2004513943 A JP 2004513943A JP 4041491 B2 JP4041491 B2 JP 4041491B2
Authority
JP
Japan
Prior art keywords
program
data
stored
integrated circuit
semiconductor integrated
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.)
Expired - Fee Related
Application number
JP2004513943A
Other languages
English (en)
Other versions
JPWO2003107193A1 (ja
Inventor
勝博 中井
剛 難波
雄久 平野
智明 手塚
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Panasonic Corp
Panasonic Holdings Corp
Original Assignee
Panasonic Corp
Matsushita Electric Industrial Co Ltd
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 Panasonic Corp, Matsushita Electric Industrial Co Ltd filed Critical Panasonic Corp
Publication of JPWO2003107193A1 publication Critical patent/JPWO2003107193A1/ja
Application granted granted Critical
Publication of JP4041491B2 publication Critical patent/JP4041491B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

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

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)
  • Storage Device Security (AREA)

Description

本発明は半導体集積回路装置,データ記憶検証装置およびデータ記憶検証方法に関するものであり、特に、内容が第三者へ漏洩したくない機密情報であるプログラムの保護、すなわちその機密性を維持しながら、ダウンロードが確実に実行できたか否かを容易に確認できるようにしたものに関する。
DSP(Digital Signal Processor)やCPUなどの演算処理ユニットを含む半導体集積回路において、演算処理ユニットのプログラムは、コスト面やプログラムの機密性を保つという点においてはROMとしてプログラムを格納することが有利となる。しかしながら、ROMなどの書き換え不可能な手段でプログラムを保持した場合、仕様変更やプログラム自身の不具合に柔軟な対応が取りにくい。このような回路の開発における容易さなどの点から、プログラムを半導体集積回路内部に格納する手段を、RAMなどの書き換え可能な手段として所有することがある。このような構成を持つ回路においては、DSPやCPUのような信号処理・機器の制御を担う演算処理ユニットなどに必要なプログラムを事前に書き換え可能なRAMなどの指定領域にダウンロードする必要があった。なお、本明細書において、ダウンロードとは、データやプログラムを、半導体集積回路の内部にロードする、ことを意味するものとする。
しかし、DSPやCPUなどの演算処理ユニットのプログラムを外部からRAMにダウンロードする半導体集積回路においては、プログラムを半導体集積回路内部にROMで持っている場合よりもプログラムの内容が第三者に漏洩する危険が高いという欠点を有していた。
例えば、半導体集積回路外部に保持するプログラムが、著作権保護を目的として策定されたウォーターマーク(電子透かし)を検出するためのプログラムのような場合、プログラムの内容が悪意を持った第三者に漏洩したことによって、著作権保護のための仕組みを無効化される恐れがあるため、プログラム自身を保護する必要がある。
この場合、半導体集積回路内にダウンロードするプログラムを予め暗号化させて、該半導体集積回路内で復号化させることにより、プログラム自身を保護することが考えられる。
しかしながら、この予め暗号化したデータ、及び非暗号化データも含めて半導体集積回路内の書き換え可能な領域にダウンロードしたプログラムデータが正しく格納できたか否かを、機密性を保持しながら確認することは困難である。
本発明はこのような問題を解決するためになされたものであり、機密性を要するプログラムデータを外部に漏らすことなく、正しくダウンロードできたか否かを確認できる半導体集積回路装置,データ記憶検証装置およびデータ記憶検証方法を提供することを目的とする。
上記問題を解決するために、本発明の請求項に記載の半導体集積回路装置は、半導体集積回路内の演算処理ユニットにコンテンツを処理する動作をさせるためのプログラムを、書き換え可能に格納する第2の格納手段を半導体集積回路内に有し、該第2の格納手段に格納されたプログラムに対し、上記演算処理ユニットにコンテンツを処理する動作をさせるための、書き換え用である書き換えプログラムを格納する第1の格納手段を用いて書き換えを行うようにした半導体集積回路装置において、上記半導体集積回路内に、上記第1の格納手段から上記第2の格納手段に転送される上記書き換えプログラムの転送エラーを監視する転送監視手段を備えたものである。
これにより、第三者に漏洩したくない機密情報である書き換えプログラムが半導体集積回路内に正しくダウンロードできたか否かを、該書き換えプログラムの機密性を保持しながら確認することができる。
また、本発明の請求項に記載の半導体集積回路装置は、半導体集積回路内の演算処理ユニットにコンテンツを処理する動作をさせるためのプログラムを、書き換え可能に格納する第2の格納手段を半導体集積回路内に有し、該第2の格納手段に格納されたプログラムに対し、上記演算処理ユニットにコンテンツを処理する動作をさせるための、書き換え用である書き換えプログラムを格納する第1の格納手段を用いて書き換えを行うようにした半導体集積回路装置において、上記書き換えプログラムは、プログラムの正誤の判定を行うチェックプログラムが含まれたものであり、上記半導体集積回路内に、上記演算処理ユニットのワークメモリと、上記第2の格納手段または上記ワークメモリと、上記演算処理ユニットのプログラム入力またはデータ入力との接続を切り替える接続切り替え手段とを備え、上記第2の格納手段に格納された上記書き換えプログラムから抽出した上記チェックプログラムを上記ワークメモリに格納し、該ワークメモリに格納したチェックプログラムにより、上記演算処理ユニットを動作させ、上記書き換えプログラムの正誤チェックを行うものである。
これにより、接続切り換え手段にて演算処理ユニットのプログラム入力またはデータ入力を切り替えて、上記書き換えプログラムのデータを取り込んで、例えば該書き換えプログラムデータのチェックサムなどをとって、予め決めておいた値と比較することが可能になるので、第三者に漏洩したくない機密情報である書き換えプログラムが半導体集積回路内に正しくダウンロードできたか否かを、該書き換えプログラムの機密を保持しながら確認することができる。
また、本発明の請求項に記載の半導体集積回路装置は、請求項に記載の半導体集積回路装置において、上記第2の格納手段は、上記書き換えプログラムを格納するとともに、該書き換えプログラムのうち、ある決められたかたまりから所定の法則に従い一意に得られるデータを格納するものとしたものである。
これにより、第三者に漏洩したくない機密情報である書き換えプログラムが半導体集積回路内に正しくダウンロードできたか否かを、該書き換えプログラムの機密性を保持しながら確認することができるとともに、上記第2の格納手段に正しく格納できなかった場合、正しく格納できていない場所の情報を得ることができる。
また、本発明の請求項に記載の半導体集積回路装置は、請求項に記載の半導体集積回路装置において、上記一意に得られるデータを、上記プログラムの正誤チェックをするためのチェックコードとして使用するものである。
これにより、第三者に漏洩したくない機密情報である書き換えプログラムが半導体集積回路内に正しくダウンロードできたか否かを、該書き換えプログラムの機密性を保持しながら確認することができるとともに、上記第2の格納手段に正しく格納できなかった場合、正しく格納できていない場所の情報を得ることができる。
また、本発明の請求項に記載の半導体集積回路装置は、請求項に記載の半導体集積回路装置において、上記第2の格納手段は、その構成を、上記書き換えプログラムが格納されていない領域を順次2分割した構成とし、該2分割した各々の領域に同じプログラムデータを格納するものであり、上記チェックプログラムは、上記2分割した両領域の各々に格納された同じプログラムデータを比較して正誤を判定するプログラムと、前回の判定結果が正しいと判定されたときに、前回2分割した領域の一方の領域を、プログラムが格納されていない領域としてさらに2分割し、該分割した領域の各々に同じプログラムデータを格納する動作を繰り返すプログラムとを有し、上記第2の格納手段に格納すべきプログラムすべてを順次格納するものである。
これにより、第三者に漏洩したくない機密情報である書き換えプログラムが半導体集積回路内に正しくダウンロードできたか否かを、該書き換えプログラムの機密性を保持しながら確認することができるとともに、上記第2の格納手段に正しく格納できなかった場合、正しく格納できていない場所の情報を得ることができる。
また、本発明の請求項に記載の半導体集積回路装置は、請求項に記載の半導体集積回路装置において、上記第2の格納手段は、該第2の格納手段の上記書き換えプログラムが格納されていない領域を順次2分割した各々の領域に、上記書き換えプログラムデータと、該プログラムデータから所定の法則に従い一意に得られるデータとを格納するものとしたものである。
これにより、例えば、第2の格納手段の前段に復号化回路を備えて、該復号化回路の不具合により出力が固定値になり、排他的論理和をとってもデータが一致し、上記第2の格納手段に格納した書き換えプログラムが正しく格納できたか否かの確認が困難になる場合においても、第2の格納手段に格納した書き換えプログラムの誤りを容易に見つけ出すことができる。
また、本発明の請求項に記載の半導体集積回路装置は、請求項に記載の半導体集積回路装置において、上記一意に得られるデータが、該プログラムデータの反転データであるものとしたものである。
これにより、例えば、第2の格納手段の前段に復号化回路を備えて、該復号化回路の不具合により出力が固定値になり、排他的論理和をとってもデータが一致し、上記第2の格納手段に格納した書き換えプログラムが正しく格納できたか否かの確認が困難になる場合においても、第2の格納手段に格納した書き換えプログラムの誤りを容易に見つけ出すことができる。
また、本発明の請求項に記載の半導体集積回路装置は、請求項ないし請求項のいずれかに記載の半導体集積回路装置において、上記チェックプログラムを予め格納したROM(Read Only Memory)を備え、上記ROMにより上記演算処理ユニットを動作させて、上記書き換えプログラムの正誤チェックを行うものである。
これにより、上記チェックプログラムの転送誤り等により、チェックプログラムが機能しなくなるのを防ぎ、上記第2の格納手段に上記書き換えプログラムが正しく格納できたか否かを確認するチェックプログラムを安定的に提供することができる効果がある。
また、本発明の請求項に記載の半導体集積回路装置は、半導体集積回路内の演算処理ユニットにコンテンツを処理する動作をさせるためのプログラムを、書き換え可能に格納する第2の格納手段を半導体集積回路内に有し、該第2の格納手段に格納されたプログラムに対し、上記演算処理ユニットにコンテンツを処理する動作をさせるための、書き換え用である、予め暗号化された書き換えプログラムを格納する第1の格納手段を用いて書き換えを行うようにした半導体集積回路装置において、上記半導体集積回路内に、上記第1の格納手段からの上記暗号化された書き換えプログラムを復号化し、該復号化した書き換えプログラムを上記第2の格納手段に転送する復号化手段と、上記第2の格納手段に格納した書き換えプログラムを再度暗号化する暗号化手段とを備え、上記暗号化手段で暗号化された書き換えプログラムと上記第1の格納手段に保持している暗号化された書き換えプログラムとを比較するものである。
これにより、第三者に漏洩したくない機密情報であり、また、予め暗号化されている書き換えプログラムが半導体集積回路内に正しくダウンロードできたか否かを、該書き換えプログラムの機密性を保持しながら確認することができる。
また、本発明の請求項1に記載の半導体集積回路装置は、請求項9に記載の半導体集積回路装置において、上記第2の格納手段にデータが正しく格納されていない場合、不良箇所を検出し、上記第1の格納手段に保持した書き換えプログラムを修正可能としたものである。
これにより、第2の格納手段において正しく格納できなかった箇所を使用しないように書き換えプログラムを修正して書き込むので、メモリを有効に活用することができる。
また、本発明の請求項11に記載のデータ記憶検証装置は、機密データを外部からアクセス不可能な第1の領域を有する記憶手段に記憶させる第4の手段と、機密データの一部であり、前記第1の領域に記憶されている検査プログラムを第2の領域を有する記憶手段に記憶させる第5の手段と、前記第2の領域に記憶されている検査プログラムを実行して、前記第1の領域の機密データの正当性を検査する第6の手段とを備えた、ことを特徴とするものである。
これにより、機密データを外部からアクセス不可能な第1の領域に格納するとともに、その機密データの一部である検査プログラムを第2の領域に格納し、この検査プログラムを用いて検査を行い、その検査結果を外部に出力して、第1の領域の機密データの正当性を検証することにより、上記機密データが正しくダウンロードできたか否かを、該機密データの機密性を保持しながら確認することができる。
また、本発明の請求項12に記載のデータ記憶検証装置は、請求項11に記載のデータ記憶検証装置において、前記第6の手段の終了後に前記第1の領域の命令に制御を移す第7の手段をさらに備えた、ことを特徴とするものである。
これにより、前記機密データが正しくダウンロードできたか否かを、該機密データの機密性を保持しながら確認した後に、本来の機密データに含まれる命令の実行に移ることができる。
また、本発明の請求項13に記載のデータ記憶検証装置は、請求項11に記載のデータ記憶検証装置において、前記第5の手段は、前記第1の領域に記憶されている機密データ内に存在する命令により前記検査プログラムの記憶を実行する、ことを特徴とするものである。
これにより、前記機密データが正しくダウンロードできたか否かを、該機密データの機密性を保持しながら確認するための検査プログラムの格納を、機密データ内に存在する命令により行うことができる。
また、本発明の請求項14に記載のデータ記憶検証装置は、請求項11に記載のデータ記憶検証装置において、前記第5の手段は、第3の領域に前記第4の手段による記憶の実行以前に記憶された命令により前記検査プログラムの記憶を実行する、ことを特徴とするものである。
これにより、前記機密データが正しくダウンロードできたか否かを、該機密データの機密性を保持しながら確認するための検査プログラムの格納を、機密データを格納するより前に格納した命令により行うことができる。
また、本発明の請求項15に記載のデータ記憶検証装置は、機密データを復号する手段と、前記復号されたデータを外部からアクセス不可能な領域を有する記憶手段に記憶させる手段と、前記記憶されたデータを暗号化する手段と、前記暗号化されたデータと前記機密データとを比較して前記記憶されたデータが正しく記憶されたか否かを判定する手段とを備えた、ことを特徴とするものである。
これにより、いったん復号して外部からアクセス不可能な領域に格納した機密データを暗号化して、予め暗号化されている元の機密データと比較することで、前記機密データが正しくダウンロードできたか否かを、該機密データの機密性を保持しながら確認することができる。
また、本発明の請求項16に記載のデータ記憶検証方法は、機密データを外部からアクセス不可能な第1の領域を有する記憶手段に記憶させる第4の工程と、機密データの一部であり、前記第1の領域に記憶されている検査プログラムを第2の領域を有する記憶手段に記憶させる第5の工程と、前記第2の領域に記憶されている検査プログラムを実行して、前記第1の領域の機密データの正当性を検査する第6の工程とを含む、ことを特徴とするものである。
これにより、機密データを外部からアクセス不可能な第1の領域に格納するとともに、その機密データの一部である検査プログラムを第2の領域に格納し、この検査プログラムを用いて検査を行い、その検査結果を外部に出力して、第1の領域の機密データの正当性を検証することにより、前記機密データが正しくダウンロードできたか否かを、該機密データの機密性を保持しながら確認することができる。
また、本発明の請求項17に記載のデータ記憶検証方法は、請求項16に記載のデータ記憶検証方法において、前記第6の工程の終了後に前記第1の領域の命令に制御を移す第7の工程をさらに含む、ことを特徴とするものである。
これにより、前記機密データが正しくダウンロードできたか否かを、該機密データの機密性を保持しながら確認した後に、本来の機密データに含まれる命令の実行に移ることができる。
また、本発明の請求項18に記載のデータ記憶検証方法は、請求項16に記載のデータ記憶検証方法において、前記第5の工程は、前記第1の領域に記憶されている機密データ内に存在する命令により前記検査プログラムの記憶を実行する、ことを特徴とするものである。
これにより、前記機密データが正しくダウンロードできたか否かを、該機密データの機密性を保持しながら確認するための検査プログラムの格納を、機密データ内に存在する命令により行うことができる。
また、本発明の請求項19に記載のデータ記憶検証方法は、請求項16に記載のデータ記憶検証方法において、前記第5の工程は、前記第3の領域に前記第4の工程による記憶の実行以前に記憶された命令により前記検査プログラムの記憶を実行する、ことを特徴とするものである。
これにより、前記機密データが正しくダウンロードできたか否かを、該機密データの機密性を保持しながら確認するための検査プログラムの格納を、機密データを格納するより前に格納した命令により行うことができる。
また、本発明の請求項20に記載のデータ記憶検証方法は、機密データを復号する工程と、前記復号されたデータを外部からアクセス不可能な領域を有する記憶手段に記憶させる工程と、前記記憶されたデータを暗号化する工程と、前記暗号化されたデータと前記機密データとを比較して前記記憶されたデータが正しく記憶されたか否かを判定する工程とを含む、ことを特徴とするものである。
これにより、いったん復号して外部からアクセス不可能な領域に格納した機密データを暗号化して、予め暗号化されている元の機密データと比較することで、前記機密データが正しくダウンロードできたか否かを、該機密データの機密性を保持しながら確認することができる。
以下、本発明の実施の形態について、図を用いて説明する。
(実施の形態1)
図1は、本発明の実施の形態1に係る半導体集積回路装置を示す図であり、暗号化された書き換えプログラムをダウンロードする例を示す。
図において、100は、暗号化された書き換えプログラムをダウンロードしてなる半導体集積回路装置であり、例えば105は制御用マイコン、101はあらかじめ暗号化された書き換えプログラムが格納されているメモリ(第1の格納手段)である。半導体集積回路109は、暗号化された書き換えプログラムを復号化するための復号化回路(復号化手段)102と、書き換え可能なRAM(第2の格納手段)108と、復号化されたプログラムの制御手順に従って動作し、コンテンツデータ107の処理を行う演算処理回路(演算処理ユニット)106とから構成される。なお、書き換えプログラムは例えばこれを変更することで演算処理回路106に異なる機能を実現させるものである。
また、本発明の実施の形態1に係る半導体集積回路装置において、書き換え可能なRAM108は、半導体集積回路109の外部から読み出し可能な外部読出し可能領域103と、半導体集積回路109の外部から読み出し不可能な外部読出し不可能領域104とから構成される。この外部読出し不可能領域104は、例えば、外部からのアドレスバスは外部読出し可能領域103と同様外部読出し不可能領域104に接続するが、外部にデータを読み出す場合はデータバスは外部読出し不可能領域104には接続しないスイッチを設けること等で実現できる。
以上のように構成された半導体集積回路装置100について、図2のフローチャートを用いてその動作を説明する。
制御用マイコン105の制御にしたがい、暗号化されていないデータを書き換え可能なRAM108の外部読出し可能領域103に入力する(ステップS201)。次に、外部読出し可能領域103に入力したデータが正しいかを半導体集積回路109外部に読み出して制御用マイコン105等でチェックする(ステップS202)。ステップS202でチェックした結果が正しい場合は、制御用マイコン105の制御にしたがいメモリ101の暗号化された書き換えプログラムを復号化回路102に入力し(ステップS203)、復号化回路102は、暗号化された書き換えプログラムを復号する(ステップS204)。次に、ステップS204で復号化された書き換えプログラムを書き換え可能なRAM108の外部読出し不可能領域104に入力する(ステップS205)。以上の処理により、第三者に漏洩したくない書き換えプログラムの機密性を保ちながら、該書き換えプログラムが正しく格納されているか否かをチェックすることができる。
これは、上述のように暗号化されていないデータを外部から書き込み正しく読み出せたことは、これらを実行する回路に故障が生じていないと考えられるので、書き換えプログラムを外部読出し不可能領域104に格納する際にもこれを支障なく行えていると考えられるからである。
なお、書き換え可能なRAM109の外部読出し可能領域103に格納するデータは、半導体集積回路装置の内部、及び外部のどちらに用意してもよく、チェック用のデータであればよい。
以上のような、本発明の実施の形態1に係る半導体集積回路装置は、第三者に漏洩したくない機密情報である書き換えプログラムを書き換え可能なRAM108に入力する場合に、該RAM108に設けた外部読出し可能領域103、及び外部読出し不可能領域104のうち、外部読み出し可能領域103にチェック用のデータを格納し、該データのチェックの結果が正しいと判定された後、外部読出し不可能領域104に該機密情報のプログラムを格納することにより、第三者に漏洩したくない機密情報である書き換えプログラムを格納したRAM108の製造上の欠陥、及び入力するまでの経路のチェックをすることができる。
(実施の形態2)
本発明の実施の形態2に係る半導体集積回路装置は、第三者に漏洩したくない機密情報である書き換えプログラムの機密性を保ちながら、該書き換えプログラムが半導体集積回路内の書き換え可能なRAMに正しく格納されているかを確認するために、格納した書き換えプログラムの特定部分のみを半導体集積回路に読み出すように制御する制御回路を備えたものである。
図3は、本発明の実施の形態2に係る半導体集積回路装置を示す図であり、暗号化された書き換えプログラムをダウンロードする例を示す。
図において、300は、暗号化された書き換えプログラムをダウンロードしてなる半導体集積回路装置であり、301は制御用マイコン、303はあらかじめ暗号化された書き換えプログラムを格納しているメモリ(第1の格納手段)である。半導体集積回路308は、暗号化された書き換えプログラムを復号化するための復号化回路(復号化手段)302と、復号化回路302で復号した書き換えプログラムを格納するための書き換え可能なRAM(第2の格納手段)304と、復号化されたプログラムの制御手順に従って動作し、コンテンツデータ307の処理を行う演算処理回路(演算処理ユニット)305と、RAM304に格納された書き換えプログラムのうち特定アドレスのみ出力するように制御する制御回路306とから構成される。制御回路306はRAM304の特定のアドレスのみを外部に読み出す機能を有する。
次に、以上のように構成された半導体集積回路装置300について、図4のフローチャートを用いて動作を説明する。
暗号化された書き換えプログラムを格納するメモリ303からの該書き換えプログラムを復号化回路302で復号し(ステップS401)、該復号化した書き換えプログラムをRAM304に入力する(ステップS402)。次に、制御回路306から、RAM304に格納されている書き換えプログラムの特定アドレスの読み出しを行い(ステップS403)、該特定アドレスのプログラムを半導体集積回路308外部に読み出してチェックする(ステップS404)。
以上のような本発明の実施の形態2に係る半導体集積回路装置は、書き換えプログラムをRAM304に格納した後、特定のアドレスのみを半導体集積回路外部に読み出すように制御する制御回路を備え、該読み出された特定アドレスをチェックすることにより、第三者に漏洩したくない機密情報である書き換えプログラムがRAM304に正しく格納されたかどうかを、該書き換えプログラムの機密性を保持しながら判断することができる。
これは、外部に読み出したのが特定アドレスであっても、それが正しい値であれば、書き換えプログラム全体が正しく格納されていると考えられるからである。
なお、本実施の形態2では特定アドレスのみを読み出し可能としたが、特定ビットのみを半導体集積回路外部に読み出すように制御し、該読み出した特定ビットをチェックしても、書き換えプログラムがRAMに格納されたかどうか判断することができる。
(実施の形態3)
本発明の実施の形態3に係る半導体集積回路装置は、第三者に漏洩したくない機密情報の書き換えプログラムが半導体集積回路内の書き換え可能なRAMに正しく格納されているかを判断するために、該半導体集積回路のRAMに格納した書き換えプログラムの一部を実行するものである。
図5は、本発明の実施の形態3に係る半導体集積回路装置を示す図であり、暗号化された書き換えプログラムをダウンロードする例を示す。
図において、500は、暗号化された書き換えプログラムをダウンロードしてなる半導体集積回路装置であって、501は制御用マイコン、503は、あらかじめ暗号化された書き換えプログラムを格納しているメモリ(第1の格納手段)である。半導体集積回路507は、暗号化された書き換えプログラムを復号化するための復号化回路(復号化手段)502と、復号化回路502で復号化された書き換えプログラムを格納するための書き換え可能なRAM(第2の格納手段)504と、復号化されたプログラムの制御手順に従って動作し、コンテンツデータ506の処理を行う演算処理回路(演算処理ユニット)505とから構成される。
本実施の形態3において、上記あらかじめ暗号化された書き換えプログラムには、ダウンロード後に該書き換えプログラムの一部を実行するプログラム(チェックプログラム)が含まれているものとする。また、チェックプログラムは復号化の際に書換えプログラムに挿入されてもよい。
次に、以上のように構成された半導体集積回路500について、図6のフローチャートを用いてその動作を説明する。
メモリ503からの暗号化した書き換えプログラムを復号化回路502で復号し(ステップS601)、該復号した書き換えプログラムをRAM504に入力する(ステップS602)。次に、RAM504に格納した書き換えプログラムの一部を実行させ(ステップS603)、正しいか否かが判断されたら、半導体集積回路507外部に正しいか否かを通知する信号を出力する(ステップS604)。
このとき、実行するプログラムの内容を例えばメモリチェックなどのプログラムにし、該メモリチェックを実行させ、そのチェックの結果が得られたならば、RAM504に正しくプログラムが格納されているかの判断をより確実に行える。
また、図7のように、実行するプログラムの内容を、JUMP命令などを実行して非連続領域のプログラムを実行するプログラムにし、例えば、先頭プログラムでメモリチェックのプログラムのアドレスXXにJUMPする命令を実行するとする。そして、先頭プログラムからメモリチェックのプログラムのアドレスXXにJUMPして、メモリチェックを行うようにすることにより、RAM504に正しくプログラムが格納されているかの判断をより確実に行える。また、先頭プログラムで最終プログラムのアドレスYYにJUMPする命令を実行するとする。そして先頭プログラムから最終プログラムのアドレスYYにJUMPして、該最終プログラムは、該最終プログラムを実行後にアドレス01に戻るようなプログラムにして、その結果、プログラムが正しく実行されたことを確認することにより、書き換えプログラムがRAMの最後まで書きこまれているかどうかを判断することができ、特に、復号化を1つでも間違うと後段のデータに影響を及ぼす暗号化方式においては、書き換えプログラムが正しく格納されているかをより一層確実に判断できる。
以上のような本発明の実施の形態3に係る半導体集積回路装置は、書き換えプログラムをRAM504に格納した後、該書き換えプログラムの一部を実行し、正しく実行できた場合に信号を出力することによって、書き換えプログラムがRAMに正しく格納できたかどうかを判断することができる。
また、書き換えプログラムを格納したRAM504から、非連続なプログラム領域を順次実行することにより、書き換えプログラムが最後までRAMに正しく格納されたかを確認することが可能になり、RAMに格納した書き換えプログラムの正誤チェックを、より確実に行うことができる。
(実施の形態4)
本発明の実施の形態4に係る半導体集積回路装置は、第三者に漏洩したくない機密情報である書き換えプログラムが半導体集積回路内に正しく格納されているかを確認するために、半導体集積回路内のRAMに書き換えプログラムを書き込む際に、転送データを監視する転送監視回路を備え、転送されるデータ単位ごとの算術和をとって結果を保持し、チェックサムなどをとるようにしたものである。
図8は、本発明の実施の形態4に係る半導体集積回路装置を示す図であり、暗号化された書き換えプログラムを半導体集積回路内に格納する例を示す。
図において、801は、暗号化された書き換えプログラムをダウンロードしてなる半導体集積回路装置であって、802はあらかじめ暗号化された書き換えプログラムが格納されているメモリ(第1の格納手段)であり、803は制御用のマイコンである。半導体集積回路810は、暗号化された書き換えプログラムを復号化するための復号化回路(復号化手段)805と、復号化回路805で復号化された書き換えプログラムを格納するためのRAM(第2の格納手段)806と、復号化されたプログラムの制御手順に従って動作し、コンテンツデータ807の処理を行う演算処理回路(演算処理ユニット)808と、復号化回路805から転送されるデータ単位ごとの算術和をとる転送監視回路(転送監視手段)809とから構成される。
次に、本発明の実施の形態4に係る半導体集積回路装置の動作を説明する。
以上のように構成された半導体集積回路装置801において、あらかじめ暗号化されメモリ802に格納された書き換えプログラムを、制御用マイコン803の制御のもと、復号化回路805をとおして復号しながらRAM806に格納する。この時、同時に、データ転送用のデータパスの一部である復号化回路805からRAM806への信号線を転送監視回路809が常に監視し、転送されるデータ単位ごとの算術和をとって結果を保持していく。そして、メモリ802に格納されたデータのうちあらかじめ決められたデータ量の転送が終了した時点で、転送監視回路809に保持されている算術和のデータを読み出し、制御用マイコン803において、あらかじめ計算しておいた正しく転送がおこなわれたときのデータの算術和と比較し、同じ値であれば転送が正しくおこなわれたと判断し、その後、本来実行すべき処理を行う。もし、この両者の値が異なっていれば、正しく転送がおこなわれなかったと判断し、メモリ802に入っているデータを再度転送し直すなど、しかるべき処置を施す。
以上のような本発明の実施の形態4に係る半導体集積回路装置は、書き換えるための書き換えプログラムの転送データを監視し、転送されるデータ単位ごとの算術和をとる転送監視回路を備え、該転送監視回路でとった算術和と、あらかじめ計算しておいた正しく転送が行われたときのデータの算術和とを比較するので、第三者に漏洩したくない機密情報である書き換えプログラムを読み出すことなく、正しくダウンロードされたか否かを判断することができる。
なお、本実施の形態4では、データ転送監視回路を用いてチェックサムをとる例を説明したが、チェックサムの代わりにCRCチェック回路、ECCチェック回路など、データのあるかたまり単位でビット誤りがあるか否かが判定できるものであれば同様の効果を得ることができ、特にこの監視方式を限定するものではない。
(実施の形態5)
本発明の実施の形態5に係る半導体集積回路装置は、第三者に漏洩したくない機密情報である書き換えプログラムが、半導体集積回路に正しく格納されているか否かを確認するために、演算処理回路のワークメモリから該演算処理回路を動作させることと、RAMに格納されたプログラムデータを演算処理回路に入力させることとを可能にし、演算処理回路にて、チェックサムなどをとるようにしたものである。
図9は、本発明の実施の形態5に係る半導体集積回路装置を示す図であり、暗号化された書き換えプログラムを半導体集積回路内に格納する例を示す。
図において、901は、暗号化された書き換えプログラムをもつ半導体集積回路装置であって、902はあらかじめ暗号化された書き換えプログラムが格納されているメモリ(第1の格納手段)であり、903は制御用のマイコンである。半導体集積回路915は、暗号化された書き換えプログラムを復号化するための復号化回路(復号化手段)905と、復号化回路905で復号化された書き換えプログラムを格納するためのRAM(第2の格納手段)906と、復号化されたプログラムの制御手順に従って動作し、コンテンツデータ907の処理を行う演算処理回路(演算処理ユニット)908と、演算処理回路908のワークメモリ911と、RAM906、及びワークメモリ911のそれぞれを、演算処理回路908の命令プログラムを読み込むバス913、及びデータを入出力するバス914に接続できるように切り替える接続切り替え回路(接続切り替え手段)912とから構成されている。また、本実施の形態5において、RAM906と演算処理回路908の命令プログラムを読み込むバス913とが接続され、ワークメモリ911とデータを入出力するバス914とが接続される形態を第1の形態とし、また、RAM906とデータを入出力するバス914とが接続され、ワークメモリ911と演算処理回路908の命令プログラムを読み込むバス913とが接続される形態を第2の形態とし、接続切り替え回路912は、上記第1、及び第2の形態のいずれかの形態に切り替えるものである。通常の状態では、上記第1の形態を取るものとし、これらの構成により、演算処理回路908は、自分自身の命令プログラムを読み込むバス913とデータを読み込むバス914とは独立しているいわゆるハーバードアーキテクチュアを取ることができ、より高速にコンテンツデータ907に対するデータ処理が実行できるものである。
次に、本発明の実施の形態5に係る半導体集積回路装置901の動作を説明する。
あらかじめ暗号化されメモリ902に格納された書き換えプログラムを制御用マイコン903の制御のもと、復号化回路905をとおして復号しながらRAM906に格納する。その後、演算処理回路908の動作を開始する。このとき演算処理回路908は、RAM906の中の書き換えプログラムに組み込まれた実行ステップに応じて動作する。
また、このRAM906に格納された書き換えプログラムの中に、書き換えプログラムがRAM906に正しく格納できたか否かをチェックするプログラム(チェックプログラム)を予め組み込んでおく。本実施の形態5では、データを入出力するバス914上のRAM906のデータを読み込み、たとえばチェックサムをとってあらかじめ決められた値と比較することによりRAM906に格納されているデータが正しいことを判定するようなプログラムと、正しいと判断された後に接続切り替え回路912を第1の形態に戻すように切り替えるプログラムとの上記2つのプログラムをマシン語データとして組み込んでおき、さらに、該組み込んだマシン語データを直接ワークメモリ911に展開するプログラムと、上記マシン語データをワークメモリに展開した後、接続切り替え回路912を第2の形態に切り替えるプログラムとを書き換えプログラムの中に予め組み込んでおく。
そして、動作を開始した後、まず、上記予め組み込んでおいたマシン語データを直接ワークメモリ911に展開するプログラムにより、上記マシン語データである、上記RAM906に格納されたプログラムが正しいか否かを判定するための上記2つのプログラムがワークメモリ911に展開される。その後、上記接続切り替え回路912を第2の形態に切り替えるプログラムによって、接続切り替え回路912を第2の形態に切り替える。これにより、ワークメモリ911と、演算処理回路908の命令プログラムを読み込むバス913とが接続されるため、演算処理回路908はワークメモリ911に先ほど展開した上記2つのプログラムのうち、データを入出力するバス914上のRAM906のデータを読み込み、たとえばチェックサムをとってあらかじめ決められた値と比較することによりRAM906に格納されているデータが正しいことを判定するようなプログラムを実行する。これにより、RAM906に格納されている書き換えプログラムが正しいと判定されれば、上記ワークメモリ911に展開した2つのプログラムの残りのプログラムである、接続切り替え回路912を第1の形態に戻すように切り替えるプログラムを実行することによって、接続切り替え回路912は第1の形態に切り替えられ、以後本来実行すべきプログラムを実行する。
次に、RAM906を図10のような構成にした例を説明する。
このRAM906は、図10に示すような論理的構成をとるものである。a2400、a2401、a2402は、メモリアドレスを示しており、右上がり斜線ハッチをつけたアドレスa2400で始まり、アドレスa2401で終わる空間に書き換えプログラムを格納する。また、アドレスa2401で始まり、アドレスa2402で終わる空間には、上記右上がり斜線ハッチをつけたアドレスa2400で始まりアドレスa2401で終わる空間に格納されたデータの、たとえばメモリアドレスごとなどのように、あらかじめ決められた単位ごとに対する、たとえばパリティフラグを格納するものとする。
そして、RAM906に格納する書き換えプログラムの中にあらかじめ組み込んでおくチェックプログラムとして、データを入出力するバス914上のRAM906のデータを読み込み、該読み込んだデータの中の1のビットが奇数個あるか偶数個あるかということを数えるいわゆるパリティ演算をおこなうプログラムと、さらに前記読み込んだデータに対応するアドレスa2401からa2402の空間に格納されているパリティフラグの情報を読み込んだ後に、該パリティフラグの情報、及び上記パリティ演算結果の両者を比較してメモリ2406に格納された書き換えが正しいか否かを判断するプログラムと、正しいと判断された後に接続切り替え回路912を第1の形態に戻すように切り替えるプログラムとの上記3つのプログラムをマシン語データとして組み込んでおき、さらに、該組み込んだマシン語データを直接ワークメモリ911に展開するプログラムと、上記マシン語データをワークメモリに展開した後、接続切り替え回路912を第2の形態に切り替えるプログラムとを予め組み込んでおく。
動作を開始した後、まず、上記予め組み込んでおいたマシン語データを直接ワークメモリ911に展開するプログラムにより、上記マシン語データである、上記3つのプログラムがワークメモリ911に展開される。その後、上記接続切り替え回路912を第2の形態に切り替えるプログラムによって、接続切り替え回路912を第2の形態に切り替える。これにより、ワークメモリ911と演算処理回路908の命令プログラムを読み込むバス913とが接続されるため、演算処理回路908はワークメモリ911に先ほど展開した上記3つのプログラムのうち、データを入出力するバス914上のメモリのデータを読み込み、該読み込んだデータの中の1のビットが奇数個あるか偶数個あるかということを数えるいわゆるパリティ演算をおこなうプログラムを実行し、次に、前記読み込んだデータに対応するアドレスa2401からa2402の空間に格納されているパリティフラグの情報を読み込んだ後に、該パリティフラグの情報、及び上記パリティ演算結果の両者を比較してRAM906に格納された書き換えプログラムが正しいか否かを判断するプログラムを実行する。これにより正しいと判断されれば、上記ワークメモリ911に展開した3つのプログラムの残りのプログラムである、接続切り替え回路912を第1の形態に戻すように切り替えるプログラムによって、接続切り替え回路912は第1の状態に切り替られ、以後本来実行すべきプログラムを実行する。
このように、RAM906を上記構成にすることにより、RAM906に格納した書き換えプログラムが正しく格納されたか否かを確認することができるとともに、書き換えプログラムが正しく格納できていない場合、該正しく格納できていない場所の情報を得ることができる。
なお、RAM906のアドレスa2401からa2402までの空間に入れるデータは、パリティフラグに限らず、データのあるかたまりで正しいか否かが判定できるものであればよく、現在よく知られているものにCRCチェックやECCチェックなどがあり、これらを使用しても同様の効果が得られる。
以上のような本発明の実施の形態5に係る半導体集積回路装置は、RAM906に格納された書き換えプログラムが正しく格納されているかを確認するためのチェックプログラムを演算処理回路のワークメモリ911に展開し、接続切り替え回路912を切り替えて、ワークメモリ911からの命令を可能にし、該ワークメモリ911からの命令を受けた演算処理回路にて、チェックサムなどをとることにより、第三者に漏洩したくない機密情報である書き換えプログラムがRAM906に正しく格納されているか否かを、機密性を保持しながら確認することができる。
なお、本発明の実施の形態5に係る半導体集積回路装置では、演算処理回路でチェックサムをとる例を説明したが、チェックサムの代わりにCRCチェック回路、ECCチェック回路など、データのあるかたまり単位でビットに誤りがあるか否かが判定できるものであれば同様の効果を得ることができる。
(実施の形態6)
本発明の実施の形態6に係る半導体集積回路装置は、第三者に漏洩したくない機密情報である書き換えプログラムが半導体集積回路に正しく格納されたか否かの確認を安定して行うために、RAMに格納された書き換えプログラムが正しいか否かの確認をするためのチェックプログラムを予めROMに格納して、該ROMに格納したチェックプログラムによって、上記書き換えプログラムの確認動作を行うものである。
図11は、本発明の実施の形態6に係る半導体集積回路装置を示す図であり、暗号化された書き換えプログラムを半導体集積回路内にダウンロードする例を示す。
図において、1101は暗号化された書き換えプログラムをもつ半導体集積回路装置であって、1102はあらかじめ暗号化された書き換えプログラムが格納されているメモリ(第1の格納手段)であり、半導体集積回路1116は、制御用のマイコン1103と、暗号化された書き換えプログラムを復号化するための復号化回路(復号化手段)1105と、復号化回路1105で復号化した書き換えプログラムを格納するためのRAM(第2の格納手段)1106と、復号化したプログラムの制御手順に従って動作し、コンテンツデータ1107の処理を行う演算処理回路(演算処理ユニット)1108と、演算処理回路1108のワークメモリ1111と、RAM1106、及びワークメモリ1111のそれぞれを、演算処理回路1108の命令プログラムを読み込むバス1113、及びデータを入出力するバス1114に接続できるように切り替える接続切り替え回路(接続切り替え手段)1112と、演算処理回路1108によって実行できるRAM1106に展開された書き換えプログラムが正しいか否かを判定するためのプログラム(チェックプログラム)を格納したROM1115とから構成され、ROM1115は、常に演算処理回路1108の命令プログラムを読み込むバス1113に接続される。また、接続切り替え回路1112によって切り替える第1、及び第2の形態は実施の形態5と同様なので説明を省略する。また、実施の形態5と同様、通常の状態では、上記第1の形態を取るものとする。
次に、本発明の実施の形態6に係る半導体集積回路装置の動作を説明する。
まず最初に、あらかじめ暗号化されメモリ1102に格納された書き換えプログラムを制御用マイコン1103の制御のもと、復号化回路1105をとおして復号しながらRAM1106に格納する。その後、演算処理回路1108の動作を開始する。この時、切り替え回路1112は、第1の形態になるよう接続されているものとする。演算処理回路1108は、RAM1106の中に展開された書き換えプログラムの実行ステップに応じて動作する。この書き換えプログラムの中に、ROM1115の中にあるデータチェック用のプログラムに制御を移すようなプログラムがあり、これを実行する。そして、演算処理回路1108の実行プログラムがROM1115に移った後、接続切り替え回路1112を第2の形態になるように切り替える。
これにより、RAM1106とデータを入出力するバス1114とが接続されるため、演算処理回路1108は、ROM1115に格納されている、RAM1106に展開された書き換えプログラムが正しいか否かを判断するプログラムに従い、RAM1106のデータを読み込み、かつ正しいかどうかの判断をする。
正しいと判断されれば、ROM1115に組み込まれている接続切り替え回路1112を第1の形態に戻すように切り替えるプログラムによって、接続切り替え回路1112は第1の状態に切り替られ、以後本来実行すべきプログラムを実行する。
なお、RAM1106に格納されている書き換えプログラムが正しいか否かを確認する方法は、ROM1115に実装されている方式によるが、この方式には、たとえばチェックサムなどが用いられる。しかしながら、必ずしも方式を限定するものではなく、データのある決められた固まり単位で正しいことが判定できればよいことは言うまでもない。
次に、RAM1106を図12のような構成にした場合について説明する。
図12は、本発明の実施の形態6に係る半導体集積回路装置のRAM1106の例を示したものである。
図において、a2600、a2601、a2602、a2603、a2604は、メモリアドレスを示しており、a2600はRAM1106におけるスタートアドレスを示し、a2604はエンドアドレスを示す。また、右上がり斜線ハッチをつけて示すように、a2601はRAM1106の全容量のちょうど半分に位置する場所のアドレスを示している。また、右下がり斜線をつけて示すように、a2602はアドレスa2601とエンドアドレスa2604とであらわされた容量のちょうど半分に位置する場所のアドレスを示す。同様に、a2603はアドレスa2602とエンドアドレスa2604とであらわされる容量のちょうど半分に位置するアドレスを示している。
以上のようなRAM1106を用いた半導体集積回路装置1101の動作について説明する。
まず最初に、RAM1106のアドレスa2600からa2601までの部分にメモリ1102から復号化回路1105を通してデータをダウンロードする。そのあと、アドレスa2601からa2604までの領域にも、RAM1102に格納されている先に展開したアドレスa2600からa2601までのデータと全く同じデータを、これも同様に復号化しながらダウンロードする。この後、接続切り替え回路1112を切り替えてRAM1106のデータを読み出す。この読み出し時に、アドレスa2600からとアドレスa2601からとのそれぞれ等距離にあるものを順次アクセスし、得られたデータのビットごとの排他的論理和を取る。暗号が正しく解け、データパスに異常がなく、かつ、RAM1106の格納域ビットに異常がなければ、この排他的論理和の結果は、あるデータと同じデータとの排他的論理和となるため、0になる。したがって、この手順を準次繰り返し、各排他的論理和が0であることを確かめれば、メモリ1102から復号化回路1105を通してRAM1106に正しく展開できているという判断ができる。上記手順を残り領域の1/2ずつ繰り返し実行することで、RAM1106には、演算処理回路1108のプログラムが復号化されてダウンロードされ、同時に、そのデータ内容が期待どおりであることが確かめられる。
このように、RAM1106を上記構成にすることにより、何らかの不具合のために、上記手順の排他的論理和が0とならない場合には、RAM1106に格納されているデータに不具合があると判断できるとともに、不具合発生アドレスも知ることができる。
なお、メモリ1102からRAM1106に展開するデータ量は、RAM1106の書き換えプログラムが格納されていない領域の1/2以下ずつであればよいが、排他的論理和をとる上記方法においては、1/2が読み出し可能な最大データ量であるので、1/2とすることで書き込み効率を大きくとれる。
また、本実施の形態6において、このように構成されたRAM1106を用いて、データチェックプログラムROM1115に格納されたプログラムに基づいてデータチェックを行う例を説明したが、データチェックプログラムROM1115がない場合でも、実施の形態5のように、ダウンロードするプログラムに予めデータチェックプログラムを組み込むようにすることにより同様の効果を得ることができる。
次に、メモリ1102の構成を図13のような構成にした場合について説明する。
図13は、本発明の実施の形態6に係る半導体集積回路装置におけるメモリ1102の例を示したものである。
図において、a2710、a2711、a2712、a2713、a2714、a2715、a2716、a2717は、メモリ1102におけるアドレスを示している。アドレスa2710は、メモリ1102のスタートアドレスを示し、アドレスa2717は、メモリ1102のエンドアドレスを示す。また、アドレスa2710とアドレスa2711に囲まれた空間には、図12で示したRAM1106のアドレスa2600からa2601に入るべきデータを暗号化して格納する。便宜上これを「データA」と呼ぶ。また、アドレスa2711とアドレスa2712に囲まれた空間には、復号化回路1105によって復号化するとRAM1106のアドレスa2600からa2601に入るべきデータ、即ち「データA」を各ビットごとに反転したものが得られるようなデータが格納される。これを便宜上「データA´」と呼ぶ。同様に、アドレスa2712とアドレスa2713に囲まれた空間には、RAM1106のアドレスa2601からa2602に入るべきデータを暗号化したものを格納し、アドレスa2713とアドレスa2714に囲まれた空間には、復号化回路1105によって復号化するとRAM1106のアドレスa2601からa2602に入るべきデータを各ビットごとに反転したものが得られるようなデータが格納される。これらを便宜上それぞれ、「データB」「データB´」と呼ぶ。「データC」及び「データC´」も同様の対応である。このような手順を繰り返し、RAM1106に格納すべき全てのプログラム及びその反転データを上記手順に従って、暗号化してメモリ1102に格納する。
以上のように構成されたメモリ1102、及びRAM1106を使った半導体集積回路装置1101の動作について説明する。
まず、RAM1106のアドレスa2600からa2601までの部分にメモリ1102から復号化回路1105を通して「データA」をダウンロードする。そのあと、上記手順にて述べたメモリ1102に格納されている今ダウンロードしたデータの反転データを暗号化したものである「データA´」を、これも同様に復号化しながらダウンロードする。この後、接続切り替え回路1112を切り替えてRAM1106のデータを読み出す。この読み出し時に、アドレスa2600からとアドレスa2601からとのそれぞれ等距離にあるものを順次アクセスし、得られたデータのビットごとの論理積を取る。暗号が正しく解け、データパスに異常がなく、かつ、RAM1106の格納域ビットに異常がなければ、この論理積の結果は、あるデータとその反転データとの論理積となるため、0になる。したがって、この手順を順次繰り返し、各論理積が0であることをたしかめれば、メモリ1102から復号化回路1105を通してRAM1106に正しく展開できているということになる。メモリ1102には、RAM1106の各手順における残りの領域の1/2ずつのデータとその反転データが暗号化されて「データB」「データB´」「データC」「データC´」などのように対になって必要な量だけ格納されており、上記手順を残り領域の1/2づつデータがなくなるまで繰り返し実行することで、RAM1106には、演算処理回路1108のプログラムが復号化されてダウンロードされ、同時に、そのデータ内容が期待どおりであることが確かめられる。
これにより、もしも何らかの不具合のために、上記手順の論理積が0とならない場合に、RAM1106に格納されているデータに不具合があると判断できるとともに、不具合発生アドレスも知ることができる。また、何らかの理由により、復号化回路1105に不具合がありRAM1106への出力が固定値になっていても、RAM2506に格納されているデータを上記手順で論理積をとれば、あるデータと同じデータの論理積であるため、0にはならない。このことで、正しくデータが格納されてはいないと判断できる。
なお、メモリ1102からRAM1106に展開するデータ量は、該RAM1106の残り領域の1/2以下ずつであってもよいが、論理積をとる上記方法においてはRAM1106の残り領域の1/2が読み出し可能な最大データ量であるので、1/2とすることで書き込み効率を大きくとれる。
また、本実施の形態6において、このように構成されたメモリ1102を用いて、データチェックプログラムROM1115に格納されたプログラムに基づいてデータチェックを行う例を説明したが、データチェックプログラムROM1115がない場合でも、実施の形態5のように、ダウンロードする書き換えプログラムに予めチェックプログラムを組み込むようにすることにより同様の効果を得ることができる。
以上のような本発明の実施の形態6に係る半導体集積回路装置は、RAM1106に格納されている書き換えプログラムが正しく格納されているか否かを確認するためのチェックプログラムをROM化したメモリ1115に格納したので、チェックプログラムの転送や、展開に誤りが発生しても、RAM1106に格納された書き換えプログラムが正しく格納できたか否かの確認を、容易に、かつ、安定して行うことができる。
また、RAM1106の書き換えプログラムが格納されていない領域を2分割した各々の領域に、該書き換えプログラムが格納されていない領域の1/2に相当するプログラムデータと、該1/2の領域に読み出したプログラムデータと同じデータとを順次読み出し、該読み出したそれぞれのデータから排他的論理和をとる手順を繰り返し行うようにしたので、RAM1106に格納された書き換えプログラムが正しく格納されたかを確認することができるとともに、書き換えプログラムがRAM1106に正しく格納できていない場合に、RAM1106における正しく格納できていない場所の情報を得ることができる。
また、RAM1106の書き換えプログラムが格納されていない領域を2分割した各々の領域に、該書き換えプログラムが格納されていない領域の1/2に相当するプログラムデータと、該1/2の領域に読み出したプログラムデータを反転したデータとを順次読み出し、該読み出したそれぞれのデータから論理積をとる手順を繰り返し行うようにしたので、RAM1106に格納された書き換えプログラムが正しく格納されたかを確認することができるとともに、何らかの理由により復号化回路1105の不具合でRAM1106への出力が固定値になり、排他的論理和をとってもデータが一致し、上記第2の格納手段に格納した書き換えプログラムが正しく格納できたか否かの確認が困難になる場合においても、RAM1106に格納したプログラムの正誤を正しく判別できる。
なお、本発明の実施の形態1〜6に係る半導体集積回路装置では、予め暗号化した書き換えプログラムを、半導体集積回路内にダウンロードする例を説明したが、暗号化されていない書き換えプログラムを半導体集積回路内にダウンロードしても同様の効果が得られるのはいうまでもない。
(実施の形態7)
本発明の実施の形態7に係る半導体集積回路装置は、予め暗号化された書き換えプログラムをメモリに格納した半導体集積回路装置において、第三者に漏洩したくない機密情報である書き換えプログラムが正しく格納されたか否かを、該書き換えプログラムの機密性を保持しながら確認するために、上記暗号化された書き換えプログラムを復号してRAMに格納した後、該書き換えプログラムを再度暗号化し、該再度暗号化したプログラムデータと、上記予め暗号化されたプログラムデータとを比較するようにしたものである。
図14は、本発明の実施の形態7に係る半導体集積回路装置の構成を示す図である。
図において、1401は暗号化された書き換えプログラムをもつ半導体集積回路装置であり、1402はあらかじめ暗号化された書き換えプログラムが格納されているメモリ(第1の格納手段)であり、1403は制御用のマイコンである。半導体集積回路1411は、暗号化された書き換えプログラムを復号化するための復号化回路(復号化手段)1405と、復号化回路で復号された書き換えプログラムを格納するためのRAM(第2の格納手段)1406と、復号化されたプログラムの制御手順に従って動作し、コンテンツデータ1407の処理を行う演算処理回路(演算処理ユニット)1408と、上記RAM1406に転送されたデータを再度暗号化する暗号化回路(暗号化手段)1410とから構成される。
次に、以上のように構成された半導体集積回路装置1401の動作を説明する。
まず、あらかじめ暗号化されメモリ1402に格納された書き換えプログラムを制御用マイコン1403の制御のもと、復号化回路1405をとおして復号しながらRAM1406に格納する。そして、メモリ1402に格納されたデータのうち、あらかじめ決められたデータ量の転送が終了した時点で、今度は、制御用マイコン1403の制御のもと、今復号化してメモリ1406に格納した書き換えプログラムを読み出し、暗号化回路1410を通して再度暗号化し、該再度暗号化したプログラムデータとメモリ1402に格納されている予め暗号化したプログラムデータとを比較する。この両者のデータが一致すれば、最初にメモリ1402から読み出し、復号化回路1405にて復号化し、RAM1406に格納した書き換えプログラムが、正しいと判断できる。
以上のような、本発明の実施の形態7に係る半導体集積回路装置は、予め暗号化したプログラムを半導体集積回路1411にダウンロードする半導体集積回路装置において、暗号化した書き換えプログラムを復号化し、RAM1406に格納した後、暗号化回路1410で再度暗号化し、予め暗号化した書き換えプログラムと再度暗号化した書き換えプログラムとを比較するようにしたので、第三者に漏洩したくない機密情報の書き換えプログラムをそのまま外部に読み出すことなく、RAM1406に格納した書き換えプログラムが正しく格納できたか否かを確認することができる。
(実施の形態8)
本発明の実施の形態8に係る半導体集積回路装置は、RAMに格納した書き換えプログラムが正しくないと判定された場合、該書き換えプログラムの修正箇所を検出して書き換えプログラムを修正可能にしたものである。
以下、本発明の実施の形態8に係る半導体集積回路装置を、図15、図16、及び図17を用いて説明する。
図15は、本発明の実施の形態8に係る半導体集積回路装置の構成を示した図であり、実施の形態7で説明した半導体集積回路装置において、RAMに格納されたプログラムが正しくないと判断された場合、プログラムを修正可能とする例を示したものである。
図において、1500は、暗号化された書き換えプログラムをダウンロードしてなる半導体集積回路装置であって、1503はあらかじめ暗号化された書き換えプログラムが格納されているメモリ(第1の格納手段)であり、1501は制御用のマイコンである。半導体集積回路1509は、暗号化された書き換えプログラムを復号化するための復号化回路(復号化手段)1502と、復号化回路1502で復号された書き換えプログラムを格納するためのRAM(第2の格納手段)1504と、復号化されたプログラムの制御手順に従って動作し、コンテンツデータ1508の処理を行う演算処理回路(演算処理ユニット)1505と、RAM1504に格納された書き換えプログラムを再度暗号化する暗号化回路1506とから構成される。ここまでの構成は図14の半導体集積回路装置1401と同じであるが、半導体集積回路装置1500においては、暗号化回路1506の出力S1506とあらかじめ暗号化された書き換えプログラムが格納されているメモリ1503の出力S1503とを比較し、RAM1504に正しく格納されなかった場所を検出する比較器1507を備えている。
以上のように構成された半導体集積回路装置1500について、以下にその動作を説明する。図16は、実施の形態8に係る半導体回路1500の動作フローを示す。
まず、暗号化した書き換えプログラムを復号化回路1502で復号し(ステップS1601)、制御用マイコン1501にしたがい、復号化した書き換えプログラムをRAM1504に入力する(ステップS1602)。ステップS1602でRAM1504に入力した書き換えプログラムを暗号化回路1506で再度、暗号化し(ステップS1603)、ステップS1603で暗号化した書き換えプログラムとメモリ1503に保持している書き換えプログラムとを比較する(ステップS1604)。ステップS1604でのチェックで正しくない場合、制御用マイコン1501に従って、正しくない部分のRAMのビットを使用しないように書き換えプログラムを修正する(ステップS1605)。そして、ステップS1605で修正したプログラムを復号化し(ステップS1606)、該復号化したプログラムをRAM1504に入力する(ステップS1607)。
また、ステップS1605の書き換えプログラム修正の動作は、例えば、図17のように、RAM1504に格納された書き換えプログラムの正しくない部分が、例えばマシン語単位などあらかじめ決められた単位のアドレスXXからアドレスXX´とすると、アドレスXXからアドレスXX´に格納されるべきデータを修正プログラムとしてアドレスYYからアドレスYY´に格納するようにする。このとき、修正プログラムに、アドレスXXまで読み出したときにアドレスYYにJUMPする命令プログラムと、次にアドレスYY´まで読み出したときにアドレスXX´にJUMPする命令プログラムとを組み込むように修正を行えばよく、このように修正を行うことにより、RAM1504に格納されたプログラムの読み出しを正常に行うことができる。
これにより、上記方法によると、修正プログラムをRAM1504に入力した後、読み出してチェックすることによりRAM1504内の欠陥のあるビットを使わないようにできるため、RAMの有効活用ができる。
なお、本実施の形態8では、予め暗号化した書き換えプログラムを格納するメモリ1503からの出力S1503と復号した書き換えプログラムを再度暗号化する暗号化回路1506からの出力S1506とを比較した結果から、RAM1504に正しく格納できなかった場所を検出して、書き換えプログラムを修正したが、上述した書き換えプログラムの修正は、RAMの欠陥位置を検出できれば可能であるので、実施の形態6で説明したメモリ、及びRAMの構成により読み出したデータの排他的論理和、及び論理積をとってデータをチェックする例においても適用可能である。
以上のような、実施の形態8に係る半導体集積回路装置は、書き換えプログラムがRAMに正しく格納されたか否かを確認した結果、RAMに正しく格納されなかった場合に、正しく書き込めていないRAMのビットを使用しないように書き換えプログラムを修正して、RAMにダウンロードするので、RAMの一部のビットが正しく生成できていなくても、その他の部分に書き込んで、書き換えプログラムを正しく動作させることができ、RAMを有効に活用することができる。
なお、本発明の実施の形態1〜8の半導体集積回路装置では、書き換えプログラムをメモリ(第1の格納手段)に格納して、半導体集積回路内にダウンロードしたが、半導体集積回路装置外部に書き換えプログラムを保持し、例えば、インターネット等の通信手段を用いて、半導体集積回路内にダウンロードしても同様の効果を得ることができるのはいうまでもない。
また、本発明の実施の形態1〜8では、半導体集積回路装置を例にとって説明したが、半導体集積回路装置に相当するものが、外部からアクセス不可能な領域(格納手段)を有する半導体集積回路を搭載したシステムであってもよく、該システムのアクセス不可能な領域(格納手段)に対し機密データのダウンロードが成功したか否かを検証するデータ記憶検証装置(方法)であってもよく、同様の効果を得ることができるのはいうまでもない。
また、本発明の実施の形態2〜8の半導体集積回路装置では、プログラムを格納するRAMは外部からの読み出しが不可のものであることはいうまでもない。
以上のように、本発明にかかる半導体集積回路装置,データ記憶検証装置およびデータ記憶検証方法は、機密性を要するプログラムデータを外部に漏らすことなく、正しく半導体集積回路内にダウンロードできたか否かを確認でき、特に著作権保護が必要なプログラム等のダウンロードが成功したか否かを確認するのに適する。
本発明の実施の形態1における半導体集積回路装置を示す図である。 本発明の実施の形態1における半導体集積回路装置の動作を示すフローチャートである。 本発明の実施の形態2における半導体集積回路装置を示す図である。 本発明の実施の形態2における半導体集積回路装置の動作を示すフローチャートである。 本発明の実施の形態3における半導体集積回路装置を示す図である。 本発明の実施の形態3における半導体集積回路装置を示す図である。 本発明の実施の形態3における半導体集積回路の実行プログラムの一例を示す図である。 本発明の実施の形態4における半導体集積回路装置を示す図である。 本発明の実施の形態5における半導体集積回路装置を示すブロック構成図である。 本発明の実施の形態5における半導体集積回路装置のRAM(第2の格納手段)の構成の一例を示す構成図である。 本発明の実施の形態6における半導体集積回路装置を示すブロック構成図である。 本発明の実施の形態6における半導体集積回路装置のRAM(第2の格納手段)1106の構成の一例を示す図である。 本発明の実施の形態6におけるメモリ1102内のデータ配置を示す概念図である。 本発明の実施の形態7における半導体集積回路装置を示すブロック構成図である。 本発明の実施の形態8における半導体集積回路装置を示すブロック構成図である。 本発明の実施の形態8における半導体集積回路装置の動作を示すフローチャートである。 本発明の実施の形態8における半導体集積回路装置のプログラムの修正を行う一例を示した図である。

Claims (20)

  1. 半導体集積回路内の演算処理ユニットにコンテンツを処理する動作をさせるためのプログラムを、書き換え可能に格納する第2の格納手段を半導体集積回路内に有し、該第2の格納手段に格納されたプログラムに対し、上記演算処理ユニットにコンテンツを処理する動作をさせるための、書き換え用である書き換えプログラムを格納する第1の格納手段を用いて書き換えを行うようにした半導体集積回路装置において、
    上記半導体集積回路内に、上記第1の格納手段から上記第2の格納手段に転送される上記書き換えプログラムの転送エラーを監視する転送監視手段を備えた、
    ことを特徴とする半導体集積回路装置。
  2. 半導体集積回路内の演算処理ユニットにコンテンツを処理する動作をさせるためのプログラムを、書き換え可能に格納する第2の格納手段を半導体集積回路内に有し、該第2の格納手段に格納されたプログラムに対し、上記演算処理ユニットにコンテンツを処理する動作をさせるための、書き換え用である書き換えプログラムを格納する第1の格納手段を用いて書き換えを行うようにした半導体集積回路装置において、
    上記書き換えプログラムは、プログラムの正誤の判定を行うチェックプログラムが含まれたものであり、
    上記半導体集積回路内に、上記演算処理ユニットのワークメモリと、
    上記第2の格納手段または上記ワークメモリと、上記演算処理ユニットのプログラム入力またはデータ入力との接続を切り替える接続切り替え手段とを備え、
    上記第2の格納手段に格納された上記書き換えプログラムから抽出した上記チェックプログラムを上記ワークメモリに格納し、該ワークメモリに格納したチェックプログラムにより、上記演算処理ユニットを動作させ、上記書き換えプログラムの正誤チェックを行う、
    ことを特徴とする半導体集積回路装置。
  3. 請求項に記載の半導体集積回路装置において、
    上記第2の格納手段は、上記書き換えプログラムを格納するとともに、該書き換えプログラムのうち、ある決められたかたまりから所定の法則に従い一意に得られるデータを格納するものとした、
    ことを特徴とする半導体集積回路装置。
  4. 請求項に記載の半導体集積回路装置において、
    上記一意に得られるデータを、上記プログラムの正誤チェックをするためのチェックコードとして使用する、
    ことを特徴とする半導体集積回路装置。
  5. 請求項に記載の半導体集積回路装置において、
    上記第2の格納手段は、その構成を、上記書き換えプログラムが格納されていない領域を順次2分割した構成とし、該2分割した各々の領域に同じプログラムデータを格納するものであり、
    上記チェックプログラムは、上記2分割した両領域の各々に格納された同じプログラムデータを比較して正誤を判定するプログラムと、
    前回の判定結果が正しいと判定されたときに、前回2分割した領域の一方の領域を、プログラムが格納されていない領域としてさらに2分割し、該分割した領域の各々に同じプログラムデータを格納する動作を繰り返すプログラムとを有し、
    上記第2の格納手段に格納すべきプログラムすべてを順次格納する、
    ことを特徴とする半導体集積回路装置。
  6. 請求項に記載の半導体集積回路装置において、
    上記第2の格納手段は、該第2の格納手段の上記書き換えプログラムが格納されていない領域を順次2分割した各々の領域に、上記書き換えプログラムデータと、該プログラムデータから所定の法則に従い一意に得られるデータとを格納するものとした、
    ことを特徴とする半導体集積回路装置。
  7. 請求項に記載の半導体集積回路装置において、
    上記一意に得られるデータが、該プログラムデータの反転データである、
    ことを特徴とする半導体集積回路装置。
  8. 請求項ないし請求項のいずれかに記載の半導体集積回路装置において、
    上記チェックプログラムを予め格納したROM(Read Only Memory)を備え、
    上記ROMにより上記演算処理ユニットを動作させて、上記書き換えプログラムの正誤チェックを行う、
    ことを特徴とした半導体集積回路装置。
  9. 半導体集積回路内の演算処理ユニットにコンテンツを処理する動作をさせるためのプログラムを、書き換え可能に格納する第2の格納手段を半導体集積回路内に有し、該第2の格納手段に格納されたプログラムに対し、上記演算処理ユニットにコンテンツを処理する動作をさせるための、書き換え用である、予め暗号化された書き換えプログラムを格納する第1の格納手段を用いて書き換えを行うようにした半導体集積回路装置において、
    上記半導体集積回路内に、上記第1の格納手段からの上記暗号化された書き換えプログラムを復号化し、該復号化した書き換えプログラムを上記第2の格納手段に転送する復号化手段と、
    上記第2の格納手段に格納した書き換えプログラムを再度暗号化する暗号化手段とを備え、
    上記暗号化手段で暗号化された書き換えプログラムと上記第1の格納手段に保持している暗号化された書き換えプログラムとを比較する、
    ことを特徴とする半導体集積回路装置。
  10. 請求項に記載の半導体集積回路装置において、
    上記第2の格納手段にデータが正しく格納されていない場合、不良箇所を検出し、上記第1の格納手段に保持した書き換えプログラムを修正可能とした、
    ことを特徴とする半導体集積回路装置。
  11. 機密データを外部からアクセス不可能な第1の領域を有する記憶手段に記憶させる第4の手段と、
    機密データの一部であり、前記第1の領域に記憶されている検査プログラムを第2の領域を有する記憶手段に記憶させる第5の手段と、
    前記第2の領域に記憶されている検査プログラムを実行して、前記第1の領域の機密データの正当性を検査する第6の手段とを備えた、
    ことを特徴とするデータ記憶検証装置。
  12. 請求項11に記載のデータ記憶検証装置において、
    前記第6の手段の終了後に前記第1の領域の命令に制御を移す第7の手段をさらに備えた、
    ことを特徴とするデータ記憶検証装置。
  13. 請求項11に記載のデータ記憶検証装置において、
    前記第5の手段は、前記第1の領域に記憶されている機密データ内に存在する命令により前記検査プログラムの記憶を実行する、
    ことを特徴とするデータ記憶検証装置。
  14. 請求項11に記載のデータ記憶検証装置において、
    前記第5の手段は、第3の領域に前記第4の手段による記憶の実行以前に記憶された命令により前記検査プログラムの記憶を実行する、
    ことを特徴とするデータ記憶検証装置。
  15. 機密データを復号する手段と、
    前記復号されたデータを外部からアクセス不可能な領域を有する記憶手段に記憶させる手段と、
    前記記憶されたデータを暗号化する手段と、
    前記暗号化されたデータと前記機密データとを比較して前記記憶されたデータが正しく記憶されたか否かを判定する手段とを備えた、
    ことを特徴とするデータ記憶検証装置。
  16. 機密データを外部からアクセス不可能な第1の領域を有する記憶手段に記憶させる第4の工程と、
    機密データの一部であり、前記第1の領域に記憶されている検査プログラムを第2の領域を有する記憶手段に記憶させる第5の工程と、
    前記第2の領域に記憶されている検査プログラムを実行して、前記第1の領域の機密データの正当性を検査する第6の工程とを含む、
    ことを特徴とするデータ記憶検証方法。
  17. 請求項16に記載のデータ記憶検証方法において、
    前記第6の工程の終了後に前記第1の領域の命令に制御を移す第7の工程をさらに含む、
    ことを特徴とするデータ記憶検証方法。
  18. 請求項16に記載のデータ記憶検証方法において、
    前記第5の工程は、前記第1の領域に記憶されている機密データ内に存在する命令により前記検査プログラムの記憶を実行する、
    ことを特徴とするデータ記憶検証方法。
  19. 請求項16に記載のデータ記憶検証方法において、
    前記第5の工程は、前記第3の領域に前記第4の工程による記憶の実行以前に記憶された命令により前記検査プログラムの記憶を実行する、
    ことを特徴とするデータ記憶検証方法。
  20. 機密データを復号する工程と、
    前記復号されたデータを外部からアクセス不可能な領域を有する記憶手段に記憶させる工程と、
    前記記憶されたデータを暗号化する工程と、
    前記暗号化されたデータと前記機密データとを比較して前記記憶されたデータが正しく記憶されたか否かを判定する工程とを含む、
    ことを特徴とするデータ記憶検証方法。
JP2004513943A 2002-06-14 2003-06-13 半導体集積回路装置,データ記憶検証装置およびデータ記憶検証方法 Expired - Fee Related JP4041491B2 (ja)

Applications Claiming Priority (3)

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

Publications (2)

Publication Number Publication Date
JPWO2003107193A1 JPWO2003107193A1 (ja) 2005-10-20
JP4041491B2 true JP4041491B2 (ja) 2008-01-30

Family

ID=29727997

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004513943A Expired - Fee Related JP4041491B2 (ja) 2002-06-14 2003-06-13 半導体集積回路装置,データ記憶検証装置およびデータ記憶検証方法

Country Status (3)

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

Families Citing this family (7)

* 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 ソフトウェア修正装置
JP5124244B2 (ja) * 2007-11-16 2013-01-23 株式会社リコー 半導体集積回路、機密保護方法、機密保護プログラム及び記録媒体
JP5171300B2 (ja) * 2008-02-18 2013-03-27 エヌ・ティ・ティ・ソフトウェア株式会社 仕様適合性検証装置
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 삼성전자 주식회사 메모리 시스템, 호스트 시스템 및 메모리 시스템에서의 라이트 동작 수행 방법

Family Cites Families (16)

* 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 半導体集積回路装置
JPH0658627B2 (ja) * 1987-01-28 1994-08-03 アンリツ株式会社 電子機器
US5224160A (en) * 1987-02-23 1993-06-29 Siemens Nixdorf Informationssysteme Ag Process for securing and for checking the integrity of the secured programs
DE3705736A1 (de) * 1987-02-23 1988-09-01 Nixdorf Computer Ag Verfahren zum sichern von programmen und zur integritaetskontrolle gesicherter programme
JPH0566937A (ja) * 1991-02-12 1993-03-19 Oki Electric Ind Co Ltd データ処理装置及びその処理変更方法
JPH06259242A (ja) * 1993-03-03 1994-09-16 Hitachi Ltd 基本制御プログラムの修正方法および装置
JP2586805B2 (ja) * 1993-10-06 1997-03-05 日本電気株式会社 シングルチップマイクロコンピュータ
US5734819A (en) * 1994-10-12 1998-03-31 International Business Machines Corporation Method and apparatus for validating system operation
JPH1011279A (ja) * 1996-06-24 1998-01-16 Tamura Electric Works Ltd 電子機器
US6230267B1 (en) * 1997-05-15 2001-05-08 Mondex International Limited IC card transportation key set
JPH11282756A (ja) * 1998-03-31 1999-10-15 Nakamichi Corp 秘密デ−タ管理方法
JP3305667B2 (ja) * 1998-11-11 2002-07-24 日本電気株式会社 ファームウェアデータの書込み方法
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

Also Published As

Publication number Publication date
WO2003107193A1 (ja) 2003-12-24
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
JP4851182B2 (ja) マイクロコンピュータ、マイクロコンピュータに対するプログラム書込み方法、及び書込み処理システム
JP4568196B2 (ja) プロセッサ、コンピュータシステムおよび認証方法
US8127144B2 (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, promgram loading method, and integrated circuit
US8909941B1 (en) Programmable integrated circuit and a method of enabling the detection of tampering with data provided to a programmable integrated circuit
CN100559486C (zh) 信息处理装置和程序加载方法
CN112699383B (zh) 数据密码设备、存储器系统及其操作方法
WO2003065225A1 (fr) Dispositif de memoire, appareil terminal et systeme de reparation de donnees
US11455115B2 (en) Storage device
JP4041491B2 (ja) 半導体集積回路装置,データ記憶検証装置およびデータ記憶検証方法
CN115562565A (zh) 存储器装置及维持其数据镜像完整性的方法
US11461476B2 (en) Method for executing a binary code of a function secured by a microprocessor
KR101954439B1 (ko) 이중보안기능을 가지는 SoC 및 SoC의 이중보안방법
JP2006523870A (ja) 制御装置内のソフトウェアのデータ整合性を検査する方法
JP3106947B2 (ja) 不揮発性半導体記憶装置
US20150249467A1 (en) Storage device, controller, and data writing method
JP4135413B2 (ja) メモリチェックシステムおよびメモリチェック方法、信号処理装置および信号処理装置のメモリチェック方法、ならびに、メモリチェックプログラム
JP2018194948A (ja) 半導体記憶装置、メモリコントローラ及びメモリの監視方法
JP5298791B2 (ja) 情報処理装置
JP4937365B2 (ja) プロセッサ、コンピュータシステムおよび認証方法
US8943327B2 (en) Apparatus and method to enable operation between a main assembly and a sub-assembly that are cryptographically related
JP2008123160A (ja) メモリ管理方法
JP4104998B2 (ja) データダウンロード方法
JP2023016643A (ja) 電子制御装置
JP2004252852A (ja) 情報処理装置及び情報処理方法

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20070612

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20070808

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

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20071109

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

Free format text: PAYMENT UNTIL: 20101116

Year of fee payment: 3

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20111116

Year of fee payment: 4

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

Free format text: PAYMENT UNTIL: 20121116

Year of fee payment: 5

LAPS Cancellation because of no payment of annual fees