(57)【特許請求の範囲】
【請求項１】
ＩＣカードを用いた取引における利用者の利用状況を示す利用記録を管理する管理装置と、前記管理装置と接続し、当該ＩＣカードの利用毎の利用記録が蓄積されたＩＣカードに対してデータの読み取りおよび書き込み可能な処理装置からなる取引システムを用いたデータ処理方法において、
前記ＩＣカードから前記処理装置に、前記ＩＣカードに蓄積された前記利用履歴を読み出し、
前記ＩＣカードに対して、当該ＩＣカードの使用を不可とするフラグを書き込み、
前記処理装置から前記管理装置へ、読み出された前記利用記録を送信し、
前記管理装置において、送信された前記利用記録を受信した場合、前記管理装置から前記処理装置に、前記ＩＣカードを初期化するカード初期化トークンを送信し、
前記処理装置を用いて、前記カード初期化トークンに基づき、前記ＩＣカードに対して、当該ＩＣカードの使用を可能とするフラグを書き込み、前記ＩＣカードを初期化することを特徴とするデータ処理方法。
【請求項２】
請求項１に記載のデータ処理方法において、
前記処理装置において、前記ＩＣカードから読み出された利用記録からハッシュ値を算出し、
前記管理装置において、前記処理装置から送信された前記利用記録からハッシュ値を算出し、
前記管理装置から前記処理装置に、当該管理装置で算出したハッシュ値を送信し、
前記処理装置において、前記管理装置から送信されたハッシュ値と当該処理装置で算出したハッシュ値が一致した場合、前記ＩＣカードの初期化を実行することを特徴とするデータ処理方法。
【請求項３】
請求項２に記載のデータ処理方法において、
前記管理装置において、前記初期化トークンに電子署名を施し、
前記処理装置において、前記電子署名が有効である場合に、前記ＩＣカードの初期化を実行することを特徴とするデータ処理方法。
【請求項４】
ＩＣカードを用いた取引における利用者の利用状況を示す利用記録を管理する管理装置と接続し、当該ＩＣカードの利用毎の利用記録が蓄積されたＩＣカードに対してデータの読み取りおよび書き込み可能なデータ処理装置において、
前記ＩＣカードから前記ＩＣカードに蓄積された前記利用履歴を読み出す手段と、
前記ＩＣカードに対して、当該ＩＣカードの使用を不可とするフラグを書き込む手段と、
前記管理装置へ、読み出された前記利用記録を送信する手段と、
前記管理装置から送られた前記ＩＣカードを初期化するカード初期化トークンを受信する手段と、
前記カード初期化トークンに基づいて、前記ＩＣカードに対して、当該ＩＣカードの使用を可能とするフラグを書き込み、前記ＩＣカードを初期化する手段とを有することを特徴とするデータ処理装置。
【請求項５】
請求項４に記載のデータ処理装置において、
前記ＩＣカードから読み出された利用記録からハッシュ値を算出する手段をさらに有し、
前記カード初期化トークンを受信する手段は、前記管理装置で算出されたハッシュ値を、カード初期化トークンと共に受信し、
前記ＩＣカードを初期化する手段は、前記ハッシュ値算出手段が算出したハッシュ値と、前記管理装置で算出されたハッシュ値とを比較して、比較の結果、一致している場合に、前記ＩＣカードの初期化を実行することを特徴とするデータ処理装置。
【請求項６】
請求項５に記載のデータ処理装置において、
前記カード初期化トークンを受信する手段は、前記管理装置で電子署名が施された初期化トークンを受信し、
前記ＩＣカードを初期化する手段は、前記電子署名が有効である場合に、前記ＩＣカードの初期化を実行することを特徴とするデータ処理装置。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、ＩＣカードの利用時にカード内に利用記録を保持し、取引の安全性を保証するようにしたデータ処理方法および装置に関し、特に、格納すべき取引データがＩＣカードの記憶容量を超える場合に対処することが可能なＩＣカードを用いたデータ処理方法および装置に関する。
【０００２】
【従来の技術】
近年、磁気カードに代わって大量のデータを記憶することが可能なＩＣカードが普及してきた。ＩＣカードを用いた取引システムは、取引の記録をカード内に保存することにより、取引の確実性、検証性を実現することができ、将来的にも成長が望まれる技術である。しかしながら、従来のＩＣカードを用いた取引システムにおいては、ＩＣカードの記憶容量に限界があるため格納する取引記録量にも限界がある。そのため、格納すべき取引記録がＩＣの記憶容量を超える前に、カード発行者にＩＣカードを提示して、取引記録を取り出し、初期化してもらう必要があった。
【０００３】
【発明が解決しようとする課題】
上述したＩＣカードを用いた取引システムにおいては、カードの記憶容量不足から、連続して取引を行う回数に限界があり、また、取引記録を保存せずに初期化した場合には安全性（セキュリティ）を損なうという問題があった。また、ネットワークを通じた取引においては、カード所有者（カード利用者）が、カード発行者（カード管理者）にカードを提示することは、物理的に困難な場合があった。
本発明の目的は、上記問題を解決し、カードの記憶容量不足による連続取引回数の限界を解消するとともに、取引記録を保存することにより安全性を保証することが可能な、また、カード所有者がカード発行者に対してカードを直接提示する必要をなくしたＩＣカードを用いたデータ処理方法および装置を提供することである。
【０００４】
【課題を解決するための手段】
本発明のデータ処理方法は、上記の目的を達成するために、前記ＩＣカードから前記処理装置に、前記ＩＣカードに蓄積された前記利用履歴を読み出し、前記ＩＣカードに対して、当該ＩＣカードの使用を不可とするフラグを書き込み、前記処理装置から前記管理装置へ、読み出された前記利用記録を送信し、前記管理装置において、送信された前記利用記録を受信した場合、前記管理装置から前記処理装置に、前記ＩＣカードを初期化するカード初期化トークンを送信し、前記処理装置を用いて、前記カード初期化トークンに基づいて、前記ＩＣカードに対して、当該ＩＣカードの使用を可能とするフラグを書き込み、前記ＩＣカードを初期化することを特徴としている。
また、本発明のデータ処理装置は、前記ＩＣカードから前記ＩＣカードに蓄積された前記利用履歴を読み出す手段と、前記ＩＣカードに対して、当該ＩＣカードの使用を不可とするフラグを書き込む手段と、前記管理装置へ、読み出された前記利用記録を送信する手段と、前記管理装置から、送信された前記利用記録を当該管理装置が受信した場合、前記管理装置から前記ＩＣカードを初期化するカード初期化トークンを受信する手段と、前記カード初期化トークンに基づいて、前記ＩＣカードに対して、当該ＩＣカードの使用を可能とするフラグを書き込み、前記ＩＣカードを初期化する手段とを有することを特徴としている。
【０００５】
【発明の実施の形態】
以下、価値（バリュー）を保持したカード（好ましくは、ＩＣカードで構成された電子マネー、プリペイドカードなど）を例に、本発明の実施例を詳細に説明する。
図１は、本実施例の全体の処理を示すフローチャートである。
同図において、カード発行者（カード管理者）１０は、カード所有者（カード利用者）２０に対して、カードを発行する者であり、カード所有者２０は、カード発行者１０が発行したカードを所有し、必要に応じてそのカードを利用して取引を行う者である。
まず、カード発行者１０は、ステップ５０００でカードの作成を行う（詳細は図５）。作成したカードは、郵送等の手段により、カード所有者２０に送付される（１００１）。
【０００６】
カード所有者２０は、受け取ったカードをステップ７０００で利用する（詳細は図７）。カードの利用に際し、利用記録が、カード内に蓄積される。このステップ７０００は、繰り返し行われることがある。また、カード所有者２０は、ステップ８０００で、カードに格納された利用記録の退避を行う（詳細は図８）。カード所有者２０は、利用記録の退避後もカードの利用をすることができる。カード所有者２０は、ステップ１００００で、利用記録の切り離しを行う（詳細は図１０）。次に、利用記録をカード発行者１０に送る（１００２）。
カード発行者１０は、カード所有者２０から送られた利用記録を受け取って保存し（ステップ１１０００：詳細は図１１）、記録を受け取ったことを示す記録受領確認をカード所有者２０に送る（１００３）。カード所有者２０は、受け取り確認により、カードの初期化を行う（ステップ１２０００：詳細は図１２）。以上が、本実施例の全体の処理フローである。
【０００７】
図２は、本実施例で用いるＩＣカード２０００の機能ブロック図である。
入出力部２００１は、外部からの情報を入力したり、外部へ情報を出力する機能を有する（図示しないカードリーダライタを介して入出力）。制御部２００２は、入出力部２００１からデータを受け取って解釈し、必要なプログラムをプログラム記憶部２００５から読み出して実行する機能を有する。プログラムの実行は、秘密情報格納部２００６やデータ記憶部２００７から必要なデータを読み出し、レジスタ２００３にデータを格納し、演算部２００４に指示を与えることによって行われる。
本実施例で用いるＩＣカード２０００には、暗号アルゴリズムを実行するプログラムが内蔵されており（プログラム記憶部２００５）、公開鍵暗号方式の暗号および署名を実行することができる。その際に使用する秘密鍵は、ＩＣカード内部（秘密情報格納部２００６）に格納されており、外部に取り出すことはできない。
【０００８】
秘密情報格納部２００６には、このカードを識別するためのカード番号１０１、電子署名や暗号化を行うための秘密鍵１０２、秘密鍵によって作成された署名や暗号を確認する公開鍵を発行者によって保証する公開鍵証明書１０３、発行者の署名を確認するための発行者公開鍵証明書１０４が格納されている。
データ記憶部２００７には、カード所有者２０がカードを利用する際に照合するパスワード１０５、当該カードが利用可能か否かを示す利用可能フラグ１０６、カードの保持する金額やプリペイドカードとしての度数を保持するカードバリュー１０７、カードの取引を記録する利用記録部１０８、外部に取り出した利用記録との関連づけを行うハッシュ値記憶部１０９が格納されている。利用記録部１０８には、取引の記録を複数格納することが可能である。
【０００９】
図３は、本実施例を実施するシステム全体を示す構成図である。本システムは、大きく分けて、カード発行者１０が操作するカード管理装置１００，カード所有者２０が操作するカード処理装置２００，およびインターネットなどの外部ネットワーク３００６から構成される。
カード処理装置２００は、外部ネットワーク３００６に接続され、カード発行者１０が操作するカード管理装置１００と通信が可能である。カード処理装置２００は、表示部３００１、制御部３００２、入力部３００３、記憶部３００５、カードリーダライタ３００４から構成される。記憶部３００５は、利用記録データ３００７を格納する。カードリーダライタ３００４は、カードにデータを入力したり、カードからデータを取り出したりする機能を有する。
カード管理装置１００は、外部ネットワーク３００６に接続され、カード所有者２０が操作するカード処理装置２００と通信が可能である。カード管理装置１００は、表示部４００１、制御部４００２、入力部４００３、記憶部４００４から構成される。記憶部４００４は、カード所有者データベース４０１０および発行者秘密鍵４０１１を保持する。
【００１０】
図５は、カード発行者１０（カード管理装置１００）によるカード作成手順を示すフローチャートである（図１のステップ５０００に対応）。
初めに、暗号化、電子署名に使用する公開鍵暗号方式による鍵対、すなわち秘密鍵と公開鍵を生成する（ステップ５００１）。次に、カード発行者の秘密鍵により、公開鍵証明書を作成する（ステップ５００２）。さらに、パスワードを決定する（ステップ５００３）。ＩＣカードの秘密情報格納部２００６に、秘密鍵１０２、公開鍵証明書１０３、発行者公開鍵証明書１０４、カード番号１０１を格納した後（ステップ５００４）、該ＩＣカードをカード所有者２０に送付する（ステップ５００５）。
【００１１】
図６は、カード発行者１０が操作するカード管理装置１００に含まれるカード所有者データベース４０１０の論理構成図である。
各カード番号１０１毎に、前回ハッシュ値２０１が格納されており、また、一つのカード番号に対し、利用記録２０２が複数格納されることができるようになっている。
【００１２】
図７は、本実施例による、カード利用手順を示すフローチャートである（図１のステップ７０００に対応）。
最初に、カードを操作する場合に用いるカード操作データについて説明しておく。図４は、カード操作データ４０００の構成を示す構成図である。カード操作データ４０００は、カード番号１０１、パスワード１０５、指示データ９００、および、それらに対する署名３３９、そして、署名３３９を行う際に使用した公開鍵証明書１０３から構成される。
【００１３】
カードを利用する場合には、まず、カードの利用可能フラグ１０６が“ＯＮ”であるかどうか判定する（ステップ７００１）。判定の結果、カード利用可能フラグ１０６が“ＯＮ”でなければ（ステップ７００１：Ｎ）、処理を終了する。カード利用可能フラグ１０６が“ＯＮ”の場合には（ステップ７００１：Ｙ）、カードに入力されるデータ（カード操作データ）を調べ、そのデータが有効であるかどうかを判定する（ステップ７００２）。調べる項目は、カード番号１０１、パスワード１０５、および署名３３９である。入力データが有効でない場合には（ステップ７００２：Ｎ）、利用記録として「エラー」を記録し（ステップ７００７）、処理を終了する。
【００１４】
入力データが有効な場合には（ステップ７００２：Ｙ）、入力データの指示（指示データ９００）に従って、カードバリュー１０７を更新する（ステップ７００３）。次に、更新した処理の記録を利用記録として、利用記録部１０８に保存する（ステップ７００４）。次に、利用記録部１０８が、全て埋まっている（満杯）かどうか調べ（ステップ７００５）、全て埋まっている場合には（ステップ７００５：Ｙ）、利用可能フラグ１０６を“ＯＦＦ”にする（ステップ７００６）。
【００１５】
図８は、本実施例による、利用記録の退避手順を示すフローチャートである（図１のステップ８０００に対応）。本処理は、カードの利用記録部１０８に格納されている全ての利用記録に対して順に行われる。
初めに、未処理の利用記録の有無を調べ（ステップ８００１）、もし全て処理済であれば（ステップ８００１：Ｎ）、処理を終了する。もし、未処理の利用記録があれば（ステップ８００１：Ｙ）、ハッシュ値記憶部１０９より、ハッシュ値を取り出し、利用記録と連結する（ステップ８００２）。次に、その結果に対して、署名を施し、利用記録データを作成する（ステップ８００３）。次に、利用記録のハッシュ値を計算する（ステップ８００４）。次に、その結果をハッシュ値記憶部１０９に格納した後（ステップ８００５）、利用記録データをカード処理装置２００の記憶部３００５に出力し利用記録データ３００７として格納する（ステップ８００６）。その後、再度ステップ８００１に戻り、次の未処理の利用記録に対して同様の処理を行う。
【００１６】
図９は、本実施例により生成された、安全に関連づけられた利用記録を示すブロック図である。
利用記録データ３０１は、利用記録（１）３２１とハッシュ（０）３１１およびその署名３３１からなる。ここで、ハッシュ（０）３１１は、前の利用記録のハッシュ値である。図９に示すように、新たな利用記録データが順次リンクされる。利用記録終端データ３０５は、利用記録切り離しを行うために後述する図１０のステップ１０００１で生成される終端データであり、ハッシュ（ｎ）３１５およびそれに対する署名３３５から構成され、それ以前の利用記録データのような利用記録を含んでいない。
【００１７】
図１０は、本実施例による、利用記録の切り離し手順を示すフローチャートである（図１のステップ１００００に対応）。
初めに、ハッシュ値記憶部１０９より、ハッシュ値を取り出し、署名を施し利用記録終端データを作成する（ステップ１０００１）。次に、利用可能フラグ１０６を“ＯＦＦ”にする（ステップ１０００２）。最後に、利用記録終端データを出力し（ステップ１０００３）、それ以前の利用記録データと合わせて（図９の３０１〜３０５に相当）カード発行者１０（カード管理装置１００）に送る。。
【００１８】
図１１は、本実施例による、カード発行者１０の利用記録受付手順を示すフローチャートである（図１のステップ１１０００に対応）。
初めに、カード所有者データベース４０１０から、前回ハッシュ値を取り出し、変数Ｘに格納する（ステップ１１００１）。次に、受け付けた利用記録に対し順に次の処理を行う。
まず、未処理の利用記録があるかどうかを調べ（ステップ１１００２）、もし、ない場合すなわち全ての利用記録の処理を終了した場合には（ステップ１１００２：Ｎ）、配列Ｙ（後述）に格納された利用記録をデータベースに保存し（ステップ１１００６）、変数Ｘを前回ハッシュ値２０１に格納し（ステップ１１００７）、変数Ｘに発行者の署名を行なってカード初期化トークンを作成し、出力し（ステップ１１００８）、カード所有者２０に送る。カード初期化トークンの例を図１３に示す。
【００１９】
もし、未処理の利用記録がある場合には（ステップ１１００２：Ｙ）、その署名が有効かどうかを調べ（ステップ１１００３）、有効でない場合には（ステップ１１００３：Ｎ）、処理を終了する。有効な場合には（ステップ１１００３：Ｙ）、配列Ｙに利用記録を格納する（ステップ１１００４）。さらに利用記録のハッシュ値を計算し、変数Ｘに格納した後（ステップ１１００５）、再度ステップ１１００２に戻って次の未処理の利用記録に対して同様の処理を行う。
【００２０】
図１２は、本実施例による、カード所有者（カード処理装置）におけるカードの初期化手順を示すフローチャートである（図１のステップ１２０００に対応）。
初めに、カード管理装置１００からのカード初期化トークンの署名が有効かどうかを調べる（ステップ１２００１）。有効でない場合には（ステップ１２００１：Ｎ）、処理を終了する。有効な場合には（ステップ１２００１：Ｙ）、カード初期化トークン内のハッシュ値とハッシュ値格納部のハッシュが一致しているかどうか調べる（ステップ１２００２）。一致していない場合には（ステップ１２００２：Ｎ）、処理を終了する。一致している場合には（ステップ１２００２：Ｙ）、カード利用可能フラグ１０６を“ＯＮ”にする。これにより、カードが初期化され、再度利用できるようになる。
【００２１】
上記実施例では、ＩＣカードに格納されているデータに対して電子署名を行った場合を例にして説明したが、電子署名の代わりに暗号化することによっても本発明は同様に実現可能である。
【００２２】
以上説明したデータ処理方法は、図２に示すような、入出力部２００１と、制御部２００１と、演算部２００４と、少なくとも秘密鍵を含む秘密情報格納部２００６と、少なくともカードバリューを含むデータ記憶部２００７と、上記実施例で説明したデータ処理方法における各処理手順をプログラムコード化して記録した記憶プログラム記憶部２００５を有するＩＣカードによって実現可能であり、所期の目的を達成することができ、有用なＩＣカードとして広く市場に流通させることができる。
【００２３】
【発明の効果】
上述したように、本発明によれば、カードの記憶容量不足による連続取引回数の限界を解消することができ、また、取引記録を保存することにより安全性を保証することができる。さらに、カード所有者がカード発行者に対してカードを直接提示する必要もなくなる。
【図面の簡単な説明】
【図１】本発明の一実施例の全体の処理を示すフローチャートである。
【図２】本発明の一実施例で用いるＩＣカードの機能ブロック図である。
【図３】本発明の一実施例のシステム全体を示す構成図である。
【図４】本発明の一実施例におけるカード操作データの構成を示す構成図である。
【図５】本発明の一実施例におけるカード発行者によるカード作成手順を示すフローチャートである。
【図６】本発明の一実施例におけるカード発行者のカード管理装置に含まれるカード所有者データベースの論理構成図である。
【図７】本発明の一実施例におけるカード利用手順を示すフローチャートである。
【図８】本発明の一実施例における利用記録の退避手順を示すフローチャートである。
【図９】本発明の一実施例により生成された、安全に関連づけられた利用記録を示すブロック図である。
【図１０】本発明の一実施例における利用記録の切り離し手順を示すフローチャートである。
【図１１】本発明の一実施例におけるカード発行者の利用記録受付手順を示すフローチャートである。
【図１２】本発明の一実施例におけるカードの初期化手順を示すフローチャートである。
【図１３】本発明の一実施例におけるカード初期化トークンの一例を示す図である。
【符号の説明】
１００：カード発行者のカード管理装置
２００：カード所有者のカード処理装置
１０１：カード番号
１０２：秘密鍵
１０３：公開鍵証明書
１０４：発行者公開鍵証明書
１０５：パスワード
１０８：利用記録
１０９：ハッシュ記憶部
２０１：前回ハッシュ値
２０２：利用記録
３０１，３０２，３００７：利用記録データ
３０５：利用記録終端データ
３０６：受領確認トークン
２０００：ＩＣカード
２００１：入出力部
２００２：制御部
２００３：レジスタ
２００４：演算部
２００５：プログラム記憶部
２００６：秘密情報格納部
２００７：データ記憶部
４０００：カード操作データ
４０１０：カード所有者データベース
４０１１：発行者秘密鍵
【図１】
0003640141.tif 000002
【図２】
0003640141.tif 000003
【図３】
0003640141.tif 000004
【図４】
0003640141.tif 000005
【図５】
0003640141.tif 000006
【図６】
0003640141.tif 000007
【図７】
0003640141.tif 000008
【図８】
0003640141.tif 000009
【図９】
0003640141.tif 000010
【図１０】
0003640141.tif 000011
【図１１】
0003640141.tif 000012
【図１２】
0003640141.tif 000013
【図１３】
0003640141.tif 000014