(57)【要約】【課題】識別情報の認証処理の高速化とセキュリティの向上とを同時に達成すると共に、コンピュータ資源を有効に利用する。【解決手段】会員登録要求があると、ランダムにバーコード１００を生成し、このパターンを数値化した数値Ｘを求め、これを除数Ａ、Ｂで除算した剰余ａ、ｂを求める。配列の要素Ｄ（０，ａ）からつながれたリストの各要素と配列の要素Ｄ（１，ｂ）からつながれたリストの各要素に、同一の会員ＩＤが登録されていなければ、それぞれのリストの要素として会員登録要求した会員の会員ＩＤを追加する。そして、バーコード１００を要求元に送信した後、破棄する。会員に送信されたバーコード１００が読み取られると、同様にして剰余ａ、ｂが求められ、配列の要素Ｄ（０，ａ）からつながれたリストの各要素と配列の要素Ｄ（１，ｂ）からつながれたリストの各要素に、同一の会員ＩＤが登録されていれば、ポイントの蓄積／使用が可能となる。【選択図】    図４
2004240648.tif 000002
【特許請求の範囲】
【請求項１】
認証を受けるべき者として登録されるユーザに固有の識別情報を生成する識別情報生成手段と、
前記識別情報生成手段が生成した識別情報に基づいて、該生成した識別情報と１対１で対応付けられた数値組であって、複数の数値からなる数値組を生成する数値組生成手段と、
前記数値組生成手段が生成すべき数値組に含まれる数値の１つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を記憶した配列記憶手段と、
前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別する登録判別手段と、
前記登録判別手段により同一のユーザを示す情報が登録されていないと判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報を登録する登録手段と、
前記登録手段により、配列の要素に関連づけてユーザを示す情報が登録された後に、前記識別情報生成手段が生成した識別情報を、対応するユーザに送信する識別情報送信手段と
を備えることを特徴とする識別情報発行システム。
【請求項２】
前記識別情報送信手段により前記識別情報生成手段が生成した識別情報が送信された後、該識別情報を破棄する識別情報破棄手段をさらに備える
ことを特徴とする請求項１に記載の識別情報発行システム。
【請求項３】
前記数値組生成手段は、
前記識別情報を所定の方法により数値化し、該識別情報と１対１で対応した数値を生成する数値生成手段と、
前記数値生成手段が生成した識別情報に対応した数値を、互いに異なる複数の除数で除算した剰余をそれぞれ算出する剰余算出手段とを備え、
前記複数の除数の最小公倍数は、前記識別情報に対応した数値がとり得る値の最大値と最小値との差よりも大きい
ことを特徴とする請求項１または２に記載の識別情報発行システム。
【請求項４】
前記数値組生成手段は、前記識別情報から前記数値組に含まれる各数値を生成するまでに用いられるいずれか１以上のデータを、所定の暗号鍵を用いて暗号化する手段を含む
ことを特徴とする請求項１乃至３のいずれか１項に記載の識別情報発行システム。
【請求項５】
前記所定の暗号鍵は、復号鍵とは非対称の暗号鍵である
ことを特徴とする請求項４に記載の識別情報発行システム。
【請求項６】
前記識別情報は、複数の種類のものがあり、同一のユーザが複数の種類を使い分けることが可能であり、
前記登録判別手段は、ユーザを示す情報と識別情報の種類との組み合わせとして同一の組み合わせが登録されているかどうかを判別し、
前記登録手段は、前記登録判別手段によりユーザを示す情報と識別情報の組み合わせとして同一の組み合わせが登録されていると判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報と識別情報の種類とを組み合わせて登録する
ことを特徴とする請求項１乃至５のいずれか１項に記載の識別情報発行システム。
【請求項７】
前記配列記憶手段に記憶される配列は、二次元配列であり、
該二次元配列の１の次元の添字は、前記数値組が有する数値の個数に対応し、
該二次元配列の他の１の次元の添字は、前記１の次元の添字の値に対応した前記数値組の数値に対応したものである
ことを特徴とする請求項１乃至６のいずれか１項に記載の識別情報発行システム。
【請求項８】
前記配列記憶手段に記憶される配列は、前記数値組が有する数値の個数だけ用意された一次元配列であり、
該一次元配列の添字は、前記数値組の数値に対応したものである
ことを特徴とする請求項１乃至６のいずれか１項に記載の識別情報発行システム。
【請求項９】
ユーザから提示された識別情報に基づいて、前記数値組生成手段が数値組を生成するのと同様の方法により生成された数値組に含まれる各数値に対応した前記配列の要素にそれぞれ関連づけて登録されているユーザを示す情報を抽出するユーザ情報抽出手段と、
前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段と、
前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段とをさらに備えることを特徴とする請求項１乃至８のいずれか１項に記載の識別情報発行システム。
【請求項１０】
認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録した配列を記憶した配列記憶手段と、
ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するユーザ情報抽出手段と、
前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段と、
前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段と
を備えることを特徴とする識別情報認証システム。
【請求項１１】
前記登録されたユーザに発行された識別情報は、前記配列の要素に関連づけて当該ユーザを示す情報を登録し、当該ユーザに発行した後に破棄されている
ことを特徴とする請求項１０に記載の識別情報認証システム。
【請求項１２】
認証を受けるべき者として登録されるユーザに固有の識別情報を生成するステップと、
前記生成した識別情報に基づいて、該生成した識別情報と１対１で対応付けられた数値組であって、複数の数値からなる数値組を生成するステップと、
前記生成すべき数値組に含まれる数値の１つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を予め準備するステップと、
前記生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別するステップと、
同一のユーザを示す情報が登録されていないと判別したときに、前記生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記生成した識別情報に対応したユーザを示す情報を登録するステップと、
配列の要素に関連づけてユーザを示す情報が登録された後に、前記生成した識別情報を、対応するユーザに送信するステップと
を含むことを特徴とする識別情報発行方法。
【請求項１３】
前記生成した識別情報が送信された後、該識別情報を破棄するステップをさらに含む
ことを特徴とする請求項１２に記載の識別情報発行方法。
【請求項１４】
認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録する配列を予め準備するステップと、
ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するステップと、
前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するステップと、
同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証するステップと
を含むことを特徴とする識別情報認証方法。
【請求項１５】
認証を受けるべき者として登録されるユーザに固有の識別情報を生成する識別情報生成手段、
前記識別情報生成手段が生成した識別情報に基づいて、該生成した識別情報と１対１で対応付けられた数値組であって、複数の数値からなる数値組を生成する数値組生成手段、
前記数値組生成手段が生成すべき数値組に含まれる数値の１つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を記憶した配列記憶手段、
前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別する登録判別手段、
前記登録判別手段により同一のユーザを示す情報が登録されていないと判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報を登録する登録手段、及び、
前記登録手段により、配列の要素に関連づけてユーザを示す情報が登録された後に、前記識別情報生成手段が生成した識別情報を、対応するユーザに送信する識別情報送信手段
としてコンピュータ装置を機能させるためのプログラム。
【請求項１６】
前記識別情報送信手段により前記識別情報生成手段が生成した識別情報が送信された後、該識別情報を破棄する識別情報破棄手段としてさらに前記コンピュータ装置を機能させる
ことを特徴とする請求項１５に記載のプログラム。
【請求項１７】
認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録した配列を記憶した配列記憶手段、
ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するユーザ情報抽出手段、
前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段、及び、
前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段
としてコンピュータ装置を機能させるためのプログラム。
【発明の詳細な説明】
【０００１】
【発明の属する技術分野】
本発明は、識別情報の発行及び認証に関するものである。
【０００２】
【従来の技術】
近年、携帯電話技術は、急速に進歩しており、Ｗｅｂ接続機能を有するものが一般的となり、また、表示装置の解像度も高くなっている。このような携帯電話技術の進歩に伴って、特定のサービスを利用するための会員証などを携帯電話機上に表示されるバーコードによって構成し、Ｗｅｂ接続サービスを利用して配信するものが登場している。
【０００３】
従来では、サーバ装置は、バーコードを発行して携帯電話機に配信すると共に、そのバーコードを内部のデータベースに保存するものとしていた。携帯電話機に表示されたバーコードがバーコードリーダによって読み取られて送られてくると、サーバ装置は、送られてきたバーコードを保存しておいたバーコードと照合することによって、そのバーコードが正当なものであることを認証するものとしていた（例えば、特許文献１参照）。
【０００４】
【特許文献１】
特許第３２０７１９２号公報
【０００５】
【発明が解決しようとする課題】
しかしながら、特許文献１の技術では、ユーザに発行された認証情報としてのバーコードは、少なくともそのバーコードを用いて認証を行うことが不要となるまで、サーバ装置内に継続的に置かれることとなる。すると、サーバ装置がハッキングされることによって、認証情報であるバーコードが漏洩するという危険が非常に大きかった。
【０００６】
認証情報としてのバーコードの漏洩は、サーバ装置内においてバーコードを暗号化して保存しておくことによって防止を図ることができる。しかし、バーコードを暗号化して保存しておくことにより、認証を行う際に暗号化したバーコードの復号化が必要となり、認証に要する処理が増大してしまう。
【０００７】
暗号強度を低くすれば、認証に要する処理の増大は抑えられるが、暗号の解読によってバーコードが漏洩する危険は高くなる。逆に暗号強度を高くすれば、暗号の解読が困難であるためバーコードが漏洩する危険は低く抑えられるが、認証の際におけるバーコードの復号化が非常に複雑なものとなり、認証に要する処理量が大きくなってしまう。このように、特許文献１の技術では、認証処理の高速化とセキュリティの向上とを同時に達成することができなかった。
【０００８】
特に、バーコードの認証を行うのが短期間に集中するような場合には、その集中したときでもシステムダウンが生じないよう高速処理が可能な資源を有する高性能のサーバ装置を用意しておかなければならない。バーコードの認証を行うことがあまりない期間では、その性能は全く必要がなく、高速処理が可能なコンピュータ資源に大きな無駄が生じてしまう。
【０００９】
さらに、特許文献１の技術では、そもそもバーコードをサーバ装置内に保存しておかなければならないので、発行したバーコードを全て保存するだけの記憶容量が必要となる。多くのバーコードを発行し、それを全て管理するとなると、バーコードのパターン自体も複雑なものとする必要がある。バーコードのパターンが複雑になれば、バーコード１つ当たりに要する記憶容量も大きくなる。従って、特許文献１の技術では、多くのバーコードを発行して管理しようとした場合、必要となる記憶容量も爆発的に増えていくこととなる。
【００１０】
本発明は、識別情報の発行及び認証において、認証処理の高速化とセキュリティの向上とを同時に達成すると共に、コンピュータ資源を有効に利用することができる識別情報発行システム等を提供することを目的とする。
【００１１】
【課題を解決するための手段】
上記目的を達成するため、本発明の第１の観点にかかる識別情報発行システムは、
認証を受けるべき者として登録されるユーザに固有の識別情報を生成する識別情報生成手段と、
前記識別情報生成手段が生成した識別情報に基づいて、該生成した識別情報と１対１で対応付けられた数値組であって、複数の数値からなる数値組を生成する数値組生成手段と、
前記数値組生成手段が生成すべき数値組に含まれる数値の１つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を記憶した配列記憶手段と、
前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別する登録判別手段と、
前記登録判別手段により同一のユーザを示す情報が登録されていないと判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報を登録する登録手段と、
前記登録手段により、配列の要素に関連づけてユーザを示す情報が登録された後に、前記識別情報生成手段が生成した識別情報を、対応するユーザに送信する識別情報送信手段と
を備えることを特徴とする。
【００１２】
上記識別情報発行システムは、
前記識別情報送信手段により前記識別情報生成手段が生成した識別情報が送信された後、該識別情報を破棄する識別情報破棄手段をさらに備えるものとすることができる。
【００１３】
上記識別情報発行システムでは、識別情報生成手段が生成した識別情報に基づいて数値組が求められ、数値組に含まれる複数の数値に対応した配列の要素に関連づけてユーザを示す情報が登録される。このように識別情報に応じてユーザを示す情報を登録する場所を異ならせることにより、後述するように識別情報の認証を行う際に、識別情報同士を照合する必要がなくなる。
【００１４】
このため、識別情報生成手段が生成した識別情報が識別情報送信手段によりユーザに送信された後は、上記識別情報発行システム内に識別情報そのものを残しておく必要がなく、識別情報破棄手段によって破棄してしまってもよい。ここで、内部に識別情報そのものが残っていないので、仮にハッカーに侵入されても各ユーザの識別情報が盗み出されることがなく、高度のセキュリティを達成することができる。
【００１５】
また、識別情報同士を照合せずに、識別情報とユーザとの対応付けを高速に行えるため、後述するような認証の処理が集中するときに備えて必要以上に高性能なシステムを用意する必要がなく、資源の有効利用ができる。さらに、配列及びそれに関連づけてユーザを示す情報を登録するための記憶容量は必要となるが、識別情報そのもののための記憶容量は必要ないので、特に識別情報の情報量が大きいときには、システムに必要な記憶容量も小さくすることができ、資源を有効利用できる。
【００１６】
なお、数値組生成手段が数値組を生成するために用いる識別情報と、識別情報送信手段がユーザに送信する識別情報とは、完全に一致したものとは限らない。例えば、識別情報生成手段は、まず特定の数値を生成し、この数値から数値組生成手段が数値組を生成するものとし、識別情報送信手段は、前記特定の数値から双方向で一義的に定められる特定の情報を送信するものとしてもよい。前記特定の数値と前記特定の情報とは、ここでは、実質的な内容としては同じ識別情報であると見ることができる。
【００１７】
上記識別情報発行システムにおいて、
前記数値組生成手段は、例えば、
前記識別情報を所定の方法により数値化し、該識別情報と１対１で対応した数値を生成する数値生成手段と、
前記数値生成手段が生成した識別情報に対応した数値を、互いに異なる複数の除数で除算した剰余をそれぞれ算出する剰余算出手段とを備えるものとすることができ、この場合、
前記複数の除数の最小公倍数は、前記識別情報に対応した数値がとり得る値の最大値と最小値との差よりも大きいことが条件となる。
【００１８】
上記識別情報発行システムにおいて、
前記数値組生成手段は、前記識別情報から前記数値組に含まれる各数値を生成するまでに用いられるいずれか１以上のデータを、所定の暗号鍵を用いて暗号化する手段を含むものとすることができる。
【００１９】
この場合において、
前記所定の暗号鍵は、復号鍵とは非対称の暗号鍵であることが好ましい。
【００２０】
上記のように識別情報生成手段が生成した識別情報から数値組を生成すると、異なる識別情報から生成された数値組では、数値組に含まれる全ての数値が一致することはなくなる。これにより、数値組から識別情報を一義的に定めることができる。数値組の生成の際に暗号化を行うことで、上記識別情報発行システムからユーザを示す情報と配列との関連づけに関する情報を盗み出し、これを解析しても、元の識別情報を復元できない。特に暗号鍵として非対称鍵を適用すると、どこにも復号鍵がないので情報を盗み出して復号を行うことができず、元の識別情報の復元は、どのような暗号技術に比べても遜色がないか、それ以上に困難なものとなる。
【００２１】
上記識別情報発行システムにおいて、
前記識別情報は、複数の種類のものがあり、同一のユーザが複数の種類を使い分けることが可能なものであってもよい。この場合、
前記登録判別手段は、ユーザを示す情報と識別情報の種類との組み合わせとして同一の組み合わせが登録されているかどうかを判別し、
前記登録手段は、前記登録判別手段によりユーザを示す情報と識別情報の組み合わせとして同一の組み合わせが登録されていると判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報と識別情報の種類とを組み合わせて登録するものとすることができる。
【００２２】
さらに、配列の要素に関連づけて、ユーザを示す情報と識別情報の種別とを組み合わせて登録するため、後述するように１人のユーザが複数種類の識別情報を使い分ける場合において、識別情報の種類までを認証できるようになる。
【００２３】
上記識別情報発行システムにおいて、
前記配列記憶手段に記憶される配列は、二次元配列であってもよい。ここで、
該二次元配列の１の次元の添字は、前記数値組が有する数値の個数に対応し、
該二次元配列の他の１の次元の添字は、前記１の次元の添字の値に対応した前記数値組の数値に対応したものとすることができる。
【００２４】
上記識別情報発行システムにおいて、
前記配列記憶手段に記憶される配列は、前記数値組が有する数値の個数だけ用意された一次元配列であってもよい。ここで、
該一次元配列の添字は、前記数値組の数値に対応したものとすることができる。
【００２５】
上記識別情報発行システムは、
ユーザから提示された識別情報に基づいて、前記数値組生成手段が数値組を生成するのと同様の方法により生成された数値組に含まれる各数値に対応した前記配列の要素にそれぞれ関連づけて登録されているユーザを示す情報を抽出するユーザ情報抽出手段と、
前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段と、
前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段とをさらに備えるものとすることができる。
【００２６】
ここで行う認証の処理は、配列の要素に関連づけて登録されているユーザを示す情報の抽出と、その比較だけでよいので、識別情報同士を照合する場合に比べて高速な処理が行える。しかも、発行した識別情報の数が増加しても、処理量の増加はそれよりもずっと少なく、認証処理の処理量があまり増大しない。
【００２７】
上記目的を達成するため、本発明の第２の観点にかかる識別情報認証システムは、
認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録した配列を記憶した配列記憶手段と、
ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するユーザ情報抽出手段と、
前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段と、
前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段と
を備えることを特徴とする。
【００２８】
上記識別情報認証システムにおいて、
前記登録されたユーザに発行された識別情報は、前記配列の要素に関連づけて当該ユーザを示す情報を登録し、当該ユーザに発行した後に破棄されていてもよい。
【００２９】
上記識別情報認証システムでは、ユーザ情報抽出手段が配列の要素に関連づけて登録されているユーザを示す情報を抽出し、ユーザ情報判定手段が同一のユーザを示す情報が抽出されたかどうかを判定すれば、識別情報の認証を行える。このため、識別情報同士を照合する場合に比べて高速な処理が行える。しかも、発行した識別情報の数が増加しても、処理量の増加はそれよりもずっと少なく、認証処理の処理量があまり増大しない。
【００３０】
さらに、識別情報同士の照合によって認証を行うのではないので、識別情報そのものを、上記識別情報認証システム内に残しておく必要がなく、配列の要素に関連づけてユーザを示す情報の登録が終了し、識別情報をユーザに発行した後には破棄されている。このように内部に識別情報そのものが残っていないので、仮にハッカーに侵入されても各ユーザの識別情報が盗み出されることがなく、高度のセキュリティを達成することができる。また、配列及びそれに関連づけてユーザを示す情報を登録するための記憶容量は必要となるが、識別情報そのもののための記憶容量は必要ないので、特に識別情報の情報量が大きいときには、システムに必要な記憶容量も小さくすることができる。
【００３１】
上記目的を達成するため、本発明の第３の観点にかかる識別情報発行方法は、
認証を受けるべき者として登録されるユーザに固有の識別情報を生成するステップと、
前記生成した識別情報に基づいて、該生成した識別情報と１対１で対応付けられた数値組であって、複数の数値からなる数値組を生成するステップと、
前記生成すべき数値組に含まれる数値の１つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を予め準備するステップと、
前記生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別するステップと、
同一のユーザを示す情報が登録されていないと判別したときに、前記生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記生成した識別情報に対応したユーザを示す情報を登録するステップと、
配列の要素に関連づけてユーザを示す情報が登録された後に、前記生成した識別情報を、対応するユーザに送信するステップと
を含むことを特徴とする。
【００３２】
上記識別情報発行方法は、
前記生成した識別情報が送信された後、該識別情報を破棄するステップをさらに含むものとすることができる。
【００３３】
上記目的を達成するため、本発明の第４の観点にかかる識別情報認証方法は、
認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録する配列を予め準備するステップと、
ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するステップと、
前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するステップと、
同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証するステップと
を含むことを特徴とする。
【００３４】
上記目的を達成するため、本発明の第５の観点にかかるプログラムは、
認証を受けるべき者として登録されるユーザに固有の識別情報を生成する識別情報生成手段、
前記識別情報生成手段が生成した識別情報に基づいて、該生成した識別情報と１対１で対応付けられた数値組であって、複数の数値からなる数値組を生成する数値組生成手段、
前記数値組生成手段が生成すべき数値組に含まれる数値の１つを添字とし、複数の数値がそれぞれとり得る値に対応した複数の要素を有する配列を記憶した配列記憶手段、
前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、同一のユーザを示す情報が登録されているかどうかを判別する登録判別手段、
前記登録判別手段により同一のユーザを示す情報が登録されていないと判別したときに、前記数値組生成手段が生成した数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて、前記識別情報生成手段が生成した識別情報に対応したユーザを示す情報を登録する登録手段、及び、
前記登録手段により、配列の要素に関連づけてユーザを示す情報が登録された後に、前記識別情報生成手段が生成した識別情報を、対応するユーザに送信する識別情報送信手段
としてコンピュータ装置を機能させることを特徴とする。
【００３５】
上記第５の観点にかかるプログラムは、
前記識別情報送信手段により前記識別情報生成手段が生成した識別情報が送信された後、該識別情報を破棄する識別情報破棄手段としてさらに前記コンピュータ装置を機能させるものとすることができる。
【００３６】
上記目的を達成するため、本発明の第６の観点にかかるプログラムは、
認証を受ける者として登録されたユーザに固有の識別情報が発行されたときに、該識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した要素に関連づけて該識別情報の発行要求をしたユーザを示す情報を登録した配列を記憶した配列記憶手段、
ユーザから提示された識別情報に基づいて、前記配列の要素に関連づけて登録したときと同様の方法により生成され、該提示された識別情報と１対１で対応づけられた数値組に含まれる各数値に対応した配列の要素にそれぞれ関連づけて登録されたユーザを示す情報を抽出するユーザ情報抽出手段、
前記ユーザ情報抽出手段により前記配列の要素にそれぞれ関連づけられたユーザを示す情報として、同一のユーザを示す情報が抽出されたかどうかを判定するユーザ情報判定手段、及び、
前記ユーザ情報判定手段が同一のユーザを示す情報が抽出されたと判定したときに、前記ユーザから提示された識別情報を認証する認証手段
としてコンピュータ装置を機能させることを特徴とする。
【００３７】
【発明の実施の形態】
以下、添付図面を参照して、本発明の実施の形態について説明する。
【００３８】
図１は、この実施の形態に適用されるポイントカードシステムの構成を示すブロック図である。図示するように、このポイントカードシステムは、サーバ装置１と、複数の店舗端末装置２（２−１〜２−ｍ）と、複数の携帯電話機３（３−１〜３−ｎ）とから構成されている。店舗端末装置２及び携帯電話機３は、それぞれインターネット４を介してサーバ装置１に接続される。
【００３９】
サーバ装置１は、このシステムにおけるサービスの提供者（以下、提供者）の利用に供し、サービスを利用する会員がポイントを蓄積し、加盟店において商品（サービスを含む）と交換するために必要な処理を行うコンピュータ装置である。サーバ装置１は、会員の登録、後述するポイントカードとして使用される二次元バーコードの発行、会員が蓄積したポイントの管理を行う。サーバ装置１は、加盟店の登録や会員が加盟店で利用したポイントの決済なども行う。
【００４０】
店舗端末装置２は、パーソナルコンピュータなどから構成されており、サービスの加盟店の利用に供し、会員が購入した商品に応じたポイントを付与し、会員が蓄積したポイントを使用して商品に交換するために必要な処理を行う。携帯電話機３は、このポイントカードシステムを利用してポイントの蓄積／使用を行う者として登録した会員の利用に供し、ポイントカードとして使用される二次元バーコードや、会員が蓄積したポイントなどを表示する。
【００４１】
図２は、図１のサーバ装置１の構成を示すブロック図である。図示するように、サーバ装置１は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）１１と、主記憶装置１２と、通信装置１３と、補助記憶装置１４とを備えている。補助記憶装置１４には、プログラムファイル１４１、会員データベース１４２、配列記憶部１４３、リスト記憶部１４４、及び店舗データベース１４５が設けられている。
【００４２】
ＣＰＵ１１は、主記憶装置１２に転送されたプログラムを実行し、後述するように、ポイントカードとして使用される二次元バーコードの発行、再発行、認証、ポイントの更新などの種々の処理を行う。二次元バーコードの構成については後述する。主記憶装置１２は、ＣＰＵ１１の主記憶領域を提供するもので、プログラムファイル１４１のプログラムが転送され、また、ＣＰＵ１１の作業領域として用いられる。通信装置１３は、インターネット４を介して店舗端末装置２及び携帯電話機３と情報を送受信する。
【００４３】
補助記憶装置１４は、ＣＰＵ１１の補助記憶領域を提供するもので、固定ディスク装置などによって構成される。プログラムファイル１４１は、後述するフローチャートに示すプログラムを含むファイルである。会員データベース１４２は、このポイントカードシステムを利用してポイントの蓄積／使用を可能とした会員に関する情報を登録したデータベースである。
【００４４】
配列記憶部１４３、リスト記憶部１４４は、それぞれ、個々の二次元バーコードと会員とを対応付けるための配列を記憶する。店舗データベース１４５は、店舗端末装置２が置かれる加盟店に関する情報を登録したデータベースである。二次元バーコードと、配列記憶部１４３に記憶される配列、リスト記憶部１４４に記憶されるリスト、並びに会員データベース１４２の関係については後述する。
【００４５】
図３は、このポイントカードシステムにおいてポイントカードとして適用される二次元バーコードの例を示す図である。図では、携帯電話機３の表示装置に表示された状態を示している。図示するように、この二次元バーコード１００は、二階調の二次元バーコードであり、その四隅には方向チェックマーク１０１〜１０４が設けられている。方向チェックマーク１０１〜１０４は、バーコードの方向を示すもので、１つだけ明表示されるチェックマーク１０４がバーコードの右下であることを示している。
【００４６】
チェックマーク１０１〜１０４以外のバーコードパターン部１０５については、そのパターンを任意に選ぶことができるが、選ばれたパターンは、曖昧性がなく一義的に特定される。もっとも、バーコードパターン部１０５に特定の情報を含ませるため、一部の特定の場所が特定のパターンを有するものとなっていても構わない。二次元バーコード１００のパターンは、所定の方法により数値化することができ、パターンと数値とは１対１で対応する。なお、二次元バーコード１００のパターンを数値化するプログラムは、サーバ装置１内に格納されているだけで、外部には公開されていない。
【００４７】
図４は、二次元バーコード１００と、配列記憶部１４３の配列及びリスト記憶部１４４のリストと、会員データベース１４２との関係を示す図である。図示するように、会員データベース１４２は、登録した会員毎に、会員ＩＤ１５１、会員情報１５２、会員が蓄積したポイント１５３を登録したデータベースとなっている。会員ＩＤ１５１は、各会員を一意に識別するための情報であり、配列記憶部１４３及びリスト記憶部１４４から参照される際のキーとして使用される。
【００４８】
会員情報１５２は、会員の属性に関する情報であり、少なくともポイントカードとして使用される二次元バーコードを携帯電話機３に送信するためのアドレスを含んでいる。このアドレスは、後述するポイントカードの再発行の際に、会員を特定するためにも用いられる。ポイント１５３は、会員が加盟店で商品を購入した際にプラスされ、商品と交換することによってマイナスされる。
【００４９】
配列記憶部１４３に記憶される配列は、二次元配列Ｄ（＊，＊）であり、一次元目の添字に入れられる値は、二次元バーコード１００から生成される数値組に含まれる数値（すなわち、後述する剰余ａ、ｂ）の個数に応じて０または１となっている。二次元目の添字に入れられる値は、一次元目の添字の値が０のときは剰余ａと、一次元目の添字の値が１のときは剰余ｂとなる。
【００５０】
配列記憶部１４３の配列の各要素に対応して必要に応じてリストの要素がつながれ、配列の各要素にはリストの先頭の要素を示すポインタが格納される。リストの各要素は、リスト記憶部１４４に記憶されるものである。リストの各要素には、会員ＩＤを登録することとなる。
【００５１】
ポイントカードとして使用される二次元バーコード１００が発行されると、そのパターンに対応した整数値となるように数値化される。二次元バーコード１００が数値化された数値Ｘは、除数Ａ（整数値）と、除数Ｂ（整数値）とでそれぞれ除算され、剰余ａ、ｂが求められる。
【００５２】
ここで、除数Ａと除数Ｂとの最小公倍数は、数値Ｘがとりうる最大値Ｘｍａｘと最小値Ｘｍｉｎの差よりも大きいという関係がある。この条件を満たす限り、数値Ｘが異なれば、剰余ａと剰余ｂとの両方が一致するということはあり得ない。また、除数Ａと除数Ｂとは、互いに素であって、なるべく大きさが近い（できれば、その差が１または２以内）ことが好ましい。従って、異なる数値Ｘに対しては、剰余ａと剰余ｂの組み合わせが全て異なっており、剰余ａと剰余ｂの組み合わせは、二次元バーコード１００のパターンと１対１で対応するものとなっている。
【００５３】
二次元バーコード１００に対応する会員ＩＤは、配列の要素Ｄ（０，ａ）からのリストに要素としてつながれ、また、配列の要素Ｄ（１，ｂ）からのリストの要素としてつながれる。同じ配列の要素に対応して複数の会員ＩＤを格納しておく必要があるときは、リストの要素がポインタでつながれる。リストの各要素は、当該要素に対応した会員ＩＤが不要となったときにリストから削除される。
【００５４】
新たに二次元バーコード１００を発行しようとする場合には、まずランダムなパターンが生成され、そのパターンから剰余ａ、ｂが求められる。配列の要素Ｄ（０，ａ）からのリストの要素として会員ＩＤと、配列の要素Ｄ（１，ｂ）からのリストの要素として含まれる会員ＩＤとに、同じ会員ＩＤがあるかどうかが調べられる。同じ会員ＩＤがあれば、その二次元バーコード１００は発行済みのものであることが分かる。この場合は、別のパターンの二次元バーコード１００が生成される。
【００５５】
また、会員が加盟店で商品を購入し、二次元バーコード１００をポイントカードとしてポイントを蓄積しようとするとき、或いは蓄積したポイントを使用して加盟店で商品と交換しようとするときは、後述するように店舗端末装置２において二次元バーコード１００が読みとられ、サーバ装置１に送られてくる。店舗端末装置２から送られてきた二次元バーコード１００からも同様にして剰余ａ、ｂが求められる。
【００５６】
ここでも、配列の要素Ｄ（０，ａ）からのリストの要素として会員ＩＤと、配列の要素Ｄ（１，ｂ）からのリストの要素として含まれる会員ＩＤとに、同じ会員ＩＤがあるかどうかが調べられる。同じ会員ＩＤがあれば、その二次元バーコード１００が認証されて、ポイントの蓄積／使用が可能となり、当該会員ＩＤに対応づけて会員データベース１４２に登録されているポイントがプラス／マイナスされる。同じ会員ＩＤがなければ、その二次元バーコード１００は認証されず、ポイントの蓄積／使用が拒否される。
【００５７】
図５は、図１の携帯電話機３の構成を示すブロック図である。図示するように、携帯電話機３は、ＣＰＵ３１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）３２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）３３と、入力装置３４と、表示装置３５と、通信装置３６とを備えている。携帯電話機３は、このほかにも通話を行うために必要な構成要素を備えているが、本発明とは直接関係がないため、図５において省略している。
【００５８】
ＣＰＵ３１は、ＲＯＭ３２に記憶されたプログラムを実行し、サーバ装置１から受信した二次元バーコード１００を管理する処理を行う。ＣＰＵ３１は、入力装置３４からの入力に従って、二次元バーコード１００を表示装置３５に表示させる。ＲＯＭ３２は、ＣＰＵ３１の処理プログラムを記憶する。ＲＡＭ３３は、データの記憶領域として用いられるものであり、当該データの中には、二次元バーコード１００の画像データも含まれる。
【００５９】
入力装置３４は、「１」〜「０」までの数字キー、「＊」キー、「＃」キーなどを含み、利用者の操作によって必要な情報をＣＰＵ３１に入力する。表示装置３５は、液晶表示装置などによって構成され、ポイントカードとして使用される二次元バーコード１００の画像を含む種々の情報を表示する。通信装置３６は、インターネット４を介して（実際には携帯電話網も介して）サーバ装置１と情報を送受信する。
【００６０】
図６は、図１の店舗端末装置２の構成を示すブロック図である。図示するように、店舗端末装置２は、ＣＰＵ２１と、記憶装置（主記憶装置及び補助記憶装置を含む）２２と、通信装置２３と、バーコードリーダ２４と、入力装置２５と、表示装置２６とを備えている。
【００６１】
ＣＰＵ２１は、記憶装置２２に記憶されたプログラムを実行し、携帯電話機３から読み取った二次元バーコード１００に基づいてサーバ装置１から送られてくる通知に従って、商品を購入した会員にポイントを付与し、会員がポイントを使用して商品と交換するために必要な処理を行う。記憶装置２２は、ＣＰＵ２１の処理プログラムを記憶すると共に、データの記憶領域として用いられる。通信装置２３は、インターネット４を介してサーバ装置１と情報を送受信する。
【００６２】
バーコードリーダ２４は、携帯電話機３の表示装置３５に表示されたポイントカードとして使用される二次元バーコード１００の画像を読み取る。入力装置２５は、会員に付与したポイントまたは会員が使用したポイントを入力する。表示装置２６は、携帯電話機３から読み取った二次元バーコード１００に基づいてサーバ装置１から送られてくる通知などを表示する。
【００６３】
以下、この実施の形態に適用されるポイントカードシステムにおける処理について説明する。このポイントカードシステムを利用して、二次元バーコード１００をポイントカードとして使用し、ポイントを蓄積／使用しようとする者は、予め会員登録を行う必要がある。会員登録により二次元バーコード１００が発行され、これを携帯電話機３の表示装置３５に表示させてポイントカードとして使用する。ポイントカードとしての二次元バーコード１００は、再発行も可能である。各会員のポイントは、サーバ装置１において管理される。なお、サーバ装置１においては、会員が各店舗で蓄積／使用したポイントについて店舗間で決済を行うための処理も行っているが、この処理は本発明と関係がないので説明を省略する。
【００６４】
本発明に関わる処理として、このポイントカードシステムで行われる処理は、
（１）会員登録処理
（２）再発行処理
（３）ポイント蓄積／交換処理
の３つに大きく分けられることとなる。以下、それぞれについて詳しく説明する。
【００６５】
図７は、会員登録処理を示すフローチャートである。このポイントカードシステムに会員登録しようとする者は、まず、自己の携帯電話機３の入力装置３４から、会員登録に必要な事項（少なくとも携帯電話機３のアドレスを含む）を入力する（ステップＳ１０１）。さらにこの者が入力装置３４から会員登録要求を入力すると、ステップＳ１０１で入力した必要事項と共に会員登録要求が通信装置３６からサーバ装置１に送信される（ステップＳ１０２）。その後、ＣＰＵ３１は、サーバ装置１からの情報の受信待ちとなる。
【００６６】
サーバ装置１では、通信装置１３が携帯電話機３から送られてきた会員登録要求を受信する（ステップＳ１５１）。この会員登録要求を受信すると、会員登録要求をした者に新たな会員ＩＤを付与し、付与した会員ＩＤと、会員登録要求と共に送られてきた必要事項（ユーザ情報）とを対応づけて会員データベース１４２に登録する。この時点で、当該会員のポイントは０として登録されるが、新規登録サービスとして数ポイントを登録してもよい（ステップＳ１５２）。
【００６７】
次に、ＣＰＵ１１は、ランダムにパターンを決定して二次元バーコード１００を生成する（ステップＳ１５３）。ＣＰＵ１１は、生成した二次元バーコード１００が既に発行済みのもののパターンと同じであるかどうかをチェックする発行済みバーコードチェック処理を行う（ステップＳ１５４）。
【００６８】
図８は、ステップＳ１５４の発行済みバーコードチェック処理を詳細に示すフローチャートである。発行済みバーコードチェック処理では、ＣＰＵ１１は、ステップＳ１５３で生成した二次元バーコード１００のパターンに対応した数値Ｘを生成する（ステップＳ２０１）。さらに、ＣＰＵ１１は、数値Ｘを除数Ａで除算して剰余ａを求め、また、数値Ｘを除数Ｂで除算して剰余ｂを求める（ステップＳ２０２）。
【００６９】
剰余ａ、ｂが求められると、ＣＰＵ１１は、配列の要素Ｄ（０，ａ）からつながるリストに要素として含まれる会員ＩＤを全て抽出する（ステップＳ２０３）。また、配列の要素（１，ｂ）からつながるリストに要素として含まれる会員ＩＤを全て抽出する（ステップＳ２０４）。ＣＰＵ１１は、配列の要素Ｄ（０，ａ）からのリストから抽出された各会員ＩＤと、配列の要素Ｄ（１，ｂ）からのリストから抽出された各会員ＩＤとを比較し、同じ会員ＩＤが取り出されたかどうかを判定する（ステップＳ２０５）。
【００７０】
同じ会員ＩＤが取り出されれなかったならば、ステップＳ２０３で求めた剰余ａ、ｂと共に、ステップＳ１５３で生成した二次元バーコード１００が未発行を示す情報を返却して（ステップＳ２０６）、発行済みバーコードチェック処理を終了し、図７の会員登録処理に復帰する。同じ会員ＩＤが取り出されたならば、ステップＳ１５３で生成した二次元バーコード１００が発行済みを示す情報を返却して（ステップＳ２０７）、発行済みバーコードチェック処理を終了し、図７の会員登録処理に復帰する。
【００７１】
図７の会員登録処理に復帰すると、ＣＰＵ１１は、発行済みバーコードチェック処理において未発行が返却されたかどうかを判定する（ステップＳ１５５）。発行済みが返却されていた場合には、ステップＳ１５３の処理に戻り、別のパターンを有する二次元バーコード１００を生成する。未発行が返却されていた場合には、ＣＰＵ１１は、配列の要素Ｄ（０，ａ）からのリストと、配列の要素Ｄ（１，ｂ）からのリストに、それぞれステップＳ１５２で付与した会員ＩＤをリストの要素としてつなげる（ステップＳ１５６）。
【００７２】
ＣＰＵ１１は、会員登録要求と共に受信した必要事項に含まれる携帯電話機３のアドレスを送付先として、通信装置１３から発行した二次元バーコード１００の画像データを送信させる（ステップＳ１５７）。二次元バーコード１００の画像データを携帯電話機３に送信した後、ＣＰＵ１１は、二次元バーコード１００をサーバ装置１内に残さないように破棄する（ステップＳ１５８）。二次元バーコード１００を送信し、これを破棄することにより、サーバ装置１の側における処理は終了となる。
【００７３】
携帯電話機３では、通信装置３６がステップＳ１５７で送信された二次元バーコード１００を受信する（ステップＳ１０３）。ＣＰＵ３１は、受信した二次元バーコード１００を表示装置３５に表示させる（ステップＳ１０４）。これで、会員登録処理が終了する。なお、ここで受信した二次元バーコード１００は、会員が入力装置３４から所定の操作を行うことで、いつでも表示装置３５に表示させることができる。
【００７４】
図９は、二次元バーコードの再発行処理を示すフローチャートである。二次元バーコード１００の再発行を受けようとする会員は、自己の携帯電話機３の入力装置３４から、会員登録時の必要事項として入力した会員情報（少なくとも携帯電話機３のアドレス）を入力する（ステップＳ３０１）。会員が入力装置３４から再発行要求を入力すると、ステップＳ３０１で入力した会員情報と共に再発行要求が通信装置３６からサーバ装置１に送信される（ステップＳ３０２）。その後、ＣＰＵ３１は、サーバ装置１からの情報の受信待ちとなる。
【００７５】
サーバ装置１では、通信装置１３が携帯電話機３から送られてきた再発行要求を受信する（ステップＳ３５１）。この再発行要求を受信すると、ＣＰＵ１１は、再発行要求と共に送られてきた会員情報に従って会員データベース１４２をサーチし、該当する会員ＩＤを抽出する（ステップＳ３５２）。ＣＰＵ１１は、ここで会員ＩＤを抽出できたかどうかを判定する（ステップＳ３５３）。
【００７６】
会員ＩＤを抽出できた場合には、再発行要求に含まれる会員ＩＤをリスト記憶部１４４に記憶されている全てのリストの各要素（すなわち、配列の全ての要素からつながるリストの各要素）からサーチする（ステップＳ３５４）。そして、サーチされた会員ＩＤを対応するリストから削除する（ステップＳ３５５）。これにより、既に発行されていた再発行前の二次元バーコード１００は使用不能となる。
【００７７】
既に発行されていた二次元バーコード１００を使用不能とした後、ＣＰＵ１１は、ランダムにパターンを決定して二次元バーコード１００を新たに生成する（ステップＳ３５６）。ＣＰＵ１１は、生成した二次元バーコード１００が既に発行済みのもののパターンと同じであるかどうかをチェックする発行済みバーコードチェック処理を行う（ステップＳ３５７）。発行済みバーコードチェック処理は、ステップＳ１５４のものと同じである。
【００７８】
発行済みバーコードチェック処理を終了し、再発行処理に復帰すると、ＣＰＵ１１は、発行済みバーコードチェック処理において未発行が返却されたかどうかを判定する（ステップＳ３５８）発行済みが返却されていた場合には、ステップＳ３５６の処理に戻り、別のパターンを有する二次元バーコード１００を生成する。未発行が返却されていた場合には、ＣＰＵ１１は、配列の要素Ｄ（０，ａ）からのリストと、配列の要素Ｄ（１，ｂ）からのリストに、それぞれステップＳ１５２で付与した会員ＩＤをリストの要素としてつなげる（ステップＳ３５９）。
【００７９】
ＣＰＵ１１は、当該会員の会員情報に含まれる携帯電話機３のアドレスを送付先として、通信装置１３から再発行した二次元バーコード１００の画像データを送信させる（ステップＳ３６０）。二次元バーコード１００の画像データを携帯電話機３に送信した後、ＣＰＵ１１は、ここでも二次元バーコード１００をサーバ装置１内に残さないように破棄する（ステップＳ３６１）。再発行した二次元バーコード１００を送信し、これを破棄することにより、サーバ装置１の側における処理は終了となる。
【００８０】
また、ステップＳ３５３において会員データベース１４２から該当する会員ＩＤが抽出されなかったと判定した場合には、ＣＰＵ１１は、再発行要求と共に受信した情報に含まれる携帯電話機３のアドレスを送付先として、通信装置１３から再発行不可通知を送信させる（ステップＳ３６２）。再発行不可通知を送信した場合も、サーバ装置１の側における処理が終了となる。
【００８１】
携帯電話機３では、通信装置３６がステップＳ３６０で送信された二次元バーコード１００またはステップＳ３６２で送信された再発行不可通知を受信する（ステップＳ３０３）。ＣＰＵ３１は、受信した二次元バーコード１００または再発行不可通知を表示装置３５に表示させる（ステップＳ３０４）。これで、再発行処理が終了する。ここで受信した二次元バーコード１００も、ユーザが入力装置３４から所定の操作を行うことで、いつでも表示装置３５に表示させることができる。
【００８２】
図１０は、二次元バーコードをポイントカードとして使用して、ポイントを蓄積／使用する処理を示すフローチャートである。会員が加盟店で商品を購入し、その購入金額に応じたポイントを蓄積しようとする場合、或いは加盟店でポイントを使用して商品に交換しようとする場合、ポイントカードとしての二次元バーコード（ステップＳ１０３またはＳ３０３で受信したもの）を、自己の携帯電話機３の表示装置３５に表示させる。そして、二次元バーコード１００が表示された表示装置３５を、店舗端末装置２のバーコードリーダ２４に押し当てる。
【００８３】
店舗端末装置２では、バーコードリーダ２４が携帯電話機３の表示装置３５に表示された二次元バーコード１００を読み取り、これをＣＰＵ２１に渡す（ステップＳ４０１）。ＣＰＵ２１は、読み取った二次元バーコード１００を、通信装置２３からサーバ装置１に送信させる（ステップＳ４０２）。その後、ＣＰＵ２１は、サーバ装置１からの情報の受信待ちとなる。
【００８４】
サーバ装置１では、通信装置１３が店舗端末装置２から送られてきた二次元バーコード１００を受信する（ステップＳ４５１）。ＣＰＵ１１は、受信した二次元バーコード１００がいずれかの会員に発行したもののパターンと同じであるかどうかをチェックする発行済みバーコードチェック処理を行う（ステップＳ４５２）。発行済みバーコードチェック処理は、ステップＳ１５４のものと同じである。
【００８５】
発行済みバーコードチェック処理を終了し、ポイント蓄積／交換処理に復帰すると、ＣＰＵ１１は、発行済みバーコードチェック処理において未発行が返却されたかどうかを判定する（ステップＳ４５３）。未発行が返却されていた場合には、受信した二次元バーコード１００に基づくポイントの蓄積／交換はできないので、ＣＰＵ１１は、通信装置１３から店舗端末装置２に使用不可通知を送信させる（ステップＳ４５４）。これでサーバ装置１の側における処理が終了となる。
【００８６】
一方、発行済みが返却されていた場合には、ＣＰＵ１１は、受信した二次元バーコード１００に関連した会員ＩＤに対応づけて会員データベース１４２に登録されている会員のポイントを読み出す（ステップＳ４５５）。ＣＰＵ１１は、読み出したポイントを通信装置１３から店舗端末装置２に送信させる（ステップＳ４５６）。その後、ＣＰＵ１１は、店舗端末装置２からの情報の受信待ちとなる。
【００８７】
サーバ装置１からの情報の受信待ちとなっていた店舗端末装置２では、通信装置２３がステップＳ４５６で送信された会員のポイントまたはステップＳ４５４で送信された使用不可通知を受信する（ステップＳ４０３）。ＣＰＵ２１は、ここで受信したのがステップＳ４５６で送信された会員のポイントであるかどうかを判定する（ステップＳ４０４）。会員のポイントでなければ、使用不可通知を受信しているので、ＣＰＵ２１は、受信した使用不可通知を表示装置２６に表示させる（ステップＳ４０５）。これでポイント蓄積／交換処理を終了する。
【００８８】
会員のポイントであれば、ＣＰＵ２１は、当該受信した会員のポイントを表示装置２６に表示させる（ステップＳ４０６）。次に、会員が商品を購入してポイントを蓄積しようとする場合には、ポイントを蓄積すべき旨とそのポイントを、ポイントを使用して商品に交換しようとする場合には、ポイントを使用すべき旨とそのポイントを、加盟店の店員が入力装置２５から入力する。もっとも、使用可能なポイントは、蓄積されていたポイントの範囲に限られる（ステップＳ４０７）。ＣＰＵ２１は、ポイントを蓄積すべき旨または使用すべき旨の情報及びそのポイントを、通信装置２３からサーバ装置１に送信させる（ステップＳ４０８）。これで店舗端末２の側における処理が終了となる。
【００８９】
店舗端末装置２からの情報の受信待ちとなっていたサーバ装置１では、通信装置１３がポイントを蓄積すべき旨または使用すべき旨の情報及びそのポイントを受信する（ステップＳ４５７）。ＣＰＵ１１は、これに基づいて、会員データベース１４２に登録されているポイントをプラスまたはマイナスして更新する（ステップＳ４５８）。
【００９０】
ＣＰＵ１１は、更新した後の会員の残りポイントを、当該会員の携帯電話機３のアドレスを送信先として、通信装置１３から送信させる（ステップＳ４５９）。ＣＰＵ１１は、さらにポイントを蓄積すべき旨または使用すべき旨の情報及びそのポイントを送ってきた店舗端末装置２に対応した加盟店について、ポイントの増減に関する情報を店舗データベース１４５に登録する（ステップＳ４６０）。これでサーバ装置１における処理が終了となる。
【００９１】
ポイントの蓄積または交換を行った会員の携帯電話機３では、通信装置３６がステップＳ４５９でサーバ装置１から送信された残りポイントを受信する（ステップＳ４９１）。ＣＰＵ３１は、受信した残りポイントを表示装置３５に表示させる（ステップＳ４９２）。これでポイント蓄積／交換処理が全て終了となる。
【００９２】
以上説明したように、この実施の形態にかかるポイントカードシステムでは、ポイントカードとして使用される二次元バーコード１００を会員の携帯電話機３に送信するに当たって、サーバ装置１は、二次元バーコード１００に対応した数値Ｘから剰余ａ、ｂを求め、配列の要素Ｄ（０，ａ）からのリストと、配列の要素Ｄ（１，ｂ）からのリストとに、会員ＩＤを要素として登録している。そして、二次元バーコード１００を会員の携帯電話機３に送信している。
【００９３】
一方、店舗端末装置２では、会員の携帯電話機３の表示装置３５に表示された二次元バーコード１００を読み取り、サーバ装置１に送信している。サーバ装置１では、受信した二次元バーコード１００に対応した数値Ｘから剰余ａ、ｂを求め、配列の要素Ｄ（０，ａ）からのリストに含まれる各要素と、配列の要素Ｄ（１，ｂ）からのリストに含まれる各要素とを参照して、ポイントカードとしての二次元バーコード１００を認証している。すなわち、二次元バーコード１００のパターンを照合することなく、二次元バーコード１００の認証のための処理量が少なくてすむ。認証のための処理量が小さいため、二次元バーコード１００の認証の処理が集中するときとそうでないときとのサーバ装置１の稼働率の差が小さく、コンピュータ資源を有効に利用することができる。
【００９４】
二次元バーコード１００のパターンに対応した数値Ｘを除算する除数Ａ、Ｂの最小公倍数は、数値Ｘがとりうる最大値Ｘｍａｘと最小値Ｘｍｉｎの差より大きいという関係がある。この関係を満たす限り、異なるパターンの二次元バーコード１００では、剰余ａ、ｂの両方が一致することがない。配列の要素Ｄ（０，ａ）からのリストと配列の要素（１，ｂ）からのリストとに同じ会員ＩＤが要素としてつながれる二次元バーコード１００のパターンは、１つだけということとなる。従って、個々の二次元バーコード１００を一義的に特定することができる。
【００９５】
このように配列の要素とリストの要素とを参照するだけで、二次元バーコード１００を一義的に特定することができるので、発行した二次元バーコード１００のパターンをサーバ装置１に残しておく必要がない。情報量の大きな二次元バーコード１００のパターンを残さないでよいことから、サーバ装置１の記憶容量が小さくても済むことになる。多くの二次元バーコード１００をポイントカードとして発行するようにしても、そのために必要な記憶容量が爆発的に増えることはなく、コンピュータ資源としての記憶装置を有効に使用することができる。
【００９６】
また、ポイントカードとして使用される二次元バーコード１００のパターンは、サーバ装置１に残さないでよいことから、サーバ装置１をハッキングしても盗み出されることがない。二次元バーコード１００のパターンは、会員の携帯電話機３内においてのみ管理される。従って、この実施の形態にかかるポイントカードシステムでは、ポイントカードとして使用される二次元バーコード１００について、第三者に漏洩する危険を、従来のセキュリティシステムに比べて非常に小さいものとすることができる。
【００９７】
本発明は、上記の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【００９８】
上記の実施の形態では、二次元バーコード１００に対応した数値を、そのまま除数Ａ、Ｂで除算して、剰余ａ、ｂを求めるものとしていた。これに対して、二次元バーコード１００に対応した数値Ｘから該数値がとり得る最小値Ｘｍｉｎを減算した値、または二次元バーコード１００に対応した数値Ｘがとり得る値の最大値Ｘｍｉｎから二次元バーコード１００に対応する数値Ｘを減算した値を、数値Ａ、Ｂで除算して、剰余ａ、ｂを求めるものとしてもよい。この場合、二次元バーコード１００に対応した数値がとり得る値の範囲によっては、被除数がかなり小さくなって、除算の処理が高速化される。
【００９９】
上記の実施の形態では、二次元バーコード１００に対応した数値Ｘを除数Ａ、Ｂで除算した剰余ａ、ｂを求めていた。この剰余ａ、ｂの組み合わせは、二次元バーコード１００のパターン毎に異なるものとなっていた。しかしながら、二次元バーコード１００に対応した数値から求められる複数の数値の組がパターン毎に異なるものとなるのであれば、上記とは別の演算式を適用することができる。例えば、二次元バーコード１００を複数の領域に分割し、各領域をそのまま数値化した複数の数値の組は、二次元バーコード１００のパターン毎に異なるものとなる。
【０１００】
上記の実施の形態では、サーバ装置１は、二次元バーコード１００を新たに発行または再発行する際に、そのパターンを生成してから、これを数値化するものとしていた。これに対して、ランダムに生成した数値から剰余ａ、ｂを求め、配列の要素Ｄ（０，ａ）、Ｄ（１，ｂ）からのリストの各要素を参照した結果として発行済みでないことが分かってから、数値に対応したパターンを生成して二次元バーコード１００として携帯電話機３に宛てて送信するものとしてもよい。この場合、実際には使用できない二次元バーコード１００のパターンを生成する必要がなくなるので、余分な処理が行わないで済むようになる。
【０１０１】
上記の実施の形態では、二次元バーコード１００のパターンに対応した数値Ｘを除算する除数は、Ａ、Ｂの２つだけであったので、二次元配列Ｄ（＊，＊）の一次元目の添字には、０または１の２つの値が入れられるようになっていた。これに対して、数値Ｘを除算する除数を３種類以上とし、二次元配列の一次元目の添字に３種類以上の値を入れられるようにしてもよい。また、除数のそれぞれに対応して異なる一次元配列を用いるものとしてもよい。この場合、各一次元配列の添字には、対応する剰余を入れるものとすることができる。
【０１０２】
上記の実施の形態では、二次元バーコード１００のパターンに対応した数値Ｘを除数Ａ、Ｂで除算して剰余ａ、ｂを求め、二次元配列の要素Ｄ（０，ａ）、Ｄ（１，ｂ）からのリストに対応する会員ＩＤを要素としてつなげていた。これにより、二次元バーコード１００のパターンをサーバ装置１内に残しておかなくても、二次元バーコード１００のパターンと会員との対応付けができるものとしていた。
【０１０３】
ところが、この方法によっては、会員と対応づけて剰余ａ、ｂが実質的にサーバ装置１内に残されていることとなる。各会員に対応する剰余ａ、ｂの他に、除数Ａ、Ｂ、数値Ｘがとり得る値の範囲、及び二次元バーコード１００のパターンから数値Ｘを生成する手法が入手できれば、かなり困難ではあるが、サーバ装置１に残された情報に基づいて、二次元バーコード１００のパターンを復元することは不可能ではない。そこで、上記の実施の形態に次のような変形を加えることで、サーバ装置１内にある情報のみでは、二次元バーコード１００のパターンを復元することが完全に不可能なものとすることができる。
【０１０４】
図１１は、この変形例における二次元バーコード１００と、配列記憶部１４３の配列及びリスト記憶部１４４のリストと、会員データベース１４２との関係を示す図である。図示するように、会員登録要求または再発行要求の際に二次元バーコード１００のパターンが生成されると、まず上記と同じようにして、二次元バーコード１００のパターンに対応した数値Ｘが生成される。次に、この数値Ｘを所定の暗号鍵を用いて暗号化して、暗号化値Ｘ’を求める。
【０１０５】
この暗号化値Ｘ’を除数Ａ、Ｂでそれぞれ除算し、その剰余ａ、ｂを求める。さらに求めた剰余ａ、ｂをそれぞれ所定の暗号鍵を用いて暗号化し、暗号化値ａ’、ｂ’を求める。二次元バーコード１００に対応する会員ＩＤは、二次元配列の要素Ｄ（０，ａ’）からのリストと、要素Ｄ（１，ｂ’）からのリストとに、それぞれ要素としてつなげるものとすればよい。店舗端末装置２から送られてきた二次元バーコード１００のパターンからは、同様に暗号化値ａ’、ｂ’を求め、二次元配列の要素Ｄ（０，ａ’）からのリストと、要素Ｄ（１，ｂ’）からのリストとに要素としてつながれた会員ＩＤを抽出するものとすればよい。
【０１０６】
ここで、二次元バーコード１００を発行する場合も認証する場合も、暗号化の処理は行っているが、復号化の処理はいっさい行われていない。そこで、数値Ｘを暗号化して暗号化値Ｘ’を生成するための暗号鍵と、剰余ａ、ｂを暗号化して暗号化値ａ’、ｂ’を生成するための暗号鍵とには、復号鍵が異なる非対称鍵系の暗号鍵を用い、サーバ装置１内には、暗号鍵だけを置いておくものとすることができる。この場合において、サーバ装置１がハッキングされ、暗号化値ａ’、ｂ’が分かってしまっても、復号鍵がないので、剰余ａ、ｂを復元することができない。万が一剰余ａ、ｂが復元され、暗号化値Ｘ’まで解読されてしまっても、復号鍵がないので、数値Ｘを復元することができない。従って、このような復号鍵と非対称の暗号鍵を用いた暗号化の処理を加えることで、二次元バーコード１００の漏洩に対するセキュリティをさらに強化することができる。
【０１０７】
上記の実施の形態では、各会員が使用する二次元バーコード１００は、１種類だけであることを前提として説明した。しかしながら、１人の会員が複数種類の二次元バーコード１００を使い分けて、それぞれの二次元バーコード１００に応じた認証を受けられるようにしたい場合もある。例えば、コンサートなどのイベントのチケットとして二次元バーコード１００を用いる場合、イベント毎に異なる二次元バーコード１００が必要となるからである。これは、次のような変形を加えることで、実現することができるようになる。
【０１０８】
図１２は、この変形例における二次元バーコード１００と、配列記憶部１４３の配列及びリスト記憶部１４４のリストと、会員データベース１４２との関係を示す図である。会員は、二次元バーコード１００をポイントカードとして使用するのではなく、イベントのチケットとして使用することができるものとする。イベント毎に異なるチケットＮｏ．が付された二次元バーコード１００が発行され、会員の携帯電話機３に送信される。
【０１０９】
会員がイベントのチケットを購入した場合には、二次元バーコード１００のパターンが生成され、これに基づいて、上記の実施の形態と同様にして除数ａ、ｂが求められる。二次元配列の要素Ｄ（０，ａ）、Ｄ（１，ｂ）からつなげられるリストの各要素には、会員ＩＤとチケットＮｏ．とが組み合わせて登録される。ここでは、会員ＩＤとチケットＮｏ．との組み合わせが完全に一致する場合にのみ、発行済みバーコードチェック処理で一致が返却される。一致が返却された場合には、二次元バーコード１００に対応するチケットＮｏ．を会員ＩＤと組み合わせて、二次元配列の要素Ｄ（０，ａ）、Ｄ（１，ｂ）からつなげられるリストの要素として登録する。
【０１１０】
イベント会場の入場口で読み取られた二次元バーコード１００に対しても、会員ＩＤとチケットＮｏ．との組み合わせが完全に一致する場合にのみ、発行済みバーコードチェック処理で一致が返却される。そして、当該二次元バーコード１００を有する会員が、該当するイベントのチケットを正当に購入した者として認証される。
【０１１１】
このように、リストの各要素に会員ＩＤに加えて二次元バーコード１００の種類を示す情報を組み合わせて登録しておくことで、同じ会員が複数種類の二次元バーコード１００を使い分けて、それぞれに対して認証を得ることができるようになる。
【０１１２】
上記の実施の形態では、会員登録した際または再発行要求した際に、会員の携帯電話機３に送られる二次元バーコード１００は、平文のままであった。これに対して、会員に（再）発行した二次元バーコード１００を暗号化して、携帯電話機３に送信することができる。携帯電話会社の公式サイトとして会員登録を受け付ければ、サーバ装置１には携帯電話機３の個体番号が通知されてきている。そこで、サーバ装置１は、通知された個体番号を暗号鍵として用いて二次元バーコード１００を暗号化して送信し、携帯電話機３において個体番号を復号鍵として用いて復号するようにしてもよい。これにより、サーバ装置１から携帯電話機３への送信途中で二次元バーコード１００が盗み出されてしまうのを防ぐことができるようになる。
【０１１３】
上記の実施の形態では、ポイントカードとして使用される二次元バーコード１００は、二階調で携帯電話機３の表示装置３５に表示されるものとしていた。これに対して、多階調のパターンを有するバーコードや、三次元のパターンを有するバーコードをポイントカードとして適用することもできる。店舗端末装置２と携帯電話機３とをブルートゥース技術の適用などにより直接通信可能に構成した場合には、視認不可能な情報であっても、上記した二次元バーコード１００の代わりにポイントカードとして適用することができる。どのような形態の識別情報であっても、１対１で対応する数値を求められるものであればよい。
【０１１４】
上記の実施の形態では、ポイントカード（或いはチケット）として二次元バーコード１００を使用し、その認証のための技術として本発明を適用した場合について説明した。しかしながら、本発明の適用範囲はポイントカード（或いはチケット）に限るものではなく、識別情報を用いて認証（個人認証またはグループ認証など）を受ける場合全般に適用することができる。
【０１１５】
上記の実施の形態では、サーバ装置１、店舗端末装置２、及び携帯電話機３の処理プログラムは、それぞれ主記憶装置１２、記憶装置２２、或いはＲＯＭ３２に予め記憶されているものとして説明した。これに対して、これらの処理プログラムの全部または一部のみをＣＤ−ＲＯＭやＤＶＤ−ＲＯＭなどのコンピュータ読み取り可能な記録媒体に格納して、ハードウェアとは別に配布するものとしてもよい。また、これらの処理プログラムの全部または一部をインターネット上のＷｅｂサーバ装置が有する固定ディスク装置に格納しておき、サーバ装置１、店舗端末装置２、或いは携帯電話機３からの要求に従って、インターネットなどのネットワークを通じて配信するものとしてもよい。
【０１１６】
【発明の効果】
以上説明したように、本発明によれば、識別情報の発行及び認証において、認証処理の高速化とセキュリティの向上とを同時に達成することができる。
【０１１７】
また、認証処理が集中したときとしないときとの処理量の差が少なく、記憶容量も少なくて済むので、コンピュータ資源を有効に利用することができる。
【図面の簡単な説明】
【図１】本発明の実施の形態に適用されるポイントカードシステムを示すブロック図である。
【図２】図１のサーバ装置の構成を示すブロック図である。
【図３】二次元バーコードにより構成され、携帯電話機に表示されるポイントカードの例を示す図である。
【図４】図３の二次元バーコードと、配列、リスト及び会員データベースとの関係を示す図である。
【図５】図１の携帯電話機の構成を示すブロック図である。
【図６】図１の店舗端末装置の構成を示すブロック図である。
【図７】会員登録処理を示すフローチャートである。
【図８】図７の発行済みバーコードチェック処理を詳細に示すフローチャートである。
【図９】再発行処理を示すフローチャートである。
【図１０】ポイント蓄積／使用処理を示すフローチャートである。
【図１１】図３の二次元バーコードと、配列、リスト及び会員データベースとの関係の変形例を示す図である。
【図１２】
図３の二次元バーコードと、配列、リスト及び会員データベースとの関係の変形例を示す図である。
【符号の説明】
１  サーバ装置
２（２−１〜ｍ）  店舗端末装置
３（３−１〜ｎ）  携帯電話機
４  インターネット
１１  ＣＰＵ
１２  主記憶装置
１３  通信装置
１４  補助記憶装置
２１  ＣＰＵ
２２  記憶装置
２３  通信装置
２４  バーコードリーダ
２５  入力装置
２６  表示装置
３１  ＣＰＵ
３２  ＲＯＭ
３３  ＲＡＭ
３４  入力装置
３５  表示装置
３６  通信装置
１００  二次元バーコード（ポイントカード）
１０１〜１０４  方向チェックマーク
１０５  バーコードパターン部
１４１  プログラムファイル
１４２  会員データベース
１４３  配列記憶部
１４４  リスト記憶部
１４５  店舗データベース
【図１】
2004240648.tif 000003
【図２】
2004240648.tif 000004
【図３】
2004240648.tif 000005
【図４】
2004240648.tif 000006
【図５】
2004240648.tif 000007
【図６】
2004240648.tif 000008
【図７】
2004240648.tif 000009
【図８】
2004240648.tif 000010
【図９】
2004240648.tif 000011
【図１０】
2004240648.tif 000012
【図１１】
2004240648.tif 000013
【図１２】
2004240648.tif 000014