JPH0935018A - 携帯可能情報記録媒体およびそのアクセス方法 - Google Patents

携帯可能情報記録媒体およびそのアクセス方法

Info

Publication number
JPH0935018A
JPH0935018A JP7202853A JP20285395A JPH0935018A JP H0935018 A JPH0935018 A JP H0935018A JP 7202853 A JP7202853 A JP 7202853A JP 20285395 A JP20285395 A JP 20285395A JP H0935018 A JPH0935018 A JP H0935018A
Authority
JP
Japan
Prior art keywords
program
cpu
code
command
execution
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
JP7202853A
Other languages
English (en)
Inventor
Kazuyoshi Irisawa
和義 入澤
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.)
Dai Nippon Printing Co Ltd
Original Assignee
Dai Nippon Printing 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 Dai Nippon Printing Co Ltd filed Critical Dai Nippon Printing Co Ltd
Priority to JP7202853A priority Critical patent/JPH0935018A/ja
Publication of JPH0935018A publication Critical patent/JPH0935018A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Credit Cards Or The Like (AREA)

Abstract

(57)【要約】 【課題】 十分なセキュリティを確保しつつ、ICカー
ドに対する外部アクセスを効率的に行う。 【解決手段】 CPU12が直接実行可能なインストラ
クションコードからなるプログラムを用意し、これを書
込コマンドを用いてICカード内のEEPROM15に
書込む。このEEPROM15内には、予め所定の実行
条件を書込んでおく。ここで、リーダライタ装置20か
ら、所定のプログラム実行コマンドを与えると、CPU
12は、プログラム内のインストラクションコードを先
頭から順にRAM14へ読出し、実行条件を満足してい
る場合にのみ、これを実行する。実行条件を満足してい
ないインストラクションコードに遭遇したら、実行を中
断し、リーダライタ装置20に対してエラーを示す情報
をレスポンスとして返送する。

Description

【発明の詳細な説明】
【0001】
【発明の属する技術分野】本発明は携帯可能情報記録媒
体およびそのアクセス方法、特に、CPUを内蔵したI
Cカードに対して利用するのに適した新規なアクセス方
法に関する。
【0002】
【従来の技術】磁気カードに代わる次世代の携帯可能情
報記録媒体として、ICカードが注目を集めている。最
近では、半導体集積回路の小型化、低コスト化のための
技術進歩により、実社会の種々のシステムにおいてIC
カードが実用されるに至っている。
【0003】特に、CPUを内蔵したICカードでは、
単なる情報記録媒体としての機能だけではなく、情報処
理機能が付加されるため、高度なセキュリティを必要と
する情報処理システムへの利用が期待されている。現在
普及している一般的なICカードは、CPUと、このC
PUによってアクセスされる3種類のメモリ、すなわ
ち、ROM,RAM,EEPROMを有している。RO
M内には、CPUによって直接実行可能なインストラク
ションコードからなるプログラムが記憶されており、C
PUはこのプログラムに基いて、ICカードを統括制御
する機能を有する。RAMは、CPUがこのような統括
制御を行う上での作業領域として使用されるメモリであ
る。一方、EEPROMは、CPUを介してデータの読
出しおよび書き込みが可能な不揮発性メモリであり、こ
のICカードに記録すべき本来のデータを格納するため
に用いられる。
【0004】通常、EEPROMへのアクセスは、すべ
てCPUを介して行われ、外部からEEPROMを直接
アクセスすることはできない。このため、EEPROM
内に格納される個々のファイルごとに様々なアクセス権
を設定することができ、高度なセキュリティを確保する
ことが可能になる。ICカード内のEEPROMに対し
て、外部から何らかのアクセスを行いたい場合には、必
ずCPUに対して、外部から所定のコマンドを与えると
いう方法をとることになる。たとえば、EEPROM内
の所定のファイルへデータの書き込みを行う場合は、所
定の書込コマンドとともに書込対象となるデータをCP
Uに与え、CPUによる書込コマンドの実行という形式
で書込処理が行われることになる。また、EEPROM
内の所定のファイルからデータの読出しを行う場合は、
所定の読出コマンドをCPUに与え、CPUによる読出
コマンドの実行という形式で読出処理が行われることに
なる。外部からICカードに対して所定のコマンドを与
えると、このコマンドに対するレスポンスがICカード
から外部に対して返送される。たとえば、書込コマンド
を与えた場合には、書込処理が支障なく実行されたか否
かを示すレスポンスが返送され、読出コマンドを与えた
場合には、読出対象となったデータがレスポンスという
形で返送されることになる。
【0005】セキュリティ確保の上でアクセス権を設定
した場合には、特定のコマンドの実行に特定のキーが要
求されるようになる。このようなキーが要求されるコマ
ンドを実行させるためには、その前に、キーの照合を行
っておく必要がある。このようなキーの照合は、外部か
らICカードに対して、照合コマンドとともに所定のキ
ーを与えることによって行われる。ICカード内部で、
与えられたキーと、EEPROM内に記録されていたキ
ーとが照合され、両者が一致していれば、特定のコマン
ドの実行が許可される。
【0006】
【発明が解決しようとする課題】上述のように、CPU
を内蔵した携帯可能情報記録媒体では、通常、外部から
所定のコマンドを送信し、これに対するレスポンスの返
送を受ける、という方法でアクセスが行われる。別言す
れば、携帯可能情報記録媒体にどのようなアクセスを行
わせる場合であっても、コマンド送信/レスポンス返送
/コマンド送信/レスポンス返送/…という処理を繰り
返し実行する必要がある。このようなコマンド送信およ
びレスポンス返送処理は、外部装置と携帯可能情報記録
媒体との間に形成されたI/Oラインを介して行われる
が、このI/Oラインを介したデータ転送速度は、媒体
内部におけるCPU・メモリ間のデータ転送速度に比べ
て非常に遅くなる。このため、媒体内部のCPUの性能
に比して、外部から媒体をアクセスする処理には非常に
時間がかかることになる。このように、長い時間にわた
って、I/Oライン上に大量のデータが流れるというこ
とは、セキュリティの観点からも好ましくない。すなわ
ち、外部装置と媒体との間に形成されるI/Oライン
は、外部から物理的にアクセスすることが容易であり、
I/Oライン上を流れるデータは、外部から不正に観測
される可能性が高く、長時間にわたってデータ転送を行
うことは、セキュリティ確保の上から問題になる。ま
た、I/Oラインを介したデータ転送を行う場合、本来
転送すべきデータに、所定の伝送プロトコルに従った制
御情報(いわゆるヘッダ、フッタ情報)を付加する必要
があり、冗長性が高くなるという問題もある。このよう
に、I/Oラインを介したコマンド送信/レスポンス返
送という手順による媒体のアクセスは、必ずしも効率的
なものにはなっていない。
【0007】このような問題に対する解決法として、媒
体に対するアクセス内容に応じて、その都度、インスト
ラクションコードからなるプログラムを書き、このプロ
グラムをバイナリデータとしてEEPROM内にファイ
ルとして書き込み、媒体内のCPUには、このEEPR
OM内のインストラクションコードを直接実行させると
いうアクセス方法も提案されている。この方法によれ
ば、I/Oラインを介したデータ転送は、プログラムを
バイナリデータとして転送するだけの短時間ですむ。以
後は、CPUはEEPROM内のプログラムを実行すれ
ばよいので媒体内だけの処理ですみ、非常に高速な処理
が可能になる。しかしながら、この方法は、セキュリテ
ィの点で大きな問題がある。すなわち、CPUの制御
は、ROM内に用意された通常のルーチンの支配を離
れ、EEPROM内に転送されたインストラクションコ
ードのルーチンによって完全に支配されることになる。
このため、不正利用者が、不正なプログラムをインスト
ラクションコードで記述してこの方法を利用すれば、C
PUはこの不正なプログラムを忠実に実行してしまうこ
とになる。
【0008】そこで本発明は、十分なセキュリティを確
保しつつ、外部からのアクセスを効率的に行うことがで
きる携帯可能情報記録媒体およびそのアクセス方法を提
供することを目的とする。
【0009】
【課題を解決するための手段】
(1) 本発明の第1の態様は、CPUと、このCPUに
よって直接実行可能なインストラクションコードからな
るプログラムを記憶したROMと、CPUの作業領域と
して使用されるRAMと、CPUを介してデータの読出
しおよび書き込みが可能な不揮発性メモリと、を備え、
外部から与えられたコマンドに基いて、CPUがROM
内の所定のプログラムを実行する機能を有する携帯可能
情報記録媒体において、不揮発性メモリ内に、インスト
ラクションコードからなるプログラムと、所定の実行条
件と、を書き込み、外部から所定のプログラム実行コマ
ンドを与えたときに、不揮発性メモリ内に書込まれたプ
ログラムを構成するインストラクションコードについ
て、書込まれた実行条件を満足しているか否かを判断
し、条件を満足している場合に限り、CPUが当該コー
ドを実行するように構成したものである。
【0010】(2) 本発明の第2の態様は、上述の第1
の態様に係る媒体において、外部から所定のプログラム
実行コマンドが与えられたときに、不揮発性メモリ内に
書込まれたプログラムを構成するインストラクションコ
ードを、先頭のコードから1コードずつ順にRAMへ読
出し、このRAM内において、実行条件を満足している
か否かの判断を行うようにしたものである。
【0011】(3) 本発明の第3の態様は、上述の第1
または第2の態様に係る媒体において、条件判断の対象
となるインストラクションコードが、データ転送を行う
コードであるか否かを判断し、データ転送を行うコード
でなかった場合には、当該コードを無条件で実行し、デ
ータ転送を行うコードであった場合には、更に、実行条
件を満足しているか否かの判断を行い、当該コードの実
行可否を決定するようにしたものである。
【0012】(4) 本発明の第4の態様は、上述の第1
〜第3の態様に係る媒体において、実行条件として、ア
クセス可能なアドレス範囲を指定するアドレス条件と、
解錠すべきキーを指定するセキュリティ条件と、を設定
したものである。
【0013】(5) 本発明の第5の態様は、上述の第1
〜第4の態様に係る媒体において、外部から所定のプロ
グラム実行コマンドが与えられたときに、不揮発性メモ
リ内に書込まれたプログラム内に実行条件を満足してい
ないインストラクションコードが存在した場合には、プ
ログラム実行コマンドに対するレスポンスとして、エラ
ーを示す情報を外部へ返送するようにしたものである。
【0014】(6) 本発明の第6の態様は、CPUと、
このCPUによって直接実行可能なインストラクション
コードからなるプログラムを記憶したROMと、CPU
の作業領域として使用されるRAMと、CPUを介して
データの読出しおよび書き込みが可能な不揮発性メモリ
と、を備え、外部から与えられたコマンドに基いて、C
PUがROM内の所定のプログラムを実行する機能を有
する携帯可能情報記録媒体、をアクセスする方法におい
て、不揮発性メモリ内に、インストラクションコードか
らなるプログラムと、所定の実行条件と、を書き込み、
不揮発性メモリ内に書込まれたプログラムを構成するイ
ンストラクションコードが実行条件を満足しているか否
かをCPUに判断させ、条件を満足している場合に限
り、CPUに当該コードを実行させるようにしたもので
ある。
【0015】
【発明の実施の形態】前述したように、ICカードをア
クセスする一方法として、インストラクションコードか
らなるプログラムをバイナリデータとして不揮発性メモ
リ内にファイルとして書き込み、ICカード内のCPU
に、この不揮発性メモリ内のインストラクションコード
を直接実行させるというアクセス方法も提案されてい
る。この方法によれば、インストラクションコードの実
行がICカードの内部処理で行われるため、非常に高速
な処理が可能になるが、セキュリティの点で大きな問題
がある。
【0016】本発明は、この方法のセキュリティの面で
の問題を解決するための手法を提供するものである。本
発明に係る携帯可能情報記録媒体の内蔵CPUは、RO
M内に用意されたプログラムを実行する機能とともに、
不揮発性メモリ内に書込まれたプログラムを実行する機
能を有する。ただし、前者は無条件で実行されるのに対
し、後者は一定の条件チェックが行われることを前提と
して実行される。すなわち、不揮発性メモリ内には、プ
ログラムと所定の実行条件とが書込まれる。そして、こ
の不揮発性メモリ内に書込まれたプログラムを実行する
ときには、各インストラクションコードごとに、実行条
件を満足しているか否かが判断され、条件を満足してい
る場合に限り実行されることになる。したがって、実行
条件を適当に設定しておくことにより、必要なセキュリ
ティを十分に確保することができるようになる。
【0017】たとえば、実行条件として、アクセス可能
なアドレス範囲を指定するアドレス条件を設定しておけ
ば、このアドレス範囲外のメモリをアクセスするような
インストラクションコードは、実行条件を満足していな
いものと判断され、実行は拒否されることになる。した
がって、重要なデータが格納されているアドレス領域に
ついては、アクセス可能なアドレス範囲から外しておく
ようにすれば、不正アクセスを防止することができる。
あるいは、実行条件として、解錠すべきキーを指定する
セキュリティ条件を設定しておけば、このキーが解錠さ
れない限り、特定のインストラクションコードの実行は
拒否されることになり、やはり不正アクセスを有効に防
止することができる。
【0018】このように本発明によれば、十分なセキュ
リティを確保しつつ、外部からのアクセスを効率的に行
うことができるようになる。
【0019】
【実施例】以下、本発明を図示する実施例に基いて説明
する。
【0020】§1. ICカードの一般的なアクセス方
はじめに、現在普及しているICカードに対する一般的
なアクセス方法を説明する。図1は、一般的なICカー
ド10に、外部装置としてのリーダライタ装置20を接
続し、アクセスを行っている状態を示すブロック図であ
る。ICカード10とリーダライタ装置20とはI/O
ライン30によって相互に接続されている。ここで、I
Cカード10には、I/Oインタフェース11、CPU
12、ROM13、RAM14、EEPROM15が内
蔵されている。I/Oインタフェース11は、I/Oラ
イン30を介してデータを送受するための入出力回路で
あり、CPU12はこのI/Oインタフェース11を介
して、リーダライタ装置20と交信することになる。R
OM13内には、CPU12によって直接実行可能なイ
ンストラクションコードからなるプログラムが記憶され
ており、CPU12はこのプログラムに基いて、ICカ
ード10を統括制御する機能を有する。RAM14は、
CPU12がこのような統括制御を行う上での作業領域
として使用されるメモリである。一方、EEPROM1
5は、このICカード10に記録すべき本来のデータを
格納するメモリである。
【0021】通常、ICカード10に対しては、外部の
リーダライタ装置20から電源やクロックが供給され
る。したがって、ICカード10がリーダライタ装置2
0と切り離されると、ICカード10への電源およびク
ロックの供給は停止する。しかしながら、EEPROM
15は不揮発性メモリであるため、電源供給が停止した
後もその記録内容はそのまま保持される。ただ、RAM
14内のデータは、電源供給の停止によりすべて失われ
る。
【0022】ICカード10内の各メモリ13,14,
15へのアクセスは、すべてCPU12を介して行わ
れ、外部からこれらメモリを直接アクセスすることはで
きない。すなわち、リーダライタ装置20からCPU1
2に対して所定の「コマンド」を与えると、CPU12
はこの「コマンド」を解釈実行し、その結果を、リーダ
ライタ装置20に対して「レスポンス」として返送する
ことになる。たとえば、EEPROM15内の所定のフ
ァイルに書き込みを行う場合には、「書込コマンド」と
ともに書込対象となるデータをCPU12に与え、CP
U12による「書込コマンド」の実行という形式で書込
処理が行われることになる。逆に、EEPROM15内
の所定のファイルからデータの読出しを行う場合は、所
定の「読出コマンド」をCPU12に与え、CPU12
による「読出コマンド」の実行という形式で読出処理が
行われることになる。このように、ICカード10内に
おいて「コマンド」の実行が終了すると、実行した「コ
マンド」に対する「レスポンス」が外部に対して返送さ
れる。たとえば、「書込コマンド」を与えた場合には、
書込処理が支障なく実行されたか否かを示す「レスポン
ス」返送され、「読出コマンド」を与えた場合には、読
出対象となったデータがレスポンスという形で返送され
ることになる。
【0023】通常、EEPROM15内へは、ファイル
単位でデータが格納され、個々のファイルごとにそれぞ
れアクセス権が設定される。この場合、特定のファイル
に対して特定の「コマンド」を実行する場合には、所定
のキーの入力が要求される。したがって、「書込コマン
ド」や「読出コマンド」を実行する前に、所定の「照合
コマンド」を実行してキー照合を行わなければならな
い。このため、EEPROM15内に格納されたデータ
に対して、高度なセキュリティを確保することが可能に
なる。
【0024】図2は、このような一般的なアクセス方法
を説明するブロック図である。ICカード10に対する
アクセスを行う場合、まず、リーダライタ装置20から
I/Oライン30を介してCPU12へ、送信データ3
1を転送する。この送信データ31は、CPU12に与
えるべき本来の「コマンド」の前後に、「ヘッダ」およ
び「フッタ」を付加したものである。この「ヘッダ」お
よび「フッタ」は、I/Oライン30を介した伝送を行
う上での所定の伝送プロトコルに従った制御情報であ
る。こうして「コマンド」が転送されてくると、CPU
12はこれを解釈して実行し、「レスポンス」を発生さ
せる。この「レスポンス」は、返送データ32としてリ
ーダライタ装置20へと返送される。この返送データ3
2は、「レスポンス」の前後に、「ヘッダ」および「フ
ッタ」を付加したものである。
【0025】CPU12に「コマンド」を実行させるた
めに、ROM13内には、個々の「コマンド」ごとにプ
ログラムルーチンが用意されている。たとえば、「書込
コマンド」、「読出コマンド」、「照合コマンド」のそ
れぞれに対応して、ROM13内には、「書込処理ルー
チン」、「読出処理ルーチン」、「照合処理ルーチン」
が用意されている。実際には、この他にもいくつかの
「コマンド」が定義されており、定義された「コマン
ド」には、それぞれ固有のサブルーチンがROM13内
に用意されていることになる。このROM13内のサブ
ルーチンは、CPU12が直接実行可能なインストラク
ションコード、すなわち、いわゆる「機械語」で記述さ
れたプログラムである。CPU12は、I/Oライン3
0を介して「コマンド」を受信すると、まず、ROM1
3内の「共通コマンド処理ルーチン」を実行して受信し
た「コマンド」を解釈し、その「コマンド」に応じたサ
ブルーチンを選択する。そして、個々の「コマンド」に
応じたサブルーチンの先頭のインストラクションコード
へのジャンプが起こり、所定の処理が実行される。この
処理が完了すると、再び「共通コマンド処理ルーチン」
へと戻り、所定の「レスポンス」を返送する処理が行わ
れる。以上が、CPU12に対して1つの「コマンド」
が与えられたときの全体の処理の流れである。
【0026】このように、ICカードに対する一般的な
アクセスは、コマンド送信/レスポンス返送/コマンド
送信/レスポンス返送/…という処理を繰り返すことに
よって行われる。このため、アクセスに長時間かか
る、伝送中のセキュリティが低下する、冗長性が高
くなる、といった問題が生じることは既に述べたとおり
である。すなわち、I/Oライン30を介しての「コマ
ンド」および「レスポンス」の転送速度は、CPU12
の演算処理速度に比べて非常に遅く、アクセスに時間
がかかる、という問題が生じることになる。また、I/
Oライン30上を流れるデータは、外部から不正に観測
される可能性が高く、長時間にわたってデータ転送を行
うと、伝送中のセキュリティが低下する、という問題
が生じることになる。更に、I/Oライン30を介した
伝送には、所定の伝送プロトコルに従った「ヘッダ」お
よび「フッタ」といった制御情報を付加する必要性が出
てくるので、冗長性が高くなる、といった問題も生じ
る。このように、I/Oライン30を介したコマンド送
信/レスポンス返送という手順によるICカード10の
アクセスは、必ずしも効率的なものにはなっていない。
【0027】§2. インストラクションコードを用い
たアクセス方法 このような問題に対する解決法として、インストラクシ
ョンコードを用いたアクセス方法も従来から提案されて
いる。この方法を、図3および図4のブロック図を参照
して説明しよう。まず、ICカード10に対するアクセ
ス内容に応じて、その都度、インストラクションコード
からなるプログラムを用意する。前述のように、このイ
ンストラクションコードは、CPU12が直接実行可能
な、いわゆる「機械語」で記述されたプログラムであ
る。もっとも、通常は、高級言語で記述したソースプロ
グラムをコンパイルすることによって、このインストラ
クションコードからなるプログラムを用意することにな
る。
【0028】続いて、この用意したインストラクション
コードからなるプログラムを、バイナリデータとしてE
EPROM15内に書き込む処理を行う。図3は、この
書込処理を示している。図示の例では、送信データ31
として、「WRITE BINARY」なる「書込コマ
ンド」をCPU12に送信している。ここで、「書込コ
マンド」は、「書込コマンドコード」と「書込対象とな
るデータ」とによって構成されており、「書込対象とな
るデータ」の部分に、用意したインストラクションコー
ドからなるプログラムを入れている。このプログラム
は、バイナリデータとして取り扱われるため、結局、図
4に示すように、EEPROM15内の所定のファイル
内に、このインストラクションコードからなるプログラ
ムがそのまま書き込まれることになる。
【0029】次に、図4に示すように、送信データ31
として、「GO PROG」なる「プログラム実行コマ
ンド」をCPU12に送信する。この「プログラム実行
コマンド」は、ここで述べるインストラクションコード
を用いたアクセス方法を行うために特別に定義されたコ
マンドであり、EEPROM15内に書き込まれたイン
ストラクションコード群をそのまま実行すべきことを指
示するコマンドである。このようなコマンドを実行させ
るためには、ROM13内に、この「プログラム実行コ
マンド」に対応したサブルーチンを用意しておく必要が
あるが、そのサブルーチンは非常に単純である。すなわ
ち、EEPROM15内に書き込まれたインストラクシ
ョンコードの先頭アドレスへのジャンプ命令によって構
成しておけばよい。
【0030】こうして、「プログラム実行コマンド」が
実行されると、CPU12は、EEPROM15内に書
き込まれたインストラクションコードを直接実行するこ
とになる。このようなアクセス方法によれば、I/Oラ
イン30を介したデータ転送は、プログラムをバイナリ
データとして転送するだけの短時間ですむ。以後、CP
U12はEEPROM15内のプログラムを実行すれば
よいので、ICカード10内部の処理だけですみ、非常
に高速な処理が可能になり、§1で述べた一般的なアク
セス方法に比べて、非常に効率的なアクセスが可能にな
る。
【0031】しかしながら、このアクセス方法は、既に
述べたように、セキュリティの点で大きな問題がある。
「プログラム実行コマンド」が実行された後は、CPU
12の制御は、EEPROM15内に書き込んだインス
トラクションコードによって完全に支配されてしまうこ
とになる。このため、不正利用者が、不正なプログラム
をインストラクションコードで記述してこの方法を利用
すれば、CPUはこの不正なプログラムを忠実に実行し
てしまうことになる。すなわち、「コマンド」の形式で
与えられた命令をCPU12が実行する限りは、ROM
13内に用意した正規のセキュリティチェックが機能す
るが、「インストラクションコード」の形式で与えられ
た原始的な命令をCPU12が実行する場合には、もは
やこのようなセキュリティチェックは機能しなくなって
しまうのである。
【0032】§3. 本発明に係るアクセス方法 以上のように、§2で述べたインストラクションコード
を用いたアクセス方法は、非常に効率的なアクセスが可
能であるというメリットを有する一方、セキュリティの
面で問題がある。本発明は、このセキュリティの面での
問題を解決する新規な手法を提案するものである。以
下、この方法を図5のブロック図を参照して説明する。
【0033】まず、図5に示されているように、EEP
ROM15内の所定領域に所定の実行条件を書込んでお
く。この実行条件の内容についての詳細は後述するが、
インストラクションコードを実行するための条件となる
ものであれば、どのような条件を設定しておいてもかま
わない。また、この実行条件は、どのようなフォーマッ
トで記述してもかまわない。いずれにせよ、この実行条
件は、バイナリデータとして表現することができるの
で、送信データ31として、「WRITE BINAR
Y」なる「書込コマンド」をCPU12に送信すること
により、EEPROM15内の所定領域に実行条件を書
込むことができる。
【0034】一方、前述の§2で説明した方法と同様
に、インストラクションコードからなるプログラムをE
EPROM15内に書込む処理を行う。すなわち、IC
カード10に対するアクセス内容に応じて、その都度、
インストラクションコードからなるプログラムを用意
し、これを「WRITE BINARY」なる「書込コ
マンド」によって、EEPROM15内に書込めばよ
い。図5は、このようにして、EEPROM15内に所
定の実行条件とインストラクションコードからなるプロ
グラムとを書込んだ状態を示している。
【0035】続いて、送信データ31として、「GO
PROG」なる「プログラム実行コマンド」をCPU1
2に送信する。この「プログラム実行コマンド」は、§
2で述べた同名のコマンドと同様に、EEPROM15
内に書き込まれたインストラクションコードからなるプ
ログラムを実行すべきことを指示するコマンドである。
ただ、§2で述べた「プログラム実行コマンド」は、プ
ログラムを構成するインストラクションコードを無条件
に実行する処理を行うコマンドであるが、本発明におけ
る「プログラム実行コマンド」は、個々のインストラク
ションコードを所定の条件の下でのみ実行する処理を行
うコマンドである。すなわち、個々のインストラクショ
ンコードについて、EPROM15内に書込まれている
実行条件を満足しているか否かを判断し、条件を満足し
ている場合に限って当該コードを実行する処理が行われ
る。
【0036】より具体的には、図5のブロック図に示す
ように、EEPROM15内に書込まれたプログラムを
構成するインストラクションコードのうち、実行対象と
なる1コードをRAM14へ読出し、このRAM14内
において、この読出したコードが実行条件を満足してい
るか否かの判断を行う。そして条件が満足されていれ
ば、実行可の決定を行い、CPU12は当該インストラ
クションコードを実行する。条件が満足されていなけれ
ば、実行否の決定を行い、CPU12は当該インストラ
クションコードを実行しない。このように、実行可否判
断を行いながら、実行可と判断されたインストラクショ
ンコードのみを実行する、という処理を、EEPROM
15内のプログラムを構成する先頭のインストラクショ
ンコードから順に1コードずつ繰り返し実行することに
なる。
【0037】なお、実行可否判断を行うには、必ずしも
インストラクションコードをRAM14内に読み出す必
要はないが、実行条件を満たしているか否かの論理判断
を行う上では、RAM14内に判断対象となるコードを
読出した方が、種々の論理演算などを行う上で都合がよ
い。
【0038】このように、本発明に係る「プログラム実
行コマンド」は、EEPROM15内に書込んだプログ
ラムを無条件に実行するのではなく、個々のインストラ
クションコードごとに実行条件を満足しているか否かを
判断し、条件を満足している場合にのみこれを実行する
という条件付実行処理を行うことになる。したがって、
§2で述べた無条件で実行する方法に比べて、実行可否
判断を行う分だけ実行速度は若干遅くなる。しかしなが
ら、この実行可否判断はICカード10の内部処理であ
るため、I/Oライン30を介したコマンド処理に比べ
ればはるかに速く、§1で述べた一般的なアクセス方法
よりも高速で効率的である。しかも、実行条件の設定内
容により、十分なセキュリティ確保が可能になる。
【0039】もっとも、実用上のセキュリティ確保とい
う点では、EEPROM15に対する「実行条件」の書
込み操作と、「インストラクションコードからなるプロ
グラム」の書込み操作とが、異なるセキュリティステー
ジで行われる必要がある。別言すれば、EEPROM1
5に対して「インストラクションコードからなるプログ
ラム」を書込む処理を行う者と、「実行条件」を書込む
処理を行う者とは、異なる者である必要があり、しか
も、「実行条件」が自由に書き替えられるようなことが
ないようなセキュリティ条件が担保されている必要があ
る。「プログラム」をEEPROM15に書込む者によ
って、「実行条件」が自由に書き替えられるような環境
においては、本発明の本質的なセキュリティ確保の意図
は没却されることになる。
【0040】本発明の実用的な利用態様としては、たと
えば、ICカードの発行者がこのカードを発行するステ
ージにおいて、予めEEPROM15内に所定の実行条
件を書込んでおき、ICカードの利用者がこのカードを
利用するステージにおいて、リーダライタ装置20から
所定の「プログラム」をEEPROM15内に書込み、
「プログラム実行コマンド」を与えてこれを実行させ
る、という利用態様を例示することができる。このと
き、EEPROM15内に書込まれた「実行条件」は、
カードを利用するステージにおいては書き替えができな
いようにしておけば、万一、このカードが不正利用者の
手に渡り、不正プログラムがEEPROM15内に書込
まれたとしても、この不正プログラムは、予め設定され
ている実行条件の下でしか実行されないことになる。
【0041】I/Oライン30を介して、「GO PR
OG」なる「プログラム実行コマンド」が与えられたと
きに、上述したような実行可否判断を行った上で個々の
インストラクションコードを実行する処理を行わせるた
めには、当然、ROM13内に、そのような処理を行う
ための「プログラム実行コマンド」に対応したサブルー
チンを用意しておく必要がある。このようなサブルーチ
ンの一例を図6の流れ図に基いて説明しよう。ここに示
す例は、実行条件として、メモリに対する読出しおよび
書込み命令について、アクセス可能なアドレス範囲を指
定するアドレス条件と、解錠すべきキーを指定するセキ
ュリティ条件と、を設定した例である。
【0042】この例では、リーダライタ装置20からI
/Oライン30を介して与える「プログラム実行コマン
ド」は、「GO PROG XXXX」なる形式をと
る。ここで、「XXXX」の部分には、EEPROM1
5内に書込まれているプログラムの先頭アドレスが置か
れることになる。したがって、同時に複数のプログラム
をEEPROM15に書込んだ場合であっても、「XX
XX」の部分にいずれかのプログラムの先頭アドレスを
記述することによって、所望のプログラムを選択的に実
行させることができる。
【0043】さて、「GO PROG XXXX」なる
形式の「プログラム実行コマンド」が外部から与えられ
ると、CPU12は、まずステップS1において、先頭
アドレスに位置するインストラクションコードをRAM
14へ読出す処理を行う。続いて、ステップS2におい
て、RAM14へ読み出されたインストラクションコー
ドが、転送命令であるか否かを判断する。ここで転送命
令とは、メモリに対するもしくはメモリからのデータ転
送を行う命令を意味し、より具体的には、いずれかのメ
モリからデータを取り出して移動させる命令か、あるい
は、データをいずれかのメモリへ移動させる命令を意味
する。ここに示す例は、前述のように、メモリに対する
読出しおよび書込み命令について実行条件を設定した例
であるので、転送命令のみ監視していれば十分である。
別言すれば、実行可否の判断対象となるインストラクシ
ョンコードが、転送命令でなければ、当該コードはメモ
リに対する読出しおよび書込みを行う命令コードではな
いので無条件で実行してよいことになる。
【0044】ステップS2において転送命令と判断され
た場合には、ステップS3における条件判断がなされ
る。前述したように、この例では、判断対象となるコー
ドが、所定のアドレス条件およびセキュリティ条件を満
足しているか否かが判断される。そして、ステップS4
において、この判断の結果、条件を満足していると判断
された場合には、実行可の決定がなされ、ステップS5
において当該インストラクションコードが実行される。
そして、ステップS6において、プログラム終了か否か
が判断され、終了でない場合には、別言すれば、後続す
るインストラクションコードがまだEEPROM15内
に存在する場合には、再びステップS1からの処理が繰
り返される。一方、ステップS6において、プログラム
終了と判断された場合には、別言すれば、実行対象とな
ったプログラムの最後のインストラクションコードの実
行が完了した場合には、ステップS7において正常フラ
グがONになる。また、ステップS3における条件判断
において、条件が満足されていなかった場合には、ステ
ップS4において、実行否の決定がなされ、ステップS
8で正常フラグがOFFにされる。
【0045】ステップS7およびS8においてON/O
FFされる正常フラグは、RAM14内に設けられた1
ビットのフラグであり、「プログラム実行コマンド」の
対象となったプログラムが正常に実行されたか否かを示
すフラグである。プログラムに含まれるすべてのインス
トラクションコードが正常に実行され、プログラムが支
障なく終了すると、ステップS7においてこのフラグは
ONになる。逆に、実行を否定されたインストラクショ
ンコードが1つでも含まれていると、ステップS8にお
いてこのフラグはOFFとなり、プログラムは途中で中
断することになる。いずれの場合であっても、ステップ
S9において、このフラグの状態が「レスポンス」とし
て返送される。すなわち、正常フラグがONの場合に
は、プログラムが正常に実施されたことを示す情報が返
送され、正常フラグがOFFの場合には、何らかのエラ
ーを示す情報が返送される。この「レスポンス」は、
「プログラム実行コマンド」に対するレスポンスであ
る。リーダライタ装置20側では、この「レスポンス」
によって、EEPROM15内のプログラムが正常に実
行されたか否かを認識することができる。なお、この
「レスポンス」は、正常フラグに関する情報だけではな
く、必要に応じて、プログラムの実行によりリーダライ
タ装置20側に返送すべき種々のデータを含んだものに
なる。
【0046】§4. アクセスの具体例 次に、本発明に係るアクセス方法を具体的な例に基いて
説明する。ここでは、図7に示すように、EEPROM
15内に存在する7つのファイルに関連したアクセス処
理を例にとった説明を行うことにする。これら7つのフ
ァイルには、それぞれ固有のファイルID(この例で
は、16進数による2バイトコードで表わされる。な
お、このファイルIDは、メモリのアドレスとは無関係
である。)、すなわち、「2F10」,「2F11」,
「2F12」,「2F13」,「2F14」,「2F1
5」,「2F16」が付与されている。ここで、ファイ
ル「2F10」は、このICカードの所有者であるユー
ザに関する何らかのユーザデータを格納したデータファ
イルであり、ファイル「2F11」,「2F12」,
「2F13」,「2F14」は、データファイル「2F
10」などのユーザデータを読み出したり書込んだりす
るために必要なキーが格納されたキーファイルである。
たとえば、第1のキーファイル「2F11」には、第1
のキー「1111」が格納されている。また、ファイル
「2F15」は、本発明の特徴となる「インストラクシ
ョンコードからなるプログラム」を格納するためのファ
イルであり、ファイル「2F16」は、本発明の特徴と
なる「実行条件」を格納するためのファイルである。こ
のように、この具体例では、「プログラム」も「実行条
件」もファイルの形式でEEPROM15内に書込まれ
ている。
【0047】ここで、「実行条件」を格納したファイル
「2F16」は、このICカードを発行するステージに
おいて書込まれたファイルであり、このICカードを利
用するステージでは、書き替えることができないように
なっている。したがって、利用ステージにおいて、ファ
イル「2F15」に任意のインストラクションコードか
らなるプログラムを書込むことは可能であるが、「GO
PROG XXXX」なるコマンドによって、このプ
ログラムを実行させようとしても、ファイル「2F1
6」に設定されている実行条件を満足しないインストラ
クションコードについては実行が拒否されることにな
る。
【0048】図8は、ファイル「2F16」に設定され
た実行条件の一例を示すものである。この例では、RE
AD系とWRITE系との2種類の命令形態について、
それぞれ異なるアドレス条件およびセキュリティ条件が
設定されている。ここで、READ系の命令形態は、メ
モリからデータを他の場所へ転送する処理を行うインス
トラクションコードに適用されるものである。設定され
たアドレス条件は、実行可とされるアドレス範囲を示し
ている。すなわち、アドレス6000〜607F(本明
細書では、アドレスはすべて16進表示で行うことにす
る)およびアドレス6400〜6F7Fの範囲内から、
データを他の場所へ転送する処理を行うインストラクシ
ョンコードについては実行可との判断がなされる。ま
た、READ系の命令形態について設定されたセキュリ
ティ条件は、第1のキーK1と第2のキーK2との両方
の照合が済んでいること、という条件である。図7に示
すように、この例では、第1のキーK1はファイル「2
F11」に格納されているように「1111」なる暗証
であり、第2のキーK2はファイル「2F12」に格納
されているように「2222」なる暗証である。したが
って、READ系のインストラクションコードを実行す
る前には、外部から「1111」なる暗証と「222
2」なる暗証が入力されて照合が済んでいる必要があ
る。
【0049】一方、WRITE系の命令形態は、メモリ
へデータを転送する処理を行うインストラクションコー
ドに適用されるものである。設定されたアドレス条件
は、実行可とされるアドレス範囲を示している。すなわ
ち、アドレス6040〜605Fおよびアドレス640
0〜67FFの範囲内へ、データを転送する処理を行う
インストラクションコードについては実行可との判断が
なされる。また、WRITE系の命令形態について設定
されたセキュリティ条件は、第3のキーK3と第4のキ
ーK4との両方の照合が済んでいること、という条件で
ある。図7に示すように、この例では、第3のキーK3
はファイル「2F13」に格納されているように「33
33」なる暗証であり、第4のキーK4はファイル「2
F14」に格納されているように「4444」なる暗証
である。したがって、WRITE系のインストラクショ
ンコードを実行する前には、外部から「3333」なる
暗証と「4444」なる暗証が入力されて照合が済んで
いる必要がある。
【0050】図9は、図8に示すようなアドレス条件が
設定されたEEPROM15についてのアドレスマップ
である。この例では、EEPROM15には、アドレス
6000〜6FFFが割り当てられており、このアドレ
ス空間は〜の7つの領域に分割されている。ここ
で、「R」と記された領域は、図8のアドレス条件にお
いて、READ系の命令形態について実行可とされる領
域であり、「W」と記された領域は、WRITE系の命
令形態について実行可とされる領域である。また、
「φ」と記された領域は、図8のアドレス条件におい
て、READ系およびWRITE系のいずれの命令形態
についても実行否とされる領域である。なお、この例で
は、EEPROM15に対するアクセス条件だけが示さ
れているが、必要に応じてROM13およびRAM14
のアドレス空間についても何らかのアクセス条件が設定
される。
【0051】図9において、領域は、「インストラク
ションコードからなるプログラム(図7のファイル「2
F15」)を格納するための領域であり、「R」と記さ
れているように、「プログラム実行コマンド」の実行中
は、READ系の命令形態によるアクセスのみが実行可
である。したがって、この領域に書込まれたプログラ
ムは、実行により自分自身が書き替えられることはな
い。領域,は、READ系,WRITE系のいずれ
の命令形態によるアクセスも実行可の領域であり、比較
的重要性の乏しい情報が格納される。一方、領域,
は、READ系の命令形態によるアクセスのみが実行可
であり、不正に書き替えられると困る比較的重要な情報
が格納される。また、領域,は、いずれの命令形態
によるアクセスも実行否とされる領域であり、重要性の
高い情報が格納される。
【0052】もっとも、この図9のアドレスマップに示
したアクセスの条件は、図8に示す実行条件を示したも
のであり、「GO PROG 6000」なる「プログ
ラム実行コマンド」が与えられたときに実行されるイン
ストラクションコードについてのアクセスの可否を示す
ものである。別言すれば、§3において述べた本発明特
有のアクセス方法を実行中にのみ適用されるアクセス条
件を示すものである。したがって、§1において述べた
一般的なアクセス方法を行う場合には、この図8に示す
実行条件の制約は受けず、たとえば、「READ BI
NARY」なる「読出コマンド」や、「WRITE B
INARY」なる「書込コマンド」によって、領域,
に対するアクセスは可能である。ただ、このような
「コマンド」レベルのアクセスに対しては、ROM13
内のルーチンにより、十分なセキュリティチェックがな
されることは既に述べたとおりである。
【0053】このように、「実行条件」として図8に示
すようなアドレス条件を設定しておくようにすれば、た
とえ不正利用者が、領域に不正なプログラムを書込ん
で、これを実行させるために「GO PROG 600
0」なる「プログラム実行コマンド」を与えたとして
も、領域,にアクセスするようなすべてのインスト
ラクションコードの実行は拒絶され、また、領域,
を書き替えるようなすべてのインストラクションコード
の実行も拒絶される。
【0054】また、ここに示す例では、アドレス条件に
加えて、更にセキュリティ条件を設定することにより、
より確実なセキュリティ確保を図っている。すなわち、
RAM14内には、図10(a) に示すようなセキュリテ
ィステータスの記録領域が設けられている。このセキュ
リティステータスは、8ビットの記録領域からなり、8
つのキーK1〜K8について、施錠状態「0」か解錠状
態「1」かのいずれかが記録されるようになっている。
各キーは、外部からの照合コマンドとともに正しい暗証
が入力されると解錠状態になる。たとえば、第1のキー
K1について、照合コマンドとともに「1111」なる
暗証が入力されると、セキュリティステータスのK1の
ビットが解錠状態「1」になる。もちろん、このセキュ
リティステータスの記録領域については、「プログラム
実行コマンド」の実行中には、WRITE系の命令を禁
止するアドレス条件が設定される。一方、EEPROM
15内には、図10(b) に示すようなREAD系のセキ
ュリティ条件と、図10(c) に示すようなWRITE系
のセキュリティ条件とが書込まれている。これらのセキ
ュリティ条件は、図8に示すセキュリティ条件に対応す
るものであり、解錠が要求されるキーについては、ビッ
ト「1」が記録されている。すなわち、READ系のセ
キュリティ条件としては、「第1のキーK1と第2のキ
ーK2とが解錠されていること」という条件が示されて
おり、WRITE系のセキュリティ条件としては、「第
3のキーK3と第4のキーK4とが解錠されているこ
と」という条件が示されている。
【0055】続いて、図11に示すように、EEPRO
M15内のアドレス6800〜6820に格納されてい
るデータを、RAM14内のアドレス0000〜002
0に逆順にして読出すアクセス処理を、本発明に係る方
法で実行する具体的な手順を示そう。この例では、この
RAM14内のアドレス0000〜0020は、送信バ
ッファ領域であり、ここへデータを読出す処理は、I/
Oライン30を介してリーダライタ装置20側へデータ
を送信する準備処理としての意味をもつ。
【0056】ここでは、CPU12が直接実行可能なイ
ンストラクションコードとして、図12に示すようなコ
ードが定義されていたものとして以下の説明を行う(図
12には、上述の処理を実行するために必要な8種類の
コードしか示していないが、実際には、この他にも種々
のコードが定義されている)。まず、このコードの示す
処理の内容を簡単に説明しておこう。1行目のコード
「01XXXX」は、16進数のデータ値「XXXX」
をレジスタ1へ取り込む処理を示し、2行目のコード
「02XXXX」は、16進数のデータ値「XXXX」
をレジスタ2へ取り込む処理を示す。また、3行目のコ
ード「030000」は、レジスタ1の示すアドレスの
内容を、レジスタ3に取り込む処理を示し、4行目のコ
ード「040000」は、レジスタ3の内容を、レジス
タ2の示すアドレス場所に転送する処理を示す。更に、
5行目のコード「050000」は、レジスタ1の内容
を1だけインクリメントする処理を示し、6行目のコー
ド「060000」は、レジスタ2の内容を1だけデク
リメントする処理を示し、7行目のコード「07YYY
Y」は、レジスタ2の内容が零でなければ、アドレスY
YYYのインストラクションコードまでジャンプする処
理を示し、8行目のコード「080000」はサブルー
チンからの復帰、すなわち、リターン処理を示す。
【0057】さて、図12に示すようなインストラクシ
ョンコードが定義されている場合に、図11に示すよう
なデータの読出処理を実行するには、図13に示すよう
なプログラムを、図9に示すメモリマップの領域内に
用意すればよい。図13では、このプログラムを構成す
るインストラクションコードを16進数のオブジェクト
コード(1つのコードは3バイトで示される)として各
アドレスに対応して示し、参考のために、右欄にはニー
モニックの表記を示した。ニーモニックの表記に基い
て、このプログラムの内容を簡単に説明しておくと、ま
ず、1行目の「MOVE 6800,R1」なる命令に
より、値「6800」がレジスタ1にセットされ、2行
目の「MOVE 0020,R2」なる命令により、値
「0020」がレジスタ2にセットされる。次に、3行
目の「MOVE (R1),R2」なる命令により、レ
ジスタ1の示すアドレスの内容(この場合、アドレス6
800に格納されている値)がレジスタ3にセットさ
れ、4行目の「MOVE R3,(R2)」なる命令に
より、レジスタ3の内容(アドレス6800に格納され
ていた値)が、レジスタ2の示すアドレス場所(この場
合、アドレス0020)にセットされる。更に、5行目
の「INC R1」なる命令により、レジスタ1の内容
が1だけインクリメントされ(値6801になる)、6
行目の「DECR2」なる命令により、レジスタ2の内
容が1だけデクリメントされる(値001Fになる)。
そして、7行目の「JPNZ R2,6000」なる命
令により、レジスタ2の値が「0000」になるまで、
アドレス6000からのプログラムが繰り返し実行さ
れ、最後に、8行目の「RET」なる命令により、この
プログラムは終了する。以上のようなプログラムの実行
により、図11に示すように、EEPROM15内のア
ドレス6800〜6820に格納されているデータが、
RAM14内のアドレス0020〜0000に逆順に読
み出されることが理解できよう。
【0058】さて、この図13に示すような24バイト
からなるプログラムがリーダライタ装置20側において
用意できたら、まず、このプログラムをバイナリデータ
として、EEPROM15内のアドレス6000〜60
17の領域に書込む処理をする。すなわち、I/Oライ
ン30を介して、「WRITE BINARY」コマン
ドに続いて、この24バイトのバイナリデータをICカ
ード10側へ送信すればよい。続いて、I/Oライン3
0を介して「GO PROG 6000」なるコマンド
をICカード10側へ送信すれば、このプログラムがI
Cカード10内において実行されることになる。
【0059】すなわち、図14に示すように、まず、先
頭のインストラクションコード「016800」がEE
PROM15からRAM14へと読み出される。これ
は、図6におけるステップS1の動作である。なお、こ
のとき、このRAM14内に読み出された3バイトから
なるコードに続いて、「080000」なる3バイトの
コード(リターンに対応するインストラクションコー
ド)が付加される。続いて、ステップS2において、転
送命令か否かが判断される。これは、RAM14内に読
出されたコードの1バイト目が、「03」か「04」の
いずれかであるかどうかで判断できる。すなわち、図1
2に示すように、1バイト目が「03」であるインスト
ラクションコードは、「レジスタ1の示すアドレスの内
容をレジスタ3にセット」する命令であり、READ系
の転送命令に該当し、1バイト目が「04」であるイン
ストラクションコードは、「レジスタ3の内容を、レジ
スタ2の示すアドレス場所にセット」する命令であり、
WRITE系の転送命令に該当するからである。
【0060】もし転送命令であった場合には、ステップ
S3において条件判断がなされる。図13に示すプログ
ラムの場合、3行目と4行目のインストラクションコー
ドが転送命令であり、ステップS3における条件判断が
なされることになる。この例の場合、いずれも図8に示
すアドレス条件を満足しているので、セキュリティ条件
が満足されていれば(キーK1〜K4の照合が完了して
いれば)、3行目と4行目のインストラクションコード
はいずれも実行される。また、3行目と4行目以外のイ
ンストラクションコードは、いずれも転送命令でないた
め、ステップS3の条件判断を行うことなしに無条件に
実行されることになる。ステップS5におけるインスト
ラクションコードの実行は、プログラムカウンタをRA
M14内に読み出されたインストラクションコードのア
ドレス位置に変更して実行することになるが、前述した
ように、RAM14内に読み出された3バイトからなる
コードに続いて、「080000」なる3バイトのリタ
ーンコードが付加されているため、ステップS5におい
てインストラクションコードを実行した後、CPU12
の制御は再びROM13内のルーチンに戻り、ステップ
S6へ進むことになる。
【0061】このように、EEPROM15内に書込ま
れたインストラクションコードは、1つずつRAM14
へ読み出され、チェックされた後に実行されるため、実
行条件に反した不正アクセスを行うようなインストラク
ションコードの実行は拒絶される。たとえば、図13に
示すプログラムの1行目は、「016800」と、アド
レス6800を起点としたデータ転送を示す内容になっ
ているが、これを「016080」として、アドレス6
080を起点としてデータ転送を示す内容に変えた場
合、図9のメモリマップに示すように、アドレス608
0からの領域はアクセス禁止領域であるため、このよ
うなプログラムは途中で中断することになる。すなわ
ち、3行目の「030000」を実行する時点で、アド
レス条件違反であると判断され、ステップS4からステ
ップS8を経て、このプログラムは中断されることにな
る。
【0062】以上、本発明を図示する実施例に基いて説
明したが、本発明はこの実施例に限定されるものではな
く、この他にも種々の態様で実施可能である。たとえ
ば、上述の実施例では、実行条件として、アドレス条件
およびセキュリティ条件を設定したが、これらの条件の
いずれか一方のみを設定してもよいし、あるいは別な実
行条件を設定してもよい。また、上述の実施例では、本
発明をICカードに適用した例を述べたが、本発明の適
用は、ICカードに限定されるものではなく、CPUを
内蔵した携帯可能情報記録媒体に広く及ぶものである。
【0063】
【発明の効果】以上のとおり、本発明に係る携帯可能情
報記録媒体では、不揮発性メモリ内に、インストラクシ
ョンコードからなるプログラムと、所定の実行条件と、
を書き込み、個々のインストラクションコードについ
て、実行条件を満足している場合に限りこれを実行する
ようにしたため、十分なセキュリティを確保しつつ、外
部からのアクセスを効率的に行うことができるようにな
る。
【図面の簡単な説明】
【図1】一般的なICカードに、外部装置としてのリー
ダライタ装置を接続し、アクセスを行っている状態を示
すブロック図である。
【図2】ICカードに対する従来の一般的なアクセス方
法を説明するブロック図である。
【図3】ICカードに対するインストラクションコード
を用いたアクセス方法の前段の操作を説明するブロック
図である。
【図4】ICカードに対するインストラクションコード
を用いたアクセス方法の後段の操作を説明するブロック
図である。
【図5】ICカードに対する本発明に係るアクセス方法
の操作を説明するブロック図である。
【図6】本発明に係るアクセス方法に用いるプログラム
実行コマンドの処理手順を示す流れ図である。
【図7】本発明に係るICカード内のEEPROMに格
納されているファイル群の一例を示す概念図である。
【図8】本発明に係るアクセス方法において設定される
実行条件の一例を示す図である。
【図9】図8に示す実行条件に基くEEPROMのアド
レスマップである。
【図10】図8に示す実行条件とセキュリティステータ
スとの関係を示す図である。
【図11】本発明に係るアクセス方法によるデータ転送
の一具体例を示す概念図である。
【図12】一般的なICカード内のCPUに実行させる
ためのインストラクションコードの一例を示す図であ
る。
【図13】図12に示すインストラクションコードを用
いて、図11に示すデータ転送を行うためのプログラム
を記述した一例を示す図である。
【図14】図13に示すプログラムの実行状態を示す概
念図である。
【符号の説明】
10…ICカード 11…I/Oインタフェース 12…CPU 13…ROM 14…RAM 15…EEPROM 20…リーダライタ装置 30…I/Oライン 31…送信データ 32…返送データ

Claims (6)

    【特許請求の範囲】
  1. 【請求項1】 CPUと、このCPUによって直接実行
    可能なインストラクションコードからなるプログラムを
    記憶したROMと、前記CPUの作業領域として使用さ
    れるRAMと、前記CPUを介してデータの読出しおよ
    び書き込みが可能な不揮発性メモリと、を備え、外部か
    ら与えられたコマンドに基いて、前記CPUが前記RO
    M内の所定のプログラムを実行する機能を有する携帯可
    能情報記録媒体において、 前記不揮発性メモリ内に、インストラクションコードか
    らなるプログラムと、所定の実行条件と、を書き込み、
    外部から所定のプログラム実行コマンドを与えたとき
    に、 前記不揮発性メモリ内に書込まれたプログラムを構成す
    るインストラクションコードについて、前記実行条件を
    満足しているか否かを判断し、条件を満足している場合
    に限り、前記CPUが当該コードを実行するように構成
    されたことを特徴とする携帯可能情報記録媒体。
  2. 【請求項2】 請求項1に記載の媒体において、 外部から所定のプログラム実行コマンドが与えられたと
    きに、不揮発性メモリ内に書込まれたプログラムを構成
    するインストラクションコードを、先頭のコードから1
    コードずつ順にRAMへ読出し、このRAM内におい
    て、実行条件を満足しているか否かの判断を行うことを
    特徴とする携帯可能情報記録媒体。
  3. 【請求項3】 請求項1または2に記載の媒体におい
    て、 条件判断の対象となるインストラクションコードが、デ
    ータ転送を行うコードであるか否かを判断し、 データ転送を行うコードでなかった場合には、当該コー
    ドを無条件で実行し、 データ転送を行うコードであった場合には、更に、実行
    条件を満足しているか否かの判断を行い、当該コードの
    実行可否を決定することを特徴とする携帯可能情報記録
    媒体。
  4. 【請求項4】 請求項1〜3のいずれかに記載の媒体に
    おいて、 実行条件として、アクセス可能なアドレス範囲を指定す
    るアドレス条件と、解錠すべきキーを指定するセキュリ
    ティ条件と、を設定したことを特徴とする携帯可能情報
    記録媒体。
  5. 【請求項5】 請求項1〜4のいずれかに記載の媒体に
    おいて、 外部から所定のプログラム実行コマンドが与えられたと
    きに、不揮発性メモリ内に書込まれたプログラム内に実
    行条件を満足していないインストラクションコードが存
    在した場合には、前記プログラム実行コマンドに対する
    レスポンスとして、エラーを示す情報を外部へ返送する
    ことを特徴とする携帯可能情報記録媒体。
  6. 【請求項6】 CPUと、このCPUによって直接実行
    可能なインストラクションコードからなるプログラムを
    記憶したROMと、前記CPUの作業領域として使用さ
    れるRAMと、前記CPUを介してデータの読出しおよ
    び書き込みが可能な不揮発性メモリと、を備え、外部か
    ら与えられたコマンドに基いて、前記CPUが前記RO
    M内の所定のプログラムを実行する機能を有する携帯可
    能情報記録媒体、をアクセスする方法において、 前記不揮発性メモリ内に、インストラクションコードか
    らなるプログラムと、所定の実行条件と、を書き込み、 前記不揮発性メモリ内に書込まれたプログラムを構成す
    るインストラクションコードが前記実行条件を満足して
    いるか否かを前記CPUに判断させ、条件を満足してい
    る場合に限り、前記CPUに当該コードを実行させるよ
    うにしたことを特徴とする携帯可能情報記録媒体のアク
    セス方法。
JP7202853A 1995-07-17 1995-07-17 携帯可能情報記録媒体およびそのアクセス方法 Pending JPH0935018A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP7202853A JPH0935018A (ja) 1995-07-17 1995-07-17 携帯可能情報記録媒体およびそのアクセス方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP7202853A JPH0935018A (ja) 1995-07-17 1995-07-17 携帯可能情報記録媒体およびそのアクセス方法

Publications (1)

Publication Number Publication Date
JPH0935018A true JPH0935018A (ja) 1997-02-07

Family

ID=16464284

Family Applications (1)

Application Number Title Priority Date Filing Date
JP7202853A Pending JPH0935018A (ja) 1995-07-17 1995-07-17 携帯可能情報記録媒体およびそのアクセス方法

Country Status (1)

Country Link
JP (1) JPH0935018A (ja)

Cited By (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725375B2 (en) 2000-07-11 2004-04-20 Renesas Technology Corp. Microcomputer and method and apparatus for changing the contents of the memory in the microcomputer
KR100505106B1 (ko) * 2002-05-29 2005-07-29 삼성전자주식회사 강화된 보안 기능을 갖춘 스마트 카드
JP2007206765A (ja) * 2006-01-31 2007-08-16 Dainippon Printing Co Ltd Icカード発行方法、icカード発行システムおよびicカード
JP2007323133A (ja) * 2006-05-30 2007-12-13 Dainippon Printing Co Ltd Icカード発行方法およびicカード
WO2009022388A1 (ja) * 2007-08-10 2009-02-19 Panasonic Corporation リムーバブルメディア、フォーマット装置、システム、方法、プログラム
JP2009179206A (ja) * 2008-01-31 2009-08-13 Denso Corp 車両の電子制御装置

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6725375B2 (en) 2000-07-11 2004-04-20 Renesas Technology Corp. Microcomputer and method and apparatus for changing the contents of the memory in the microcomputer
KR100505106B1 (ko) * 2002-05-29 2005-07-29 삼성전자주식회사 강화된 보안 기능을 갖춘 스마트 카드
JP2007206765A (ja) * 2006-01-31 2007-08-16 Dainippon Printing Co Ltd Icカード発行方法、icカード発行システムおよびicカード
JP2007323133A (ja) * 2006-05-30 2007-12-13 Dainippon Printing Co Ltd Icカード発行方法およびicカード
WO2009022388A1 (ja) * 2007-08-10 2009-02-19 Panasonic Corporation リムーバブルメディア、フォーマット装置、システム、方法、プログラム
US8156257B2 (en) 2007-08-10 2012-04-10 Panasonic Corporation Removeable medium, formatting device, formatting system, formatting method, and formatting program
JP5121076B2 (ja) * 2007-08-10 2013-01-16 パナソニック株式会社 リムーバブルメディア、フォーマット装置、及びフォーマットシステム
JP2009179206A (ja) * 2008-01-31 2009-08-13 Denso Corp 車両の電子制御装置

Similar Documents

Publication Publication Date Title
US20240220424A1 (en) Block or page lock features in serial interface memory
US6299069B1 (en) Integrated circuit for embedding in smart cards, and method of issuing smart cards
EP1450299B1 (en) Portable information recording medium
US6453397B1 (en) Single chip microcomputer internally including a flash memory
JP2007226839A (ja) データ構造を記憶するメモリ及び方法
JP3891539B2 (ja) 半導体装置およびその制御装置
US7797553B2 (en) Memory device
JP2575358B2 (ja) Icカ−ド
JPH0935018A (ja) 携帯可能情報記録媒体およびそのアクセス方法
JP4489915B2 (ja) 暗証コード照合機能をもった携帯型情報処理装置
JP3657315B2 (ja) 携帯可能情報記録媒体およびそのアクセス方法
JP3718564B2 (ja) Icカード
JPH10301854A (ja) チップ・カードおよびその上に情報をインポートする方法
JPH11282991A (ja) Icカード
JPH11167525A (ja) 不揮発性メモリ混載マイコン及びその不揮発性メモリ書換え方法並びに不揮発性メモリ混載マイコンの不揮発性メモリ書換えプログラムを記録した記録媒体
JPH0682344B2 (ja) Icカ−ド
JP2003016410A (ja) Icカード
JP2004334745A (ja) Icカード
JPS5928300A (ja) 半導体装置
CN102637152B (zh) 具有处理单元和信息存储装置的设备
JP2501050Y2 (ja) Icカ―ド
JP2003141481A (ja) セキュリティー機能を備えたリムーバブルストレージカードおよびその認証方法
JP3789994B2 (ja) Icカード
JP3730684B2 (ja) プログラマブルコントローラ用表示装置およびその表示情報書込方法
JP2002352205A (ja) 携帯可能電子装置及びアクセス管理方法

Legal Events

Date Code Title Description
A977 Report on retrieval

Free format text: JAPANESE INTERMEDIATE CODE: A971007

Effective date: 20040820

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20040928

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20041129

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20050215