[第1実施形態]
以下、本発明に係る情報コードおよび情報コード読取装置を備える情報コード読取システムを具現化した第1実施形態について、図を参照して説明する。なお、図1は、第1実施形態に係る情報コード読取システム1の概略構成を示す説明図である。図2は、図1のチケット印刷用プリンタ10のハードウェア構成例を示すブロック図である。
図1に示す情報コード読取システム1は、チケット発行センター2に配置されたチケット印刷用プリンタ10を用いて情報コードCが印刷されたコンサートのチケットSを発行するとともに、発行されたチケットSの情報コードCをコンサート会場3に設置された情報コード読取装置20にて光学的に読み取ることで、当該情報コードCとしてコード化された情報を取得して入場管理するシステムとして構成されている。
本実施形態に係る情報コードCは、QRコードとして、公開領域と非公開領域(所定の復号キーにより解読可能に暗号化された暗号データが記録される領域)とを備えた一部非公開コードとして構成されている。本実施形態では、公開領域には、入場チケットに関する情報として公開可能な開示データ(公開データ)、例えば、コンサートを特定する情報や管理番号等が記録されている。また、非公開領域には、入場チケットに関する情報として非公開とすべき秘匿データ、例えば、チケット購入者の個人情報等が記録されている。
チケット印刷用プリンタ10は、ケーブル7を介してチケット発行用端末4に接続されており、チケット発行用端末4から出力されて当該チケット印刷用プリンタ10に入力されるチケットSの発行に関するデータ(以下、印刷データともいう)に基づいて情報コードCを生成してチケットSに印刷する機能を有するものである。チケット印刷用プリンタ10およびチケット発行用端末4は、チケット発行センター2に配置されており、情報コードCを生成する「コード生成装置」の一例に相当し得る。
チケット発行用端末4は、端末本体5およびディスプレイ6により構成されており、端末本体5は、図略の、MPU、メインメモリ(主記憶装置)、ハードディスク(補助記憶装置)、入出力インタフェース、通信インタフェース、キーボード、ポインティングデバイス等からなる情報処理装置で、またディスプレイ6は、端末本体5に接続されることにより端末本体5から出力される情報を画面表示可能な情報表示装置である。
なお、この端末本体5には、チケット印刷用プリンタ10のデバイスドライバがインストールされて(組み込まれて)おり、当該チケット発行用端末4の利用者が、情報コードCとしてチケットSに印刷したい文字等を含んだ印刷データを、端末本体5からチケット印刷用プリンタ10に対して任意に出力可能にしている。
これに対し、チケット印刷用プリンタ10は、図2に示すように、主に、MPU11、メモリ12、インタフェース13、ローラ制御部14、ヘッド制御部15、ローラ17、ヘッド18等から構成されている。なお、これらは、図略のプリント配線板に実装あるいは図略のハウジング内に内装されている。
MPU11は、チケット印刷用プリンタ10全体を制御可能なマイクロコンピュータ(以下「マイコン」という)で、メモリバスを介して接続されるメモリ12とともに情報処理装置を構成し得るもので情報処理機能を有する。このMPU11には、メモリ12のほかに、インタフェース13、ローラ制御部14やヘッド制御部15も接続されている。なお、後述するコード生成処理は、このMPU11およびメモリ12により実行される。
メモリ12は、半導体メモリ装置で、例えばRAM(DRAM、SRAM等)やROM(EPROM、EEPROM等)がこれに相当する。このメモリ12のうちのRAMには、前述したチケット発行用端末4から送られてくる文字データを蓄積するバッファ領域のほか、MPU11が算術演算や論理演算等の各処理時に利用する作業領域等も確保可能に構成されている。またROMには、後述のコード生成処理等を実行可能な所定プログラムやその他、ローラ制御部14やヘッド制御部15等の各ハードウェアを制御可能なシステムプログラム等が予め格納されている。
インタフェース13は、前述したチケット発行用端末4の端末本体5から送られてくる印刷データ等を受信可能にする入力インタフェースで、シリアルバス等を介してMPU11に接続されている。このインタフェース13を介してMPU11に入力された印刷データは、コード生成処理によって後述するように情報処理されてコード化される。
ローラ制御部14は、ローラ17の駆動機構(図略)を制御し得る制御装置で、シリアルバス等を介してMPU11に接続されている。これにより、MPU11から受けた制御信号に従ってローラ17の回転の開始や停止あるいは回転方向等を制御している。
ヘッド制御部15は、ラベル等の所定の用紙に対して任意のパターンを印刷し得るように構成されており、シリアルバス等を介してMPU11に接続されている。本実施形態では、後述のコード生成処理によって生成された情報コードCを所定の用紙に印刷可能にするもので、前述したローラ制御部14による用紙の紙送りタイミングに同期して、情報コードCを構成する位置検出パターン、タイミングパターンやデータコード等を当該用紙に印刷する。
このようにチケット印刷用プリンタ10を構成することによって、チケット発行用端末4から出力されて当該チケット印刷用プリンタ10に入力された印刷データは、インタフェース13を介してメモリ12のバッファ領域に一旦蓄えられた後、次に説明するコード生成処理に渡される。
ここで、コード生成処理を図3および図4を参照して説明する。なお、図3は、チケット印刷用プリンタ10により実行されるコード生成処理の流れを示すフローチャートである。図4は、図3に示すコード生成処理により情報処理されるデータやコードのフォーマット例を示す説明図であり、図4(A)は、制限情報を備えないフォーマット例を示し、図4(B)は、位置制限情報を備えるフォーマット例を示し、図4(C)は、時刻制限情報を備えるフォーマット例を示し、図4(D)は、位置制限情報および時刻制限情報を備えるフォーマット例を示す。
図3に示すコード生成処理は、チケット印刷用プリンタ10の電源投入により起動するMPU11およびメモリ12によって開始され、まずステップS101により初期設定処理が行われる。この処理は、メモリ12の作業領域や印刷データを蓄えるバッファ領域をクリアしたり、所定のフラグやカウンタ等をクリアする。
ステップS103では、印刷データを受信したか否かを判定する処理で、印刷データを受信するまで、このステップを繰り返す(S103;No)。そして、印刷データを受信したと判定すると(S103;Yes)、続くステップS105によりタイマーのカウント値をクリアする処理を行う。このステップS105でカウンタ値がクリアされるタイマーは、次のステップS107により所定時間の経過を計時するものである。
ステップS107では、先のタイマーにより所定時間が経過したか否かを判定する処理が行われる。即ち、チケット発行用端末4から送られてくる印刷データに、暗号化等に関するデータ(以下、暗号化等データともいう)が含まれているか否かを次のステップS111により判定する必要上、例えば、所定時間として1秒間が経過したか否かを判定し、この時間が経過するまでに、チケット発行用端末4から暗号化に関するデータが送られてこない場合には、所定時間の経過とともにステップS109に処理を移行する(S107;Yes)。
これに対し、所定時間が経過していない場合には(S107;No)、次のステップS111により暗号化等データとして、暗号するために用いる暗号キー(暗号鍵)と、秘匿データに応じた処理の実行の制限に関する制限情報と、秘匿データおよび制限情報のデータレコード中の位置関係を示すデータ位置情報と、を受信したか否かを判定する処理が行われる。
ここで、本実施形態では、上記制限情報として、秘匿データに応じた処理を実行可能な場所の位置を制限するための位置制限情報が用意されており、例えば、実行可能な場所の範囲について、北端を示す緯度Ln、南端を示す緯度Ls、東端を示す経度Leおよび西端を示す経度Lwを設定することができる。すなわち、本実施形態では、情報コードCは、コンサート会場3へのチケットSに印刷されるため、緯度Ln,Lsおよび経度Le,Lwは、コンサート会場3の各入場ゲートの位置を秘匿データに応じた処理を実行可能な場所とするように設定される。
そして、暗号化等データを受信していると判定した場合には(S111;Yes)、続くステップS113に処理を移行し、暗号化等データを受信していると判定できない場合には(S111;No)、前述したステップS107に処理を戻して、再度、時間の経過を判定する。
そして、所定時間が経過したとステップS107により判定した場合には(S107;Yes)、ステップS109により所定のフラグに「0」をセットする。このフラグは、印刷データに秘匿データが含まれているか否かを示すもので、「0」がセットされている場合には、秘匿データが含まれていないことを示し、「1」がセットされている場合には、秘匿データが含まれていることを示す。このため、ステップS111により暗号化等データを受信していると判定した場合には(S111;Yes)、続くステップS113によりこのフラグに「1」をセットする処理が行われる。
ステップS113により所定のフラグに「1」をセットすると、続くステップ115により、開示データ、秘匿データおよび制限情報の各データを並び替える処理が行われる。即ち、印刷データに、開示データおよび秘匿データと、秘匿データに応じた処理制限に関する制限情報と、が含まれており、これらがデータレコード中で混在している場合に、ステップS111により受信したデータ位置情報に基づいて、各データを所定の順番に入れ替える処理を行う。例えば、チケット発行用端末4から送られてくる印刷データのレコードに、開示データ、秘匿データおよび制限情報が含まれていたとすると、ステップS115により、これらのデータの順番を開示データ、制限情報、秘匿データの順に並び替える処理を行う。
次のステップS117では、開示データや秘匿データ等の各データをJISの基本仕様(JIS X 0510:2004)に従って符号化する処理が行われる。これにより、開示するデータや秘匿するデータ等を表すコード語としてコード化された開示データコードや秘匿データコード等が生成される。また続くステップS119では、開示データや秘匿データ等の各データに対する誤り訂正符号をJISの基本仕様(JIS X 0510:2004)に準拠して生成しさらにそれをコード化して誤り訂正コードを生成する処理が行われる。
そして、続くステップS121により、開示データコードの後に終端識別コードを付加する処理が行われる。終端識別コードは、例えば、4ビットパターンで「0000」であり、図4(A)または図4(B)に示すように開示データコードの直後に位置し、開示データコードが複数ある場合には、最後の開示データコードの直後に位置する。
次のステップS123では、前述した所定のフラグが「1」にセットされているか否か、即ち秘匿データが含まれているか否かを判定する処理が行われる。そして、秘匿データが含まれている場合には(フラグが「1」にセットされている場合:S123;Yes)、ステップS125に処理を移行し、また秘匿データが含まれていない場合には(フラグが「0」にセットされている場合:S123;No)、一連の秘匿処理(S125〜S141)を飛ばしてステップS143に処理を移行する。
ステップS125〜S141は、印刷データに秘匿データが含まれている場合に行われる一連の秘匿処理である。まず、ステップS125により、チケット発行用端末4から送られてくる印刷データに制限情報が含まれているか否かを判定する処理が行われる。そして、制限情報が含まれていない場合には(S125;No)、ステップS127に処理を移行し、また制限情報が含まれている場合には(S125;Yes)、ステップS127からの処理を飛ばしてステップS131に処理を移行する。
ステップS127では、秘匿識別コードを終端識別コードの直後に付加する処理が行われる。このステップS127による処理は、図4(A)に示すように、秘匿識別コードを終端識別コードの直後に配置することで、この終端識別コードの後に配置されているデータコードが「秘匿するデータを表すコード語としてコード化されたものであること」を明示的に表す。これにより、本コード生成処理によって生成された情報コードCを、コードリーダ等にてデコードする際に、当該情報コードCに秘匿データコードが含まれていることを認識可能にするので、例えば、読取対象外のデータやデータ化けしたデータ等を秘匿データコードと誤認して読み取ることを防ぎ、またこれに起因する誤動作の発生を防止することもできる。
ステップS129では、秘匿データコードのデータ長を計算して求め、このデータ長をコード化したものを秘匿識別コードの直後に付加する処理が行われる。これにより、秘匿データコードが配置される領域や範囲がわかるので、本コード生成処理によって生成された情報コードCを、コードリーダ等にてデコードする際に、どこまでが秘匿データコードであるか、または暗号データコードであるかを認識可能にする。
これに対し、チケット発行用端末4から送られてくる印刷データに制限情報が含まれている場合には(S125;Yes)、ステップS131により、終端識別コードの直後に配置する秘匿識別コードに制限情報(位置制限情報)が含まれることを示すフラグが設定されて付加される。次のステップS133による処理では、図4(B)に示すように、秘匿識別コードの直後に制限情報をコード化したものを付加する処理が行われる。続くステップS135では、秘匿データコードのデータ長を計算して求め、このデータ長をコード化したものを制限情報の直後に付加する処理が行われる。
ステップS137では、暗号キーがあるか否かを判定することによって、秘匿データコードを暗号化する必要があるか否かを判定する。即ち、ステップS111によって暗号キーをチケット発行用端末4から受信している場合には、暗号キーがあるので(S137;Yes)、ステップS139に移行して暗号化処理を行う。これに対して、ステップS111によって暗号キーをチケット発行用端末4から受信していない場合には、暗号キーがないので(S137;No)、ステップS139による暗号化処理を飛ばしてステップS141に移行する。
なお、ステップS111により暗号キーを受信していない場合であっても、チケット発行用端末4が予め暗号キーをメモリ12やハードディスク等の情報記憶媒体に保持しているときには暗号キーがあるので(S137;Yes)、ステップS139で暗号化処理を行う。
ステップS139では、秘匿データコードを暗号化する処理が行われる。この処理は、例えば、公知の視覚復号型暗号技術(視覚復号型秘密分散法)を用いて秘匿データコードを暗号化する。これにより、このような暗号化されていない平文データが付加されている場合に比べてセキュリティの強度を高めることができる。
ステップS141では、データ長の直後に秘匿データコードを付加する処理が行われる。これにより、一般仕様の二次元コードの読取装置では、二次元コードのデコード処理において、終端識別コードの後に配置される埋め草コード等は読み取りの対象にしないため、このように終端識別コードの後に配置された秘匿データコードや制限情報は読み取ることはできない。したがって、このような秘匿データコードや制限情報が含まれる二次元コードを一般仕様の読取装置で読み取っても、秘匿データコードや制限情報の存在はわからないので、当該読取装置の利用者には秘匿データや制限情報の存在を認識させないようにすることが可能となる。
続くステップS143では、例えば、JISの基本仕様(JIS X 0510:2004)に記載されている処理アルゴリズムに準拠して、秘匿データコードの後に埋め草コードを付加する処理が行われ、さらにステップS145では、誤り訂正コードを付加する処理が行われる。
これにより、図4(A)または図4(B)に示すフォーマットのデータコードが生成される。特に、図4(B)に示すフォーマットのデータコードから生成される情報コードCは、秘匿データが記録された非公開領域と、秘匿データに応じた処理を実行可能な場所の位置を制限するための位置制限情報が制限情報として記録された領域とを備えるように構成される。このようなデータコードに基づいて各セルが生成されることで情報コードCが印刷可能な状態となる。そして、チケット印刷用プリンタ10により情報コードCが所定のチケット情報等とともに所定の用紙に印刷されることで、チケットSが発行される。
なお、上記制限情報として、位置制限情報に代えて、秘匿データに応じた処理を実行可能な時刻を制限するための時刻制限情報を用意することができる。この時刻制限情報としては、例えば、実行可能な時刻の範囲について、図4(C)に示すように、開始時刻を示す時刻Tsおよび終了時刻を示す時刻Teを設定することができる。この場合、時刻Tsおよび時刻Teは、コンサート会場3への入場開始時刻と入場終了時刻を考慮して設定される。また、ステップS131では、秘匿識別コードには時刻制限情報が含まれることを示すフラグが設定される。
また、上記制限情報として、図4(D)に示すように、位置制限情報および時刻制限情報の双方を用意することができる。この場合には、ステップS131では、秘匿識別コードに位置制限情報および時刻制限情報が含まれることを示すフラグが設定され、秘匿データに応じた処理を実行可能な場所の位置の範囲と時刻の範囲とのそれぞれについて制限することができる。また、上記制限情報として、位置制限情報に加えて他の制限情報を設定することもできるし、時刻制限情報に加えて他の制限情報を設定することもできる。
なお、上記コード生成処理は、チケット印刷用プリンタ10にて実行されることに限らず、チケット発行用端末4の端末本体5にて実行されてもよい。この場合、チケット印刷用プリンタ10には、印刷データに代えて、端末本体5にて生成された情報コードCを印刷するためのデータが入力されることとなる。
次に、本実施形態に係る情報コード読取装置20の構成を図5を参照して説明する。なお、図5には、図1の情報コード読取装置20のハードウェア構成例を示すブロック図が図示されている。
情報コード読取装置20は、上述のようにチケット印刷用プリンタ10により印刷された情報コードCを光学的に読み取る携帯型の読取装置である。
図5に示すように、情報コード読取装置20は、当該情報コード読取装置20の全体的制御を司る制御部21と、書換え可能な不揮発性メモリであるフラッシュメモリ22と、書換え可能な揮発性メモリであるRAM23とを備えている。フラッシュメモリ22には、OSなどのシステムプログラムやこのシステムプログラムを読み出すローダ等を格納する格納領域が設けられている。RAM23には、ローダによりフラッシュメモリ22から読み出されて展開されたシステムプログラムを格納するためのワーク領域や画像データを蓄える画像データ蓄積領域等が設けられている。制御部21は、RAM23のワーク領域に格納されたシステムプログラムに従って、後述するデコード処理など、種々のアプリケーションプログラムを実行する。
また、情報コード読取装置20は、表示部24、操作部25、コード読取部26、リアルタイムクロック(以下、RTCともいう)27、無線通信部28および電源部29などを備えている。表示部24は、液晶モニタ等によって構成されており、制御部21からの表示処理に関する指示を受けて各種情報を表示するように動作する。操作部25は、外部に露出するトリガースイッチ等の複数の操作キーを備えており、操作キーの操作に応じた所定の情報を制御部21に対して出力するように構成されている。
コード読取部26は、チケットSに印刷された情報コードC等を光学的に読み取る機能を有するもので、画像認識モジュールを備えている。この画像認識モジュールは、照明光源や受光センサ(図略)等を備えており、照明光源からの照射光が情報コードCにて反射され反射光が読取口を介して受光センサにて受光されると、この反射光に応じた受光信号を受光センサから制御部21に出力するように構成されている。制御部21では、この受光信号に基づいて情報コードCの情報が取得されることとなる。なお、コード読取部26は、「撮像手段」の一例に相当し得る。
RTC27は、現在の日付時刻を計時する機能を有するもので、メインバッテリの未装着状態であっても、サブバッテリの電圧が動作可能な電圧以上であれば、その計時動作が継続されるように構成されている。なお、RTC27は、「現在時刻情報取得手段」の一例に相当し得る。
無線通信部28は、例えば、Wireless WAN モジュールであって、制御部21により制御されて、読取情報等について外部の管理サーバ等との間で所定のネットワークを介して無線通信可能に構成されている。無線通信部28は、GPS受信部28aを備えており、このGPS受信部28aは、周知のGPS衛星から送信されるGPS信号を受信して制御部21に出力するように構成されている。ここで、GPS信号には、情報コード読取装置20の現在位置(緯度、経度)を測位するための衛星の位置情報や時刻情報が含まれている。なお、GPS受信部28aは、「現在位置情報取得手段」の一例に相当し、無線通信部28に設けられることなく、直接制御部21に接続されるように構成されてもよい。
電源部29は、図略のバッテリからの電力供給を受け、制御部21や各種電気部品に電力を供給している。
次に、コンサート会場3の入場ゲートにおいて、上述のように構成される情報コード読取装置20を用いてチケットSに印刷された情報コードC等を光学的に読み取る処理について以下に説明する。なお、情報コード読取装置20は、コンサート会場3の入場ゲートのスタッフによりそれぞれ携帯されて使用され、フラッシュメモリ22には、管理サーバ等から取得した復号キーが予め記憶されているものとする。
入場ゲートのスタッフにより情報コード読取装置20の電源スイッチがオンされると、所定の自己診断処理等がなされて、情報コードCの読み取りが可能となり、デコード処理を開始するトリガースイッチの入力を受け付ける状態になる。そして、スタッフが入場者により提示されたチケットSの情報コードCに対して読取口を向けた状態でトリガースイッチを操作すると、照明光源から照射光が照射される。すると、情報コードCに照射された照明光が反射し、その反射光が読取口を介して受光センサにて受光されると、画像処理された当該情報コードCの画像データが取得されて、次に説明するデコード処理に渡される。
ここで、制御部21にて実行されるデコード処理を、図6および図7を参照して説明する。なお、図6は、情報コード読取装置20の制御部21により実行されるデコード処理の流れを示すフローチャートである。図7は、図6に示す復号化処理の流れを示すフローチャートである。
図6に示すデコード処理は、情報コード読取装置20の電源投入により起動する制御部21によって開始され、まずステップS201により初期設定処理が行われる。この処理は、RAM23の画像データ蓄積領域等をクリアしたり、所定のフラグやカウンタ等をクリアする。続くステップ203により、画像データを取得する処理が行われる。即ち、RAM23の画像データ蓄積領域から蓄えられている画像データを読み出す処理を行う。
続くステップS205では、位置検出パターンを検出する処理が行われる。即ち、情報コードCは、QRコードでありその三隅に位置検出パターンが設けられているため、これらを検出することによって、次のステップS207により情報コードCのコード外形を検出する。
そして、ステップS209により各セルの中心座標を算出する処理を行うことによって次ステップS211により各セルの白黒を判別する。これにより、QRコードを構成する形式情報やデータブロックを認識可能になるので、続くステップS213により、欠損等しているデータブロックがある場合には、そのブロックを誤り訂正可能であるか否かを判定する。
そして、ステップS213により誤り訂正可能であると判定できる場合には(S213;OK)、誤り訂正をして続くステップS300により復号化処理を行う。これに対し、ステップS213により誤り訂正可能であると判定できない場合には(S213;NG)、誤り訂正できないので、ステップS203に処理を移行して再度、画像データを取得してステップS203〜S211の各処理を行う。
ステップS300は、その詳細が図7に図示されているので、ここからは図7を参照して復号化処理を説明する。なお、ステップS300を実行する制御部21は、「デコード手段」の一例に相当し得る。
図7に示すように、復号化処理では、ステップS301により、まず先頭のデータコードを取得する処理が行われる。続くステップS303では、ステップS301により取得されたデータコードが、終端識別コードであるか否かを判定する処理が行われる。これにより、当該データコードが終端識別コードであると判定した場合には(S303;Yes)、終端識別コードよりも前に配置される通常のデータコードはこれ以上、当該情報コードCには含まれていないことになるので、ステップS309に処理を移行する。
これに対し、当該データコードが終端識別コードであると判定できない場合には(S303;No)、終端識別コードよりも前にまだ通常のデータコードが存在することになるので、続くステップS305に処理を移行して当該データコード、つまり開示データコードを復号(デコード)する処理が行われる。続いて、ステップS307により、次のデータコードを取得する処理が行われ、このデータコードが終端識別コードであると判定できない場合には(S303;No)、再度ステップS305以降の処理がなされる。
そして、終端識別コードの前方に配置される1または2以上の開示データコードが取得されて復号(デコード)されると(S303;Yes)、ステップS309により、終端識別コードの次に配置されるデータコードを取得する処理が行われる。続くステップS311では、ステップS309により取得されたデータコードが、秘匿識別コードであるか否かを判定する処理が行われる。これにより、当該データコードが秘匿識別コードでないと判定した場合には(S311;No)、秘匿データを有しない通常の情報コードであるとして、ステップS300に示す復号化処理を終えてデコード処理を終了する。
これに対し、ステップS309により取得されたデータコードが秘匿識別コードであると判定した場合には(S311;Yes)、続くステップS313により、当該秘匿識別コードに位置制限情報が含まれているか否かを判定する処理が行われる。図4(A)に例示するように秘匿識別コードに位置制限情報が含まれておらず、当該秘匿識別コードに位置制限情報が含まれることを示すフラグが設定されていないことから、位置制限情報が含まれていないと判定した場合には(S313;No)、ステップS321に処理を移行する。
これに対し、図4(B)または図4(D)に例示するように、当該秘匿識別コードに位置制限情報が含まれていると判定した場合には(S313;Yes)、続くステップS315により、秘匿識別コードの直後に配置される制限情報から位置制限情報を取得する処理が行われる。次のステップS317では、GPS受信部28aから入力されるGPS信号に基づいて、当該情報コード読取装置20の現在位置情報を取得する処理が行われる。そして、ステップS319により、情報コード読取装置20が秘匿データに応じた処理を実行可能な場所の範囲内に位置しているか否かを判定する処理が行われる。
ここで、情報コード読取装置20がコンサート会場3の入場ゲートにおいて使用されていることから、ステップS317にて取得した現在位置情報がステップS315にて取得した位置制限情報から求められる範囲内に位置していると判定した場合には(S319;Yes)、ステップS321に処理を移行する。
これに対し、情報コード読取装置20がコンサート会場3から離れた場所において使用されていることから、ステップS317にて取得した現在位置情報がステップS315にて取得した位置制限情報から求められる範囲内に位置していないと判定した場合には(S319;No)、許可されていない場所での読み取りであるとして、ステップS300に示す復号化処理を終えてデコード処理を終了する。なお、上記ステップS313,S319を実行する制御部21は、「判定手段」の一例に相当し得る。
ステップS321では、当該秘匿識別コードに時刻制限情報が含まれているか否かを判定する処理が行われる。図4(B)に例示するように秘匿識別コードに時刻制限情報が含まれておらず、当該秘匿識別コードに時刻制限情報が含まれることを示すフラグが設定されていないことから、時刻制限情報が含まれていないと判定した場合には(S321;No)、ステップS329に処理を移行する。
これに対し、図4(C)または図4(D)に例示するように、当該秘匿識別コードに時刻制限情報が含まれていると判定した場合には(S321;Yes)、続くステップS323により、秘匿識別コードの直後に配置される制限情報から時刻制限情報を取得する処理が行われる。次のステップS325では、RTC27から入力される時刻情報に基づいて、現在時刻情報を取得する処理が行われる。そして、ステップS327により、秘匿データに応じた処理を実行可能な所定の時刻の範囲内にあるか否かを判定する処理が行われる。
ここで、コンサート会場3への入場が許可される時刻にて情報コード読取装置20により情報コードCが読み取られたことから、ステップS325にて取得した現在時刻がステップS323にて取得した時刻制限情報から求められる時刻範囲内(時刻Tsと時刻Teとの間)にあると判定した場合には(S327;Yes)、ステップS329に処理を移行する。
これに対し、コンサート会場3への入場が許可される時刻と異なる時刻にて情報コード読取装置20により情報コードCが読み取られたことから、ステップS325にて取得した現在時刻がステップS323にて取得した時刻制限情報から求められる時刻範囲内にないと判定した場合には(S327;No)、許可されていない時刻での読み取りであるとして、ステップS300に示す復号化処理を終えてデコード処理を終了する。なお、上記ステップS321,S327を実行する制御部21は、「判定手段」の一例に相当し得る。
ステップS329では、秘匿識別コードの直後に配置されるデータ長または制限情報の直後に配置されるデータ長に基づいて、最初の秘匿データコードを取得する処理が行われる。次のステップS331による処理では、取得された秘匿データコードが暗号化されているか否かを判定する処理が行われる。そして、取得された秘匿データコードが暗号化されている場合には(S331;Yes)、ステップS333に処理を移行し、取得された秘匿データコードが暗号化されていない場合には(S331;No)、ステップS333からの処理を飛ばしてステップS337に処理を移行する。
ステップS333では、予め記憶されている復号キーが取得した秘匿データコードの暗号化データを解読する鍵として適合しているか否かを判定する処理が行われる。当該復号キーが適合していると判定した場合には(S333;Yes)、ステップS335に処理を移行し、当該復号キーが適合していると判定できない場合には(S333;No)、ステップS335の処理を飛ばしてステップS339に処理を移行する。
ステップS335では、復号キーを用いて取得した秘匿データコードを解読する。続くステップS337では、ステップS335により解読した暗号化データに基づいて秘匿データコードを復号(デコード)する。
ステップS339では、次のデータコードを取得する処理が行われる。そして、ステップS341により、ステップS339で取得したデータコードが埋め草コードであるか否かを判定する処理が行われる。ステップS339で取得したデータコードが埋め草コードである場合には(S341;Yes)、これ以上、当該情報コードCには秘匿データコードが含まれていないことになるので、ステップS300に示す復号化処理を終えてデコード処理を終了する。
これに対し、ステップS341により取得したデータコードが埋め草コードであると判定されない場合には(S341;No)、このデータコードは秘匿データコードであるので、ステップS331に処理を移行して、ステップS339で取得した秘匿データコードについて、前述と同様の処理を行う。
上述のように図6に示すデコード処理が終了すると、当該デコード処理により取得された開示データ等に応じた処理が制御部21により実行される。ここで、上記復号化処理により秘匿データが取得されている場合にはその秘匿データに応じた処理、例えば、秘匿データの表示や秘匿データの管理サーバへの送信等が制御部21により実行される。なお、開示データや秘匿データ等に応じた処理を実行する制御部21は、「実行手段」の一例に相当し得る。
以上説明したように、本実施形態に係る情報コード読取システム1では、情報コードCは、秘匿データが記録された非公開領域と、秘匿データに応じた処理を実行可能な場所の位置を制限するための位置制限情報と秘匿データに応じた処理を実行可能な時刻を制限するための時刻制限情報との少なくともいずれか1つが制限情報として記録された領域とを備えている。
これにより、秘匿データを読み取るための復号キー等を有する情報コード読取装置20を用いて読み取っても、その情報コード読取装置20が秘匿データに応じた処理を実行可能な場所にない場合や秘匿データに応じた処理を実行可能な時刻でない場合には、秘匿データに応じた処理を実行しないように情報コード読取装置20を制御することができる。このように、情報コードの読み取りに関する制限を付与することで、情報コード読取装置20そのものが盗難等された場合であっても、秘匿データの秘匿性を向上させることができる。
また、情報コードCは、公開データが記録された公開領域をさらに備えるため、その情報コード読取装置20が秘匿データに応じた処理を実行可能な場所にない場合や秘匿データに応じた処理を実行可能な時刻でない場合には、公開データに応じた処理が実行されることとなる。このように公開データに応じた処理が実行されることから、公開データの他に秘匿データが記録されていることを認識することが困難であり、秘匿データの秘匿性をさらに向上させることができる。
特に、ステップS317にて取得した位置情報が位置制限情報から求められる所定の位置の範囲内にあり(S319;Yes)、かつ、ステップS325にて取得した現在時刻情報が時刻制限情報から求められる所定の時刻の範囲内にある場合(S327;Yes)に、秘匿データに応じた処理を実行可能な状態であると判定される。これにより、読み取り位置および読み取り時刻の双方を利用することで秘匿データの秘匿性をさらに向上させるだけでなく、情報コードを読み取り可能とする位置および時刻に関する範囲を容易に設定することができる。
なお、上記ステップS325では、RTC27から入力される時刻情報に基づいて現在時刻情報を取得することに限らず、例えば、GPS受信部28aにてGPS衛星から受信したGPS信号に含まれる時刻情報に基づいて現在時刻情報を取得してもよい。この場合、GPS受信部28aは、「現在時刻情報取得手段」の一例に相当し、情報コード読取装置20に内蔵されたRTC27による時刻情報を利用しないため、RTC27の時刻の偽装による不正な秘匿データの読み取りを防止することができる。
また、上記ステップS317では、GPS受信部28aから入力されるGPS信号に基づいて当該情報コード読取装置20の現在位置情報を取得することに限らず、例えば、所定の位置情報を有するアクセスポイントや携帯電話のキャリアの基地局等との相対位置に基づいて当該情報コード読取装置20の現在位置情報を取得してもよい。
なお、本発明は上記実施形態に限定されるものではなく、例えば、以下のように具体化してもよい。
(1)情報コードCは、一部非公開コードとして構成されることに限らず、公開領域を廃止して情報コード読取装置20が復号キーを有しない限りデータが読み取れない情報コードとして構成されてもよい。
(2)上記制限情報として位置制限情報のみが用意される情報コードCを読み取り対象とする情報コード読取装置20は、その復号化処理において、ステップS321〜S327までの処理を廃止してもよい。
(3)上記制限情報として時刻制限情報のみが用意される情報コードCを読み取り対象とする情報コード読取装置20は、その復号化処理において、ステップS313〜S319までの処理を廃止してもよい。
(4)情報コードCは、QRコードとして構成されることに限らず、他のコード種別の情報コード、例えば、データマトリックスコード、マキシコード等として構成されてもよい。
(5)本発明に係る情報コード読取システムは、コンサートの入場管理システムとして採用されることに限らず、例えば、情報コードが表示される割引クーポン等を発行するシステムなど、情報コードが表示される表示媒体を利用する他のシステムに採用することができる。