2007年07月06日
本田季伸の発明で権利化された特許紹介!No3
【0071】
比較的容易に偽造できた一次バーコードが自動販売機12のバーコードリーダ204で読み取られたとしても、これによって発行される二次バーコードは、一次バーコードデータベース105に登録されたアドレスを宛先として送信される。二次バーコードは、一次バーコードを偽造した者の携帯電話機13に届くことはない。このため、仮に一次バーコードが偽造されたとしても、商品が不正に購入されることがない。
【0072】
携帯電話機13が受信した二次バーコードは、自動販売機12から送られた暗号鍵によって暗号化されており、これを復号化する復号鍵を有しているのは、一次バーコードを読み取った自動販売機12しかない。他の自動販売機12で二次バーコードが読み取られても、サーバ装置11は、正しい復号鍵が得られないために、二次バーコードを復号化することができない。他人の一次バーコードの偽造によって送られた二次バーコードを携帯電話機13が受信したとしても、その利用者は、二次バーコードの発行のトリガとなった一次バーコードがどの自動販売機12で読み取られたのかを知る術がない。このため、利用者が意図せずに送られてきた二次バーコードによって、商品が不正に購入されることがない。
【0073】
一次バーコードデータベース105は、利用者の決済手段に関する情報を登録しており、自動販売機12から購入された商品代金を、この決済手段に基づいて課金している。このため、利用者は、一次バーコードを表示可能な携帯電話機13さえ持ち歩いていれば、いつでもキャッシュレスで自動販売機12から商品を購入できる。
【0074】
第2の実施の形態
上記の第1の実施の形態では、各利用者の一次バーコード及び二次バーコードは、それぞれサーバ装置11の一次バーコードデータベース105、二次バーコードデータベース106に画像として記憶されていた。つまり、一次バーコード及び二次バーコードは、利用者の携帯電話機13においてだけでなく、サーバ装置11においても管理されるものとしていた。この実施の形態では、サーバ装置11において一次バーコード及び二次バーコードを管理していなくても、上記の第1の実施の形態と同じサービスを提供できる自動販売機システムについて説明する。
【0075】
図10は、この実施の形態におけるサーバ装置11の構成を示すブロック図である。この実施の形態におけるサーバ装置11は、一次バーコードデータベース105及び二次バーコードデータベース106の代わりに利用者データベース107を備えている。利用者データベース107の詳細は後述するが、一次バーコード及び二次バーコードの画像データは、利用者データベース107を含むサーバ装置11内のどこにも保存されていない。もっとも、サーバ装置11は、自動販売機12から送られてきたバーコードの画像データが、一次バーコードであるか二次バーコードであるかに関してだけは、そのパターンから判断することができるものとする。
【0076】
一次バーコード及び二次バーコードの画像データがサーバ装置11内に保存されていないので、この実施の形態では、バーコードの照合によらないで利用者認証が行われることとなる。図11は、この実施の形態における利用者認証の方法を説明する図である。利用者認証の方法は、一次バーコードと二次バーコードとで異なるところがないので、この図の説明では単に「バーコード」として説明する。この図にある第1テーブル111及び第2テーブル112は、それぞれ記憶装置102の所定の領域に記憶されている。
【0077】
自動販売機12のバーコードリーダ204で読み取られたバーコードの画像データ(図中、実線で示す)を受信すると、サーバ装置11は、これを所定の方法で数値化する。バーコードのパターンが異なれば、数値化された後の値は異なることとなる。バーコードを数値化した値X(以下、バーコード値と呼ぶ)を数値Aで除算した剰余aと数値Bで除算した剰余bとがそれぞれ求められる。数値Aと数値Bとの最小公倍数は、バーコード値がとり得る値の最大値と最小値との差よりも大きいという関係がある。この関係を満たす場合、互いに異なる2つのバーコード値をそれぞれ数値Aで除算した剰余aが一致する場合には、当該2つのバーコード値をそれぞれ数値Bで除算した剰余bが一致することはあり得なくなる。数値Aと数値Bとは互いに素であることが好ましい。
【0078】
剰余aに対応した第1テーブル111内の記憶位置には、利用者データベース107において当該バーコードの利用者情報が記憶された位置を指し示すポインタが記憶されている。剰余bに対応した第2テーブル112内の記憶位置には、利用者データベース107において当該バーコードの利用者情報が記憶された位置を指し示すポインタが記憶されている。自動販売機12から送られてきたバーコードは、第1テーブル111と第2テーブル112の両方から同一の利用者まで辿ることができたので、当該利用者がバーコードの所有者として認証される。
【0079】
剰余aに対応した第1テーブル111内の記憶位置には、利用者データベース107において他のバーコード(図中、破線で示す)の利用者情報が記憶された位置を指し示すポインタも記憶されている。しかし、第2テーブル112からは当該他のバーコードの利用者情報まで辿ることができない。他のバーコードの画像(図中、破線で示す)データをサーバ装置11が受信した場合、そのバーコード値X’を数値Aで除算した剰余a’が剰余aに一致する場合、第1テーブル111からは実線で示したバーコードの利用者情報まで辿ることができる。しかし、バーコード値X’を数値Bで除算した剰余b’が剰余bに一致することはないので、第2テーブル112からは実線で示したバーコードの利用者情報まで辿ることができない。従って、受信したバーコードとは無関係な利用者が誤って認証されることは起こり得ない。
【0080】
次に、利用者データベース107について詳しく説明する。図12は、利用者データベース107の構成を示す図である。利用者データベース107の各レコードは、利用者登録の度に新たに生成され、図示するように、利用者ID、利用者の属性情報(性別及び年齢)、アドレス、決済手段、一次バーコードのバーコード値の剰余a及び剰余b、二次バーコードのバーコード値の剰余a及び剰余b、二次バーコードの発行日時、二次バーコードの有効期限、並びに二次バーコードの使用済みフラグを含んでいる。
【0081】
一次バーコード及び二次バーコードのバーコード値の剰余a及び剰余bは、それぞれ一次バーコード及び二次バーコードに対応する数値を数値A及びBで除算した場合の剰余であり、利用者データベース107から第1テーブル111に辿るために用いられる。その他は、第1の実施の形態のものと同じであるが、二次バーコードの剰余a及び剰余b、発行日時、有効期限並びに使用済みフラグについては、1レコードに1つずつしか利用者データベース107に登録されない。利用者は何度でも二次バーコードの発行を受けることができるが、これらの項目は、新たな二次バーコードが発行される度に更新される。
【0082】
以下、この実施の形態にかかる自動販売機システムにおける処理について説明する。このシステムを利用して自動販売機12で商品を購入しようとする利用者は、予め利用者登録を行って、一次バーコードの発行を受けておかなければならない。図13は、この利用者登録処理を示すフローチャートである。
【0083】
利用者は、例えばサーバ装置11から携帯電話機13に登録用フォームを取得し、入力装置304から年齢、性別及びアドレス、決済手段といった利用者情報を入力し、ネットワーク40を介してサーバ装置11に送信する。サーバ装置11の第2通信装置104は、この利用者情報が含まれる登録用フォームを受信する(ステップS301)。CPU101は、利用者IDを付与すると共に、受信した登録用フォームに記入された利用者情報を利用者データベース107に登録する(ステップS302)。
【0084】
CPU101は、ランダムに一次バーコードの画像パターンを生成する(ステップS303)。CPU101は、生成した一次バーコードの画像パターンを所定の方法で数値化し、数値化したバーコード値を変数Xに代入する(ステップS304)。ここで一次バーコードの画像パターンを数値化する方法としては、同じパターンであれば必ず同じ数値となり、異なるパターンであれば必ず異なる数値となるものであれば、任意の方法を適用することができる。
【0085】
CPU101は、バーコード値Xを数値Aで除算した剰余aを求め(ステップS305(a))、バーコード値Xを数値Bで除算した剰余bを求める(ステップS305(b))。数値Aと数値Bとの最小公倍数は、バーコード値X(後述する二次バーコードに対応するものも含む)がとり得る値の最大値と最小値との差よりも大きい。CPU101は、第1テーブル111のうちの剰余aに対応する記憶位置に登録されているポインタを全て取り出し(ステップS306(a))、第2テーブル112のうちの剰余bに対応する記憶位置に登録されているポインタを全て取り出す(ステップS306(b))。
【0086】
CPU101は、第1テーブル111から取り出したポインタと第2テーブル112から取り出したポインタとを比較し、利用者データベース107に登録されている利用者情報のうちで同一の利用者情報を指し示すものがあるかどうかを判定する(ステップS307)。第1テーブル111と第2テーブル112とに同一の利用者情報を指し示すポインタがあれば、ステップS303の処理に戻り、一次バーコードの発行をやり直しさせる。
【0087】
第1テーブル111と第2テーブル112とに同一の利用者情報を指し示すポインタがなければ、CPU101は、第1テーブル111のうちの剰余aに対応する記憶位置に、利用者データベース107に登録した当該利用者の利用者情報を指し示すポインタを登録すると共に、利用者データベース107の当該利用者のレコードに含まれる一次バーコードの剰余aの項目の数値をステップS305(a)で求めた数値に更新する(ステップS308(a))。CPU101は、また、第2テーブル111のうちの剰余bに対応する記憶位置に、利用者データベース107に登録した当該利用者の利用者情報を指し示すポインタを登録すると共に、利用者データベース107の当該利用者のレコードに含まれる一次バーコードの剰余bの項目の数値をステップS305(b)で求めた数値に更新する(ステップS308(b))。
【0088】
ステップS308(a)または(b)において、利用者データベース107の該当位置に他の利用者の利用者情報を指し示すポインタが登録されていた場合は、リストでつなぐなどの手法により、当該利用者の利用者情報を指し示すポインタも同じ位置に重複して登録する。
【0089】
第1テーブル111及び第2テーブル112へのポインタの登録が終了すると、CPU101は、ステップS303で生成した一次バーコードの画像パターンを、利用者情報に含まれるアドレスに従って第2通信装置104から携帯電話機13に送信する(ステップS309)。CPU101は、一次バーコードの画像パターンの送信が完了した時点で、その一次バーコードの画像パターンを破棄する(ステップS310)。そして、このフローチャートの処理を終了する。
【0090】
利用者が発行された一次バーコードを紛失した場合に、一次バーコードの再発行要求が携帯電話機13から送られてくる。この場合における一次バーコードの再発行も、ステップS303〜S310と同じ処理で行われるが、ステップS308(a)及び(b)に次のような処理が追加される。CPU101は、利用者データベース107の当該利用者のレコードに含まれる一次バーコードの剰余a及び剰余bに従って、第1テーブル111及び第2テーブル112にこれまでに登録されていた当該利用者の利用者情報を指し示すポインタを削除してから、二次バーコードの剰余a及び剰余bの項目の数値をそれぞれステップS305(a)及び(b)で求めた数値に更新する。
【0091】
上記のように利用者登録をし、一次バーコードの発行を受けた利用者は、第1の実施の形態の場合と同じように自動販売機12で商品を購入することができる。この実施の形態においても、商品を購入する場合の全体的な流れは、第1の実施の形態の場合とほぼ同じである。しかし、この実施の形態では、一次バーコード及び二次バーコードの画像データがサーバ装置11内に蓄積されないので、二次バーコードの発行手続が第1の実施の形態と異なることとなる。一次バーコードまたは二次バーコードの画像データをサーバ装置11が自動販売機12から受信したときに、これらのバーコードに基づいて利用者を認証するための手続も第1の実施の形態と異なることとなる。
【0092】
図14は、この実施の形態においてサーバ装置11のCPU101が実行する二次バーコード発行処理を示すフローチャートである。このフローチャートの処理は、ステップS143〜S146の処理に代わって実行される。
【0093】
自動販売機12から一次バーコードの画像データを受信すると、CPU101は、受信した一次バーコードに基づく利用者認証処理を行う(ステップS401)。利用者認証処理については後述する。CPU101は、ステップS401の利用者認証処理において利用者の認証が得られたかどうかを判定する(ステップS402)。利用者の認証が得られなかった場合には、二次バーコードを発行することなく、このフローチャートの処理を終了する。
【0094】
ステップS401の利用者認証処理において利用者の認証が得られた場合には、CPU101は、認証が得られた利用者についての利用者データベース107のレコードを参照して、利用者が各種の条件(ステップS202〜S204と同様)を満たしているかどうかを判定する(ステップS403)。利用者が各種の条件のいずれか1つでも満たしていなければ、二次バーコードを発行することなく、このフローチャートの処理を終了する。
【0095】
利用者が各種の条件の全てを満たしている場合には、CPU101は、ランダムに二次バーコードの画像パターンを生成する(ステップS404)。CPU101は、生成した二次バーコードの画像パターンを所定の方法で数値化し、数値化したバーコード値を変数Xに代入する(ステップS405)。二次バーコードの画像パターンを数値化する方法としても、ステップS304の場合と同じである。
【0096】
CPU101は、バーコード値Xを数値Aで除算した剰余aを求め(ステップS406(a))、バーコード値Xを数値Bで除算した剰余bを求める(ステップS406(b))。数値Aと数値Bは、図13のフローチャートで示したのと同じ値が用いられる。CPU101は、第1テーブル111のうちの剰余aに対応する記憶位置に登録されているポインタを全て取り出し(ステップS407(a))、第2テーブル112のうちの剰余bに対応する記憶位置に登録されているポインタを全て取り出す(ステップS407(b))。
【0097】
CPU101は、第1テーブル111から取り出したポインタと第2テーブル112から取り出したポインタとを比較し、利用者データベース107に登録されている利用者情報のうちで同一の利用者情報を指し示すものがあるかどうかを判定する(ステップS408)。第1テーブル111と第2テーブル112とに同一の利用者情報を指し示すポインタがあれば、ステップS408の処理に戻り、二次バーコードの発行をやり直しさせる。
【0098】
第1テーブル111と第2テーブル112とに同一の利用者情報を指し示すポインタがなければ、CPU101は、第1テーブル111のうちの剰余aに対応する記憶位置に、利用者データベース107に登録した当該利用者の利用者情報を指し示すポインタを登録する。CPU101は、利用者データベース107の当該利用者のレコードに含まれる二次バーコードの剰余aに従って、第1テーブル111にこれまでに登録されていた当該利用者の利用者情報を指し示すポインタを削除してから、利用者データベース107の当該利用者のレコードに含まれる二次バーコードの剰余aの項目の数値をステップS406(a)で求めた数値に更新する(ステップS409(a))。
【0099】
CPU101は、また、第2テーブル111のうちの剰余bに対応する記憶位置に、利用者データベース107に登録した当該利用者の利用者情報を指し示すポインタを登録する。CPU101は、利用者データベース107の当該利用者のレコードに含まれる二次バーコードの剰余bに従って、第2テーブル112にこれまでに登録されていた当該利用者の利用者情報を指し示すポインタを削除してから、利用者データベース107の当該利用者のレコードに含まれる二次バーコードの剰余bの項目の数値をステップS406(b)で求めた数値に更新する(ステップS409(b))。
【0100】
ステップS409(a)または(b)において、利用者データベース107の該当位置に他の利用者の利用者情報を指し示すポインタが登録されていた場合は、リストでつなぐなどの手法により、当該利用者の利用者情報を指し示すポインタも同じ位置に重複して登録する。
【0101】
第1テーブル111及び第2テーブル112へのポインタの登録が終了すると、CPU101は、2つのテーブル111、112から辿り着くことができる利用者情報のレコードに含まれるアドレスを読み出す(ステップS410)。CPU101は、当該利用者情報のレコードに含まれる二次バーコードの発行日時(現在日時)と所定期間後の有効期限とを登録し直し、使用済みフラグをリセットする(ステップS411)。CPU101は、ステップS141で受信した暗号鍵を用いて、ステップS404で生成した二次バーコードの画像データを暗号化する(ステップS412)。
【0102】
CPU101は、ステップS412で暗号化した二次バーコードの画像パターンを、ステップS410で読み出したアドレスに従って第2通信装置104から携帯電話機13に送信する(ステップS413)。CPU101は、二次バーコードの画像パターンの送信が完了した時点で、その二次バーコードの画像パターンを破棄する(ステップS414)。そして、このフローチャートの処理を終了する。
【0103】
図15は、サーバ装置11が自動販売機12から受信した一次バーコードまたは二次バーコードの画像データに基づいて、利用者を認証するための処理を示すフローチャートである。一次バーコードに関しては、上述したステップS401で実行される。二次バーコードに関しては、ステップS150の処理の中で、二次バーコードデータベース106に登録されているかどうかのチェックに代わって実行される。一次バーコードに基づいて利用者認証を行う場合も、二次バーコードに基づいて利用者認証を行う場合も処理は全く同じなので、共にこのフローチャートで説明する。この図の説明で「バーコード」と呼んでいるのは、一次バーコードまたは二次バーコードを指しているものとする。
【0104】
CPU101は、自動販売機12から受信したバーコードの画像パターン(二次バーコードの場合は復号化した画像パターン)を所定の方法で数値化し、数値化したバーコード値を変数Xに代入する(ステップS501)。ここでバーコードの画像パターンを数値化する方法も、ステップS304における方法と同じである。CPU101は、数値化したバーコード値XがステップS303で生成可能な一次バーコードの範囲またはステップS404で生成可能な二次バーコードの範囲にあるかどうかを判定する(ステップS502)。
【0105】
バーコート値Xが生成可能な一次バーコードまたは二次バーコードの範囲にあれば、CPU101は、バーコード値Xを数値Aで除算した剰余aを求め(ステップS503(a))、バーコード値Xを数値Bで除算した剰余bを求める(ステップS503(b))。数値Aと数値Bは、図13のフローチャートで示したのと同じ値が用いられる。CPU101は、第1テーブル111のうちの剰余aに対応する記憶位置に登録されているポインタを全て取り出し(ステップS504(a))、第2テーブル112のうちの剰余bに対応する記憶位置に登録されているポインタを全て取り出す(ステップS504(b))。
【0106】
CPU101は、第1テーブル111から取り出したポインタと第2テーブル112から取り出したポインタとを比較し、利用者データベース107に登録されている利用者情報のうちで同一の利用者情報を指し示すものがあるかどうかを判定する(ステップS505)。第1テーブル111と第2テーブル112とに同一の利用者情報を指し示すポインタがあれば、両方のテーブル111、112からのポインタで指し示された利用者情報に従って、当該利用者を認証する(ステップS506)。そして、このフローチャートの処理を終了する。
【0107】
ステップS502でバーコード値Xが一次バーコードまたは二次バーコードのいずれの範囲にもなかった場合、またはステップS505で第1テーブル111と第2テーブル112とに同一の利用者情報を指し示すポインタがなければ、CPU101は、利用者の認証を不可とする(ステップS508)。そして、このフローチャートの処理を終了する。
【0108】
二次バーコードの画像パターンに従って利用者が認証された場合は、ステップS150では認証された利用者の利用者情報に従って、有効期限や使用済みフラグがチェックされ、条件を満たしていれば、サーバ装置11から自動販売機12に販売許可通知メッセージが送信されることとなる。
【0109】
以上説明したように、この実施の形態にかかる自動販売機システムでは、サーバ装置11は、一次バーコードまたは二次バーコードを発行する際に、第1テーブル111及び第2テーブル112のバーコード値から求めた剰余a、bに対応する記憶位置に、当該バーコードに対応した利用者を指し示すポインタを登録している。自動販売機12から一次バーコードまたは二次バーコードの画像パターンを受信した場合、これを数値化して求めた剰余a、bに従って第1テーブル111及び第2テーブル112を参照して、利用者の認証を行っている。すなわち、バーコード同士の照合を行うことなく、演算処理と記憶内容の参照とによって、一次バーコードまたは二次バーコードと利用者との対応付けを高速に行うことができる。
【0110】
一次バーコードまたは二次バーコードのバーコード値を除算する除数となる数値A及びBの最小公倍数は、バーコード値がとり得る値の最大値と最小値との差よりも大きいという関係がある。異なるバーコード値では、剰余aとbとの両方が一致することがないので、利用者データベース107に登録された各利用者の利用者情報へは、他人のバーコードに基づいて第1テーブル111と第2テーブル112との両方から辿り着くことはあり得ない。従って、一次バーコードまたは二次バーコードから利用者を一義的に特定することができる。
【0111】
バーコード同士の照合を行わなくても一次バーコードまたは二次バーコードと利用者との対応付けができるため、サーバ装置11は、発行した一次バーコードまたは二次バーコードを携帯電話機13に送信完了した時点で、一次バーコードまたは二次バーコードを破棄するものとしている。つまり、サーバ装置11の中に発行した一次バーコードまたは二次バーコードの画像パターンを保存しておく必要が全く必要がない。一次バーコード及び二次バーコードの画像パターンは、携帯電話機13以外では、他のコンピュータ装置に保存される訳でもない。
【0112】
この実施の形態にかかる自動販売機システムは、このように一次バーコード及び二次バーコードの画像パターンを保存するためのデータベースが必要ない。このため、サーバ装置11に必要な記憶容量を小さくすることができる。バーコードのような画像パターンの情報量は、文字データの情報量に比べて比較的大きくなるため、必要な記憶容量の圧縮のために非常に効果的である。
【0113】
一次バーコード及び二次バーコードの画像パターンは、利用者が有する携帯電話機13以外には保存されていないので、例えばサーバ装置11にハッカーが侵入したとしても、各利用者に付与された一次バーコード及び二次バーコードの画像パターンが盗み出されることがない。このため、認証を行うための情報として使用される一次バーコード及び二次バーコードに対して、高度なセキュリティを達成することができる。利用者にとっても、自分が一次バーコード及び二次バーコードの管理を怠らない限り、不正に第三者に取得されることがないという安心感が得られる。
【0114】
実施の形態の変形
本発明は、上記の第1、第2の実施の形態に限られず、種々の変形、応用が可能である。以下、本発明に適用可能な上記の実施の形態の変形態様について説明する。
【0115】
上記の第2の実施の形態では、一次バーコードまたは二次バーコードを所定の方法で数値化したバーコード値を、そのまま数値AまたはBで除算して、剰余aまたはbを求めるものとしていた。これに対して、数値化したバーコード値からバーコード値がとり得る値の最小値を減算した値、またはバーコード値がとり得る値の最大値から数値化したバーコード値を減算した値を、数値AまたはBで除算するものとしてもよい。この場合、バーコード値がとり得る値の範囲によっては、被除数がかなり小さくなって、除算の処理が高速化される。
【0116】
上記の第2の実施の形態では、サーバ装置11は、一次バーコードまたは二次バーコードの画像パターンを自動販売機12から受け取るものとしていた。これに対して、自動販売機12は、バーコードリーダ204で読み取った一次バーコードまたは二次バーコードの画像パターンを数値化して、そのバーコード値をサーバ装置11に送るものとしてもよい。自動販売機12は、バーコード値を数値AとBとでそれぞれ除算した剰余a、bをサーバ装置11に送るものとしてもよい。
【0117】
上記の第2の実施の形態では、一次バーコードまたは二次バーコードに対応した数値をそれぞれ数値A、Bで除算した除数a、bに対応した第1テーブル111及び第2テーブル112の記憶位置に、利用者情報を指し示すポインタを登録するものとしていた。第1テーブル111及び第2テーブル112には、利用者情報を一義的に特定可能な他の情報(例えば、利用者ID)を登録するものとしてもよい。この場合、除数a及びbにそれぞれ対応した第1テーブル111及び第2テーブル112の記憶位置に登録された情報に互いに一致するものがあるかどうかを判定することで、利用者認証を行うことができる。
【0118】
直接アドレス法の適用によって、一次バーコードまたは二次バーコードと利用者との対応付けをさらに高速に行えるようにしてもよい。図16は、この変形例を説明する図である。この図の説明においても、一次バーコードと二次バーコードとをまとめて単にバーコードと呼ぶこととする。第1テーブル111’の先頭番地をM、第2テーブル112’の先頭番地をNとしている。第1テーブル111’及び第2テーブル112’の各ワードには、バーコードに対応する利用者情報の先頭番地が格納される。新たに発行したバーコードにより衝突が発生した場合には特定値が格納されると共に、当該ワードに対応して、特定値テーブル113が別に設けられる。
【0119】
CPU101は、ランダムに生成したバーコードまたは自動販売機12から受信したバーコードを数値化したバーコード値Xを数値Aで除算した剰余aに先頭番地Mを加算したM+a番地を直接アドレスして、第1テーブル111’を参照する。CPU101は、バーコード値Xを数値Bで除算した剰余bに先頭番地Nを加算したN+b番地を直接アドレスして、第2テーブル112’を参照する。M+a番地またはN+b番地に特定値が格納されていると、それに対応して設けられた特定値テーブル113を参照する。
【0120】
M+a番地とN+b番地(場合によってはこれらの番地に対応して設けられた特定値テーブル113)とに同じ利用者情報の先頭番地が格納されていれば、当該利用者が認証される。利用者データベース107からの利用者情報の取り出しも、M+a番地及びN+b番地(場合によってはこれらの番地に対応して設けられた特定値テーブル113)に格納された番地の直接アドレスによって行うことができる。
【0121】
上記の第2の実施の形態では、一次バーコードまたは二次バーコードに対応するバーコード値を2つの数値A、Bでそれぞれ除算した剰余a、bに従って、第1テーブル111及び第2テーブル112に利用者情報を指し示すポインタを登録していた。しかしながら、本発明は、複数種類のハッシュ関数によるハッシュ値の計算を行い、各ハッシュ関数に対応して設けられた複数のハッシュテーブルのハッシュ値に対応した記憶位置に利用者情報を指し示すポインタを登録することで実現することができる。もっとも、異なる2つのバーコードに対して、少なくとも1種類のハッシュ関数によって計算したハッシュ値は一致しないものとなることが必要である。
【0122】
上記の第1、第2の実施の形態では、利用者毎に割り当てられた一次バーコードに従って、二次バーコードが発行されるものとしていた。これに対して、上記した二次バーコードと同様の方法で使用されるバーコードは、他の方法による利用者からの要求(例えば、携帯電話機13の発信者番号を通知したバーコードの発行要求)に従って発行され、利用者に送られるものとしてもよい。
【0123】
上記の第1、第2の実施の形態では、一次バーコードデータベース105または利用者データベース107の各レコードが、一次バーコードの画像と対応付けて利用者の属性に関する情報を含んでいた。これに対して、利用者の属性に関する情報は、一次バーコードそのものに含まれていてもよい。サーバ装置11のCPU101は、自動販売機12から一次バーコードを受信したときに、その一次バーコードに含まれる利用者の属性が商品販売可能な属性を示すかどうかを判断する。サーバ装置11のCPU101は、利用者の属性が商品販売可能な属性を示す場合に、二次バーコードを発行するものとしてもよい。
【0124】
上記の第1、第2の実施の形態では、自動販売機12は、二次バーコードの暗号鍵及び復号鍵を保持し、一次バーコードが読み取られたときに暗号鍵を、二次バーコードが読み取られたときに復号鍵を、それぞれサーバ装置11に送るものとしていた。サーバ装置11は、自動販売機12と対応付けて暗号鍵及び復号鍵を登録したデータベースを備えるものとし、一次バーコードまたは二次バーコードを送ってきた自動販売機12に従って当該データベースから暗号鍵または復号鍵を読み出して、この読み出した暗号鍵または復号鍵を用いて二次バーコードを暗号化または復号化してもよい。暗号鍵または復号鍵の一方がサーバ装置11内のデータベースに登録され、他方が自動販売機12から送られるものとしてもよい。
【0125】
自動販売機12の識別情報、並びに自動販売機12毎に固有の暗号鍵及び復号鍵は、サーバ装置11及び自動販売機12以外の管理コンピュータを用いて管理してもよい。例えば、管理コンピュータは、上記のシステムで使用される自動販売機12の全部ではないが、複数のものを接続するものとし、自動販売機12の識別情報、暗号鍵及び復号鍵をサーバ装置11に送るものとしてもよい。サーバ装置11から自動販売機12への情報も、管理コンピュータを介して送られるものとしてもよい。この場合、サーバ装置11は、管理コンピュータを特定できれば個々の自動販売機12まで特定できなくても、管理コンピュータを介して二次バーコードを読み取ったバーコードリーダ204を含む自動販売機12まで、販売許可通知メッセージを送ることができるようになる。
【0126】
上記の第1、第2の実施の形態では、サーバ装置11と自動販売機12との間は、専用線30で接続されていた。これらの専用線は、無線回線であってもよい。専用線の代わりにエクストラネットを適用することができる。電話回線を使ってダイアルアップでサーバ装置11と自動販売機12との間を接続してもよい。
【0127】
上記の第1、第2の実施の形態では、二次バーコードは、二次バーコードデータベース106または利用者データベース107に有効期限を登録しておいて、その発行から一定時間を経過によって使用できなくすることによって、偽造されて不正な使用がされるのを防ぐようにしていた。しかしながら、本発明において適用可能な二次バーコードの偽造防止技術はこれに限るものではない。
【0128】
二次バーコードにJava(商標)言語などで記述されたプログラムを埋め込んでおき、このプログラムの作用により携帯電話機13に受信されてから所定時間経過することで二次バーコードが自壊するようなものとしてもよい。このプログラムは、定期的にサーバ装置11に時間を確認する機能を有する者とすることができる。このプログラムは、二次バーコードの利用期限が近くなると、警告音を鳴らしたり、バーコードの色を変えたりすることによって利用者に通知する機能を有していてもよい。このプログラムは、二次バーコードの利用期限が過ぎると、自動的に画像を差し替えたり、文字情報を表示して二次バーコードを消滅させる機能を有するものとすることができる。
【0129】
発行から一定時間を経過することによって二次バーコードを使用できなくする手法も上記のものに限られず、携帯電話機13に配信する二次バーコードに期限情報を含ませてもよい。バーコードリーダ204は、二次バーコードの読み取り時にこの期限情報も併せて読み取り、サーバ装置11に期限情報を送信するものとすることができる。サーバ装置11のCPU101は、自動販売機12送られてきた期限情報に基づいて、二次バーコードの有効性を判断するものとすることができる。
【0130】
一次バーコードまたは二次バーコードに電子透かしを埋め込んでおき、その電子透かしを判定することによって、一次バーコードまたは二次バーコードの正当性を判断することもできる。埋め込むことが可能な電子透かしとして、一次バーコードまたは二次バーコードの視覚性に影響を及ぼさないものを複数パターン用意できるのであれば、図17Aに示すように、利用者の携帯電話機13に送信する一次バーコードまたは二次バーコードに、いずれかのパターンの電子透かしを選択して埋め込むものとしてもよい。
【0131】
この場合、サーバ装置11には、図17Bに示すような透かしパターンデータベース108がさらに設けられる。透かしパターンデータベース108の各レコードは、利用者IDと、一次バーコードに適用された電子透かしのパターンと、二次バーコードに適用された電子透かしのパターンとを含んでいる。サーバ装置11の処理には、図18A及び図18Bに示す各ステップの処理が追加される。ここでは、第2の実施の形態の処理に追加するステップとして示しているが、第1の実施の形態の処理にも同様のステップを追加することができる。
【0132】
ステップS308(a)及び(b)またはステップS409(a)及び(b)において、第1テーブル111と第2テーブル112へのポインタの登録が終了すると、サーバ装置11のCPU101は、電子透かしのパターンをランダムに選択する(ステップS601)。選択した電子透かしのパターンは、利用者IDをキーとして透かしパターンデータベース108に登録されると共に(ステップS602)、ステップS303またはステップS404で生成されたバーコードに埋め込まれる(ステップS603)。それから、ステップS309またはS410の処理に進む。
【0133】
ステップS505において第1テーブル111と第2テーブル112との両方から同一の利用者情報に辿り着くと判定すると、CPU101は、自動販売機12から受信したバーコードに埋め込まれた電子透かしのパターンを解析する(ステップS611)。CPU101は、透かしパターンデータベース108に登録された一次バーコードまたは二次バーコードの電子透かしのパターンを利用者IDをキーとして取り出し、解析したパターンと一致するかどうかを判定する(ステップS612)。一致する場合には、ステップS505に進んで利用者を認証するが、不一致であれば、ステップS506に進んで利用者の認証を不可とする。
【0134】
以上のように複数パターンの電子透かしのうちでいずれかのパターンを選択してバーコードに埋め込んでおくことにより、埋め込まれている電子透かしまで偽造できていなければ、偽造したバーコードを使用することができない。特に二次バーコードでは、使用の有効期限が付されているため、この短い期間で画像パターンの他に電子透かしまで解析して偽造するのは実質上不可能である。これにより、利用者に送ったバーコードが偽造されて使用されるのを防ぐことができる。
【0135】
上記の第1、第2の実施の形態では、一次バーコード及び二次バーコードは、二階調の二次元マトリクスパターンを有するバーコードとして携帯電話機13の表示装置305に表示されていたが、多階調のパターンを有するバーコードや、三次元のパターンを有するバーコードとして表示されるものであってもよい。この三次元バーコードは、例えばポリゴンで形成された立方体の各面に二次元のバーコードを表示させたものであり、Java等のアプリケーションによってポリゴンが回転される。サーバ装置11のCPU101は、ポリゴンの回転によって立方体の各面に表示されたコードを全て認識することができる。三次元バーコードは、面数の増加によってより大きな情報量を含むことができる。三次元バーコードのように情報量が大きい識別情報は、必要な記憶容量を小さくできるという第2の実施の形態における効果が顕著に現れる。
【0136】
例えばブルートゥース技術などの適用により、自動販売機12と携帯電話機13とを直接通信可能に構成した場合には、視認不可能な情報であっても、上記した一次バーコード及び二次バーコードの代わりに適用することができる。どのような形態の識別情報であっても、数値化した値を数値A、Bでそれぞれ除算した剰余a、bに従って、第1テーブル111及び第2テーブル112に利用者情報を指し示すポインタを登録し、識別情報同士の照合を行わないで、識別情報と利用者情報とを対応付けるという構成を採ることができる。
【0137】
上記の第1、第2の実施の形態では、サーバ装置11のCPU101は、どの利用者の携帯電話機13に送る場合でもバーコード(一次バーコードまたは二次バーコード)を同じように生成していた。しかしながら、携帯電話機13の表示装置305は、機種によって大きさもドット数もまちまちである。
【0138】
携帯電話機13の機種に応じて最も効果的なバーコード(一次バーコードまたは二次バーコード)を生成するために、サーバ装置11は、図19に示す機種データベース109を備えることができる。機種データベース109は、利用者IDと携帯電話機13の機種に関する情報(少なくとも表示装置305の大きさ及びドット数を含む)を対応付けて記憶している。サーバ装置11のCPU101は、一次バーコートまたは二次バーコードを発行する際に、機種データベース109を参照して、送付先となる携帯電話機13の機種に応じたバーコードを発行することができる。
【0139】
サーバ装置11から携帯電話機13に送信されるバーコード(一次バーコードまたは二次バーコード)は、圧縮されたものであってもよい。サーバ装置11のCPU101は、機種に関係なくバーコード(一次バーコードまたは二次バーコード)を生成してから、送付先となる携帯電話機13の機種に応じてバーコードを圧縮することができる。携帯電話機13の表示装置305には、圧縮されたバーコードが表示されて、バーコードリーダ204によって読み取られる。
【0140】
以上のようにすることで、サーバ装置11は、携帯電話機13が新型のもので表示装置305の表示ドット数が多ければ細かなパターンのバーコードを、携帯電話機13が旧型のもので表示ドット数が少なくても表示装置305に表示可能なバーコードを生成することができる。これにより、表示装置305の機能を最大限に生かしてバーコード(一次バーコードまたは二次バーコード)を表示させることができる。利用者が携帯電話機13の機種を頻繁に変えても、新しい機種に適合した二次元バーコードを生成することができるので、技術的進歩が早い携帯電話機13への適用には特に有効である。
【0141】
上記の第1、第2の実施の形態では、一次バーコード及び二次バーコードは、携帯電話機13に保持され、表示装置305に表示するものとしていたが、サーバ装置11との間に無線通信を行うことができる他の無線通信端末を携帯電話機13の代わりに適用することもできる。ブルートゥース技術などの適用により視認不可能な情報が一次バーコード及び二次バーコードの代わりに用いられる場合には、表示装置を有しない無線通信端末を適用することができる。もっとも、無線通信端末として普及率の高い携帯電話機を適用することで、本発明のシステムを多くの者が利用できるようになる。
【0142】
上記の第1、第2の実施の形態では、図8A、図8B、図9、図13、図14、図15、図18A及び図18Bのフローチャートに示すプログラムは、サーバ装置11の記憶装置102、携帯電話機13のROM302、自動販売機12の記憶装置202の記憶装置402に記憶されているものとして説明した。しかしながら、これらのプログラムの全部または一部は、ハードウェアとは別個に提供されるものであってもよい。
【0143】
図20Aは、プログラムの提供方法の第1の例を示す。サーバ装置11は、それぞれCD−ROMやDVD−ROMなどのコンピュータ読み取り可能な記録媒体55を駆動し、データを読み取るディスクドライブ51をさらに備える。CPU101は、それぞれディスクドライブ51に記録媒体55に記録されたプログラムを読み取らせ、記憶装置102にインストールさせるものとすることができる。携帯電話機13は、ROMカード56を挿入し、データを読み取るカードスロット53をさらに備える。CPU301は、カードスロット53を介してROMカード56に記録されたプログラムの命令を順次取り出して、実行するものとすればよい。
【0144】
図20Bは、プログラムの提供方法の第2の例を示す。サーバ装置11、携帯電話機13の処理プログラムは、インターネット4上のWebサーバ57が有する固定ディスク装置58に格納されている。サーバ装置11または携帯電話機13からプログラムの送信要求が送られてくると、Webサーバ57は、固定ディスク装置58に格納されたプログラムをデータ信号化し、搬送波59に重畳してインターネット4を介して要求元の装置に返送する。サーバ装置11の第1通信装置103または携帯電話機13の通信装置306が搬送波に重畳されて送信されたプログラムを受信すると、CPU101、301は、このプログラムを記憶装置102またはROM302にインストールさせるものとすることができる。ここで、携帯電話機13のROM302としては、電気的にデータの書き込み及び消去が可能なフラッシュメモリを適用することができる。
