<実施形態>
<概要>
図1は、本実施形態の決済システムの使用形態の例を示す図である。
コンビニ等の店舗である「店舗A」に、セルフ型のMFP(Multi Function Peripheral)2000が設置されている。このMFP2000は、ICカード1000によるプリント代の決済が可能な画像形成装置である。
また、客から商品等の支払いを受ける場所であるレジ30には、認証装置3000が設置されている。この認証装置3000は、ICカードリーダライタを備える、いわゆるレジスターである。認証装置3000の画面を見ながら店員がキーボード等を操作して、ユーザのICカードから商品の代金を引き落としたり、所定の金額をチャージしたりする。
本実施形態の決済システムは、ICカード1000に釣銭を書き込み、この釣銭をICカードにチャージされている現金と同様に使用できるようにするものである。
ICカード1000にチャージされた現金に相当するデータは、ICカード提供者による高いセキュリティ機能によって保護されているセキュア領域に記録されており、通常、金額に相当するデータの減算(いわゆる、金額の引き出し)は容易にできるが、加算は容易には行えないように保護されている。すなわち、ICカードに蓄えられている金額に、新たに金額を追加するためには、ICカード提供者からライセンス供与を必要としたり、耐タンパ性の高い装置が必要となる。
従って、釣銭をICカード1000にチャージする機能をMFP2000毎に持たせることは、MFP2000の高コスト化を招くこととなり現実的ではない。
そこで、本実施形態のMFP2000では、プリント開始前に所定金額を引き出し、プリント後に、釣銭をICカード1000に設けた釣銭用の領域に書き込む。この釣銭用の領域は、ICカード1000が備えるメモリ内のユーザ領域に確保される。このユーザ領域は、ICカード提供者がICカード1000を用いたサービスの提供者に対して提供している領域であり、その使用方法及びセキュリティはサービス提供者に任されている領域である。
MFP2000は、ユーザにICカード1000をICカードリーダライタにタッチさせることを求め、釣銭に署名を行ってからICカード1000に書き込む。
その後、ユーザは、レジ30において、ICカード1000に記録されている釣銭をICカードにチャージしてもらったり、商品の代金として使用したり、換金を行う。但し、署名の正当性が認証装置3000で確認された場合にのみ、釣銭の換金等が可能となる。
このレジ30は、実際にプリントを行ったMFP2000が設置されている店舗のものである必要はなく、他の店舗のレジ30であってもよい。また、1つのICカード1000に釣銭を複数回分貯めてから換金等してもよい。
このように、本発明の決済システムでは、MFP2000で行ったプリント代の釣銭をICカード1000に書き込むことができ、書き込んだ釣銭はICカード1000にチャージしてある現金と同様の使い方、例えば、レジ30で商品代金として使用する等が可能となる。
また、コピー前に所定金額を預かる場合も、釣銭を書込む場合も、ユーザはICカード1000を手に持ったままICカードリーダライタにタッチさせるだけでよい。すなわち、ICカード1000の利便性を損なわずに決済を行うことが可能となる。
以下、本発明の実施形態の決済システムについて、図面を用いて説明する。尚、実施形態では、コピーを行う場合を説明する。
<機能>
図2は、MFP2000のハードウェア構成の例を示す図である。
MFP2000は、CPU(Central Processing Unit)20a、RAM(Random Access Memory)20b、ROM(Read Only Memory)20c、ハードディスク20d、制御用回路20e、操作パネル20f、印刷装置20g及びICカードリーダライタ20h等によって構成される。
制御用回路20eは、ハードディスク20d、操作パネル20f、印刷装置20g及びICカードリーダライタ20h等の装置を制御するための回路である。
操作パネル20fは、タッチパネル方式のパネルであって、ユーザに対してメッセージまたは指示を与えるための画面、ユーザが所望する処理の種類や処理条件、パスワード等を入力するための画面及びCPU20aで実行された処理の結果を示す画面等を表示する。また、ユーザは、操作パネル20fの所定の位置に触れることによってMFP2000に対して指示を与えたり処理条件の指定を行ったりすることができる。このように、操作パネル20fは、MFP2000を操作するユーザのユーザインタフェースの役割を果たしている。
印刷装置20gは、スキャナから読み込んだ画像を用紙に印刷する装置である。
ICカードリーダライタ20hは、ICカード1000からデータを読み取り、あるいは、書き込む装置である。
次に、図3を用いて、決済システムを構成するICカード1000、MFP2000及び認証装置3000について説明する。
図3は、ICカード1000、MFP2000及び認証装置3000の機能的構成の例を示すブロック図である。
本実施形態のICカード1000は、非接触型ICカードである。
ここで、ICカードとは、メモリやマイクロプロセッサを内蔵したICチップを搭載したカードをいい、非接触型ICカードとは、カードに搭載されているICチップに電力とデータを与える方法として磁界を利用したICカードをいう。ICカードリーダが発生する磁界内にICカードが入れられると、ICカード内に設けられたコイル状のアンテナにより電力が生じてICチップが作動する。
ICカード1000は、制御部1100、送受信部1200、引出処理部1300、入金処理部1350、釣銭読書き部1400、金額記憶部1500及び釣銭記憶部1600で構成される。
金額記憶部1500及び釣銭記憶部1600は、記憶領域1010に作成されており、記憶領域1010は、セキュア領域1011及びユーザ領域1012の2種類の領域に分割されている。セキュア領域1011は、ICカード1000の提供者が特定のセキュリティで保護している領域であり、ユーザ領域1012は、ICカード1000を用いたサービスの提供者が自由に使用できる領域である。
金額記憶部1500はセキュア領域1011に作成され、釣銭記憶部1600はユーザ領域1012に作成されている。
ここで、金額記憶部1500及び釣銭記憶部1600に対してMFP2000及び認証装置3000のそれぞれが有しているアクセス権について、図4を用いて説明する。
図4は、MFP2000及び認証装置3000が、金額記憶部1500及び釣銭記憶部1600に対してデータの書き込み又は読み込みが可能であるか否かを示すアクセス管理表1020の例を示す図である。「可」は可能であることを示し、「不可」はできないことを示す。
装置1021は、MFP2000又は認証装置3000を示す。
記憶領域1022は、金額記憶部1500及び釣銭記憶部1600を示す。
書き込み1023は、金額記憶部1500及び釣銭記憶部1600に記憶されているデータに対して、どのような処理が可能かを示す。
具体的には、「引出」は、金額記憶部1500又は釣銭記憶部1600から、所定の金額を引き出すことが可能か否かを示す。すなわち、減算を行うことが可能か否かを示す。
「入金」は、金額記憶部1500又は釣銭記憶部1600に、所定の金額を入金することが可能か否かを示す。すなわち、加算を行うことが可能か否かを示す。
読み込み1024は、金額記憶部1500又は釣銭記憶部1600に記憶されているデータに対して、参照が可能かを示す。
ここでは、認証装置3000は、金額記憶部1500及び釣銭記憶部1600に対して、減算、加算及び参照が可能である。
一方、MFP2000は、金額記憶部1500に対しては、加算以外の処理、すなわち減算と参照とが可能である。また、釣銭記憶部1600に対しては、減算、加算及び参照が可能である。
以下、ICカード1000の各部の機能を説明する。これらの機能の一部又は全部は、ICカード1000が備えるメモリに格納されているプログラムが、CPUにより実行されることで実現される。
制御部1100は、一般的な非接触型ICカードに必要な処理を行う機能の他、釣銭を書込む処理の制御等を行う機能を有する。
送受信部1200は、MFP2000又は認証装置3000と通信を行う機能を有する。具体的には、送受信部1200は、アンテナコイルを含む。このアンテナコイルがICカードリーダライタから送信されている信号を受信すると電流が発生し、制御部1100等が起動する。送受信部1200は、起動した制御部1100からの指示に従い、ICカードリーダライタとデータの送受信を行う。
引出処理部1300は、金額記憶部1500に記憶されている金額から所定の金額を引出す機能を有する。
入金処理部1350は、金額記憶部1500に入金する機能、詳細には、金額記憶部1500に記憶されている金額に、制御部1100から指示された金額を加算する機能を有する。
釣銭読書き部1400は、署名された釣銭を釣銭記憶部1600から読み出したり、書き込んだりする機能を有する。また、削除する機能も有する。
金額記憶部1500は、チャージされた金額、すなわち、入金された額を記憶しておく機能を有する。
釣銭記憶部1600は、署名された釣銭を記憶しておく機能を有する。
次に、MFP2000は、制御部2100、送受信部2200、操作部2300、表示部2400、印刷処理部2500、対価算出部2600、釣銭算出部2700、金額預かり処理部2800、署名処理部2900及び秘密鍵記憶部2910で構成される。
以下に説明するMFP2000の各部の機能の一部又は全部は、MFP2000のハードディスク20d等のメモリに格納されているプログラムが、CPU20aにより実行されることで実現される。
制御部2100は、一般的なMFPに必要な処理を行う機能の他、ICカード1000から引き出した金額を釣銭算出部2700に通知する処理の制御等を行う機能を有する。
送受信部2200は、ICカードリーダライタ20hであり、ICカード1000との間でデータを送受信する機能を有する。
このMFP2000のICカードリーダライタ20hは、アンテナを備え、備えているアンテナから信号を送出する。この信号が送出されている面にICカード1000がタッチされたときに通信を行う。詳細には、アンテナが発生させている磁界内に入ったICカード1000と通信を行う。以下、ICカード1000をICカードリーダライタ20hのアンテナが磁界を発生させている面に近づけて、ICカードリーダライタ20hのアンテナが発生させている磁界内に、必要な通信を行うことができる期間置くことを「ICカード1000をICカードリーダライタ20hにタッチする」というものとする。
操作部2300は、操作パネル20fを介して、ユーザの操作を取得する機能を有する。
表示部2400は、操作パネル20fの表示パネルにメッセージ等を表示する機能を有する。
印刷処理部2500は、スキャナからメモリを介して画像データを受け取り、印刷装置20gを用いて受け取った画像データに基づいて画像を用紙に印刷して排紙する、いわゆるコピー機能を有する。また、コピーを1枚行う毎に、対価算出部2600にコピーを行った旨と、そのコピーの種類、例えば、白黒コピー又はカラーコピーである旨とを通知する機能を有する。
対価算出部2600は、コピー代を求める機能を有する。コピー代は、印刷処理部2500からコピーを行った旨が通知される毎に、通知されたコピーの種類に応じた値段を求める。求めたコピー代は、釣銭算出部2700に通知する。
このコピーの種類と値段とは、予め対価算出部2600が記憶しているものである。例えば、白黒コピーであれば10円、カラーコピーであれば20円のようにである。
釣銭算出部2700は、ICカード1000から引き出して預かった金額から、対価算出部2600から通知された対価を減算して釣銭の金額を求める機能を有する。ICカード1000から引き出して預かった金額は、制御部2100から通知される。
また、釣銭算出部2700は、次のコピーがなされたら釣銭の金額が0(ゼロ)以下になる場合は、その旨を制御部2100に通知する機能を有する。更に、制御部2100から清算する旨の指示を受けたときに、算出した釣銭の金額を署名処理部2900に通知する機能を有する。
金額預かり処理部2800は、ICカード1000から所定金額を引き出す処理を行う機能を有する。具体的には、所定金額を引き出す旨のコマンドを生成し、送受信部2200を介して、ICカード1000に送信する機能を有する。
また、金額預かり処理部2800は、送受信部2200を介して、ICカード1000から引き出した金額を通知するデータを受信し、引き出した金額を制御部2100に通知する機能を有する。
署名処理部2900は、釣銭算出部2700から釣銭の金額を通知されると、秘密鍵記憶部2910に記憶されている秘密鍵を用いて釣銭に署名を行い、署名された釣銭(以下、「署名釣銭」という。)を生成する機能を有する。また、生成した署名釣銭を、送受信部2200を介して、ICカード1000に送信する機能を有する。
秘密鍵記憶部2910は、秘密鍵を記憶しておく機能を有する。この秘密鍵は、予め定められて記憶されている。
認証装置3000は、制御部3100、送受信部3200、操作部3300、表示部3400、署名判定部3500及び公開鍵記憶部3510で構成される。
以下に説明する認証装置3000の各部の機能の一部又は全部は、認証装置3000が備えるメモリに格納されているプログラムが、CPUにより実行されることで実現される。
制御部3100は、ICカード1000から読み出した署名釣銭の正当性を判断して正当であれば釣銭を換金する等の処理を行うための制御等を行う機能を有する。
送受信部3200は、いわゆるICカードリーダライタであり、ICカード1000とデータを送受信する機能を有する。データを送受信する方式は、MFP2000の送受信部2200と同様である。ただし、認証装置3000のICカードリーダライタは、ICカードリーダライタのスリットに挿入されたICカード1000と通信を行うものである。
操作部3300は、認証装置3000に備えられているキーボード等の操作を検出し、制御部3100に通知する機能を有する。
表示部3400は、認証装置3000の備えられているディスプレイに、メッセージ等を表示する機能を有する。
署名判定部3500は、署名釣銭の正当性を判定する機能を有する。正当性の判定には、公開鍵記憶部3510に記憶されている公開鍵を使用する。
公開鍵記憶部3510は、公開鍵を記憶している機能を有する。この公開鍵は、MFP2000の秘密鍵記憶部2910に記憶されている秘密鍵と対をなすものである。すなわち、秘密鍵と公開鍵とは、秘密鍵で暗号化したものは公開鍵で復号することによりもとに戻せるという関係にある鍵である。
また、公開鍵記憶部3510は、1以上の公開鍵が記憶されている。他の店舗に設置されているMFP2000で書き込まれた署名釣銭の正当性も判断することができるようにである。例えば、系列が同じである店舗に設置されているMFP2000の秘密鍵と対の公開鍵を全て記憶しておけば、系列店でコピーした際の釣銭は全国のどの店舗でも換金等ができるようになる。
<データ>
以下、本実施形態の決済システムで用いるデータについて図5を用いて説明する。
図5は、ICカード1000の釣銭記憶部1600に記憶される署名釣銭1610の構成及び内容の例を示す図である。この署名釣銭1610は、MFP2000において釣銭が発生すると生成され、書き込まれるものである。従って、複数個書き込まれている場合もある。
この署名釣銭1610は、認証装置3000によって正当性が判断される。
署名釣銭1610は、釣銭1611及び暗号化ハッシュ値1612で構成される。
釣銭1611は、MFP2000でコピーサービスを受けた際に生じた釣銭の額が記載されている。例えば、「50」円である。
暗号化ハッシュ値1612は、ハッシュ関数、例えば、MD5(Message Digest Algorithm 5)を用いて釣銭1611を生成したハッシュ値を、秘密鍵記憶部2910に記憶されている秘密鍵を用いて暗号化したものである。署名釣銭1610は、釣銭1611のデータと暗号化ハッシュ値1612とを対応付けてパッケージ化されたデータである。
ここで、認証装置3000が署名釣銭1610の正当性を判断する方法について説明する。
まず、認証装置3000は、公開鍵記憶部3510に記憶されている公開鍵を用いて暗号化ハッシュ値1612を復号してハッシュ値をもとめる。このハッシュ値を、「暗号化ハッシュ値1612から求めたハッシュ値」というものとする。
次に、釣銭1611からハッシュ値を生成する。生成されたハッシュ値を、「釣銭1611から求めたハッシュ値」というものとする。この生成の際、MFP2000が暗号化ハッシュ値1612を生成する際に用いたハッシュ関数を用いる。いかなるハッシュ関数を用いるかは、予め決められているものとする。
「暗号化ハッシュ値1612から求めたハッシュ値」と「釣銭1611から求めたハッシュ値」とが同じ値である場合に、署名は正当であると判定する。すなわち、釣銭1611は改ざん等がなされていないと判断できるので、釣銭1611で示される金額で換金することができる。
<表示画面>
以下、本実施形態の決済システムで用いる主な表示画面について図6〜図9を用いて説明する。図6〜図8を用いて説明する表示画面は、MFP2000の操作パネル20fに表示される画面例である。また、図9を用いて説明する表示画面は、認証装置3000が備えるディスプレイに表示される画面例である。
図6は、預かり金入力画面2410及びコピー開始画面2411を示す図である。
預かり金入力画面2410には、コピーを行う前に預かり金を支払うことを要求するメッセージが表示されている。
ユーザは、預かり金として支払おうとする金額のボタンを押下する。図6では、「300円」のボタンが押下されている。押下されたボタンは、斜線を引いて表している(図7及び図9も同様)。
預かり金入力画面2410においてユーザが金額のボタンを押下した後に、ICカードをICカードリーダライタにタッチさせると、預かり金を引き出した旨のメッセージと、コピーを行うことができる旨のメッセージが表示されたコピー開始画面2411が表示される。ユーザは、コピーを行うことが可能となる。
図7は、預かり金追加画面2420及びコピー再開画面2421を示す図である。これらの画面は、預かり金額がなくなった場合に表示される。
預かり金追加画面2420には、預かった金額分のコピーを行ったため、コピーを続ける場合は預かり金を支払うことを要求するメッセージが表示されている。
ユーザは、預かり金として支払おうとする金額のボタンを押下する。
預かり金追加画面2420においてユーザが金額のボタンを押下した後に、ICカードをICカードリーダライタにタッチさせると、預かり金を引き出した旨のメッセージと、コピーを行うことができる旨のメッセージが表示されたコピー再開画面2421が表示される。ユーザは、コピーを続けることが可能となる。
図8は、精算画面2430及びコピー終了画面2431を示す図である。これらの画面は、ユーザが清算ボタンを押下した場合に表示される。
精算画面2430には、お釣りがある旨のメッセージが表示されている。
ユーザは、ICカードをICカードリーダライタにタッチさせると、お釣りがICカードに書き込まれた旨のメッセージが表示されたコピー終了画面2431が表示される。
図9は、初期画面3410及び換金画面3411を示す図である。これらの画面は、ユーザがレジ30で釣銭を換金する場合に認証装置3000のディスプレイに表示される。
初期画面3410には、ICカードを用いて行う処理を選択することを要求するメッセージが表示されている。ここでは、商品代金をICカードから引き出す処理又はICカードに記憶されている釣銭を引き出す処理のいずれかの処理を選択するよう要求している。
ユーザがICカードに記憶されている釣銭を引き出すことを要求している場合、認証装置3000の操作者、すなわち、店員は、その旨の処理を選択するボタンを押下する。
ユーザがICカードを、認証装置のICカードリーダライタのスリットに挿入すると、換金できる釣銭の金額等の情報が表示され、且つ、釣銭を現金で支払うのかICカードに入金するのかの選択を要求する換金画面3411が表示される。
ここで、釣銭をICカードに入金することをユーザが要求している場合、認証装置3000の操作者は、チャージの処理を選択するボタンを押下する。現金での支払いをユーザが要求している場合は、現金での支払い処理を選択するボタンを押下する。
その後、ICカードリーダライタからICカードが排出される。
<動作>
以下、実施形態の決済システムの動作について、図10及び図11を用いて説明する。図10を用いて、MFP2000で行うコピー処理について説明し、図11を用いて、認証装置3000で行う換金処理について説明する。
<コピー処理>
図10は、MFP2000においてICカード1000を用いたコピー処理を示すフローチャートである。
ユーザは、MFP2000において、コピー機能の使用を開始するため指示、例えば、操作パネル20fに表示されているメニューのコピーボタンを押下する。
ユーザがコピーボタンを押下した操作を検出したMFP2000の操作部2300は、その旨を制御部2100に通知する(ステップS200)。
コピーボタンが押下された旨の通知を受けた制御部2100は、預かり金入力画面2410(図6参照)の表示を表示部2400に依頼する。
依頼を受けた表示部2400は、操作パネル20f(図2参照)に預かり金入力画面2410を表示する(ステップS210)。
ここで、ユーザは預かり金入力画面2410から金額のボタンを選択して押下する。例えば、「300円」のボタンを押下する。
金額のボタンが押下されたことを検出した操作部2300は、金額のボタンが押下された旨と押下されたボタンとを制御部2100に通知する。
通知を受けた制御部2100は、所定金額をICカード1000から引き落とすよう金額預かり処理部2800に指示する。本実施形態では、所定金額とは、押下された金額のボタンが示している金額である。尚、ユーザに金額を指定させるのではなく、予め決めた金額を所定金額としてもよい。
依頼を受けた金額預かり処理部2800は、所定金額を引き出すよう指示する引出コマンドを生成し、生成した引出コマンドをICカード1000に送信するよう送受信部2200に依頼する。
依頼を受けた送受信部2200は、引出コマンドをICカード1000に送信する(ステップS220)。
ここで、預かり金入力画面2410の金額のボタンを押下したユーザは、ICカードリーダライタ20hにICカード1000をタッチさせる。
ICカード1000の送受信部1200は、送受信部2200から送信されている信号を受信し、受信した引出コマンドを制御部1100に渡す(ステップS100)。
引出コマンドを受け取った制御部1100は、所定金額を引き出すよう引出処理部1300に依頼する。
依頼を受けた引出処理部1300は、金額記憶部1500から所定金額を引き出す(ステップS110:Yes、ステップS120)。この際、金額記憶部1500に記憶されている金額が所定金額より少ない場合は、記憶されている金額の全額を引き出す(ステップS110:No、ステップS130)。
引出処理部1300は、引き出した金額を制御部1100に通知する。
通知を受けた制御部1100は、金額を引き出した旨と引き出した金額とをMFP2000に送信するよう送受信部1200に依頼する。
依頼を受けた送受信部1200は、金額を引き出した旨と引き出した金額とを送信する(ステップS140)。
送受信部2200を介して、金額を引き出した旨と引き出した金額とを受信したMFP2000の金額預かり処理部2800は、制御部2100に預かった金額を通知する(ステップS230)。
通知を受けた制御部2100は、通知された金額、例えば「300円」を表示したコピー開始画面2411(図6参照)を表示するよう表示部2400に依頼する。
依頼を受けた表示部2400は、操作パネル20fにコピー開始画面2411を表示する。
また、コピー開始画面2411を表示するよう表示部2400に依頼した制御部2100は、通知された金額を釣銭算出部2700に通知する。
通知を受けた釣銭算出部2700は、通知された金額を内部の作業メモリに記憶する。
ここで、コピー開始画面2411を見たユーザは、コピーの種類、すなわち、白黒コピー又はカラーコピーのいずれかを指定してコピーを行うボタンを押下する。
コピーを行うボタンが押下されたことを検出した操作部2300は、その旨を制御部2100に通知する(ステップS240:コピー)。
コピーを行うボタンが押下されたことを通知された制御部2100は、印刷処理部2500にコピー処理を依頼する。この際、コピーの種類も通知する。
コピー処理を依頼された印刷処理部2500は、通知されたコピーの種類に応じてコピーを行う(ステップS250)。
コピーを行った印刷処理部2500は、コピーを1枚行う毎に、行ったコピーの種類を対価算出部2600に通知する。
コピーを行った旨を通知された対価算出部2600は、通知されたコピーの種類からコピー代を求める。具体的には、対価算出部2600は、コピーの種類と対応付けて記憶しているコピー代を参照してコピー代を求める。
対価算出部2600は、求めたコピー代を釣銭算出部2700に通知する。
コピー代を通知された釣銭算出部2700は、作業メモリに記憶している金額からコピー代を減算し、残金を記憶する(ステップS260)。
記憶した残金が、通知されたコピー代以上である場合は(ステップS270:有)、更に、ユーザの操作を待つ(ステップS240)。
コピーを行うボタンが押下されたことを操作部2300が検出した場合は(ステップS240:コピー)、ステップS250〜ステップS270の処理を行い、清算のボタンが押下された場合は、(ステップS240:清算)、清算の処理を行う。清算の処理については、<清算の処理>の項で説明する。
釣銭算出部2700が記憶した残金が、通知されたコピー代金より少ない場合、すなわち、次のコピー代を引き落とせない場合は(ステップS270:無)、その旨を制御部2100に通知する。
残金がコピー代より少ない旨の通知を受けた制御部2100は、預かり金追加画面2420(図7参照)を表示するよう表示部2400に依頼する。
依頼を受けた表示部2400は、操作パネル20fに預かり金追加画面2420を表示する。
ここで、預かり金追加画面2420を見たユーザは、コピーを続ける場合は金額ボタンを押下し、ICカード1000をICカードリーダライタ20hにタッチさせる。
金額のボタンが押下されたことを検出した操作部2300は、金額のボタンが押下された旨と押下されたボタンとを制御部2100に通知する(ステップS280:引出し)。
通知を受けた制御部2100は、所定金額をICカード1000から引き落とすよう金額預かり処理部2800に指示し、預かり金を引き出す処理であるステップS220〜ステップS230を行う。
また、追加の預かり金を引き出した旨の通知を金額預かり処理部2800から受けた制御部2100は、通知された金額、例えば「100円」を表示したコピー再開画面2412(図7参照)を表示するよう表示部2400に依頼する。
依頼を受けた表示部2400は、操作パネル20fにコピー再開画面2412を表示する。
一方、終了のボタンが押下されたことを検出した操作部2300は、その旨を制御部2100に通知する(ステップS280:終了)。
終了ボタンが押下された旨を通知された制御部2100は、清算の処理を開始する。
<清算の処理>
終了ボタンが押下された旨又は清算のボタンが押下された旨を操作部2300から通知された制御部2100は、署名処理部2900に清算処理を依頼する。
清算処理の依頼を受けた署名処理部2900は、釣銭算出部2700に残金を知らせてくれるよう要求する。
要求をうけた釣銭算出部2700は、作業メモリに記憶してある残金を読み出して署名処理部2900に渡す。
残金を受け取った署名処理部2900は、秘密鍵記憶部2910から秘密鍵を読み出す(ステップS300)。
秘密鍵を読み出した署名処理部2900は、釣銭算出部2700から受け取った残金からハッシュ値を算出する。次に、算出したハッシュ値を、読み出した秘密鍵で暗号化する。
署名処理部2900は、取得した残金を釣銭1611として設定し、暗号化したハッシュ値を暗号化ハッシュ値1612として設定した署名釣銭1610を生成する(ステップS305)。
署名釣銭1610を生成した署名処理部2900は、署名釣銭1610を生成した旨を制御部2100に通知する。この際、釣銭1611として設定した残金も制御部2100に通知する。
通知を受けた制御部2100は、残金を示した精算画面2430を表示するよう表示部2400に依頼する。この際、残金を表示部2400に渡す。
依頼を受けた表示部2400は、残金、例えば、「20円」を表示した精算画面2430を操作パネル20fに表示する(ステップS310)。
署名釣銭1610を生成した旨を制御部2100に通知した署名処理部2900は、生成した署名釣銭1610と現在の日時とを含んだ書込コマンドを生成し、送受信部2200に送信を依頼する。現在の日時は、MFP2000が備えているタイマから署名処理部2900が取得する。
依頼を受けた送受信部2200は、書込コマンドをICカード1000に送信する(ステップS320)。
ここで、精算画面2430を見たユーザは、ICカード1000をICカードリーダライタ20hにタッチさせる。
ICカード1000の送受信部1200は、送受信部2200から送信されている信号を受信し、受信した書込コマンドを制御部1100に渡す。
書込コマンドを受け取った制御部1100は、受信した書込コマンドに含まれる署名釣銭1610を渡して釣銭読書き部1400に書込みを依頼する。
依頼を受けた釣銭読書き部1400は、釣銭記憶部1600に署名釣銭1610及び日時を書込む(ステップS150)。
釣銭記憶部1600に署名釣銭1610及び日時を書き込んだ釣銭読書き部1400は、書き込んだ旨を制御部1100通知する。
通知を受けた制御部1100は、書き込みが終了した旨を、送受信部1200を介して、MFP2000に通知する。
送受信部2200を介して、通知を受けたMFP2000の制御部2100は、残金を示したコピー終了画面2431を表示するよう表示部2400に依頼する。
依頼された表示部2400は、残金を示したコピー終了画面2431を操作パネル20fに表示する。
<換金処理>
図11は、認証装置3000においてICカード1000に記録されている釣銭の換金処理を示すフローチャートである。
ユーザは、ICカードに記録されている釣銭を換金したい旨を、レジ30(図1参照)で店員に伝える。
店員、すなわち、認証装置3000の操作者は、認証装置3000において、ICカードを用いた処理を行うための操作を行う。例えば、キーボードの特定のボタンを押下する。
特定のボタンが押下された操作を検出した認証装置3000の操作部3300は、その旨を制御部3100に通知する(ステップS400)。
特定のボタンが押下された旨の通知を受けた制御部3100は、初期画面3410(図9参照)の表示を表示部3400に依頼する。
依頼を受けた表示部3400は、ディスプレイに初期画面3410を表示する(ステップS410)。
ここで、操作者は、「釣銭の引き出し」ボタンを押下し、ユーザにICカード1000をICカードリーダのスロットに挿入するよう依頼する。ユーザは、ICカード1000を認証装置3000に備えられているICカードリーダライタのスロットに挿入する。
ICカード1000が挿入されたことを検出した送受信部3200は、その旨を制御部3100に通知する。
通知を受けた制御部3100は、釣銭データ、すなわち、署名釣銭1610を1つ読み出すための釣銭データ読出コマンドを生成し、送受信部3200を介して、ICカード1000に送信する。
送受信部1200を介して、釣銭データ読出コマンドを受信した制御部1100は、釣銭読書き部1400に署名釣銭1610を記録された時間が古いほうから1つ読み出すように依頼する。
依頼を受けた釣銭読書き部1400は、釣銭記憶部1600から記録された時間が最も古い署名釣銭1610を読み出し、読み出した署名釣銭1610を制御部1100に渡す。また、釣銭記憶部1600に署名釣銭1610が記憶されていない場合又は読み出すべき署名釣銭1610が残っていない場合は、釣銭データが終了した旨を制御部1100に渡す。
署名釣銭1610を受け取った制御部1100は、受け取った署名釣銭1610又は釣銭データが無い旨を、送受信部1200を介して認証装置3000に送信する(ステップS160)。
送受信部3200を介して、署名釣銭1610を受信した制御部3100は(ステップS420、ステップS430:Yes)、受信した署名釣銭1610を署名判定部3500に渡して判定を依頼する。
判定を依頼された署名判定部3500は、公開鍵記憶部3510から公開鍵を1つ読み出す。また、公開鍵記憶部3510に読み出すべき公開鍵が残っていない場合は、公開鍵が無い旨を制御部1100に渡す。
公開鍵を読み出した署名判定部3500は(ステップS450:Yes)、制御部3100から渡された署名釣銭1610の釣銭1611から、予め決められているハッシュ関数を用いてハッシュ値、すなわち、「釣銭1611から求めたハッシュ値」を求める。次に、暗号化ハッシュ値1612を公開鍵で復号してハッシュ値、すなわち、「暗号化ハッシュ値1612から求めたハッシュ値」を求める(ステップS460)。
「暗号化ハッシュ値1612から求めたハッシュ値」と「釣銭1611から求めたハッシュ値」とが異なる場合は(ステップS470:異なる)、次に読み出す順番の公開鍵を読み出し、ステップS440からの処理を行う。
「暗号化ハッシュ値1612から求めたハッシュ値」と「釣銭1611から求めたハッシュ値」とが同じである場合は(ステップS470:同じ)、署名が正当である旨を制御部3100に通知する。
署名が正当である旨の通知を受けた制御部3100は、署名釣銭1610の釣銭1611に記載されている金額を、作業メモリに記憶する。この際、署名が正当であると判断された署名釣銭1610が複数ある場合は、それらの金額を加算して記憶しておく。尚、作業メモリに記憶される金額の初期値は0(ゼロ)である。
作業メモリに金額を記憶させた制御部3100は、正当であると判断された署名釣銭1610を削除する削除コマンドを、送受信部3200を介して、ICカード1000に送信する(ステップS480)。
送受信部1200を介して、削除コマンドを受信した制御部1100は、直前に読み出した署名釣銭1610を削除するよう釣銭読書き部1400に依頼する。
依頼を受けた釣銭読書き部1400は、直前に読み出した署名釣銭1610を釣銭記憶部1600から削除する(ステップS170)。
署名釣銭1610を削除するコマンドをICカード1000に送信した制御部3100は、次の署名釣銭1610を読み出す釣銭データ読出コマンドをICカード1000に送信し、ステップS420から処理を行う。
ステップS450において、公開鍵がない旨を受信した制御部3100は(ステップS450:No)、次の署名釣銭1610を読み出す釣銭データ読出コマンドをICカード1000に送信し、ステップS420から処理を行う。
ステップS430において、読み出していない署名釣銭1610は無い旨を受信した制御部3100は(ステップS430:No)、作業メモリに記憶してある金額を渡して、換金画面3411の表示を表示部3400に依頼する。
依頼を受けた表示部3400は、渡された金額が釣銭として表示された換金画面3411をディスプレイに表示する。
ディスプレイに表示された換金画面3411を見たユーザは、現金で受け取るか又はICカード1000に入金するかを操作者に指示する。操作者は、ユーザが指示した処理を行うボタンを押下する。
ユーザの指示が現金で受け取る場合、操作者は「現金」ボタンを押下し、現金をユーザに渡す。
「現金」ボタンの押下を検出した送受信部3200は、その旨を制御部3100に通知する。
通知を受けた制御部3100は、送受信部3200にICカード1000を排出するよう依頼する。依頼を受けた送受信部3200はICカード1000を排出する(ステップS490)。
一方、ユーザの指示がICカード1000に入金する場合、操作者は「ICカードにチャージ」ボタンを押下する。
「ICカードにチャージ」ボタンの押下を検出した送受信部3200は、その旨を制御部3100に通知する。
通知を受けた制御部3100は、作業メモリに記憶されている金額を読み出し、読み出した金額を指定したチャージコマンドを生成し、送受信部3200を介して、ICカード1000に送信する。
送受信部1200を介して、チャージコマンドを受信した制御部1100は、コマンドで指定された金額を指示して入金処理部1350に入金を依頼する。
依頼を受けた入金処理部1350は、金額記憶部1500に指定された金額を入金する。入金を行った入金処理部1350は、入金が完了した旨を制御部1100に渡す。制御部1100は、送受信部1200を介して、入金が完了した旨を認証装置3000に送信する。
送受信部3200を介して、入金が完了した旨を受信した制御部3100は、入金が完了した旨のメッセージの表示を表示部3400に依頼する。
依頼を受けた表示部3400は、入金が完了した旨のメッセージをディスプレイに表示する。
表示部3400にメッセージの表示を依頼した制御部3400は、送受信部3200にICカード1000を排出するよう依頼する。依頼を受けた送受信部3200はICカード1000を排出する(ステップS490)。
<補足>
以上、本発明の実施形態について説明したが、本発明は上記形態に限らず、以下のようにしてもよい。
(1)実施形態では、非接触型ICカードを用いた決済システムを説明したが、非接触型ICカード以外のICカードであってもよい。
例えば、接触電極を備えたICカードを用いてもよい。このような外部端子付きICカードのICカードリーダは、スロットに挿入されたICカードの接触電極とICカードリーダの接触端子とを直接接続させて、ICカードと通信を行う。従って、コピー前に預かり金を引き出したらICカードリーダから排出してユーザに返し、釣銭を書込む際に、スロットにICカードを挿入することをユーザに要求する。
また、外部端子付きICカードの他に、いわゆる磁気ストライプカード等であってもよい。
また、実施形態のICカードは、通信するための電源を内蔵していないが、内蔵するものであってもよい。
また、実施形態のICカードは、磁界を利用してICカードリーダと通信を行うが、赤外線等を利用して無線で通信を行うものであればよく、いわゆる外部端子なしのICカードであればよい。
また、カードの形状である必要はない。実施形態のICカードと同様の機能が、携帯電話機等に搭載されていてもよい。
また、実施形態では、スキャナで読み込んだ画像をプリント(コピー)する例を説明しているが、メモリカードやネットワーク上の媒体等に記憶されたデータをプリントしてもよい。また、プリントサービス以外にも、スキャンした画像をファックスしたりメール送信等を行ってもよい。
(2)決済システムは、図3等の各構成要素の全部又は一部を、1チップ又は複数チップの集積回路で実現してもよい。
(3)決済システムは、図3等の各構成要素の全部又は一部を、コンピュータのプログラムで実現してもよいし、その他どのような形態で実施してもよい。
コンピュータプログラムの場合、メモリカード、CD−ROMなどいかなる記録媒体に書き込まれたものをコンピュータに読み込ませて実行させる形にしてもよいし、ネットワークを経由してプログラムをダウンロードして実行させる形にしてもよい。