JPH07210640A - Icカード内蔵メモリの検査方法 - Google Patents

Icカード内蔵メモリの検査方法

Info

Publication number
JPH07210640A
JPH07210640A JP6013228A JP1322894A JPH07210640A JP H07210640 A JPH07210640 A JP H07210640A JP 6013228 A JP6013228 A JP 6013228A JP 1322894 A JP1322894 A JP 1322894A JP H07210640 A JPH07210640 A JP H07210640A
Authority
JP
Japan
Prior art keywords
program
inspection
card
eeprom
memory
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
JP6013228A
Other languages
English (en)
Inventor
Masaki Wakamatsu
雅樹 若松
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 JP6013228A priority Critical patent/JPH07210640A/ja
Publication of JPH07210640A publication Critical patent/JPH07210640A/ja
Pending legal-status Critical Current

Links

Landscapes

  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

(57)【要約】 【目的】 ROM内にメモリ検査用のプログラムを格納
することなしに、内蔵メモリの検査を行う。 【構成】 図(a) に示すように、EEPROM15の第
2の領域に、第1の検査用プログラムをロードし、この
プログラムを用いて第1の領域についての検査を行う。
続いて、図(b) に示すように、EEPROM15の第1
の領域に、第2の検査用プログラムをロードし、このプ
ログラムを用いて第2の領域についての検査を行う。検
査終了後は、EEPROM15内を消去し、システム領
域に検査終了コードを書き込む。

Description

【発明の詳細な説明】
【0001】
【産業上の利用分野】本発明はICカード、特に、CP
Uを内蔵し、メモリの検査機能を有するICカードに関
する。
【0002】
【従来の技術】磁気カードに代わる新しい情報記録媒体
として、ICカードが注目を集めている。特に、CPU
を内蔵したICカードは、高度なセキュリティを有する
ため、種々の分野での利用が期待されている。一般にI
Cカードは、RAM,ROM,EEPROMといった3
種類のメモリを内蔵しており、いずれも内蔵CPUによ
ってアクセスされる。ROM内には、CPUが実行すべ
きプログラムが格納されており、EEPROM内には、
ユーザのための個人データなどが格納される。また、R
AMはCPUが命令を実行するときのワークエリアとし
て利用される。ICカードに対するデータの送受は、リ
ーダ/ライタ装置によって行われる。リーダ/ライタ装
置からICカードに対して所定の命令を与えると、この
命令はICカード内のCPUによって実行される。
【0003】ICカードは、銀行口座の管理、代金の決
済、など社会的・経済的に重要な機能を果たすデバイス
として流通するため、ICカードの製造業者は、出荷時
に厳重な検査を行っている。特に、個人データを記録す
るために用いられるEEPROMは、たとえ1バイトの
記憶領域にでも欠陥があると、重大な支障を来たすた
め、出荷時には厳重なメモリ検査を行う必要がある。C
PUを内蔵したICカードでは、通常、内蔵メモリはす
べて内蔵CPUによってのみアクセスされ、外部から直
接内蔵メモリをアクセスすることはできない。このた
め、従来の一般的なICカードでは、メモリ検査を行う
ための検査用プログラムをROMの中に用意しておき、
出荷時には、この検査用プログラムを内蔵CPUによっ
て実行させ、内蔵メモリの検査を行っている。
【0004】
【発明が解決しようとする課題】ICカードは、携帯可
能な非常に薄い媒体であるため、通常のOA機器などに
比べて内蔵メモリの容量が著しく制限される。これに反
して、ICカードに処理させるべき内容は複雑化する一
方であり、ROM内に書き込むべきアプリケーションプ
ログラムの容量は益々増える傾向にある。このため、R
OMの容量の一部を、メモリ検査用のプログラムを格納
するために割くと、ICカードに本来の処理機能を実行
させるために必要なアプリケーションプログラムの容量
が制限され、ICカードに十分な機能を与えることがで
きなくなる。
【0005】また、ROM内にメモリ検査用のプログラ
ムを格納しておくと、万一、CPUが誤動作した場合
に、メモリ内のデータを誤って書き換えてしまうような
事故が発生する可能性がある。すなわち、メモリ検査用
プログラムは、検査対象となるメモリに対する書き込み
動作と読出し動作を行うルーチンを含んでいるため、C
PUが暴走したときなどに、このルーチンが誤って実行
されると、メモリに対する予期せぬ書き込み処理が行わ
れることになり、メモリ内のデータが破壊されてしまう
ことになる。特に、EEPROM内には、重要な個人デ
ータが記録されるため、万が一にも、データが誤って書
き換えられる事態が生じると重大な問題になる。また、
事故だけに限らず、不正利用者がこのROM内のメモリ
検査用プログラムを利用して、EEPROM内の個人デ
ータを不正に改変したりするおそれもあり、セキュリテ
ィの面でも問題である。
【0006】そこで本発明は、ROM内にメモリ検査用
のプログラムを格納することなしに、内蔵メモリの検査
を行うことができるICカード内蔵メモリの検査方法を
提供することを目的とする。
【0007】
【課題を解決するための手段】
(1) 本願第1の発明は、少なくともRAM,ROM,
EEPROMの3種類のメモリと、これらのメモリをア
クセスする機能をもったCPUと、を内蔵するICカー
ドについて、メモリの検査を行う方法において、EEP
ROM内に、メモリ検査用プログラムを書き込み、この
検査用プログラムを実行することによりメモリの検査を
行い、検査終了後に検査用プログラムを消去するように
したものである。
【0008】(2) 本願第2の発明は、上述の第1の発
明に係る検査方法において、EEPROMの第1の領域
に対する検査を行う第1の検査用プログラムを、EEP
ROMの第2の領域に書き込む第1の段階と、第1の検
査用プログラムを実行して第1の領域に対する検査を行
う第2の段階と、EEPROMの第2の領域に対する検
査を行う第2の検査用プログラムを、EEPROMの第
1の領域に書き込む第3の段階と、第2の検査用プログ
ラムを実行して第2の領域に対する検査を行う第4の段
階と、EEPROM内に書き込んだ検査用プログラムを
消去する第5の段階と、を行うことにより、EEPRO
Mに対するメモリ検査を行うようにしたものである。
【0009】(3) 本願第3の発明は、上述の第2の発
明に係る検査方法において、外部からICカードに対し
て、EEPROM内へプログラムコードの入力を行うこ
とを示すプログラムコード入力指示と、所定のプログラ
ムコードと、EEPROM内のアドレスと、が与えられ
たときに、与えられたプログラムコードを与えられたア
ドレスに格納する処理を行うプログラムコード入力処理
と、外部からICカードに対して、EEPROM内のプ
ログラムを実行することを示すプログラム実行指示と、
EEPROM内のアドレスと、が与えられたときに、与
えられたアドレスに格納されているプログラムを実行す
るプログラム実行処理と、を行うためのルーチンをRO
M内に格納しておき、外部からICカードに対して、プ
ログラムコード入力指示と、第1の検査用プログラムの
コードと、第2の領域の所定アドレスと、を与えること
により第1の段階を実行させ、外部からICカードに対
して、プログラム実行指示と、第2の領域の所定アドレ
スと、を与えることにより第2の段階を実行させ、外部
からICカードに対して、プログラムコード入力指示
と、第2の検査用プログラムのコードと、第1の領域の
所定アドレスと、を与えることにより第3の段階を実行
させ、外部からICカードに対して、プログラム実行指
示と、第1の領域の所定アドレスと、を与えることによ
り第4の段階を実行させるようにしたものである。
【0010】(4) 本願第4の発明は、上述の第3の発
明に係る検査方法において、EEPROM内の所定のア
ドレス場所に、検査完了情報を書き込むための特別な領
域を設け、ICカードに対してリセット命令が与えられ
たときに、上記特別な領域に検査完了情報が書き込まれ
ているか否かを判断し、検査完了情報が書き込まれてい
ない場合にのみ第1の段階から第5の段階までの処理が
実行されるようなルーチンを、ROM内に格納するよう
にしたものである。
【0011】
【作 用】本発明に係るICカード内蔵メモリの検査方
法の特徴は、メモリ検査用プログラムを、従来のように
ROM内に常駐させておくのではなく、検査実行時にE
EPROM内に書き込む点にある。ICカード製造メー
カは、検査実行時に、検査用プログラムをEEPROM
内に書き込み、このプログラムを実行してメモリに対す
る検査を行った後、このプログラムを消去して出荷を行
えばよい。EEPROM内には、検査用プログラムは残
っていないため、従来のICカードと同様に、EEPR
OMをICカードの使用目的に応じたデータ領域として
使用することができる。しかも、ROM内には、検査用
プログラムは存在しないため、ROMに割り当てられた
メモリ容量を、ICカード本来の処理を実行させるため
のアプリケーションプログラムの格納に用いることがで
き、効率良いメモリ資源の利用を図ることができる。ま
た、CPUの誤動作によって、検査用プログラムが誤っ
て実行されてしまうおそれもなく、不正利用者によって
検査用プログラムを悪用されるおそれもない。
【0012】本発明では、EEPROM内にロードした
検査用プログラムによって、EEPROM自身を検査す
る必要があるため、EEPROMを2つの領域に分割
し、検査は個々の領域ごとに別々に行われる。すなわ
ち、第1の領域の検査を行うときには、検査用プログラ
ムは第2の領域にロードされ、第2の領域の検査を行う
ときには、検査用プログラムは第1の領域にロードされ
る。本発明を適用するICカードでは、ROM内に、外
部から検査用プログラムをEEPROMにロードするた
めのプログラムコード入力処理ルーチンと、EEPRO
M内のプログラムを実行するプログラム実行処理ルーチ
ンと、が用意される。これらの各ルーチンを用いて、検
査用プログラムのロード処理と検査の実行処理とが行わ
れる。
【0013】
【実施例】以下、本発明を図示する実施例に基づいて説
明する。図1は、一般的なICカード10をリーダ/ラ
イタ装置20に接続した状態を示すブロック図である。
ICカード10内には、リーダ/ライタ装置20と接続
するためのI/O装置11と、CPU12と、RAM1
3と、ROM14と、EEPROM15と、が内蔵され
ている。CPU12は、I/O装置11を介してリーダ
/ライタ装置20から与えられる命令を受けとり、これ
を実行する。3種類のメモリのうち、RAM13は揮発
性のメモリであって、CPU12のワークエリアとして
利用される。ROM14およびEEPROM15は、い
ずれも不揮発性のメモリであるが、ROM14は読み出
し専用であるのに対し、EEPROM15は随時書き換
えを行うことができる。このため、通常は、ROM14
には、CPU12に実行させるプログラムが用意され、
EEPROM15には、ICカード10の用途に応じた
データが記録される。したがって、従来のICカードで
は、ROM14内にメモリ検査用プログラムが書き込ま
れていた。ICカード製造メーカは、このICカードを
出荷する前に、リーダ/ライタ装置20からCPU12
に対して所定のメモリ検査コマンドを与えることによ
り、メモリの検査を行うことができる。すなわち、メモ
リ検査コマンドを受けたCPU12は、ROM14内の
メモリ検査用プログラムを実行し、EEPROM15や
RAM13を検査し、その結果をリーダ/ライタ装置2
0に報告する処理を行う。
【0014】図2は、これら3種類のメモリに対するア
ドレス割当ての一例を示すメモリマップである。この例
では、ROM14に対して「0000〜0FFF」、R
AM13に対して「1000〜1FFF」、EEPRO
M15に対して「2000〜2FFF」なるアドレスが
割り当てられている(アドレス値はいずれも16進数表
示、以下、本明細書におけるアドレス値はすべて16進
数表示とする)。従来のICカードでは、前述のよう
に、ROM14内にメモリ検査用プログラムが用意され
ていたので、ROM14に割り当てられた「0000〜
0FFF」なる4kバイトのメモリ容量のうちの一部
は、このメモリ検査用プログラムによって占有されてし
まい、ICカードに本来の処理機能を与えるためのアプ
リケーションプログラムを格納する領域がそれだけ減っ
てしまうという問題があることは既に述べたとおりであ
る。本発明では、メモリ検査用プログラムは、EEPR
OM15内に書き込まれて実行され、実行後は消去され
る。ただし、EEPROM15内に書き込まれたメモリ
検査用プログラムを用いて、RAM13を検査する場合
は何ら問題はないが、EEPROM15自身を検査する
場合には何らかの工夫が必要である。メモリ検査用プロ
グラムは、検査対象となるメモリ領域に対する書き込み
処理と読出し処理とを含むため、メモリ検査用プログラ
ムは自分自身を書き換えてしまうおそれがあるからであ
る。そこで、本発明では、次のような工夫を行ってい
る。
【0015】この実施例では、図3のメモリマップ(1
行は16バイト分のメモリ領域を示す)に示すように、
EEPROM15に割り当てられた「2000〜2FF
F」なるアドレス領域を、前半の第1の領域「2000
〜27FF」と後半の第2の領域「2800〜2FF
F」とに分けて取り扱う。しかも、第1の領域の先頭の
16バイトの領域(図3の1行目の領域)については、
特に「システム領域」と定義し、この領域については、
アプリケーションプログラムでの使用は禁止しておく。
この「システム領域」を設ける意味については、後述す
ることにする。
【0016】本発明の検査方法は、次の5段階の処理か
ら構成される。 第1の段階:第1の領域に対する検査を行う第1の検
査用プログラムを、第2の領域に書き込む(図4(a) 参
照)。 第2の段階:第1の検査用プログラムを実行して、第
1の領域(図4(a) にハッチングを施した検査対象領
域)に対する検査を行う。 第3の段階:第2の領域に対する検査を行う第2の検
査用プログラムを、第1の領域に書き込む(図4(b) 参
照)。 第4の段階:第2の検査用プログラムを実行して、第
2の領域(図4(b) にハッチングを施した検査対象領
域)に対する検査を行う。 第5の段階:書き込んだ検査用プログラムを消去す
る。
【0017】ここで、第1の検査用プログラムは、アド
レス領域「2000〜27FF」に対する検査を行うプ
ログラムであり、たとえば、2000番地から27FF
番地までのすべてに「FF」を書き込み、続いて、各番
地からデータを読出して正しく「FF」が書き込まれて
いたかを判定するような処理プログラムである。実際に
は、「FF」だけでなく、「00」を書き込んだり、そ
の他種々のデータの書き込みが行われる。また、書き込
みおよび読出しは、たとえば100回とか、繰り返して
行われる。第2の検査用プログラムも同様に、アドレス
領域「2800〜2FFF」に対する検査を行うプログ
ラムである。
【0018】ところで、図1に示されているように、C
PU12を内蔵したICカード10では、RAM13,
ROM14,EEPROM15は、通常、CPU12に
よってのみアクセスされ、これらのメモリをリーダ/ラ
イタ装置20から直接アクセスすることはできない。こ
の特徴は、高度のセキュリティを確保する上で役に立
つ。したがって、上述の各段階の処理は、すべてCPU
12によって実行する必要がある。そこで、この実施例
では、CPU12に対するコマンドとして、次の2つの
コマンドを定義してある。
【0019】第1のコマンドは、図5にフォーマットが
示されているコード入力コマンドである。このコマンド
は、外部(リーダ/ライタ装置20)から与えられたコ
ードを、EEPROM15内の所定のアドレスに入力
(ロード)するためのコマンドである。この実施例のI
Cカードでは、リーダ/ライタ装置20からICカード
10に与える種々のコマンドが定義されているが、いず
れのコマンドも1バイト目がコマンド種別を示すコード
になっている。図5に示すコード入力コマンドでは、そ
の種別を示す1バイト目は「01」である。結局、この
1バイト目の「01」は、このコマンドが、EEPRO
M15内へのコード入力を要求するコマンドであること
を示している。続く2,3バイト目には、入力すべきコ
ードの格納先頭アドレス(EEPROM15に割り当て
られたアドレス)が続き、次の4,5バイト目には、入
力すべきコードのコード長が続き、次の6バイト目以降
に入力すべきコード自身が続くことになる。
【0020】第2のコマンドは、図6にフォーマットが
示されているプログラム実行コマンドである。このコマ
ンドは、EEPROM15内にロードされたプログラム
を実行する指示を与えるコマンドである。このコマンド
についての種別は、1バイト目に示されている「02」
である。別言すれば、この1バイト目の「02」は、こ
のコマンドが、EEPROM15内にロードされたプロ
グラムの実行を要求するコマンドであることを示してい
る。続く2,3バイト目には、実行すべきプログラムの
開始アドレス(EEPROM15に割り当てられたアド
レス)が続く。
【0021】もちろん、CPU12に対するコマンド
は、上述の2つのコマンドだけではなく、種々のコマン
ドが定義されているが、他の一般コマンドについては、
ここでは説明を省略する。なお、これらのコマンドが外
部(リーダ/ライタ装置20)から与えられたときに、
コマンドを解釈して実行するルーチンは、ROM14内
に格納されていることになる。
【0022】さて、上述した2つのコマンドを解釈して
実行できるICカード10が用意できたら、リーダ/ラ
イタ装置20側では、図7に示すような5種類のコマン
ドを用意する。これらのコマンドのうち、コマンド1〜
3は、図5に示すコード入力コマンド(1バイト目のコ
マンド種別が「01」であるコマンド)であり、コマン
ド4,5は、図6に示すプログラム実行コマンド(1バ
イト目のコマンド種別が「02」であるコマンド)であ
る。以下、個々のコマンドの意味を説明しよう。
【0023】コマンド1は、第1の検査用プログラムコ
ードの入力を行うためのコマンドである。このコマンド
の2,3バイト目の「2800」は、格納先頭アドレス
が「2800」であることを示し、4,5バイト目の
「XXXX」は、後続するプログラムのコード長が「X
XXX」バイト(具体的な数値は示していない)である
ことを示している。そして、6バイト目以降に、「第1
の検査用プログラム」の実際のプログラムコードが記述
されている。したがって、リーダ/ライタ装置20から
ICカード10に対して、このコマンド1が与えられる
と、CPU12は、図4(a) に示すように、「第1の検
査用プログラム」をEEPROM15内の「2800」
番地からのアドレスに格納する処理を行うことになる。
【0024】コマンド2は、第2の検査用プログラムコ
ードの入力を行うためのコマンドである。このコマンド
の2,3バイト目の「2010」は、格納先頭アドレス
が「2010」であることを示し、4,5バイト目の
「XXXX」は、後続するプログラムのコード長が「X
XXX」バイト(具体的な数値は示していない)である
ことを示している。そして、6バイト目以降に、「第2
の検査用プログラム」の実際のプログラムコードが記述
されている。したがって、リーダ/ライタ装置20から
ICカード10に対して、このコマンド2が与えられる
と、CPU12は、図4(b) に示すように、「第2の検
査用プログラム」をEEPROM15内の「2010」
番地からのアドレスに格納する処理を行うことになる。
【0025】コマンド3は、「検査終了コード」の入力
を行うためのコマンドである。このコマンドの2,3バ
イト目の「2000」は、格納先頭アドレスが「200
0」であることを示し、4,5バイト目の「0001」
は、後続するコード長が1バイトであることを示してい
る。そして、6バイト目に、「検査終了コード」である
「5A」が記述されている。ここで、「5A」というコ
ード自身には特に意味はなく、1つのユニークな値とし
て「5A」を「検査終了コード」と取り決めただけのこ
とである。結局、リーダ/ライタ装置20からICカー
ド10に対して、このコマンド3が与えられると、CP
U12は、「検査終了コード」である「5A」をEEP
ROM15内の「2000」番地に書き込む処理を行う
ことになる。図3に示すように、アドレス「2000〜
200F」は、「システム領域」として予約された領域
であり、特にその先頭番地「2000」は、検査が終了
したか否かのフラグとして機能させるアドレスとなり、
ここでは、この2000番地のデータをFLGと呼ぶこ
とにする。この実施例では、FLG=「5A」の場合に
は、EEPROM15の検査は終了していることを意味
し、FLG≠「5A」の場合には、EEPROM15の
検査は終了していないことを意味する。
【0026】コマンド4は、第1の検査用プログラムの
実行を行うためのコマンドである。このコマンドの2,
3バイト目の「2800」は、実行開始アドレスが「2
800」であることを示す。したがって、リーダ/ライ
タ装置20からICカード10に対して、このコマンド
4が与えられると、CPU12は、図4(a) に示すよう
に、「2800」番地にロードされている「第1の検査
用プログラム」を実行することになり、その結果、同図
にハッチングで示されている検査対象領域「2000〜
27FF」が検査されることになる。
【0027】コマンド5は、第2の検査用プログラムの
実行を行うためのコマンドである。このコマンドの2,
3バイト目の「2010」は、実行開始アドレスが「2
010」であることを示す。したがって、リーダ/ライ
タ装置20からICカード10に対して、このコマンド
5が与えられると、CPU12は、図4(b) に示すよう
に、「2010」番地にロードされている「第2の検査
用プログラム」を実行することになり、その結果、同図
にハッチングで示されている検査対象領域「2800〜
2FFF」が検査されることになる。
【0028】この実施例では、内蔵メモリの検査を、I
Cカードに対して最初にリセット命令を与えたときに実
行することができるように、ROM14内に図8に示す
ようなリセットルーチンを用意してある。すなわち、リ
ーダ/ライタ装置20からICカード10に対してリセ
ット命令が与えられると、CPU12は、図8の流れ図
に示すリセットルーチンを実行することになる。まず、
ステップS1において、FLG=「5A」であるか否か
の判断がなされる。前述したように、FLGは、EEP
ROM15内の「システム領域」である2000番地の
データであり、このデータは検査終了コードとして機能
する。ステップS1において、FLG=「5A」であっ
た場合には、検査は終了しているので、ステップS2に
おいて通常のリセット処理(従来のICカードにおける
リセットルーチンで実行される処理:たとえば、変数の
初期化などの処理)が行われた後、アプリケーションプ
ログラムルーチンが実行される。一方、ステップS1に
おいて、FLG≠「5A」であった場合には、検査はま
だ行われていないので、ステップS3以降の手順により
検査が行われる。
【0029】まず、ステップS3において、コマンド待
ちの状態になる。すなわち、リーダ/ライタ装置20側
から何らかのコマンドが与えられるまで待機状態とな
る。何らかのコマンドが与えられたら、まずステップS
4で、そのコマンドが「コード入力コマンド」であるか
否かが判断される(すなわち、与えられたコマンドの1
バイト目のコマンド種別が「01」か否かが判断され
る)。「コード入力コマンド」でない場合には、次のス
テップS5で、そのコマンドが「プログラム実行コマン
ド」であるか否かが判断される(すなわち、与えられた
コマンドの1バイト目のコマンド種別が「02」か否か
が判断される)。与えられたコマンドが「コード入力コ
マンド」でも「プログラム実行コマンド」でもなかった
場合には、ステップS6において、リーダ/ライタ装置
20側に異常コマンド受信レスポンスが送出され、再び
ステップS1からの処理を実行することになる。すなわ
ち、ステップS3以降の検査処理は、図7に示す5つの
コマンド1〜5のうちのいずれかが与えられることを前
提としているのである。
【0030】さて、リーダ/ライタ装置20から与えら
れたコマンドが、「コード入力コマンド」であった場合
には、ステップS4からステップS7へ分岐し、EEP
ROM15内へのコード入力処理が実行される。前述し
たように、「コード入力コマンド」は図5に示すような
フォーマットを有するコマンドであり、このコマンドの
2,3バイト目に示されている格納先頭アドレスに後続
するアドレス場所に、このコマンドの6バイト目以降の
入力すべきコードが格納される。そして、次のステップ
S8において、再びFLG=「5A」か否かが判断さ
れ、FLG=「5A」であった場合には、ステップS9
において、FLG以外のEEPROM領域(2001〜
2FFF番地)に対して消去処理が実行された後、ステ
ップS1へ戻ることになる。一方、FLG≠「5A」で
あった場合には、ステップS8からステップS1へその
まま戻ることになる。
【0031】一方、リーダ/ライタ装置20から与えら
れたコマンドが、「プログラム実行コマンド」であった
場合には、ステップS5からステップS10へ分岐し、
EEPROM15内の指定プログラムが実行される。前
述したように、「プログラム実行コマンド」は図6に示
すようなフォーマットを有するコマンドであり、このコ
マンドの2,3バイト目に示されている実行開始アドレ
スから、プログラムが実行されることになる。このステ
ップS10の処理は、EEPROM15内のプログラム
をサブルーチンコールする形式で行われ、このEEPR
OM15内プログラムの実行が完了すると、ステップS
10からステップS1へと戻ることになる。
【0032】このステップS10からサブルーチンコー
ルされるプログラムは、EEPROM15内にロードさ
れたメモリ検査用プログラムである。前述したように、
この実施例では、EEPROM15の第1の領域を検査
するための第1の検査用プログラムと、第2の領域を検
査するための第2の検査用プログラムと、が用意されて
いる。図9は、このうちの第1の検査用プログラムの処
理手順の一例を示す流れ図である。このプログラムで
は、まずステップS11において、アドレス「2000
〜27FF番地」にデータ「FF」が書き込まれる。続
くステップS12では、同じアドレス「2000〜27
FF番地」から1バイトずつデータが読み出され、それ
らが「FF」であるか否かが検査される。こうして、読
み出したデータがいずれも「FF」であった場合には、
ステップS13において正常と判断され、ステップS1
4において、リーダ/ライタ装置20に対する正常レス
ポンスが送出される。一方、読み出したデータに「F
F」以外のものが含まれていたら、ステップS13にお
いて異常と判断され、ステップS15において、リーダ
/ライタ装置20に対する異常レスポンスが送出され
る。なお、この図9に示す検査手順は、単純なモデルを
一例として示したものであり、実際には、「FF」以外
にも種々のデータの書き込み/読み出し検査が行われ、
また、書き込み/読み出しも複数回行われるのが一般的
である。
【0033】以上述べたように、この実施例に示すIC
カード10は、本発明に係るメモリ検査を行う上で必要
な特有のルーチンをROM14内に含んでいる。すなわ
ち、図8に示すリセットルーチンと、図5に示す「コー
ド入力コマンド」を解釈して実行するルーチンと、図6
に示す「プログラム実行コマンド」を解釈して実行する
ルーチンである。しかしながら、これら特有のルーチン
は、比較的単純な処理ルーチンであり、これらのルーチ
ンを格納するために必要なメモリ容量は、メモリ検査を
行うためのルーチンを格納するために必要なメモリ容量
よりも少なくてすむ。
【0034】さて、最後に、上述のようなICカード1
0を用いたメモリ検査の手順を説明する。このメモリ検
査は、ICカード製造メーカにおいて出荷時に行われ
る。メーカは、出荷前に、ICカード10をリーダ/ラ
イタ装置20に図1に示すように接続し、リーダ/ライ
タ装置20からICカード10に対してリセット命令を
与える。CPU12は、このリセット命令を受けて、R
OM14内に用意された図8に示すリセットルーチンを
実行する。まず、ステップS1において、FLG=「5
A」か否かが判断される。EEPROM15の全アドレ
ス領域の初期状態は、通常「FF」あるいは「00」な
るデータが格納された状態になっているため、2000
番地に格納されているデータFLGは、「5A」ではな
い。そこで、ステップS3以降の検査処理が実行される
ことになる。ICカード10は、ステップS3において
コマンド待機状態になる。そこで、リーダ/ライタ装置
20からICカード10に対して、図7に示すコマンド
1を与えてやる。このコマンド1は、「コード入力コマ
ンド」であるから、ステップS4からステップS7へ分
岐し、「第1の検査用プログラム」が2800番地以降
にロードされた状態になる(図4(a) 参照)。次のステ
ップS8では、FLG≠「5A」と判断され、再びステ
ップS1に戻ることになる。
【0035】続いて、ステップS1からステップS3へ
と進み、再びコマンド待機状態となる。そこで、今度
は、リーダ/ライタ装置20からICカード10に対し
て、図7に示すコマンド4を与えてやる。このコマンド
4は、「プログラム実行コマンド」であるから、ステッ
プS5からステップS10へ分岐し、2800番地以降
にロードされている「第1の検査用プログラム」が実行
され、EEPROM15の第1の領域に対する検査が行
われることになる(図4(a) 参照)。この検査では、た
とえば図9の流れ図に示すような処理が実行され、リー
ダ/ライタ装置20に対して正常レスポンスの送出(ス
テップS14)か、異常レスポンスの送出(ステップS
15)がなされる。検査が完了すると、再びステップS
1に戻ることになる。
【0036】次に再び、ステップS1からステップS3
へと進み、コマンド待機状態となる。そこで、次に、リ
ーダ/ライタ装置20からICカード10に対して、図
7に示すコマンド2を与えてやる。このコマンド2は、
「コード入力コマンド」であるから、ステップS4から
ステップS7へ分岐し、「第2の検査用プログラム」が
2010番地以降にロードされた状態になる(図4(b)
参照)。次のステップS8では、FLG≠「5A」と判
断され、再びステップS1に戻ることになる。
【0037】続いて、ステップS1からステップS3へ
と進み、再度コマンド待機状態となる。そこで、今度
は、リーダ/ライタ装置20からICカード10に対し
て、図7に示すコマンド5を与えてやる。このコマンド
5は、「プログラム実行コマンド」であるから、ステッ
プS5からステップS10へ分岐し、2010番地以降
にロードされている「第2の検査用プログラム」が実行
され、EEPROM15の第2の領域に対する検査が行
われることになる(図4(b) 参照)。検査が完了する
と、再びステップS1に戻ることになる。
【0038】次に再び、ステップS1からステップS3
へと進み、コマンド待機状態となる。そこで、今度は、
リーダ/ライタ装置20からICカード10に対して、
図7に示すコマンド3を与えてやる。このコマンド3
は、「コード入力コマンド」であるから、ステップS4
からステップS7へ分岐し、「検査終了コード」として
のデータ「5A」が2000番地に書き込まれる。した
がって、次のステップS8では、FLG=「5A」と判
断され、ステップS9が実行される。このステップS9
は、FLG以外のEEPROM領域を消去する処理であ
る。すなわち、FLGに割り当てられている2000番
地以外の領域が消去されることになり、具体的には、ア
ドレス「2001〜2FFF番地」に、たとえばデータ
「FF」が書き込まれる。
【0039】ステップS9の消去処理が完了すると、再
びステップS1に戻るが、今度はFLG=「5A」と判
断され、ステップS2の通常のリセット処理が実行され
た後、アプリケーションプログラムルーチンが実行され
ることになる。これで、ICカード製造メーカにおける
出荷時のメモリ検査処理は完了する。2000番地のF
LGには、「検査終了コード」としてのデータ「5A」
が書き込まれた状態で残る。前述のように、EEPRO
M15のアドレス「2000〜200F番地」は、「シ
ステム領域」として定義されており、アプリケーション
プログラムでの使用が禁止されているため、以後、この
「検査終了コード」としてのデータ「5A」が書き換え
られることはない。なお、この実施例では、2000番
地以外の「システム領域(2001〜200F番地)」
についての利用態様は説明していないが、実際には、シ
ステム変数の格納などの用途に適宜利用することができ
る。
【0040】さて、こうしてメモリ検査が行われたIC
カード10は、製造メーカからユーザ(たとえば、銀
行)へと納入される。ユーザは、このICカード10を
各顧客に発行する(たとえば、銀行の預金者に対してキ
ャッシュカードとして発行する)。このようにユーザや
その顧客によってICカード10が使用されている状態
においては、既に、EEPROM15内のメモリ検査プ
ログラムは消去されているため、たとえCPU12が誤
動作しても、誤ってメモリ検査プログラムが実行される
ことはなく、メモリ検査プログラムが不正利用されるこ
ともない。また、2000番地には、「検査終了コー
ド:5A」が書き込まれているため、リーダ/ライタ装
置20からICカード10に対してリセット命令を与え
た場合、図8の流れ図におけるステップS1で、FLG
=5Aなる判断がなされ、ステップS2における通常の
リセット処理が実行された後、アプリケーションプログ
ラムがスタートするため、従来のICカードと全く同じ
態様で使用することが可能である。
【0041】以上、本発明を図示する実施例に基づいて
説明したが、本発明はこの実施例に限定されるものでは
なく、この他にも種々の態様で実施可能である。たとえ
ば、図5や図6に示したコマンドのフォーマットは、一
例として示したものであり、この他どのようなフォーマ
ットを定義してもかまわない。また、上述の実施例で
は、EEPROM15に対するメモリ検査のみを行って
いるが、RAM13に対するメモリ検査を同様に行うこ
とも可能である。
【0042】
【発明の効果】以上のとおり本発明に係るICカード内
蔵メモリの検査方法によれば、EEPROM内に、メモ
リ検査用プログラムを書き込み、この検査用プログラム
を実行することによりメモリの検査を行い、検査終了後
に検査用プログラムを消去するようにしたため、ROM
内にメモリ検査用のプログラムを格納することなしに、
内蔵メモリの検査を行うことができるようになる。
【図面の簡単な説明】
【図1】一般的なICカード10をリーダ/ライタ装置
20に接続した状態を示すブロック図である。
【図2】図1に示すICカード10に内蔵された3種類
のメモリに対するアドレス割当ての一例を示すメモリマ
ップである。
【図3】図2に示すEEPROM15のメモリマップの
詳細図である。
【図4】本発明に係るメモリの検査方法において、EE
PROM15の前半の第1の領域に対する検査(同図
(a) )と、後半の第2の領域に対する検査(同図(b) )
とを分けて行うことを示す図である。
【図5】本発明に係るメモリの検査方法を実施するため
に定義されたコード入力コマンドのフォーマットを示す
図である。
【図6】本発明に係るメモリの検査方法を実施するため
に定義されたプログラム実行コマンドのフォーマットを
示す図である。
【図7】本発明に係るメモリの検査方法を実施するため
に用意された5種類のコマンドを示す図である。
【図8】本発明に係るメモリの検査方法を実施するため
に用意されたROM内のリセットルーチンを示す流れ図
である。
【図9】本発明に係るメモリの検査方法を実施するため
にEEPROM内にロードする検査用プログラムの一例
を示す流れ図である。
【符号の説明】
10…ICカード 11…I/O装置 12…CPU 13…RAM 14…ROM 15…EEPROM 20…リーダ/ライタ装置

Claims (4)

    【特許請求の範囲】
  1. 【請求項1】 少なくともRAM,ROM,EEPRO
    Mの3種類のメモリと、これらのメモリをアクセスする
    機能をもったCPUと、を内蔵するICカードについ
    て、メモリの検査を行う方法において、 EEPROM内に、メモリ検査用プログラムを書き込
    み、この検査用プログラムを実行することによりメモリ
    の検査を行い、検査終了後に検査用プログラムを消去す
    ることを特徴とするICカード内蔵メモリの検査方法。
  2. 【請求項2】 請求項1に記載の検査方法において、 EEPROMの第1の領域に対する検査を行う第1の検
    査用プログラムを、EEPROMの第2の領域に書き込
    む第1の段階と、 前記第1の検査用プログラムを実行して前記第1の領域
    に対する検査を行う第2の段階と、 EEPROMの前記第2の領域に対する検査を行う第2
    の検査用プログラムを、EEPROMの前記第1の領域
    に書き込む第3の段階と、 前記第2の検査用プログラムを実行して前記第2の領域
    に対する検査を行う第4の段階と、 前記EEPROM内に書き込んだ検査用プログラムを消
    去する第5の段階と、 を行うことにより、EEPROMに対するメモリ検査を
    行うことを特徴とするICカード内蔵メモリの検査方
    法。
  3. 【請求項3】 請求項2に記載の検査方法において、 外部からICカードに対して、EEPROM内へプログ
    ラムコードの入力を行うことを示すプログラムコード入
    力指示と、所定のプログラムコードと、EEPROM内
    のアドレスと、が与えられたときに、与えられたプログ
    ラムコードを与えられたアドレスに格納する処理を行う
    プログラムコード入力処理と、 外部からICカードに対して、EEPROM内のプログ
    ラムを実行することを示すプログラム実行指示と、EE
    PROM内のアドレスと、が与えられたときに、与えら
    れたアドレスに格納されているプログラムを実行するプ
    ログラム実行処理と、 を行うためのルーチンをROM内に格納しておき、 外部からICカードに対して、前記プログラムコード入
    力指示と、第1の検査用プログラムのコードと、第2の
    領域の所定アドレスと、を与えることにより第1の段階
    を実行させ、 外部からICカードに対して、前記プログラム実行指示
    と、前記第2の領域の所定アドレスと、を与えることに
    より第2の段階を実行させ、 外部からICカードに対して、前記プログラムコード入
    力指示と、第2の検査用プログラムのコードと、第1の
    領域の所定アドレスと、を与えることにより第3の段階
    を実行させ、 外部からICカードに対して、前記プログラム実行指示
    と、前記第1の領域の所定アドレスと、を与えることに
    より第4の段階を実行させることを特徴とするICカー
    ド内蔵メモリの検査方法。
  4. 【請求項4】 請求項3に記載の検査方法において、 EEPROM内の所定のアドレス場所に、検査完了情報
    を書き込むための特別な領域を設け、 ICカードに対してリセット命令が与えられたときに、
    前記特別な領域に前記検査完了情報が書き込まれている
    か否かを判断し、前記検査完了情報が書き込まれていな
    い場合にのみ第1の段階から第5の段階までの処理が実
    行されるようなルーチンを、ROM内に格納したことを
    特徴とするICカード内蔵メモリの検査方法。
JP6013228A 1994-01-11 1994-01-11 Icカード内蔵メモリの検査方法 Pending JPH07210640A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP6013228A JPH07210640A (ja) 1994-01-11 1994-01-11 Icカード内蔵メモリの検査方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP6013228A JPH07210640A (ja) 1994-01-11 1994-01-11 Icカード内蔵メモリの検査方法

Publications (1)

Publication Number Publication Date
JPH07210640A true JPH07210640A (ja) 1995-08-11

Family

ID=11827330

Family Applications (1)

Application Number Title Priority Date Filing Date
JP6013228A Pending JPH07210640A (ja) 1994-01-11 1994-01-11 Icカード内蔵メモリの検査方法

Country Status (1)

Country Link
JP (1) JPH07210640A (ja)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176422A (ja) * 2009-01-29 2010-08-12 Autonetworks Technologies Ltd 制御装置、制御システム及び制御方法
JP2011008324A (ja) * 2009-06-23 2011-01-13 Hioki Ee Corp 測定データ記録装置および判定方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2010176422A (ja) * 2009-01-29 2010-08-12 Autonetworks Technologies Ltd 制御装置、制御システム及び制御方法
JP2011008324A (ja) * 2009-06-23 2011-01-13 Hioki Ee Corp 測定データ記録装置および判定方法

Similar Documents

Publication Publication Date Title
US6453397B1 (en) Single chip microcomputer internally including a flash memory
JP3662946B2 (ja) ファイル管理方式および携帯可能電子装置
JPH0758500B2 (ja) 携帯可能電子装置
JP3445304B2 (ja) ファイル管理装置
US5442165A (en) Secure IC card system with reusable prototype IC card
JPH07306922A (ja) Icメモリカードおよびそのicメモリカードの検査方法
JP2575358B2 (ja) Icカ−ド
US7025261B2 (en) Method and system for managing data designed to be stored in a programmable smart card
JP3471842B2 (ja) データ管理装置、データ記憶装置およびデータ管理方法
JP3512252B2 (ja) Cpuを内蔵した情報記録媒体
JPH07210640A (ja) Icカード内蔵メモリの検査方法
JP4219455B2 (ja) Icカード
JPS59107491A (ja) Icカ−ド
JPH08190614A (ja) Icカード
JPH08287207A (ja) Icカード
JPH0831122B2 (ja) Icカードにおけるコマンド処理方法
JP3487873B2 (ja) Icカード発行工程の管理方法
JP3195122B2 (ja) Icカードに与える命令フォーマットのチェック方法
JPH077339B2 (ja) 携帯可能電子装置のテスト方法
JP7582527B1 (ja) 電子情報記憶媒体、icチップ、レコード処理方法、及びプログラム
JPH01147686A (ja) 携帯可能電子装置
JP3057326B2 (ja) Icカード
JP3529402B2 (ja) Cpuを内蔵した情報記録媒体の自己診断方法
JPH0233690A (ja) Icカード発行方法
JP3054119B2 (ja) 携帯可能電子装置