(57)【特許請求の範囲】
【請求項１】
少なくともＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭの３種類のメモリと、このメモリに対するアクセスを行うＣＰＵと、を内蔵したＩＣカードであって、
前記ＲＯＭ内には、複数のコマンドを実行するための各ルーチンが記録されており、前記ＥＥＰＲＯＭ内には、前記各ルーチンによって生成されるレスポンスの内容と外部に送出すべきレスポンスコードとを対応づけるレスポンステーブルが記録されており、
前記ＲＯＭ内に記録された前記各ルーチンには、レスポンスの内容を示す情報としてレスポンスコードそのものを記述する代わりに、前記ＥＥＰＲＯＭ内に記録されたレスポンステーブル上の参照位置が記録されており、
前記各ルーチンによって特定のレスポンスの内容が生成されたときに、前記レスポンステーブルを参照することにより、生成されたレスポンスの内容に対応するレスポンスコードを外部に送出する機能を有することを特徴とするＩＣカード。
【請求項２】
少なくともＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭの３種類のメモリと、このメモリに対するアクセスを行うＣＰＵと、を内蔵したＩＣカードを使用する方法であって、
ＲＯＭ内に、複数のコマンドを実行するための各ルーチンが記録され、ＥＥＰＲＯＭ内に、前記各ルーチンによって生成されるレスポンスの内容と外部に送出すべきレスポンスコードとを対応づけるレスポンステーブルを記録するためのテーブル記録領域が設けられ、前記各ルーチンによって特定のレスポンスの内容が生成されたときに、前記レスポンステーブルを参照することにより、生成されたレスポンスの内容に対応するレスポンスコードを外部に送出する機能をもったＩＣカードを用意する段階と、
このＩＣカードに対して接続されるリーダライタが要求するレスポンスコードと前記各ルーチンによって生成されるレスポンスの内容とを対応づけるレスポンステーブルを、前記テーブル記録領域に書込む段階と、
を有し、前記ＲＯＭ内に記録された前記各ルーチンには、レスポンスの内容を示す情報としてレスポンスコードそのものを記述する代わりに、前記ＥＥＰＲＯＭ内の前記テーブル記録領域の参照位置を記録しておくことを特徴とするＩＣカードの使用方法。
【発明の詳細な説明】
【０００１】
【産業上の利用分野】
本発明はＩＣカードおよびその使用方法に関し、特に、同一のＲＯＭをもったＩＣカードを用いて、異なるリーダライタに対応可能なＩＣカードを実現するための方法に関する。
【０００２】
【従来の技術】
磁気カードに代わる新しい情報記録媒体として、ＩＣカードが脚光を浴びている。このＩＣカードは、磁気カードに比べて大量の情報を記録することができ、しかも高度なセキュリティを有する。このＩＣカード内のメモリに対するデータの読み取りおよび書き込みを行う装置としてリーダライタが用いられる。ＩＣカードをリーダライタ内に挿入すると、両者は電気的に接続された状態となり、リーダライタからＩＣカードへリセット信号が与えられる。ＩＣカードはこのリセット信号に対してリセット応答信号をリーダライタへと戻す。こうして、両者間におけるデータ伝送路が確立され、ＩＣカード内のメモリに対するデータの読み取りおよび書き込みが行われる。すなわち、リーダライタから所定のコマンドコードをＩＣカードに与えると、このコマンドコードはＩＣカード内で解読され、ＩＣカード内のＣＰＵにより所定のコマンドが実行される。コマンドによっては、実行後にレスポンスを返すものがあり、この場合には、ステータス等の所定のレスポンスコードがＩＣカードからリーダライタへ返される。
【０００３】
【発明が解決しようとする課題】
ＩＣカードおよびリーダライタは、これまで各社が独自に開発を行ってきており、現時点ではＩＳＯにより一応標準の規格が定められてはいるが、ＩＣカードとリーダライタとの間で伝送される各コードは、各社が独自の設定を採用している。たとえば、データの読み出しを指示するリード命令のコードとして、Ａ社の規格ではコード「４Ｆ」が用いられ、Ｂ社の規格ではコード「ＡＤ」が用いられるというように、同じリード命令であっても各社で別々なコード設定がなされている。この場合、Ａ社のＩＣカードでは、コマンドコード「４Ｆ」が与えられたらリード命令を実行するようなルーチンがＲＯＭ内に用意されており、Ｂ社のＩＣカードでは、コマンドコード「ＡＤ」が与えられたらリード命令を実行するようなルーチンがＲＯＭ内に用意されていることになる。したがって、たとえば、各社の仕様に合わせてコードを変更して用いたい場合等には、ＲＯＭを交換する以外に方法がない。このため、一度発行したＩＣカードについて用いるコードを途中で変更することはできないのが現状である。
【０００４】
そこで本発明は、同一のＲＯＭをもったＩＣカードを用いて、異なるリーダライタに対応可能なＩＣカードを実現するための方法を提供することを目的とする。
【０００５】
【課題を解決するための手段】
本願発明は、少なくともＲＡＭ、ＲＯＭ、ＥＥＰＲＯＭの３種類のメモリと、このメモリに対するアクセスを行うＣＰＵと、を内蔵し、ＲＯＭ内に、複数のコマンドを実行するための各ルーチンが記録され、ＥＥＰＲＯＭ内に、各ルーチンによって生成されるレスポンスの内容と外部に送出すべきレスポンスコードとを対応づけるレスポンステーブルを記録するためのテーブル記録領域が設けられ、各ルーチンによって特定のレスポンスの内容が生成されたときに、レスポンステーブルを参照することにより、生成されたレスポンスの内容に対応するレスポンスコードを外部に送出する機能をもったＩＣカードを用意し、このＩＣカードに対して接続されるリーダライタが要求するレスポンスコードと各ルーチンによって生成されるレスポンスの内容とを対応づけるレスポンステーブルを、テーブル記録領域に書込むようにし、ＲＯＭ内に記録された各ルーチンには、レスポンスの内容を示す情報としてレスポンスコードそのものを記述する代わりに、ＥＥＰＲＯＭ内のテーブル記録領域の参照位置を記録しておくようにし、異なるリーダライタに対応可能となるようにしたものである。
【０００８】
【作  用】
本願発明に係るＩＣカードでは、レスポンスコードは、ＲＯＭではなくＥＥＰＲＯＭにテーブルとして記録される。そして、ＩＣカードを発行する際には、利用するリーダライタに応じて、ＥＥＰＲＯＭ内のテーブルにレスポンスコードを書込む処理が行われるので、同一のＲＯＭをもったＩＣカードでも、発行後は、それぞれ異なるリーダライタに対応できるようになる。ＥＥＰＲＯＭ内のデータは、ＩＣカード発行後も書き替えることが可能であるから、随時再発行を行うことも可能になる。
【０００９】
【実施例】
以下、本発明を図示する実施例に基づいて説明する。図１は、本発明に係るＩＣカード１０と、これに用いるリーダライタ２０の全体構成を示すブロック図である。ＩＣカード１０内の主たる構成要素は、ＣＰＵ１１、ＲＡＭ１２、ＲＯＭ１３、ＥＥＰＲＯＭ１４である。ＣＰＵ１１は、図示しないインターフェイスを介してリーダライタ２０と交信を行うとともに、各メモリ１２，１３，１４をアクセスする処理を行う。ＩＣカード１０をリーダライタ２０の筐体内に挿入すると、ＩＣカード１０側の接続端子とリーダライタ２０側の接続端子とが接触し、両者間が電気的に接続される。すなわち両者間には、共通の接地電位を定めるＧＮＤラインと、リーダライタからＩＣカードへ電源を供給するためのＶＣＣラインと、クロックを供給するためのＣＬＫラインと、リセット信号を与えるためのＲＳＴラインと、双方向にデータを伝送するためのＩ／Ｏラインと、が確保される。両者間のデータ伝送は、Ｉ／Ｏラインを通じて一方向ずつ交互に行われる。
【００１０】
ＣＰＵ１１は、ＲＯＭ１３内に用意されたプログラムに基づいて種々の処理を実行する。すなわち、ＲＯＭ１３内には、図１に示すように、コマンド実行ルーチンおよびリセット応答ルーチンが用意されており、ＣＰＵ１１はこれらのルーチンに従って種々の処理を実行する。ＲＡＭ１２は、ＣＰＵ１１が種々の処理を行う上でのワークエリアとして利用される。また、ＥＥＰＲＯＭ１４は、電気的に書き換えが可能なメモリであり、通常はユーザー領域として利用される。たとえば、銀行業務に用いるＩＣカードであれば、顧客の住所、氏名、預入および引出の履歴データなどが書き込まれる。本発明の特徴は、このＥＥＰＲＯＭ１４の領域の一部に各種コードテーブルを記録するようにした点にある。すなわち、ＥＥＰＲＯＭ１４内には、図１に示すように、コマンドコードテーブル、レスポンスコードテーブル、リセット応答コードテーブル、が記録されている。ここで、コマンドコードテーブルは、リーダライタ２０から与えられたコマンドコードと、ＲＯＭ１３内のコマンド実行ルーチンとを対応づけるテーブルであり、レスポンスコードテーブルは、ＲＯＭ１３内のコマンド実行ルーチンによって生成されるレスポンスの内容と、外部に送出すべきレスポンスコードとを対応づけるテーブルである。
【００１１】
以下、これらのテーブルの意味について、図２に示す具体例を参照しながら説明する。図２には、ＥＥＰＲＯＭ内に用意されるコマンドコードテーブルおよびレスポンスコードテーブルの一例と、ＲＯＭ内に用意されるコマンド実行ルーチンの一例とが示されている。この例では、コマンドコードもレスポンスコードも、いずれも１バイトのコードからなる。コマンドコードテーブルには、１バイト目〜５バイト目にかけて、「ＡＦ，０５，７Ｂ，７Ｃ，８６」なるコードが定義され、レスポンスコードテーブルには、同様に１バイト目〜５バイト目にかけて、「２３，６Ａ，６Ｂ，ＦＥ，ＦＦ」なるコードが定義されている。一方、コマンド実行ルーチンとしては、ルーチン１〜ルーチン５の５つのルーチンが用意されている。ここで、たとえば、ルーチン１はユーザー領域に対する読出しを指示する「リードコマンド」の実行ルーチン、ルーチン２はユーザー領域に対する書き込みを指示する「ライトコマンド」の実行ルーチン、ルーチン３はユーザー領域内の所定のファイルの消去を指示する「デリートコマンド」の実行ルーチン、…というように、１つのルーチンは１つのコマンドを実行するためのプログラムからなる。そして、コマンドコードテーブルの１バイト目〜５バイト目の各コードは、それぞれコマンド実行ルーチン１〜５に対応づけられている。
【００１２】
いま、たとえば、リーダライタ２０からＩ／Ｏラインを介してＩＣカード１０に、「０５」なるコマンドコードが与えられた場合を考えよう。このようなコマンドコードを受信すると、ＣＰＵ１１は、ＥＥＰＲＯＭ１４内のコマンドコードテーブルを参照することにより、与えられたコマンドコードを解読する。すなわち、コマンドコードテーブルの先頭バイトから順にテーブル内のコードを参照してゆき、与えられたコードと同一のコードを見付ける作業を行う。このとき、テーブル内のコードを参照するごとにカウントを行う。コマンドコード「０５」は、コマンドコードテーブル内の２バイト目のコードと同一であるから、カウント値＝２のときに同一のコードが発見される。そこで、ＣＰＵ１１は、このカウント値２に対応するルーチン２の「ライトコマンド」ルーチンを実行する。すなわち、ＣＰＵ１１は、与えられたコマンドコード「０５」を「ライトコマンド」と解釈したことになる。同様に、たとえば、「８６」なるコマンドコードが与えられた場合には、カウント値５に対応するルーチン５が実行されることになる。このように、ＥＥＰＲＯＭ１４内にコマンドコードテーブルを用意しておけば、随時書き換えを行うことができるため、コマンドコードの変更を容易に行うことができる。たとえば、「ライトコマンド」として「８８」を出力するようなリーダライタを用いる場合には、コマンドコードテーブルの２バイト目のコード「０５」を「８８」に書き換える作業を行えばよい。
【００１３】
コマンドによっては、レスポンスを返す処理が行われる場合がある。たとえば、ルーチン２の「ライトコマンド」を実行した結果、指定されたアドレスが書き込み禁止の領域であったような場合、「書き込み不可」というレスポンスをリーダライタ２０へ返す必要がある。この「書き込み不可」に対応するレスポンスコードは、ＲＯＭ内のルーチンには用意されていない。ルーチン２内には、「書き込み不可」なるレスポンスを返す処理として、たとえば、「レスポンスコードテーブルの４バイト目のコードを送出せよ」といった指示のプログラムが記載されている。そこで、ＣＰＵ１１は、レスポンスコードテーブルの４バイト目のコード「ＦＥ」を「書き込み不可」なるレスポンスコードとしてリーダライタ２０へ送出する。このように、ＲＯＭ内の各ルーチンには、レスポンスコードそのものは書き込まれておらず、常に、レスポンスコードテーブルを参照することによりレスポンスコードそのものが得られることになる。したがって、たとえば、「書き込み不可」なるレスポンスコードを新たなコードに変更する場合には、レスポンスコードテーブルの４バイト目のコードを書き換える作業を行えばよい。
【００１４】
本発明では、更に、ＥＥＰＲＯＭ１４内にリセット応答コードテーブルを用意し、リセット応答信号に含まれるコードも変更できるようにしている。ＩＣカード１０とリーダライタ２０との間で交信を開始する場合、図３のタイムチャートに示すように、ＲＳＴラインを介して、リーダライタ２０からＩＣカード１０にリセット信号が与えられる。ＣＰＵ１１は、このリセット信号を受けると、ＲＯＭ１３内のリセット応答ルーチンを実行し、その結果、Ｉ／Ｏライン上にリセット応答信号が出力される。このリセット応答信号には、リーダライタ２０とＩＣカード１０との間での伝送仕様を定義するための種々のコードが含まれている。たとえば、クロック周波数、伝送レート、ＣＷＴ（Character Waiting Time：データを１キャラクタ（１バイト）ずつ伝送する場合に、１つのキャラクタを受信した後、次のキャラクタを受信するまでの待ち時間）、ＢＷＴ（Block Waiting Time：Ｉ／Ｏラインにリーダライタ側から第１ブロックとしてデータを出力した後、同じＩ／ＯラインにＩＣカード側から第２ブロックとしてデータを出力するまでの待ち時間）といった伝送パラメータを示すコードが含まれている。従来のＩＣカードでは、このようなコードはＲＯＭ１３内のリセット応答ルーチン内に書き込まれていた。本発明では、リセット応答ルーチン内には、このようなコードそのものは書き込まれておらず、たとえば、「リセット応答コードテーブルの何番目のコードを送出せよ」といった指示のプログラムが記載されている。したがって、ＥＥＰＲＯＭ１４内のリセット応答コードテーブルの内容を書き換えることにより、リセット応答信号の内容を容易に変更することができる。
【００１５】
このように、コマンドコード、レスポンスコード、リセット応答信号に含まれるコード、など、リーダライタとの間で用いる種々のコードを自由に書き換えることができるため、特定のリーダライタの要求するコードに変更したり、特定のリーダライタの要求する伝送条件に変更したりすることが容易にできるようになる。このようなコード変更は、ＩＣカードのセキュリティを向上させる上でもメリットがある。
【００１６】
以上、本発明を図示する実施例に基づいて説明したが、本発明はこの実施例のみに限定されるものではなく、この他にも種々の態様で実施可能である。また、図示した各種コードは、発明の開示のために便宜的に用いた任意のコードであり、現在実用されているコードとは無関係である。
【００１７】
【発明の効果】
以上のとおり本発明によれば、同一のＲＯＭをもったＩＣカードを用いて、異なるリーダライタに対応可能なＩＣカードを実現することが可能になる。
【図面の簡単な説明】
【図１】本発明に係るＩＣカードおよびリーダライタの基本構成を示すブロック図である。
【図２】図１に示すＩＣカードのＥＥＰＲＯＭ内に用意された各種テーブルと、ＲＯＭ内に用意された各ルーチンの一例を示す図である。
【図３】ＩＣカードにおけるリセット動作を説明するタイムチャートである。
【符号の説明】
１０…ＩＣカード
１１…ＣＰＵ
１２…ＲＡＭ
１３…ＲＯＭ
１４…ＥＥＰＲＯＭ
２０…リーダライタ
【図１】
0003641693.tif 000002
【図２】
0003641693.tif 000003
【図３】
0003641693.tif 000004