JP2009278491A - マイクロプロセッサ及びマイクロプロセッサ応用装置 - Google Patents

マイクロプロセッサ及びマイクロプロセッサ応用装置 Download PDF

Info

Publication number
JP2009278491A
JP2009278491A JP2008129240A JP2008129240A JP2009278491A JP 2009278491 A JP2009278491 A JP 2009278491A JP 2008129240 A JP2008129240 A JP 2008129240A JP 2008129240 A JP2008129240 A JP 2008129240A JP 2009278491 A JP2009278491 A JP 2009278491A
Authority
JP
Japan
Prior art keywords
data
microprocessor
encryption
key
encryption key
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
JP2008129240A
Other languages
English (en)
Inventor
Hiroyuki Yokogawa
裕幸 横川
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.)
Casio Computer Co Ltd
Original Assignee
Casio Computer 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 Casio Computer Co Ltd filed Critical Casio Computer Co Ltd
Priority to JP2008129240A priority Critical patent/JP2009278491A/ja
Publication of JP2009278491A publication Critical patent/JP2009278491A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】複数のプログラムをセキュアに扱うことのできるマイクロプロセッサ及びマイクロプロセッサ応用装置を提供する。
【解決手段】マイクロプロセッサ10は、データを暗号化すると共に、暗号化されたデータを復号化するための暗号鍵を複数記憶する鍵レジスタ15と、メモリ30及びI/O20にデータを転送又は書き出す場合に暗号鍵を用いて当該データを暗号化すると共に当該データを暗号化する際に用いられた暗号鍵を用いて当該データを復号化する暗号/復号手段14と、復号化されたデータを記憶し、外部からアクセス不可能なキャッシュ12と、を備え、データを共有しない複数のプログラムを並行して処理する場合に、プログラム毎に異なる暗号鍵によるデータの暗号化を行う。
【選択図】図1

Description

本発明は、マイクロプロセッサ及びマイクロプロセッサ応用装置に関する。
近年のコンピュータ利用技術の進展により、プログラムの解析や改ざん等を容易に行いうる状況が生じている。このため、プログラム及びプログラムの扱うデータ等(以下、プログラム等とする)をより確実に保護すべく、プログラム等の解析の困難性(耐タンパ性)を高める技術が求められている。当該技術のひとつとして、プログラム等の暗号化がある。
しかしながら、暗号化されたプログラム等の読み出しに際し、当該暗号化されたプログラムは復号化されるが、このとき復号化されたプログラム等をメモリに平文で格納すると、メモリに格納された内容に対する解析や改ざん等が行えることとなり、プログラム等を確実に保護できない。そこで、暗号化されたプログラム等をマイクロプロセッサのキャッシュ内でのみ復号化し、外部からの読み出しを禁止するマイクロプロセッサがある(例えば特許文献1)。
特許第3801833号公報
しかしながら、特許文献1に記載のマイクロプロセッサではプログラム等の保護を十分に行えない場合がある。例えば、従来のマイクロプロセッサに対応した公開鍵を用いて暗号化された複数のプログラムが並行して処理される場合を考える。当該複数のプログラムのいずれかが他のプログラムのメモリアドレスを参照する命令を含んでおり、当該命令の際に他のプログラムによる復号化情報のキャッシュにヒットした場合、そのプログラムは他のプログラム等による復号化情報を参照することが可能となる。従って、従来のマイクロプロセッサでは、並列処理において十分にプログラム等の保護をすることができないことがある。
本発明の課題は、よりセキュアなマイクロプロセッサ又はマイクロプロセッサ応用装置を提供することである。
上記目的を達成するため、請求項1記載の発明は、バスを介して接続された外部機器からのデータの転送と、前記外部機器に対するデータの転送が可能なマイクロプロセッサにおいて、前記データを暗号化すると共に、暗号化されたデータを復号化するための暗号鍵を複数記憶する暗号鍵記憶部と、前記外部機器に前記データを転送する場合に前記暗号鍵を用いて当該データを暗号化する暗号化手段と、前記データを暗号化する際に用いられた暗号鍵を用いて暗号化された当該データを復号化する復号化手段と、前記復号化手段によって復号化された前記データを記憶し、外部からアクセス不可能な復号化データ記憶部と、を備え、前記データを共有しない複数のプログラムを並行して処理する場合に、プログラム毎に異なる暗号鍵による前記データの暗号化を行うことを特徴とする。
請求項2記載の発明は、請求項1に記載のマイクロプロセッサにおいて、前記データを共有する複数のプログラムを並行して処理する場合に実行されたプログラム毎に共通の暗号鍵による暗号化を行うことを特徴とする。
請求項3記載の発明は、請求項1又は2に記載のマイクロプロセッサにおいて、前記複数の暗号鍵は個別に識別可能な識別情報を有し、暗号化された前記データと当該データの暗号化に用いられた暗号鍵の識別情報とを関連付ける関連付けデータを記憶する関連付けデータ記憶部を備えることを特徴とする。
請求項4記載の発明は、請求項3に記載のマイクロプロセッサにおいて、前記データの仮想アドレスと、前記データの物理アドレスとの関連付け情報とを含むことを特徴とする。
請求項5記載の発明は、請求項1から4のいずれか一項に記載のマイクロプロセッサにおいて、前記復号化手段による前記データの復号化は、所定のブロック長ごとに行われ、前記復号データ記憶部に一度に格納可能なデータ量の最小単位は、前記所定のブロック長の整数倍であることを特徴とする。
請求項6記載の発明は、請求項1から5のいずれか一項に記載のマイクロプロセッサにおいて、前記暗号化手段及び前記復号化手段を複数備えることを特徴とする。
請求項7記載の発明は、請求項1から6のいずれか一項に記載のマイクロプロセッサにおいて、耐タンパ性を有することを特徴とする。
なお、「耐タンパ性を有する」とは、他の技術によって得られる耐タンパ性を有することをいい、例えば特許庁公開の標準技術集「クライアント上の情報セキュリティ技術」の「セキュリティ機能保護」、F−1「ハードウェア」のF−1−2「要素技術」等により、マイクロプロセッサの構成の一部又は全部が耐タンパ性を有することをいう。
請求項8記載の発明は、請求項1から7のいずれか一項に記載のマイクロプロセッサにおいて、乱数を生成する乱数生成手段と、前記乱数生成手段によって生成された乱数に基づいて前記暗号鍵の作業鍵を生成する作業鍵生成手段と、記作業鍵を記憶可能な作業鍵記憶部と、を備え、前記暗号化手段は暗号化に前記暗号鍵とその作業鍵とを用いることが可能であり、前記復号化手段は復号化に前記暗号鍵とその作業鍵とを用いることが可能であることを特徴とする。
なお、「暗号鍵の作業鍵」とは、あるアルゴリズム、方式その他による暗号鍵方式の鍵値に対して補正を加える補正値をいう。つまり、暗号鍵である鍵値と、当該鍵値の補正値としての作業鍵とを用いることで、暗号化及び復号化に用いられる暗号鍵の鍵値は作業鍵の補正を加えられた鍵値となる。
請求項9記載の発明は、請求項8に記載のマイクロプロセッサを備えたマイクロプロセッサ応用装置において、請求項8のマイクロプロセッサを備えたマイクロプロセッサ応用装置であって、前記外部機器は、前記マイクロプロセッサとの間で転送されるデータを暗号化すると共に、暗号化されたデータを復号化するための暗号鍵を一つ以上記憶する外部機器用暗号鍵記憶部と、前記乱数生成手段によって生成された乱数に基づいて前記暗号鍵の作業鍵を生成する外部機器用作業鍵生成手段と、前記暗号鍵の作業鍵を記憶する外部機器用作業鍵記憶部と、前記外部機器から前記マイクロプロセッサへのデータ転送又は前記マイクロプロセッサによる前記外部機器のデータの読み込みを行う場合に前記暗号鍵とその作業鍵とを用いて前記データを暗号化する外部機器用暗号化手段と、前記データを暗号化する際に用いられた暗号鍵及び作業鍵を用いて暗号化された当該データを復号化する外部機器用復号化手段と、を備え、前記外部機器用暗号鍵記憶部に記憶される暗号鍵の少なくとも一つと、前記暗号鍵記憶部に記憶される複数の暗号鍵のいずれか一つとは同一であり、前記作業鍵生成手段及び前記外部機器用作業鍵生成手段はそれぞれ、前記同一の暗号鍵の作業鍵を同一の乱数に基づいて生成し、前記マイクロプロセッサが前記外部機器へデータを書き込み又は転送する場合、前記暗号化手段は前記同一の暗号鍵の作業鍵を用いてデータを暗号化し、前記マイクロプロセッサが前記外部機器のデータを読み込み又は前記外部機器のデータが前記マイクロプロセッサへ転送される場合、前記外部機器用暗号化手段は前記同一の暗号鍵の作業鍵を用いてデータを暗号化することを特徴とする。
請求項10記載の発明は、請求項9に記載のマイクロプロセッサ応用装置において、前記外部機器は、読み取り可能な情報を有する媒体から情報を取得する読取部を備え、前記マイクロプロセッサは、前記読取部によって取得された情報に基づいてプログラムによる処理を行うことを特徴とする。
請求項11記載の発明は、請求項10に記載のマイクロプロセッサ応用装置において、 複数のプログラムを記憶するプログラム記憶部を備え、前記読取部は、異なる情報を有する複数の前記媒体の情報を読み取り可能であって、前記複数のプログラムは、複数の前記媒体の異なる情報にそれぞれ対応し、前記マイクロプロセッサは、前記読取部によって取得された情報に対応するプログラムによる処理を行うことを特徴とする。
請求項12記載の発明は、請求項10又は11に記載のマイクロプロセッサ応用装置において、前記複数のプログラムは決済処理が可能なアプリケーションであり、前記媒体は前記決済処理が可能なアプリケーションの処理によって行われる決済処理に使用可能な情報を有することを特徴とする。
本発明によれば、複数のプログラムをセキュアに扱うことのできるマイクロプロセッサ又はマイクロプロセッサ応用装置を提供できる。
(第1の実施の形態)
以下、図1及至図11を参照して本発明の第1の実施の形態を詳細に説明する。
図1は、第1の実施の形態によるマイクロプロセッサ応用装置1を示すブロック図である。マイクロプロセッサ応用装置1は、マイクロプロセッサ10と、I/O20を備える。また、マイクロプロセッサ10は、バスインタフェース16を介してI/O20及びメモリ30と接続されている。なお、I/O20はマイクロプロセッサ10に対する入力、マイクロプロセッサ10からの出力又はその両方を行いうる外部機器又は外部機器との接続を実現する接続部分であり、そのような外部機器として例えば外部ストレージ、キーボード、表示装置、情報読取装置、通信装置又はそれらのいずれかとバスインタフェース16とを接続する回線等が挙げられる。また、メモリ30は所謂主記憶装置であり、書き込みはRAMに対して、読み込みはRAM又はROMから行われる。メモリ30の容量が不足する場合、別途接続された補助記憶装置等の記憶領域を用いることも可能であるが、以下の記載においては主記憶装置に補助記憶装置等による記憶領域を含んだものをメモリ30として扱う。以下、マイクロプロセッサ応用装置1の各部について説明する。
まず、マイクロプロセッサ10について説明する。図1に示すように、マイクロプロセッサ10は、実行ユニット11と、キャッシュ12と、トランスレーション・ルックアサイド・バッファ(Translation Look-aside Buffer、以下の記載及び図面においてはTLBと称する)13と、暗号/復号手段14と、鍵レジスタ15と、バスインタフェース16と、乱数生成手段17と、を備えている。
実行ユニット11は、外部機器その他の記憶領域からプログラム等を読み込み、読み込んだプログラムに含まれる命令を解釈して個々の処理を実行する。実行ユニット11の行う処理としては、例えばメモリ30からの読み込み、読み込んだデータの四則演算、メモリ30への書き出し等が挙げられる。実行ユニット11の処理により、マイクロプロセッサ10はメモリ30またはI/O20との間で入出力を行う。
キャッシュ12は、メモリ30から読み込んだ内容を格納する。実行ユニット11は、キャッシュ12にメモリ30から読み込んだ内容を格納し、解読する。メモリ30から読み込む内容が暗号化されている場合、実行ユニット11は当該内容をキャッシュ12に格納する際に復号化する。キャッシュ12に対するアクセスは、当該キャッシュ12を有するマイクロプロセッサ10の実行ユニット11によってのみ行われ、他の構成によるアクセスは不可能である。
キャッシュ12においてひとつの命令に対応するデータ格納領域をキャッシュラインという。キャッシュラインの記憶容量をキャッシュラインサイズという。各キャッシュラインにはそれぞれ対応するエントリアドレスが設けられている。各キャッシュラインのエントリアドレス、ページ属性(後述)及びデータを対応付けたキャッシュエントリが設けられており、実行ユニット11はキャッシュエントリから各キャッシュラインに格納されたデータの有無やその内容を把握できる。キャッシュエントリについては従来と同様であるので説明を省略する。
TLB13は、仮想記憶におけるメモリ空間のアドレス(仮想アドレス)を物理メモリ空間のアドレス又はI/O20やその他の周辺機器を示すアドレス(物理アドレス)に変換するためのTLBエントリを記憶する。物理メモリ空間とはキャッシュ12及びメモリ30の記憶領域をいう。実行ユニット11は、仮想アドレスを指定してTLB13から物理アドレスを決定する。仮想記憶については従来と同様であるので説明を省略する。
図2はTLBエントリの構成例を示す説明図である。TLBエントリは、仮想アドレス、コンテキスト、物理アドレス、ページ属性及び鍵番号を有する。このうち、仮想アドレス及び物理アドレスは上述の通りである。
コンテキストは、オペレーティング・システムが決定する任意の番号であり、マイクロプロセッサ10の処理するプロセス毎に異なる番号が設定される。つまり、同一のプロセスによるデータのコンテキストは同一である。
ページ属性は上述の仮想アドレス、コンテキスト及び物理アドレスによって指定されたメモリアドレスをどのような用途で使用可能かを規定する。ページ属性が規定するメモリの用途として、例えば「読み書き可能」、「読出し専用」「命令として実行不可能」等がある。
鍵番号は、後述する鍵レジスタファイルに含まれる鍵番号のうちいずれかひとつを指定する。実行ユニット11は、TLBエントリに設定された鍵番号に対応する暗号鍵を用いてデータの暗号化/復号化を行う。データの暗号化/復号化については後述する。
暗号/復号手段14は、メモリ30またはI/O20との間で行われる入出力の際に、出力するデータを暗号化し、入力されるデータが暗号化されている場合に復号化する。当該暗号化及び復号化は、後述する鍵レジスタ15に記憶された暗号鍵又は作業鍵を用いて行われる。
鍵レジスタ15は、鍵レジスタファイル並びに鍵レジスタファイルのいずれかの鍵番号と対応する暗号鍵、作業鍵又はその両方を記憶する。図3は鍵レジスタファイルの構成例を示す説明図である。鍵レジスタファイルは、鍵番号、暗号アルゴリズム、初期ベクタ、鍵値、作業鍵値のパラメータを持つテーブル形式のデータである。
鍵番号は、暗号アルゴリズム、初期ベクタ、鍵値、作業鍵値の組み合わせに対してそれぞれ設けられる固有の番号である。なお、図3に示す鍵レジスタファイルの鍵番号は初期値0の通し番号であるが、鍵番号は暗号鍵の各組み合わせを個別に識別可能な符号であれば何でもよく、通し番号でなくともよい。また、番号に限らず、例えばアルファベット等を個別に付するようにしてもよい。
暗号アルゴリズムは、暗号化及び復号化における方式、モードその他のルールを指定する。例えば、RC4、DES、AESといった暗号方式、CBC、EBCといった暗号モード、暗号方式がAESの場合における鍵長、作業鍵の使用有無等がある。
初期ベクタは一部の暗号アルゴリズム(例えばAES等)において必要となる数値であり、必要に応じて設定される。
鍵値は、暗号化又は復号化に用いられる暗号鍵の鍵値である。作業鍵値は、鍵値に対する補正値であり、必要に応じて設定される。上述の暗号アルゴリズム、初期ベクタによって決定した暗号方式その他のルールに対して指定された鍵値又は鍵値に作業鍵値の補正を加えたものが、その鍵番号によって指定される固有の暗号鍵となる。暗号/復号手段14は、鍵番号に対応する暗号アルゴリズム、初期ベクタ、鍵値、作業鍵値に基づいて暗号化及び復号化を行う。また、暗号/復号手段14に対する鍵番号の指定はTLBエントリによる。
以後の記載において「作業鍵を用いて暗号化/復号化を行う」とは、作業鍵を有する暗号鍵の鍵値に作業鍵による補正を加えた鍵値の暗号鍵を用いて暗号化/復号化を行うことをいう。鍵値及び作業鍵値はあらかじめ設定されていてもよいし、実行ユニット11によって設定されてもよい。作業鍵値の生成は、後述する乱数生成手段17による乱数の生成に基づいてもよい。
バスインタフェース16は、マイクロプロセッサ10とI/O20、メモリ30を接続し、マイクロプロセッサ10とメモリ30またはI/O20との間で行われる入出力の伝送経路となる。
乱数生成手段17は、作業鍵値となる乱数を生成する。マイクロプロセッサ10は、鍵レジスタファイルの作業鍵値を設定する場合、乱数生成手段17によって生成された乱数を作業鍵値とする。
次に、I/O20について説明する。図1に示すように、I/O20は、暗号/復号手段21と、鍵レジスタ22と、作業鍵レジスタ23と、を備えている。
暗号/復号手段21は、マイクロプロセッサ10から出力された暗号化データを復号化すると共に、マイクロプロセッサ10によって読み込まれるデータを暗号化する。当該暗号化及び復号化は、後述する作業鍵レジスタ23に記憶された作業鍵を用いて行われる。
また、暗号/復号手段21は、後述するチャレンジ&レスポンスにより、マイクロプロセッサ10との間の転送に用いる作業鍵を生成する。
鍵レジスタ22は、鍵レジスタファイル並びに当該鍵レジスタファイルに対応する鍵番号の暗号鍵を記憶する。なお、鍵レジスタ22の鍵レジスタファイルは、作業鍵値を有しないが、それ以外については上述の鍵レジスタ15の鍵レジスタファイルと同様である。鍵レジスタ22は、書き換え可能なRAM等で構成されてもよいし、書き換え不可能なROM等で構成されてもよい。
鍵レジスタ22の鍵レジスタファイルに記憶される鍵番号並びにその鍵番号に対応する暗号鍵を構成する暗号アルゴリズム、初期ベクタ及び鍵値は、鍵レジスタ15の鍵レジスタファイルに記憶された鍵番号並びにその鍵番号に対応する暗号鍵を構成する暗号アルゴリズム、初期ベクタ及び鍵値と対応する。
作業鍵レジスタ23は、暗号/復号手段21の暗号化及び復号化において用いられる作業鍵を記憶する。作業鍵は、鍵レジスタ22に記憶された暗号鍵の鍵値に対する補正値である。当該補正値は、マイクロプロセッサ10とI/O20との間のチャレンジ&レスポンス処理によって生成される。当該チャレンジ&レスポンス処理については後述する。
次に、マイクロプロセッサ10によるデータの読み込み、書き出し処理及びそれに伴うデータの暗号化/復号化処理について説明する。あるプロセスによる処理のためにマイクロプロセッサ10がデータの読み込みを行う場合、まず実行ユニット11が当該データに対応する仮想アドレスを出力する。実行ユニット11は、キャッシュエントリからいずれかのキャッシュライン上に当該データが格納されているかどうか検索する。このとき、例えば当該データに対するアクセスが生じていない場合や当該データに最後にアクセスした後、一定以上の他データに関する処理が行われていた場合等にはいずれのキャッシュラインにもまだ当該データは格納されていない状態が生じ得る。従って、この場合の検索は「当該データはキャッシュラインにない」旨を示す結果(キャッシュミス)を生ずる。キャッシュミスとなった場合、実行ユニット11はTLBエントリを参照し、当該データに対応する仮想アドレスから当該データを記憶する物理アドレスを決定する。
その後、実行ユニット11は、決定された物理アドレスから当該データを読み出し、キャッシュ12のいずれかのキャッシュラインに格納する。このとき、当該データの仮想アドレスを有するTLBエントリに、当該キャッシュラインの物理アドレスが設定される。また、当該データの仮想アドレスを有するTLBエントリに、鍵レジスタ15に記憶された暗号鍵の鍵番号のいずれかひとつが設定される。このとき設定される鍵番号の選定ルールはあらかじめ定められていてもよいし、ランダムに選ばれてもよいが、鍵番号は複数のプロセス間におけるデータの共有の可否に応じた所定の関係を有する。当該関係については後述する。
また、暗号鍵は、鍵番号の設定の際に当該鍵番号を有する暗号鍵を生成して鍵レジスタ15に設定、記憶するようにしてもよいし、あらかじめ鍵レジスタ15に記憶された暗号鍵のうちひとつを用いるようにしてもよい。
その後、実行ユニット11はキャッシュラインに格納したデータを解読し、要求された処理(例えば四則演算等)を行う。
その後、当該データがキャッシュライン上に格納されている間に再度読み込まれる場合、実行ユニット11は当該キャッシュライン上のデータを読み込んで処理を行う(キャッシュヒット)。また、キャッシュ12の容量には限りがあるので、別のプロセスによるデータの読み込み及び処理を行うため、キャッシュライン上のデータを退避させる必要が生じることがある。従って、実行ユニット11はキャッシュライン上のデータをメモリ30に書き出す処理を行う。
キャッシュライン上のデータをメモリ30に書き出す際、実行ユニット11は当該データを暗号化して書き出す。暗号化の際、実行ユニット11が直接又は暗号/復号手段14を介して当該データのTLBエントリに設定された鍵番号に対応する暗号鍵を鍵レジスタ15に要求する。その暗号鍵を用いて暗号/復号手段14が当該データを暗号化する。
当該データを暗号化して書き出した後、当該データの仮想アドレスを有するTLBエントリの物理アドレスを書き出し先の物理アドレスに置き換える。
その後、当該データについてキャッシュミスを生じた場合、実行ユニット11はTLBエントリを参照し、暗号化された当該データを格納しているメモリ30の物理アドレスから当該データをキャッシュ12に読み込む。このとき、実行ユニットは暗号化された当該データを復号化してキャッシュライン上に読み込む。復号化の際、実行ユニット11が直接又は暗号/復号手段14を介して当該データのTLBエントリに設定された鍵番号に対応する暗号鍵を鍵レジスタ15に要求する。その暗号鍵を用いて暗号/復号手段14が当該データを復号化する。
当該データを暗号化して書き出した後、当該データの仮想アドレスを有するTLBエントリの物理アドレスを読み込み先のキャッシュラインに対応した物理アドレスに置き換える。
暗号化/復号化は上述に例示した各方式、アルゴリズムを含めその方法を問わないが、ブロック暗号方式の場合、キャッシュラインのデータ容量単位(キャッシュラインサイズ)を暗号化データ及び復号化データのブロックサイズの整数倍とすることにより、キャッシュラインのデータ容量に端数を生じずキャッシュ12を有効活用することが可能となる。
次に、複数のプロセスのデータを並行して処理する場合の暗号化/復号化及び各プロセスに用いられる鍵番号の関係について説明する。まず、互いにデータを参照しない複数のプロセスを並行して処理する場合について説明する。図4は互いにデータを参照しない複数のプロセスを並行処理する場合の物理メモリ空間に対するデータの格納例を示す図である。アプリケーションA1とアプリケーションA2とは異なるアプリケーションであり、かつ、互いにデータを参照しないアプリケーションである。ここでは、メモリ30の物理メモリ空間との混同を避けるため、マイクロプロセッサは、図示しない記憶装置からアプリケーションA1,A2を読み込むものとする。アプリケーションA1,A2はメモリ30を構成する記憶装置の一部に記憶されていてもよい。
図4に示すように、アプリケーションA1の実行に伴うデータと、アプリケーションA2の実行に伴うデータは、メモリ30のそれぞれ異なる物理メモリ空間に格納される。このとき、上述のようにメモリ30に格納されるデータは暗号化される。当該暗号化に用いられた暗号鍵の鍵番号は各TLBエントリに設定される。
このとき、図4に示すように、アプリケーションA1のデータの暗号化に用いられる暗号鍵(例えば暗号鍵K1する)と、アプリケーションA2のデータの暗号化に用いられる暗号鍵(例えば暗号鍵K2とする)とはそれぞれ異なる暗号鍵である。復号化の際には、当該データに対応したTLBエントリから暗号鍵の鍵番号が指定されて復号化が行われる。つまり、互いにデータを参照しない複数のプロセス、例えば複数のアプリケーションの並行処理において、各プロセスのデータは異なる暗号鍵によって暗号化/復号化される。このため、何らかの方法でアプリケーションA1がアプリケーションA2のデータをメモリ30から読み出そうとしても、メモリ30に格納されたデータは暗号化されており、かつ、アプリケーションA1とアプリケーションA2の暗号鍵は異なるので、アプリケーションA1からアプリケーションA2のデータを復号化して解読することはできない。
上述の例は複数のアプリケーションによるものであるが、本発明の実施形態において互いにデータを参照しない複数のプロセスは上述のアプリケーションA1とアプリケーションA2の関係と同様の関係を持つ。例えば、同一アプリケーション上で互いにデータを参照しない複数のプロセスを有する場合も同様である。また、3つ以上のプロセスを並行処理する場合も、それぞれ異なる暗号鍵によるデータの暗号化/復号化を行う。
次に、複数のプロセス間で互いのデータを参照可能な場合について説明する。図5は、複数のプロセス間で一部のデータを参照可能な場合の物理メモリ空間に対するデータの格納例を示す図である。なお、アプリケーションA3とアプリケーションA4とは異なるアプリケーションであり、かつ、一部のデータを互いに参照可能な関係にあるアプリケーションである。
図5に示すように、アプリケーションA1の実行に伴うデータと、アプリケーションA2の実行に伴うデータのうち、互いに参照しないデータはメモリ30のそれぞれ異なる物理メモリ空間に格納される。互いに参照しないデータの暗号化/復号化については、上述のアプリケーションA1、アプリケーションA2の場合と同様である。
一方、互いに参照するデータは共有する物理メモリ空間(図5に示す共有メモリ。以下同様)に格納される。このとき、共有メモリに格納されるデータは暗号化されるが、その暗号鍵はアプリケーションA3とアプリケーションA4とで共通の暗号鍵(例えば暗号鍵K5とする)を用いる。つまり、図5に示すように、各アプリケーションにおいて設定されるTLBエントリにおいて、共有メモリのデータを示すTLBエントリで設定される暗号鍵は共通である。従って、アプリケーションA3とアプリケーションA4とによるTLBエントリの構成例は、例えば図6のようになる。この場合、共有メモリに格納された暗号化データについては、共通の暗号鍵による暗号化であるので、双方のアプリケーションによる復号化及び解読を行える。
複数のプロセス間で全部のデータを参照可能な場合、当該複数のプロセスは共通の暗号鍵を用いることとなる。また、上述の例は複数のアプリケーションによるものであるが、本発明において互いにデータを参照可能な複数のプロセスは上述のアプリケーションA3とアプリケーションA4の共有メモリに関する記載と同様の関係を持つ。また、3つ以上のプロセスで共通の暗号鍵によるデータの暗号化/復号化を行うことも可能である。
次に、マイクロプロセッサ10と、I/O20との転送について説明する。マイクロプロセッサ10とI/O20との間で転送を行う場合、I/O20の鍵レジスタ22に記憶される暗号鍵から生成可能な作業鍵をマイクロプロセッサ10及びI/O20がお互いに持つことで暗号転送を行う。この作業鍵の生成は、マイクロプロセッサ10とI/O20との間のチャレンジ&レスポンス処理によって行われる。以下、その仕組みについて説明する。
マイクロプロセッサ10がI/O20からデータを読み込む転送を行う場合、まずマイクロプロセッサ10の実行ユニット11が当該データに対応する仮想アドレスを出力し、当該データを要求する。このとき、当該データの仮想アドレスからTLBエントリを選択し、当該データの物理アドレスと鍵番号とが決定する。この場合、物理アドレスはI/O20を示す。また、鍵番号はI/O20の鍵レジスタ22の鍵レジスタファイルに設定された鍵番号のいずれかである。
次に、実行ユニット11はマイクロプロセッサ10とI/O20との間での暗号転送のための作業鍵を生成済みであるかどうか判定する。以下、作業鍵が生成されていない場合について説明する。
実行ユニット11は、乱数生成手段17によって乱数を生成し、I/O20に出力する。出力された乱数はI/O20の作業鍵レジスタ23に書き込まれる。I/O20は、書き込まれた当該乱数を鍵レジスタ22に記憶された暗号鍵で暗号化し、作業鍵レジスタ23に格納する。その後、実行ユニット11は作業鍵レジスタ23に格納された暗号化された乱数(以下、暗号化乱数と記載)を読み出す。その後、実行ユニット11は暗号化乱数を暗号/復号手段14に復号させ、復号化された乱数を解読する。また、実行ユニットは復号化された乱数とI/O20に出力した乱数とを比較し、一致するかどうか判定する。
当該比較において一致しなかった場合、I/O20で乱数を暗号化した暗号鍵とマイクロプロセッサ10で暗号化乱数を復号化した暗号鍵とは同一ではない。従って、実行ユニット11は暗号転送が成立しない旨を示すエラー処理を行う。当該比較において一致した場合、I/O20で乱数を暗号化した暗号鍵とマイクロプロセッサ10で暗号化乱数を復号化した暗号鍵とは同一である。従って、実行ユニット11は暗号転送が成立する旨を示す出力をI/O20に対して行う。実行ユニット11は暗号化乱数を暗号/復号手段14でさらに暗号化し、得た値を当該データのTLBエントリの鍵番号の作業鍵として鍵レジスタ15に格納する。また、暗号転送が成立する旨を示す出力を受けたI/O20は、作業鍵レジスタ23に格納された暗号化乱数をさらに暗号化して得た値を作業鍵として作業鍵レジスタ23に格納する。このとき、マイクロプロセッサ10及びI/O20で暗号化乱数をさらに暗号化する暗号鍵は、上述の比較の結果一致した場合に同一であると判定された暗号鍵によってそれぞれ行われる。従って、暗号化乱数をさらに暗号化して得た値の作業鍵は同一となる。生成された作業鍵は一致した暗号鍵に対応する鍵番号の作業鍵として設定される。以上でチャレンジ&レスポンス処理は終了する。
チャレンジ&レスポンス処理終了後、マイクロプロセッサ10とI/O20との転送は当該作業鍵による暗号化/復号化を経て行われる。つまり、マイクロプロセッサ10からI/O20へ出力されるデータはマイクロプロセッサ10の作業鍵を用いて暗号化されて出力され、I/O20の作業鍵で復号化される。また、I/O20からマイクロプロセッサ10に読み出されるデータはI/O20の作業鍵を用いて暗号化された状態でマイクロプロセッサ10に読み出され、マイクロプロセッサ10の作業鍵で復号化される。
次に、マイクロプロセッサ10による暗号化データの読み込み、データの更新及びマイクロプロセッサ10とI/O20との間の転送処理の処理フローについて説明する。なお、以下に示すフローとその説明においては、データの読み込み/書き出しに伴うTLBエントリの物理アドレス書き換え処理については省略する。
まず、図7のフローを用いてマイクロプロセッサ10による暗号化データの読み込みの処理フローを示す。実行ユニット11はあるプロセスにおけるデータの読み出しを行う際に、当該データに対応する仮想アドレスを出力し(ステップS1)、キャッシュエントリによる検索を通じて当該データをキャッシュ12に要求する(ステップS2)。ここで、キャッシュミスの場合(ステップS3:NO)、実行ユニット11は仮想アドレスを検索キーとしてTLBエントリから当該データの格納された物理アドレスと当該データを暗号化した暗号鍵の鍵番号とを決定する(ステップS4)。
その後、実行ユニット11はキャッシュラインに空きがあるかどうか判定する(ステップS5)。キャッシュラインに空きがある場合(ステップS5:YES)、ステップS4で得た物理アドレスから当該データの暗号ブロックを読み込む(ステップS6)。そして、ステップS6で得た暗号ブロックをステップS4で得た鍵番号の暗号鍵で復号化する(ステップS7)。その後、復号化したデータを空いているキャッシュラインに格納し(ステップS8)、実行ユニット11は要求するデータワードを復号したデータブロックから取得する(ステップS9)。以上で処理は終了する。なお、ステップS3でキャッシュヒットした場合(ステップS3:YES)、ステップS9の処理へ移行する。
一方、ステップS5においてキャッシュラインに空きがない場合(ステップS5:NO)、実行ユニット11はキャッシュエントリのメモリ退避処理(ステップS10)を行った後、上述のステップS6以降の処理を行う。
図8のフローを用いて上述のステップS10に示すキャッシュエントリのメモリ退避処理について説明する。
まず、実行ユニット11は所定の置換アルゴリズム(後述)によりデータを空にするキャッシュラインを決定する(ステップS11)。その後、空にするキャッシュラインの物理アドレスを有するTLBエントリを検索する(ステップS12)。その後、ステップS12の検索で得られたTLBエントリから決定された鍵番号の暗号鍵を用いて空にするキャッシュラインに格納されているデータを暗号化する(ステップS13)。その後、ステップS13で暗号化したデータをメモリ30に書き出す(ステップS14)。そして、空にするキャッシュラインのデータを消去する(ステップS15)。以上で処理は終了する。
なお、本実施の形態においては、所定の置換アルゴリズムとしてLeast Recently Used(LRU)を用いているが、これの派生アルゴリズム(例えばLRU−KやARC等)又は他のアルゴリズムでもよい。例えば、Not Recently Used(NRU)、First-In First-Out(FIFO)、Not Frequently Used(NFU)等が挙げられる。また、これらの派生アルゴリズムでもよい。
次に、図9のフローを用いてマイクロプロセッサ10による暗号化/復号化を伴うデータの更新処理フローを示す。
実行ユニット11はあるプロセスにおけるデータの更新を行う際に、更新対象となるデータに対応する仮想アドレスを出力すると共に更新後のデータを出力する(ステップS21)。また、キャッシュエントリによる検索を通じて更新対象となるデータをキャッシュ12に要求する(ステップS22)。ここで、キャッシュミスの場合(ステップS23:NO)、実行ユニット11は仮想アドレスを検索キーとしてTLBエントリから当該データの格納された物理アドレスと当該データを暗号化した暗号鍵の鍵番号とを決定する(ステップS24)。
その後、実行ユニット11はキャッシュラインに空きがあるかどうか判定する(ステップS25)。キャッシュラインに空きがある場合(ステップS25:YES)、ステップS24で得た物理アドレスから当該データの暗号ブロックを読み込む(ステップS26)。そして、ステップS26で得た暗号ブロックをステップS24で得た鍵番号の暗号鍵で復号化する(ステップS27)。その後、復号化したデータを空いているキャッシュラインに格納する(ステップS28)。そして、キャッシュラインに格納された更新対象のデータをステップS21で出力したデータによって更新する(ステップS29)。以上で処理は終了する。なお、ステップS23においてキャッシュヒットした場合(ステップS23:YES)、ステップS29の処理へと移行する。
また、ステップS25においてキャッシュラインに空きがない場合(ステップS25:NO)、実行ユニット11は上述と同様のキャッシュエントリのメモリ退避処理(ステップS10)を行った後、上述のステップS25以降の処理を行う。
次に、マイクロプロセッサ10とI/O20との間の転送処理の処理フローについて説明する。なお、以後の説明において、空きキャッシュラインの判定と上述のキャッシュエントリのメモリ退避処理については省略するが、キャッシュラインへのデータ格納がある場合にはこれらの処理が必要に応じて行われる。
まず、図10のフローを用いてマイクロプロセッサ10がI/O20のデータを読み込む際の転送に伴う処理について説明する。実行ユニット11は、I/O20からデータの読み出しを行う際に、当該データに対応する仮想アドレスを出力する(ステップS31)。また、実行ユニット11は仮想アドレスを検索キーとしてTLBエントリから当該データの格納された物理アドレスと当該データを暗号化した暗号鍵の鍵番号とを決定する(ステップS32)。このとき、物理アドレスはI/O20を示す。また、鍵番号は、I/O20の鍵レジスタ22の記憶する暗号鍵と対応する。
次に、実行ユニット11はマイクロプロセッサ10とI/O20との間での暗号転送のための作業鍵を生成済みであるかどうか判定する(ステップS33)。未生成である場合(ステップS33:NO)、実行ユニット11は、乱数生成手段17によって乱数を生成し、I/O20に出力して作業鍵レジスタ23に書き込む(ステップS34)。その後、I/O20は、書き込まれた当該乱数を鍵レジスタ22に記憶された暗号鍵で暗号化し、作業鍵レジスタ23に格納する(ステップS35)。その後、実行ユニット11は作業鍵レジスタ23に格納された暗号化乱数を読み出し、復号する(ステップS36)。
そして、実行ユニットは復号化された乱数とI/O20に出力した乱数とを比較し、一致するかどうか判定する(ステップS37)。一致しなかった場合(ステップS37:NO)、実行ユニット11はエラー処理を行う(ステップS38)。一方、ステップS37の比較において一致した場合(ステップS37:YES)、実行ユニット11及びI/O20はそれぞれ暗号化乱数をさらに暗号化して得た値を作業鍵とする(ステップS39)。
作業鍵の生成後、I/O20はマイクロプロセッサ10によって読み出されるデータを当該作業鍵で暗号化する(ステップS40)。なお、ステップS33において作業鍵を生成済みである場合(ステップS33:YES)、ステップS40の処理へと移行する。
その後、実行ユニットはステップS32で得たTLBエントリの物理アドレスを用いてステップS40で暗号化されたデータをI/O20から読み込む(ステップS41)。そして、実行ユニット11は暗号/復号手段14を介し、ステップS39又はそれ以前に生成済みの作業鍵を用いてステップS40で得たデータを復号化してキャッシュラインに格納する。(ステップS42)。そして、実行ユニットは要求するデータワードを復号したデータブロックから取得する(ステップS43)。以上で処理は終了する。
次に、図11のフローを用いてマイクロプロセッサ10がI/O20へデータを送る(書き込む)際の転送に伴う処理について説明する。まず、実行ユニット11は、書き込むデータを復号化してキャッシュ12に読み込む(ステップS51)。ステップS51の処理は、例えば上述の図7、図9又は図10のフローとその説明によるキャッシュラインへのデータ格納による。次に、実行ユニット11はマイクロプロセッサ10とI/O20との間での暗号転送のための作業鍵を生成済みであるかどうか判定する(ステップS52)。生成済みの場合(ステップS52:YES)、実行ユニット11は当該データを暗号ブロック単位に分割(パティング)する(ステップS53)。その後、実行ユニット11は生成済みの作業鍵を用い、暗号/復号手段14を介してパティングされた当該データを暗号化する(ステップS54)。そして、実行ユニット11はステップS54で暗号化されたデータ(暗号データブロック)をI/O20に転送する(ステップS55)。I/O20は、暗号/復号手段21を介して転送された暗号データブロックを復号化する(ステップS56)。以上で処理は終了する。
なお、ステップS52において作業鍵が未生成である場合(ステップS52:NO)、上述のステップS34〜39と同様の処理を行った後、ステップS53以降の処理を行う。
第1の実施の形態によれば、マイクロプロセッサ10からI/O20及びメモリ30に対して転送又は書き込みされるデータは暗号化される。さらに、互いにデータを共有しない複数のプロセス(例えば上述のアプリケーションA1,2)による処理においては、異なる暗号鍵によってデータの暗号化が行われる。これによって、データを共有しないプログラムは他のプログラムのデータを復号化できない。さらに、キャッシュ12はマイクロプロセッサ外からのアクセスが不可能である。従って、プログラム等をより確実に保護するマイクロプロセッサを実現できる。
また、互いにデータの一部又は全部を共有可能な複数のプロセス(例えば上述のアプリケーションA3,4)による処理においては、共有可能なデータについて共通の暗号鍵によってデータの暗号化が行われる。これによって、データの共有を行わない又は不可能とすべき部分については異なる暗号鍵を用いた暗号化/復号化によってプログラム等の確実な保護を行いつつ、共有可能な一部又は全部のデータについては各プログラム間で相互運用すること可能となる。
また、暗号鍵は鍵レジスタファイルの鍵番号によって管理され、暗号化/復号化されるデータと当該データの暗号鍵を示す鍵番号とはTLBエントリによって対応付けられる。これによって、TLBエントリの参照により当該データの暗号化/復号化を行うための暗号鍵を容易に特定可能となる。従って、データ処理に伴う暗号化/復号化処理を効率的に行える。
また、TLBエントリにはデータの仮想アドレスと物理アドレスとを含む。これによって、マイクロプロセッサ10が行うデータの読み込み/書き出しその他の処理に伴うデータへのアクセスとそれに伴う暗号化/復号化のための暗号鍵の特定とを一括して行うことができる。従って、データ処理に伴う暗号化/復号化処理を一層効率的に行える。
また、キャッシュラインサイズを暗号化データ及び復号化データのブロックサイズの整数倍とすることにより、キャッシュラインのデータ容量に端数を生じずキャッシュ12を有効活用することが可能となる。
また、作業鍵を用いることにより、暗号鍵に設定された固有の鍵値による暗号化/復号化処理に比して鍵値のパターン即ち生成可能な暗号鍵の数を大幅に増加できる。これにより、作業鍵を用いない場合に比して暗号の解析をより困難とすることが可能となる。従って、プログラム等をより確実に保護するマイクロプロセッサを実現できる。
さらに、マイクロプロセッサ(例えばマイクロプロセッサ10)と外部機器(例えばI/O20)との間のデータ転送において、転送されるデータは暗号化される。これによって、マイクロプロセッサと外部機器の間のバスから不正な方法等によりデータを取得しようとしても、転送されるデータは暗号化されているので、データを確実に保護できる。加えて、転送されるデータはチャレンジ&レスポンスにより生成された作業鍵を用いて暗号化されるので、データはより確実に保護される。
(第2の実施の形態)
次に、本発明のマイクロプロセッサ応用装置の第2の実施の形態である決済装置2について図12及至図14を用いて説明する。なお、第1の実施の形態と同様の構成については同じ符号を付して説明を省略する。
図12は、本発明の第2の実施の形態による決済装置2の構成を示すブロック図である。決済装置2は、決済装置2の行う各種動作に伴う処理演算その他の制御を行うマイクロプロセッサ(MPU)51と、主記憶装置としてのRAM52と、補助記憶装置としてのROM53と、後述するI/O60等のカード読取機器を接続可能なカードインタフェース54と、決済装置2の動作に伴う表示出力を行う表示部55と、決済装置2に各種操作入力を行うための操作部56と、他の機器と通信を行うための通信部57と、カード読取機器としてのI/O60と、を備えている。このうち表示部55、操作部56、通信部57については従来の決済装置2が備えるこれらの構成と同様であるので、説明を省略する。
MPU51は、上述のマイクロプロセッサ10と同様の構成を備えており、上述と同様の暗号化/復号化機能を有する。MPU51は、さらにリセット回路動作を行う構成を有する。具体的には、TLBエントリにリセットベクタのアドレス(物理アドレス)とリセットベクタ専用の暗号鍵(例えば暗号鍵K0とする)の鍵番号とが対応付けられている。なお、リセットベクタとはマイクロプロセッサ起動時に最初に読み込まれるデータの格納領域である。MPU51は、起動時に初期動作としてTLBエントリからリセットベクタのアドレスから制御モジュール(後述)を読み出して処理する。また、制御モジュールをRAM52に展開する場合には暗号鍵K0で暗号化する。なお、暗号鍵K0の鍵レジスタファイルはMPU51の鍵レジスタがあらかじめ記憶しており、初期動作時に自動的にセットされる。
なお、初期動作に用いられるTLBエントリの物理アドレスはROM53であるが、RAM52に展開する際にRAM52の物理アドレスに拡張される。このとき、TLBエントリの物理アドレスを拡張する代わりにTLBエントリを初期動作用と拡張後とで別に設け、差し替えるようにしてもよい。
RAM52は一般的な主記憶装置であり、ROM53は一般的な補助記憶装置(例えばフラッシュメモリ等)である。また、ROM53はMPU51の初期動作で読み込まれる制御モジュールを記憶する。つまり、リセットベクタのアドレスはROM53の制御モジュールを記憶する記憶領域の先頭アドレスである。また、制御モジュールはあらかじめ暗号鍵K0で暗号化された状態で記憶されている。MPU51は、初期動作において暗号かさされた制御モジュールを読み出して暗号鍵K0を用いて復号化しながら命令を解釈し、実行する。
また、ROM53はICカード等による決済処理を決済装置2で行うための決済処理用アプリケーション(以後、決済アプリと記載)を記憶する。決済アプリは一種類でも複数種類でもよいが、本実施の形態では二種類(ここでは決済アプリS1、決済アプリS2とする)を用いた例を示す。決済アプリS1、決済アプリS2はそれぞれ異なるICカード等を用いた決済処理を行うためのアプリケーションである。ここでは、決済アプリS1に対応したICカード等をカードC1、決済アプリS2に対応したICカード等をカードC2とする。
なお、ICカード等とは、通信機能を有するICカード(例えばFeliCa(登録商標)等)やそれに類する通信機器(ICカード機能を有する携帯電話機等)等をいう。
なお、本実施の形態では制御モジュール、決済アプリS1、決済アプリS2の順にそれぞれのブートイメージがROM53の連続した物理アドレスに記憶されている。これによって初期動作時に制御モジュールの先頭アドレスにプログラムカウンタを設定した後、順次読み出すことで制御モジュール、決済アプリS1、決済アプリS2の順にロードできる。
ROM53上における各ブートイメージの物理アドレスは上述の例に限定されないことは言うまでも無く、何らかの方法でMPU51が各ブートイメージをロードできればよい。
カードインタフェース54は所謂周辺機器を接続可能なインタフェースであり、周辺機器との接続を行うインタフェースとして例えばUSB、IEEE1394、SCSI、RS−232その他のシリアルポート又はパラレルポートインタフェースや、ネットワーク回線等による接続等が挙げられる。また、その接続は有線、無線又はその混在のどの形態をとってもよい。カードインタフェース54にはカード読取機器であるI/O60が接続されている。I/O60は、暗号/復号手段21と、鍵レジスタ22と、作業鍵レジスタ23と、カードインタフェース回路64と、を備えている。このうち、暗号/復号手段21、鍵レジスタ22及び作業鍵レジスタ23は上述のI/O20の各構成と同様であるので、説明を省略する。MPU51とI/O60との間の転送における暗号化/復号化についても、上述のマイクロプロセッサ10とI/O20との関係と同様である。
カードインタフェース回路64は、ICカード等との通信を行い、当該通信に伴い生じたデータを決済装置2へ入力する。このとき生じるデータは、カードインタフェース回路64と通信を行ったカードの種類毎に識別可能となっている。また、カードインタフェース回路64は、決済装置2から転送(書き出し)されたデータに基づいてICカード等と通信を行う。ICカード等との通信は接触通信又は非接触通信によって行われる。
次に、決済装置2の起動及び決済処理が行われるまでの動作について説明する。図13は、決済装置2の動作に伴う物理メモリ空間におけるデータの配置及び当該データに対するアクセスの例を示す図である。
決済装置2が起動すると、まずMPU51が初期動作を行う。具体的には、MPU51の実行ユニットが暗号/復号手段が暗号化/復号化に用いる暗号鍵として暗号鍵K0をセットする。また、リセットベクタのアドレスを含むTLBエントリをTLBに要求する。そして、TLBエントリに設定された物理アドレスからROM53の制御モジュールの先頭アドレスをプログラムカウンタにセットし、読み込みを開始して制御モジュールをロードする。
その後、決済装置2の各部がセルフテスト等の初期動作を行う。セルフテストについては従来と同様であるので説明を省略する。
次に、ロードした制御モジュールをRAM52に展開する。このとき、RAM52に展開された制御モジュールのコード・データは暗号鍵K0で暗号化される。また、この処理に伴い、TLBエントリの物理アドレス範囲をRAM52に拡張する。制御モジュールをRAM52に展開する処理を完了した後に制御モジュールによる処理を行う場合、MPU51はRAM52に展開された制御モジュールに対するアクセスを行う。この場合、制御モジュールの読み込み、書き出しに伴う暗号化/復号化には暗号鍵K0を用いる。
また、MPU51は三種のTLBエントリ群(ここではTLBエントリ群T1、TLBエントリ群T2、TLBエントリ群T3とする)を設定する。このうちTLBエントリ群T1は決済アプリS1のブートイメージをRAM52に展開するための一連のTLBエントリである。また、TLBエントリ群T2は決済アプリS2のブートイメージをRAM52に展開するための一連のTLBエントリである。また、TLBエントリ群T3はRAM52に展開された決済アプリS1、2それぞれのコード・データに対して制御モジュールからの参照があった場合に各決済アプリのデータにアクセスするための一連のTLBエントリである。つまり、TLBエントリ群T1はRAM52に展開された決済アプリS1のコード・データのみを、TLBエントリ群T2はRAM52に展開された決済アプリS2のコード・データのみを対象とする一方、TLBエントリ群T3は決済アプリS1,2の両方のコード・データを対象に含む。
また、TLBエントリ群T1、2にはそれぞれ異なる鍵番号の暗号鍵が設定される。ここでは、TLBエントリ群T1に暗号鍵K6を、TLBエントリ群T2に暗号鍵K7を設定するものとして記載する。
一方、TLBエントリ群T3のうち決済アプリS1のコード・データに対応するTLBエントリには暗号鍵K6が、TLBエントリ群T3のうち決済アプリS2のコード・データに対応するTLBエントリには暗号鍵K7が設定される。さらに、TLBエントリ群T3のうち制御モジュールのコード・データの読み込みに対応する部分には暗号鍵K0が設定される。
その後、MPU51は決済アプリS1のブートイメージをロードして、TLBエントリ群T1に対応するRAM52の物理メモリ空間に展開する。このとき、RAM52に展開された決済アプリS1のコード・データは暗号鍵K6で暗号化される。また、MPU51は決済アプリS2のブートイメージをロードして、TLBエントリ群T2に対応するRAM52の物理メモリ空間に展開する。このとき、RAM52に展開された決済アプリS2のコード・データは暗号鍵K7で暗号化される。以上で決済装置2の起動が完了する。
その後、決済装置2は決済指示待ちの待機モードとなる。決済指示とは、カードインタフェース回路64によるICカード等との通信に伴うデータの入力や、操作部56による入力操作等であるが、ここではICカード等との通信に伴うデータの入力について記載する。カードインタフェース回路64とICカード等との通信があった場合、MPU51にそのICカード等に対応するデータが転送される。このとき転送されるデータは上述のマイクロプロセッサ10とI/O20との関係と同様の方法で暗号化/復号化される。
また、このときカードインタフェース回路64を含んだI/O60その他各部の制御は制御モジュールのコード・データの処理による。従って、I/O60の制御に伴いMPU51の実行ユニットが要求するコードはRAM52に展開された制御モジュールから読み込まれる。よって、この読み込みに伴う処理ではTLBエントリ群T3のTLBエントリから対象となるデータ・コードの物理アドレスの決定が行われる。読み込まれたデータ・コードは暗号鍵K0で復号化され、要求されたデータ・コードが実行ユニットに渡される。
一方で、I/O60から転送されたデータは、対応する決済アプリに渡される。つまり、カードC1との通信に伴う転送の場合は決済アプリS1に、カードC2との通信に伴う転送の場合は決済アプリS2にデータが渡される。このとき、MPU51は対応する決済アプリのコード・データに対して当該転送に伴うデータを渡す(書き込む)。具体的には、MPU51はTLBエントリ群T3からカードの種類に対応した決済アプリの該当するコード・データの物理アドレスと鍵番号を決定する。そして、その鍵番号の暗号鍵で暗号化し、その物理アドレスに書き込む。つまり、カードインタフェース回路64によるICカード等との通信に伴う転送で生じるデータの読み書きにおいて、MPU51はRAM52からの制御モジュールのコード・データの読み込みの際に暗号鍵K0で復号化を行い、各決済アプリのコード・データに対する書き込みにはその決済アプリのTLBエントリに対応した暗号鍵(暗号鍵K6又は暗号鍵K7)で暗号化を行う。
上述のように、MPU51は待機モード中にカードインタフェース回路64とICカード等との通信があった場合、各カードに対応する決済アプリに対する書き込み処理を行うことで各カードの決済庶路を行うよう制御する。具体的には、カードC1との通信が行われた場合、MPU51は決済アプリS1のコード・データに対する書き込みを行い、決済アプリS1による決済処理を行うよう制御する。また、カードC2との通信が行われた場合、MPU51は決済アプリS2のコード・データに対する書き込みを行い、決済アプリS2による決済処理を行うよう制御する。決済処理については従来と同様であるので説明を省略する。かようにして、決済装置2は各カードに対応した決済処理を行う。
なお、ROM53の制御モジュールや各決済アプリは圧縮されていてもよい。その場合、圧縮されたイメージを展開しながら処理を進める。
次に、図14を用いて決済装置2の動作フローを示す。なお、データの読み込み/書き出しに伴う暗号化/復号化処理については記載を省略する。
まず、MPU51の実行ユニットが暗号/復号手段が暗号化/復号化に用いる暗号鍵として暗号鍵K0をセットする(ステップS71)。また、リセットベクタのアドレスを含むTLBエントリをTLBに要求する(ステップS72)。そして、TLBエントリに設定された物理アドレスからROM53の制御モジュールの先頭アドレスをプログラムカウンタにセットし、読み込みを開始して制御モジュールをロードする(ステップS73)。その後、決済装置2の各部がセルフテスト等の初期動作を行う(ステップS74)。
次に、ROM53からロードした制御モジュールのブートイメージをRAM52に展開する(ステップS75)。また、この処理に伴い、TLBエントリの物理アドレス範囲をRAM52に拡張し、制御モジュールに関するアクセスをRAM52に移行する(ステップS76)。
その後、MPU51は決済アプリS1を展開するRAM52の物理アドレス範囲を決定すると共に、TLBエントリ群T3に決済アプリS1の展開される物理アドレスの一部又は全部をセットする(ステップS77)。そして、ROM53から決済アプリS1のブートイメージを読み出し、ステップS77で決定されたRAM52の物理アドレス範囲に展開する(ステップS78)。このとき、TLBエントリ群T1に決済アプリS1の物理アドレスがセットされる。
その後、MPU51は決済アプリS2を展開するRAM52の物理アドレス範囲を決定すると共に、TLBエントリ群T3に決済アプリS2の展開される物理アドレスの一部又は全部をセットする(ステップS79)。そして、ROM53から決済アプリS2のブートイメージを読み出し、ステップS79で決定されたRAM52の物理アドレス範囲に展開する(ステップS80)。このとき、TLBエントリ群T2に決済アプリS2の物理アドレスがセットされる。
その後、決済装置2は決済指示待ちの待機モードとなる(ステップS81)。待機モード中に決済指示が生じると(ステップS81:YES)、カードの種類の判定が行われる(ステップS82)。カードC1による決済指示の場合(ステップS81:C1)、MPU51は決済アプリS1のコード・データに対する書き込みを行い、決済アプリS1を実行する(ステップS83)。カードC2による決済指示の場合(ステップS81:C2)、MPU51は決済アプリS2のコード・データに対する書き込みを行い、決済アプリS2を実行する(ステップS84)。ステップS81の待機、及び決済指示が生じた場合のステップS8〜84の処理は決済装置2の終了処理(例えば電源OFF等)まで行われ(ステップS85:NO)、決済装置2の終了処理によって(ステップS85:YES)終了する。
第2の実施の形態によれば、外部機器(例えばI/O60)の読取部(例えばカードインタフェース回路64)が読み取り可能な情報を有する媒体(例えばICカード等)から情報を読み取った場合、マイクロプロセッサ(例えばMPU51)が読取部によって読み取られた情報に基づいたプログラム等による処理、例えばカードC1に対応する決済アプリS1による決済処理を行う。従って、読取部によって取得される情報とマイクロプロセッサによって行われる処理とを対応付けることができる。
さらに、第2の実施の形態によれば、ICカード等の種類(例えばカードC1、カードC2)に応じた各プログラム(例えば決済アプリS1,2)による処理(例えば決済処理等)を行うことができる。このとき、マイクロプロセッサ(例えばMPU51)は各プログラムのデータ・コードを異なる暗号鍵で暗号化/復号化する。従って、読取部による外部からの情報取得に応じた処理と、プログラム等の確実な保護を可能とするセキュアなマイクロプロセッサ応用装置の機能とを両立させることができる。
さらに、第2の実施の形態によれば、決済アプリS1、S2は決済処理が可能なアプリケーションであり、カードC1,C2はそれぞれ決済アプリS1,S2での決済処理に用いることができるICカード等であるので、上述の構成によるセキュアなマイクロプロセッサ応用装置を用いた決済装置を提供できる。
なお、第2の実施の形態は、上述の第1の実施の形態の効果も発揮することは言うまでもない。
(その他)
なお、その他の実施の形態として、暗号/復号手段を複数設けることも可能である。この場合、各暗号/復号手段が個別にデータの暗号化/復号化を行うことで、暗号化/復号化を伴う処理についてマイクロプロセッサ10が並列処理を行うことが可能となり、マイクロプロセッサの処理性能が大幅に向上する。
また、暗号/復号手段は暗号化手段と復号化手段とを個別に設けることも可能である。
また、マイクロプロセッサはさらに他の方法による耐タンパ性を有するようにしてもよい。「耐タンパ性を有する」とは、他の技術によって得られる耐タンパ性を有することをいい、例えば特許庁公開の標準技術集「クライアント上の情報セキュリティ技術」の「セキュリティ機能保護」、F−1「ハードウェア」のF−1−2「要素技術」等により、マイクロプロセッサの構成の一部又は全部が耐タンパ性を有することをいう。この場合、マイクロプロセッサが処理するプログラム等について外部からの不正な情報取得等又をより確実に防止できる。また、マイクロプロセッサ応用装置1や決済装置2の各部又は全体耐タンパ性を有するようにしてもよい。
また、上述の決済装置2では二つの決済アプリによる処理を行っているが、一つまたは三つ以上の決済アプリを処理する場合であってもその処理方法は二つの決済アプリによる場合と同様である。また、マイクロプロセッサ及びマイクロプロセッサ応用装置が行う処理において用いるプログラム等は、決済アプリに限らず、他の処理を行うアプリケーションプログラムでもよい。また、ICカード等に限らず、他の媒体(例えば磁気による情報の読取が可能な媒体や、光センサー等の光学デバイスで情報の読取が可能な媒体等)を用いてもよい。その場合、当該他の媒体の情報を読み取り可能な構成(磁気読取装置や光センサー等)を備えるI/Oを用いることとなる。
また、マイクロプロセッサ(例えばマイクロプロセッサ10やMPU51等)が記憶する暗号鍵は、外部から書き換え可能に設けてもよい。外部から書き換える方法としては、例えば暗号鍵記憶部(例えば鍵レジスタ15等)に接続可能であって外部からアクセスするためのインタフェース(例えばJTAGポート等)を設け、周知のフラッシュROMライタ等の書き込み装置により暗号鍵を書き込む方法等が挙げられる。
また、上述の各種プログラム等(例えばアプリケーションA1〜A4、決済アプリS1,S2等)はマイクロプロセッサによるメモリ30の格納前にあらかじめ暗号化されていてもよい。その場合、マイクロプロセッサは、あらかじめ各種プログラムの暗号化に用いられた暗号鍵を保有し、当該アプリケーションを読み込む際に対応する暗号鍵を用いて復号化を行い、処理する。
なお、本発明の実施の形態は、今回開示された実施の形態はすべての点で例示であって制限的なものではないと考えられるべきである。本発明の範囲は上記した説明ではなくて特許請求の範囲によって示され、特許請求の範囲と均等の意味および範囲内でのすべての変更が含まれることが意図される。
本発明の第1の実施の形態によるマイクロプロセッサ応用装置を示すブロック図である。 TLBエントリの構成例を示す説明図である。 鍵レジスタファイルの構成例を示す説明図である。 互いにデータを参照しない複数のプロセスを並行処理する場合の物理メモリ空間に対するデータの格納例を示す図である。 複数のプロセス間で一部のデータを参照可能な場合の物理メモリ空間に対するデータの格納例を示す図である。 複数のプロセス間で一部のデータを参照可能な場合のTLBエントリの構成例を示す図である。 マイクロプロセッサによる暗号化データの読み込みの処理フローである。 キャッシュエントリのメモリ退避処理を示すフローである。 マイクロプロセッサによる暗号化/復号化を伴うデータの更新処理フローである。 マイクロプロセッサがI/Oのデータを読み込む際の転送に伴う処理を示すフローである。 マイクロプロセッサがI/Oへデータを送る(書き込む)際の転送に伴う処理を示すフローである。 本発明の第2の実施の形態による決済装置の構成を示すブロック図である。 決済装置の動作に伴う物理メモリ空間におけるデータの配置及び当該データに対するアクセスの例を示す図である。 決済装置の動作フローである。
符号の説明
10 マイクロプロセッサ
11 実行ユニット
12 キャッシュ
13 TLB
14、21 暗号/復号手段
15、22 鍵レジスタ
16 バスインタフェース
17 乱数生成手段
23 作業鍵レジスタ
30 メモリ
51 MPU
52 RAM
53 ROM
64 カードインタフェース回路

Claims (12)

  1. バスを介して接続された外部機器からのデータの転送と、前記外部機器に対するデータの転送が可能なマイクロプロセッサにおいて、
    前記データを暗号化すると共に、暗号化されたデータを復号化するための暗号鍵を複数記憶する暗号鍵記憶部と、
    前記外部機器に前記データを転送する場合に前記暗号鍵を用いて当該データを暗号化する暗号化手段と、
    前記データを暗号化する際に用いられた暗号鍵を用いて暗号化された当該データを復号化する復号化手段と、
    前記復号化手段によって復号化された前記データを記憶し、外部からアクセス不可能な復号化データ記憶部と、を備え、
    前記データを共有しない複数のプログラムを並行して処理する場合に、プログラム毎に異なる暗号鍵による前記データの暗号化を行うことを特徴とするマイクロプロセッサ。
  2. 一部又は全部の前記データを共有する複数のプログラムを並行して処理する場合に、共有する前記データに対して共通の暗号鍵による暗号化を行うことを特徴とする請求項1に記載のマイクロプロセッサ。
  3. 前記複数の暗号鍵は個別に識別可能な識別情報を有し、
    暗号化された前記データと当該データの暗号化に用いられた暗号鍵の識別情報とを関連付ける関連付けデータを記憶する関連付けデータ記憶部を備えることを特徴とする請求項1又は2に記載のマイクロプロセッサ。
  4. 前記関連付けデータは、前記データの仮想アドレスと、前記データの物理アドレスとの関連付け情報とを含むことを特徴とする請求項3に記載のマイクロプロセッサ。
  5. 前記復号化手段による前記データの復号化は、所定のブロック長ごとに行われ、
    前記復号データ記憶部に一度に格納可能なデータ量の最小単位は、前記所定のブロック長の整数倍であることを特徴とする請求項1から4のいずれか一項に記載のマイクロプロセッサ。
  6. 前記暗号化手段及び前記復号化手段を複数備えることを特徴とする請求項1から5のいずれか一項に記載のマイクロプロセッサ。
  7. 耐タンパ性を有することを特徴とする請求項1から6のいずれか一項に記載のマイクロプロセッサ。
  8. 乱数を生成する乱数生成手段と、
    前記乱数生成手段によって生成された乱数に基づいて前記暗号鍵の作業鍵を生成する作業鍵生成手段と、
    前記作業鍵を記憶可能な作業鍵記憶部と、を備え、
    前記暗号化手段は暗号化に前記暗号鍵とその作業鍵とを用いることが可能であり、
    前記復号化手段は復号化に前記暗号鍵とその作業鍵とを用いることが可能であることを特徴とする請求項1から7のいずれか一項に記載のマイクロプロセッサ。
  9. 請求項8に記載のマイクロプロセッサを備えたマイクロプロセッサ応用装置であって、
    前記外部機器は、前記マイクロプロセッサとの間で転送されるデータを暗号化すると共に、暗号化されたデータを復号化するための暗号鍵を一つ以上記憶する外部機器用暗号鍵記憶部と、
    前記乱数生成手段によって生成された乱数に基づいて前記暗号鍵の作業鍵を生成する外部機器用作業鍵生成手段と、
    前記暗号鍵の作業鍵を記憶する外部機器用作業鍵記憶部と、
    前記外部機器から前記マイクロプロセッサへのデータ転送又は前記マイクロプロセッサによる前記外部機器のデータの読み込みを行う場合に前記暗号鍵とその作業鍵とを用いて前記データを暗号化する外部機器用暗号化手段と、
    前記データを暗号化する際に用いられた暗号鍵及び作業鍵を用いて暗号化された当該データを復号化する外部機器用復号化手段と、を備え、
    前記外部機器用暗号鍵記憶部に記憶される暗号鍵の少なくとも一つと、前記暗号鍵記憶部に記憶される複数の暗号鍵のいずれか一つとは同一であり、
    前記作業鍵生成手段及び前記外部機器用作業鍵生成手段はそれぞれ、前記同一の暗号鍵の作業鍵を同一の乱数に基づいて生成し、
    前記マイクロプロセッサが前記外部機器へデータを書き込み又は転送する場合、前記暗号化手段は前記同一の暗号鍵の作業鍵を用いてデータを暗号化し、
    前記マイクロプロセッサが前記外部機器のデータを読み込み又は前記外部機器のデータが前記マイクロプロセッサへ転送される場合、前記外部機器用暗号化手段は前記同一の暗号鍵の作業鍵を用いてデータを暗号化することを特徴とするマイクロプロセッサ応用装置。
  10. 前記外部機器は、読み取り可能な情報を有する媒体から情報を取得する読取部を備え、
    前記マイクロプロセッサは、前記読取部によって取得された情報に基づいてプログラムによる処理を行うことを特徴とする請求項9に記載のマイクロプロセッサ応用装置。
  11. 複数のプログラムを記憶するプログラム記憶部を備え、
    前記読取部は、異なる情報を有する複数の前記媒体の情報を読み取り可能であって、
    前記複数のプログラムは、複数の前記媒体の異なる情報にそれぞれ対応し、
    前記マイクロプロセッサは、前記読取部によって取得された情報に対応するプログラムによる処理を行うことを特徴とする請求項10に記載のマイクロプロセッサ応用装置。
  12. 前記複数のプログラムは決済処理が可能なアプリケーションであり、
    前記媒体は前記決済処理が可能なアプリケーションの処理によって行われる決済処理に使用可能な情報を有することを特徴とする請求項10又は11に記載のマイクロプロセッサ応用装置。
JP2008129240A 2008-05-16 2008-05-16 マイクロプロセッサ及びマイクロプロセッサ応用装置 Pending JP2009278491A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2008129240A JP2009278491A (ja) 2008-05-16 2008-05-16 マイクロプロセッサ及びマイクロプロセッサ応用装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2008129240A JP2009278491A (ja) 2008-05-16 2008-05-16 マイクロプロセッサ及びマイクロプロセッサ応用装置

Publications (1)

Publication Number Publication Date
JP2009278491A true JP2009278491A (ja) 2009-11-26

Family

ID=41443478

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2008129240A Pending JP2009278491A (ja) 2008-05-16 2008-05-16 マイクロプロセッサ及びマイクロプロセッサ応用装置

Country Status (1)

Country Link
JP (1) JP2009278491A (ja)

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015211383A (ja) * 2014-04-28 2015-11-24 達広 白井 暗号処理装置、暗号処理システム、および暗号処理方法
WO2016018354A1 (en) * 2014-07-31 2016-02-04 Hewlett-Packard Development Company, L.P. Protecting memory storage content
JP2019074913A (ja) * 2017-10-16 2019-05-16 株式会社日立製作所 情報処理装置および情報処理装置のデータ処理方法

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63152241A (ja) * 1986-12-17 1988-06-24 Fujitsu Ltd デ−タバス暗号化方式
JP2000307565A (ja) * 1999-04-26 2000-11-02 Nec Corp 通信方法、その装置およびicカード
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2002202720A (ja) * 2000-12-28 2002-07-19 Toshiba Corp 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
JP2004007260A (ja) * 2002-05-31 2004-01-08 Fujitsu Ltd 暗号装置、電子機器及び暗号方法
JP2004038394A (ja) * 2002-07-01 2004-02-05 Toshiba Corp 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
JP2005078459A (ja) * 2003-09-01 2005-03-24 Toshiba Corp マイクロプロセッサ
JP2005196257A (ja) * 2003-12-26 2005-07-21 Toshiba Corp マイクロプロセッサ
WO2006126686A1 (ja) * 2005-05-26 2006-11-30 Matsushita Electric Industrial Co., Ltd. データ処理装置

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS63152241A (ja) * 1986-12-17 1988-06-24 Fujitsu Ltd デ−タバス暗号化方式
JP2000307565A (ja) * 1999-04-26 2000-11-02 Nec Corp 通信方法、その装置およびicカード
JP2001318787A (ja) * 2000-05-08 2001-11-16 Toshiba Corp マイクロプロセッサ、これを用いたマルチタスク実行方法、およびマルチレッド実行方法
JP2002202720A (ja) * 2000-12-28 2002-07-19 Toshiba Corp 耐タンパプロセッサにおける暗号化データ領域のプロセス間共有方法
JP2003051819A (ja) * 2001-08-08 2003-02-21 Toshiba Corp マイクロプロセッサ
JP2004007260A (ja) * 2002-05-31 2004-01-08 Fujitsu Ltd 暗号装置、電子機器及び暗号方法
JP2004038394A (ja) * 2002-07-01 2004-02-05 Toshiba Corp 耐タンパプロセッサにおける共有ライブラリの使用方法およびそのプログラム
JP2005078459A (ja) * 2003-09-01 2005-03-24 Toshiba Corp マイクロプロセッサ
JP2005196257A (ja) * 2003-12-26 2005-07-21 Toshiba Corp マイクロプロセッサ
WO2006126686A1 (ja) * 2005-05-26 2006-11-30 Matsushita Electric Industrial Co., Ltd. データ処理装置

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015211383A (ja) * 2014-04-28 2015-11-24 達広 白井 暗号処理装置、暗号処理システム、および暗号処理方法
WO2016018354A1 (en) * 2014-07-31 2016-02-04 Hewlett-Packard Development Company, L.P. Protecting memory storage content
US10176342B2 (en) 2014-07-31 2019-01-08 Hewlett Packard Enterprise Development Lp Protecting memory storage content
JP2019074913A (ja) * 2017-10-16 2019-05-16 株式会社日立製作所 情報処理装置および情報処理装置のデータ処理方法

Similar Documents

Publication Publication Date Title
JP4527640B2 (ja) データ読出装置
US7657756B2 (en) Secure memory caching structures for data, integrity and version values
US7681044B2 (en) Secure processor and system
US9536110B2 (en) Secure processor and a program for a secure processor
US8190917B2 (en) System and method for securely saving and restoring a context of a secure program loader
US20160364344A1 (en) Cache structure for a computer system providing support for secure objects
JP3880933B2 (ja) 耐タンパマイクロプロセッサ及びキャッシュメモリ搭載プロセッサによるデータアクセス制御方法
KR101054981B1 (ko) 프로그램의 콘텍스트를 보안적으로 저장하는 컴퓨터 구현 방법, 정보 처리 시스템 및 컴퓨터 판독 가능한 기록 매체
US20100017625A1 (en) Architecure, system, and method for operating on encrypted and/or hidden information
JP2002140236A (ja) マイクロプロセッサおよびデータ保護方法
US11748493B2 (en) Secure asset management system
JP2018520594A (ja) 制御された暗号化鍵管理によるソフトウェアモジュールの分離
JP4591163B2 (ja) バスアクセス制御装置
CN108229190B (zh) 透明加解密的控制方法、装置、程序、存储介质和电子设备
JP2009278491A (ja) マイクロプロセッサ及びマイクロプロセッサ応用装置
CN113434876A (zh) 一种数据加密方法、装置、内存控制器、芯片及电子设备
JP5316592B2 (ja) セキュアプロセッサ用プログラム
JP6368531B2 (ja) 暗号処理装置、暗号処理システム、および暗号処理方法
JP5365664B2 (ja) セキュアプロセッサ
JP3642533B2 (ja) プログラムカード及びこれを用いた計算機
KR101565968B1 (ko) 데이터 보호를 위한 메모리, 이를 포함하는 메모리 시스템 및 이의 동작 방법
JP5494389B2 (ja) 電子制御装置
JP4783452B2 (ja) セキュアプロセッサ
JP4783451B2 (ja) セキュアプロセッサ
JP2009211292A (ja) 暗号化方法、復号化方法、暗号化装置、復号化装置

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20110421

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20110421

A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20121119

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20121211

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20130409