JP2004240648A - 識別情報発行システム及び方法、識別情報認証システム及び方法、並びにプログラム - Google Patents

識別情報発行システム及び方法、識別情報認証システム及び方法、並びにプログラム Download PDF

Info

Publication number
JP2004240648A
JP2004240648A JP2003028338A JP2003028338A JP2004240648A JP 2004240648 A JP2004240648 A JP 2004240648A JP 2003028338 A JP2003028338 A JP 2003028338A JP 2003028338 A JP2003028338 A JP 2003028338A JP 2004240648 A JP2004240648 A JP 2004240648A
Authority
JP
Japan
Prior art keywords
identification information
user
numerical value
array
information
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
JP2003028338A
Other languages
English (en)
Inventor
Taro Ugawa
太郎 鵜川
Satoshi Furumizo
聡 古溝
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.)
Code com Inc
Original Assignee
Code com Inc
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 Code com Inc filed Critical Code com Inc
Priority to JP2003028338A priority Critical patent/JP2004240648A/ja
Publication of JP2004240648A publication Critical patent/JP2004240648A/ja
Pending legal-status Critical Current

Links

Images

Abstract

【課題】識別情報の認証処理の高速化とセキュリティの向上とを同時に達成すると共に、コンピュータ資源を有効に利用する。
【解決手段】会員登録要求があると、ランダムにバーコード100を生成し、このパターンを数値化した数値Xを求め、これを除数A、Bで除算した剰余a、bを求める。配列の要素D(0,a)からつながれたリストの各要素と配列の要素D(1,b)からつながれたリストの各要素に、同一の会員IDが登録されていなければ、それぞれのリストの要素として会員登録要求した会員の会員IDを追加する。そして、バーコード100を要求元に送信した後、破棄する。会員に送信されたバーコード100が読み取られると、同様にして剰余a、bが求められ、配列の要素D(0,a)からつながれたリストの各要素と配列の要素D(1,b)からつながれたリストの各要素に、同一の会員IDが登録されていれば、ポイントの蓄積/使用が可能となる。
【選択図】 図4

Description

【0001】
【発明の属する技術分野】
本発明は、識別情報の発行及び認証に関するものである。
【0002】
【従来の技術】
近年、携帯電話技術は、急速に進歩しており、Web接続機能を有するものが一般的となり、また、表示装置の解像度も高くなっている。このような携帯電話技術の進歩に伴って、特定のサービスを利用するための会員証などを携帯電話機上に表示されるバーコードによって構成し、Web接続サービスを利用して配信するものが登場している。
【0003】
従来では、サーバ装置は、バーコードを発行して携帯電話機に配信すると共に、そのバーコードを内部のデータベースに保存するものとしていた。携帯電話機に表示されたバーコードがバーコードリーダによって読み取られて送られてくると、サーバ装置は、送られてきたバーコードを保存しておいたバーコードと照合することによって、そのバーコードが正当なものであることを認証するものとしていた(例えば、特許文献1参照)。
【0004】
【特許文献1】
特許第3207192号公報
【0005】
【発明が解決しようとする課題】
しかしながら、特許文献1の技術では、ユーザに発行された認証情報としてのバーコードは、少なくともそのバーコードを用いて認証を行うことが不要となるまで、サーバ装置内に継続的に置かれることとなる。すると、サーバ装置がハッキングされることによって、認証情報であるバーコードが漏洩するという危険が非常に大きかった。
【0006】
認証情報としてのバーコードの漏洩は、サーバ装置内においてバーコードを暗号化して保存しておくことによって防止を図ることができる。しかし、バーコードを暗号化して保存しておくことにより、認証を行う際に暗号化したバーコードの復号化が必要となり、認証に要する処理が増大してしまう。
【0007】
暗号強度を低くすれば、認証に要する処理の増大は抑えられるが、暗号の解読によってバーコードが漏洩する危険は高くなる。逆に暗号強度を高くすれば、暗号の解読が困難であるためバーコードが漏洩する危険は低く抑えられるが、認証の際におけるバーコードの復号化が非常に複雑なものとなり、認証に要する処理量が大きくなってしまう。このように、特許文献1の技術では、認証処理の高速化とセキュリティの向上とを同時に達成することができなかった。
【0008】
特に、バーコードの認証を行うのが短期間に集中するような場合には、その集中したときでもシステムダウンが生じないよう高速処理が可能な資源を有する高性能のサーバ装置を用意しておかなければならない。バーコードの認証を行うことがあまりない期間では、その性能は全く必要がなく、高速処理が可能なコンピュータ資源に大きな無駄が生じてしまう。
【0009】
さらに、特許文献1の技術では、そもそもバーコードをサーバ装置内に保存しておかなければならないので、発行したバーコードを全て保存するだけの記憶容量が必要となる。多くのバーコードを発行し、それを全て管理するとなると、バーコードのパターン自体も複雑なものとする必要がある。バーコードのパターンが複雑になれば、バーコード1つ当たりに要する記憶容量も大きくなる。従って、特許文献1の技術では、多くのバーコードを発行して管理しようとした場合、必要となる記憶容量も爆発的に増えていくこととなる。
【0010】
本発明は、識別情報の発行及び認証において、認証処理の高速化とセキュリティの向上とを同時に達成すると共に、コンピュータ資源を有効に利用することができる識別情報発行システム等を提供することを目的とする。
【0011】
【課題を解決するための手段】
上記目的を達成するため、本発明の第1の観点にかかる識別情報発行システムは、
認証を受けるべき者として登録されるユーザに固有の識別情報を生成する識別情報生成手段と、
前記識別情報生成手段が生成した識別情報に基づいて、該生成した識別情報と1対1で対応付けられた数値組であって、複数の数値からなる数値組を生成する数値組生成手段と、
前記数値組生成手段が生成すべき数値組に含まれる数値の1つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を記憶した配列記憶手段と、
前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別する登録判別手段と、
前記登録判別手段により同一のユーザを示す情報が登録されていないと判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報を登録する登録手段と、
前記登録手段により、配列の要素に関連づけてユーザを示す情報が登録された後に、前記識別情報生成手段が生成した識別情報を、対応するユーザに送信する識別情報送信手段と
を備えることを特徴とする。
【0012】
上記識別情報発行システムは、
前記識別情報送信手段により前記識別情報生成手段が生成した識別情報が送信された後、該識別情報を破棄する識別情報破棄手段をさらに備えるものとすることができる。
【0013】
上記識別情報発行システムでは、識別情報生成手段が生成した識別情報に基づいて数値組が求められ、数値組に含まれる複数の数値に対応した配列の要素に関連づけてユーザを示す情報が登録される。このように識別情報に応じてユーザを示す情報を登録する場所を異ならせることにより、後述するように識別情報の認証を行う際に、識別情報同士を照合する必要がなくなる。
【0014】
このため、識別情報生成手段が生成した識別情報が識別情報送信手段によりユーザに送信された後は、上記識別情報発行システム内に識別情報そのものを残しておく必要がなく、識別情報破棄手段によって破棄してしまってもよい。ここで、内部に識別情報そのものが残っていないので、仮にハッカーに侵入されても各ユーザの識別情報が盗み出されることがなく、高度のセキュリティを達成することができる。
【0015】
また、識別情報同士を照合せずに、識別情報とユーザとの対応付けを高速に行えるため、後述するような認証の処理が集中するときに備えて必要以上に高性能なシステムを用意する必要がなく、資源の有効利用ができる。さらに、配列及びそれに関連づけてユーザを示す情報を登録するための記憶容量は必要となるが、識別情報そのもののための記憶容量は必要ないので、特に識別情報の情報量が大きいときには、システムに必要な記憶容量も小さくすることができ、資源を有効利用できる。
【0016】
なお、数値組生成手段が数値組を生成するために用いる識別情報と、識別情報送信手段がユーザに送信する識別情報とは、完全に一致したものとは限らない。例えば、識別情報生成手段は、まず特定の数値を生成し、この数値から数値組生成手段が数値組を生成するものとし、識別情報送信手段は、前記特定の数値から双方向で一義的に定められる特定の情報を送信するものとしてもよい。前記特定の数値と前記特定の情報とは、ここでは、実質的な内容としては同じ識別情報であると見ることができる。
【0017】
上記識別情報発行システムにおいて、
前記数値組生成手段は、例えば、
前記識別情報を所定の方法により数値化し、該識別情報と1対1で対応した数値を生成する数値生成手段と、
前記数値生成手段が生成した識別情報に対応した数値を、互いに異なる複数の除数で除算した剰余をそれぞれ算出する剰余算出手段とを備えるものとすることができ、この場合、
前記複数の除数の最小公倍数は、前記識別情報に対応した数値がとり得る値の最大値と最小値との差よりも大きいことが条件となる。
【0018】
上記識別情報発行システムにおいて、
前記数値組生成手段は、前記識別情報から前記数値組に含まれる各数値を生成するまでに用いられるいずれか1以上のデータを、所定の暗号鍵を用いて暗号化する手段を含むものとすることができる。
【0019】
この場合において、
前記所定の暗号鍵は、復号鍵とは非対称の暗号鍵であることが好ましい。
【0020】
上記のように識別情報生成手段が生成した識別情報から数値組を生成すると、異なる識別情報から生成された数値組では、数値組に含まれる全ての数値が一致することはなくなる。これにより、数値組から識別情報を一義的に定めることができる。数値組の生成の際に暗号化を行うことで、上記識別情報発行システムからユーザを示す情報と配列との関連づけに関する情報を盗み出し、これを解析しても、元の識別情報を復元できない。特に暗号鍵として非対称鍵を適用すると、どこにも復号鍵がないので情報を盗み出して復号を行うことができず、元の識別情報の復元は、どのような暗号技術に比べても遜色がないか、それ以上に困難なものとなる。
【0021】
上記識別情報発行システムにおいて、
前記識別情報は、複数の種類のものがあり、同一のユーザが複数の種類を使い分けることが可能なものであってもよい。この場合、
前記登録判別手段は、ユーザを示す情報と識別情報の種類との組み合わせとして同一の組み合わせが登録されているかどうかを判別し、
前記登録手段は、前記登録判別手段によりユーザを示す情報と識別情報の組み合わせとして同一の組み合わせが登録されていると判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報と識別情報の種類とを組み合わせて登録するものとすることができる。
【0022】
さらに、配列の要素に関連づけて、ユーザを示す情報と識別情報の種別とを組み合わせて登録するため、後述するように1人のユーザが複数種類の識別情報を使い分ける場合において、識別情報の種類までを認証できるようになる。
【0023】
上記識別情報発行システムにおいて、
前記配列記憶手段に記憶される配列は、二次元配列であってもよい。ここで、
該二次元配列の1の次元の添字は、前記数値組が有する数値の個数に対応し、
該二次元配列の他の1の次元の添字は、前記1の次元の添字の値に対応した前記数値組の数値に対応したものとすることができる。
【0024】
上記識別情報発行システムにおいて、
前記配列記憶手段に記憶される配列は、前記数値組が有する数値の個数だけ用意された一次元配列であってもよい。ここで、
該一次元配列の添字は、前記数値組の数値に対応したものとすることができる。
【0025】
上記識別情報発行システムは、
ユーザから提示された識別情報に基づいて、前記数値組生成手段が数値組を生成するのと同様の方法により生成された数値組に含まれる各数値に対応した前記配列の要素にそれぞれ関連づけて登録されているユーザを示す情報を抽出するユーザ情報抽出手段と、
前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段と、
前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段とをさらに備えるものとすることができる。
【0026】
ここで行う認証の処理は、配列の要素に関連づけて登録されているユーザを示す情報の抽出と、その比較だけでよいので、識別情報同士を照合する場合に比べて高速な処理が行える。しかも、発行した識別情報の数が増加しても、処理量の増加はそれよりもずっと少なく、認証処理の処理量があまり増大しない。
【0027】
上記目的を達成するため、本発明の第2の観点にかかる識別情報認証システムは、
認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録した配列を記憶した配列記憶手段と、
ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するユーザ情報抽出手段と、
前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段と、
前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段と
を備えることを特徴とする。
【0028】
上記識別情報認証システムにおいて、
前記登録されたユーザに発行された識別情報は、前記配列の要素に関連づけて当該ユーザを示す情報を登録し、当該ユーザに発行した後に破棄されていてもよい。
【0029】
上記識別情報認証システムでは、ユーザ情報抽出手段が配列の要素に関連づけて登録されているユーザを示す情報を抽出し、ユーザ情報判定手段が同一のユーザを示す情報が抽出されたかどうかを判定すれば、識別情報の認証を行える。このため、識別情報同士を照合する場合に比べて高速な処理が行える。しかも、発行した識別情報の数が増加しても、処理量の増加はそれよりもずっと少なく、認証処理の処理量があまり増大しない。
【0030】
さらに、識別情報同士の照合によって認証を行うのではないので、識別情報そのものを、上記識別情報認証システム内に残しておく必要がなく、配列の要素に関連づけてユーザを示す情報の登録が終了し、識別情報をユーザに発行した後には破棄されている。このように内部に識別情報そのものが残っていないので、仮にハッカーに侵入されても各ユーザの識別情報が盗み出されることがなく、高度のセキュリティを達成することができる。また、配列及びそれに関連づけてユーザを示す情報を登録するための記憶容量は必要となるが、識別情報そのもののための記憶容量は必要ないので、特に識別情報の情報量が大きいときには、システムに必要な記憶容量も小さくすることができる。
【0031】
上記目的を達成するため、本発明の第3の観点にかかる識別情報発行方法は、
認証を受けるべき者として登録されるユーザに固有の識別情報を生成するステップと、
前記生成した識別情報に基づいて、該生成した識別情報と1対1で対応付けられた数値組であって、複数の数値からなる数値組を生成するステップと、
前記生成すべき数値組に含まれる数値の1つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を予め準備するステップと、
前記生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別するステップと、
同一のユーザを示す情報が登録されていないと判別したときに、前記生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記生成した識別情報に対応したユーザを示す情報を登録するステップと、
配列の要素に関連づけてユーザを示す情報が登録された後に、前記生成した識別情報を、対応するユーザに送信するステップと
を含むことを特徴とする。
【0032】
上記識別情報発行方法は、
前記生成した識別情報が送信された後、該識別情報を破棄するステップをさらに含むものとすることができる。
【0033】
上記目的を達成するため、本発明の第4の観点にかかる識別情報認証方法は、
認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録する配列を予め準備するステップと、
ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するステップと、
前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するステップと、
同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証するステップと
を含むことを特徴とする。
【0034】
上記目的を達成するため、本発明の第5の観点にかかるプログラムは、
認証を受けるべき者として登録されるユーザに固有の識別情報を生成する識別情報生成手段、
前記識別情報生成手段が生成した識別情報に基づいて、該生成した識別情報と1対1で対応付けられた数値組であって、複数の数値からなる数値組を生成する数値組生成手段、
前記数値組生成手段が生成すべき数値組に含まれる数値の1つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を記憶した配列記憶手段、
前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別する登録判別手段、
前記登録判別手段により同一のユーザを示す情報が登録されていないと判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報を登録する登録手段、及び、
前記登録手段により、配列の要素に関連づけてユーザを示す情報が登録された後に、前記識別情報生成手段が生成した識別情報を、対応するユーザに送信する識別情報送信手段
としてコンピュータ装置を機能させることを特徴とする。
【0035】
上記第5の観点にかかるプログラムは、
前記識別情報送信手段により前記識別情報生成手段が生成した識別情報が送信された後、該識別情報を破棄する識別情報破棄手段としてさらに前記コンピュータ装置を機能させるものとすることができる。
【0036】
上記目的を達成するため、本発明の第6の観点にかかるプログラムは、
認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録した配列を記憶した配列記憶手段、
ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するユーザ情報抽出手段、
前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段、及び、
前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段
としてコンピュータ装置を機能させることを特徴とする。
【0037】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【0038】
図1は、この実施の形態に適用されるポイントカードシステムの構成を示すブロック図である。図示するように、このポイントカードシステムは、サーバ装置1と、複数の店舗端末装置2(2−1〜2−m)と、複数の携帯電話機3(3−1〜3−n)とから構成されている。店舗端末装置2及び携帯電話機3は、それぞれインターネット4を介してサーバ装置1に接続される。
【0039】
サーバ装置1は、このシステムにおけるサービスの提供者(以下、提供者)の利用に供し、サービスを利用する会員がポイントを蓄積し、加盟店において商品(サービスを含む)と交換するために必要な処理を行うコンピュータ装置である。サーバ装置1は、会員の登録、後述するポイントカードとして使用される二次元バーコードの発行、会員が蓄積したポイントの管理を行う。サーバ装置1は、加盟店の登録や会員が加盟店で利用したポイントの決済なども行う。
【0040】
店舗端末装置2は、パーソナルコンピュータなどから構成されており、サービスの加盟店の利用に供し、会員が購入した商品に応じたポイントを付与し、会員が蓄積したポイントを使用して商品に交換するために必要な処理を行う。携帯電話機3は、このポイントカードシステムを利用してポイントの蓄積/使用を行う者として登録した会員の利用に供し、ポイントカードとして使用される二次元バーコードや、会員が蓄積したポイントなどを表示する。
【0041】
図2は、図1のサーバ装置1の構成を示すブロック図である。図示するように、サーバ装置1は、CPU(Central Processing Unit)11と、主記憶装置12と、通信装置13と、補助記憶装置14とを備えている。補助記憶装置14には、プログラムファイル141、会員データベース142、配列記憶部143、リスト記憶部144、及び店舗データベース145が設けられている。
【0042】
CPU11は、主記憶装置12に転送されたプログラムを実行し、後述するように、ポイントカードとして使用される二次元バーコードの発行、再発行、認証、ポイントの更新などの種々の処理を行う。二次元バーコードの構成については後述する。主記憶装置12は、CPU11の主記憶領域を提供するもので、プログラムファイル141のプログラムが転送され、また、CPU11の作業領域として用いられる。通信装置13は、インターネット4を介して店舗端末装置2及び携帯電話機3と情報を送受信する。
【0043】
補助記憶装置14は、CPU11の補助記憶領域を提供するもので、固定ディスク装置などによって構成される。プログラムファイル141は、後述するフローチャートに示すプログラムを含むファイルである。会員データベース142は、このポイントカードシステムを利用してポイントの蓄積/使用を可能とした会員に関する情報を登録したデータベースである。
【0044】
配列記憶部143、リスト記憶部144は、それぞれ、個々の二次元バーコードと会員とを対応付けるための配列を記憶する。店舗データベース145は、店舗端末装置2が置かれる加盟店に関する情報を登録したデータベースである。二次元バーコードと、配列記憶部143に記憶される配列、リスト記憶部144に記憶されるリスト、並びに会員データベース142の関係については後述する。
【0045】
図3は、このポイントカードシステムにおいてポイントカードとして適用される二次元バーコードの例を示す図である。図では、携帯電話機3の表示装置に表示された状態を示している。図示するように、この二次元バーコード100は、二階調の二次元バーコードであり、その四隅には方向チェックマーク101〜104が設けられている。方向チェックマーク101〜104は、バーコードの方向を示すもので、1つだけ明表示されるチェックマーク104がバーコードの右下であることを示している。
【0046】
チェックマーク101〜104以外のバーコードパターン部105については、そのパターンを任意に選ぶことができるが、選ばれたパターンは、曖昧性がなく一義的に特定される。もっとも、バーコードパターン部105に特定の情報を含ませるため、一部の特定の場所が特定のパターンを有するものとなっていても構わない。二次元バーコード100のパターンは、所定の方法により数値化することができ、パターンと数値とは1対1で対応する。なお、二次元バーコード100のパターンを数値化するプログラムは、サーバ装置1内に格納されているだけで、外部には公開されていない。
【0047】
図4は、二次元バーコード100と、配列記憶部143の配列及びリスト記憶部144のリストと、会員データベース142との関係を示す図である。図示するように、会員データベース142は、登録した会員毎に、会員ID151、会員情報152、会員が蓄積したポイント153を登録したデータベースとなっている。会員ID151は、各会員を一意に識別するための情報であり、配列記憶部143及びリスト記憶部144から参照される際のキーとして使用される。
【0048】
会員情報152は、会員の属性に関する情報であり、少なくともポイントカードとして使用される二次元バーコードを携帯電話機3に送信するためのアドレスを含んでいる。このアドレスは、後述するポイントカードの再発行の際に、会員を特定するためにも用いられる。ポイント153は、会員が加盟店で商品を購入した際にプラスされ、商品と交換することによってマイナスされる。
【0049】
配列記憶部143に記憶される配列は、二次元配列D(*,*)であり、一次元目の添字に入れられる値は、二次元バーコード100から生成される数値組に含まれる数値(すなわち、後述する剰余a、b)の個数に応じて0または1となっている。二次元目の添字に入れられる値は、一次元目の添字の値が0のときは剰余aと、一次元目の添字の値が1のときは剰余bとなる。
【0050】
配列記憶部143の配列の各要素に対応して必要に応じてリストの要素がつながれ、配列の各要素にはリストの先頭の要素を示すポインタが格納される。リストの各要素は、リスト記憶部144に記憶されるものである。リストの各要素には、会員IDを登録することとなる。
【0051】
ポイントカードとして使用される二次元バーコード100が発行されると、そのパターンに対応した整数値となるように数値化される。二次元バーコード100が数値化された数値Xは、除数A(整数値)と、除数B(整数値)とでそれぞれ除算され、剰余a、bが求められる。
【0052】
ここで、除数Aと除数Bとの最小公倍数は、数値Xがとりうる最大値Xmaxと最小値Xminの差よりも大きいという関係がある。この条件を満たす限り、数値Xが異なれば、剰余aと剰余bとの両方が一致するということはあり得ない。また、除数Aと除数Bとは、互いに素であって、なるべく大きさが近い(できれば、その差が1または2以内)ことが好ましい。従って、異なる数値Xに対しては、剰余aと剰余bの組み合わせが全て異なっており、剰余aと剰余bの組み合わせは、二次元バーコード100のパターンと1対1で対応するものとなっている。
【0053】
二次元バーコード100に対応する会員IDは、配列の要素D(0,a)からのリストに要素としてつながれ、また、配列の要素D(1,b)からのリストの要素としてつながれる。同じ配列の要素に対応して複数の会員IDを格納しておく必要があるときは、リストの要素がポインタでつながれる。リストの各要素は、当該要素に対応した会員IDが不要となったときにリストから削除される。
【0054】
新たに二次元バーコード100を発行しようとする場合には、まずランダムなパターンが生成され、そのパターンから剰余a、bが求められる。配列の要素D(0,a)からのリストの要素として会員IDと、配列の要素D(1,b)からのリストの要素として含まれる会員IDとに、同じ会員IDがあるかどうかが調べられる。同じ会員IDがあれば、その二次元バーコード100は発行済みのものであることが分かる。この場合は、別のパターンの二次元バーコード100が生成される。
【0055】
また、会員が加盟店で商品を購入し、二次元バーコード100をポイントカードとしてポイントを蓄積しようとするとき、或いは蓄積したポイントを使用して加盟店で商品と交換しようとするときは、後述するように店舗端末装置2において二次元バーコード100が読みとられ、サーバ装置1に送られてくる。店舗端末装置2から送られてきた二次元バーコード100からも同様にして剰余a、bが求められる。
【0056】
ここでも、配列の要素D(0,a)からのリストの要素として会員IDと、配列の要素D(1,b)からのリストの要素として含まれる会員IDとに、同じ会員IDがあるかどうかが調べられる。同じ会員IDがあれば、その二次元バーコード100が認証されて、ポイントの蓄積/使用が可能となり、当該会員IDに対応づけて会員データベース142に登録されているポイントがプラス/マイナスされる。同じ会員IDがなければ、その二次元バーコード100は認証されず、ポイントの蓄積/使用が拒否される。
【0057】
図5は、図1の携帯電話機3の構成を示すブロック図である。図示するように、携帯電話機3は、CPU31と、ROM(Read Only Memory)32と、RAM(Random Access Memory)33と、入力装置34と、表示装置35と、通信装置36とを備えている。携帯電話機3は、このほかにも通話を行うために必要な構成要素を備えているが、本発明とは直接関係がないため、図5において省略している。
【0058】
CPU31は、ROM32に記憶されたプログラムを実行し、サーバ装置1から受信した二次元バーコード100を管理する処理を行う。CPU31は、入力装置34からの入力に従って、二次元バーコード100を表示装置35に表示させる。ROM32は、CPU31の処理プログラムを記憶する。RAM33は、データの記憶領域として用いられるものであり、当該データの中には、二次元バーコード100の画像データも含まれる。
【0059】
入力装置34は、「1」〜「0」までの数字キー、「*」キー、「#」キーなどを含み、利用者の操作によって必要な情報をCPU31に入力する。表示装置35は、液晶表示装置などによって構成され、ポイントカードとして使用される二次元バーコード100の画像を含む種々の情報を表示する。通信装置36は、インターネット4を介して(実際には携帯電話網も介して)サーバ装置1と情報を送受信する。
【0060】
図6は、図1の店舗端末装置2の構成を示すブロック図である。図示するように、店舗端末装置2は、CPU21と、記憶装置(主記憶装置及び補助記憶装置を含む)22と、通信装置23と、バーコードリーダ24と、入力装置25と、表示装置26とを備えている。
【0061】
CPU21は、記憶装置22に記憶されたプログラムを実行し、携帯電話機3から読み取った二次元バーコード100に基づいてサーバ装置1から送られてくる通知に従って、商品を購入した会員にポイントを付与し、会員がポイントを使用して商品と交換するために必要な処理を行う。記憶装置22は、CPU21の処理プログラムを記憶すると共に、データの記憶領域として用いられる。通信装置23は、インターネット4を介してサーバ装置1と情報を送受信する。
【0062】
バーコードリーダ24は、携帯電話機3の表示装置35に表示されたポイントカードとして使用される二次元バーコード100の画像を読み取る。入力装置25は、会員に付与したポイントまたは会員が使用したポイントを入力する。表示装置26は、携帯電話機3から読み取った二次元バーコード100に基づいてサーバ装置1から送られてくる通知などを表示する。
【0063】
以下、この実施の形態に適用されるポイントカードシステムにおける処理について説明する。このポイントカードシステムを利用して、二次元バーコード100をポイントカードとして使用し、ポイントを蓄積/使用しようとする者は、予め会員登録を行う必要がある。会員登録により二次元バーコード100が発行され、これを携帯電話機3の表示装置35に表示させてポイントカードとして使用する。ポイントカードとしての二次元バーコード100は、再発行も可能である。各会員のポイントは、サーバ装置1において管理される。なお、サーバ装置1においては、会員が各店舗で蓄積/使用したポイントについて店舗間で決済を行うための処理も行っているが、この処理は本発明と関係がないので説明を省略する。
【0064】
本発明に関わる処理として、このポイントカードシステムで行われる処理は、
(1)会員登録処理
(2)再発行処理
(3)ポイント蓄積/交換処理
の3つに大きく分けられることとなる。以下、それぞれについて詳しく説明する。
【0065】
図7は、会員登録処理を示すフローチャートである。このポイントカードシステムに会員登録しようとする者は、まず、自己の携帯電話機3の入力装置34から、会員登録に必要な事項(少なくとも携帯電話機3のアドレスを含む)を入力する(ステップS101)。さらにこの者が入力装置34から会員登録要求を入力すると、ステップS101で入力した必要事項と共に会員登録要求が通信装置36からサーバ装置1に送信される(ステップS102)。その後、CPU31は、サーバ装置1からの情報の受信待ちとなる。
【0066】
サーバ装置1では、通信装置13が携帯電話機3から送られてきた会員登録要求を受信する(ステップS151)。この会員登録要求を受信すると、会員登録要求をした者に新たな会員IDを付与し、付与した会員IDと、会員登録要求と共に送られてきた必要事項(ユーザ情報)とを対応づけて会員データベース142に登録する。この時点で、当該会員のポイントは0として登録されるが、新規登録サービスとして数ポイントを登録してもよい(ステップS152)。
【0067】
次に、CPU11は、ランダムにパターンを決定して二次元バーコード100を生成する(ステップS153)。CPU11は、生成した二次元バーコード100が既に発行済みのもののパターンと同じであるかどうかをチェックする発行済みバーコードチェック処理を行う(ステップS154)。
【0068】
図8は、ステップS154の発行済みバーコードチェック処理を詳細に示すフローチャートである。発行済みバーコードチェック処理では、CPU11は、ステップS153で生成した二次元バーコード100のパターンに対応した数値Xを生成する(ステップS201)。さらに、CPU11は、数値Xを除数Aで除算して剰余aを求め、また、数値Xを除数Bで除算して剰余bを求める(ステップS202)。
【0069】
剰余a、bが求められると、CPU11は、配列の要素D(0,a)からつながるリストに要素として含まれる会員IDを全て抽出する(ステップS203)。また、配列の要素(1,b)からつながるリストに要素として含まれる会員IDを全て抽出する(ステップS204)。CPU11は、配列の要素D(0,a)からのリストから抽出された各会員IDと、配列の要素D(1,b)からのリストから抽出された各会員IDとを比較し、同じ会員IDが取り出されたかどうかを判定する(ステップS205)。
【0070】
同じ会員IDが取り出されれなかったならば、ステップS203で求めた剰余a、bと共に、ステップS153で生成した二次元バーコード100が未発行を示す情報を返却して(ステップS206)、発行済みバーコードチェック処理を終了し、図7の会員登録処理に復帰する。同じ会員IDが取り出されたならば、ステップS153で生成した二次元バーコード100が発行済みを示す情報を返却して(ステップS207)、発行済みバーコードチェック処理を終了し、図7の会員登録処理に復帰する。
【0071】
図7の会員登録処理に復帰すると、CPU11は、発行済みバーコードチェック処理において未発行が返却されたかどうかを判定する(ステップS155)。発行済みが返却されていた場合には、ステップS153の処理に戻り、別のパターンを有する二次元バーコード100を生成する。未発行が返却されていた場合には、CPU11は、配列の要素D(0,a)からのリストと、配列の要素D(1,b)からのリストに、それぞれステップS152で付与した会員IDをリストの要素としてつなげる(ステップS156)。
【0072】
CPU11は、会員登録要求と共に受信した必要事項に含まれる携帯電話機3のアドレスを送付先として、通信装置13から発行した二次元バーコード100の画像データを送信させる(ステップS157)。二次元バーコード100の画像データを携帯電話機3に送信した後、CPU11は、二次元バーコード100をサーバ装置1内に残さないように破棄する(ステップS158)。二次元バーコード100を送信し、これを破棄することにより、サーバ装置1の側における処理は終了となる。
【0073】
携帯電話機3では、通信装置36がステップS157で送信された二次元バーコード100を受信する(ステップS103)。CPU31は、受信した二次元バーコード100を表示装置35に表示させる(ステップS104)。これで、会員登録処理が終了する。なお、ここで受信した二次元バーコード100は、会員が入力装置34から所定の操作を行うことで、いつでも表示装置35に表示させることができる。
【0074】
図9は、二次元バーコードの再発行処理を示すフローチャートである。二次元バーコード100の再発行を受けようとする会員は、自己の携帯電話機3の入力装置34から、会員登録時の必要事項として入力した会員情報(少なくとも携帯電話機3のアドレス)を入力する(ステップS301)。会員が入力装置34から再発行要求を入力すると、ステップS301で入力した会員情報と共に再発行要求が通信装置36からサーバ装置1に送信される(ステップS302)。その後、CPU31は、サーバ装置1からの情報の受信待ちとなる。
【0075】
サーバ装置1では、通信装置13が携帯電話機3から送られてきた再発行要求を受信する(ステップS351)。この再発行要求を受信すると、CPU11は、再発行要求と共に送られてきた会員情報に従って会員データベース142をサーチし、該当する会員IDを抽出する(ステップS352)。CPU11は、ここで会員IDを抽出できたかどうかを判定する(ステップS353)。
【0076】
会員IDを抽出できた場合には、再発行要求に含まれる会員IDをリスト記憶部144に記憶されている全てのリストの各要素(すなわち、配列の全ての要素からつながるリストの各要素)からサーチする(ステップS354)。そして、サーチされた会員IDを対応するリストから削除する(ステップS355)。これにより、既に発行されていた再発行前の二次元バーコード100は使用不能となる。
【0077】
既に発行されていた二次元バーコード100を使用不能とした後、CPU11は、ランダムにパターンを決定して二次元バーコード100を新たに生成する(ステップS356)。CPU11は、生成した二次元バーコード100が既に発行済みのもののパターンと同じであるかどうかをチェックする発行済みバーコードチェック処理を行う(ステップS357)。発行済みバーコードチェック処理は、ステップS154のものと同じである。
【0078】
発行済みバーコードチェック処理を終了し、再発行処理に復帰すると、CPU11は、発行済みバーコードチェック処理において未発行が返却されたかどうかを判定する(ステップS358)発行済みが返却されていた場合には、ステップS356の処理に戻り、別のパターンを有する二次元バーコード100を生成する。未発行が返却されていた場合には、CPU11は、配列の要素D(0,a)からのリストと、配列の要素D(1,b)からのリストに、それぞれステップS152で付与した会員IDをリストの要素としてつなげる(ステップS359)。
【0079】
CPU11は、当該会員の会員情報に含まれる携帯電話機3のアドレスを送付先として、通信装置13から再発行した二次元バーコード100の画像データを送信させる(ステップS360)。二次元バーコード100の画像データを携帯電話機3に送信した後、CPU11は、ここでも二次元バーコード100をサーバ装置1内に残さないように破棄する(ステップS361)。再発行した二次元バーコード100を送信し、これを破棄することにより、サーバ装置1の側における処理は終了となる。
【0080】
また、ステップS353において会員データベース142から該当する会員IDが抽出されなかったと判定した場合には、CPU11は、再発行要求と共に受信した情報に含まれる携帯電話機3のアドレスを送付先として、通信装置13から再発行不可通知を送信させる(ステップS362)。再発行不可通知を送信した場合も、サーバ装置1の側における処理が終了となる。
【0081】
携帯電話機3では、通信装置36がステップS360で送信された二次元バーコード100またはステップS362で送信された再発行不可通知を受信する(ステップS303)。CPU31は、受信した二次元バーコード100または再発行不可通知を表示装置35に表示させる(ステップS304)。これで、再発行処理が終了する。ここで受信した二次元バーコード100も、ユーザが入力装置34から所定の操作を行うことで、いつでも表示装置35に表示させることができる。
【0082】
図10は、二次元バーコードをポイントカードとして使用して、ポイントを蓄積/使用する処理を示すフローチャートである。会員が加盟店で商品を購入し、その購入金額に応じたポイントを蓄積しようとする場合、或いは加盟店でポイントを使用して商品に交換しようとする場合、ポイントカードとしての二次元バーコード(ステップS103またはS303で受信したもの)を、自己の携帯電話機3の表示装置35に表示させる。そして、二次元バーコード100が表示された表示装置35を、店舗端末装置2のバーコードリーダ24に押し当てる。
【0083】
店舗端末装置2では、バーコードリーダ24が携帯電話機3の表示装置35に表示された二次元バーコード100を読み取り、これをCPU21に渡す(ステップS401)。CPU21は、読み取った二次元バーコード100を、通信装置23からサーバ装置1に送信させる(ステップS402)。その後、CPU21は、サーバ装置1からの情報の受信待ちとなる。
【0084】
サーバ装置1では、通信装置13が店舗端末装置2から送られてきた二次元バーコード100を受信する(ステップS451)。CPU11は、受信した二次元バーコード100がいずれかの会員に発行したもののパターンと同じであるかどうかをチェックする発行済みバーコードチェック処理を行う(ステップS452)。発行済みバーコードチェック処理は、ステップS154のものと同じである。
【0085】
発行済みバーコードチェック処理を終了し、ポイント蓄積/交換処理に復帰すると、CPU11は、発行済みバーコードチェック処理において未発行が返却されたかどうかを判定する(ステップS453)。未発行が返却されていた場合には、受信した二次元バーコード100に基づくポイントの蓄積/交換はできないので、CPU11は、通信装置13から店舗端末装置2に使用不可通知を送信させる(ステップS454)。これでサーバ装置1の側における処理が終了となる。
【0086】
一方、発行済みが返却されていた場合には、CPU11は、受信した二次元バーコード100に関連した会員IDに対応づけて会員データベース142に登録されている会員のポイントを読み出す(ステップS455)。CPU11は、読み出したポイントを通信装置13から店舗端末装置2に送信させる(ステップS456)。その後、CPU11は、店舗端末装置2からの情報の受信待ちとなる。
【0087】
サーバ装置1からの情報の受信待ちとなっていた店舗端末装置2では、通信装置23がステップS456で送信された会員のポイントまたはステップS454で送信された使用不可通知を受信する(ステップS403)。CPU21は、ここで受信したのがステップS456で送信された会員のポイントであるかどうかを判定する(ステップS404)。会員のポイントでなければ、使用不可通知を受信しているので、CPU21は、受信した使用不可通知を表示装置26に表示させる(ステップS405)。これでポイント蓄積/交換処理を終了する。
【0088】
会員のポイントであれば、CPU21は、当該受信した会員のポイントを表示装置26に表示させる(ステップS406)。次に、会員が商品を購入してポイントを蓄積しようとする場合には、ポイントを蓄積すべき旨とそのポイントを、ポイントを使用して商品に交換しようとする場合には、ポイントを使用すべき旨とそのポイントを、加盟店の店員が入力装置25から入力する。もっとも、使用可能なポイントは、蓄積されていたポイントの範囲に限られる(ステップS407)。CPU21は、ポイントを蓄積すべき旨または使用すべき旨の情報及びそのポイントを、通信装置23からサーバ装置1に送信させる(ステップS408)。これで店舗端末2の側における処理が終了となる。
【0089】
店舗端末装置2からの情報の受信待ちとなっていたサーバ装置1では、通信装置13がポイントを蓄積すべき旨または使用すべき旨の情報及びそのポイントを受信する(ステップS457)。CPU11は、これに基づいて、会員データベース142に登録されているポイントをプラスまたはマイナスして更新する(ステップS458)。
【0090】
CPU11は、更新した後の会員の残りポイントを、当該会員の携帯電話機3のアドレスを送信先として、通信装置13から送信させる(ステップS459)。CPU11は、さらにポイントを蓄積すべき旨または使用すべき旨の情報及びそのポイントを送ってきた店舗端末装置2に対応した加盟店について、ポイントの増減に関する情報を店舗データベース145に登録する(ステップS460)。これでサーバ装置1における処理が終了となる。
【0091】
ポイントの蓄積または交換を行った会員の携帯電話機3では、通信装置36がステップS459でサーバ装置1から送信された残りポイントを受信する(ステップS491)。CPU31は、受信した残りポイントを表示装置35に表示させる(ステップS492)。これでポイント蓄積/交換処理が全て終了となる。
【0092】
以上説明したように、この実施の形態にかかるポイントカードシステムでは、ポイントカードとして使用される二次元バーコード100を会員の携帯電話機3に送信するに当たって、サーバ装置1は、二次元バーコード100に対応した数値Xから剰余a、bを求め、配列の要素D(0,a)からのリストと、配列の要素D(1,b)からのリストとに、会員IDを要素として登録している。そして、二次元バーコード100を会員の携帯電話機3に送信している。
【0093】
一方、店舗端末装置2では、会員の携帯電話機3の表示装置35に表示された二次元バーコード100を読み取り、サーバ装置1に送信している。サーバ装置1では、受信した二次元バーコード100に対応した数値Xから剰余a、bを求め、配列の要素D(0,a)からのリストに含まれる各要素と、配列の要素D(1,b)からのリストに含まれる各要素とを参照して、ポイントカードとしての二次元バーコード100を認証している。すなわち、二次元バーコード100のパターンを照合することなく、二次元バーコード100の認証のための処理量が少なくてすむ。認証のための処理量が小さいため、二次元バーコード100の認証の処理が集中するときとそうでないときとのサーバ装置1の稼働率の差が小さく、コンピュータ資源を有効に利用することができる。
【0094】
二次元バーコード100のパターンに対応した数値Xを除算する除数A、Bの最小公倍数は、数値Xがとりうる最大値Xmaxと最小値Xminの差より大きいという関係がある。この関係を満たす限り、異なるパターンの二次元バーコード100では、剰余a、bの両方が一致することがない。配列の要素D(0,a)からのリストと配列の要素(1,b)からのリストとに同じ会員IDが要素としてつながれる二次元バーコード100のパターンは、1つだけということとなる。従って、個々の二次元バーコード100を一義的に特定することができる。
【0095】
このように配列の要素とリストの要素とを参照するだけで、二次元バーコード100を一義的に特定することができるので、発行した二次元バーコード100のパターンをサーバ装置1に残しておく必要がない。情報量の大きな二次元バーコード100のパターンを残さないでよいことから、サーバ装置1の記憶容量が小さくても済むことになる。多くの二次元バーコード100をポイントカードとして発行するようにしても、そのために必要な記憶容量が爆発的に増えることはなく、コンピュータ資源としての記憶装置を有効に使用することができる。
【0096】
また、ポイントカードとして使用される二次元バーコード100のパターンは、サーバ装置1に残さないでよいことから、サーバ装置1をハッキングしても盗み出されることがない。二次元バーコード100のパターンは、会員の携帯電話機3内においてのみ管理される。従って、この実施の形態にかかるポイントカードシステムでは、ポイントカードとして使用される二次元バーコード100について、第三者に漏洩する危険を、従来のセキュリティシステムに比べて非常に小さいものとすることができる。
【0097】
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【0098】
上記の実施の形態では、二次元バーコード100に対応した数値を、そのまま除数A、Bで除算して、剰余a、bを求めるものとしていた。これに対して、二次元バーコード100に対応した数値Xから該数値がとり得る最小値Xminを減算した値、または二次元バーコード100に対応した数値Xがとり得る値の最大値Xminから二次元バーコード100に対応する数値Xを減算した値を、数値A、Bで除算して、剰余a、bを求めるものとしてもよい。この場合、二次元バーコード100に対応した数値がとり得る値の範囲によっては、被除数がかなり小さくなって、除算の処理が高速化される。
【0099】
上記の実施の形態では、二次元バーコード100に対応した数値Xを除数A、Bで除算した剰余a、bを求めていた。この剰余a、bの組み合わせは、二次元バーコード100のパターン毎に異なるものとなっていた。しかしながら、二次元バーコード100に対応した数値から求められる複数の数値の組がパターン毎に異なるものとなるのであれば、上記とは別の演算式を適用することができる。例えば、二次元バーコード100を複数の領域に分割し、各領域をそのまま数値化した複数の数値の組は、二次元バーコード100のパターン毎に異なるものとなる。
【0100】
上記の実施の形態では、サーバ装置1は、二次元バーコード100を新たに発行または再発行する際に、そのパターンを生成してから、これを数値化するものとしていた。これに対して、ランダムに生成した数値から剰余a、bを求め、配列の要素D(0,a)、D(1,b)からのリストの各要素を参照した結果として発行済みでないことが分かってから、数値に対応したパターンを生成して二次元バーコード100として携帯電話機3に宛てて送信するものとしてもよい。この場合、実際には使用できない二次元バーコード100のパターンを生成する必要がなくなるので、余分な処理が行わないで済むようになる。
【0101】
上記の実施の形態では、二次元バーコード100のパターンに対応した数値Xを除算する除数は、A、Bの2つだけであったので、二次元配列D(*,*)の一次元目の添字には、0または1の2つの値が入れられるようになっていた。これに対して、数値Xを除算する除数を3種類以上とし、二次元配列の一次元目の添字に3種類以上の値を入れられるようにしてもよい。また、除数のそれぞれに対応して異なる一次元配列を用いるものとしてもよい。この場合、各一次元配列の添字には、対応する剰余を入れるものとすることができる。
【0102】
上記の実施の形態では、二次元バーコード100のパターンに対応した数値Xを除数A、Bで除算して剰余a、bを求め、二次元配列の要素D(0,a)、D(1,b)からのリストに対応する会員IDを要素としてつなげていた。これにより、二次元バーコード100のパターンをサーバ装置1内に残しておかなくても、二次元バーコード100のパターンと会員との対応付けができるものとしていた。
【0103】
ところが、この方法によっては、会員と対応づけて剰余a、bが実質的にサーバ装置1内に残されていることとなる。各会員に対応する剰余a、bの他に、除数A、B、数値Xがとり得る値の範囲、及び二次元バーコード100のパターンから数値Xを生成する手法が入手できれば、かなり困難ではあるが、サーバ装置1に残された情報に基づいて、二次元バーコード100のパターンを復元することは不可能ではない。そこで、上記の実施の形態に次のような変形を加えることで、サーバ装置1内にある情報のみでは、二次元バーコード100のパターンを復元することが完全に不可能なものとすることができる。
【0104】
図11は、この変形例における二次元バーコード100と、配列記憶部143の配列及びリスト記憶部144のリストと、会員データベース142との関係を示す図である。図示するように、会員登録要求または再発行要求の際に二次元バーコード100のパターンが生成されると、まず上記と同じようにして、二次元バーコード100のパターンに対応した数値Xが生成される。次に、この数値Xを所定の暗号鍵を用いて暗号化して、暗号化値X’を求める。
【0105】
この暗号化値X’を除数A、Bでそれぞれ除算し、その剰余a、bを求める。さらに求めた剰余a、bをそれぞれ所定の暗号鍵を用いて暗号化し、暗号化値a’、b’を求める。二次元バーコード100に対応する会員IDは、二次元配列の要素D(0,a’)からのリストと、要素D(1,b’)からのリストとに、それぞれ要素としてつなげるものとすればよい。店舗端末装置2から送られてきた二次元バーコード100のパターンからは、同様に暗号化値a’、b’を求め、二次元配列の要素D(0,a’)からのリストと、要素D(1,b’)からのリストとに要素としてつながれた会員IDを抽出するものとすればよい。
【0106】
ここで、二次元バーコード100を発行する場合も認証する場合も、暗号化の処理は行っているが、復号化の処理はいっさい行われていない。そこで、数値Xを暗号化して暗号化値X’を生成するための暗号鍵と、剰余a、bを暗号化して暗号化値a’、b’を生成するための暗号鍵とには、復号鍵が異なる非対称鍵系の暗号鍵を用い、サーバ装置1内には、暗号鍵だけを置いておくものとすることができる。この場合において、サーバ装置1がハッキングされ、暗号化値a’、b’が分かってしまっても、復号鍵がないので、剰余a、bを復元することができない。万が一剰余a、bが復元され、暗号化値X’まで解読されてしまっても、復号鍵がないので、数値Xを復元することができない。従って、このような復号鍵と非対称の暗号鍵を用いた暗号化の処理を加えることで、二次元バーコード100の漏洩に対するセキュリティをさらに強化することができる。
【0107】
上記の実施の形態では、各会員が使用する二次元バーコード100は、1種類だけであることを前提として説明した。しかしながら、1人の会員が複数種類の二次元バーコード100を使い分けて、それぞれの二次元バーコード100に応じた認証を受けられるようにしたい場合もある。例えば、コンサートなどのイベントのチケットとして二次元バーコード100を用いる場合、イベント毎に異なる二次元バーコード100が必要となるからである。これは、次のような変形を加えることで、実現することができるようになる。
【0108】
図12は、この変形例における二次元バーコード100と、配列記憶部143の配列及びリスト記憶部144のリストと、会員データベース142との関係を示す図である。会員は、二次元バーコード100をポイントカードとして使用するのではなく、イベントのチケットとして使用することができるものとする。イベント毎に異なるチケットNo.が付された二次元バーコード100が発行され、会員の携帯電話機3に送信される。
【0109】
会員がイベントのチケットを購入した場合には、二次元バーコード100のパターンが生成され、これに基づいて、上記の実施の形態と同様にして除数a、bが求められる。二次元配列の要素D(0,a)、D(1,b)からつなげられるリストの各要素には、会員IDとチケットNo.とが組み合わせて登録される。ここでは、会員IDとチケットNo.との組み合わせが完全に一致する場合にのみ、発行済みバーコードチェック処理で一致が返却される。一致が返却された場合には、二次元バーコード100に対応するチケットNo.を会員IDと組み合わせて、二次元配列の要素D(0,a)、D(1,b)からつなげられるリストの要素として登録する。
【0110】
イベント会場の入場口で読み取られた二次元バーコード100に対しても、会員IDとチケットNo.との組み合わせが完全に一致する場合にのみ、発行済みバーコードチェック処理で一致が返却される。そして、当該二次元バーコード100を有する会員が、該当するイベントのチケットを正当に購入した者として認証される。
【0111】
このように、リストの各要素に会員IDに加えて二次元バーコード100の種類を示す情報を組み合わせて登録しておくことで、同じ会員が複数種類の二次元バーコード100を使い分けて、それぞれに対して認証を得ることができるようになる。
【0112】
上記の実施の形態では、会員登録した際または再発行要求した際に、会員の携帯電話機3に送られる二次元バーコード100は、平文のままであった。これに対して、会員に(再)発行した二次元バーコード100を暗号化して、携帯電話機3に送信することができる。携帯電話会社の公式サイトとして会員登録を受け付ければ、サーバ装置1には携帯電話機3の個体番号が通知されてきている。そこで、サーバ装置1は、通知された個体番号を暗号鍵として用いて二次元バーコード100を暗号化して送信し、携帯電話機3において個体番号を復号鍵として用いて復号するようにしてもよい。これにより、サーバ装置1から携帯電話機3への送信途中で二次元バーコード100が盗み出されてしまうのを防ぐことができるようになる。
【0113】
上記の実施の形態では、ポイントカードとして使用される二次元バーコード100は、二階調で携帯電話機3の表示装置35に表示されるものとしていた。これに対して、多階調のパターンを有するバーコードや、三次元のパターンを有するバーコードをポイントカードとして適用することもできる。店舗端末装置2と携帯電話機3とをブルートゥース技術の適用などにより直接通信可能に構成した場合には、視認不可能な情報であっても、上記した二次元バーコード100の代わりにポイントカードとして適用することができる。どのような形態の識別情報であっても、1対1で対応する数値を求められるものであればよい。
【0114】
上記の実施の形態では、ポイントカード(或いはチケット)として二次元バーコード100を使用し、その認証のための技術として本発明を適用した場合について説明した。しかしながら、本発明の適用範囲はポイントカード(或いはチケット)に限るものではなく、識別情報を用いて認証(個人認証またはグループ認証など)を受ける場合全般に適用することができる。
【0115】
上記の実施の形態では、サーバ装置1、店舗端末装置2、及び携帯電話機3の処理プログラムは、それぞれ主記憶装置12、記憶装置22、或いはROM32に予め記憶されているものとして説明した。これに対して、これらの処理プログラムの全部または一部のみをCD−ROMやDVD−ROMなどのコンピュータ読み取り可能な記録媒体に格納して、ハードウェアとは別に配布するものとしてもよい。また、これらの処理プログラムの全部または一部をインターネット上のWebサーバ装置が有する固定ディスク装置に格納しておき、サーバ装置1、店舗端末装置2、或いは携帯電話機3からの要求に従って、インターネットなどのネットワークを通じて配信するものとしてもよい。
【0116】
【発明の効果】
以上説明したように、本発明によれば、識別情報の発行及び認証において、認証処理の高速化とセキュリティの向上とを同時に達成することができる。
【0117】
また、認証処理が集中したときとしないときとの処理量の差が少なく、記憶容量も少なくて済むので、コンピュータ資源を有効に利用することができる。
【図面の簡単な説明】
【図1】本発明の実施の形態に適用されるポイントカードシステムを示すブロック図である。
【図2】図1のサーバ装置の構成を示すブロック図である。
【図3】二次元バーコードにより構成され、携帯電話機に表示されるポイントカードの例を示す図である。
【図4】図3の二次元バーコードと、配列、リスト及び会員データベースとの関係を示す図である。
【図5】図1の携帯電話機の構成を示すブロック図である。
【図6】図1の店舗端末装置の構成を示すブロック図である。
【図7】会員登録処理を示すフローチャートである。
【図8】図7の発行済みバーコードチェック処理を詳細に示すフローチャートである。
【図9】再発行処理を示すフローチャートである。
【図10】ポイント蓄積/使用処理を示すフローチャートである。
【図11】図3の二次元バーコードと、配列、リスト及び会員データベースとの関係の変形例を示す図である。
【図12】
図3の二次元バーコードと、配列、リスト及び会員データベースとの関係の変形例を示す図である。
【符号の説明】
1 サーバ装置
2(2−1〜m) 店舗端末装置
3(3−1〜n) 携帯電話機
4 インターネット
11 CPU
12 主記憶装置
13 通信装置
14 補助記憶装置
21 CPU
22 記憶装置
23 通信装置
24 バーコードリーダ
25 入力装置
26 表示装置
31 CPU
32 ROM
33 RAM
34 入力装置
35 表示装置
36 通信装置
100 二次元バーコード(ポイントカード)
101〜104 方向チェックマーク
105 バーコードパターン部
141 プログラムファイル
142 会員データベース
143 配列記憶部
144 リスト記憶部
145 店舗データベース

Claims (17)

  1. 認証を受けるべき者として登録されるユーザに固有の識別情報を生成する識別情報生成手段と、
    前記識別情報生成手段が生成した識別情報に基づいて、該生成した識別情報と1対1で対応付けられた数値組であって、複数の数値からなる数値組を生成する数値組生成手段と、
    前記数値組生成手段が生成すべき数値組に含まれる数値の1つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を記憶した配列記憶手段と、
    前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別する登録判別手段と、
    前記登録判別手段により同一のユーザを示す情報が登録されていないと判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報を登録する登録手段と、
    前記登録手段により、配列の要素に関連づけてユーザを示す情報が登録された後に、前記識別情報生成手段が生成した識別情報を、対応するユーザに送信する識別情報送信手段と
    を備えることを特徴とする識別情報発行システム。
  2. 前記識別情報送信手段により前記識別情報生成手段が生成した識別情報が送信された後、該識別情報を破棄する識別情報破棄手段をさらに備える
    ことを特徴とする請求項1に記載の識別情報発行システム。
  3. 前記数値組生成手段は、
    前記識別情報を所定の方法により数値化し、該識別情報と1対1で対応した数値を生成する数値生成手段と、
    前記数値生成手段が生成した識別情報に対応した数値を、互いに異なる複数の除数で除算した剰余をそれぞれ算出する剰余算出手段とを備え、
    前記複数の除数の最小公倍数は、前記識別情報に対応した数値がとり得る値の最大値と最小値との差よりも大きい
    ことを特徴とする請求項1または2に記載の識別情報発行システム。
  4. 前記数値組生成手段は、前記識別情報から前記数値組に含まれる各数値を生成するまでに用いられるいずれか1以上のデータを、所定の暗号鍵を用いて暗号化する手段を含む
    ことを特徴とする請求項1乃至3のいずれか1項に記載の識別情報発行システム。
  5. 前記所定の暗号鍵は、復号鍵とは非対称の暗号鍵である
    ことを特徴とする請求項4に記載の識別情報発行システム。
  6. 前記識別情報は、複数の種類のものがあり、同一のユーザが複数の種類を使い分けることが可能であり、
    前記登録判別手段は、ユーザを示す情報と識別情報の種類との組み合わせとして同一の組み合わせが登録されているかどうかを判別し、
    前記登録手段は、前記登録判別手段によりユーザを示す情報と識別情報の組み合わせとして同一の組み合わせが登録されていると判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報と識別情報の種類とを組み合わせて登録する
    ことを特徴とする請求項1乃至5のいずれか1項に記載の識別情報発行システム。
  7. 前記配列記憶手段に記憶される配列は、二次元配列であり、
    該二次元配列の1の次元の添字は、前記数値組が有する数値の個数に対応し、
    該二次元配列の他の1の次元の添字は、前記1の次元の添字の値に対応した前記数値組の数値に対応したものである
    ことを特徴とする請求項1乃至6のいずれか1項に記載の識別情報発行システム。
  8. 前記配列記憶手段に記憶される配列は、前記数値組が有する数値の個数だけ用意された一次元配列であり、
    該一次元配列の添字は、前記数値組の数値に対応したものである
    ことを特徴とする請求項1乃至6のいずれか1項に記載の識別情報発行システム。
  9. ユーザから提示された識別情報に基づいて、前記数値組生成手段が数値組を生成するのと同様の方法により生成された数値組に含まれる各数値に対応した前記配列の要素にそれぞれ関連づけて登録されているユーザを示す情報を抽出するユーザ情報抽出手段と、
    前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段と、
    前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段とをさらに備えることを特徴とする請求項1乃至8のいずれか1項に記載の識別情報発行システム。
  10. 認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録した配列を記憶した配列記憶手段と、
    ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するユーザ情報抽出手段と、
    前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段と、
    前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段と
    を備えることを特徴とする識別情報認証システム。
  11. 前記登録されたユーザに発行された識別情報は、前記配列の要素に関連づけて当該ユーザを示す情報を登録し、当該ユーザに発行した後に破棄されている
    ことを特徴とする請求項10に記載の識別情報認証システム。
  12. 認証を受けるべき者として登録されるユーザに固有の識別情報を生成するステップと、
    前記生成した識別情報に基づいて、該生成した識別情報と1対1で対応付けられた数値組であって、複数の数値からなる数値組を生成するステップと、
    前記生成すべき数値組に含まれる数値の1つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を予め準備するステップと、
    前記生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別するステップと、
    同一のユーザを示す情報が登録されていないと判別したときに、前記生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記生成した識別情報に対応したユーザを示す情報を登録するステップと、
    配列の要素に関連づけてユーザを示す情報が登録された後に、前記生成した識別情報を、対応するユーザに送信するステップと
    を含むことを特徴とする識別情報発行方法。
  13. 前記生成した識別情報が送信された後、該識別情報を破棄するステップをさらに含む
    ことを特徴とする請求項12に記載の識別情報発行方法。
  14. 認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録する配列を予め準備するステップと、
    ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するステップと、
    前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するステップと、
    同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証するステップと
    を含むことを特徴とする識別情報認証方法。
  15. 認証を受けるべき者として登録されるユーザに固有の識別情報を生成する識別情報生成手段、
    前記識別情報生成手段が生成した識別情報に基づいて、該生成した識別情報と1対1で対応付けられた数値組であって、複数の数値からなる数値組を生成する数値組生成手段、
    前記数値組生成手段が生成すべき数値組に含まれる数値の1つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を記憶した配列記憶手段、
    前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別する登録判別手段、
    前記登録判別手段により同一のユーザを示す情報が登録されていないと判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報を登録する登録手段、及び、
    前記登録手段により、配列の要素に関連づけてユーザを示す情報が登録された後に、前記識別情報生成手段が生成した識別情報を、対応するユーザに送信する識別情報送信手段
    としてコンピュータ装置を機能させるためのプログラム。
  16. 前記識別情報送信手段により前記識別情報生成手段が生成した識別情報が送信された後、該識別情報を破棄する識別情報破棄手段としてさらに前記コンピュータ装置を機能させる
    ことを特徴とする請求項15に記載のプログラム。
  17. 認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録した配列を記憶した配列記憶手段、
    ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と1対1で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するユーザ情報抽出手段、
    前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段、及び、
    前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段
    としてコンピュータ装置を機能させるためのプログラム。
JP2003028338A 2003-02-05 2003-02-05 識別情報発行システム及び方法、識別情報認証システム及び方法、並びにプログラム Pending JP2004240648A (ja)

Priority Applications (1)

Application Number Priority Date Filing Date Title
JP2003028338A JP2004240648A (ja) 2003-02-05 2003-02-05 識別情報発行システム及び方法、識別情報認証システム及び方法、並びにプログラム

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
JP2003028338A JP2004240648A (ja) 2003-02-05 2003-02-05 識別情報発行システム及び方法、識別情報認証システム及び方法、並びにプログラム

Publications (1)

Publication Number Publication Date
JP2004240648A true JP2004240648A (ja) 2004-08-26

Family

ID=32955833

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2003028338A Pending JP2004240648A (ja) 2003-02-05 2003-02-05 識別情報発行システム及び方法、識別情報認証システム及び方法、並びにプログラム

Country Status (1)

Country Link
JP (1) JP2004240648A (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249286A (ja) * 1995-03-14 1996-09-27 Omron Corp 電子データ送受信システム
JPH113455A (ja) * 1997-06-13 1999-01-06 Nec Corp 電子貨幣カードの発行照合方法およびその方式
JP2001005883A (ja) * 1999-04-23 2001-01-12 Ntt Data Corp 決済システム、決済方法及び記録媒体
JP2001045562A (ja) * 1999-07-30 2001-02-16 Komu Square:Kk 利用者認証方法、利用者認証システムおよび記録媒体
JP2001134684A (ja) * 1999-11-02 2001-05-18 Ntt Data Corp 決済システム、携帯端末、サービス提供装置、通信制御装置及び記録媒体

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH08249286A (ja) * 1995-03-14 1996-09-27 Omron Corp 電子データ送受信システム
JPH113455A (ja) * 1997-06-13 1999-01-06 Nec Corp 電子貨幣カードの発行照合方法およびその方式
JP2001005883A (ja) * 1999-04-23 2001-01-12 Ntt Data Corp 決済システム、決済方法及び記録媒体
JP2001045562A (ja) * 1999-07-30 2001-02-16 Komu Square:Kk 利用者認証方法、利用者認証システムおよび記録媒体
JP2001134684A (ja) * 1999-11-02 2001-05-18 Ntt Data Corp 決済システム、携帯端末、サービス提供装置、通信制御装置及び記録媒体

Similar Documents

Publication Publication Date Title
US20220278982A1 (en) Provisioning transferable access tokens
JP5931217B2 (ja) 使い捨てのカード情報を用いた決済方法
CN108848063B (zh) 基于区块链的数据处理方法、系统和计算机可读存储介质
JP4543364B2 (ja) 識別情報発行装置及び方法、認証装置及び方法、プログラム、並びに記録媒体
JP4139382B2 (ja) 製品/サービスに係る所有権限を認証する装置、製品/サービスに係る所有権限を認証する方法、及び製品/サービスに係る所有権限を認証するプログラム
CN106452756A (zh) 可离线验证安全二维码构造验证方法与装置
CN1761926B (zh) 对关于用户和数据之间的关联的信息给出用户访问的方法和设备
KR101354388B1 (ko) 일회성 카드번호 생성방법
US20220215355A1 (en) Method for directly transmitting electronic coin data records between terminals and payment system
WO2012014231A4 (en) System and method for generating a strong multi factor personalized server key from a simple user password
JP5978326B2 (ja) 動的認証システム、動的認証方法、動的認証用読取装置、ユーザー端末装置、及び動的認証プログラム
CN113924588A (zh) 用于将电子币数据记录直接发送到另一设备的设备和支付系统
TW201636918A (zh) 數位交易方法與裝置
WO2008113617A1 (en) A method and system for a subscription to a derived symmetric key
JP3823080B2 (ja) 識別情報発行システム、装置及び方法、プログラム、並びに記録媒体
JP2005018099A (ja) ポイント交換システム及び方法、ポイント交換情報発行装置、並びにプログラム
JP2020046925A (ja) 認証システム
US12014237B2 (en) Near-field communication anti-counterfeit system and method
CN110070365B (zh) 基于区块链的商品存证方法和装置、电子设备
JP2004341832A (ja) 個人情報管理方法及びシステム、開示用識別子発行装置、個人情報開示装置
KR102391952B1 (ko) 암호화 분산 처리 시스템, 장치 또는 이를 위한 방법
JPWO2011058629A1 (ja) 情報管理システム
JP2004240648A (ja) 識別情報発行システム及び方法、識別情報認証システム及び方法、並びにプログラム
KR102327668B1 (ko) 블록체인 조회코드를 이용한 전자영수증 제공 장치 및 방법
JP2004145475A (ja) 識別情報発行システム及び方法、識別情報認証システム及び方法、並びにプログラム

Legal Events

Date Code Title Description
A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A821

Effective date: 20040716

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7422

Effective date: 20040716

RD04 Notification of resignation of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7424

Effective date: 20041005

A072 Dismissal of procedure [no reply to invitation to correct request for examination]

Free format text: JAPANESE INTERMEDIATE CODE: A072

Effective date: 20041214

A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20050325

RD03 Notification of appointment of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: A7423

Effective date: 20050629

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20081007

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20090224