[go: up one dir, main page]

JP2004265194A - 情報処理装置、および情報処理方法 - Google Patents

情報処理装置、および情報処理方法 Download PDF

Info

Publication number
JP2004265194A
JP2004265194A JP2003055626A JP2003055626A JP2004265194A JP 2004265194 A JP2004265194 A JP 2004265194A JP 2003055626 A JP2003055626 A JP 2003055626A JP 2003055626 A JP2003055626 A JP 2003055626A JP 2004265194 A JP2004265194 A JP 2004265194A
Authority
JP
Japan
Prior art keywords
data
key data
encrypted
key
unit
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.)
Pending
Application number
JP2003055626A
Other languages
English (en)
Inventor
Ikuko Fujinawa
幾子 藤縄
Yoshio Higuchi
淑夫 樋口
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 Holdings Corp
Original Assignee
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 Matsushita Electric Industrial Co Ltd filed Critical Matsushita Electric Industrial Co Ltd
Priority to JP2003055626A priority Critical patent/JP2004265194A/ja
Priority to CN200410008212.0A priority patent/CN1254726C/zh
Priority to US10/790,711 priority patent/US20040177257A1/en
Publication of JP2004265194A publication Critical patent/JP2004265194A/ja
Pending 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/60Protecting data
    • G06F21/62Protecting access to data via a platform, e.g. using keys or access control rules
    • G06F21/6218Protecting access to data via a platform, e.g. using keys or access control rules to a system of files or objects, e.g. local or distributed file system or database
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2107File encryption

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Security & Cryptography (AREA)
  • Bioethics (AREA)
  • General Health & Medical Sciences (AREA)
  • Computer Hardware Design (AREA)
  • Health & Medical Sciences (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Databases & Information Systems (AREA)
  • Storage Device Security (AREA)

Abstract

【課題】復号化鍵の管理を複雑化することなく、記憶データの秘匿性を高める。
【解決手段】メモリ120に記憶される各データブロックは、元のプログラムが分割されて、それぞれ異なる鍵データで暗号化された実行ブロックと、次に読み込まれるデータブロックを復号化するための暗号化された鍵データを含む復号化情報とを含んでいる。上記データブロックがマイクロコンピュータ100に読み込まれると、復号化部102により復号化された復号化情報中の鍵データは鍵データ一時保持部106aに保持された後、次のデータブロックが読み込まれる際に鍵データ保持部103に保持される。そこで、上記復号化され保持された鍵データによって、次のデータブロックの復号化情報および実行ブロックが復号化される。
【選択図】 図1

Description

【0001】
【発明の属する技術分野】
本発明は、メモリや、ICカード、ハードディスクなどの記憶媒体に記憶されたデータが容易に第三者に漏洩することの防止に関する技術に属する。
【0002】
【従来の技術】
従来より、メモリなどの記憶媒体に記憶されたデータ、特にCPUに実行させる一連の命令コードから成るプログラムとしてのデータが第三者に漏洩するのを防ぐために、データの暗号化を用いる技術が知られている。具体的には、例えば特許文献1に記載されているように、あらかじめ、記憶媒体に記憶されたデータを読み出す装置に固定的に設定され、または記憶データごとに任意に設定された暗号鍵(復号鍵)を用い、記憶媒体から読み出された暗号化されたデータを順次復号化して、装置内のCPUに入力するように構成したデータ保護装置が知られている。
【0003】
【特許文献1】
特開平7−129473号公報
【0004】
【発明が解決しようとする課題】
しかしながら、上記のような従来の装置では、暗号化されたデータを復号化する暗号鍵として単一の暗号鍵が用いられているために、復号化方法(アルゴリズム)とともに、1つの暗号鍵が漏洩してしまうと、記憶媒体に記憶されている全てのデータが漏洩してしまうという問題が生じる。
【0005】
なお、上記のような全てのデータの漏洩を防止するためには、記憶媒体に記憶させるデータを複数のブロックに分割し、各ブロックごとに別個の暗号鍵を用いて暗号化、復号化を行うようにすることも考えられるが、そのためには、複数の暗号鍵を各ブロックと対応づけて扱う必要があり、暗号化、復号化処理や暗号鍵の管理の複雑化を招くことになる。
【0006】
上記の問題に鑑み、本発明は、暗号鍵の管理の複雑化などを招くことなく、記憶媒体に記憶されたデータが容易に第三者に漏洩するのを防止可能にすることを課題とする。
【0007】
【課題を解決するための手段】
前記の課題を解決するために、請求項1の発明が講じた解決手段は、
記憶されるべきデータが複数の分割データに分割され、そのうちの少なくとも一部の分割データが、それぞれ異なる鍵データによって復号化されるように暗号化された暗号化データ、および
上記鍵データが、それぞれ他の鍵データによって復号化されるように暗号化された暗号化鍵データが記憶された記憶媒体から、
上記暗号化データおよび上記暗号化鍵データを読み込んで復号化する情報処理装置であって、
上記暗号化データ、および上記暗号化鍵データの読み込みを制御する読み込み制御部と、
上記読み込み制御部の制御によって読み込まれた暗号化データ、および暗号化鍵データを復号化する復号化部と、
上記復号化部によって上記暗号化鍵データから復号化された鍵データを保持する鍵データ保持部とを備え、
上記復号化部は、上記鍵データ保持部に保持された鍵データに基づいて、上記暗号化データおよび暗号化鍵データを復号化するように構成されていることを特徴とする。
【0008】
これによると、各分割データが、それぞれ異なる鍵データによって復号化されるように暗号化されているので、万一、一部の鍵データが漏洩したとしても、記憶媒体の記憶内容全体を容易に知られてしまうことがない。しかも、各鍵データは、それぞれ他の鍵データによって復号化されるように暗号化されて記憶媒体に記憶されているので、複数の鍵データを管理する必要がなく、管理の複雑化を招くことがない。
【0009】
また、請求項2の発明は、
請求項1の情報処理装置であって、
上記読み込み制御部は、
全ての上記分割データがそれぞれ暗号化されて上記記憶媒体に記憶された各暗号化データと、上記暗号化データをそれぞれ復号化する鍵データが暗号化されて上記記憶媒体に記憶された各暗号化鍵データとを、所定の一意に定まった順序で順次読み込むように構成され、
上記復号化部は、上記鍵データ保持部に保持された鍵データに基づいて、上記記憶媒体から読み込まれた第1の暗号化データおよび第1の暗号化鍵データを復号化して、第1の分割データおよび第1の鍵データを出力するとともに、
復号化されて上記鍵データ保持部に保持された上記第1の鍵データに基づいて、上記第1の暗号化データおよび第1の暗号化鍵データに後続して読み込まれた、第2の暗号化データおよび第2の暗号化鍵データを復号化するように構成されていることを特徴とする。
【0010】
これによると、記憶媒体に記憶された各暗号化データと各暗号化鍵データとが所定の順序で読み込まれることにより、各暗号化データ、および次の暗号化データを復号化するための暗号化鍵データが順次読み込まれて復号化されるので、暗号化前の元のデータを容易に得ることができる。
【0011】
また、請求項3の発明は、
請求項1の情報処理装置であって、
上記読み込み制御部は、
上記複数の分割データのうち、一部の分割データが暗号化されて上記記憶媒体に記憶された暗号化データ、
他の分割データが暗号化されることなく上記記憶媒体に記憶された非暗号化データ、および
上記各暗号化データおよび非暗号化データにそれぞれ対応して上記記憶媒体に記憶された暗号化鍵データを、
所定の一意に定まった順序で順次読み込むように構成されるとともに、
上記復号化部は、
上記記憶媒体から第1の暗号化鍵データと第1の暗号化データとが読み込まれた場合には、
これらを上記鍵データ保持部に保持された鍵データに基づき復号化して、第1の分割データおよび第1の鍵データを出力する一方、
上記記憶媒体から第1の暗号化鍵データと第1の非暗号化データとが読み込まれた場合には、
上記第1の暗号化鍵データを上記鍵データ保持部に保持された鍵データに基づき復号化して、第1の鍵データを出力し、
上記第1の暗号化鍵データと第1の暗号化データと、または上記第1の暗号化鍵データと第1の非暗号化データとに後続して読み込まれた、第2の暗号化鍵データ、または第2の暗号化鍵データと第2の暗号化データとを、上記第1の鍵データに基づいて復号化するように構成されていることを特徴とする。
【0012】
これによると、混在して記憶された暗号化データと非暗号化データとが読み込まれるようにすることにより、復号化動作を最小限に抑えて、読み込み速度の低下を防止することが容易にできる。
【0013】
また、請求項4の発明は、
請求項1の情報処理装置であって、
上記読み込み制御部は、
上記複数の分割データのうち、一部の分割データが暗号化されて上記記憶媒体に記憶された暗号化データ、
他の分割データが暗号化されることなく上記記憶媒体に記憶された非暗号化データ、および
上記各暗号化データに対応して上記記憶媒体に記憶された暗号化鍵データを、
所定の一意に定まった順序で順次読み込むように構成されるとともに、
上記復号化部は、
上記記憶媒体から第1の暗号化鍵データおよび第1の暗号化データが読み込まれた場合には、
これらを上記鍵データ保持部に保持された鍵データに基づき復号化して、第1の分割データおよび第1の鍵データを出力するとともに、
上記第1の暗号化鍵データおよび第1の暗号化データ以降に読み込まれた、第2の暗号化鍵データおよび第2の暗号化データを、上記第1の鍵データに基づいて復号化するように構成されていることを特徴とする。
【0014】
これによると、各鍵データは、次に読み込まれる暗号化データおよびこれに対応する暗号化鍵データの復号化に用いられ、非暗号化データに対応する暗号化鍵データを復号化することなどが必要ないので、より、読み込み速度の低下を防止したり、記憶データ量の増加を小さく抑えたりすることができる。
【0015】
また、請求項5の発明は、
請求項1の情報処理装置であって、
上記読み込み制御部は、上記記憶媒体に記憶された第1の暗号化データに後続して、上記第1の暗号化データに対応してあらかじめ定まった1つ以上の第2の暗号化データから成る後続候補群のうちの何れかの第2の暗号化データを読み込むとともに、
上記第1の暗号化データに対応して、それぞれ上記後続候補群の各第2の暗号化データを復号化するための鍵データが暗号化された1つ以上の暗号化鍵データを含む暗号化鍵データ群を読み込むように構成され、
上記鍵データ保持部は、上記記憶媒体から読み込まれた上記暗号化鍵データ群の各暗号化鍵データから復号化された1つ以上の鍵データをを保持し、
上記復号化部は、鍵データ保持部に保持された上記1つ以上の鍵データのうち、上記第1の暗号化データに後続して実際に読み込まれた第2の暗号化データに対応する鍵データに基づいて、上記第2の暗号化データ、およびその第2の暗号化データに対応して読み込まれた暗号化鍵データ群の各暗号化鍵データを復号化するように構成されていることを特徴とする。
【0016】
また、請求項6の発明は、
請求項2から請求項5のうちの何れか1項の情報処理装置であって、
上記記憶媒体に記憶されるべきデータは、上記情報処理装置に実行させる命令を含み、上記暗号化データおよび非暗号化データの読み込み順序が、上記命令のうちの分岐命令によって決定されることを特徴とする。
【0017】
これらによると、分岐命令の実行などによって、各暗号化データの読み込み順序が一意に定まらないような場合でも、各暗号化データの次に読み込まれる可能性のある各暗号化データを復号化するための鍵データが復号化されて保持されるので、何れの暗号化データが読み込まれる場合でも適切に復号化されるようにすることができる。それゆえ、柔軟な順序で暗号化データを読み込ませることができ、したがって、記憶媒体に記憶させるデータの作成や分割を柔軟に行うことなどができる。
【0018】
また、請求項7の発明は、
記憶されるべきデータが複数の分割データに分割され、そのうちの少なくとも一部の分割データが、それぞれ異なる鍵データによって復号化されるように暗号化された暗号化データ、および
上記鍵データが、それぞれ共通の共通鍵データによって復号化されるように暗号化された暗号化鍵データが記憶された記憶媒体から、
上記暗号化データおよび上記暗号化鍵データを読み込んで復号化する情報処理装置であって、
上記暗号化データ、および上記暗号化鍵データの読み込みを制御する読み込み制御部と、
上記読み込み制御部の制御によって読み込まれた暗号化データ、および暗号化鍵データを復号化する復号化部と、
上記復号化部によって上記暗号化鍵データから復号化された鍵データ、および上記共通鍵データを保持する鍵データ保持部とを備え、
上記復号化部は、上記鍵データ保持部に保持された上記鍵データまたは上記共通鍵データに基づいて、上記暗号化データおよび上記暗号化鍵データを復号化するように構成されていることを特徴とする。
【0019】
これによると、各暗号化鍵データは、共通鍵データによって復号化されるので、暗号化データや暗号化鍵データの読み込み順序には依存せずに復号化することができる。それゆえ、やはり、柔軟な順序で暗号化データを読み込ませることなどができる。
【0020】
また、請求項8の発明は、
請求項7の情報処理装置であって、
上記鍵データ保持部は、上記暗号化鍵データから復号化された鍵データを保持する第1の鍵データ保持部と、上記共通鍵データを保持する第2の鍵データ保持部とを備え、
上記復号化部は、上記第1の鍵データ保持部に保持された鍵データに基づいて上記暗号化データを復号化する第1の復号化部と、上記第2の鍵データ保持部に保持された共通鍵データに基づいて上記暗号化鍵データを復号化する第2の復号化部とを備えたことを特徴とする。
【0021】
これによると、暗号化データまたは暗号化鍵データを復号化するための復号化部や鍵データ保持部が別個に設けられることによって、暗号化データと暗号化鍵データとを互いに異なるアルゴリズムによって復号化することなどができるので、暗号化強度と読み込み速度とのバランスをとることなどが容易にできる。
【0022】
また、請求項9の発明は、
請求項8の情報処理装置であって、
さらに、上記第2の復号化部によって上記暗号化鍵データの復号化が行われる間に、上記記憶媒体に対して、次に読み込むべきデータとは異なる領域に記憶されているデータを読み込むのと同じ信号を出力する擬似読み込み信号出力部を備えたことを特徴とする。
【0023】
これによると、暗号化鍵データの復号化が行われる際に、その復号化によって得られた鍵データにより復号化される次のデータが読み出されるまでにタイムラグがある場合などでも、例えば乱数に基づく疑似的なアドレス信号などが出力されることによって、情報処理装置の外部からは暗号化鍵データの復号化が行われていることを察知することなどが困難になる。それゆえ、悪意の者が解析によって記憶内容を取得することなどを一層困難にすることができる。
【0024】
また、請求項10の発明は、
記憶されるべきデータが複数の分割データに分割され、そのうちの少なくとも一部の分割データが、それぞれ異なる鍵データによって復号化されるように暗号化された暗号化データ、および
上記鍵データが、それぞれ他の鍵データによって復号化されるように暗号化された暗号化鍵データが記憶された記憶媒体から、
上記暗号化データおよび上記暗号化鍵データを読み込んで復号化する情報処理方法であって、
上記暗号化データ、および上記暗号化鍵データを読み込む読み込みステップと、
上記読み込みステップによって読み込まれた暗号化データ、および暗号化鍵データを復号化し、上記暗号化鍵データから復号化された鍵データを鍵データ保持部に保持させる復号化ステップとを有し、
上記復号化ステップは、上記鍵データ保持部に保持された上記鍵データに基づいて、上記暗号化データおよび上記暗号化鍵データを復号化することを特徴とする。
【0025】
また、請求項11の発明は、
記憶されるべきデータが複数の分割データに分割され、そのうちの少なくとも一部の分割データが、それぞれ異なる鍵データによって復号化されるように暗号化された暗号化データ、および
上記鍵データが、それぞれ共通の共通鍵データによって復号化されるように暗号化された暗号化鍵データが記憶された記憶媒体から、
上記暗号化データおよび上記暗号化鍵データを読み込んで復号化する情報処理方法であって、
上記暗号化データ、および上記暗号化鍵データを読み込む読み込みステップと、
上記読み込みステップによって読み込まれた暗号化データ、および暗号化鍵データを復号化し、上記暗号化鍵データから復号化された鍵データを鍵データ保持部に保持させる復号化ステップとを有し、
上記復号化ステップは、上記鍵データ保持部に保持された上記鍵データまたは上記共通鍵データに基づいて、上記暗号化データおよび上記暗号化鍵データを復号化することを特徴とする。
【0026】
これらによっても、前記請求項1や請求項7について説明したように、やはり、鍵データの管理の複雑化を招いたりすることなく、記憶内容の秘匿性を高めることが容易にできる。
【0027】
【発明の実施の形態】
以下、本発明の実施の形態について、図面を参照して説明する。
【0028】
(実施の形態1)
(装置の構成)
図1は本発明の実施の形態1に係る情報処理装置の例としてのマイクロコンピュータ100の要部の構成、および上記マイクロコンピュータ100に接続された記憶媒体としてのメモリ120を示すブロック図である。
【0029】
上記メモリ120は、例えばROMやRAMによって構成され、マイクロコンピュータ100に実行させる命令の命令コードから成るプログラムが暗号化されたデータを記憶し、アドレスバスによって示されるアドレスに応じたデータをデータバスに出力するようになっている。このメモリ120には、例えば図2に示すように、一連の命令コードから成るプログラム(データ)が5つのデータブロック201〜205として記憶されているが、その記憶形式については、後に詳述する。
【0030】
マイクロコンピュータ100には、CPU101(読み込み制御部)と、復号化部102と、鍵データ保持部103と、選択部104と、選択指示保持部105と、復号化情報管理部106とが設けられている。
【0031】
上記CPU101は、命令コードの実行処理を行うものである。このCPU101には、復号化制御部101aが設けられている。上記復号化制御部101aは、メモリ120に記憶された各データブロック201〜205が読み込まれる際に、各データブロック201〜205に含まれる復号化情報211〜215を読み込んで、鍵データ(復号鍵)等を復号化情報管理部106に出力するなどの制御を行うようになっている。
【0032】
復号化部102は、鍵データ保持部103に設定された鍵データを用いて、メモリ120から出力された暗号化データを復号化するものである。
【0033】
選択部104は、選択指示保持部105に設定された選択指示に基づいて、上記復号化部102から復号化されて出力されるデータ、またはメモリ120から直接出力された(平文の)データの何れか一方を選択し、内部バスを介してCPU101に入力するようになっている。ただし、CPU101から例えばH(High)レベルの復号化情報読み込み信号が入力される場合には、上記選択指示保持部105に設定された選択指示に係らず、復号化部102の出力を選択するようになっている。
【0034】
復号化情報管理部106は、上記鍵データ保持部103に設定される鍵データ、および選択指示保持部105に設定される選択指示を管理するようになっている。より詳しくは、CPU101から(図示しない出力タイミング信号と伴に)出力される鍵データを鍵データ一時保持部106aに一旦保持するとともに、この保持された鍵データを、メモリ120から各データブロック201〜205の復号化情報211〜215が読み込まれる前に、鍵データ保持部103に設定するようになっている。また、CPU101から(図示しない出力タイミング信号と伴に)出力される選択部104への選択指示を選択指示一時保持部106bに一旦保持するとともに、この保持された選択指示を、各データブロック201〜205に含まれる実行ブロック221〜225が読み込まれる前に、選択部104に設定するようになっている。(また、上記設定が完了すると、CPU101に設定終了信号を出力して、次のアドレスの出力などの動作をさせ得るようになっている。なお、上記設定が例えば1クロックサイクル内に行われる場合などには、CPU101に次の動作を適切なタイミングで行わせることが容易にできるので、必ずしも上記のような設定終了信号を出力するようにしなくてもよい。)上記鍵データ一時保持部106a、および選択指示一時保持部106bには、上記のようにCPU101から出力された鍵データ等が一旦保持される他、さらに、最初のデータブロックが読み込まれる際にマイクロコンピュータ100の外部から入力された鍵データ等が保持されるようになっている。
【0035】
ここで、メモリ120に記憶されるデータの暗号化方式としては種々のものを適用することができ、特に限定されないが、例えば、DES暗号方式のように1つの暗号鍵によって暗号化および復号化が行われる、可逆変換が可能な共通鍵暗号方式や、暗号鍵を初期値として、順次入力されるデータの排他的論理和演算を行う方式などを用いることができる。
【0036】
なお、マイクロコンピュータ100には、通常、上記の他にも、一時的なデータ等を保持するRAMや、外部の装置との間で入出力を行うインタフェイス、また、メモリ120がデータの書き込みも可能な記憶媒体である場合には書き込み制御部などを備えているが、本発明の主眼ではないのでここでは省略する。
【0037】
また、マイクロコンピュータ100は、例えば1チップのLSIで構成される場合には、上記各部間の信号を解析することなどが一層困難になるので、より秘匿性を高めることができるが、これに限るものではない。
【0038】
(メモリ120に記憶されるデータの形式)
メモリ120には、図2に示すように、それぞれ復号化情報211〜215と実行ブロック221〜225とを含む複数(同図の例では5つ)のデータブロック201〜205が記憶されている。これらのデータブロック201〜205のCPU101への読み込みは、データブロック201〜205に含まれるポインタ等に基づいて、あらかじめ定められた一定の順序で行われるようになっている。(ここでは説明の簡単化のために、データブロック201〜205の順で読み込まれるとして説明する。)
上記実行ブロック221〜225は、例えば図3に示すように、一連の命令コードから成るプログラム(データ)が5つの実行単位に分割された命令コード列221a〜225aに実行終了コード230が付加されて構成されている。上記実行終了コード230としては、具体的には、例えば分岐先のデータブロックを特定して分岐する専用の命令を用いたり、通常の分岐命令と、分岐先が他のデータブロックであることを示すフラグをセットする命令とを組み合わせて用いたり、通常の分岐命令を用いて、分岐先のアドレスなどによってCPU101が他のデータブロックへの分岐であることを検出し得るようにしたりしてもよい。さらに、通常の分岐命令で他のデータブロックのアドレスに分岐した後に、分岐先のデータブロックまたは実行ブロックの先頭に、データブロックが変わったことを示す(復号化情報の読み込みなどの処理をさせる)命令を設けるなどしてもよい。なお、分岐先のデータブロックをアドレスによって特定する場合、そのアドレスとしては、復号化情報の先頭のアドレスを指定するようにしてもよいし、実行ブロックの先頭のアドレス等を指定して、復号化情報のデータ長などから復号化情報の先頭のアドレスを求め得るようにしてもよい。
【0039】
また、復号化情報211〜215には、それぞれ、鍵データ211a〜215aと暗号化有無情報211b〜215bとが含まれている。(なお、復号化情報211〜215は、データブロック201〜205の先頭に限らず、実行ブロック221〜225の内部や末尾などに配置されるようにしてもよい。また、データブロック205の次に読み込まれるデータブロックがない場合、すなわち、データブロック205内の命令が繰り返し実行されて、他のデータブロックに移行しない場合には、鍵データ215aおよび暗号化有無情報215bの内容は不定でよく、さらに、これらの情報を省略することもできる。)
上記復号化情報211〜215は全て暗号化されている一方、実行ブロック221〜225は必要に応じて(例えば実行ブロック222・224が)暗号化されている。上記暗号化されたデータを復号化するための鍵データは、それぞれのデータブロック201〜205ごとに異なり、各データブロック202〜205を復号化する鍵データは、それぞれのデータブロック202〜205の直前に読み込まれるデータブロック201〜204の復号化情報211〜214に含まれている。すなわち、例えばデータブロック201の復号化情報211に含まれる鍵データ211aによって、次に読み込まれるデータブロック202の復号化情報212および実行ブロック222を復号化することができるようになっている。なお、最初に実行されるデータブロック201(の少なくとも復号化情報211)を復号化するための鍵データ210aは、メモリ120中には記憶されておらず、実行時にマイクロコンピュータ100の外部から与えられるようになっている。(ここで、上記鍵データは、必ずしも全てが互いに異ならなくてもよい。すなわち、例えば有限個の鍵データから選択された鍵データが用いられるなどして、一部のデータブロックに同じ鍵データが用いられることがあってもよい。)また、復号化情報211〜214に含まれる暗号化有無情報211b〜214bは、次のデータブロック202〜205の実行ブロック222〜225が暗号化されているかどうかを示し、例えば、各データブロックの次に実行されるデータブロックの実行ブロックが暗号化されている場合には、値0x0010(「0x」は続く数値が16進数表記であることを示す。)が設定される一方、暗号化されていない場合には、値0x0001が設定されている。より具体的には、前記のようにデータブロック202・204の実行ブロック222・224が暗号化されている場合には、これらの直前に読み込まれるデータブロック201・203の暗号化有無情報211b・213bには0x0010が設定され、その他のデータブロック202・204の暗号化有無情報212b・214bには0x0001が設定されている。
【0040】
上記のようなデータを生成してメモリ120に保存する手順は特に限定されないが、例えば図4に示すようにして行うことができる。まず、一連の命令コードから成るプログラムを(例えば所定のデータ長ごと、またはその前後の分岐命令を区切りとして)5つの命令コード列221a〜225aに分割し(S101)、各データブロック201〜205の復号化情報211〜215等および実行ブロック222・224をそれぞれ暗号化するための鍵データ210a〜215aを乱数を用いるなどして自動的に、または人為的に定め(S102)、上記鍵データ211a〜215aと暗号化有無情報211b〜215bとを連結して復号化情報211〜215を生成し(S103)、上記分割された命令コード列221a〜225aに実行終了コード230を付加して実行ブロック221〜225を生成するとともに、これらの実行ブロック221〜225と復号化情報211〜215とをそれぞれ連結してデータブロック201〜205を構成し(S104)、全ての復号化情報211〜215を鍵データ210a〜214aで暗号化し、実行ブロック222・224を鍵データ211a・213aで暗号化して(S105)、メモリ120に格納する(S106)。
【0041】
(メモリ120に記憶されたデータの読み込みと実行動作)
上記のようにメモリ120に記憶されたプログラムがマイクロコンピュータ100に読み込まれて実行される場合の動作について、図5に基づいて説明する。
【0042】
(S201) マイクロコンピュータ100の外部から、最初に読み込まれるデータブロック201についての鍵データ210a、および選択指示が入力されると、これらを復号化情報管理部106の鍵データ一時保持部106a、および選択指示一時保持部106bが保持する。
【0043】
(S202) 復号化制御部101aの制御によって、CPU101が復号化情報管理部106および選択部104にHレベルの復号化情報読み込み信号を出力する。これに応じて、復号化情報管理部106の鍵データ一時保持部106a、および選択指示一時保持部106bに保持されている、鍵データおよび選択指示が、それぞれ鍵データ保持部103または選択指示保持部105に設定される。また、選択部104は、上記選択指示保持部105に設定された選択指示に係らず、復号化部102からの出力を選択して101に出力するように切り替わる。
【0044】
(S203) 復号化制御部101aの制御によって、CPU101がメモリ120に復号化情報を読み込むためのアドレス(および図示しない読み出し制御信号)を出力する。これに応じて、メモリ120は復号化情報を出力する。
【0045】
(S204) 復号化部102は、メモリ120から出力された復号化情報を鍵データ保持部103に設定された鍵データに基づいて復号化し、選択部104は上記復号化部102の出力を選択してCPU101に入力する。
【0046】
(S205) 復号化制御部101aは、上記復号化情報に含まれる鍵データを抽出して復号化情報管理部106に出力し、鍵データ一時保持部106aに一旦保持させる。また、復号化情報に含まれる暗号化有無情報に基づいて、すなわち、次のデータブロックの実行ブロックが暗号化されているかどうかに応じて、復号化情報管理部106の選択指示一時保持部106bに、復号化部102またはメモリ120の何れからの出力を選択部104に選択させるかを示す選択指示を一旦保持させる。(これらの鍵データおよび選択指示は、次のデータブロックを読み込むために再度(S202)が実行される際に鍵データ保持部103および選択指示保持部105に設定される。)
(S206) マイクロコンピュータ100から出力される復号化情報読み込み信号がL(Low)レベルになると、選択部104は、選択指示保持部105に設定されている選択指示に基づいて、復号化部102の出力またはメモリ120の出力を選択的にCPU101に入力するように切り替わる。
【0047】
(S207) CPU101が実行ブロックの各命令コードに応じたアドレスを出力し、メモリ120から出力された命令コードは、選択部104を介し、暗号化の有無に応じて、すなわち暗号化されている場合には復号化部102により復号化された後、または平文である場合にはそのまま、CPU101に入力される。
【0048】
(S208) メモリ120から出力されたのが実行終了コード230であれば、(S202)に戻って次のデータブロックについて同じ処理が繰り返される。(すなわち、鍵データ一時保持部106aおよび選択指示一時保持部106bに一旦保持された鍵データおよび選択指示が鍵データ保持部103および選択指示保持部105に設定されて、これらに基づいて次のデータブロックの読み込み等が行われる。)
(S209) 一方、メモリ120から出力されたのが実行終了コード230でなければ、CPU101は読み込まれた命令コードの命令を実行し、実行終了コード230が読み込まれるまで、(S207)〜(S209)を繰り返す。
【0049】
上記のような動作が行われることにより、マイクロコンピュータ100に外部から与える必要のある鍵データは、最初に読み込まれるデータブロック201についての1つの鍵データだけなので、鍵データの管理の複雑化を招いたりすることがない一方、万一上記1つの鍵データが漏洩したとしても、その鍵データによって復号化できるのは最初のデータブロック201だけであり、他のデータブロックを復号化するための鍵データはそれぞれさらに他の鍵データによって暗号化されているので、メモリ120に記憶されている全てのデータが容易に知られてしまうことはない。すなわち、理論的には、1つの鍵データが知られてしまうと、それを基に復号化情報の復号化、次の鍵データの抽出を繰り返すことによって全てのデータを得ることは不可能ではないが、そのためには、暗号化アルゴリズムも知る必要があるとともに、実行ブロック221〜225を解析するなどして、各データブロック201〜205の区切りや読み込み順序等を判別する必要があるうえ、復号化情報211〜215のフォーマットやデータブロック201〜205内での位置(各データブロック201〜205の先頭に配置されているとは限らない。)などを認識する必要があるので、メモリ120の記憶内容を解読することは相当に困難なものとなる。そして、その困難性が高いほど、解読に要する労力や費用、時間が増大するため、実際上、記憶内容の漏洩を防止することが容易にできる。
【0050】
上記のように記憶媒体に記憶された内容の秘匿性を高めることができるので、このような情報処理装置を例えばネットワークを介した通信を行う機器に適用することによって、送受されるデータの暗号化処理や通信相手が正しいかどうかを確認する認証処理などを行うプログラム(アルゴリズムやプロトコル)が解読されるのを防止して、通信のセキュリティを確保することなども容易にできる。
【0051】
なお、前記の例では、実行ブロック221〜225のうちの何れかについてだけ暗号化する例を示したが、これに限らず全て暗号化するようにしてもよい。その場合には、選択部104および選択指示保持部105や、復号化情報管理部106の選択指示一時保持部106b等は設けず、常にメモリ120の出力が復号化部102を介してCPU101に入力されるようにすることができ、また、復号化情報211〜215に暗号化有無情報211b〜215bを含めないようにすることもできる。それゆえ、マイクロコンピュータ100の構成の簡素化等を図ることができる。一方、前記の例のように一部の実行ブロックだけ暗号化する場合、すなわち、例えば規格化された手順の処理を行うプログラム(ルーチン)など、第三者に漏洩しても問題とならないような部分を暗号化しないようにする場合には、復号化に要する処理時間の影響を小さく抑えることが容易にできる。
【0052】
また、一部の実行ブロックについてだけ暗号化する場合、暗号化された実行ブロックを含むデータブロック(暗号化データブロック)にだけ、鍵データを含めるようにしてもよい。すなわち、暗号化データブロックに、その後に最初に読み込まれる暗号化データブロックの鍵データおよび実行ブロックを復号化する鍵データを含めるようにすれば、暗号化されない実行ブロックを含むデータブロックについては、鍵データを含めないようにでき、復号化部102による復号化動作も不要にすることができる。(なお、鍵データを含める必要がない場合でも、乱数を設定するなどして、復号化情報の長さが一定になるようにしたりしてもよい。)
また、各データブロックには、次のデータブロック(または次の暗号化データブロック)の鍵データと実行ブロックを復号化する鍵データを含める例を示したが、そのデータブロック自体に含まれる実行ブロックと、次のデータブロック(または次の暗号化データブロック)に含まれる鍵データとを復号化する鍵データを含めるようにしてもよい。すなわち、各データブロックに含まれる鍵データの読み込みが完了するまでは、鍵データ保持部103に保持された、以前のデータブロックの実行ブロックを復号化したのと同じ鍵データを用いて復号化し、その復号化が完了して実行ブロックの読み込みが開始される時点で、上記復号化された新たな鍵データが鍵データ保持部103に設定されて用いられるようにすればよい。また、このような場合などにおいて、新たな鍵データが復号化された直後に、その新たな鍵データが用いられる場合には、鍵データ一時保持部106aや選択指示一時保持部106bは必ずしも設けなくてもよい。
【0053】
(実施の形態2)
上記実施の形態1のマイクロコンピュータは、データブロックの読み込み順序が一定であるような記憶内容を読み込むように構成されているのに対し、例えば条件分岐命令の実行などによって、あるデータブロックの次に読み込まれるデータブロックが必ずしも一定ではないような場合でも記憶内容を適切に読み込ませることができるマイクロコンピュータの例について説明する。すなわち、このマイクロコンピュータでは、データブロック中に含まれた、次に読み込む可能性がある全てのデータブロックについての鍵データを読み込んで保持しておくことにより、柔軟な順序でデータブロックを読み込むことができるようになっている。なお、以下の実施の形態において、前記実施の形態1等と同様の機能を有する構成要素等については同一の符号を付して説明を省略する。
【0054】
(装置の構成)
図6は本発明の実施の形態2のマイクロコンピュータ300の要部の構成とメモリ120を示すブロック図である。このマイクロコンピュータ300は、実施の形態1(図1)のマイクロコンピュータ100と比べて、CPU101、選択部104、および復号化情報管理部106に代えて、CPU301、選択部304、および復号化情報管理部306を備えている点が異なっている。
【0055】
CPU301には、メモリ120に記憶されたデータブロックにおける復号化情報の読み込み動作を制御する復号化制御部301aが設けられている。この復号化制御部301aと実施の形態1の復号化制御部101aとの相違は、後述するようにメモリ120に記憶されるデータブロックの形式が実施の形態1とは異なることに対応するものである。
【0056】
選択部304は、選択指示保持部105に設定された選択指示に応じてメモリ120または復号化部102の出力を選択する点は実施の形態1の選択部104と同じであるが、上記選択指示に係らず、例えばCPU301から入力されるデータブロック番号・鍵データ数読み込み信号がHレベルになった場合には、メモリ120の出力が直接選択される一方、鍵情報読み込み信号がHレベルになった場合には、復号化部102の出力が選択されるようになっている。
【0057】
復号化情報管理部306は、鍵テーブル306aと制御部306bとを備えている。上記鍵テーブル306aは、CPU301から、鍵番号、鍵データ、および選択指示が入力されると、例えば図7に示すように、上記鍵番号と対応させて、鍵データと選択指示とを保持するようになっている。また、制御部306bは、CPU301から入力されるデータブロック番号に基づいて、そのデータブロック番号に一致する鍵番号と対応して鍵テーブル306aに保持されている鍵データと選択指示とを出力するようになっている。
【0058】
(メモリ120に記憶されるデータの形式)
また、メモリ120には、実施の形態1と同様に複数の(例えば7つの)データブロック401〜407が記憶されているが、各データブロック401〜407は、例えば図8に示すような構造を有している。すなわち、例えば主にデータブロック401を代表として説明すると、データブロック401には、データブロック番号421、鍵データ数431、および1つ以上の鍵情報441を含む復号化情報411と、実行ブロック451とが含まれている。各データブロック401〜407の鍵情報441〜447は全て暗号化される一方、実行ブロック451〜457は必要に応じて(例えばデータブロック401・402の実行ブロック451・452だけが)暗号化されている。
【0059】
上記復号化情報411のデータブロック番号421はデータブロックを特定するもので、データブロック401と一意に対応付けて設定されている。
【0060】
鍵データ数431は、復号化情報411中に含まれる鍵情報441の数(すなわち、後述するようにデータブロック401の次に読み込まれる可能性があるデータブロックの数)を示すもので、CPU301がデータブロック401中の全ての鍵情報441を読み込むために用いられる。なお、鍵データ数431を用いるのに代えて、復号化情報411の末尾に、復号化情報411の末尾であることを示す終了コードを設けて、鍵情報441の読み込み処理を完了させ得るようにしてもよい。
【0061】
鍵情報441は、データブロック401の次にCPU301に読み込まれる可能性がある1つ以上のデータブロックに対応して設けられ、それぞれ、鍵番号441aと、鍵データ441bと、暗号化有無情報441cとを含んでいる。具体的には、例えばデータブロック401の次に、後述するデータブロック分岐命令などによってデータブロック402の実行ブロック452またはデータブロック403の実行ブロック453が選択的に実行されるとし、前記のようにデータブロック402の実行ブロック452は暗号化される一方、データブロック403の実行ブロック453は暗号化されないとすると、復号化情報411には次のような2つの鍵情報441が設けられる。
【0062】
すなわち、一方の鍵情報441には、
(a)鍵番号441aとして、データブロック402のデータブロック番号422と等しい値が設定され、
(b)鍵データ441bとして、データブロック402の鍵情報442と実行ブロック452とを復号化するための鍵データが設定され、
(c)暗号化有無情報441cとして、実行ブロック452が暗号化されていることを示す値(例えば0x10)が設定される。
【0063】
また、もう一方の鍵情報441には、
(a)鍵番号441aとして、データブロック403のデータブロック番号423と等しい値が設定され、
(b)鍵データ441bとして、データブロック403の鍵情報443を復号化するための鍵データが設定され、
(c)暗号化有無情報441cとして、実行ブロック453が暗号化されていないことを示す値(例えば0x01)が設定される。
【0064】
なお、上記鍵情報441は、次に読み込まれる可能性があるデータブロックに対応するものだけでなく、例えば全てのデータブロックに対応するものを設けるようにして、後述するように鍵情報441を生成する際に、データブロックの読み込み順序の解析などをしなくてもよいようにしてもよい。
【0065】
また、データブロック401の実行ブロック451は、一連の命令コードから成るプログラム(データ)が分割された、他のデータブロックへのデータブロック分岐命令を含む命令コード列によって構成されている。上記データブロック分岐命令は、具体的には、例えば図9に示すように、条件分岐命令501の後に、データブロック402・403への無条件データブロック分岐命令502が設けられ、上記条件分岐命令501により判定条件に応じて分岐した後に、データブロック402・403の何れかに制御が移行するようになっている(言い替えれば、次に何れのデータブロックに移行するかはあらかじめ定まっておらず、何れに移行する可能性もある。)。また、条件判断によって、直接、データブロック402・403に移行する条件データブロック分岐命令503や、データブロック401の内外に移行する条件データブロック内外分岐命令504を用いたりしてもよい。
【0066】
上記のようなデータのメモリ120への格納は、例えば、前記実施の形態1(図4)と同じように、図10に示すようにして行うことができる。すなわち、図10における(S301)(S302)(S305)および(S306)は、実質的に図4の(S101)(S102)(S105)および(S106)とほぼ同じである。(S303)では、各データブロック401〜407にデータブロック番号421〜427を割り当てる一方、命令コード列を解析して、各データブロック401〜407から分岐する可能性のあるデータブロックを求め、分岐先のデータブロックに応じた鍵番号441a〜447aと鍵データ441b〜447bと暗号化有無情報441c〜447cとから鍵情報441〜447を生成するとともに、上記割り当てられたデータブロック番号421〜427、分岐先の数に等しい値の鍵データ数431〜437、および鍵情報441〜447を連結することにより、復号化情報411〜417が生成される。また、(S304)では、各命令コード列に含まれる分岐命令のうち、他のデータブロックに分岐するものをデータブロック分岐命令に置換して実行ブロック451〜457を生成し、これと復号化情報411〜417とからデータブロック401〜407が生成される。なお、上記のような分岐命令の置換を行わず、元のプログラムが生成される際に、あらかじめデータブロック分岐命令が用いられるようにしてもよい。
【0067】
(メモリ120に記憶されたデータの読み込みと実行動作)
上記のようにメモリ120に記憶されたプログラムがマイクロコンピュータ300に読み込まれて実行される場合の動作について、図11に基づいて説明する。
【0068】
(S401) マイクロコンピュータ300の外部から、最初に読み込まれるデータブロック、例えばデータブロック401についての鍵データ440bと、その鍵データ440bがデータブロック401に対するものであることを示す鍵番号440a(すなわちデータブロック401のデータブロック番号421に等しい値)と、暗号化された実行ブロック451が読み込まれる際に選択部304によって復号化部102の出力を選択することを示す選択指示とが入力されると、これらを復号化情報管理部306の鍵テーブル306aが保持する。
【0069】
(S402) 復号化制御部301aの制御によって、CPU301が選択部304に例えばHレベルのデータブロック番号・鍵データ数読み込み信号を出力すると、選択部304は、選択指示保持部105から出力される選択指示に係らず、メモリ120からの出力を直接選択するように切り替わる。
【0070】
(S403) 復号化制御部301aの制御によって、CPU301が復号化情報におけるデータブロック番号と鍵データ数とを読み込むためのアドレス(および図示しない読み出し制御信号)を順次メモリ120に出力する。これに応じて、メモリ120はデータブロック番号と鍵データ数とを出力する。このデータブロック番号と鍵データ数とは、そのまま(復号化部102による復号化がなされることなく)選択部304を介してCPU301に入力される。
【0071】
(S404) CPU301が上記データブロック番号を(図示しない出力タイミング信号と伴に)復号化情報管理部306に出力すると、制御部306bは、鍵テーブル306aに保持された鍵番号のうち、上記データブロック番号に一致する鍵番号と対応して保持されている鍵データおよび選択指示をそれぞれ鍵データ保持部103または選択指示保持部105に出力して設定する。ここで、上記データブロック番号と鍵テーブル306aに保持されている各鍵番号とが一致するかどうかの判定は、例えば、各鍵番号について並列に行わせるようにしてもよいし、一致するものが検出されるまで順次比較を行わせるようにしてもよい。ただし、特に後者の場合に、検出に要する時間が不定となる場合には、検出されたことを示す検出信号や鍵データ保持部103および選択指示保持部105への設定が完了したことを示す設定終了信号をCPU301に出力する一方、CPU301は上記信号が入力されるまで鍵情報441の読み込み(アドレスの出力等)を開始しないようにすることが好ましい。
【0072】
(S405) CPU301がデータブロック番号・鍵データ数読み込み信号をLレベル、鍵情報読み込み信号をHレベルにし、選択部304は復号化部102の出力を選択するように切り替わる。
【0073】
(S406) CPU301が上記鍵データ数に応じた数の鍵情報を順次メモリ120から選択部304を介して読み込み、鍵番号と、鍵データと、暗号化有無情報に応じた選択指示とを(図示しない出力タイミング信号と伴に)復号化情報管理部306に出力して、鍵テーブル306aに保持させる。
【0074】
(S407) 鍵データ数に応じた数の鍵情報についての処理が完了すると、CPU301は鍵情報読み込み信号をLレベルにする。そこで、選択部304は、選択指示保持部105に設定されている選択指示に基づいて、復号化部102の出力またはメモリ120の出力を選択的にCPU301に入力するように切り替わる。
【0075】
(S408) CPU301が実行ブロックの各命令コードに応じたアドレスを出力し、メモリ120から出力された命令コードは、選択部304を介し、暗号化の有無に応じて、すなわち暗号化されている場合には復号化部102により復号化された後、または平文である場合にはそのまま、CPU301に入力される。
【0076】
(S409) CPU301に入力された命令コードの命令がデータブロック分岐命令であれば、(S402)に戻って次のデータブロックについて同じ処理が繰り返される。
【0077】
(S410) 一方、データブロック分岐命令でなければ、CPU301は読み込まれた命令コードの命令を実行し、データブロック分岐命令が読み込まれるまで、(S408)〜(S410)を繰り返す。
【0078】
上記のように、各データブロックに分岐先のデータブロックに応じた1つ以上の鍵データを含めることにより、データブロックの読み込み順序が一定でない場合でも適切に各データブロックの内容を読み込むことができるので、実施の形態1と同様に記憶内容の秘匿性を高められることに加えて、プログラムの作成や分割を柔軟に行うことが容易にできる。
【0079】
なお、上記のように各データブロックに、分岐先となる可能性のあるデータブロック用の鍵データを(暗号化して)含めるのに代えて、分岐先となるデータブロックに、そのデータブロック用の複数の同一の鍵データが、それぞれ、そのデータブロックに分岐してくる分岐元となる可能性のあるデータブロックと同じように暗号化されたものを含めるようにしてもよい。すなわち、分岐先のデータブロックで読み込まれた複数の暗号化された鍵データのうち、分岐元のデータブロックに対応するものが、分岐元のデータブロックと同じ鍵データを用いて復号化されるようにすれば、そのデータブロック用の適切な鍵データを得ることができる。
【0080】
(実施の形態3)
上記実施の形態2と同様に、任意の順序でデータブロックを読み込ませることができるマイクロコンピュータの他の例について説明する。
【0081】
(メモリ120に記憶されるデータの形式)
まず、このマイクロコンピュータで読み込まれるデータがメモリ120に記憶される形式について、図12に基づいて説明する。メモリ120には、複数の(例えば3つの)データブロック701〜703が記憶され、各データブロック701〜703は、復号化情報711’〜713’と、実行ブロック721〜723とから構成されている。上記実行ブロック721〜723は、実施の形態1と同様に、一連の命令コードから成るプログラム(データ)が3つの実行単位に分割された命令コード列721a〜723aに実行終了コード230が付加されて構成され、必要に応じて(例えば実行ブロック721が)暗号化されている。
【0082】
上記暗号化された実行ブロック721を含むデータブロック701の復号化情報711’は、上記実行ブロック721を復号化するための鍵データ711が所定の共通鍵データ740により暗号化されたものである。一方、暗号化されていない実行ブロック722・723を含むデータブロック702・703の復号化情報712’・713’は、所定のダミー鍵データ710が、データブロック701と同じ共通鍵データ740により暗号化されたものである。(なお、復号化情報711’〜713’には、前記実施の形態1、2のように暗号化有無情報は含まれていないが、この点については後述する。)上記共通鍵データ740は、特に限定されないが、システムごとに異ならせると、データの秘匿性をより高めることが容易にできる。また、上記共通鍵データ740による鍵データ711の暗号化の手法も、実行ブロック721と同様に、共通鍵暗号方式など種々の手法を適用することができる。
【0083】
(装置の構成)
上記のような記憶内容を読み込むマイクロコンピュータ600は、図13に示すように、実施の形態1(図1)のマイクロコンピュータ100と比べて、CPU101、選択部104、および復号化情報管理部106に代えて、CPU601、選択部604、および復号化情報管理部606を備えている点が異なっている。
【0084】
CPU601に設けられる復号化制御部601aと実施の形態1の復号化制御部101aとの相違は、上記のようにメモリ120に記憶されるデータブロックの形式が実施の形態1とは異なることに対応するものである。
【0085】
選択部604は、例えばHレベルの復号化情報読み込み信号が入力される場合には、選択指示保持部105に設定された選択指示に係らず、メモリ120の出力を選択するようになっている。
【0086】
復号化情報管理部606は、鍵データ復号化部606a(第2の復号化部)と、共通鍵データ保持部606b(第2の鍵データ保持部)と、暗号化有無判定部606cと、比較データ保持部606dとを備えている。
【0087】
鍵データ復号化部606aは、CPU601がメモリ120から読み込んで出力した復号化情報711’〜713’(暗号化された鍵データ711またはダミー鍵データ710)を復号化して、元の鍵データ711またはダミー鍵データ710を出力するようになっている。上記鍵データの復号化には、マイクロコンピュータ600の外部から入力されて共通鍵データ保持部606bに保持された共通鍵データ740が用いられる。
【0088】
暗号化有無判定部606cは、上記鍵データ復号化部606aの出力と、マイクロコンピュータ600の外部から入力されて比較データ保持部606dに保持されたダミー鍵データ710とを比較し、一致する場合には、選択部604にメモリ120からの出力を選択させる選択指示を出力する一方、一致しない場合には、復号化部102(第1の復号化部)からの出力を選択させる選択指示を出力するようになっている。すなわち、実行ブロック722・723が暗号化されていないデータブロック702・703の復号化情報712’・713’が復号化されると鍵データ復号化部606aからはダミー鍵データ710が出力されるので、これと、比較データ保持部606dに保持されているダミー鍵データ710とが一致すると判定されることによって、実行ブロック722・723が暗号化されていないことを判別でき、選択部604にメモリ120の出力を選択させることができる。(なお、この場合、鍵データ保持部103(第1の鍵データ保持部)に上記ダミー鍵データ710が保持されたとしても、復号化部102の出力は選択部604によって選択されないので、CPU601に入力されるデータには影響がない。)
前記のようなデータのメモリ120への格納は、例えば図14に示すようにして行うことができる。同図において、(S502)(S505)(S507)は、実質的に前記実施の形態1(図4)の(S101)(S104)(S106)とほぼ同じである。(S501)では、データブロック701〜703の復号化情報711’〜713’を復号化して鍵データ711またはダミー鍵データ710を得るための共通鍵データ740を決定し、(S503)では、データブロック701用の鍵データ711を決めるとともにデータブロック702・703用のダミー鍵データ710を決め、(S504)では、鍵データ711およびダミー鍵データ710が共通鍵データ740で暗号化されて復号化情報711’〜713’が得られる。また、(S506)では、実行ブロック721だけが鍵データ711によって暗号化される。
【0089】
(メモリ120に記憶されたデータの読み込みと実行動作)
上記のようにメモリ120に記憶されたプログラムがマイクロコンピュータ600に読み込まれて実行される場合の動作について、図15に基づいて説明する。
【0090】
(S601) マイクロコンピュータ600の外部から、共通鍵データ740、およびダミー鍵データ710が入力されると、これらを復号化情報管理部606の共通鍵データ保持部606b、および比較データ保持部606dが保持する。
【0091】
(S602) 復号化制御部601aの制御によって、CPU601が選択部604に例えばHレベルの復号化情報読み込み信号を出力すると、選択部604は、選択指示保持部105から出力される選択指示に係らず、メモリ120からの出力を直接選択するように切り替わる。
【0092】
(S603) 復号化制御部601aの制御によって、CPU601がメモリ120に復号化情報を読み込むためのアドレス(および図示しない読み出し制御信号)を出力する。これに応じて、メモリ120は復号化情報を出力する。この復号化情報は、そのまま(復号化部102による復号化がなされることなく)選択部604を介してCPU601に入力される。ここで、復号化情報が復号化部102によって復号化されないのは、後に鍵データ復号化部606aによって復号化されるからである。
【0093】
(S604) CPU601は、入力された復号化情報を復号化情報管理部606の鍵データ復号化部606aに(図示しない出力タイミング信号と伴に)出力する。
【0094】
(S605) 鍵データ復号化部606aが、共通鍵データ保持部606bに保持されている共通鍵データ740を用いて、CPU601から入力された復号化情報を復号化し、得られた鍵データ711(またはダミー鍵データ710)を鍵データ保持部103に設定するとともに、暗号化有無判定部606cにも出力する。
【0095】
(S606) 暗号化有無判定部606cは鍵データ復号化部606aの出力と比較データ保持部606dに保持されているダミー鍵データ710と比較し、一致する場合には、選択部604にメモリ120からの出力を選択させる選択指示を出力する一方、一致しない場合には、復号化部102からの出力を選択させる選択指示を出力して、選択指示保持部105に設定する。すなわち、鍵データ復号化部606aによって復号化されたのがダミー鍵データ710であれば、そのデータブロックの実行ブロックは暗号化されていないので、選択部604にメモリ120からの出力を選択させ、そのままCPU601に入力させるようにする。また、鍵データ復号化部606aによって復号化されたのがダミー鍵データ710でなければ、それは鍵データなので、選択部604に復号化部102の出力を選択させ、上記(S605)で鍵データ保持部103に設定された鍵データ711を用いて復号化されたデータをCPU601に入力させるようにする。
【0096】
(S607) CPU601から出力される復号化情報読み込み信号がLレベルになると、選択部604は、選択指示保持部105に設定されている選択指示に基づいて、復号化部102の出力またはメモリ120の出力を選択的にCPU601に入力するように切り替わる。
【0097】
(S608) CPU601が実行ブロックの各命令コードに応じたアドレスを出力し、メモリ120から出力された命令コードは、選択部604を介し、暗号化の有無に応じて、すなわち暗号化されている場合には復号化部102により復号化された後、または平文である場合にはそのまま、CPU601に入力される。
【0098】
(S609) メモリ120から出力されたのが実行終了コード230であれば、(S602)に戻って次のデータブロックについて同じ処理が繰り返される。
【0099】
(S610) 一方、メモリ120から出力されたのが実行終了コード230でなければ、CPU601は読み込まれた命令コードの命令を実行し、実行終了コード230が読み込まれるまで、(S608)〜(S610)を繰り返す。
【0100】
上記のように、各実行ブロックを復号化する鍵データを、各実行ブロックと同じデータブロックに含めることにより、上記鍵データの取得はデータブロックの読み込み順序に依存しないので、任意の順序で読み込むことができる。また、マイクロコンピュータ600の外部から与える必要のある(管理する必要のある)鍵データは、(各実行ブロックを復号化するための鍵データを復号化する)上記共通鍵データだけなので、やはり、鍵データの管理の簡素化を図ることができる。ここで、上記共通鍵データが万一漏洩すると複数の鍵データが解読される可能性はあるが、これによって知られてしまうのはあくまで鍵データだけであり、記憶データを取得するためには、さらにその鍵データを用いた復号化を行わなければならない。そして、そのためには、鍵データの他に暗号化アルゴリズム、各データブロック701〜703の区切りや復号化情報711’〜713’と実行ブロック721との区切り、復号化情報711’〜713’の配置なども知る必要があるので、メモリ120の記憶内容を解読することはやはり非常に困難であり、実際上、記憶内容の漏洩を防止することが容易にできる。
【0101】
なお、上記の例では、暗号化有無判定部606cが鍵データ復号化部606aの出力を比較データ保持部606dの出力と比較する例を示したが、鍵データ保持部103の出力を比較するようにしてもよい。この場合には、鍵データ保持部103に同じ値が保持されている間は、暗号化有無判定部606cからの出力も同じに保たれるので、選択指示保持部105を省略することができる。
【0102】
さらに、CPU601から出力される(鍵データ復号化部606aによる復号化前の)復号化情報711’〜713’を比較データ保持部606dの出力と比較するようにしてもよい。この場合には、データブロック701〜703の復号化情報712’・713’を生成する際にダミー鍵データ710を暗号化しなくてもよい。
【0103】
また、上記の例では、復号化情報711’〜713’の復号化を鍵データ復号化部606aが行い、実行ブロック721〜723の復号化を復号化部102が行うように構成された例を示したが、これに限らず、例えばそれぞれの復号化を行う際に、共通鍵データ740または鍵データ711を鍵データ保持部103に設定するようにして、何れの復号化も復号化部102によって行わせるようにしてもよい。このように復号化部を兼用することにりハードウェア規模を小さく抑えることができる。一方、前記のように復号化部を分けて設ける場合には、兼用する場合に比べて、それぞれの復号化に互いに異なるアルゴリズムを用いるようにすることが容易にできる。特に、鍵データの復号化は各データブロックについて1回行うだけなので、マイクロコンピュータ600の処理時間に大きな影響を与えることなく、暗号強度の高い暗号化方式を適用することなども容易にできる。
【0104】
ここで、例えば、鍵データ復号化部606aの復号化に要するクロックサイクルが、ループ処理などによって複数クロックになる場合や不定である場合などには、鍵データ復号化部606aによる復号化が完了して鍵データ保持部103に鍵データが設定されるタイミングで復号化情報管理部606から設定終了信号を出力させ、これがCPU601に入力されるまでの間、CPU601に次のアドレス出力等のデータの読み込み動作を停止させるようにすれば、復号化部102によって復号化されたデータを確実にCPU601に入力させることが容易にできる。
【0105】
(実施の形態4)
上記実施の形態3の変形例で説明したようにCPU601がメモリ120から読み込んだ復号化情報711’〜713’を鍵データ復号化部606aに出力した後、鍵データ復号化部606aによる復号化が完了して鍵データ711が鍵データ保持部103に設定されるまでの間にCPU601の動作を停止させる場合、マイクロコンピュータ300とメモリ120との間で送受される信号を監視すれば、マイクロコンピュータ600が通常のメモリアクセスをしている場合とは異なる動作をしていると推測しやすくなる。そこで、もし、メモリ120の記憶内容を不正に取得しようとする者によって、アドレスが出力されない期間にCPU601の内部で復号化処理がなされていると推測されたとすると、その直前に出力されたアドレスの領域に着目されやすくなる。その場合でも、その着目された領域に鍵データが記憶されているとは限らず、また、前記のように暗号化アルゴリズム等が判らなければ、メモリ120の記憶内容の解読は困難であることに変わりないが、上記のように特定の領域に着目されるようなことも起こりにくいようにするために、疑似的なアドレスをマイクロコンピュータ600から出力させるようにしてもよい。
【0106】
具体的には、例えば図16に示すマイクロコンピュータ800は、実施の形態3のマイクロコンピュータ600(図13)と比べて、CPU601と、復号化情報管理部606とに代えて、CPU601’と、鍵データ復号化部606a’を有する復号化情報管理部606’とを備えるとともに、さらに、擬似アドレス発生部811(擬似読み込み信号出力部)を備えている点が異なっている。
【0107】
上記鍵データ復号化部606a’は、復号化が完了して鍵データ保持部103に鍵データが設定されるタイミングで、例えばHレベルの設定終了信号をCPU601’に出力するようになっている。
【0108】
CPU601’は、基本的な動作はCPU601と同じであるが、復号化情報管理部606’の鍵データ復号化部606a’によって、暗号化された鍵データが復号化される間(すなわち、復号化情報711’〜713’と伴に例えばHレベルの出力タイミング信号を鍵データ復号化部606a’に出力してから、Hレベルの設定終了信号が鍵データ復号化部606a’からCPU601’に入力されるまでの間)、次のアドレス出力等のデータの読み込み動作を停止するようになっている。
【0109】
擬似アドレス発生部811は、CPU601’から出力される復号化情報711’〜713’の出力タイミング信号がHレベルになってから、鍵データ復号化部606a’から出力される設定終了信号がHレベルになるまでの間に、疑似的なアドレスを出力するようになっている。より詳しくは、CPU601’から出力される出力タイミング信号がHレベルになると、乱数生成部811aは乱数を発生してインクリメント部811bに初期値として設定し(保持させ)、インクリメント部811bは、図示しないクロック信号に応じて、保持している値を順次インクリメントし、擬似アドレスとして出力するようになっている。また、出力制御部811cは、上記出力タイミング信号がHレベルになってから、設定終了信号がHレベルになるまでの間は、上記インクリメント部811bから出力される値(および図示しない読み出し制御信号)を出力する一方、その他の場合には、CPU601’から出力されるアドレスをそのまま出力するようになっている。(上記のように擬似アドレスが出力されると、メモリ120からは無効なデータが出力されることになるが、その際、CPU601’は上記のようにデータの読み込み動作を停止しているので、そのような無効なデータはCPU601’に取り込まれない。)
なお、上記各実施の形態では、メモリ120の記憶内容がプログラムである例を示したが、これに限らず、所定のプログラム(読み込みプログラム)の実行によって読み込まれる単なるデータなどが、同様に分割、暗号化されて記憶されるようにしてもよい。その場合、各データブロックの読み込み順序は、上記読み込みプログラムによってあらかじめ定められていてもよいし、データブロック中に含められたポインタや管理情報などによって制御されるようにしてもよい。すなわち、何れの場合でも、どのデータブロックの次にどのデータブロックが読み込まれるかが定まっていて、それに応じた鍵データが各データブロックに含められるなどされていればよい。ここで、上記のように単なるデータが暗号化されて記憶されている場合、これを読み込む読み込みプログラムも同様に暗号化すれば、より秘匿性を高くすることができるが、読み込みプログラムを暗号化しなくても、これによって読み込まれる内容自体の解読は、やはり相当に困難なものにすることができる。
【0110】
また、上記の例では、鍵データ保持部103に設定される鍵データなどの初期値がマイクロコンピュータ100の外部から入力される例を示したが、これに限らずマイクロコンピュータ100の内部にあらかじめ設定された値などが用いられるようにしてもよい。
【0111】
また、図3等に示したデータ構造は論理的なもので、必ずしもメモリ120における物理的な記憶領域の関係が同図に示すようになっている必要はない。
【0112】
また、上記各実施の形態や変形例で説明した構成要素等は、それぞれ論理的に可能な範囲で、種々組み合わせてもよい。具体的には、例えば、実施の形態2〜4において、実施の形態1の変形例で説明したように、選択部を設けず、全ての実行ブロックが暗号化されたデータブロックを読み込むようにしたり、実施の形態1、2において、選択部の切り替えを暗号化有無情報に基づいて行うのに代えて、実施の形態3、4で説明したようにダミー鍵データを用いて行うようにしたり、または逆に、実施の形態3、4において暗号化有無情報に基づいて切り替えるようにしたり、また、実施の形態1、2において、各復号化情報に含まれる鍵データが実施の形態3、4と同様に共通鍵データによって復号化されるようにしたりしてもよい。
【0113】
【発明の効果】
以上のように本発明によると、記憶媒体に記憶されるべきデータを複数に分割して、それぞれ互いに異なる鍵データによって復号化されるように暗号化するとともに、上記鍵データも、それぞれ他の鍵データによって復号化されるように暗号化して記憶媒体に記憶させ、その記憶内容を読み込む際に、暗号化された鍵データから復号化された鍵データを用いて、暗号化されたデータおよび次の鍵データの復号化を順次行うようにすることにより、第三者が記憶媒体の記憶内容を不正に取得することの困難性を高めることができるとともに、複数の鍵データを管理する必要がなく、したがって、暗号鍵の管理の複雑化などを招くことなく、記憶媒体に記憶されたデータが容易に第三者に漏洩するのを防止可能にすることができる。
【図面の簡単な説明】
【図1】実施の形態1のマイクロコンピュータ100の要部の構成を示すブロック図である。
【図2】同、メモリ120の記憶内容の例を示す説明図である。
【図3】同、データブロック201のデータ構造の例を示す説明図である。
【図4】同、メモリ120へのデータの格納手順の例を示すフローチャートである。
【図5】同、メモリ120に記憶されたプログラムがマイクロコンピュータ100に読み込まれて実行される場合の動作を示すフローチャートである。
【図6】実施の形態2のマイクロコンピュータ300の要部の構成を示すブロック図である。
【図7】同、鍵テーブル306aの保持内容の例を示す説明図である。
【図8】同、データブロック401のデータ構造の例を示す説明図である。
【図9】同、命令コード列中のデータブロック分岐命令の例を示す説明図である。
【図10】同、メモリ120へのデータの格納手順の例を示すフローチャートである。
【図11】同、メモリ120に記憶されたプログラムがマイクロコンピュータ300に読み込まれて実行される場合の動作を示すフローチャートである。
【図12】実施の形態3のデータブロック701のデータ構造の例を示す説明図である。
【図13】同、マイクロコンピュータ600の要部の構成を示すブロック図である。
【図14】同、メモリ120へのデータの格納手順の例を示すフローチャートである。
【図15】同、メモリ120に記憶されたプログラムがマイクロコンピュータ600に読み込まれて実行される場合の動作を示すフローチャートである。
【図16】実施の形態4のマイクロコンピュータ800の要部の構成を示すブロック図である。
【符号の説明】
100 マイクロコンピュータ
101 CPU
101a 復号化制御部
102 復号化部
103 鍵データ保持部
104 選択部
105 選択指示保持部
106 復号化情報管理部
106a 鍵データ一時保持部
106b 選択指示一時保持部
120 メモリ
201〜205 データブロック
211〜215 復号化情報
210a〜215a 鍵データ
211b〜215b 暗号化有無情報
221〜225 実行ブロック
221a〜225a 命令コード列
230 実行終了コード
300 マイクロコンピュータ
301 CPU
301a 復号化制御部
304 選択部
306 復号化情報管理部
306a 鍵テーブル
306b 制御部
401〜407 データブロック
411〜417 復号化情報
421〜427 データブロック番号
431〜437 鍵データ数
441〜447 鍵情報
440a〜447a 鍵番号
440b〜447b 鍵データ
441c〜447c 暗号化有無情報
451〜457 実行ブロック
501 条件分岐命令
502 無条件データブロック分岐命令
503 条件データブロック分岐命令
504 条件データブロック内外分岐命令
600 マイクロコンピュータ
601 CPU
601’ CPU
601a 復号化制御部
604 選択部
606 復号化情報管理部
606’ 復号化情報管理部
606a 鍵データ復号化部
606a’ 鍵データ復号化部
606b 共通鍵データ保持部
606c 暗号化有無判定部
606d 比較データ保持部
701〜703 データブロック
710 ダミー鍵データ
711 鍵データ
711’〜713’ 復号化情報
721〜723 実行ブロック
721a〜723a 命令コード列
740 共通鍵データ
800 マイクロコンピュータ
811 擬似アドレス発生部
811a 乱数生成部
811b インクリメント部
811c 出力制御部

Claims (11)

  1. 記憶されるべきデータが複数の分割データに分割され、そのうちの少なくとも一部の分割データが、それぞれ異なる鍵データによって復号化されるように暗号化された暗号化データ、および
    上記鍵データが、それぞれ他の鍵データによって復号化されるように暗号化された暗号化鍵データが記憶された記憶媒体から、
    上記暗号化データおよび上記暗号化鍵データを読み込んで復号化する情報処理装置であって、
    上記暗号化データ、および上記暗号化鍵データの読み込みを制御する読み込み制御部と、
    上記読み込み制御部の制御によって読み込まれた暗号化データ、および暗号化鍵データを復号化する復号化部と、
    上記復号化部によって上記暗号化鍵データから復号化された鍵データを保持する鍵データ保持部とを備え、
    上記復号化部は、上記鍵データ保持部に保持された鍵データに基づいて、上記暗号化データおよび暗号化鍵データを復号化するように構成されていることを特徴とする情報処理装置。
  2. 請求項1の情報処理装置であって、
    上記読み込み制御部は、
    全ての上記分割データがそれぞれ暗号化されて上記記憶媒体に記憶された各暗号化データと、上記暗号化データをそれぞれ復号化する鍵データが暗号化されて上記記憶媒体に記憶された各暗号化鍵データとを、所定の一意に定まった順序で順次読み込むように構成され、
    上記復号化部は、上記鍵データ保持部に保持された鍵データに基づいて、上記記憶媒体から読み込まれた第1の暗号化データおよび第1の暗号化鍵データを復号化して、第1の分割データおよび第1の鍵データを出力するとともに、
    復号化されて上記鍵データ保持部に保持された上記第1の鍵データに基づいて、上記第1の暗号化データおよび第1の暗号化鍵データに後続して読み込まれた、第2の暗号化データおよび第2の暗号化鍵データを復号化するように構成されていることを特徴とする情報処理装置。
  3. 請求項1の情報処理装置であって、
    上記読み込み制御部は、
    上記複数の分割データのうち、一部の分割データが暗号化されて上記記憶媒体に記憶された暗号化データ、
    他の分割データが暗号化されることなく上記記憶媒体に記憶された非暗号化データ、および
    上記各暗号化データおよび非暗号化データにそれぞれ対応して上記記憶媒体に記憶された暗号化鍵データを、
    所定の一意に定まった順序で順次読み込むように構成されるとともに、
    上記復号化部は、
    上記記憶媒体から第1の暗号化鍵データと第1の暗号化データとが読み込まれた場合には、
    これらを上記鍵データ保持部に保持された鍵データに基づき復号化して、第1の分割データおよび第1の鍵データを出力する一方、
    上記記憶媒体から第1の暗号化鍵データと第1の非暗号化データとが読み込まれた場合には、
    上記第1の暗号化鍵データを上記鍵データ保持部に保持された鍵データに基づき復号化して、第1の鍵データを出力し、
    上記第1の暗号化鍵データと第1の暗号化データと、または上記第1の暗号化鍵データと第1の非暗号化データとに後続して読み込まれた、第2の暗号化鍵データ、または第2の暗号化鍵データと第2の暗号化データとを、上記第1の鍵データに基づいて復号化するように構成されていることを特徴とする情報処理装置。
  4. 請求項1の情報処理装置であって、
    上記読み込み制御部は、
    上記複数の分割データのうち、一部の分割データが暗号化されて上記記憶媒体に記憶された暗号化データ、
    他の分割データが暗号化されることなく上記記憶媒体に記憶された非暗号化データ、および
    上記各暗号化データに対応して上記記憶媒体に記憶された暗号化鍵データを、
    所定の一意に定まった順序で順次読み込むように構成されるとともに、
    上記復号化部は、
    上記記憶媒体から第1の暗号化鍵データおよび第1の暗号化データが読み込まれた場合には、
    これらを上記鍵データ保持部に保持された鍵データに基づき復号化して、第1の分割データおよび第1の鍵データを出力するとともに、
    上記第1の暗号化鍵データおよび第1の暗号化データ以降に読み込まれた、第2の暗号化鍵データおよび第2の暗号化データを、上記第1の鍵データに基づいて復号化するように構成されていることを特徴とする情報処理装置。
  5. 請求項1の情報処理装置であって、
    上記読み込み制御部は、上記記憶媒体に記憶された第1の暗号化データに後続して、上記第1の暗号化データに対応してあらかじめ定まった1つ以上の第2の暗号化データから成る後続候補群のうちの何れかの第2の暗号化データを読み込むとともに、
    上記第1の暗号化データに対応して、それぞれ上記後続候補群の各第2の暗号化データを復号化するための鍵データが暗号化された1つ以上の暗号化鍵データを含む暗号化鍵データ群を読み込むように構成され、
    上記鍵データ保持部は、上記記憶媒体から読み込まれた上記暗号化鍵データ群の各暗号化鍵データから復号化された1つ以上の鍵データをを保持し、
    上記復号化部は、鍵データ保持部に保持された上記1つ以上の鍵データのうち、上記第1の暗号化データに後続して実際に読み込まれた第2の暗号化データに対応する鍵データに基づいて、上記第2の暗号化データ、およびその第2の暗号化データに対応して読み込まれた暗号化鍵データ群の各暗号化鍵データを復号化するように構成されていることを特徴とする情報処理装置。
  6. 請求項2から請求項5のうちの何れか1項の情報処理装置であって、
    上記記憶媒体に記憶されるべきデータは、上記情報処理装置に実行させる命令を含み、上記暗号化データおよび非暗号化データの読み込み順序が、上記命令のうちの分岐命令によって決定されることを特徴とする情報処理装置。
  7. 記憶されるべきデータが複数の分割データに分割され、そのうちの少なくとも一部の分割データが、それぞれ異なる鍵データによって復号化されるように暗号化された暗号化データ、および
    上記鍵データが、それぞれ共通の共通鍵データによって復号化されるように暗号化された暗号化鍵データが記憶された記憶媒体から、
    上記暗号化データおよび上記暗号化鍵データを読み込んで復号化する情報処理装置であって、
    上記暗号化データ、および上記暗号化鍵データの読み込みを制御する読み込み制御部と、
    上記読み込み制御部の制御によって読み込まれた暗号化データ、および暗号化鍵データを復号化する復号化部と、
    上記復号化部によって上記暗号化鍵データから復号化された鍵データ、および上記共通鍵データを保持する鍵データ保持部とを備え、
    上記復号化部は、上記鍵データ保持部に保持された上記鍵データまたは上記共通鍵データに基づいて、上記暗号化データおよび上記暗号化鍵データを復号化するように構成されていることを特徴とする情報処理装置。
  8. 請求項7の情報処理装置であって、
    上記鍵データ保持部は、上記暗号化鍵データから復号化された鍵データを保持する第1の鍵データ保持部と、上記共通鍵データを保持する第2の鍵データ保持部とを備え、
    上記復号化部は、上記第1の鍵データ保持部に保持された鍵データに基づいて上記暗号化データを復号化する第1の復号化部と、上記第2の鍵データ保持部に保持された共通鍵データに基づいて上記暗号化鍵データを復号化する第2の復号化部とを備えたことを特徴とする情報処理装置。
  9. 請求項8の情報処理装置であって、
    さらに、上記第2の復号化部によって上記暗号化鍵データの復号化が行われる間に、上記記憶媒体に対して、次に読み込むべきデータとは異なる領域に記憶されているデータを読み込むのと同じ信号を出力する擬似読み込み信号出力部を備えたことを特徴とする情報処理装置。
  10. 記憶されるべきデータが複数の分割データに分割され、そのうちの少なくとも一部の分割データが、それぞれ異なる鍵データによって復号化されるように暗号化された暗号化データ、および
    上記鍵データが、それぞれ他の鍵データによって復号化されるように暗号化された暗号化鍵データが記憶された記憶媒体から、
    上記暗号化データおよび上記暗号化鍵データを読み込んで復号化する情報処理方法であって、
    上記暗号化データ、および上記暗号化鍵データを読み込む読み込みステップと、
    上記読み込みステップによって読み込まれた暗号化データ、および暗号化鍵データを復号化し、上記暗号化鍵データから復号化された鍵データを鍵データ保持部に保持させる復号化ステップとを有し、
    上記復号化ステップは、上記鍵データ保持部に保持された上記鍵データに基づいて、上記暗号化データおよび上記暗号化鍵データを復号化することを特徴とする情報処理方法。
  11. 記憶されるべきデータが複数の分割データに分割され、そのうちの少なくとも一部の分割データが、それぞれ異なる鍵データによって復号化されるように暗号化された暗号化データ、および
    上記鍵データが、それぞれ共通の共通鍵データによって復号化されるように暗号化された暗号化鍵データが記憶された記憶媒体から、
    上記暗号化データおよび上記暗号化鍵データを読み込んで復号化する情報処理方法であって、
    上記暗号化データ、および上記暗号化鍵データを読み込む読み込みステップと、
    上記読み込みステップによって読み込まれた暗号化データ、および暗号化鍵データを復号化し、上記暗号化鍵データから復号化された鍵データを鍵データ保持部に保持させる復号化ステップとを有し、
    上記復号化ステップは、上記鍵データ保持部に保持された上記鍵データまたは上記共通鍵データに基づいて、上記暗号化データおよび上記暗号化鍵データを復号化することを特徴とする情報処理方法。
JP2003055626A 2003-03-03 2003-03-03 情報処理装置、および情報処理方法 Pending JP2004265194A (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2003055626A JP2004265194A (ja) 2003-03-03 2003-03-03 情報処理装置、および情報処理方法
CN200410008212.0A CN1254726C (zh) 2003-03-03 2004-03-01 信息处理装置以及信息处理方法
US10/790,711 US20040177257A1 (en) 2003-03-03 2004-03-03 Data processing device and data processing method

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003055626A JP2004265194A (ja) 2003-03-03 2003-03-03 情報処理装置、および情報処理方法

Publications (1)

Publication Number Publication Date
JP2004265194A true JP2004265194A (ja) 2004-09-24

Family

ID=32923503

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003055626A Pending JP2004265194A (ja) 2003-03-03 2003-03-03 情報処理装置、および情報処理方法

Country Status (3)

Country Link
US (1) US20040177257A1 (ja)
JP (1) JP2004265194A (ja)
CN (1) CN1254726C (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006185347A (ja) * 2004-12-28 2006-07-13 Fujitsu Ltd 情報処理装置及び情報処理方法
JP2008040599A (ja) * 2006-08-02 2008-02-21 Toppan Printing Co Ltd 電子データ分割保持装置、電子データ分割保持システム、及び電子データ分割保持方法
JP2011221922A (ja) * 2010-04-13 2011-11-04 Kddi Corp 自己書き換え処理装置、自己書き換え処理方法、およびプログラム
CN104919468A (zh) * 2013-01-18 2015-09-16 现代单片机有限公司 非挥发性记忆体的二进制数据保护方法及其装置
JP2022530947A (ja) * 2019-04-29 2022-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散による難読化に基づくセキュアなデータ・ストレージ

Families Citing this family (29)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE10142498A1 (de) * 2001-08-30 2003-03-27 Siemens Ag Verfahren zur Ver- und Entschlüsselung von Kommunikationsdaten
US7162647B2 (en) 2004-03-11 2007-01-09 Hitachi, Ltd. Method and apparatus for cryptographic conversion in a data storage system
US8954751B2 (en) * 2004-10-08 2015-02-10 International Business Machines Corporation Secure memory control parameters in table look aside buffer data fields and support memory array
US7657756B2 (en) * 2004-10-08 2010-02-02 International Business Machines Corporaiton Secure memory caching structures for data, integrity and version values
BRPI0517026A (pt) 2004-10-25 2008-09-30 Rick L Orsini método e sistema analisador de dados seguros
JP2006253745A (ja) * 2005-03-08 2006-09-21 N-Crypt Inc データ処理装置、データ処理システム、及びデータ処理方法
WO2006115217A1 (ja) * 2005-04-21 2006-11-02 Matsushita Electric Industrial Co., Ltd. プログラム変換装置及び秘密保持プログラム
US8705739B2 (en) * 2005-08-29 2014-04-22 Wms Gaming Inc. On-the-fly encryption on a gaming machine
US8306918B2 (en) 2005-10-11 2012-11-06 Apple Inc. Use of media storage structure with multiple pieces of content in a content-distribution system
CN100346255C (zh) * 2005-10-19 2007-10-31 北京飞天诚信科技有限公司 提取部分代码至加密装置中的软件版权保护方法
CN103384196A (zh) 2005-11-18 2013-11-06 安全第一公司 安全数据解析方法和系统
EP1826697A1 (en) * 2006-02-24 2007-08-29 Giga Games System, SL Method for booting and using software for AWP and B type amusing gaming machines, and for C type casino machines
JP2007318514A (ja) * 2006-05-26 2007-12-06 Sony Corp 情報処理装置および方法、並びにプログラム
CN100446019C (zh) * 2006-07-19 2008-12-24 北京飞天诚信科技有限公司 一种软件版权保护方法
JP5050842B2 (ja) * 2007-12-26 2012-10-17 沖電気工業株式会社 暗号化装置、暗号化プログラム、データ提供装置及びデータ提供システム
JP5183279B2 (ja) * 2008-04-03 2013-04-17 ルネサスエレクトロニクス株式会社 情報処理装置、命令コードの暗号化方法および暗号化命令コードの復号化方法
US9967092B2 (en) 2010-05-25 2018-05-08 Via Technologies, Inc. Key expansion logic using decryption key primitives
US8671285B2 (en) * 2010-05-25 2014-03-11 Via Technologies, Inc. Microprocessor that fetches and decrypts encrypted instructions in same time as plain text instructions
US9798898B2 (en) 2010-05-25 2017-10-24 Via Technologies, Inc. Microprocessor with secure execution mode and store key instructions
US9911008B2 (en) 2010-05-25 2018-03-06 Via Technologies, Inc. Microprocessor with on-the-fly switching of decryption keys
US9892283B2 (en) 2010-05-25 2018-02-13 Via Technologies, Inc. Decryption of encrypted instructions using keys selected on basis of instruction fetch address
US9118461B2 (en) * 2010-10-21 2015-08-25 Cisco Technology, Inc. Code diversity method and system
US8611532B2 (en) * 2011-10-27 2013-12-17 Verizon Patent And Licensing Inc. Managing media content decryption keys in encrypted media content distribution systems and methods
US9881177B2 (en) 2013-02-13 2018-01-30 Security First Corp. Systems and methods for a cryptographic file system layer
US9021163B1 (en) 2014-04-17 2015-04-28 OPSWAT, Inc. Determining whether a data storage is encrypted
US9298647B2 (en) * 2014-08-25 2016-03-29 HGST Netherlands B.V. Method and apparatus to generate zero content over garbage data when encryption parameters are changed
CN104754155A (zh) * 2015-02-12 2015-07-01 杭州晟元芯片技术有限公司 一种分布式网络电话系统
CN107256363B (zh) * 2017-06-13 2020-03-06 杭州华澜微电子股份有限公司 一种由加解密模块阵列组成的高速加解密装置
JP2019029761A (ja) * 2017-07-27 2019-02-21 京セラドキュメントソリューションズ株式会社 情報処理装置および情報処理装置の制御方法

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5999629A (en) * 1995-10-31 1999-12-07 Lucent Technologies Inc. Data encryption security module
US6069957A (en) * 1997-03-07 2000-05-30 Lucent Technologies Inc. Method and apparatus for providing hierarchical key system in restricted-access television system
US6014745A (en) * 1997-07-17 2000-01-11 Silicon Systems Design Ltd. Protection for customer programs (EPROM)
US6587948B1 (en) * 1998-02-13 2003-07-01 Sony Corporation Recording apparatus, recording medium, playback apparatus, recording method and playback method
US6735313B1 (en) * 1999-05-07 2004-05-11 Lucent Technologies Inc. Cryptographic method and apparatus for restricting access to transmitted programming content using hash functions and program identifiers
JP4622064B2 (ja) * 2000-04-06 2011-02-02 ソニー株式会社 情報記録装置、情報再生装置、情報記録方法、情報再生方法、および情報記録媒体、並びにプログラム提供媒体
GB0023409D0 (en) * 2000-09-22 2000-11-08 Integrated Silicon Systems Ltd Data encryption apparatus
US6976166B2 (en) * 2001-02-06 2005-12-13 Hewlett-Packard Development Company, L.P. Method and apparatus for partial encryption of content
US7139398B2 (en) * 2001-06-06 2006-11-21 Sony Corporation Time division partial encryption
US20030002668A1 (en) * 2001-06-30 2003-01-02 Gary Graunke Multi-level, multi-dimensional content protections

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006185347A (ja) * 2004-12-28 2006-07-13 Fujitsu Ltd 情報処理装置及び情報処理方法
JP2008040599A (ja) * 2006-08-02 2008-02-21 Toppan Printing Co Ltd 電子データ分割保持装置、電子データ分割保持システム、及び電子データ分割保持方法
JP2011221922A (ja) * 2010-04-13 2011-11-04 Kddi Corp 自己書き換え処理装置、自己書き換え処理方法、およびプログラム
CN104919468A (zh) * 2013-01-18 2015-09-16 现代单片机有限公司 非挥发性记忆体的二进制数据保护方法及其装置
JP2016508629A (ja) * 2013-01-18 2016-03-22 アバブ セミコンダクタ カンパニー リミテッド 不揮発性メモリのバイナリデータの保護方法及びその装置
JP2022530947A (ja) * 2019-04-29 2022-07-05 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散による難読化に基づくセキュアなデータ・ストレージ
JP7429086B2 (ja) 2019-04-29 2024-02-07 インターナショナル・ビジネス・マシーンズ・コーポレーション 分散による難読化に基づくセキュアなデータ・ストレージ

Also Published As

Publication number Publication date
US20040177257A1 (en) 2004-09-09
CN1254726C (zh) 2006-05-03
CN1527173A (zh) 2004-09-08

Similar Documents

Publication Publication Date Title
JP2004265194A (ja) 情報処理装置、および情報処理方法
JP3975677B2 (ja) 情報処理装置
JP3747520B2 (ja) 情報処理装置及び情報処理方法
US11308241B2 (en) Security data generation based upon software unreadable registers
US11387980B2 (en) Hardware multiple cipher engine
JP2001514834A (ja) 安全決定性暗号鍵発生システムおよび方法
US20070237324A1 (en) Cryptographic processing
JP2006277411A (ja) プロセッサ、メモリ、コンピュータシステムおよびデータ転送方法
JP2012151805A (ja) データ暗号化装置、及び、メモリカード
CN118632233A (zh) 抗侧信道攻击的加密方法及装置、设备、用户识别卡
JP6162556B2 (ja) 記憶装置及び情報処理システム
US10642962B2 (en) Licensable function for securing stored data
JP5964460B2 (ja) データの暗号化記憶システム
JP2004350007A (ja) 暗号方式
US20090013183A1 (en) Confidential Information Processing Method, Confidential Information Processor, and Content Data Playback System
JP6348273B2 (ja) 情報処理システム
CN114826562B (zh) 一种数据加密方法、装置、电子设备及存储介质
JP2019198071A (ja) 集積回路デバイス及び集積回路デバイスの動作方法
KR101105384B1 (ko) 키 암호화 및 셔플링이 적용된 부채널 공격에 안전한 키 관리방법
KR20190069763A (ko) 하드웨어 인증칩 기반의 경량 암호 알고리즘 보안 장치
JP6631989B2 (ja) 暗号化装置、制御方法、及びプログラム
JP5586758B1 (ja) 動的暗号化鍵生成システム
WO2021044465A1 (ja) 暗号化装置、復号装置、コンピュータプログラム、暗号化方法、復号方法及びデータ構造
KR20060110383A (ko) 네트워크 보안 프로세서의 다중모드 암호화 장치
US7539304B1 (en) Integrated circuit having self test capability using message digest and method for testing integrated circuit having message digest generation circuitry