JP3571840B2 - Icカードおよびicカード処理システム - Google Patents
Icカードおよびicカード処理システム Download PDFInfo
- Publication number
- JP3571840B2 JP3571840B2 JP05628296A JP5628296A JP3571840B2 JP 3571840 B2 JP3571840 B2 JP 3571840B2 JP 05628296 A JP05628296 A JP 05628296A JP 5628296 A JP5628296 A JP 5628296A JP 3571840 B2 JP3571840 B2 JP 3571840B2
- Authority
- JP
- Japan
- Prior art keywords
- card
- data
- numerical data
- bit
- processing
- 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.)
- Expired - Lifetime
Links
Images
Landscapes
- Credit Cards Or The Like (AREA)
- Control Of Vending Devices And Auxiliary Devices For Vending Devices (AREA)
- Financial Or Insurance-Related Operations Such As Payment And Settlement (AREA)
Description
【発明の属する技術分野】
この発明は、例えば不揮発性のデータメモリおよびCPU(セントラル・プロセッシング・ユニット)などの制御素子を有するIC(集積回路)チップを内蔵したICカードおよびこのICカードを処理するICカード処理システムに関する。
【0002】
【従来の技術】
近年、不揮発性のデータメモリおよびCPUなどの制御素子を有するICチップを内蔵したICカードが開発され、クレジットカードや医療カードなどの個人情報蓄積媒体として利用されている。また、この種のICカードをプリペイドカードとして使用する動きが見られる。
【0003】
ここで、ICカードをプリペイドカードとして使用する場合のカード処理の流れを図1のフローチャートを参照して説明する。
【0004】
まず、ICカードとICカード処理を行う端末機器によって、このICカードおよびこの端末機器の両者の正当性が確認される(ST10)。正当性は、後に説明する乱数、秘密鍵などを使用した相互認証という方法により行われる。両者の正当性が確認されると、有効期限が読み出され(ST12)、有効期限内のカードであるかどうかチェックされる。有効期限内であると判断されたときには(ST14、YES)、カードに記録されている残高が読み出される(ST16)。残高が存在するときに限り(ST18、YES)、残高から利用金額が差し引かれ、新残高が算出される(ST20)。このとき、新残高が0以上(新残高≧0)になることを条件として(ST22、YES)、カード新残高が書き込まれる(ST24)。
【0005】
上記説明したカード処理の流れにおける個々の処理について、以下詳細に説明する。
【0006】
(1)金額書き換えコマンド
ΙCカードをプリペイドカードとして使用する場合、カード内には金額情報として金額が数値として書き込まれている。このため、ICカードカードを処理するカード端末機器によるカード内の金額の書き換え手順は、「力ード内の現在残高読み出し→端末機器内で減算→減算結果を新残高としてカードヘ書き込み」となる。このため、自動販売機またはカード電話機などの単純な「減算」機能だけが必要な端末機器(=減算機)においても、内部処理としてはカード内残高を増すのと同じ数値の「書き換えコマンド」により減額のための書き込みが行われる。
【0007】
(2)減算許可条件
前記「金額書き換えコマンド」の様に、カード内残高を増すのと同じ数値の「書き換えコマンド」により減額のための書き込みを行なっている減算機は、金額を増額するに足るアクセス権を保有している。
【0008】
(3)乱数
力ードがカード自身および端末機器の認証のために出力する乱数は、外部から与えられるある乱数生成のための情報に対して一対一の値となる。乱数の使い方のー例として、相互認証の手順を図2に示す。この図2を参照して相互認証について説明する。
【0009】
*0.端末機器側で乱数R1が生成される。
【0010】
*1.端末機器からカードへ、端末機器側指定秘密鍵番号M(1〜5)とともに乱数R1が送信される。
【0011】
*2.カード側で、乱数エリアに格納されている値(カード固有番号など)と乱数R1により乱数R2が生成される。
【0012】
*3.カードから端末機器へ、カード指定秘密番号鍵N(1〜5)とともに乱数R2が送信される。
【0013】
*4.端末機器側で、カード側指定秘密鍵NNNNにより乱数R2が暗号化されC2が生成される。
【0014】
*5.端末機器からカードへC2が送信される。
【0015】
*6.カード側で、カード側指定秘密鍵NNNNにより乱数R2が暗号化されC2Xが生成される。
【0016】
*7.カード側で、端末機器から受け取られたC2と*6で生成されたC2Xとが比較される。C2とC2Xとが一致すればカードにより端末機器の正当性が確認される。
【0017】
*8.カード側で、端末機器側指定秘密鍵MMMMにより乱数R1が暗号化されC1が生成される。
【0018】
*9.カードから端末機器へ、C2とC2Xとの比較結果および生成されたC1が送信される。
【0019】
*10.端末機器側で、端末機器側指定秘密鍵MMMMにより乱数R1が暗号化されC1Xが生成される。
【0020】
*11.端末機器側で、カードから受け取られたC1と*10で生成されたC1Xが比較される。C1とC1Xとが一致すれば端末機器によりカードの正当性が確認される。
【0021】
以上説明したようにして相互認証が行われ、カードおよび端末機器の正当性が確認される。
【0022】
(4)秘密鍵
カード自身と端末機器の相互認証および後述の正当性確認情報生成などに使用され、カードと端末機器が相互に持ち合う秘密鍵は、一種類の固定値か、複数持つ場合は外部(=端末機器側)から指定される。
【0023】
(5)必要情報出力機能
力ードの有効期限および残高などの、いずれもプリペイド取引に必要ではあるが、同一エリアに格納するのが適当でない複数の情報を機器側に読み出すには、「リードコマンド」が複数回使用されて各エリアに対して個別にアクセスされる。この概要を示す図14について説明する。
【0024】
まず、端末機器側からカード側に対して、発行日格納エリアの選択が要求される。カード側ではこの要求を受けてエリア選択が行われ、カード側から端末機器側に対してレスポンスが返される。次に、端末機器側からカード側に対して、発行日格納エリアアクセスキーの照合が要求される。カード側ではこの要求を受けてキー照合が行われ、カード側から端末機器側に対してレスポンスが返される。次に、端末機器側からカードに対して、発行日(有効期限)の読み出しが要求される。カード側ではこの要求を受けて発行日を読み出し、カード側から端末機器側に対して発行日が送出される。次に、端末機器側からカード側に対して、残高格納エリアの選択が要求される。カード側ではこの要求を受けてエリア選択が行われ、カード側から端末機器側に対してレスポンスが返される。次に、端末機器側からカード側に対して、残高格納エリアのアクセスキーの照合が要求される。カード側ではこの要求を受けてキー照合が行われ、カード側から端末機器に対してレスポンスが返される。次に、端末機器側からカードに対して、残高の読み出しが要求される。カード側ではこの要求を受けて残高を読み出し、カード側から端末機器側に対して残高が送出される。次に、端末機器側からカード側に対して、秘密鍵番号のアクセスキーの照合が要求される。カード側ではこの要求を受けてキー照合が行われ、カード側から端末機器側に対してレスポンスが返される。次に、端末機器側からカード側に対して、秘密鍵番号の読み出しが要求される。カード側ではこの要求を受けて秘密鍵番号を読み出し、カード側から端末機器に対して秘密鍵番号が返される。以下、このようにして処理が継続される。
【0025】
(6)電文正当性確認
力ードと端末機器間で交わされるコマンド(リクエスト)とレスポンス(ステータス)の各電文は、通信制御としてのキャラクタ単位のパリティ、電文単位のBCC(ブロックチェックコード)などのエラーがないこと、電文の形式が相互に規定されたものであることといった一般的伝送のエラーの他、認証関係のコマンドにおけるキーや乱数の値といったアプリケーション的データの不備がなければ全ての電文は相互に処理される。
【0026】
【発明が解決しようとする課題】
しかし、上記説明した(1)〜(6)には夫々問題点があり、その問題点を(1)〜(6)に対応させて以下に記載する。
【0027】
(1)金額書き換えコマンド
自動販売機などの減算機においても、内部処理としてはカード内残高を増すのと同じ数値の「書き換えコマンド」により減額のための書き込み処理が行われている。そのため、このような減算機を不正に細工することで「減算」ではなく「加算=増額」が可能となる。通常、カード内の金額を増すための書き込みをする「カード入金機」は、その機能から厳重に管理され不正使用できない策が講じられるが、本来「減算」が主機能である自動販売機やカード電話機といった減算機は、入金機に不正改造することを目的とした入手が容易であり、カード変造を目論む者にとって格好のツールとなる。また、金額の書き換えには、キー照合コマンドによるアクセスを除いて、一旦現在値を読み出して、機器側で減算した値を新規値として書き込むというカードに対する2回のアクセスが必要である。この処理の手順を図3を参照して説明する。
【0028】
まず、端末機器(減算機)側からカード側へ、キー照合コマンドとともにキーが送信される。カード側において、端末機器側から送信されるキーが受信され照合される。次に、カード側から端末機器へ、キー照合結果が送られる。このとき、送られるキー照合結果が、NGの場合には処理が中断される。次に、端末機器側からカードへ、読み出しコマンドが送信される。カード側において、端末機器側から送信される読み出しコマンドが受信されると、カードに記録されている現在値(残高)が端末機器へ送られる。端末機器において、読み出された現在値から利用額が差し引かれる。このとき、差引額がマイナス(差引額<0)となってしまったときは、カード側からエラーが返され処理は中断される。差引額が0以上(差引額≧0)であることを条件として、次に、端末機器側からカード側へ、書き込みコマンドとともに差引額である新規値が送信される。カード側において書き込みコマンドと新規値が受信されると、受信された新規値が書き込まれる。そして、カード側から端末機器側へ、新規値書き込み結果が送信され、この書き込み結果が端末機器側において確認される。
【0029】
(2)減算許可条件
金額を増額するに足るアクセス権を保有している減算機は、「(1)金額書き換えコマンド」の例と同様に、これを不正に細工することで「減算」ではなく「加算=増額」が可能となり、カード変造を目論む者にとって格好のツールとされる。
【0030】
(3)乱数
外部からカードヘ種々の値を与え、その都度出力される乱数の値を解析することで、力ード内の暗号化キー値と暗号化論理が解析でき、カード偽造の手がかりとされる。
【0031】
(4)秘密鍵
力ードによりデータを暗号化する際、外部からカードヘ固定の暗号化すべきデータを与え、その都度出力される暗号化された値を解析することで、カード内のキー値が解析され、カード偽造の手がかりとされる。キーを複数持つ場合は、外部から番号を指定して同様に解析される。
【0032】
(5)必要情報出力機能
プリペイド取引に必要な情報としては、カード発行日(利用開始日)または有効期限、カード内プリペイド残高、前回利用日、電文正当性確認情報生成用秘密鍵番号、および乱数などがある。これらはアクセス権の異なる場合、アクセス権ごとにそれぞれ別個の領域に格納されるため、機器がカードアクセスしてプリペイド取引を実施しようとする場合別々に読み出す必要があり、余分な処理時間がかかる。
【0033】
(6)電文正当性確認
金額書き換えの条件が整えば、偽造された端末機器からの金額書き換えのコマンド電文により正当なカード内の記録金額を書き換える(増額)ことができてしまう。また、正当な自販機等の端末機器からの金額減算コマンドに対して、あたかも正常にカード内金額を減算したレスポンスを返す機能を有する不正なカードにより物品購入ができてしまう。
【0034】
この発明の目的は、上記したような事情に鑑み成されたものであって、変造または偽造などの不正を防止できるICカードおよびICカード処理システムを提供することにある。
【0035】
【課題を解決するための手段】
この発明は、上記問題点に基づきなされたもので、
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記処理手段が、前記記憶手段に記憶された数値データを減算処理する減算処理手段と;前記記憶手段に記憶された数値データを加算処理する加算処理手段とを備えている。
【0036】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記処理手段が、前記外部装置からの第1のキーデータに応じて、前記記憶手段に記憶された数値データを減算処理する減算処理コマンドと;前記外部装置からの第2のキーデータに応じて、前記記憶手段に記憶された数値データを加算処理する加算処理コマンドと;前記減算処理コマンドによる減算処理において、前記数値データがマイナス値をとるときには、減算処理を中止し前記外部装置に対してエラーを送信するマイナス値取扱手段とを備えている。
【0037】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカードが、前記ICカード処理装置からの第1のキーデータに応じて、前記記憶手段に記憶された数値データを減算処理する減算処理手段と;前記ICカード処理装置からの第2のキーデータに応じて、前記記憶手段に記憶された数値データを加算処理する加算処理手段とを備え、前記ICカード処理装置に必要なキーデータを与えることにより、このICカード処理装置によるICカード処理機能を限定可能とする。
【0038】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカードが、前記ICカード処理装置からの第1のキーデータに応じて、前記記憶手段に記憶された数値データを減算処理する減算処理コマンドと;前記ICカード処理装置からの第2のキーデータに応じて、前記記憶手段に記憶された数値データを加算処理する加算コマンドとを備え、前記ICカード処理装置に前記第1および第2のキーデータのうちのどちらか一方を与えることにより、このICカード処理装置によるICカード処理機能を減算処理および加算処理のうちどちらか一方に限定可能とする。
【0039】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段が、第1の状態および第2の状態のどちらか一方の状態のビットで構成されるビットデータを有し、前記ビットデータに対するアクセスを、前記第1の状態のビットから前記第2の状態のビットへの変換、および前記第2の状態のビットから前記第1の状態のビットへの変換のどちらか一方とする。
【0040】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段が、第1の状態および第2の状態のどちらか一方の状態のビットで構成され数値データを示すビットデータの組を複数有し、前記数値データを変更するための前記ビットデータに対するアクセスを、前記第1の状態のビットから前記第の2状態のビットへの変換、および前記第2の状態のビットから前記第1の状態のビットへの変換のどちらか一方だけとすることにより、前記数値データの変更を増加および減少のどちらか一方だけに制限する。
【0041】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段が、第1の状態および第2の状態のどちらか一方の状態のビットで構成され数値データを示すビットデータを有し、前記数値データを変更するための前記ビットデータに対するアクセスを、前記第1の状態のビットから前記第2状態のビットへの変換、および前記第2の状態のビットから前記第1の状態のビットへの変換のどちらか一方とし、ビットデータにおけるビット状態の変換順序を一定の規則に従ってスクランブルする。
【0042】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段が、所定数のレコードの書き込み可能なエリアを有し、前記エリアに対するアクセスを、前記レコードの追記に限定する。
【0043】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段が、所定数のレコードの書き込み可能なエリアを有し、前記エリアにおけるレコード未書き込みエリアにより残り数値データを示し、この数値データの変更のための前記エリアに対するアクセスを前記レコードの追記だけとすることにより、前記数値データの変更を減少だけに制限する。
【0044】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段が、所定数のレコードの書き込み可能なエリアを有し、前記エリアにおけるレコード未書き込みエリアにより残り数値データを示し、この数値データの変更のための前記エリアに対するアクセスを前記レコードの消去だけとすることにより、前記数値データの変更を増加だけに制限する。
【0045】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段が、所定数のレコードの書き込み可能な複数のエリアを有し、前記複数のエリアそれぞれにおけるレコード未書き込みエリアにより残り数値データを示し、この数値データの変更のための前記複数のエリアに対するアクセスを、エリア別に前記レコードの追記または消去のどちらか一方だけとし、これら追記と消去とにそれぞれ異なるアクセス権を設定することにより、それぞれの前記複数のエリアにおける前記数値データの変更を増加および減少のどちらか一方に制限する。
【0046】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段が、所定数のレコードの書き込み可能なエリアを有し、前記エリアにおけるレコード未書き込みエリアにより残り数値データを示し、この数値データの変更のための前記エリアに対するアクセスを前記レコードの追記に限定するとともに、前記レコードに所定のデータを書き込むことにより、前記数値データの変更を減少方向だけに制限し、前記レコードの読み出し時にこのレコードの内容を確認する。
【0047】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段に記憶されているビットデータを変更するとき、先に書き込まれているビットデータと新たに書き込むビットデータとの論理和となるビットデータへの変更のみ可能とする。
【0048】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカード処理装置のうち、前記ICカードに記憶されている数値データに対して減算処理を実行するものには減算処理キーデータを与え;前記ICカードに記憶されている数値データを書き換えるとき、先に書き込まれている元数値データと、前記ICカード処理装置から送られる新たに書き込む新数値データとを比較し;前記比較の結果、前記新数値データが前記元数値データより小さいときには、この新数値データの送信元である前記ICカード処理装置の減算処理キーデータを確認した上で前記新数値データの書き込みを行う。
【0049】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカード処理装置のうち、前記ICカードに記憶されている数値データに対して加算処理を実行するものには加算処理キーデータを与え;前記ICカードに記憶されている数値データを書き換えるとき、先に書き込まれている元数値データと、前記ICカード処理装置から送られる新たに書き込む新数値データとを比較し;前記比較の結果、前記新数値データが前記元数値データより大きいときには、この新数値データの送信元である前記ICカード処理装置の加算処理キーデータを確認した上で前記新数値データの書き込みを行う。
【0050】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカード処理装置のうち、前記ICカードに記憶されている数値データに対して減算処理を実行するものには減算処理キーデータを与え;前記ICカード処理装置のうち、前記ICカードに記憶されている数値データに対して加算処理を実行するものには加算処理キーデータを与え;前記ICカードに記憶されている数値データを書き換えるとき、先に書き込まれている元数値データと、前記ICカード処理装置から送られる新たに書き込む新数値データとを比較し;前記比較の結果、前記新数値データが前記元数値データより小さいときには、この新数値データの送信元である前記ICカード処理装置の減算処理キーデータを確認した上で前記新数値データの書き込みを行い;前記比較の結果、前記新数値データが前記元数値データより大きいときには、この新数値データの送信元である前記ICカード処理装置の加算処理キーデータを確認した上で前記新数値データの書き込みを行い;前記比較の結果、前記新数値データと前記元数値データとが等しいときには、この新数値データの書き込みを中止する。
【0051】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、このICカード自身およびこのICカードを処理するICカード処理装置を認証するために生成される乱数を、生成する毎に記憶し、この記憶された乱数を基にして次の乱数を生成する。
【0052】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカードおよび前記ICカード処理装置各々に対して、共通の複数の秘密鍵を格納し;外部から与えられるデータの特徴に応じて、前記ICカードおよび前記ICカード処理装置各々が、前記複数の秘密鍵のうちのどの秘密鍵を使用するかを決定する。
【0053】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカードおよび前記ICカード処理装置各々に対して、共通の複数の秘密鍵を格納し;前記ICカードにおいて生成される乱数の特徴に応じて、前記ICカードおよび前記ICカード処理装置各々が、前記複数の秘密鍵のうちのどの秘密鍵を使用するかを決定する。
【0054】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカードおよび前記ICカード処理装置各々に対して、共通の複数の秘密鍵を格納し;所定処理が実行される日時データの特徴に応じて、前記ICカードおよび前記ICカード処理装置各々が、前記複数の秘密鍵のうちのどの秘密鍵を使用するかを決定する。
【0055】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカードおよび前記ICカード処理装置各々に対して、共通の複数の秘密鍵を格納し;前記ICカードにおいて生成される乱数の特徴および所定処理が実行される日時データの特徴に応じて、前記ICカードおよび前記ICカード処理装置各々が、前記複数の秘密鍵のうちのどの秘密鍵を使用するかを決定する。
【0056】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段に分散されて記憶されているこのICカードの取引に必要な各種データを読み出し;前記読み出されたデータを分散されている個数より少ない電文数で出力する。
【0057】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段に分散されて記憶されているこのICカードの取引に必要な各種データを読み出し;前記読み出されたデータを一電文で出力する。
【0058】
この発明は、外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、前記記憶手段に分散されて記憶されているこのICカードの取引に必要な各種データを読み出し;前記読み出されたデータをこのICカードの初期応答に乗せて出力する。
【0059】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカードおよび前記ICカード処理装置各々に対して、共通の複数の秘密鍵および共通の所定データを格納し;前記ICカードから前記ICカード処理装置に対して電文を送信するとき、または前記ICカード処理装置から前記ICカードに対して電文を送信するとき、電文を送信する側において、前記所定のデータを前記複数の秘密鍵のうちの特定の秘密鍵で暗号化し、この暗号化された暗号化所定データを電文の一部として相手に送信し;電文を受信する側において、受信した電文に含まれる前記暗号化所定データを解読することにより電文送り元の正当性を確認し、正当性が確認されたときにのみ受信された電文が示す動作を実行する。
【0060】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカードおよび前記ICカード処理装置各々に対して、共通の複数の秘密鍵を格納し;前記ICカードから前記ICカード処理装置に対して、このICカードが保持する第1のデータを送信し;前記ICカード処理装置において、前記送信された第1のデータを受信し、この受信された第1のデータをこのICカード処理装置が保持する前記複数の秘密鍵の中の特定の秘密鍵で暗号化し第2のデータとし;前記ICカード処理装置から前記ICカードに対して、前記第2のデータを含めた電文を送信し;前記ICカードにおいて、前記送信された電文を受信し、この電文に含まれる前記第2のデータをこのICカードが保持する前記複数の秘密鍵の中の特定の秘密鍵で複合化し、この複合化された第3のデータと前記第1のデータとを比較することにより、この電文送信元の前記ICカード処理装置の正当性を確認し、正当性が確認されたときにのみ受信された電文が示す動作を実行する。
【0061】
この発明は、ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、前記ICカードおよび前記ICカード処理装置各々に対して、共通の複数の秘密鍵を格納し;前記ICカード処理装置から前記ICカードに対して、このICカード処理装置が保持する第1のデータを送信し;前記ICカードにおいて、前記送信された第1のデータを受信し、この受信された第1のデータをこのICカードが保持する前記複数の秘密鍵の中の特定の秘密鍵で暗号化し第2のデータとし;前記ICカード処理装置から前記ICカードに対して、前記第2のデータを含めた電文を送信し;前記ICカード処理装置において、前記送信された電文を受信し、この電文に含まれる前記第2のデータをこのICカード処理装置が保持する前記複数の秘密鍵の中の特定の秘密鍵で複合化し、この複合化された第3のデータと前記第1のデータとを比較することにより、この電文送信元の前記ICカードの正当性を確認し、正当性が確認されたときにのみ受信された電文が示す動作を実行する。
【0062】
【発明の実施の形態】
以下、この発明の実施の形態について図面を参照して説明する。
【0063】
図18は、この発明の一実施の形態に係るICカードに内蔵されるICチップの構造を概略的に示す図である。
【0064】
図18に示すように、ICカードは、データの各種処理などを行うCPUからなる制御部10と、ICカードの取引上必要な金額情報などのデータを記憶するデータメモリ12と、記憶内容が書き換え不可能なプログラムメモリ14と、このICカードを取り扱う端末機器とのデータの送受信を行う送受信部16などで構成されている。制御部10は、データメモリ12に記憶されている数値データの加算処理または減算処理を必要に応じて行う。また、減算処理において数値データがマイナス値をとるときには、減算処理を中止する制御も行う。
【0065】
図19は、上記説明したICカードを取り扱うICカード処理装置、即ち端末機器の構成を概略的に示す図である。
【0066】
図19に示すように、端末機器は、データの各種処理などを行うCPUからなる制御部20と、各種データを記憶する記憶部22と、オペレータからの各種操作を受け付ける操作部24と、カードから読み出されたデータなどを表示するCRTディスプレイ26と、ICカードとのデータの送受信を行う送受信部28などで構成されている。
【0067】
以下、問題点(1)〜(6)に対応させて、実施の形態について説明する。
【0068】
(1)金額書き換えコマンド
a.専用カードの場合その1(加算/減算−別コマンド化)
「加算」するコマンドと「減算」するコマンドとをそれぞれ異なるコマンドとして持つ専用カードとして、減算機には減算コマンドのみを搭載する。力ードメモリ上の金額情報はその金額を示す数値で表される。また、上記した減算コマンドを使用すれば、減算の際は現在値を読み出さずにいきなり減算したい値をカードに送り込めば、カード内で減算処理して応答するという手順が可能となる。
【0069】
この手順の例を図4を参照して説明する。
【0070】
まず、端末機器(減算機)側からカード側へ、キー照合コマンドとともにキーが送信される。カード側において、端末機器側から送信されるキーが受信され照合される。次に、カード側から端末機器へ、キー照合結果が送られる。このとき送られるキー照合結果が、NGの場合には処理が中断される。次に、端末機器側からカードへ、減算コマンドとともに利用額が送信される。カード側において、端末機器から送信される減算コマンドおよび利用額が受信されると、カードに記録されている現在値(残高)から利用額が差し引かれる(減算コマンドにより減算処理)。
【0071】
このとき、差引額がマイナス(差引額<0)となってしまったときは、カード側から端末機器側へエラーが返され、処理は中断される。差引額が0以上(差引額≧0)であることを条件として差引額である新規値がカードに書き込まれる。そして、カード側から端末機器側へ、新規値書き込み結果(減算)が送信され、この書き込み結果が端末機器側において確認される。
【0072】
上記説明したカード処理では、カード内データを金額情報として取り扱い、差引額がマイナスとなるときには処理が中断されるとしたが、マイナス値を取り扱えるようにしてもよい。
【0073】
このように、減算コマンドと加算コマンドとを異なるコマンドとすることにより、減算機には減算コマンドのみがセットされる。よって、減算機を不正改造して入金機とすることは困難となるため、各種不正を防止できる。また、図4の説明から分かるように、金額の書き換え時に、キー照合コマンドによるアクセスを除き、減算コマンドによる一度のアクセスで済む。
【0074】
b.専用カードの場合その2(最大金額から減額のみ可能化)
金額を変更するコマンドは機能的に「減額」のみとする。つまり、第1の状態(0)または第2の状態(1)からなるビットによるビットデータで数値データ(金額情報)を示す。そして、このビットデータによる数値データの変更に関するアクセスを、第1の状態のビットを第2の状態のビットにするか、または第2の状態のビットを第1の状態のビットにするかどちから一方だけとする。
【0075】
すなわち、金額情報はデータビットのうちの何ビットが立っているかで表し、カード内での金額情報変更に関するアクセスは、これらのビットを倒す(減らす、落とす、0化する)機能だけとする。初回の価値付けでは、予め用意された最大金額を示すビット情報のうち所定数のビットを有効にする(最大ビット数から初回の価値付け設定額へ減額する)。この場合、一枚のカードは初期の価値付けをされ利用者の手に渡り、金額が0となった後は廃棄されることが前提となる。この処理の概要を図5および図6に示す。
【0076】
まず、図5について説明する。
【0077】
メーカによるカード製造時には、カードに対してカード製造日付が書き込まれる。この時点では、金額書き込み日付は書き込まれていない(ブランク)。また、金額データとしては、最大金額(例えば10000円)を示すビットが立てられている。なお、ここでは1ビットは500円を示すものとする。
【0078】
このようにして製造されたカードは、次のようにして初回金額(残高)が設定され発行される。例えば、カードの初回金額を5000円に設定して発行する場合には、10ビットが0化(10ビットが有効化)される。このとき、金額書き込み日付が書き込まれることにより、初回金額5000円が有効とされる。
【0079】
このようにして発行されたカードに書き込まれている残高は、次のようにして差し引かれる。例えば、カードの残高から1000円分差し引く場合には、2ビットが0化され、金額書き込み日付が更新される。このようにして、使用され、残高がなくなるとこのカードは廃棄される。
【0080】
続いて、図6について説明する。
【0081】
メーカによるカード製造時には、カードに対してカード製造日付が書き込まれる。この時点では、金額書き込み日付は書き込まれていない(ブランク)。また、金額データとしては、最大金額(例えば10000円)を示すビットが立てられている。なお、ここでは1ビットは500円を示すものとする。
【0082】
このようにして製造されたカードは、次のようにして初回金額が設定され発行される。例えば、カードの初回金額を10000円に設定して発行する場合には、全ビットが有効化される。このとき、金額書き込み日付が記録され、初回金額10000円が有効とされる。
【0083】
このようにして発行されたカードに書き込まれている残高は、次のようにして差し引かれる。例えば、カードの残高から1000円分差し引く場合には、2ビットが0化され、金額書き込み日付が更新される。このようにして、使用され、残高がなくなるとこのカードは廃棄される。
【0084】
また、次の様なカードとすることで一定回数の繰り返し使用も可能となる。「何ビットが立っているかで表わされる金額情報」の組を複数持ち、一組の全ビットが全て0となった後は価値付けの権限を持つ発行者により回収され、厳重な管理の元、次の組の最大金額を示すビット情報を設定額へと減額することにより(設定額相当のビットを有効にする)、新たな価値付けをする。すなわちカード内に予め用意された金額情報の組の個数分だけ繰り返し使用が可能となる。この処理の概要を図7に示す。
【0085】
ここで、図7について説明する。
【0086】
メーカによるカード製造時には、カードに金額情報の組が複数設けられ、カードに対してカード製造日付が書き込まれる。この時点では、金額書き込み日付は書き込まれていない(ブランク)。また、金額データとしては、最大金額(例えば10000円)を示すビットが全ての組に立てられている。なお、ここでは1ビットは500円を示すものとする。
【0087】
このようにして製造されたカードは、次のようにして初回金額が設定され発行される。例えば、カードの初回金額を5000円に設定して発行する場合には、一組目の20ビットの内の10ビットが0化(10ビットが有効化)される。このとき、この一組目に対する金額書き込み日付が書き込まれ、初回金額10000円が有効とされる。ちなみに、他の組には金額書き込み日付は書き込まれない(ブランク)。
【0088】
このようにして発行されたカードに書き込まれている残高は、次のようにして差し引かれる。例えば、カードの残高から1500円分差し引く場合には、一組目の10ビットの内の3ビットが0化され、金額書き込み日付が更新される。さらに、カードの残高から3500円分差し引く場合には、一組目の残り7ビット全てのビットが0化(残高0)され、金額書き込み日付が更新される。
【0089】
このようにして、使用され残高がなくなった場合でも、然るべき価値付けの権限を持つ発行者により二組目の欄に初回金額を設定して使用できる。例えば、初回金額を10000円に設定して発行する場合には、二組目の20ビット全てのビットが有効化される。このとき、この二組目に対する金額書き込み日付が書き込まれ、初回金額10000円が有効とされる。ちなみに、他の組には金額書き込み日付は書き込まれない(ブランク)。
【0090】
次に、図5、図6、および図7で説明した処理の変形例について説明する。
【0091】
「減額する際に落としていくビット」の位置順序は図5、図6、および図7では左側から順番として示しているが、カードの正当性確認の一手法としてこの順序をスクランブルし減算の際、端末機器がその状態を確認するようにしてもよい。このビット消去順序のスクランブル例を図8に示す。図8では、N回目のビット消去(0化)は直前に0にしたビットからN個の1を右向きに越えた次の1ビットとした例が示されている。
【0092】
このように、金額情報の変更は予め立てられたビットを落とすだけとすることにより、不正に金額情報が増額されるのを防止できる。
【0093】
c.現行カード流用の場合その1(金額データはAND書き換えのみ可能)
現行カード、即ち、現在使用されているICカードを利用する場合、金額情報を論理的に「b.専用カードの場合その2」と同様にデータビットのうち何ビットが立っているかで扱い、減算機ではAND(論理積)書き換えコマンドとそのアクセス権(キー)だけを持たせることで先に書き込まれている値以上に増額することを阻止する。入金機には完全上書きのコマンドとそのアクセス権を持たせ、入金(増額)を可能にする。金額データのAND書き換えの例を図9および図10に示す。
【0094】
図9では、カード製造時において、最大金額、例えば10000円を示すビットが立てられている。なお、ここでは1ビットは500円を示すものとする。このようなカードの初回金額を5000円に設定して発行する場合には、カード製造時金額(11111111111111111111)と初回金額(00000000001111111111)とのAND(000000000011111111111 )が書き込まれる。図10では、図9において初回金額5000円に設定されたカードから、例えば1000分差し引く場合には、初回金額(00000000001111111111)と利用額(00000000000011111111)とのAND(00000000000011111111)が書き込まれる。
【0095】
このようにしてAND書き込みを利用することにより、先に書き込まれている値以上に増額書き込みされるのを防止できる。
【0096】
d.現行カード流用の場合その2(1レコード=1(使用済)金額(ユニット)とし追記のみ可能化)
「b.専用カードの場合その2」で示した「何ビットが立っているかで表わされる金額情報」の「1ビット情報」を「ある1文字、ある文字列、またはある条件に則った関連性のあるー連のデータが書き込まれた1レコード」とし、そのエリアに対するアクセスは追記系のみ可能とすることで、読み出された文字数(=レコード数)=使用済み金額とし、金額変更を「減額」方向のみに制限することが可能となる。
【0097】
この場合、金額の書き込み(設定)はエリア創成となり、繰り返し使用する場合は、カード内に次々に新しいエリアを作っていくことになる。このとき、そのエリア創成時に設定されるエリアサイズにより規定される追記できるレコード数の最大値が、そのエリア自体が示すプリペイド金額となる。また、各レコードの記録内容を、何らかの規則性や暗号化論理等に従って記録し、読み出し時判定することで金額情報の正当性判定にも使用できる。この処埋の概要を図11に示す。
【0098】
ここで、図11について説明する。
【0099】
例えば、10000円まで価値付け可能なカードを製造する場合には、1レコードを500円として20レコードのエリアが創成される。このようにして製造されたカードの初回金額(入金額)を例えば5000円(10レコード)にして発行する場合には、生成されたエリアに対して10レコード書き込まれる。これにより、10レコード分減額されたことになり、残り10レコードが残高となる。このようにして発行されたカードから1000円(2レコード)分差し引く場合には、残り10レコードに対して2レコードが書き込まれる。これにより、2レコード分減額されたことになり、残り8レコードが残高となる。また、図8の各数値位置に当たるスクランブルデータなどをレコードとすることにより、金額情報をより安全なものとすることができる。
【0100】
このようにして、所定のエリアを設けこのエリアに対するアクセスを追記系のみとすることにより、先に書き込まれているデータが消されない。よって、先に書き込まれている利用金額が減額されるのを防止できる。
【0101】
(2)減算許可条件
a.専用カードの場合その1(加算/減算−異アクセス権の別コマンド化)
「(1)金額書き換えコマンド」の「a.専用カードの場合その1」と同様に、加算と減算それぞれ異なるコマンドを持つカードとした上で、各コマンドの実行可能条件(単純にはキー)を異ならせ、減算機には減算コマンドのアクセス権(減算コマンドを実行可能とするキー)のみを搭載する。力ードメモリ上の金額情報はその金額を示す数値で表される。
【0102】
b.専用カードの場合その2(書き換え前後数値比較機能+加/減異アクセス権化)
金額書き換えのコマンドを特に加算と減算には分けない代わりに、新たに書き込む数値と先に書かれていた数値の比較機能を持たせ、加算と減算に異なるアクセス権(それぞれ異なるキー値)を設定し、減算機には減算のアクセス権(減算を実行可能とするキー)のみを搭載する。この処理の概要を図12に示す。
【0103】
ここで、図12について説明する。
【0104】
カード内処理において、端末機器(加算機または減算機)から書き換えコマンドおよび新規値が受信されると(ST30)、受信された新規値と現在値とが比較される(ST32)。このとき、新規値と現在地とが等しければ現在値変更不要応答がなされる(ST34)。
【0105】
比較された結果、現在値より新規値が大きいとき、つまり加算処理のときには、加算機キーの照合が行われる(ST36)。加算機キーの照合がOKのとき、つまり加算機が確認されると、新規値の書き込みが行われる(ST40)。加算機キーの照合がNGのとき、つまり加算機の確認ができないと、新規値の書き込みは行われずに、エラー応答がなされる(ST42)。
【0106】
比較された結果、現在値より新規値が小さいとき、つまり減算処理のときには、減算機キーの照合が行われる(ST38)。減算機キーの照合がOKのとき、つまり減算機が確認されると、新規値の書き込みが行われる(ST40)。減算機キーの照合がNGのとき、つまり減算機の確認ができないと、新規値の書き込みは行われずに、エラー応答がなされる(ST44)。
【0107】
なお、力ードメモリ上の金額情報はその金額を示す数値で表される。また、数値データで表されるデータ内容を特に「金額」に限定しない、汎用の力ードを想定することもできる。すなわち、カード内メモリへのエリア創成時、そのエリアへのデータ書き込みについては、書き換え前後の値を比較しアクセス権に従って実行可否を判定するエリアとしての定義ができるようにする。金額データ記録以外の用途としては、たとえば施設利用回数を建物へ入る際に記録していったり、そのカードを差し込まないと操作できないゲームや機器においてエラーおよび操作ミスの回数を記録していく等、何らかの累積データを蓄積していくこともできる。この場合、金額情報とは反対に、減算のアクセス権を加算のアクセス権より厳しい設定とする。上記説明したようなエリアを1枚のカードに複数設定し、複数の金額データ、およびその他の複数の累積データを同一のカードに記録することも可能である。
【0108】
b.現行カード流用の場合(1レコード=1金額(ユニット)とし追記・消去個別にアクセス権設定)
「(1)金額書き換えコマンド」の「現行カードを流用する場合」と同様に、「何ビットが立っているかで表わされる金額情報」の「1ビット情報」を「ある1文字が書き込まれた1レコード」とした上で、そのエリアに対するアクセスを追記系(金額データなど)と消去系(累積データなど)のみ可能としそれぞれに異なるアクセス権を設定し、減算機にはいずれかー方のアクセス権だけを設定する。
【0109】
この方式では、減算機に追記系か消去系のどちらを設定するかによって、読み出された文字数(=レコード数)が使用済み金額と未使用金額のどちらを表すことになるかが決定される。すなわち、減算機に追記系を設定した場合、「(1)金額書き換えコマンド」の「現行カードを流用する場合」と同様に、読み出された文字数(=レコード数)=使用済み金額であり、減算機に消去系を設定した場合、読み出された文字数(=レコード数)=未使用金額となる。この場合、減算機には設定されない方のコマンドが、より厳しい秘匿管理のもと、カードに価値付けをする入金機等に設定される。この処理は図11の発展形となる。
【0110】
(3)乱数
乱数生成・出力の都度、出力した値をカード内に記録しておき、次の乱数生成に使用することで、外部から同一の値を与えられた場合でもカードが出力する乱数を都度異なる値とする。力ード内に乱数エリアを用意しこのエリアの内容を都度更新しながら乱数を生成・出力する処理を図13に示す。
【0111】
ここで、図13について説明する。
【0112】
カード製造時において、カード毎に異なる値、例えばカード製造番号が初期値として乱数エリアに書き込まれる。
【0113】
外部からの値を受け、この外部からの値と乱数エリアの値とで初回乱数が生成され(ST50)、生成された乱数が出力される。このとき、乱数エリアにはST50で生成された乱数が新規値として書き込まれる。
【0114】
次に、外部からの値を受けると、この外部からの値と前回(ST50)乱数エリアに書き込まれた値とで乱数が生成され(ST52)、生成された乱数が出力される。このとき、乱数エリアにはST52で生成された乱数が新規値として書き込まれる。
【0115】
次に、外部からの値を受けると、この外部からの値と前回(ST52)乱数エリアに書き込まれた値とで乱数が生成され(ST54)、生成された乱数が出力される。このとき、乱数エリアにはST54で生成された乱数が新規値として書き込まれる。
【0116】
次に、外部からの値を受けると、この外部からの値と前回(ST54)乱数エリアに書き込まれた値とで乱数が生成され(ST56)、生成された乱数が出力される。このとき、乱数エリアにはST56で生成された乱数が新規値として書き込まれる。
【0117】
このように、乱数エリアの内容を更新しながら乱数を生成、出力することにより、出力される乱数の値を手がかりとしてカード内の暗号化キー値および暗号化理論の解析を防止できる。
【0118】
(4)秘密鍵
基本的に複数の秘密鍵をカードと機器で持ち合い、以下の様にどの秘密鍵を使うかが都度不定となる方法をとる。
【0119】
a.暗号化対象データの特長による秘密鍵番号自動選択
外部から与えられる暗号化すべきデータの特長によっていずれかのキーを選択し暗号化に使用する。機器側でも外部から読み出せない形で秘密鍵のセットとキー選択の論理を持っており独自に同じキーを選択する。暗号化すべきデータの特長分類法を秘密とすることで、秘密鍵の解析を困難にできる。
【0120】
暗号化対象データの特長とは、例えば、ある数で割ったときの余り(この場合ある数=内蔵する乱数の数+1など)、全桁のEX−OR(排他的論理和)値、偶数の個数の下一桁等である。
【0121】
b.乱数データの特長による秘密鍵番号自動選択
「(3)乱数」のようにカードに格納されている乱数データか、先に何らかの乱数をカードが出力していた場合、その乱数データの特徴によっていずれかのキーを選択し暗号化に使用する。機器側でも外部から読み出せない形で秘密鍵のセットとキー選択の論理を持っており独自に同じキーを選択する。
【0122】
乱数データの特長とは、たとえばある数で割ったときの余り(この場合ある数=内蔵する乱数の数+1など)、全桁のEX−OR値、偶数の個数の下一桁等が考えられる。
【0123】
また、カードに格納されている乱数を外部に出力せずに使用した場合、外部ではその値を知る術がないため、何らかの方法でカードはその値か使用した秘密鍵番号を外部に通知しなくてはならないが、格納乱数値や秘密鍵番号そのものを出力することはそれぞれの使用方法に鑑み不適当であり、その値自体を暗号化する必要がある。
【0124】
c.日付・時刻データによる秘密鍵番号自動選択
外部からカードヘ与えられるその処理が行なわれる瞬間の日付・時刻データの特長によっていずれかのキーを選択し暗号化に使用する。機器側でも外部から読み出せない形で秘密鍵のセットとキー選択の論理を持っており独自に同じキーを選択する。
【0125】
日付・時刻データの特長とは、たとえば日付時刻データを並べてたり単純分換算、秒換算等して数値化してある数で割ったときの余り(この場合ある数=内蔵する乱数の数+1など)、全桁のEX−OR値、偶数の個数の下一桁等が考えられる。
【0126】
d.暗号化対象データと乱数データと日付・時刻データによる秘密鍵番号自動選択
前記の各種データを関連づけて特長を拾い、いずれかのキーを選択し暗号化に使用する。機器側でも外部から読み出せない形で秘密鍵のセットとキー選択の論理を持っており独自に同じキーを選択する。また、カードごとに付与される「カード番号」や「カード発行日」等カード個別の値を選択するためのデータとして関連づけることも考えられる。
【0127】
関連づけとは、数値として足し合わせたり、数値として掛け合わせたり、全桁を一連のデータとして並べたり、2進数化して論理演算する等が考えられる。また、各データ別個に特長を拾った上でこの様に関連づけする手順も考えられる。
【0128】
ここで拾うデータの特長とは、たとえばある数で割ったときの余り(この場合ある数=内蔵する乱数の数+1など)、全桁のEX−0R値、偶数の個数の下一桁等が考えられる。
【0129】
(5)必要情報出力機能
カード内に分散して格納されているプリペイド取引に必要な各種の情報を力ードが選択して取り出し、ひとまとめに(一電文で)出力するカードとする。どの情報を選択するかは都度外部から通知する方法、予め外部から通知設定しておく方法、プリペイド用として始めから規定してしまった上でカードを作る方法等がある。図15に概要を示す。
【0130】
ここで図15について説明する。まず、端末機器側からカード側に対して、プリペイド情報のアクセス用キーの照合が要求される。カード側ではこの要求を受けてキー照合が行われ、カード側から端末機器側に対してレスポンスが返される。次に、端末機器側からカード側に対して、プリペイド関連情報の読み出しが要求される。カード側ではこの要求を受けて各エリアから必要情報を読み出し、カード側から端末機器側に対して読み出された必要情報、即ち、発行日、残高、鍵番号などの情報が送出される。
【0131】
また、カードの初期応答(アンサ・トウ・リセット)にこれらの情報を乗せて出力するようにしてもよい。この初期応答を使用した場合の例を図16に示す。ここで図16について説明する。まず、ICカードの活性化が行われる。即ち、端末機器側からカード側に対して電源および各種信号が送られる。カード側ではこれら信号を受けて初期応答を返す。この初期応答に上記したプリペイド取引に必要な情報を乗せる。その後、実際のプリペイド取引が行われる。
【0132】
以上のようにすることで、プリペイド取引処理を高速に行うことができる。
【0133】
(6)電文正当性確認
秘密鍵をカードと端末機器で持ち合い、相互に共有する何らかのデータをこの秘密鍵で暗号化し、この暗号化されたデータを正当性確認情報として電文の一部として含め、その電文が正当な相手から送られてきたものであることを正当性確認情報の内容で、カードと端末機器双方が確認する。
【0134】
端末機器から送られる電文を基にしたカード側での端末機器の確認は、主として偽造された端末機器による正当なカードに対する金額の書込(増額)を防止する。カードから送られる電文を基にした端末機器側でのカードの確認は、主として偽造されたカードによる正当な機器での買い物(購入)を防止する。また、端末機器側がカードを不正と判定した場合、そのままカードを保持し警報を発したり、端末機器内部に回収することもできる。
【0135】
以下にカードと機器双方における正当性確認手順の例を示す。また、これらを複合して各々で電文の正当性を確認するやりとりの例を図17に示す。この処理の使われ方としては、カード側での機器からのコマンド電文の正当性確認は、偽造カードによる商品等の購入を防止する効果が狙いとなるため、図17に示すように相互に正当性確認が行われるケースは少ない。即ち、偽造カードに正規の入金機で現金を支払って入金することも、商品販売に使用される減算機を偽造することも、いずれも(不正な)利益は生み出さないためであるが、使用者が偽造カードと知らない場合等に不正カードを回収し、出所を探るには有効である。
【0136】
なお、金額書き換えコマンドの使用に至る前に、カードと端末機器相互に正当な相手であることの確認のため「相互認証」を実行する運用も考えられ、本案と併用することも可能である。
【0137】
a.カード側での正当性確認
次の手順(図17参照)で端末機器からの金額書き換えコマンド自体の正当性を確認し、正当と判定されたときのみカードは金額書き換えを実行する。
【0138】
*20.金額書き換えに先立ち、端末機器がカードに対して乱数出力を要求し、カードがこれに応え乱数を出力する。
【0139】
*21.端末機器側では取得した乱数、およびこれから書き込もうとする処理時刻、書き込み金額などを秘密鍵で暗号化する。秘密鍵で暗号化された乱数が正当性確認情報となる。
【0140】
*22.端末機器からカードへ*21で生成したデータを金額書き換えコマンド電文の一部として送信する。
【0141】
*23.金額書き換えコマンド電文を受けたカードは、先に送出した乱数を秘密鍵で暗号化し正当性確認情報を生成する。この生成された正当性確認情報と受け取られた電文内の正当性確認情報とを比較することにより機器からの電文の正当性を確認する。正当性が確認された場合のみカードは金額書き換えを実行する。
【0142】
b.端末機器側での正当性確認
前記カード側での正当性確認の*23で、カード側で電文を正当と判定し金額書き換えが実行されると、処理結果の如何に関わらずカードは端末機器に対して実行結果通知レスポンス電文を返すが、このとき次の手順によりカードからの結果通知電文自体が正当なものであるかどうかを確認し、正当と判定されその内容が金額書き換え処理が正常終了を示すときのみ端末機器はカードによる処理を実行する。
【0143】
*24.金額書き換えが実行されたカードは、金額書き換えコマンド電文の一部として機器から受け取った処理時刻、書き込み金額等を秘密鍵で暗号化する。この暗号化されたデータが正当性確認情報となる。
【0144】
*25.カードから端末機器へ*24で生成したデータを、書き込みコマンド電文の実行結果通知(応答)電文の一部として送信する。
【0145】
*26実行結果通知(応答)電文を受けた端末機器は、内部で同様に正当性確認情報を生成し受け取った電文内の正当性確認情報と比較することで、カードからの電文の正当性を確認し、照合OKのときにのみ機器はそのカードを使用して所望される動作の最終段階、例えばプリペイド自販機による商品購入時の商品の送出を実行する。
【0146】
このようにすることで、端末機器とカードとが相互に正当性を確認することができ、不正な端末機器またはカードによる取引を防止できる。
【0147】
【発明の効果】
この発明によれば下記のICカードおよびICカード処理システムが提供できる。
【0148】
(1)ICカードにおいて減算コマンドと加算コマンドとを区別し、夫々のコマンドに対するアクセス権を異なるものとし、減算機には減算コマンドに対するアクセス権を、加算機には加算コマンドに対するアクセス権を付与することにより、減算機を用いて加算処理(または加算機を用いて減算処理)が行われるのを防止できる。つまり、減算機または加算機などのICカード処理装置による不正を防止できる。
【0149】
(2)ICカードにおいて生成される乱数を、乱数の生成毎に記憶し、この記憶された乱数を基にして次の乱数を生成することにより、ICカードにおける暗号化理論の解析を防止できるので、ICカードの変造または偽造を防止できる。
【0150】
(3)ICカードおよびICカード処理装置において保持されている複数の秘密鍵の中から特定の秘密鍵を選択するとき、外部から与えられるデータの特徴に応じて秘密鍵を選択することにより、秘密鍵がその都度不定となり、ICカードの変造または偽造を防止できる。
【0151】
(4)ICカードに分散して格納されているICカード取引に必要な情報を一電文または分散されている数より少ない電文数で出力することにより、迅速なカード処理ができる。また、ICカード取引に必要な情報をカードの初期応答に乗せて出力することにより、迅速なカード処理ができる。
【0152】
(5)複数の秘密鍵をICカードとカード処理装置双方で持ち合い、相互に共有する何らかのデータをカードが出力した正当性確認情報生成用秘密鍵番号で指定される秘密鍵で暗号化されたデータを正当性確認情報として電文の一部として含め、その電文が正当な相手から送られてきたものであることを正当性確認情報の内容により、ICカードとICカード処理装置双方が確認することにより、不正なICカードまたは不正なICカード処理装置による取引を防止できる。
【図面の簡単な説明】
【図1】プリペイドカードとして使用されるICカード処理の従来例を説明するフローチャート。
【図2】相互認証手順の従来例を説明する図。
【図3】金額書き換えコマンド使用時におけるカード処理の従来例を説明する図。
【図4】減算コマンド使用時におけるカード処理の一例を説明する図。
【図5】最大金額から減額のみ可能化する処理の概要の一例を示す図その1。
【図6】最大金額から減額のみ可能化する処理の概要の一例を示す図その2。
【図7】最大金額から減額のみ可能化する処理を複数回可能としたときの概要の一例を示す図。
【図8】ビット消去順序のスクランブルの一例を示す図。
【図9】金額データのAND書き換えの一例を示す図その1
【図10】金額データのAND書き換えの一例を示す図その2
【図11】何らかの規則性または暗号化理論などに従った記録内容の1レコードを1使用済金額(ユニット)とし、追記のみ可能化した場合の処理概要の一例を示す図。
【図12】書き換え前後のデータ比較処理の一例を説明するフローチャート。
【図13】乱数エリアの内容を更新しながら乱数を生成し出力する処理のイメージを表す図。
【図14】従来のプリペイド処理におけるICカードからの必要情報の読み出し方法を説明する図。
【図15】ICカードからプリペイド処理に必要な情報をひとまとめに読み出す方法を説明する図。
【図16】ICカードからプリペイド処理に必要な情報をICカードの初期応答に乗せて読み出す方法を説明する図。
【図17】ICカードと端末機器との双方で電文正当性確認を行う処理の一例を説明する図。
【図18】この発明の一実施の形態に係るICカードに内蔵されるICチップの構造を概略的に示す図。
【図19】ICカードを取り扱うICカード処理装置(端末機器)の構成を概略的に示す図。
【符号の説明】
10…制御部(処理手段)
12…データメモリ(記憶手段)
14…プログラムメモリ(処理手段)
16…送受信部(送受信手段)
20…制御部(処理手段)
22…記憶部(記憶手段)
24…操作部
26…CRTディスプレイ
28…送受信部(送受信手段)
Claims (10)
- 外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、
前記記憶手段が、第1の状態および第2の状態のどちらか一方の状態のビットで構成され数値データを示すビットデータの組を複数有し、前記数値データを変更するための前記ビットデータに対するアクセスを、前記第1の状態のビットから前記第の2状態のビットへの変換、および前記第2の状態のビットから前記第1の状態のビットへの変換のどちらか一方だけとすることにより、前記数値データの変更を増加および減少のどちらか一方だけに制限し、複数のビットデータの組の個数分だけ使用が可能となることを特徴とするICカード。 - 外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、
前記記憶手段が、第1の状態および第2の状態のどちらか一方の状態のビットで構成され数値データを示すビットデータを有し、前記数値データを変更するための前記ビットデータに対するアクセスを、前記第1の状態のビットから前記第2状態のビットへの変換、および前記第2の状態のビットから前記第1の状態のビットへの変換のどちらか一方とし、ビットデータにおけるビット状態の変換順序を一定の規則に従ってスクランブルすることを特徴とするICカード。 - 外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、
前記記憶手段が、1レコードが所定バイトで構成され所定数のレコードの書き込み可能なエリアを有し、前記エリアにおけるレコード未書き込みエリアにより残り数値データを示し、この数値データの変更のための前記エリアに対するアクセスを前記レコードの追記だけとすることにより、前記数値データの変更を減少だけに制限することを特徴とするICカード。 - 外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、
前記記憶手段が、所定数のレコードの書き込み可能なエリアを有し、前記エリアにおけるレコード未書き込みエリアにより残り数値データを示し、この数値データの変更のための前記エリアに対するアクセスを前記レコードの消去だけとすることにより、前記数値データの変更を増加だけに制限することを特徴とするICカード。 - 外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、
前記記憶手段が、1レコードが所定バイトで構成され所定数のレコードの書き込み可能な複数のエリアを有し、前記複数のエリアそれぞれにおけるレコード未書き込みエリアにより残り数値データを示し、この数値データの変更のための前記複数のエリアに対するアクセスを、エリア別に前記レコードの追記または消去のどちらか一方だけとし、これら追記と消去とにそれぞれ異なるアクセス権を設定することにより、それぞれの前記複数のエリアにおける前記数値データの変更を増加および減少のどちらか一方に制限することを特徴とするICカード。 - 外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、
前記記憶手段が、所定数のレコードの書き込み可能なエリアを有し、前記エリアにおけるレコード未書き込みエリアにより残り数値データを示し、この数値データの変更のための前記エリアに対するアクセスを前記レコードの追記に限定するとともに、前記レコードに所定のデータを書き込むことにより、前記数値データの変更を減少方向だけに制限し、前記レコードの読み出し時にこのレコードの内容を確認することを特徴とするICカード。 - 外部装置とデータの送受信を行う送受信手段と、データを記憶する記憶手段と、前記送受信手段により受信されたデータを基にしてこれに対応する処理を実行する処理手段とからなるICカードにおいて、
前記記憶手段に記憶されているビットデータを変更するとき、先に書き込まれているビットデータと新たに書き込むビットデータとの論理積となるビットデータへの変更のみ可能とすることを特徴とするICカード。 - ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、
前記ICカード処理装置のうち、前記ICカードに記憶されている数値データに対して減算処理を実行するものには減算処理キーデータを与え;
前記ICカードに記憶されている数値データを書き換えるとき、先に書き込まれている元数値データと、前記ICカード処理装置から送られる新たに書き込む新数値データとを比較し;
前記比較の結果、前記新数値データが前記元数値データより小さいときには、この新数値データの送信元である前記ICカード処理装置の減算処理キーデータを確認した上で前記新数値データの書き込みを行う;
ことを特徴とするICカード処理方法。 - ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、
前記ICカード処理装置のうち、前記ICカードに記憶されている数値データに対して加算処理を実行するものには加算処理キーデータを与え;
前記ICカードに記憶されている数値データを書き換えるとき、先に書き込まれている元数値データと、前記ICカード処理装置から送られる新たに書き込む新数値データとを比較し;
前記比較の結果、前記新数値データが前記元数値データより大きいときには、この新数値データの送信元である前記ICカード処理装置の加算処理キーデータを確認した上で前記新数値データの書き込みを行う;
ことを特徴とするICカード処理方法。 - ICカードと、このICカードに対して各種処理を施すICカード処理装置とで構成されるICカード処理システムにおいて、
前記ICカード処理装置のうち、前記ICカードに記憶されている数値データに対して減算処理を実行するものには減算処理キーデータを与え;
前記ICカード処理装置のうち、前記ICカードに記憶されている数値データに対して加算処理を実行するものには加算処理キーデータを与え;
前記ICカードに記憶されている数値データを書き換えるとき、先に書き込まれている元数値データと、前記ICカード処理装置から送られる新たに書き込む新数値データとを 比較し;
前記比較の結果、前記新数値データが前記元数値データより小さいときには、この新数値データの送信元である前記ICカード処理装置の減算処理キーデータを確認した上で前記新数値データの書き込みを行い;
前記比較の結果、前記新数値データが前記元数値データより大きいときには、この新数値データの送信元である前記ICカード処理装置の加算処理キーデータを確認した上で前記新数値データの書き込みを行い;
前記比較の結果、前記新数値データと前記元数値データとが等しいときには、この新数値データの書き込みを中止する;
ことを特徴とするICカード処理方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05628296A JP3571840B2 (ja) | 1996-03-13 | 1996-03-13 | Icカードおよびicカード処理システム |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP05628296A JP3571840B2 (ja) | 1996-03-13 | 1996-03-13 | Icカードおよびicカード処理システム |
Related Child Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP2004038672A Division JP2004215293A (ja) | 2004-02-16 | 2004-02-16 | Icカード処理システム運用方法、icカード処理システム、及びicカード |
JP2004038673A Division JP2004171596A (ja) | 2004-02-16 | 2004-02-16 | データ出力方法、データ出力システム、及びicカード |
Publications (2)
Publication Number | Publication Date |
---|---|
JPH09245134A JPH09245134A (ja) | 1997-09-19 |
JP3571840B2 true JP3571840B2 (ja) | 2004-09-29 |
Family
ID=13022751
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
JP05628296A Expired - Lifetime JP3571840B2 (ja) | 1996-03-13 | 1996-03-13 | Icカードおよびicカード処理システム |
Country Status (1)
Country | Link |
---|---|
JP (1) | JP3571840B2 (ja) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20140200976A1 (en) * | 2013-01-16 | 2014-07-17 | Merrill Brooks Smith | Transferable Indicia and Display |
-
1996
- 1996-03-13 JP JP05628296A patent/JP3571840B2/ja not_active Expired - Lifetime
Also Published As
Publication number | Publication date |
---|---|
JPH09245134A (ja) | 1997-09-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2315656C (en) | Card activation at point of distribution | |
US5949880A (en) | Transfer of valuable information between a secure module and another module | |
EP0696016B1 (en) | Method for managing security for card type storage medium and a card type storage medium | |
KR0147360B1 (ko) | 전자메모리를 가진 현금카드에 의한 지급시스템 | |
US4317957A (en) | System for authenticating users and devices in on-line transaction networks | |
JP3240131B2 (ja) | 布線型マイクロサーキットカード、およびその布線型マイクロサーキットカードと端末間のトランザクション方法 | |
US6105013A (en) | Method, apparatus, system and firmware for secure transactions | |
EP0810563A2 (en) | Method and apparatus for implementing hierarchical electronic cash | |
US20020046092A1 (en) | Method for preventing fraudulent use of credit cards and credit card information, and for preventing unauthorized access to restricted physical and virtual sites | |
US20060190412A1 (en) | Method and system for preventing fraudulent use of credit cards and credit card information, and for preventing unauthorized access to restricted physical and virtual sites | |
WO2004107343A2 (en) | Storage medium rental system | |
JP3571840B2 (ja) | Icカードおよびicカード処理システム | |
JP3328937B2 (ja) | 取引処理システムおよび方法,ならびに取引処理システムおよび方法で用いられる端末装置 | |
JP2004171596A (ja) | データ出力方法、データ出力システム、及びicカード | |
JP2004215293A (ja) | Icカード処理システム運用方法、icカード処理システム、及びicカード | |
JPH0620117A (ja) | Icカード | |
JPH0619945A (ja) | データ移転システムおよび携帯端末装置 | |
JP3490921B2 (ja) | プリペイドカードシステム、中継装置及び読書装置 | |
WO2000010068A2 (en) | Apparatus for and method of electronic currency generation, transfer and redemption | |
JP4334021B2 (ja) | 読取り装置内の累積の証明方法 | |
JP3328174B2 (ja) | プリペイドカードシステム、記録装置、プリペイドカード、カード再発券装置及びプリペイドカード再発券方法 | |
JP2004046754A (ja) | Icカード認証システム及びicカード認証方法 | |
JP2007065727A (ja) | Icカード利用システム | |
CA2624758C (en) | System and method for creating activation secure module | |
JP2022080343A (ja) | 取引管理方法、取引管理システム及びプログラム |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20031216 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040216 |
|
A131 | Notification of reasons for refusal |
Free format text: JAPANESE INTERMEDIATE CODE: A131 Effective date: 20040309 |
|
A521 | Written amendment |
Free format text: JAPANESE INTERMEDIATE CODE: A523 Effective date: 20040510 |
|
TRDD | Decision of grant or rejection written | ||
A01 | Written decision to grant a patent or to grant a registration (utility model) |
Free format text: JAPANESE INTERMEDIATE CODE: A01 Effective date: 20040622 |
|
A61 | First payment of annual fees (during grant procedure) |
Free format text: JAPANESE INTERMEDIATE CODE: A61 Effective date: 20040625 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20080702 Year of fee payment: 4 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20090702 Year of fee payment: 5 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20100702 Year of fee payment: 6 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20110702 Year of fee payment: 7 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20120702 Year of fee payment: 8 |
|
FPAY | Renewal fee payment (event date is renewal date of database) |
Free format text: PAYMENT UNTIL: 20130702 Year of fee payment: 9 |
|
EXPY | Cancellation because of completion of term |